问答系统学习综述

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/sinat_33231573/article/details/83473741

目录

 

研究意义

QA系统发展历程

QA系统分类

QA系统的处理框架

基于FAQ的问答系统

1、候选问题集的建立

2、问句匹配度相似度计算

3、问题答案集合更新

基于大规模文档集的问答系统

1、问题分析模块

2、检索模块

3、答案抽取模块


研究意义

搜索引擎系统:1、检索需求的表达不够准确:用户的检索需求往往是非常复杂而特殊的无法以几个关键字的简单逻辑组合来表达用户的检所需求。2、检索结果不够简洁:返回结果太多导致用户很难快速准确地定位到所需信息。3、缺乏语义处理技术的支撑:传统信息检索以关键词为基础的索引、匹配算法尽管简单易行,但毕竟停留在语言的表层而没有触及语义,使得检索效果一般。

问答式信息检索是一种允许用户以自然语言方式询问,系统从单语或多语文档集中查找并返回确切答案或者蕴含答案文本片断的新型信息检索的方式。问答系统允许用户以自然语言的形式查询信息,例如:世界上最大的宫殿是什么宫殿?系统则直接提供用户准确、简洁的答案,例如:紫禁城/故宫。问答系统能够提供用户真正的有用、精确的信息,它将是下一代的搜索引擎的理想选择。

基于自然语言处理技术的问答系统是传统搜索引擎改进的方向之一,自然语言问答系统本身处理的输入就是以自然语言形式表达的问句,通过提取问句中的查询新息,然后解析出用户的查询意图,再根据查询意图从文档中精准定位答案所在,将自然语言形式的答案抽取出来返回给用户,而不仅仅是将问题的答案文档分布返回给用户,这无论是从精确程度还是满足用户的检索需求上都是很大的进步。

智能问答系统涉及的领域很广,其中主要关键技术有知识的抽取和表示,用户问句的语义理解和通过知识推理得到答案。这些领域都需要进行深入研究我们才会得到更好的智能问答系统。而无论我们在任一领域取得重大的突破,不仅仅对于智能问答系统,而且对于其它领域,包括文本分类、推荐系统等都会有相当大的促进作用。

QA系统发展历程

1950年,英国数学家A.M.Turing在其论文《Computing Machinery and Intelligence》中提到测试机器是否具有智能的问题:“机器能思考吗?”,并提出了判定机器能否思考的方法——图灵测试。其方案为:由测试人A与另一房间中的两个对象 BC对话,E=中有一个是人,另一个是计算机。如果经过一段时间的对话之后,A不能断定 BC中谁是人,谁是计算机,则认为计算机已经具备了人的智能。图灵测试可以看作是QA系统的蓝图。

早期的两个比较著名的QA系统:BASEBALL1961年)和LUNAR1973年)。BASEBALL可用来回答美国一个季度棒球比赛的时间地点成绩等 自然语言问题。LUNAR可帮助地质学家方便的了解、比较和苹果股阿波罗登月计划积累的月球突然和岩石的各种化学分析数据。它们的后台有一个数据库,保存系统可提供的各种数据。而在用户提问时,系统把用户的问题转换成SQL查询语句,从数据库中查询到数据提供给用户。

一般认为,第一个QA系统是Jaseph Weizenbaum1966年实现”Eliza”。Eliza扮演一个心理学专家的角色,它采用启发式的心理疗法,通过反问来应对精神病人的提问,诱导病人不停地说话,从而达到对病人进行心理治疗的目的。Eliza用的是模式及关键字匹配和置换的方法,没有发展成一套系统的技术。

可进行对话的系统有Terry Winograd1971年用MACLICP语言开发的SHRDLU(积木游戏)Bobrow等在1977年前后开发的GUS(旅行信息咨询)

20世纪70年代,出现了阅读理解系统:耶鲁大学人工智能实验室开发的SAMSAM的能力限制于必须要有脚本来描述对问题的回答。但脚本不存在时或者尚未准备好时,系统将无法工作。

20世纪90年代,问答系统的研究和开发热点转向基于大规模文档集的问答(TREC1999年开始了QA技术的评测;200010月,ACL以“开放域问答系统”为专题)。研究领域也从初期的限定领域拓展到开放领域,研究对象从当初的固定语料库拓展到互联网,真正的面向Web开放域的QA系统的正确率和精确性都不高,还不能提供良好的商业服务。

