APP下载

基于交通知识的移动智能问答系统

2016-07-06赵沛时张晓阳启明信息技术股份有限公司长春30吉林大学计算机科学与技术学院长春300

电子测试 2016年12期
关键词:微信

赵沛时,葛 亮,张晓阳(.启明信息技术股份有限公司,长春,30;.吉林大学计算机科学与技术学院,长春,300)



基于交通知识的移动智能问答系统

赵沛时1,葛 亮1,张晓阳2
(1.启明信息技术股份有限公司,长春,130122;2.吉林大学计算机科学与技术学院,长春,130012)

摘要:交通知识与人的生命安全息息相关。针对如何方便快捷的获取交通知识,设计并实现了以即时通讯软件微信为人机交互媒介的移动智能自动问答系统。首先,对文本进行特征向量提取,并对同义词进行归一化,消除同义词对查询准确率的干扰;然后,综合词频和词性信息计算文本关键特征的权值;最后采用BM25模型计算问题与知识库中文本信息的相似度,返回与问题最相似的答案。实验表明,本系统的移动性强,人机交互友好,查询准确度高。

关键词:智能问答; 微信; BM25;同义词归一化;文本相似度

0 引言

在现代生活中,交通知识与人的生命安全息息相关。根据百度百科:在中国,每一分钟就有一人因交通事故伤残,每五分钟就有一人因交通事故死亡。每天因车祸死亡的有300人左右,每年因车祸死亡的有10万人左右。造成交通事故的主要原因是人们对交通知识的匮乏。面对突发性交通事故,缺乏合理的应对知识会造成更大的二次伤害。通过科目考试、宣传手册、公益广告等方式普及交通安全知识受益面窄、社会成本高,且人在紧张、慌乱中会出现短暂的记忆遗忘。如何以低成本、简单、快捷的方式普及交通安全知识是交通系统面临的问题。随着人工智能技术的发展和智能手机的普及,基于交通知识的移动智能问答系统是一种有效的解决方式。

智能问答系统要解决的首要问题是信息检索。信息检索分为搜索引擎和自动问答系统两种方式。百度、谷歌搜索属于搜索引擎检索方式的应用,这种方式需用户输入和结果关联的一个或多个关键词,通过检索算法获得结果信息,结果信息的价值与输入的关键词紧密相关。自动问答系统是根据自然语言描述的问题,通过检索直接返回答案。这类应用如微软的Encarta3和MIT的START。对于自动智能问答系统有很多研究,文献[1-4]主要研究了智能问答系统中的相似度计算问题,提高了系统检索的准确率,文献[5-7]研究了问答系统的构建。上述研究都是都是基于WEB的方式实现的,在交互方式上并不能满足如今移动互联网发展的需要。

目前,手机等移动终端具有小巧灵活等特点,逐渐取代PC机。作为具有海量用户群体的微信公众平台,是目前移动应用的绝好载体。微信公众平台在图书馆、医院、电子政务等领域都有了创新性的应用,文献[13-15]主要研究了微信公众平台的搭建。上述研究实现的问答系统在做检索时都是基于关键词的搜索,这种方式没有考虑语义信息,更不能处理同义词的干扰。基于此,本文结合自然语言处理技术、数据库技术和微信公众平台开发接口,以交通知识为依托,设计并实现了基于微信的智能问答系统。该系统在做信息检索时综合考虑词频和词性信息,并对同义词进行了处理,实验表明本文实现的系统具有灵活、方便、查询准确率高等特点。

2 问答系统关键技术

2.1 关键特征提取。关键特征是将自然语言表示的语句,进行中文分词,并去掉一些与语句含义关联程度较小的词语后,剩余的词语作为该语句的关键特征。进行中文分词之前应该对语句进行去除语句中的空格、去除标点符号、将英文大写转换为小写、进行繁简转化将繁体转化为简体等预处理工作。

问答系统并不用保证每个词语都会精确的切分,而一些专有名词或对语句检索有重要意义的词语应该被精确的切分出来,例如“交通信号灯”应该为一个词语不应被切分。为了提高语句的检索效率,本文添加自定义词典user_dict,将一些交通术语、符号等添加到自定义词典中。这样在对语句进行分词时就可以正确的切分存在于词典中的词语。且随着系统的使用,自定义词典中的词语将不断的添加修改和完善。对语句进行分词后,要根据停用词表stopword去掉与语句含义无关的词。

