知识问答是一个拟人化的智能系统,接收使用自然语言表达的问题,理解用户的意图,获取相关的知识,通过推理计算形成相应的答案并反馈给用户。
知识问答的基本要素
1.问题,也就是问答系统的输入。(问句、选择、填空等)
2.答案,也就是问答系统的输出。
3.智能体,也就是问答系统的执行者。(需要理解问题的语义,掌握并使用知识库解答问题)
4.知识库,存储问答系统的知识。
搜索与知识问答的差异:
1.搜素以文档来承载答案,用户需要通过阅读文档来发现答案,而问答直接返回答案。
2.搜索主要是通过关键词而不是完整的句子来搜索,需要一定的搜索技巧;而问答则会尝试理解不同的自然语言表达方式的语义,形成知识查询。
3.当用户的问题复杂时,搜索是需要多个页面去查询得到答案。知识问答不需要。
知识问答的应用场景
1.知识问答可以直接嵌入搜索引擎的结果页面,将问答的答案与搜索结果列表同事展示。
2.智能对话系统、智能客服。
3.阅读理解。
根据知识问答系统四大要素(问题、答案、知识库、智能体 )
问题与答案类型
由于问题分类体系在很大程度上按照目标答案的差异而区分,则两者的类型可以合并。
基于功能的问题分类体系:事实、列表、原因、解决方案、定义、导航等。
面向知识图谱问答的构建:事实性客观问题和主观深层次问题。
知识库类型
知识库的内容边界:领域相关的问答、领域无关的问答。
知识库的信息组织格式:文本类、半结构或结构化的知识库、非结构化(图片、音频、视频)
智能体类型
根据知识库表示的形式,分为传统问答方法、基于深度学习的问答方法。
早期的问答系统(NLIDB)
1.基于模式匹配(直接将问题映射到查询语句)
2.基于语法解析(将复杂的语义转换成逻辑表达式)
基于信息检索的问答系统(IRQA)
参考斯坦福的基本架构,大致分为三阶段:问题处理、段落检索与排序、答案处理。
问题处理:要明确知识检索的过滤条件(即问句转换成关键字搜索)和答案类型判定。
段落检索与排序:基于提取出的关键词进行进行信息检索,对检索出的文档先排序,然后分割成合适的段落,并对段落进行再排序,找到最优答案。
答案处理:根据排序后的段落结合定义的答案类型抽取答案,形成答案候选集;最终对答案候选集进行排序,返回最优解。
基于知识库的问答系统(KBQA)
基于知识图谱解答问题的问答系统。
KBQA的核心问题Question2Query是找到从用户问题到知识图谱子图的最合理的映射。
Question2Query的四个关键步骤:
1. 问题分析:主要利用词典、词性分析、分词、实体识别、语法解析树分析、句法依存关系分析等传统NLP技术提取问题的结构特征,并基于机器学习和规则提取分析句子的类型和答案类型。
2.词汇关联:主要是针对问题分析阶段尚未形成实体链接的部分形成与知识库的链接,包括关系属性、描述属性、实体分类的链接。
3.歧义消解:包括对候选的词汇、查询表达式的排序选优和通过语义的容斥关系去掉不可能的组合。
4.构建查询:基于问题解析结果,可以通过自定义转化规则或者特定语义模型与语法规则将问题转化成查询语言表达式,形成对知识库的查询,如 SPARQL。
基于问答对匹配的问答系统
基于常见的问答对以及社区问答都依赖搜索问答FAQ库(问答对集合)来发现以前问过的类似问题,并将找到的问答对的答案返回给用户;主要核心还是计算问题之间的语义相似性。
混合问答系统框架
将高度结构化的领域数据和相关的文本领域知识相互结合的混合框架,如:DeepQA、QALD-Hybrid-QA、Frankenstein等
问答系统的评价指标
功能评价指标
分为 6个角度:正确性、精确度、完整性、可解释性、用户友好性、其他评价维度
性能评价指标
问答系统的响应时间(一般控制在1s以内)
问答系统的故障率
问答系统的评价数据集
1. TREC QA (评价IRQA):主要针对基于搜索的问答系统解决方案。
2. TREC LIVE QA (评价CQA社区问答):主要是针对CQA社区问答解决方案的评价体系
3. QALD (评价KBQA):是指链接数据的问答系统评测,为自然语言问题转化成可用的SPARQL查询以及基于语义万维网标准的知识推理提供了一系列的评价体系和测试数据集。
4. SQuAD(评价端到端的问答系统解决方案):是斯坦福大学推出的一个大规模阅读理解数据集。
5. Quora QA (评价问题相似度计算)
6. SemEval (词义消歧评测):SemEval是一个技术竞赛,主要包括推特情感与创造性语句分析、实体关联、信息抽取、词汇语义学以及阅读理解与推理等几方面内容。
1. 现有的自然语言理解技术在处理自然语言的歧义性和复杂性方面还比较薄弱;
2. 此类系统需要大量的领域知识来理解自然语言问题,一般需要人工输入;一些系统需要开发一个专用某个领域的基于句法或者语义的语法分析器或者引入一个用户词典或者映射规则等。
1. 使用Elasticsearch搭建知识问答系统
2. 基于gAnswer构建中英文知识问答系统