Start是世界上第一个基于WebQA系统,自从199312月开始,它持续在线运行至今。现在Start能够回答数百万的多类英语问题,包括“place”类(城市,国家,湖泊,天气,地图,人口统计学,政治和经济等),电影类(片名,演员和导演等),人物类(出生日期,传记等),词典定义类等。

国外目前比较成功的QA系统有 START、Watson (IBM)、Siri (iPhone) 、Microsoft Cortana …

国内的众多企业和研究团体也推出了很多QA系统,例如 微软小冰 、小度机器人(百度) 、知乎(社区问答平台) ……由于中文的特殊性,比如说没有英文天然的分词等,研究起来困难也比较多;相比TREC评测,缺乏一个相对成熟的汉语QA系统评测平台。

QA系统分类

限定域问答系统是指系统所能处理的问题只限定于某个领域或者某个内容范围,比如只限定于医学、化学或者某企业的业务领域等。 开放域问答系统不同于限定域问答系统,这类系统可回答的问题不限定于某个特定领域。在回答开放领域的问题时,需要一定的常识知识或者世界知识并具有语义词典,如英文的WordNet在许多英文开放域问答系统中都会使用。FAQ基于常见问题集的问答系统。FAQ自动问答系统把用户常问的问题和相关答案保存 起来,使得用户使用系统更加便捷。当用户输入问题时,如 果在已有的“问题—答案”对集合中能找到与之相匹配的问句,系统就直接把相应的答案输出给用户,而不需要经过问 题理解、信息检索、答案抽取等复杂的处理过程。

结构化文本:按照一定格式严格生成(数据库、票据); 自由文本:无格式,文字合乎自然语法规则(新闻报道、科技文献); 半结构化文本:介于前两者之间,这类文本有一定格式约束、不完全符合自然语言法则,但又按自然语法组织语言(电报、公告)。

在检索模型中,系统会根据所给的问题从Question-Answer数据库中找 寻与该问题语义最相近的问句,然后返回该问句对应的答案,该方法的主要 问题有两个:第一个是数据库中Question-Answer对数量有限,有可能检索 不到用户提出的问题的答案。第二个问题是Question-Answer对是固定的, 可能无法根据用户提出的问题得到完全对应的答案。在生成模型中,对话系统会首先理解用户提出的问题,然后逐字的生成对应于该问题的答案。目前主流的方法是深度学习中Seq2Seq模型,该模型 先用encoder端将问句编码为一个向量表示,再由decoder端将该向量表示解码为一个回复,该模型的主要问题是有可能生成的答案很容易是通用的、 单调的回复(例如:“我不知道”、“好的”等),这样的回复包含的信息较少, 没有实质性的意义。

QA系统的处理框架

不同类型的问答系统对于数据处理的方法存在不同。例如,相对于面向FAQ的问答系统的问句检索直接得到候选答案,面向开放领域的问答系统首先需要根据问题分析的结果进行相关文档、文本片段信息的检索,然后进行候选答案的抽取。虽然不同类型的问答系统对于系统模块的功能分工和具体实现存在差异,但依据数据流在问答系统中的处理流程,一般问答系统的处理框架中都包括问句理解、信息检索、答案生成三个功能组成部分。

对应问答系统的处理流程, 问答系统研究包含三个基本问题:如何去分析问题; 如何根据问题的分析结果去缩小答案可能存在的范围; 如何从可能存在答案的信息块中抽取答案。

提问处理模块:负责对用户的提问进行处理;生成查询关键词(提问关键词,扩展关键词,...);确定提问答案类型(PER, LOC, ORG, TIM, NUM, ...)以及提问的句法、语义表示等等。

检索模块:根据提问处理模块生成的查询关键词,使用传统检索方式,检索出和提问相关的信息;返回的信息可以是段落、也可以是句群或者句子。

答案抽取模块:从检索模块检索出的相关段落、或句群、或句子中抽取出和提问答案类型一致的实体,根据某种原则对候选答案进行打分,把概率最大的候选答案返回给用户。

基于FAQ的问答系统