2.2 同义词处理。问答系统中,一般查询信息较短,由于同义词的存在会导致检索的准确率低。例如“交通信号灯”是正规的书面语言,而日常生活中将其称为:“交通灯”或“红绿灯”。为解决由于同义词的存在而导致检索准确率低的问题,本文构建同义词典,将同义词以键值对的关系添加到同义词典中SimilarDict(key,value)。例如上述交通信号灯将{“交通灯”,“交通信号灯”}、{“红绿灯”“交通信号灯”}添加到同义词典中。对由1.1节中精确分词并去停用词后得到的关键词集合S=(S1,S2,… Sn),进行同义词处理算法思想如下:

FOR Si IN S:

IF Si IN SimilarDict:

Si=v;//v是同义词典中的value值

END IF

END FOR

这样将所有的存在同义词典中的同义词都进行了归一化,消除了同义词对检索准确度的干扰。

2.3 相似度的计算。一般的检索算法中,仅考虑词频作为关键词的权值,而忽略了单词本身的重要程度。例如“酒后驾车”,若只考虑词频,那么“酒后”和“驾车”的权值都是1。而这句话的重点应该在于“酒后”。所以为了更准确的描述关键词的重要程度以提高系统检索的准确度,本文根据不同词性设置不同的权值。由于自定义词典中存在的是一些必须进行精确分词的术语或名词,顾其权重最高为1。具体权值表如表1所示。

表1:词性权值表

本文计算语句相似度的方法采用以BM25算法为基础,通过将IDF算法与词性权重相结合的方法计算文本特征的权值,用以提高算法的检索准确度。BM25模型是由Okapi信息检索系统所实现。一般公式如下:

其中,Q为查询问句,qi为对Q进行分词处理后得到的一个关键特征,d为一个检索结果文档。Wi为关键特征qi的权重。R(qi,d)是关键特征qi与文档d的相关性得分。

对于公式(1)中的权值Wi,较为常用的是IDF。IDF公式如下:

其中,N取值为全部文档数的数量,n(qi)为包含了qi的文档数。由公式(2)可以看出,当包含某一关键特征qi的文档越多时,IDF(qi)的值越小,因为很多文档中都包含关键特征qi,说明qi的区分度不好。

为了达到更好检索效果,本文引入词性权重。设IDF在权重中所占比重为a,词性所占比重为b,对于关键特征qi的词性权值为Wpi。则对于关键特征qi的综合权重为:

经实验测试,a,b取值均为0.5时算法准确度比较好。则公式(3)变为:

对于公式(1)中关键特征qi与文档d的相关性得分R(qi,d),其一般性公式为:

公式(5)中k1,k2,b为调节因子,一般根据经验设置,本文中,k1=1.5,b=0.75。fi为关键特征qi在d中的频率,qfi为qi在Q中的频率。dl为d的长度,avgdl为所有文档的平均长度。在绝大多数的情况中,qi在Q中只会出现1次,因此公式(5)简化为:

由公式(6)可知b越大,文档的长度对相关性得分的影响就越大。

综上, BM25算法相关性得分公式为:

公式(8)为本文最终采用的文本相关性得分公式,两文本之间得分越高,两文本越相似。

2.4 智能问答算法实现。本文使用BM25算法模型,并引入IDF方法和词性权重相结计算关键特征权值。图1所示为算法的流程图。其算法思想如下:

图1:智能问答算法流程图

输入:有关交通知识的问句

输出:与输入问句相同或者相关度很好的问题与答案。

1)初始化:加载自定义词典,连接数据库等;

2)输入有关交通知识的问句Qa;

3)加载问题库中所有问题字段Qb;

4)对Qa和Qb进行文本预处理,得到预处理后的文本Qap=Pretreatment(Qa);Qbp=Pretreatment(Qb);

5)对Qap和Qbp进行分词,并去掉停用词,得到文本的关键特征。Qap_C=Cut(Qap),Qbp_C=Cut(Qbp);

6)对关键特征进行同义词处理,Q=Synonym(Qap_C),d=Synonym(Qbp_C)。

