APP下载

基于深度学习的问答系统开发

2021-06-01

数字技术与应用 2021年4期
关键词:爬虫分词知识库

(北方工业大学信息学院,北京 100144)

0 引言

在一些日常培训教学场景中经常出现一种比较尴尬的情况,就是在学生问出一些老师无法立刻给出答案的科学问题时,老师不能在没有查阅准确资料的情况下正确回答问题,经分析,在新时代的青年学生在接触了多种多媒体资料后通常对一些未知的知识充满好奇,并且会在实际场合中向老师提问,基于深度学习的问答系统开发的成果主要包括以下内容:基于B/S架构的智能答疑系统软件以及基于问题回答语言自动生成相关技术的一项发明专利。

1 系统相关技术分析

1.1 问题关键字提取

基于深度学习的自动问答系统需要对学生提出的问题进行关键字抽取操作,抽取出最能体现句子含义的一些词或短语,问题关键字抽取在很大程度上影响着自动答疑软件返回答案的准确性。问题关键字提取主要经过学生输入问题、中文分词、关键字提取三个步骤。自动问答系统输入模块主要支持两种提问形式,学生可以在文本框内直接输入文字也可以通过语音输入问题。而中文分词本系统使用的是jieba全模式方式进行分词,全模式分词会扫描所有可以成词的词语,分词速度快,呈现关键词完整,容错率较高,对于可能出现的重复词,使用NLTK(Natural Language Toolkit)模块进行去重,达到准确分词的效果。本系统关键字提取步骤采用的是词频-逆向文件频率模型(TF-IDF),该算法根据某些词语或者短语在目标文本中出现的频率,给予其一定权重,最后统计各个词语或短语的权重和,最终以权重和选取关键词检索的一种算法。意思就是,如果一个词语或短语在文本中出现频率较高,那么它的权重就高;反之,若一个词出现的次数很少甚至不出现,则它的权重就低。

1.2 知识库关键词检索

基于深度学习的自动问答系统提取出学生问题关键词后,会将其与知识库中的问题关键词进行对比,计算并选取相似度高的问题,返回其答案,现在使用比较广泛的相似度计算方法有基于向量余弦的相似度计算方法,基于语料库的相似度计算方法,二者有各自的使用场景也各有优缺点,本项目结合二者的优点,在此之上按照本项目的相关情况,设计出了关键词相似度计算方法。

首先,基于深度学习的自动问答系统接收到关键词后,采用基于向量余弦模型(VSM)计算方法,该模型的使用前提条件是要基于图论的理论依据,所以两个词语之间必须存在关联,通过判断两个词语转换成两个余弦向量之后的向量距离来判断两者之间的相似度大小。在系统中使用向量空间模型将问题句子映射为一个向量a(x1,x2,x3,…,xn),将目标句子映射为另一个向量b(y1,y2,y3,…,yn),如图1所示。

计算其对应向量之间的夹角余弦:

此方法能够简单直接的计算出词义的相似度,但也存在不能够反映词语在不同语境所表达的不同含义,所以本项目需要有针对性的建立语料库,补足关键字匹配关联性的问题。

1.3 答案语言自动组织

基于深度学习的自动问答系统需要采用自然语言生成技术对答案语言进行组织,自然语言生成是自然语言处理的一部分,可以看做自然语言处理的反向过程,该技术通常接受非语法格式的输入,采用知识库或者逻辑形式等机器表述系统生成自然语言。

图1 映射向量Fig.1 Mapping vector

针对学生语言特点的分析,本项目采用N-gram模型进行语言组织。N-gram模型是一种语言模型(Language Model,LM),是一个基于概率的判别模型,它的输入是一句话(单词的顺序序列),输出是这句话的概率,即这些单词的联合概率(joint probability)。N-gram模型类似于生活中“联想”的原理。比如:当我们提到“西瓜”时,我们会立刻联想到“绿色”“大”“圆的”这些词语、当提到“上火”、“金罐”时,肯定会联想到“加多宝”而不是百事可乐。Ngram基于这样的思想,它的特点是某个词语的出现依赖于其他若干个词语,并且获取的信息越多,预测越准确。

得到了经过N-gram模型排列组合的语句之后,本软件采用基于LSTM的自然语言生成模型输出答案[1]。双向长短时记忆网络(Long Short-Term Memory,LSTM)算法设计是传统的循环神经网络(Recurrent Neural Network,RNN)的扩展[2],在技术上解决了RNN容易出现梯度消失的问题,在长序列的中有更好的表现。

基于LSTM的自然语言生成模型,如图2所示,主要是通过抽样选取的方式将一个个词语拼接成完整的句子,利用编码解码的方式,进而达到描述语义的目的。

图2 LSTM 的自然语言生成模型Fig.2 LSTM's natural language generation model

LSTM内部,如图3所示,使用门控机制解决了RNN的梯度消失问题[3],通过三个门结构:输入门、遗忘门、输出门、选择性地遗忘部分历史信息,加入部分当前输入信息,最终整合到当前信息产生输出信息。

图3 LSTM 内部结构图Fig.3 LSTM internal structure diagram

2 功能模块设计

2.1 学生模块

基于深度学习自动问答系统中主要的使用权限为学生用户,主要的功能是提问,步骤如下:学生进入首页,登录自己的帐号,进入提问页面,使用语音提出问题,或在文本框内输入问题,点击提交。系统收到问题后判断问题输入格式,如果是语音输入则公司原有系统将语音转化为文字进行录入。系统处理接收到的句子,进行分词和提取关键词操作。系统根据关键词在知识库中检索相似度高的问题。按照相似度从高到低输出检索到的问题答案。如果没有相似度高的问题,转向搜索引擎搜索问题,同时使用网络爬虫抓取相关网页。

搜索到答案之后,使用自然语言生成技术将答案返回给学生,同时提示答案来源于网络。教师通过历史记录给出标准答案后,学生通过查看历史记录获取。

2.2 教师模块

基于深度学习的自动问答系统中教师的使用权限为教师用户,主要负责解答学生问题,筛选爬虫结果,具体步骤如下:教师在首页里登录,需要先确认教师身份,认证通过后进入教师用户页面,可以在此页面管理学生的相关信息。教师可以查看历史记录,查看是否有新提出的问题,该问题在现有知识库中是否存在,若已有问题,查看是否准确,是否需要更改;若未记录,查看搜索引擎以及网络爬虫结果。审阅搜索以及抓取到的结果是否正确,说法是否符合学生理解能力。如果对结果满意,可以将问题及答案添加到知识库;如果不满意,可以删掉结果,自行撰写答案,添加到知识库中。

3 系统界面

基于深度学习的自动答疑系统是一套B/S 架构的智能答疑系统,可以帮助学生答疑科学常识相关课程难点,提高学生的自主学习能力;也方便教师集中寻找问题,及时对课程内容和教学方法进行调整。如下表是该软件简单介绍:

完成注册信息后,返回首页点击登录,进入登录页面,输入信息,通过身份验证后可以进入使用界面。学生进入使用界面后,可以在文本框中输入自己想问的问题;或点击麦克风录入问题,说完语音后系统会将语音转化为文字显示在文本框内,确认完成后点击提交即可获取答案。

在提交问题后,系统分析模块便开始分析问题。具体流程如下:

开始进行自然语言理解,进行分词、语义理解、提取关键词;在知识库中比较提取出来的关键词相似度查找答案,找到相似度超过0.5的问题,将答案以列表形式返回给学生。

如果知识库中未收录过该问题,系统将会转向使用搜索引擎到网络上查找答案。同时使用网络爬虫下载所有问题相关的网页,将抓取到的结果添加到知识库中。系统会将搜索到的结果返回显示给学生,同时提示“所提问题在知识库中未收录,已为您在网上查询到如下结果,结果可能存在错误,请等待教师确认。”等教师审核搜索结果并确认标准答案后,学生点击“查看历史问题”即可查看准确答案。

4 结语

本系统所实现的主要功能包括基于网络爬虫和历史数据的知识库自动构建,在系统的使用过程中,随着使用者在本系统进行提问,随着问题数量增加和类型不断地丰富,本系统的网络爬虫功能会爬取网上与问题相关的网页,丰富知识库的内容,然后系统对网络爬虫爬取的答案进行筛选,这样不仅能够有效增强知识库的精确性,同时该系统可通过网络爬虫靶向性地聚集在问答内容密集的网站,为知识库的数据维护提供保障。另外本系统还实现了基于深度学习的问题答案语言自动组织与撰写,当用户使用本软件进行提问时,输入问题之后进行自然语言处理、提取关键字,在知识库中检索问题答案,最后采用自然语言处理的文本生成技术进行答案语言组织将查询结果显示给用户。

猜你喜欢

爬虫分词知识库
利用网络爬虫技术验证房地产灰犀牛之说
基于Python的网络爬虫和反爬虫技术研究
分词在英语教学中的妙用
结巴分词在词云中的应用
结巴分词在词云中的应用
基于TRIZ与知识库的创新模型构建及在注塑机设计中的应用
利用爬虫技术的Geo-Gnutel la VANET流量采集
大数据环境下基于python的网络爬虫技术
高速公路信息系统维护知识库的建立和应用
基于Drupal发布学者知识库关联数据的研究