首先,问答系统首先接收用户提出的问题(即用户输入的问句)。 然后,根据用户输入的问句,从常用问题库(即FAQ库)中查找并建立与用户问题比较相似的候选问题集。 接着,对候选问题集中的句子与用户输入的问句进行相似度计算,从候选问题集中寻找与用户输入的问句最相似的问句。 如果在候选问题集中找到了与用户输入的问句相似的问句(即该问句和用户输入的问句的相似度大于某个阈值),就直接把和该问句对应的答案返还给用户;如果没有找到与用户输入的问句相似的问句(即候选问题集中所有问句和用户输入的问句的相似度都小于某个阀值),那么就利用其他的方法,比如答案抽取、信息检索等,来寻找答案,并且将这个新的问题和其对应的答案加入FAQ库,对FAQ库进行更新。

FAQ自动问答系统中需要处理的主要问题是候选问题集的建立、句子相似度计算、FAQ库的更新。

1、候选问题集的建立

候选问题答案集合建立是为了缩小答案的范围。该步骤会选取出可能包含答案的候选问题答案集合。这么做的目的使后续的问句相似性计算等步骤能够缩小范围,以较高的效率进行。在该步骤中,通常会使用信息检索技术。

●  用户输入的目标问句 (W1,W2,…,Wn)

●  FAQ库中共有m个问句,第i(1 ≤i ≤m)个问句含有ni个词 (Q1,Q2,…,Qni)

●  i个问句和目标问句之间重叠的词个数记为Numi,即 Numi=|{W1,W2,…,Wn} {Q1,Q2,…,Qni}|

●  选择Numi值最大的若干问句,组成候选问题集

2、问句匹配度相似度计算

这一步是将候选集合中的每一个问句分别与用户输入的问句进行匹配并计算相似度得分。得分最高的问句所对应的答案就是最终答案。这一步骤比较关键,它关乎到答案的质量。

两类:

1、不考虑两个句子的语义信息:模式匹配、关键字匹配技术、基于向量空间的TF/IDF方法等计算两个句子的相似度;

2、考虑两个句子的语义信息:利用WordNetHowNet、同义词词林等语义知识资源计算两个句子的语义相似度。一般的方法的是结合多种特征来计算句子之间的相似性。

3、问题答案集合更新

● 计算出用户所输入的目标问句和候选问题集中个问句的相似度

       如果相似度的最大值大于一定的阈值,直接将这个问句对应的答案输出给用户

       如果最大相似度的值小于阈值,将用户所的这个问题和对应的答案加入FAQ 库,对进行自动的更新

基于大规模文档集的问答系统

基于大规模文档集的问答系统:信息检索技术和信息抽取技术的结合。

命名实体识别(Named EntitiesRecognition, NER)是自然语言处理(Natural LanguageProcessing, NLP)的一个基础任务。其目的是识别语料中人名、地名、组织机构名等命名实体。由于这些命名实体数量不断增加,通常不可能在词典中穷尽列出,且其构成方法具有各自的一些规律性,因而,通常把对这些词的识别从词汇形态处理(如汉语切分)任务中独立处理,称为命名实体识别。命名实体识别技术是信息抽取、信息检索、机器翻译、问答系统等多种自然语言处理技术必不可少的组成部分。   

命名实体是命名实体识别的研究主体,一般包括3大类(实体类、时间类和数字类)7小类(人名、地名、机构名、时间、日期、货币和百分比)命名实体。评判一个命名实体是否被正确识别包括两个方面:实体的边界是否正确;实体的类型是否标注正确。主要错误类型包括文本正确,类型可能错误;反之,文本边界错误,而其包含的主要实体词和词类标记可能正确。   

命名实体识别的主要技术方法分为:基于规则和词典的方法、基于统计的方法、二者混合的方法等。

命名实体识别技术主要用在QA的:1、段落或句子排列:QA系统首先根据查询关键字进行检索,然后对于检索出来的段落或句子重新进行排序;当某个句子包含所期望的实体时,则给句子适当的加分;  2、答案抽取:只抽取和期望答案类型一致的实体作为答案,而命名实体不参与句子或段落的排序。 ​​​​​​​​​​​​​​

1、问题分析模块

1)问题种类划分

事实型问题:“谁”、“何时”、“多少”、 “哪里”……

定义型问题:“是什么”、“什么是”……

复杂型问题:“为什么”、“如何”……

