本篇博客主要基于微软亚洲研究院段楠老师的《智能问答》第七章 文本问答 进行整理。
随着互联网的普及和搜索引擎的发展,人们可以越来越方便地从海量信息中检索到大量相关的文本。 而海量的信息也催生了文本问答技术的发展,从而可以帮助人们更快速更精确地找到用户所需要的信息片段。 在本节中,我们定义文本问答是从互联网或者线下收集的文本集合中,找到可以回答用户问题的文字片段作为答案的任务。
目录
1. 文本问答整体框架
一个典型的文本问答系统通常由如下三部分组成:问题处理模块、文本检索模块,答案生成模块。
问题处理模块对输人的自然语言问题进行基本的自然语言处理操作(例如分词、命名实体识别、词性标注和依存句法分析等),并输出一系列特定的问题语义标签(例如问题类型、问题关键词、答案类型等)。该模块的输出结果为文本检索和答案生成提供必要的信息。 例如,常见的问题类型包括事实类问题、是非类问题、定义类问题、列表类问题、比较类问题、意见类问题和指导类问题七类,准确地判断当前问题属于哪一类有助于文本检索模块选择不同的索引部分以及答案生成模块选用不同的算法。 问题关键词通常包括问题涉及的实体以及对答案的限制条件等。 该信息对文本检索以及答案生成的准确性具有很大的指导作用。 答案类型表明了问题的答案应该属于哪种类型,例如人物、时间、地点等。该信息能够有效地过滤不满足条件的答案候选。
文本检索模块从海量文本集合中检索出与输人问题最相关的文本候选。 该模块属于经典的信息检索任务,在实际应用中通常通过调用搜索引擎完成。
答案生成模块从检索回来的文本候选中抽取或生成答案。 给定问题Q和文本D,答案处理模块的目标是从D中找到Q对应的答案A。 这里,答案A既可以是D中的句子,也可以是D中的单词或短语,还可以是基