摘要
在人工智能时代,以关键词搜索的方式获取信息存在着很多的局限性,已经不能 满足互联网用户获取信息的需求。例如,用户搜索不到真正需要的信息,返回的无关 信息太多,或者用户需要的信息未排列在前几位结果中。能够接受用户以自然语言的 形式提问,并能从大量的数据中查找或推断出用户问题答案的问答系统就成为了当前 学者们的研究热点。
问答系统按照问题的领域可以分为开放领域和限定领域的问答系统,根据答案的 生成方式可以分为检索式和生成式的问答系统。本团队与西安交通大学口腔医院修复 科合作设计一套基于神经网络技术的智能问答系统,最终本文设计的问答系统属于基 于检索式的兼顾开放领域和限定领域的问答系统,系统中涉及的限定领域就是口腔修 复领域。也就是说本文设计的问答系统既能够回答开放领域的问题,类似于聊天机器 人,又能够回答限定领域(口腔修复)的问题,同时还能回答一些患者常问问题(就 医流程,就医环境等)。本文的主要的研究内容包括语义相似度计算方法,问题分类 方法,口腔修复领域问题语义分析等,主要的贡献如下:
1.对于语义相似度计算,本文设计了两种方法,第一种是使用Siamese网络架构 去做语义相似度计算。对于Siamese网络架构中的网络A和网络B,我们使用的是 Bi-LSTM与Attention机制相结合的网络结构,然后使用曼哈顿距离计算两个文本向 量之间的距离。第二种是基于当下比较流行的预训练方法去做语义相似度计算。本文 选择刷新11项自然语言处理任务记录的预训练模型BERT来完成这个任务。针对本 文的数据集,本文对这两种方法做了详细的实验对比,选择了一个性能较优的方法。
2.对于问题分类,本文设计了三种方法。第一种是釆用带有高斯核函数的非线性 支持向量机对问题进行分类,以数据的TF-IDF值作为特征。第二种是釆用Bi-LSTM 与Attention机制相结合的神经网络分类模型对问题进行分类。第三种是基于预训练 方法去完成问题分类任务,本文选择的预训练模型依然是BERT0针对本文的数据集, 本文对三种方法做了详细的实验对比,最终选择了一个各项指标都较优的方法。
3.对于口腔修复领域问题语义分析,本文对问题进行分词、词性标注、依存句法 分析等步骤。然后本文经过对大量的用户问题进行实验,本文制定了一套依存关系过 滤规则,在系统的实际运行中取得了非常好的效果。
本文在最后对所设计的问答系统的各个模块以及整个系统做了详细的测试,测试 结果显示本文所设计的问答系统完全达到了上线运行的标准。本文所设计的问答系统 巳经在西安交通大学口腔医院修复科公众号中投入使用,并且得到了用户的一致好评。
关键词:人工智能,问答系统,语义相似度计算,问题分类,语义分析
插图索引
图2.1神经网络语言模型 10
图 2.2 CBOW 模型和 Skip-gram 模型 11
图2.3 Siamese网络架构 12
图2.4 RNN的网络结构 12
图2.5LSTM网络结构 13
图2.6支持向量与间隔 16
图2,7非线性分类问题 19
图2.8 Bi-LSTM分类模型 20
图3.1基于神经网络技术的智能问答系统架构 27
图4.1 Attention 的计算过程 31
图4.2 Siamese网络其中一个网络的网络结构 32
图 4.3 Transformer 模型架构 34
图4.4 BERT的预训练阶段和微调阶段 36
图4.5语义相似度计算所使用的数据集 38
图4.6 口腔修复类和普通闲聊类的数据格式 41
图5.1 XML数据包格式 46
图5.2被动回复文本消息 47
图5.3接收和回复公众号用户消息的程序流程图 47
图5.4语义相似度检测模块的测试结果 48
图5.5问题分类模块测试结果 49
图5.6 口腔修复领域问答对的数据格式 53
图5.7 口腔修复答模块的测试结果 54
图5.8 API V2.0请求数据包的格式 56
图5.9闲聊模块的测试结果 57
图5.10对于不同长度的用户问题系统的响应时间测试 59
图5.11公众号关注时和关注之后的界面 60
图5.12普通闲聊和患者常问问题展示 61
图5.13 口腔修复类中“什么是烤瓷牙?"问题展示 62
图5.14 口腔修复类中“口腔修复的流程是什么? ”和“做覆盖义齿的好处? ”问题展示
图5.15公众号中公众服务和微服务的界面 63
图5.16公众号中公众服务的和微服务中的修复科普 64
图5.17随访go小程序中的界面 64
表格索引
表4.1语义相似度检测算法的实验环境 38
表4.2基于Siamese Attention Bi-LSTM网络的语义相似度计算的实验数据 39
表4.3基于预训练模型BERT的语义相似度计算的实验数据 39
表4.4问题分类算法的实验环境 41
表4.5 口腔修复和普通闲聊类的数据分布情况 41
表4.6 预测情况统计表 42
表4.7三种问题分类方法的实验结果 43
表5.1 XML数据包中各个参数的含义 46
表 5.2 amod 的过滤规则 51
表 5.3 advmod 的过滤规则 51
表5.4义分析模块对用户问题的处理流程 52
表5.5 API V2.0请求数据包中的参数说明 56
表5.6 Perception参数中的参数说明 56
表5.7问答系统的准确性测试结果 58
目录
摘要 I
ABSTRACT Ill
插图索引 V
表格索引 VII
符号对照表 IX
缩略语对照表 XI
第一章绪论 1
1.1研究背景与研究意义 1
1.2国内外研究现状 2
1.3研究目标与研究内容 3
1.4论文组织结构 4
第二章问答系统的相关理论和技术 7
2.1.1基于TF-IDF的语义相似度计算 7
2.1.2基于潜在语义索引主题模型的语义相似度计算 8
2.1.3基于词向量的语义相似度计算 8
2.1.4基于Siamese循环网络的语义相似度计算 11
2.2问题分类方法 14
2.2.1基于朴素贝叶斯的分类方法 14
2.2.2支持向量机分类 15
2.23基于Bi-LSTM模型的分类方法 20
2.3本章小节 21
第三章问答系统的总体设计 23
3.1问答系统的开发目标 23
3.2问答系统的设计思路 24
3.3需求分析 24
3.3.1功能性需求 25
3.3.2非功能性需求 25
3.4系统的工作流程与模块设计 26
3.4.1语义相似度检测模块 27
3.4.2问题分类模块 28
343 口腔修复问答模块 28
3.4.4闲聊模块 28
3.5 本章小结 29
第四章 问答系统的核心算法设计 31
4.1语义相似度计算算法设计 31
4.1.1基于Siamese Attention Bi-LSTM的语义相似度计算 31
4.1.2基于预训练模型BERT的语义相似度计算 32
4.13实验测试 37
4.2问题分类算法设计 40
4,2.1基于釆用高斯核函数的非线性SVM的问题分类方法 40
4.2.2基于Attention Bi-LSTM网络的问题分类方法 40
4.23基于预训练模型BERT的问题分类算法 40
4.2.4实验测试 40
4.3 本章小结 43
第五章问答系统的实现与测试 45
5.1系统实现 45
5.1.1问答系统的展示平台 45
5.1.2语义相似度检测模块 48
5.1.3问题分类模块 49
5.1.4 口腔修复问答模块 50
5.1.5闲聊模块 55
5.2系统核心性能测试 57
5.2.1问答系统的准确率测试 57
5.2.2系统响应时间测试 59
5.3系统功能展示 60
5.3.1公众号界面 60
5.3.2智能问答系统功能 61
5.3.3公众号中的其他功能 63
5.4本章小结 65
第六章 总结与展望 67
6.1总结 67
6.2展望 68
参考文献 69
致谢 71
第一章绪论
1.1研究背景与研究意义
在互联网时代,用户可以通过搜索引擎获得自己需要的信息,但是随着互联网数 据的不断增加,用户快速准确地获取信息的需求日益增长,搜索引擎技术的缺点逐渐 显现出来。首先,对于传统搜索引擎来说,用户只能通过关键字去搜索,这也就是说, 用户需要将自己所要搜索的内容凝练为若干个关键词后再去搜索。但是对于普通的互 联网用户来说,他们一般很难用少量的关键词去表达自己要搜索的内容。其次,传统 搜索引擎很难准确的返回用户问题的答案,而是返回一系列的网页。而用户则需要去 逐个阅读这些网页,然后再从中寻找答案。根据MORI的民意调查,只有18%的互联 网用户能够在网络上搜索到自己想要的内容,而68%的互联网用户对现有搜索引擎 搜索到的内容都不满意⑴。
为了改善互联网用户获取信息的用户体验,学者们开始研究以自然语言作为输入 与输出的问答系统。对于问答系统而言,用户能够使用自然语言去表达自己要查询的 内容,并且可以用文本、语义、图像方式输入进系统。而且问答系统也不像传统的搜 索引擎只是做简单的关键词搜索,而是先去解析用户的意图,然后根据用户的意图去 提供答案。在提供答案的过程中,问答系统会将提供给用户的答案凝练成最简单的自 然语言,这极大地提高了用户获取信息的效率。因此,未来问答系统将是互联用户获 取信息的重要通道。
近几年来,随着计算机性能的不断提升,互联网中数据量的不断增加,机器学习 和深度学习方面都有了很多突破性的研究。机器学习和深度学习的发展促进了人工智 能领域的飞速发展,对于人工智能中的三个重要方向,图像识别,自然语言处理和语 音识别都有了很多颠覆性的进展。问答系统作为自然语言处理的一个重要应用,用户 体验和性能自然而然也有了一些前所未有的提升。尤其是神经网络技术在问答系统中 的应用,对于分析用户的自然语言的语义有着得天独厚的优势。而本文介绍的基于神 经网络技术的智能问答系统在每个模块中都运用到了神经网络技术,并且与传统的问 答系统中使用的方法相比,取得了非常不错的效果。
随着“互联网+”行动计划的提出,互联网已经深入到各行各业,传统医疗也站 到了风口上,借助互联网和人工智能的特性,互联网医疗软件层出不穷,并且因为其 的便捷性、智能性,受到人们的热烈欢迎⑵。中国是世界人口第一大国,庞大的人口 基数以及快速增长的老龄人口带来了持续增长的医疗服务需求。医生和护士每天要面 对成百上千个患者,每天需要回答不同患者相同的问题好几次。为了提高患者的就医 体验,减少医生的工作量,本团队与西安交通大学口腔医院修复科合作开发了一个基 于神经网络技术的智能问答系统,为用户解答一些就医流程,就医环境以及口腔修复 方面的问题。
1.2国内外研究现状
20世纪50年代英国数学家图灵发表了论文《Computing Machinery and Intelligence》,并在文中提出“机器智能”的概念以及判定机器是否智能的“图灵测试” [3]o图灵测试的内容是:在互相不知道的情况下,一台拥有智能的机器和一个人进行 随机的提问交流,如果超过30%的测试者没有发现对方是机器的话,那我们就认为这 台设备是拥有“人类智能”的智能设备"I。也就是说在那个时候,人们己经有了智能 问答的构想,到了 1961年,格林(Green)研发了第一个问答系统“BASEBALL”。
"BASEBALL”能够回答美国一个季度棒球比赛的时间、地点、成绩等自然语言问题 ⑸。“BASEBALL”问答系统的原理就是数据库查询,它把用户的问题转换成SQL查 询语句,然后用SQL查询语句在它后台数据库中查找答案。1966年,由约瑟夫维森 鲍姆(JosephWeizenbaum)研发的名为"Eliza"的问答系统冋,它类似于一个心理医 生,让病人跟它进行交流,医生从对话中得到一些信息,然后辅助医生进行治疗。后 来,还出现了 LUNAR、SHRDLU、Bobrow等问答系统,但是由于当时相关知识的局 限性,问答系统一直处于一个缓慢发展的阶段。
到了 20世纪90年代,问答系统的研究和开发热点转向了基于大规模文档集的问 答系统。自然语言处理领域的一些著名会议开展了问答系统评测专项和开放域问答系 统专题。后来问答系统的研究领域也从早期的一些专业领域拓展到了开放领域,语料 也逐渐从固定语料库扩占到了互联网。1993年麻省理工学院人工智能学院开发了世 界上第一个基于Web的问答系统“Start”】,不同于信息检索系统,它不是提供相关 的文章或者网页,而是直接提供给用户“准确的信息”。近年来,由于自然语言处理、 大数据和信息检索等技术的发展,2011年IBM公司和美国德克萨斯大学联合研发的 问答系统沃森(Watson)㈤参加以问答为主的综艺节目《危险边缘》。Watson中存储 了海量的数据,而且拥有一套逻辑推理程序,可以推理出它认为最正确的答案。微软 2014年推出了聊天机器人小娜和小冰,并将小娜内置到了 Windows系统中。小冰随 后升级,新增了语音识别、图像识别的功能。微软作为互联网行业的开拓者,在机器 学习、大数据方面有着非常强的技术储备,并且有着大量的数据积累,所以小冰有着 几乎超越人类交流能力〔9】。
与国外问答系统的发展相比,国内还是起步比较晚。1980年,中国科学院研发了 第一个中文问答系统,从此揭开国内问答系统的序章。1998年,陆汝铃院士通过研究
常识知识本体论与人的智能的关系,提出“Agent和本体是常识知识库的两大支柱” 的观点卩°],并且建立一个大型的常识知识库"Pan-gu”,并在其基础上研发了 Autotalk System0中国科学院计算技术研究所曹存根〔山研究员率领课题组,建立了国家知识基 础设施(NationalKnowledgeInfi"astructure, NKI)知识库。国内问答系统的发展很难 赶上国外主要有两个方面的原因:第一是国外的问答系统大部分都是基于英文的,对 于中文的系统来说有很多的技术难以借鉴,并且中文本身就存在一些特殊性。第二是 国内缺少很多有关问答系统的评测系统,并且缺少很多有关问答系统的专业语料库[⑵。
近年来,许多互联网公司和高校参与到问答系统的研究中来,其中中国科学院、 复旦大学,哈尔滨工业大学、百度等在TREC问答技术测评中都取得了不错的成绩。 百度凭借自己在搜索引擎方面的优势,在2014年推出了能够与人进行有关情感、信 息的交互的小度机器人,并且在其中集成了视觉、自然语言理解与语音等人工智能技 术[13]。在2015年阿里巴巴集团推出“阿里小蜜”机器人,它集合了阿里巴巴旗下的 支付宝、淘宝网、天猫商城、等业务的使用条例、交易规范等信息,通过理解用户的 语义与意图,实现了超越人机交互的自然交互。2019年10月,第九届“吴文俊人工 智能科学技术奖”公布获奖名单,阿里巴巴的“阿里小蜜”与清华大学智能技术与系 统国家重点实验室联合获得人工智能科技进步奖“一等奖”。
1.3研究目标与研究内容
本文旨在设计一套基于神经网络技术的智能问答系统,此系统不仅能够回答口腔 修复方面的问题,还要能够回答一些有关就医流程,就医环境的用户常问问题,并且 还要能够与患者以闲聊的方式进行聊天,安抚患者的就医情绪。本系统主要包括四个 模块:语义相似度检测模块,问题分类模块,口腔修复问答模块,闲聊模块。语义相 似度检测模块主要是判断用户提出的问题是否与有关就医流程、就医环境等常问问题 的问题库中的哪个问题相似,如果找到相似的问题,就将此问题对应的答案返回给用 户,如果没有找到相似的问题就将用户的问题传给问题分类模块。本系统将用户提岀 的问题,除去常见的就医流程、就医环境的常问问题之外的问题分为两类:口腔修复 和闲聊。如果用户的问题分类分到了闲聊类,那么问题分类模块就将用户的问题传给 闲聊模块。如果用户的问题分类分到了口腔修复类中,那么问题分类模块就将用户的 问题传给口腔修复问答模块。口腔修复问答模块负责给用户提出的口腔修复类问题提 供答案。闲聊模块负责给用户提出的闲聊问题提供答案。最终此智能问答系统会接入 到“西安交通大学口腔医院修复科”的公众号中,关注了此公众号的用户可以直接在 公众号的消息框中进行提问。
本文的研究内容主要包括以下几个方面:
1.对于语义相似度计算算法,本文提出了两种方法,第一种是使用Siamese网络 架构,然后对于其中的网络A和网络B,使用Bi-LSTM与Attention机制相结合的方 式来表征文本,使用曼哈顿距离计算两个文本之间的相似度。第二种是使用当下比较 流行的预训练方法,本文将刷新11项自然语言处理任务的记录的预训练模型BERT 应用在语义相似度计算任务中。本文对于两种语义相似度计算方法,在同一个数据集 上,做了详细的实验,最终综合各项指标,选择了一个性能更优的方法。
2.对于本系统的问题分类模块,针对本系统数据的情况,本文提出三种方法,第 一种是使用带有高斯核函数的非线性支持向量机对问题进行分类,以数据的TF-IDF 值作为数据的特征。第二种是训练了一个Bi-LSTM与Attention机制相结合神经网络 模型对问题进行分类。第三种是基于预训练模型的方法,本文将预训练模型BERT应 用在问题分类任务中。本文对这三种问题分类算法,做了详细的实验,最终比较实验 结果中的各项指标,选择了一个效果最好的方法。
3.本系统中的口腔修复问答模块是专门回答用户提出的口腔修复方面的问题。口 腔修复问答模块分为两个子模块,语义分析和检索子模块。语义分析分析子模块,本 系统对用户的问题进行分词、词性标注、依存句法分析,最重要的是本文根据对用户 大量实际问题进行测试,最后对依存句法分析的结果制定了一套过滤规则。检索子模 块,主要使用来实现用语义分析子模块中的结果在口腔修复问题库中搜索相似的问题。 在搜索的过程中本文加入了同义词替换,重点医疗词语提高权重等方法,最终口腔修 复问答模块有一个非常不错的效果。
4.本系统是一个能够回答开放领域(闲聊)、限定领域(口腔修复)、常问问题(有 关就医流程、就医环境)等问题的智能问答系统。本文需要集成多个模块,以一个合 理的方式运行,并且最后将此问答系统接入微信公众号中,以至于用户可以在公众号 的消息框中直接提问。
1.4论文组织结构
根据研究目标与研究内容,本文通过五个章节,详细地阐述了基于神经网络技术 的智能问答系统的设计与实现,具体安排如下:
第一章,绪论。阐述了问答系统的研究背景以及研究意义,叙述了问答系统的国 内外研究现状,说明了本文的研究目标与研究内容,最后给出了论文的组织结构。
第二章,问答系统的相关理论和技术。详细地分析和阐述了问答系统的相关理论 技术和关键技术,其中包括语义相似度计算和文本分类等所涉及的一些理论知识和算 法原理。
第三章,问答系统的设计。首先详细地阐述了西安交通大学口腔医院修复科对智 能问答系统的需求。其次本文对于西安交通大学口腔医院修复科的需求,做了功能性 需求分析和性能需求分析,最终给出问答系统的总体设计思路以及系统的各个模块设 计。
第四章,问答系统的算法设计。首先本文提出两种语义相似度计算算法,对两种 算法的算法原理做了详细的阐述,并且分别对两种算法做了详细的实验,经过比较各 项指标最终选择了一个性能更优的算法。然后本文提出三种问题分类算法,对三种算 法的算法原理做了详细的阐述,并且分别对三种算法做了详细的实验,经过比较各项 指标最终选择了一个效果最好的算法。
第五章,问答系统的实现。首先详细地阐述了问答系统中各个模块的实现以及最 终的呈现方式。然后本文测试了问答系统的准确性以及问答系统对用户不同长度的问 题的系统响应时间,最终做了问答系统的展示。
第六章,总结与展望。总结了本文的研究成果以及创新点,并讨论了问答系统的 不足以及未来的改进方向。