2)问题分类方法

  ● 基于规则的分类方法:

            对每个类别设计大量的规则,一旦问题和一个规则相匹配,则问题就属于改规则对应的类别

            应用规则的方法较简单,但要号飞机大量人力设计规则,另有些问题很难设计规则去覆盖

  ● 基于统计机器学习的分类方法:

           形式和文本分类类似。与文本分类不同:相对于文本,问题一般很短,其中包含的词很少,因此可以利用的特征少;

在问题所包含的词中,决定问题类别的特征具有明显的倾向性, 即只有若干词才是真正确定问题类别的主要特征。

           ●  思路:

                       人工方式对一批问题的类别进行标注

                       设计机器学习算法,已标注的这个集合进行分类模型的自动训练

                       训练得到的模型对测试问题进行自动分类

           ●  特征选择:

                      疑问词确定问题类型

                      疑问词+焦点词共同确定问题类别

                                疑问词确定问题类型:eg.-西电校长是谁?  “谁”就确定类型是“人”。

                                疑问词+焦点词共同确定问题类别: 焦点词是问题中指示期望答案语义类型的词。

                                eg.-哪个国家人口最多?  疑问词“哪个”、焦点词“国家”确定了该答案类型是“国家”。 ​​​​​​​

2、检索模块

1)相关文档检索

2)句段检索 

●  文档切分方法:

      以连续的n个句子作为一个文档句段

      以篇章的一个段落(paragraph)为一个文档句段

      文档进行子话题(subtopic)分割,把一个子话题作为一个句段

●  检索方法

      句段和问题之间匹配的词的个数

      VSM的余弦相似度

向量空间模型(VSM)一种文本相似度算法

判断一篇文章是否是你喜欢的文章,即将文章抽象成一个向量,该向量由n个词Term组成,每个词都有一个权重(Term Weight),不同的词根据自己在文档中的权重来影响文档相关性的重要程度。选取特征词时,需要降维处理选出有代表性的特征词,包括人工选择或自动选择。特征抽取完后,因为每个词语对实体的贡献度不同,所以需要对这些词语赋予不同的权重。计算词项在向量中的权重方法——TF-IDFTF-IDF计算权重越大表示该词条对这个文本的重要性越大。计算两篇文章间的相似度就通过两个向量的余弦夹角cos来描述。

      匹配词之间的间隔的紧密程度

3、答案抽取模块

  ● 简单匹配的方法

●  基本思想

     ● 在检索到的句段中抽取和问题的语气答案类型相一致的命名实体,作为候选答案

     ●  对候选答案进行排序时,综合其所在文档句段的顺序和在所有文档句段中出现的次数作为排序分值

     ●  排序最高的候选答案,将被选择为最终答案

●  缺点:

      当句段中有多个满足答案语义类型的命名实体时难以判断

  ● 基于表层模式匹配的方法

●  基本思想

     ●  利用规则模式,从文档句段中抽取出满足模式的答案

     ●  规则模式描述了问题的主要词汇与候选答案在句段中的出现形式

     ●  不需要太多深层的语言处理

●  规则模式的构造

     ●  手动方式构造

     ●  自动学习得到:训练数据和测试数据:问题、包含答案的文档句段、问题的答案

                过程:1、先从训练数据文档句段中提取出包含问题词和答案的子串;2、将子串中的问题词和答案词替换成变量,得到一个候选规则;3、对候选规则进一步泛化;4、在测试数据中用候选规则抽取答案,以判断候选规则的准确率;5、将准确率高于一定阈值的候选规则选为自动学习到的规则

  ● 利用大规模文档集中数据冗余的方法

  ● 由于数据集的海量特点,总会存在一些和问题的描述方式相近的答案句子

  ● 系统可以不用复杂的语言处理技术,而使用简单的统计方法辅助千层语言技术就可确定问题的答案

  ● 基于多特征的统计机器学习

●  构造训练“文档-文档句段-答案”集合,用

    机器学习方法训练得到答案选择模型

●  特征选择

           句子特征:问题和候选答案所在句段间匹配的词和依存弧的分值

           语言特征:候选答案是否是特定动词的主语或宾语等

           词汇模式特征:候选答案所在句段是否匹配某种模式词汇

           候选答案的冗余特征:候选答案在检索结果中出现的次数

           其它特征

方法

猜你喜欢

转载自blog.csdn.net/sinat_33231573/article/details/83473741
今日推荐