基于doc2bow文本相似度的问答系统设计与实现

发表时间:2020/12/11   来源:《文化研究》2020年9月下   作者:杨健
[导读] 当前随着自然语言处理的日益发展,很多领域和行业应用自然语言技术解决了很多问题。

辽宁大连埃森哲信息技术有限公司  杨健   116023

摘要:当前随着自然语言处理的日益发展很多领域和行业应用自然语言技术解决了很多问题.本文基于doc2bow,词向量相似度等技术,设计实现了高效的问答系统。根据历史问答数据形成系统的知识库,并且应用doc2bow生成了对应的字典词向量模型。用户输入问题,通过模型讲输入问题转换为问题向量,将问题向量和历史问题词向量模型进行相似度计算,找到和问题数据模型相似度最高的历史问题,返回对应问题的答案。实验结果表明,基于doc2bow实现的问答系统准确率在90%以上,能有效的应用在很多领域和行业。
关键词:Doc2bow;词袋模型;文本相似度;问答系统
        0 引言
        当前信息网络相关技术发展越来越快速,信息交流也越来越频繁。自然语言处理技术日趋成熟,问答系统也是人工智能的重要领域。目前问答系统普遍存在“答非所问”,问答系统效果差,效率低,运算时间长,模型训练加载时间长等问题。本文基于doc2bow,词向量相似度等人工智能技术,设计实现了高效的问答系统。通过历史问答数据形成系统的知识库并生成了对应的字典词向量模型,根据向量相似度算法计算找到相似问题的答案,实现了智能问答系统的功能,同时对人工智能的发展有深远的意义。
         1.自然语言处理概述
         自然语言处理(英文为Natural Language Processing)缩写为NLP,自然语言处理是人工智能领域的重要部分。自然语言处理主要研究如何处理不同语言的认知、理解、生成等部分。其中自然语言认知和理解是通过电脑将输入的语言文字转换为计算机可以识别的符号和关系,之后根据需求再做细节的处理。自然语言生成主要目的是将计算机的数据内容变为自然语言[1]。
        2 Doc2bow相似度原理
        2.1Doc2bow词袋模型
        Doc2vow的原理是基于词袋模型做的向量相似度运算,词袋模型(英语:Bag-of-words model)可以表示为在自然语言处理和信息检索下被简化的表达的模型。通过词袋模型的原理可以想象成将一段文本或是一个句子,使用一个装着这些词的袋子来表达,这种表示方式不考虑词与词之间的语义关系和词之间的顺序[2]。词袋模型最早出现在自然语言处理和信息检索领域.,并且词袋模型是忽略了文本之间的语法和语序等要素,词袋模型中的每个单词的出现都是独立的,总结我们可以将词袋模型看做是一组没有重复且无序的集合[3]比如句子“我在中国大连,我爱中国”的词袋,可以表示为三个词“我”“在”“中国”“大连”“爱”。在例子中“我”和“中国”出现了2次,其余次出现1次,可以表示为向量[2 , 1, 2, 1, 1]。
        2.2 Doc2bow向量相似度
        关于Doc2bow向量相似度的计算,是将输入文本句子根据词袋模型转换为向量,计算两个向量的距离,距离越近相似度越大。
        Doc2bow相似度的原理是应用了余弦向量相似度算法,又称为余弦相似性,是通过计算两个向量的夹角余弦值来评估他们的相似度。
        对于两个向量,如果他们之间的夹角越小,那么我们认为这两个向量是越相似的。余弦相似性就是利用了这个理论思想。它通过计算两个向量的夹角的余弦值来衡量向量之间的相似度值[3]。
两个向量间的余弦值可以通过使用欧几里得点积公式求出:

 

给定两个属性向量,A和B,其余弦相似性θ由点积和向量长度给出,如下所示:

 


余弦值的范围在[-1,1]之间,值越趋近于1,代表两个向量的方向越接近;越趋近于-1,他们的方向越相反;接近于0,表示两个向量近乎于正交[4]。

        3系统设计与实现
        3.1知识库数据收集
        所用数据来自采购业务相关的问答数据知识库,包括采购相关问题,围绕采购相关政策、报销流程、处理办法等模拟出来的问题和答案数据,一共模拟了81条问答数据作为问答知识库。问答知识库的数据作为计算doc2bow的向量相似度输入数据,通过问答知识库的数据生成词袋模型。知识库数据的收集和处理对问答系统的准确率和问题匹配率有重要意义。
        3.2文本预处理
        通过分词技术分词,分词是自然语言处理的基础,是对数据预处理最重要的环境。分词是将由字符序列构成的句子按照一定的规则重新组合成词的集合,中文分词就是指将句子中汉字序列切分成词集合。Jieba中文分词工具是一款广泛使用、分词效果较好的分词器,开源分词工具,基于前缀词典实现高效的词图扫描,生成句子中汉字所有可能成词情况所构成的有向无环图,采用了动态规划查找最大概率路径, 找出基于词频的最大切分组合。
主要代码如下:
       

        3.3 doc2bow相似度模型训练
        分词后的结果通过doc2bow进行模型训练,Doc2Bow是Gensim中封装的一个方法。Doc2bow的原理是可以将文本句子数据形成词袋模型,并且根据向量相似度算法,计算文本句子之间的相似度。问答系统通过将之前整理的81条问题数据进行Doc2bow处理,将历史问题转换为词袋模型转换为向量集合。当问答系统输入的问题会作为新的文本通过doc2bow训练好的模型转换为向量,并且根据历史的问题向量进行余弦相似度计算,将最相似的Top5问题关联的答案展示出来。
主要代码如下:
计算相似度:
         

        3.4测试返回结果
        根据知识库随机输入相似的新问题,看到返回了数据库对应的问题相似度和对应的答案,通过Postman工具输入测试问题“采购门户是什么?可以用来做什么?谁需要用?”。返回对应的Top5知识库里问题的最高相似度为89%,显示了对应相似度最高问题的答案。

截图如下:

 

 

图 1 问题输入图

  

       4结语
       随着计算机的技术和自然语言处理技术的提高,智能问答系统也在快速的发展,构建问答知识库也已经越来越重要。本文基于doc2bow词向量相似度技术设计与实现了问答系统。通过搜集构建问答知识库,并且引入词袋模型和向量余弦相似度概念,设计计算了输入问题与知识库问题的相似度,高效快速的匹配对应的问题的答案。未来下一步为了更好的提高准确率可以增加输入问题数据的预处理,知识库的数据清洗与治理,去掉和问答没有关系的垃圾数据。并且可以增加数据分类针对不同行业业务进行不同的数据管理与相似度运算,进而提高问答系统的准确率与使用率。
[参考文献]
[1] Karthik Sundaram.Blockchain and the manufacturing supply chain[J].Food processing,2020,89(2):4-5
[2] 王瑛 , 何启涛 . 智能问答系统研究 [J]. 电子技术与软件工程 ,2019(5):174-175.
[3] 陶永芹.专业领域智能问答系统设计与实现[J].计算机应用与软 件, 2018(5):16-21.
[4] 孙铁利,刘延吉.中文分词技术的研究现状与困难[J].信息技术,2009(7):187-189.

投稿 打印文章 转寄朋友 留言编辑 收藏文章
  期刊推荐
1/1
转寄给朋友
朋友的昵称:
朋友的邮件地址:
您的昵称:
您的邮件地址:
邮件主题:
推荐理由:

写信给编辑
标题:
内容:
您的昵称:
您的邮件地址: