问小白 wenxiaobai
资讯
历史
科技
环境与自然
成长
游戏
财经
文学与艺术
美食
健康
家居
文化
情感
汽车
三农
军事
旅行
运动
教育
生活
星座命理

自然语言处理入门指南:从基础概念到实战应用

创作时间:
作者:
@小白创作中心

自然语言处理入门指南:从基础概念到实战应用

引用
CSDN
1.
https://blog.csdn.net/zwqjoy/article/details/103546648

自然语言处理(NLP)是人工智能领域的一个重要方向,主要关注计算机如何准确并快速地处理大量的自然语言语料库。本文将从NLP的基本概念、预处理步骤、文本表示方式以及业务场景应用等多个方面,为大家详细介绍这一领域的基础知识。

NLP的基本概念

自然语言处理(NLP)的一个最伟大的方面是跨越多个领域的计算研究,从人工智能到计算语言学的多个计算研究领域都在研究计算机与人类语言之间的相互作用。它主要关注计算机如何准确并快速地处理大量的自然语言语料库。什么是自然语言语料库?它是用现实世界语言表达的语言学习,是从文本和语言与另一种语言的关系中理解一组抽象规则的综合方法。

人类语言是抽象的信息符号,其中蕴含着丰富的语义信息,人类可以很轻松地理解其中的含义。而计算机只能处理数值化的信息,无法直接理解人类语言,所以需要将人类语言进行数值化转换。不仅如此,人类间的沟通交流是有上下文信息的,这对于计算机也是巨大的挑战。

NLP的任务类型

我们首先来看看NLP的任务类型,如下图所示:

主要划分为了四大类:

  • 类别到序列
  • 序列到类别
  • 同步的序列到序列
  • 异步的序列到序列

其中“类别”可以理解为是标签或者分类,而“序列”可以理解为是一段文本或者一个数组。简单概况NLP的任务就是从一种数据类型转换成另一种数据类型的过程,这与绝大多数的机器学习模型相同或者类似,所以掌握了NLP的技术栈就等于掌握了机器学习的技术栈。

NLP的预处理

为了能够完成上述的NLP任务,我们需要一些预处理,是NLP任务的基本流程。预处理包括:收集语料库、文本清洗、分词、去掉停用词(可选)、标准化和特征提取等。

收集语料库

对于NLP任务来说,没有大量高质量的语料,就是巧妇难为无米之炊,是无法工作的。而获取语料的途径有很多种,最常见的方式就是直接下载开源的语料库,如:维基百科的语料库。但这样开源的语料库一般都无法满足业务的个性化需要,所以就需要自己动手开发爬虫去抓取特定的内容,这也是一种获取语料库的途径。当然,每家互联网公司根据自身的业务,也都会有大量的语料数据,如:用户评论、电子书、商品描述等等,都是很好的语料库。

清理数据

我们遵循的首要规则是:“您的模型将永远与您的数据一样好。”数据科学家的关键技能之一是了解下一步是应该对模型还是数据进行处理。一个好的经验法则是首先查看数据然后进行清理。一个干净的数据集将允许模型学习有意义的功能,而不是过度匹配无关的噪音。

分词

中英文分词的3个典型区别:

  1. 分词方式不同,中文更难:英文有天然的空格作为分隔符,但是中文没有。所以如何切分是一个难点,再加上中文里一词多意的情况非常多,导致很容易出现歧义。

  2. 英文单词有多种形态:英文单词存在丰富的变形变换。为了应对这些复杂的变换,英文NLP相比中文存在一些独特的处理步骤,我们称为词形还原(Lemmatization)和词干提取(Stemming)。中文则不需要

  3. 中文分词需要考虑粒度问题:例如「中国科学技术大学」就有很多种分法:

  • 中国科学技术大学
  • 中国 \ 科学技术 \ 大学
  • 中国 \ 科学 \ 技术 \ 大学

标准化

标准化是为了给后续的处理提供一些必要的基础数据,包括:去掉停用词、词汇表、训练数据等等。