7)使用BM25算法计算输入问题的关键特征Q与问题库中每个问题字段关键特征d的相关性分数。并存储到字典dict_ score中;

8)在dict_score中选择相关性好的N个问题,通过查找问题知识库中的数据,返回给用户相关的问题与答案。

3 系统实现

3.1 系统结构。本系统以微信认证订阅号为交互平台,以问题匹配算法和知识数据库技术为核心模块,以交通知识作为知识库,搭建了移动智能问答系统。系统结构如图2所示。

微信应用程序是用户的人机交互界面,用户关注微信公众平台成为粉丝,通过手机微信应用程序向系统推送问题。

微信公众平台可以接收和发送图文、音频、视频等多媒体信息,同时在开发者模式下,具有丰富的可编程接口。

微信服务器主要功能是实现信息转发,将信息转发到绑定的智能问答服务器。同时也接收智能问答服务器返回的信息,并将信息推送到手机端微信应用程序。

智能问答服务器是系统的核心。它在接收到微信服务器的请求后,首先对问句进行去空格、中文分词、过滤停用词、提取关键词等操作;然后通过相似度算法计算用户问句和知识库存储信息的相似度;以TOP-N的方式选择相似度高的N个问题,认为这N个问题是知识库中问句和用户问句是相同问题或最相似的问题,通过检索知识库获取该问题答案;最后将答案发送给微信服务器,再由微信服务器推送给用户手机端的微信。

3.2 微信公众平台开发接口。通过使用微信公众平台开发接口可以实现接收消息、发送消息等普通功能,也可以实现获取用户地理位置、生成带参数二维码等高级功能,但是许多高级功能只有认证服务号才具有,提高了使用门槛。本系统的功能仅通过使用微信接收文本消息、发送文本消息两种基本开发接口实现。

(1)接收文本:接收文本:微信用户在向微信公众账号发消息时,微信服务器将消息以XML格式的数据包POST到开发者填写的URL上。

XML数据格式如下:

<![CDATA[toUser]]>

<![CDATA[fromUser]]>

<![CDATA[text]]>

<![CDATA[this is a test]]>

(2)回复文本消息:用户发送消息给微信公众帐号时,微信服务器会对智能问答服务器产生一个POST请求,智能问答服务器进行处理后,在响应包中将问题答案以特定XML结构,返回给微信服务器。

XML数据格式如下:

<![CDATA[toUser]]>

<![CDATA[fromUser]]>

<![CDATA[text]]>

<![CDATA[你好]]>

上述XML中各个参数具体描述见文献[13]。

3.3 微信公众及平台搭建。微信公众帐号共分为三大类:企业号、订阅号、服务号,其中每大类又分为认证和未认证两种。首先申请公众账号,获取微信公众帐号后,登陆微信公众平台管理系统(http://mp.weixin.qq.com)进行设置。打开开发者中心页面,点击“修改配置”按钮,填写智能问答系统服务器所在地址(URL),随意填写用于生成签名的Token字段,手动填写或者随机生成用于加密密钥的EncodingAESKey字段。

提交信息后,微信服务器将发送带有四个参数的GET请求到智能问答系统所在的服务器地址URL上,这四个参数为:signature、timestamp、nonce、echostr。微信服务器将前三个参数进行排序、拼接成一个字符串并进行SHA1加密,最后将获得加密后的字符串与signature对比。对比成功后,用户请求通过微信服务器转发到智能问答系统服务器由智能问答系统服务器对信息进行处理,智能问答系统服务器将处理后的结果返回给微信服务器,最后,微信服务器将结果送到用户手机端微信应用程序。

图2:系统结构

4 实验

4.1 实验数据。收集整理2千多条交通知识,将每条知识分成问题和答案两个部分,构建知识库。知识库部分内容如图3所示。其中question字段是问题部分,answer字段为问题对应的答案,weights字段是用于记录该问题被查询的次数。整理交通知识有关词语,构建自定义分词词典和同义词词典。

4.2 实验结果及分析。本文所实现的智能问答系统主要应用到交通领域,若问题描述清楚,则答案基本唯一。随机抽取120个问题进行检索,若返回的结果中,正确答案出现在TOP-N中,则认为匹配正确。表2所示为在N=3、相似度阈值为0.8时,对120个问题做4组对比试验的结果。

表2:相似度测试结果

由实验结果可以看出,由于问答系统中的文本信息较短,同义词处理要比词性权值处理对最终检索准确率的影响大,且在对文本信息做同义词处理和加入词性权值后准确率有明显的提高。

用户通过移动端的微信客户端提问有关交通知识的问题,经由智能问答算法计算知识库中的问题与用户问题的相似度,返回两个结果。其结果如图4所示。

图4:微信问答结果

5 结语

本文以自然语言处理技术、数据库技术为核心技术,微信公众平台为用户交互媒介,实现了交通知识的移动智能问答系统。经实际使用表明,本系统信息获取便捷、准确,在规范日常交通行为、青少年交通知识教育、突发交通事故应对方案检索等领域具有一定实用价值。系统在智能技术方面还需要优化。

图3:知识库部分内容

参考文献

[1]阴红志,张帆,丁鼎,赵斌. AnswerSeeker:基于互联网挖掘的智能问答系统[J].计算机系统应用,2010,01:6-17.

[2]康海燕,李飞娟,苏文杰. 基于问句表征的web智能问答系统[J].北京信息科技大学学报(自然科学版),2011,01:36-41.

[3]张江涛,杜永萍. 基于语义链的检索在QA系统中的应用[J].计算机科学,2013,02:257-260+300.

[4]周永梅,陶红,陈姣姣,张再跃. 自动问答系统中的句子相似度算法的研究[J]. 计算机技术与发展,2012,05:75-78.

[5]刘芳,于斐. 面向医疗行业的智能问答系统研究与实现[J].微电子学与计算机,2012,11:95-98.

[6]侯丽敏,张永强. 面向课程的中文FAQ自动问答系统模型[J].计算机与现代化,2014,10:20-24.

[7]王北斗,窦志,陈纯,卜佳俊. 支持评价类问题与电影智能搜索的问答系统构建[J]. 大连理工大学学报,2011,S1:93-97. [8]张秋,杨玲,王曼. 高校图书馆微信公众平台服务发展现状及对策[J]. 图书馆建设,2014,02:61-65+69.

[9]张正. 图书馆微信公众平台的构建[J]. 国家图书馆学刊,2014,02:26-31.

[10]刘路遥, 杨祚, 曹战强, 等. 医院微信公众号的技术与应用现状研究[J]. 中国数字医学, 2014(8): 35-37.

[11]黄永刚, 刘素温, 腾腾, 等. 微信公众平台在门诊就医流程中的应用研究[J]. 中国数字医学, 2015, 10(5): 105-106. [12]龚花萍, 刘帅. 基于微信平台的政务信息公开新模式[J]. 现代情报, 2014, 34(4): 62-66.

[13]曹小平,程静. 基于微信自助查询系统的设计与实现[J]. 重庆工商大学学报(自然科学版),2014,02:66-69.

[14]钱海钢. 基于微信的移动图书馆服务系统APP应用实践[J].河北科技图苑,2013,06:89-92.

[15]沈奎林,邵波,赵华. 利用微信构建图书馆智能问答系统[J].图书馆学研究,2015,08:75-80.

[16]Robertson S E, Walker S, Jones S, et al. Okapi at TREC-3.[J]. 1996.

Mobile intelligent question answering system based on traffic knowledge.Computer Engineering and Applications

Zhao Peishi1,Ge Liang1,Zhang Xiaoyang2
(1.qiming information technology co.,LTD, Changchun,130122,China;2.College of Computer Science and Technology,Jilin University,Changchun,130012,China)

Abstract:Traffic knowledge is closely related to people's life and safety.Aiming at how to obtain the traffic knowledge conveniently and quickly,the mobile intelligent question answering system,which is based on the instant communication software WeChat,was designed and implemented. Firstly,extract the feature vector of the text,and normalized synonyms,eliminating the interference of synonyms on query accuracy. Secondly,calculation of critical feature weights according to the part of speech and word frequency. Finally,according to the BM25 model to calculate the similarity of text,return the most similar answer to the question. Experiments show that the system features strong mobility,man-machine friendly interaction and high query accuracy.

Keywords:intelligent question and answer;WeChat;BM25 model;normalized synonyms;text similarity

猜你喜欢

微信
微信
微信
微信
微信
微信
微信
微信