中文问答系统调研报告目录问答系统调研报告 (1)1 问答系统的价值体现 (3)1.1市场应用价值 (3)1.2 弥补了搜索引擎的不足 (3)1.3 总结 (3)2 问答系统的市场应用情况 (3)3 问答系统整体框架 (5)3.1 问答实现流程 (5)3.2问句分析模块 (6)3.2.1中文分词 (6)3.2.2关键词提取 (9)3.2.3关键词扩展 (10)3.2.4实体识别 (11)3.2.5问句分类 (12)3.3 信息检索模块 (13)3.3.1模式匹配 (13)3.3.2答案检索 (13)3.3.3知识图谱 (16)3.4答案抽取模块 (21)3.4.1基于规则的方法 (21)3.4.2基于统计的方法 (22)4 问答系统的应用场景 (23)4.1 任务型 (23)4.2 问答型 (24)4.3 语聊型 (24)5 调研总结 (30)1 问答系统的价值体现1.1市场应用价值问答系统是智能人机交互的技术基础,智能人机交互通过拟人化的交互体验逐步在智能客服、任务助理、智能家居、智能硬件、互动聊天等领域发挥巨大的作用和价值。
因此,各大公司都将智能聊天机器人作为未来的入口级别的应用在对待。
包括Google、Facebook、Microsoft、Amazon、Apple等互联公司相继推出了自己的智能私人助理和机器人平台。
1.2 产品技术价值1、搜索引擎的缺陷:一方面,用户所输入的搜索关键词或关键句,无法真实反映用户需求;另一方面,检索系统仅仅通过几个关键词的简单逻辑组合来返回答案。
两方面的误差造成检索结果很差。
检索结果不够简洁。
冗余信息使用户难以快速准确定位所需信息,造成时间和精力的浪费。
缺乏对用户问句的语义理解。
只靠关键词的索引或简单的匹配算法,并不能真正触及到问题的真实意思,使检索结果一般。
2、问答系统能针对搜索引擎缺陷的改进1)问答系统允许用户以自然语言的形式询问或者输入。
2)问答系统能直接返回答案,提供给用户简洁、有效的答案。
3)问答系统能分析用户意图,提供给用户真正有用、准确的信息。
1.3 总结无论是在日常生活中查阅资料,还是在科学研究、商业金融等领域的应用,都有智能问答的参与,所以智能问答的发展与管理将是人们不可忽视的研究方向。
2 问答系统的市场应用情况按照市场应用情况可分为五类:在线客服,娱乐机器人,教育聊天机器人,个人助理和智能问答.(1) 在线客服在线客服聊天机器人系统的主要功能是和用户进行基本沟通并自动回复用户有关产品或服务的问题,降低企业客服运营成本,提升用户体验.应用场景通常为网站首页和手机终端,代表有小爱机器人,JIMI(JD)客服机器人,JIMI具有一定的拒识能力,即能够知道自己不能回答用户的哪些问题以及何时应转向人工客服.(2) 娱乐娱乐机器人主要同用户进行开放主题的对话,从而实现对用户的精神陪伴,情感慰藉和心理疏导等作用,主要针对社交媒体,儿童玩具,代表产品有微软小冰和腾讯的小微,小微除了能够与用户进行开放主题的聊天外,还能提供特定主题的服务,如天气预报和生活常识等.(3) 教育教育聊天机器人根据教育内容构建交互的语言使用环境,帮助用户学习某种语言,在学习某项专业课程时,指导用户逐步深入学习并掌握技能,用户的特定年龄阶段,帮助用户进行某种知识的辅助学习等.通常该类聊天机器人具备交互学习功能,培训软件及智能玩具等,代表有科大讯飞开心熊宝系列玩具.(4) 个人助理该类聊天机器人主要通过语音或文字与聊天机器人系统进行交互,实现个人事务的查询及代办,如天气查询,空气质量查询,定位,短信收发,日程提醒和智能搜索等,从而更便捷辅助用户的日常事务处理,代表有Apple的Siri,Google Now, Cortana.(5) 智能问答智能应答的聊天机器人主要功能包括以自然语言形式提出的事实型问题和需要计算和逻辑推理型的问题,已达到满足用户的信息需求及辅助用户进行决策的目的.代表有IBM watson.3 问答系统整体框架3.1 问答实现流程图1 问答系统框架图(一)问句分析模块对问句做自然语言处理操作,分析意图并确定问句答案类型。
对用户的提问进行处理:1)生成查询关键词(提取关键词、扩展关键词,……);2)解析问句的实体或关系;3)确定答案类型。
(二)信息检索模块1、模式匹配对于某些提问类型(某人的出生日期、原名、别称等),问句和包含答案的句子之间存在一定的答案模式,或者从已有问答对库中进行匹配得出候选答案。
2、信息检索利用问题处理模块抽取的查询关键词,用信息检索方式,检索出和提问相关的信息(段落、也可以是句群或者句子),作为候选答案。
3、KBQA对问句进行语义理解和解析,利用知识库进行查询、推理得出答案,把查询到的实体作为候选答案或直接作为答案。
(三)答案抽取模块:从检索模块检索出的相关段落、或句群、或句子中抽取出和提问答案类型一致的实体,根据某种原则(再做探究)对候选答案进行打分,把概率最大的候选答案返回给用户。
或者,使用训练好的统计学习模型,对候选答案进行二分类,判别是否作为答案输出。
1基于传统方法进行答案提取关键词匹配+相似度计算及排序2基于统计学习模型进行答案提取提取特征+选取机器学习模型3.2问句分析模块3.2.1中文分词a)基于规则的分词方法主要是人工建立词库也叫做词典,通过词典匹配的方式对句子进行划分。
其实现简单高效,但是对未登陆词很难进行处理。
主要有正向最大匹配法,逆向最大匹配法以及双向最大匹配法。
正向最大匹配法(FMM)(1)从左向右取待分汉语句的m个字作为匹配字段,m为词典中最长词的长度。
(2)查找词典进行匹配。
(3)若匹配成功,则将该字段作为一个词切分出去。
(4)若匹配不成功,则将该字段最后一个字去掉,剩下的字作为新匹配字段,进行再次匹配。
(5)重复上述过程,直到切分所有词为止。
逆向最大匹配法(RMM)RMM的基本原理与FMM基本相同,不同的是分词的方向与FMM相反。
RMM是从待分词句子的末端开始,也就是从右向左开始匹配扫描,每次取末端m个字作为匹配字段,匹配失败,则去掉匹配字段前面的一个字,继续匹配。
双向最大匹配法(Bi-MM)Bi-MM是将正向最大匹配法得到的分词结果和逆向最大匹配法得到的结果进行比较,然后按照最大匹配原则,选取词数切分最少的作为结果。
据SunM.S.和Benjamin K.T.(1995)的研究表明,中文中90.0%左右的句子,正向最大匹配法和逆向最大匹配法完全重合且正确,只有大概9.0%的句子两种切分方法得到的结果不一样,但其中必有一个是正确的(歧义检测成功),只有不到1.0%的句子,使用正向最大匹配法和逆向最大匹配法的切分虽然重合但是错的,或者两种方法切分不同但结果都不对(歧义检测失败)。
双向最大匹配的规则是:(1)如果正反向分词结果词数不同,则取分词数量少的那个。
(2)如果分词结果词数相同:1)分词结果相同,没有歧义,返回任意一个。
2)分词结果不同,返回其中单字数量较少的那个。
b)基于统计的分词方法基于统计的分词法的基本原理是根据字符串在语料库中出现的统计频率来决定其是否构成词。
词是字的组合, 相邻的字同时出现的次数越多, 就越有可能构成一个词。
因此字与字相邻共现的频率或概率能够较好的反映它们成为词的可信度。
1 N元语法(N-gram)模型和隐马尔可夫模型(HMM)在N元语法中,一个句子可以看成一个连续的字符串序列,它可以是单字序列,也可以是词序列。
一个句子W1W2......Wk的出现概率用P(W)表示,则:式1互信息用来表示两个字之间结合的强度,其公式为:式2可能性越大。
当两个词x与y关系强时,MI(x , y )>= 0;x与y关系弱时,MI (x , y )≈0;而当MI(x , y )< 0时,x与y称为“互补分布”。
3 最大熵模型“熵”是用来表示一个随机事件的不确定性的量度,其公式为:式3其主要思想是在只掌握关于未知分布的部分知识时,应选取符合这些知识但熵值最大的概率分布。
式中,S在实验结束前是实验结果不确定性的度量,实验完成后是从实验中获得的信息量。
S越大表明不确定性越大,实验结束后从中得到的信息量也越大。
分词工具:(1)Jieba支持三种分词模式:精确模式。
试图将句子最精确地切开,适合文本分析。
全模式。
将句子中所有的可能成词的词语都扫描出来,速度非常快,但是不能解决歧义。
搜索引擎模式。
在精确模式的基础上,对长词再次切分,提高召回率,适用于搜索引擎分词。
另外jieba 支持繁体分词,支持自定义词典。
其使用的算法是基于统计的分词方法,主要有如下几种:i基于前缀词典实现高效的词图扫描,生成句子中汉字所有可能成词情况所构成的有向无环图(DAG)ii采用了动态规划查找最大概率路径, 找出基于词频的最大切分组合iii对于未登录词,采用了基于汉字成词能力的HMM 模型,使用了Viterbi 算法(2)THULACTHULAC(THU Lexical Analyzer for Chinese)由清华大学自然语言处理与社会人文计算实验室研制推出的一套中文词法分析工具包,GitHub 链接:https:///thunlp/THULAC-Python,具有中文分词和词性标注功能。
THULAC具有如下几个特点:能力强。
利用集成的目前世界上规模最大的人工分词和词性标注中文语料库(约含5800万字)训练而成,模型标注能力强大。
准确率高。
该工具包在标准数据集Chinese Treebank(CTB5)上分词的F1值可达97.3%,词性标注的F1值可达到92.9%,与该数据集上最好方法效果相当。
速度较快。
同时进行分词和词性标注速度为300KB/s,每秒可处理约15万字。
只进行分词速度可达到1.3MB/s。
(3) NLPIRNLPIR 分词系统,前身为2000年发布的ICTCLAS 词法分析系统,GitHub 链接:https:///NLPIR-team/NLPIR,是由北京理工大学张华平博士研发的中文分词系统,经过十余年的不断完善,拥有丰富的功能和强大的性能。
NLPIR是一整套对原始文本集进行处理和加工的软件,提供了中间件处理效果的可视化展示,也可以作为小规模数据的处理加工工具。
主要功能包括:中文分词,词性标注,命名实体识别,用户词典、新词发现与关键词提取等功能。
(4)NLTKNLTK,Natural Language Toolkit,是一个自然语言处理的包工具,各种多种NLP 处理相关功能,GitHub 链接:https:///nltk/nltk。
但是NLTK 对于中文分词是不支持的,如果要用中文分词的话,可以使用FoolNLTK,它使用Bi-LSTM 训练而成,包含分词、词性标注、实体识别等功能,同时支持自定义词典,可以训练自己的模型,可以进行批量处理。