智能问答QA(内附项目实例)(待补充)

1.任务分类

自然语言问题大致分为7类:

1.事实类问题,适合基于知识图谱文本生成问题对应的答案。
2.是非类问题,适合基于知识图谱常识知识库进行推理并生成问题对应的答案。
3.定义类问题,适合基于知识图谱词典文本生成问题对应的答案。
4.列表类问题,适合基于网络表格生成问题对应的答案。
5.比较类问题,适合基于**<问题,答案>对**进行解答。
6.意见类问题
7.指导类问题

1.1 知识图谱问答

知识图谱,又称knomledge graph或KB,指通过人工编辑方式构建的图结构知识库。知识图谱中的基本单元称为事实(fact),每个事实记录了现实世界中的一条知识,有若干实体(节点)和谓词(边)构成。事实再知识图谱中的表示方式分为如下两类:

1.1.1三元组事实(triple fact)
 由两个节点组成,一个是主语实体,一个宾语实体,中间用满足二者的谓词关系连接。

1.1.2CVT事实
由一个主语实体,一个复合值类型节点(CVT),n个宾语实体构成。一个CVT将一个主语实体和一个宾语实体用两条谓词关系连接起来构成一个复杂事实。

eg:今天的太阳是红色的。
太阳(主语)——(今天)——CVT——(颜色)——红色(宾语)

1.2 表格问答

表格由M行N列组成,每行表示一条实例,每一列中的所有表格单元具有相同的类型。

表格问答(table-based QA),基于给定表格集和生成问题对应的答案。该任务又可细分为表格检索和答案生成两部分,前者负责从表格集和中找到与输入答案最相关的表格,后者负责基于检索回来的相关表格生成问题对应的答案。

1.3 文本问答

文本问答(text-based QA),基于给定文本生成问题对应的答案,按照答案细粒度的不同,又可进一步分为答案句子选择机器阅读理解两大类。

1.3.1 答案句子选择(answer sentence selection),从文本中寻找能够作为问题答案的句子,由于文本所包含的句子集和能够通过断句的方式直接得到,该任务可以通过对句子集合进行打分和排序,并选择得分最高的句子作为最终的答案。

1.3.2机器阅读理解(machine reading comprehension),从文本中寻找能够作为问题答案的短语,该任务的解决思路有两种:a.对文本中全部可能的答案短语候选进行抽样和排序,这样机器阅读理解可以看成对答案短语候选集合的一个排序任务;b.对文本中每个单词时候属于答案进行0/1标注,这样机器阅读理解可以看成一个序列标注任务

1.4 社区问答

问答对(question-answer pair),指问答社区网站上提供的<问题,答案>对数据集合。

社区问答(community QA),基于从问答社区网站抓取的问答对进行问答任务。拘役来说卖给顶输入答案,社区问答从问答对中检索与输入的问题语义最为匹配的已有问题,并才哟个该已有问题对应的答案作为当前问题的答案。此类问答方法的关键环节是计算问题和已有问题之间的语义相似度,以及计算问题和答案之间的语义相关度

2. 文本问答

2.1 文本问答的整体框架及分类

  一个典型的文本问答系统通常由三部分组成:问题处理模块;文本检索模块;答案生成模块。

问题处理模块:对输入的自然语言问题进行基本的nlp操作(分词,命名实体识别,词性标注和依存句法分析等),并输出一系列特定的问题语义标签(问题类型,问题关键词,答案类型等)。该模块的输出为文本检索和答案生成提供必要的信息。

文本检索模块:从海量的文本信息中检索出与输入问题最相关的文本候选,还模块属于经典的信息检索任务,在实际的应用中通常通过调用搜索引擎来实现。

答案生成模块:从检索回来的文本候选中抽取或者生成答案。给定问题Q和文本D,答案处理模块的目标时从D中找到Q对应的答案A。A既可以是D中的单词/短语/句子或者是由D推里出来的。

按照答案颗粒度的不同,可以将文本问答任务分为答案句子选择和机器阅读理解两大类。

答案句子选择:从候选文本D中选择一个句子s作为问题的答案。

机器阅读理解:针对给定的自然语言文本进行阅读和理解,并根据阅读和理解的结果,从文本中选择特定的短语片段作为输入问题的答案。

2.2 答案句子选择

 答案句子选择可以形式化为从D中寻找Q的对应答案句子 S ^ \hat{S} S^的任务, S ^ \hat{S} S^= arg max ⁡ S ⊂ D \max\limits_{S\subset D} SDmax P ( S | Q ),其中P ( S | Q )表示文档D中的句子S作为答案句子的概率。答案句子选择任务的重点是如何精准地计算问题Q与候选句子S之间的语义匹配关系。一般有如下两种经典的计方法:基于特征的方法和基于深度学习的方法。

2.2.1 基于特征的方法
2.2.2 基于深度学习的方法

2.3 机器阅读理解

3.社区问答

  社区问答(community QA,CQA )任务旨在基于从互联网抓取的<问题,答案>对数据 D = { < Q i Q_i Qi, A i A_i Ai > }, i ∈ ( 1 , N ) i\in (1,N) i(1,N) 来回答用户输入的自然语言问题Q,并保证Q的答案 S ^ ∈ A i \hat{S}\in {A_i} S^Ai i ∈ ( 1 , N ) i\in (1,N) i(1,N)

从上述定义可以看出,社区问答方法主要涉及以下两个任务:

a.问题-问题匹配,该任务负责计算两问题的语义相似度

b.问题-答案匹配,该任务负责计算输入问题Q和D中某一答案的相关度(与文本问答中的问题-答案匹配原理一致)

3.1问题匹配

 问题匹配是社区问答系统中关键环节,用于判断两个问题时候语义一致。该认为i属于自然语言处理领域中的复述分类问题。

下面我们介绍两种典型的问题匹配方法:**基于特征方法和基于深度学习方法。**前者依赖人工指定的特征训练二分类器,用于完成问题匹配任务;后者基于标注语料直接进行端到端的神经网络模型训练。和基于特征方法相比,基于深度学习的方法无须人工设计特征(自动学习,神经网络本身的特性),但会有黑盒出现,尤其是卷积神经网络,鲁棒性较高,但一般需要大量的训练数据。

3.1.1基于特征的方法
3.1.2 基于深度学习的方法

3.2 问题改写

 问题改写(question rewriting)任务旨在为输入问题生成语义相同但表述方法不用的复述形式。该任务属于nlp中的复述生成任务。
问题改写对社区问答任务具有很好的辅助作用,社区问答知识库中每个已有问题都可以匹配多种不同的用户提问方式,对于和已有问题差别比较大的问法,在线问题匹配模型匹配成功的难度通常比较大,此时可以采用离线的方式对问答知识库中已有的问题进行改写,以达到拓展问题知识库的目的。问题改写一般分基于统计的方法和基于深度学习的方法。

项目实例 :结合文本问答和社区问答的一个上海考研智能问答项目。

你可能感兴趣的:(NLP)