当我们完成了分词之后,可以去掉停用词,如:“其中”、“况且”、“什么”等等,但这一步不是必须的,要根据实际业务进行选择,像关键词挖掘就需要去掉停用词,而像训练词向量就不需要。

特征提取

为了能够更好的训练模型,我们需要将文本的原始特征转化成具体特征,转化的方式主要有两种:统计和Embedding。原始特征:需要人类或者机器进行转化,如:文本、图像。具体特征:已经被人类进行整理和分析,可以直接使用,如:物体的重要、大小。

NLP表示方式

目前常用的文本表示方式分为:

  1. 离散式表示(Discrete Representation);
  2. 分布式表示(Distributed Representation);

离散式表示(Discrete Representation)

  1. One-Hot

One-Hot 编码又称为“独热编码”或“哑编码”,是最传统、最基础的词(或字)特征表示方法。这种编码将词(或字)表示成一个向量,该向量的维度是词典(或字典)的长度(该词典是通过语料库生成的),该向量中,当前词的位置的值为1,其余的位置为0。

  1. 词袋模型(Bag Of Word,BOW)

在词袋模型中不考虑语序和词法的信息,每个单词都是相互独立的,将词语放入一个“袋子”里,统计每个单词出现的频率。

  1. TF-IDF(词频-逆文档频率)

为了解决词袋模型无法区分常用词(如:“是”、“的”等)和专有名词(如:“自然语言处理”、“NLP ”等)对文本的重要性的问题,TF-IDF 算法应运而生。

分布式表示(Distributed Representation)

  1. n-gram

n-gram 是一种 语言模型(Language Model, LM)。语言模型是一种基于概率的判别式模型,该模型的输入是一句话(单词的序列),输出的是这句话的概率,也就是这些单词的联合概率。

  1. 共现矩阵(Co-Occurrence Matrix)

首先指定窗口大小,然后统计窗口(和对称窗口)内词语共同出现的次数作为词的向量(vector)。

  1. Word2Vec

word2vec 模型是Google团队在2013年发布的 word representation 方法。该方法一出让 预训练词向量 的使用在NLP 领域遍地开花。

  1. GloVe

GloVe 是斯坦福大学Jeffrey、Richard 等提供的一种词向量表示算法,GloVe 的全称是Global Vectors for Word Representation,是一个基于全局词频统计(count-based & overall staticstics)的词表征(word representation)算法。

  1. ELMO

ELMO 的全称是“Embedding from Language Models”,这个名字不能很好的反映出该模型的特点,提出ELMO 的论文题目可以更准确的表达出该算法的特点“Deep contextualized word representation”。

NLP的业务场景

NLP 的4个典型应用:

  • 文本纠错:识别文本中的错别字,给出提示以及正确的建议
  • 情感倾向分析:对包含主观信息的文本进行情感倾向性判断
  • 评论观点抽取:分析评论关注点和观点,输出标签
  • 对话情绪识别:识别会话者所表现出的情绪类别及置信度
  • 文本标签:输出能够反映文章关键信息的多维度标签
  • 文章分类:输出文章的主题分类及对应的置信度
  • 新闻摘要:抽取关键信息并生成指定长度的新闻摘要

大家不要被这些眼花缭乱的业务场景给搞晕了,其实上面的这些业务都是基于我们之前讲的NLP预处理的输出,只是应用了不同的机器学习模型,比如:SVM、LSTM、LDA等等。这些机器学习模型大部分是分类模型(序列标注也是一种分类模型),只有少部分是聚类模型。这些模型就是泛化的了,并不只是针对于NLP任务的。要想讲清楚这部分内容,就需要另开一个关于“机器学习入门”的主题,这里就不过多的展开了。

小结:只要大家掌握了NLP的预处理,就算入门NLP了,因为后续的处理都是一些常见的机器学习模型和方法。

结束语

NLP是一个非常有挑战性的工作,同时也是一个非常有发展空间的工作,所以大家只要克服了前期的入门门槛,那么迎接你的将是一片广阔的天地。道阻且长,行则将至。

© 2023 北京元石科技有限公司 ◎ 京公网安备 11010802042949号