NLP综述
NLP(Natural Language Processing)
NLP,即自然语言处理。是语言学、计算机科学和人工智能的一个子领域,涉及计算机与人类语言之间的交互,编写能够处理和分析大量自然语言数据的程序。自然语言处理的目标是建立一台能够“理解”文档内容的计算机,包括其中语言的上下文细微差别。 人们希望该技术可以准确地提取文档中包含的信息和观点,并对文档本身进行分类和组织。
自然语言处理的研究任务
1.语言模型
语言模型(Language Models),是描述自然语言概率分布的模型,是自然语言处理中十分基础且重要的任务之一。语言模型可以表示某句话或某个序列的概率,也可以由上文给定信息预测下文将要出现的词汇。所以语言模型的作用可以不恰当的概括为判断一句话是否是“人话”。
语言模型通常分为传统的统计语言模型和神经网络语言模型。
2.基础任务
自然语言处理的任务繁多且复杂,有多种划分方式。从处理顺序的角度对任务进行划分,可以分为底层的基础任务和上层的应用任务。基础任务通常是由语言学家根据内省的方式定义的,输出的结果往往作为整个系统的一个环节或者下游任务的额外语言学特征,对应用任务具有一定的指导意义。
基础任务通常分为三大类:词法分析、句法分析、语义分析。而词法分析又有很多子任务,如中文分词、子词切分、词性标注等。语义分析也包括语义消歧、语义角色标注、语义依存分析等任务。
3.应用任务
应用任务通常是建立基础任务研究之上的,面向数据,面向实际案例。这些任务的研究结果可以直接或间接地以产品的形式为用户提供服务,属于应用落地的主要技术。
应用任务主要包括:
信息抽取:命名实体识别(对文本中的命名实体识别与标注,例如人名地名、各种专有名词等)、关系抽取(对实体的关系进行分析,例如朋友这种社会关系,地理位置关系等)、时间抽取。
情感分析:情感分析就是对文本中所表现的人类情感进行理解。情感分析具备更多的应用场景,如商品评论分析、舆情分析等等。
机器翻译:利用计算机实现一种语言到另一种语言的翻译。
对话系统:分为任务型对话系统和开放型对话系统。前者是任务导向型对话系统,主要用于有明确任务目标的业务中,如机票预定,电子客服等;后者通常以社交为目的对话系统,例如微软小冰。
常用神经网络模型
1.卷积神经网络
卷积神经网络是一种深度学习模型或类似于人工神经网络的多层感知器,相较于传统层级网络模型,CNN的层的功能和形式做了变化,可以说是传统神经网络的一个改进。卷积神经网络的创始人是著名计算机科学家Yann LeCun,该神经网络模型最初被提出的目的是解决图像识别问题。
在 CNN 出现之前,图像处理对于人工智能来说是一个难题,原因有二:图像的数据量太大,导致处理的效率很低(一张图像的像素的都上百万,再考虑RGB三通道之后数据量高的吓人);图像在数字化的过程中很难保留原有的特征,导致图像处理的正确率十分低。
CNN的出现解决了上述问题,CNN通过使卷积核在原图上滑动,进行卷积运算,进而来识别图片中指定特征,得到特征图。所以卷积操作的本质就是将原图中符合卷积核特征的特征提取出来,展示在feature map里面。接着在卷积操作后,我们得到了很多的feature map,即使这一步已经减少了很大的数据量,但还不够小。所以接下来数据会进入池化层继续减少数据量,而且池化层的最大目标就是减少数据量。这就是CNN解决上述问题的思路。
2.循环神经网络
对于文本数据的处理,我们能很自然地想到保留上下文的相关性来记录文本信息。RNN就拥有这样的机制。
上文中的卷积神经网络是一种前馈神经网络,即信息只向一个方向流动,但很明显这不符合文本数据的特性,当我们理解一句话时,仅仅是孤立的观察单词是不够的,更需要结合上下文意思来理解。于是循环神经网络出现了。
循环神经网络处理一个输入序列时,需要将循环神经网络按输入时刻展开,然后将序列中的每个输入依次对应到网络不同时刻的输入上,并将当前时刻网络隐含层的输出也作为下一时刻的输入。
3.Transformer模型
常见词向量
参考文献
《自然语言处理——基于预训练模型的方法》 车万翔 郭江 崔一鸣