欢迎来到天天文库
浏览记录
ID:33172577
大小:155.50 KB
页数:6页
时间:2019-02-21
《句子相似度计算在faq中的应用》由会员上传分享,免费在线阅读,更多相关内容在应用文档-天天文库。
1、袆莃节螆螂罿莄蕿蚈羈薇螄肆羈芆蚇羂羇荿袂袈羆蒁蚅螄羅薃蒈肃羄芃蚃罿肃莅蒆袅肂蒈蚂螁肂膇蒅螇肁莀螀肅句子相似度计算在FAQ中的应用王洋秦兵郑实福(哈尔滨工业大学321信箱,哈尔滨150001)E-mail:{wy,qinb,zsf}@ir.hit.edu.cn摘要:本文设计并实现了一个基于常问问题库的中文问答系统。对用户以自然语言输入的问题,该系统能够自动地在FAQ(Frequently-AskedQuestion)库中寻找候选问题集,通过计算句子相似度,将匹配的答案返回给用户。该系统还能够自动地更新和维护FAQ库。
2、文中着重介绍了用于查找候选问题集的数据结构以及句子相似度的计算方法。关键词:自动问答;常问问题库;候选问题集;句子相似度引言自动问答系统是目前自然语言处理领域一个非常热的问题,它即能够让用户用自然语言句子提问,又能够为用户返回一个简洁、准确的答案,而不是一些相关的网页。因此,自动问答系统和传统的依靠关键字匹配的搜索引擎相比,能够更好地满足用户的检索需求,更准确地找出用户所需的答案,具有方便、快捷、高效等特点。在国际上每年一度的文本信息检索(TREC)会议上,自动问答(QuestionAnsweringTrack)是
3、最受关注的主题之一。常问问题库(FAQ)是很多自动问答系统中的一个组成部分。它把用户常问的问题和相关答案保存起来。这样,对于用户输入的问题,可以首先在常问问题库中查找答案。如果能够找到相应的问题,就可以直接将问题所对应的答案返回给用户,而不需要经过问题理解、信息检索、答案抽取等许多复杂的处理过程。本文将对自动问答系统中FAQ的设计和实现方法做一全面介绍,并着重介绍了其中的句子相似度计算。本文所介绍的句子相似度的计算方法不仅能够用于FAQ的检索,还能够用于自动问答的其它阶段,本文简要地介绍了其在答案查找中的应用。1系
4、统概述系统主要包含三个部分:候选问题集的查找,句子相似度计算,FAQ库的更新。2候选问题集的查找这一步骤的目的是要从常问问题库(FAQ)中找出若干个候选的问题组成候选问题集,以缩小查找的范围,使后续的相似度计算等较复杂的处理过程都在候选问题集这个相对较小的范围内进行。在本系统中,我们选出FAQ中50%的问句作为候选问题集。设用户输入的问句(简称为目标问句)中共有n个词:、、…、。FAQ库中共有m个问句,第i(1£i£m)个问句含有个词:、、…、。第i个问句和目标问句之间重叠的词个数记为,即。我们将值最大的前50%的
5、FAQ问句选出来,组成候选问题集。计算时,如果将FAQ库中的问句一一读出来和目标问句进行比较,效率是比较低的。对于目标问句中的某个词,为了能够快速地统计FAQ库中究竟有多少问句含有这个词,我们设计了如图1所示的数据结构:Question1Pos1Answer1Pos2Question2Pos3Answer2……Question3Pos表Answer3……FAQ库S13S12S11Word1S23S22S21Word2S33S32S31Word3Index表图1用于查找候选问题集的数据结构图1中的FAQ库记录了所有原
6、始的问题、答案对,Pos表记录了FAQ库中每个问句在库文件中的位置。Index表中的、……是FAQ库中的问句所包含的词经过排序后所形成的链表。而每个指向一个S链表,这个S链表中的每个节点记录FAQ库中含有的一个问句的句子号。在实际的检索过程中,对于目标句子中的一个词W,我们首先寻找它在Word链表中的位置。由于Word链表是有序的,我们可以很容易地利用折半查找等方法在O(logn)的时间复杂度内找到目标。不妨设找到的节点为,沿着所指向的S链表,我们就可以统计出有哪些FAQ库中的问句包含。对目标问句中的每一个词都进行
7、这样的处理之后,我们就可以进一步计算出上面提到的的值。接下来,我们找出Num值最大的50%个问句的句子号,通过Pos表,可以在很容易地将FAQ库的文件指针移到相应的问句处,并把问句读出。3句子相似度计算候选问题集确定后,下一步是要从这个集合中找出和用户输入的问句(这里称为目标问句)最相似的问句。我们所用的方法是计算候选问题集中每个问句和目标问句之间的相似度,对应的相似度最大的问句就是我们要找的句子。计算相似度的方法有很多,这里我们综合运用了两种方法来计算句子的相似度,一种是基于向量空间模型的TFIDF方法,另一种是
8、基于语义的方法。下面具体介绍这两种方法。3.1基于向量空间模型的TFIDF方法在信息检索领域中,基于向量空间模型的TFIDF方法被广泛地用来计算文本之间的相似度。若FAQ中所有问句包含的所有的词为、、…、,则FAQ中的每一个问句都可以用一个n维的向量来表示。其中,的计算方法为:设n为在这个问句中出现的个数,m为FAQ中含有的问句的个数,M为FAQ中问句的总数
此文档下载收益归作者所有