基于倒排索引的问答系统的设计与实现
2018-09-25齐翌辰,王森淼,赵亚慧*
齐翌辰,王森淼,赵亚慧*
摘要:近年来,随着人工智能的飞速发展,自动问答已经成为倍受关注且发展前景广泛的研究方向。为了方便学生们检索有关课程的相关知识,进一步深入学习,本文设计并实现了一个基于倒排索引技术的课程问答系统。通过建立问答系统的数据库,对问题进行分析以及问题关键词的处理、信息检索进行答案抽取。通过中文分词系统实现提取问答对中的关键词。通过余弦相似度计算文本相似度与问答对中的问题进行比对及匹配,从而显示正确答案通过网页反馈给学生。这样可以帮助学生更有效地学习课程,为学生对该课程的学习提供了便利。
关键词:倒排索引;余弦相似度;问答对;中文分词
中图分类号:G642.0 文献标志码:A 文章编号:1674-9324(2018)35-0068-02
一、引言
随着计算机技术的飞速发展,互联网技术也发生了翻天覆地的变化,人们通过搜索引擎查找自己需要得到的答案已经成为日常生活中必不可少的一项。
自然语言即人类在生活中进行交流的语言。自然语言处理(Natural Language Processing,NLP)[1]是人类与计算机之间进行沟通的桥梁,将自然语言转化为计算机可以理解的语言,并通过计算机达到我们想要实现的目的。
问答系统(Question Answering System,QA)[2]属于信息检索系统的一种,在检索的基础上发展为可以给用户的一定反馈的系统。自动问答系统既能用自然语言句子提问,又能为用户直接返回所需的答案,而不是相关的网页。所以,问答系统能更好的满足用户的检索需求,能更快地找出用户所需的答案[3]。
二、文本预处理
文本预处理[4](Text preprocessing)主要包括以下几个步骤:中文分词、词性标注、去除停用词。
1.中文分词。中文分词是中文信息处理的必备条件,对处理的结果起着决定性的作用[5]。中文文本没有像英文一样的空格作为分隔符,通过逆向最大匹配法:先将文本以标点符号分割成句子,同时设定一个准备获取词的最大长度,然后以每短句为最小单位与字典中的字符进行匹配,若匹配则记录下这个字符,若不匹配则将该最大长度缩短为一个字节长度,继续进行匹配。最后将记录下来的词与词之间以空格分隔,实现中文分词,本系统中利用中科院分词系统进行中文分词,该系统ICTCLAS(Institute of Computing Technology,Chinese Lexical Analysis System)[6]的主要功能包括中文分词、词性标注、命名实体识别、新词识别,同时支持用户词典,分词精度(98.45%),是当前世界上最好的汉语词法分析器。
2.词性标注。词性标注通过识别一个词的词性来确定该词联系的上下文,该步骤是标注出来第一步分好的词语的词性过程,此过程可以删除掉一些词性对文本意义不大的词语。
3.去除停用词。停用词在信息检索中,为了节省存储空间和提高搜索效率,在处理自然语言数据之前或之后会自动过滤掉某些字或词,这些字或词即被称为停用词。这些停用词都是人工输入、非自动化生成的,生成后的停用词会形成一个停用词表[7]。若词语在停用词表中则去除,这样可以缩小搜索的范围。
三、余弦相似度计算
建立完基本的问答对之后,若学生提出的问题恰好与问题集中的问题相同,系统则直接反馈给学生答案集中相应的答案;若不相同,则需要对问题进行分析,找出最相似的问题。余弦相似度又称为余弦相似性,将问题数据库中的问题特征项与学生提问的问题关键词视为两条在空间中的出发于坐标原点指向两个方向的线段。通过计算两条线段间形成的夹角的大小来判断两个向量相似的程度大小。夹角越小,也就说明计算夹角得到的余弦值越近似于1,两个向量间距离就越小,可以说明这两个问题的内容越相似。本文利用java语言实现计算余弦相似度,在已知公式的基础上,编写两个向量相加(plus)、相乘(multi)及求平方和(squares)的公式的函数,使用时调用函数即可。假设向量a为[x1,y1],向量b为[x2,y2],余弦相似度可写为:
四、倒排索引
从常规上来讲,索引是在文档中找关键词,在一篇已知准备好的文档中搜索关键词,就会对应出现该文档中有哪些关键词、每个关键词出现的次数以及每个关键词在该文档中出现的位置。这种方法相对来说建立起来比较简单而且容易维护,但是考虑到出现有文档加入或有文档被删除,就需要检索所有的文档来保证是否有遗漏,因此导致索引的效率降低。为了提高索引的效率,引入倒排索引的方法。在本系统中,通过建立与课程学习内容相关的问答对数据库,即以问题—答案的倒排索引机制。
五、实验描述
在对100名学生采取抽样调查的过程中,对学生掌握不扎实、知识欠缺比较严重的知识模块进行统计。其中有92名学生认为关于Excel的操作知识模块不易理解。
按照学生们对知识的掌握情况,分别对第一章:计算机基础相关知识、第二章:关于操作系统的相关知识(以windows为主)、第三章:关于Word的操作、第四章:關于Excel的操作、第五章:关于PowerPoint的操作、第六章:计算机网络基础相关知识各建立100道问答对以及着重建立有关Excel操作部分和其他常考知识点400道,共1000道问答对。在实验过程中,先任意查询100道问题,在不对问答对进行修改的情况下,由于问答对中某些问题及答案过于相似,导致匹配的准确率仅有73%左右。为区分开数据库中的相似问答对,经过筛选以及对问答对特征项的不断修改及关键词同义词的扩展,将每一章节的问答对分开存储,最终实现系统的准确率达到87%,最后通过PHP实现系统与网页的结合。学生们可以自行在慕课平台网页上解决该课程的疑点,提高了学习效率,节省了大量教师回答学生的人力及时间,促进了教学任务的开展。
六、结语
本系统以《大学计算机基础》课程为蓝本,旨在提高教学效率,为学生们提供更加优质的教学方式,对学科中难以掌握的重点疑点反复琢磨,深入完成教学任务,给予教师和学生一个更加轻松的教学环境。本系统利用对问答对的中文分词以及倒排索引与余弦相似度的结合,减少了相对于一般问答系统的时间损耗,减少了问答对存储过程中不必要的时间浪费,但仍存在对词性意义不够精准的不足之处,需不断扩充问答对以及对关键词、同义词扩展的工作,还要继续进行研究怎样做到高质量辨别学生提出的问题,与问答对进行高效匹配,以完成性能更好的系统,广泛地应用于学校的教学工作当中。
参考文献:
[1]李生.自然语言处理的研究与发展[J].燕山大学学报,2013,37(05):377-384.
[2]李沛晏,朱露,吴多胜.问答系统综述[J].数字技术与应用,2015,(04):69,71.
[3]郑实福,刘挺,秦兵,李生.自动问答综述[J].中文信息学报,2002,(06):46-52.
[4]周钦强,孙炳达,王义.文本自动分类系统文本预处理方法的研究[J].计算机应用研究,2005,(02):8.
[5]陈开昌.自然语言处理技术中的中文分词研究[J].信息与电脑(理论版),2016,(19):61-63.
[6]王健,张俊妮.统计模型在中文文本挖掘中的应用[J].数理统计与管理,2017,36(04):609-619.
[7]官琴,邓三鸿,王昊.中文文本聚类常用停用词表对比研究[J].数据分析与知识发现,2017,1(03):72-80.