自然语言处理导论
上QQ阅读APP看本书,新人免费读10天
设备和账号都新为新人

1.4 自然语言处理的研究内容

1.4.1 文本分类

传统的文本分类任务旨在按照一定的分类体系或标准对文本集进行自动分类标记。在文本分类研究中,知识工程方法中专家的主观因素较多,并且存在着明确的评价标准,在实际场景中表现良好。而统计学习方法因其坚实的理论基础而成为主流方法,该算法将样本数据转化为向量表示后,计算机开始其“学习”过程。常用的文本分类算法可分为传统机器学习方法和深度学习方法。传统机器学习方法包括决策树、Rocchio、朴素贝叶斯、支持向量机、线性最小二乘拟合、k近邻算法、遗传算法、最大熵等。深度学习方法则包括FastText、TextCNN等。

1.4.2 信息抽取

信息抽取,即从自然语言文本中抽取出有效的事件或事实信息,可有助于将海量内容自动分类、提取和重构。所需抽取的信息通常包括实体(entity)、关系(relation)和事件(event)。据此,信息抽取主要包括三个子任务,即实体抽取与链指(命名实体识别)、实体间的关系抽取,以及事件抽取。如从新闻中抽取时间、地点、关键人物,或从技术文档中抽取产品名称、开发时间、性能指标等。

常见的监督类学习算法有马尔可夫模型、贝叶斯网络、条件随机场等;非监督类的算法有基于语法归纳、词频统计、树形结构比较等数据挖掘类算法。另外还有一些模型通过建模将提取问题转化为分类问题。分类问题是机器学习算法的经典问题,被广泛使用的分类算法有支持向量机(SVM)、神经网络、树形模型等。

不同算法各有优点。如基于概率图模型和数据挖掘类的算法,适合于网页的模式比较明显、格式化比较强的情况。而基于分类算法的模型能更好地利用网页的视觉方面的特征,有助于提高算法的泛化能力。

1.4.3 文本摘要

文本摘要指通过各种技术,抽取、总结或精炼文本或文本集合中的要点信息,用以概括和展示原始文本(集合)的主要内容。作为文本生成任务的主要方向之一,从本质上而言,是一种信息压缩技术。

文本摘要的目的是让用户从海量的互联网数据中找到有效信息。实现这一点有两种不同的方式:一是以百度为代表的搜索引擎方案,可以理解为用户主动行为,可以发现,当进行关键词搜索时,除了标题,高亮展示的便是约为top100的字符;另外一种方案便是信息流,该方案可以理解为用户被动行为,是在移动互联网上的一种推荐系统。

抽取式文本摘要有显著的优点,但也有生成内容不连贯、字数难以控制、目标句主旨不明确等问题,其摘要好坏也部分取决于原文质量。面向以上问题,研究人员提出了生成式文本摘要方法,如LSTM(长短期记忆网络)模型、编码器-解码器模型等。在研究过程中,注意力机制思想的运用是自然语言处理技术上的一次大的飞跃。近年来,也有众多研究使用Self-Attention和Transformer来提升性能,并在预训练和微调的探索下,探索BERT与PreSumm。

文本摘要的主要评价指标为Rouge-n和BLEU。Rouge-n由预测摘要与真实摘要n-gram信息的交集与并集的商可得(n=1,2,3…)。此外,在文本摘要领域,其性能还需人工做进一步评估。

1.4.4 智能问答

1.任务型问答

任务型问答是指在特定场景下,机器人在多轮对话的过程中逐渐捕获必要的信息,从而为用户生成回答。据此可知,实现任务型问答的关键在于,如何对信息的捕获设计一个流程,使其逐渐获取所需信息。任务型问答一般包含三个核心模块,即自然语言理解模块、对话管理模块,以及自然语言生成模块。

2.检索式问答

检索式问答无需自然语言生成答案。给定回答集、问句及其上下文,检索式问答模型将对问题和答案对进行训练。模型训练完毕后,当输入一个问句,模型会对回答集中的答案进行相似度计算并给予不同的可能性得分,最终得分最高的答案被视为最佳答案并输出。

3.基于知识图谱问答

基于知识图谱问答(Knowledge-based Question Answering, KBQA)的技术路线是,首先将问题转化为机器能理解的语义表示,然后使用该语义表示作为结构化查询语句以查询知识图谱,最终将查询到的实体结合作为答案返回。

其中语义表示的方法有:

1)一阶谓语逻辑:一阶谓词逻辑只允许限量词(正则表示)应用在对象,高阶谓词逻辑允许将限量词用在谓词和函数。

2)lambda-算子:陈述句的语义可以采用一阶谓词逻辑表示,问句的语义则常采用lambda-算子形式。

3)lambda-DCS:一阶谓语逻辑和lambda-算子未考虑知识图谱特性,lambda-DCS考虑知识图谱特性却忽略了全部未知变量。

语义分析的方法有:

(1)基于文法的语义分析方法

该方法从带有语义表示的标注数据中抽取符合特定文法的语义分析规则集合,每条规则至少包含自然语言和语义表示两部分。然后,采用基于动态规划的解析算法(CYK、Shift-Reduce)产生句子对应语义表示候选集。最终,基于标注数据训练排序模型,对不同语义表示候选进行打分,返回得分最高语义表示候选作为结果。

(2)基于神经网络的语义分析方法

采用类似机器翻译的序列到序列(sequence to sequence,seq2seq)生成模型,实现从自然语言到语义表示的转化。

(3)基于答案排序的方法

给定输入问题和知识图谱,通过对知识图谱中实体进行打分和排序,选择得分最高的实体或实体集合作为答案输出。该方法包括以下步骤:

1)问题实体识别:对问题中提到的实体进行识别。

2)答案候选检索:根据识别出的问题实体,从知识图谱中查找与之满足特定约束条件的知识库实体集合,作为候选答案。

3)答案候选表示:每个答案无法直接与问题比较,基于答案候选所在知识图谱上下文生成对应向量表示,问题和答案相关度计算转为问题向量和候选向量计算。

4)答案候选排序:使用排序模型对不同答案候选打分排序,返回得分最高的答案候选集作为输出结果。常用的答案候选排序有以下三种方法:

① 基于特征的答案排序:答案实体识别后,根据问题实体在知识图谱中的位置,抽取与之不超过两个谓词连接的实体作为答案候选集合,然后使用一个特征向量表示每个候选答案(疑问词特征、问题实体特征、问题类型、问题动词、上下文、谓词特征)。

② 基于问题生成的答案排序:问题实体识别和答案候选检索后,采用文本生成技术为每一个答案生成一个自然语言问题,作为该答案候选对应的表示,计算输入问题和每个答案候选对应生成问题的相似度,对答案打分排序。

③ 基于子图匹配的答案排序:每个答案候选从知识库中抽取一个子图,通过计算输入问题和每个答案候选对应子图之间的相似度,对答案候选集合进行打分和排序。

4.表格问答

表格问答主要分为表格检索和答案生成两个步骤,对于表格检索:

1)当表格全集的数目相对有限时,可以将每个表格的结构打散并将内容顺序连接构成一个“文档”,然后基于现有文本检索技术找到与输入问题最相关的表格子集。

2)当表格全集很大时,需要借助现有搜索引擎找到与问题最相关的结构网页集合,抽取该结构网页集合中包含的全部表格作为表格子集。

答案生成有多种常用方法,如:

1)基于答案排序的方法,可通过对不同表格单元进行打分和排序,选择得分最高的表格单元集合作为答案。

2)基于语义分析方法,可基于表格内容生成问题对应的语义表示,然后以该语义表示作为结构化查询语句,通过查询表格以得到问题对应的答案。

3)基于神经网络方法,可训练端到端的神经网络模型,直接生成问题对应的答案。

5.文本问答

文本问答通常有问题处理模块、文本检索模块和答案生成模块三大模块。问题处理模块对输入的自然语言问题进行分词、命名实体识别、词性标注依存树分析等,并输出问题类型、问题关键词、答案类型等语义标签。其中问题类型包括事实类、是非类、定义类、列表类、比较类、意见类、指导类等。问题关键词涉及问题实体和对答案的限制条件。答案类型则包括人物、时间、地点等类别标签。文本检索模块旨在从海量文本集合中检索出与输入问题最相关的文本候选。答案生成模块的意义在于从检索回来的候选文本中抽取或生成答案。给定问题和候选文本,该模块需从文本候选中找到对应的答案。答案可以是候选文本中的句子,也可以是候选文本中的单词或短语,还可以是基于候选文本推理出的内容。