当前位置:首页 期刊杂志

基于Intranet的知识库系统匹配算法的研究与实现

时间:2024-07-28

赵建华,张同珍

0 引言

随着计算机技术的不断发展,其应用进入了更为广泛的非数值处理领域,而且在非数值处理的应用领域已经不限于数据处理和控制方面,而把计算机的应用进一步深入到知识处理和知识库系统的建立,以及在人工智能领域中的应用。

各种企业和研发机构在内部已经积累打了大量的文档和知识库,这些文档的使用跨越了时空的限制,使用手段除了联机查询,还增加了远程培训、远程广播、点播、网上知识共享。使用方式的多样性,造成使用人数急剧扩大,由此引发了一系列问题,例如客户端在使用过程中势必有很多疑难问题,如何应对如此大量客户端的疑难问题,是目前Intranet知识库系统实施中必须考虑的。

目前常用的几种利用网络技术的方法,其中典型的有FAQs、BBS、Chatting和网上知识库工具,有代表性的系统如IBM的FAQs、MIT的Chatting方式。比较以上几种手段,FAQs和BBS方式对存在问题不能及时解答,Chatting方式要求有限数目的知识库管理员全天候实时应答大量客户端的问题,而知识库工具兼顾了及时性和并发性,经过实践验证网上知识库是目前解决这一问题的较好方案。

1 知识库系统

1.1 知识库的概念

知识库是事实、规则和概念的集合,从存储知识的角度来看,以描述方法来存储和管理知识的机构叫做知识库。事实是对基本信息的描述,时处于不断的变化中,事实在知识库中是短期信息;规则是从专家们的经验中抽出来的知识,是长期信息;概念分为信念和常识,信念会随着时间动态变化,所以也是短期信息,常识一般是固定的概念,而且不随时间变化,是一种长期信息。从知识的使用角度来看,知识库是由知识和知识处理机构组成,知识库形成一个知识域,该知识域中除了事实、规则和概念之外还包含各种推理、归纳、演绎等知识处理方法,知识域中的知识分为专业知识和常识知识。专业知识是从专家经验中抽出来的知识,这种知识已被广泛应用于各类专家系统和应用软件之中;常识知识是相对于专业知识而言的,与专业知识相比常识知识范围要大得多。

1.2 工作原理

知识库的匹配系统是利用问题的普遍性和共性而提出的。系统建设时首先由有丰富经验的技术人员将大量的常见问题保存在系统中,当客户端随机地通过网络将问题提交给系统时,系统首先去理解这个问题,之后在知识库中查找同样的文档或虽不同但相关的文档提交给客户端进行参考,而最终选出的文档是否和客户端的问题一致将由客户来决定。客户端认为匹配一致时,该知识库使用结束;客户端认为匹配不一致时,系统可以认定知识库中无相同的问题,该问题将会通过系统反馈给负责知识库的知识库管理员,知识库管理员接到通知后,非实时地在系统中处理该问题,从而进一步完善知识库。由于在Intranet中客户端对问题的理解一般都有相似之处,提出的问题也大都相同,因此当知识库初期建立得比较好时,客户端提出的问题大都能落在知识库中,由系统及时地给出满意的匹配,大大减少了知识库管理员的工作量,客户端问题也能得到系统及时的响应。随着系统使用时间的增加,知识库将因知识库管理员不断回答新问题而自动扩大,系统将变得越来越实用和高效。

1.3 问题的提出

从知识库的工作原理可以看出,如何准确地理解客户端提出的问题,并能够在库中匹配到对应的问题,从而得到和提出的问题相符合的答案是系统的关键。目前正在使用的知识库系统采用了多种问题匹配算法,如仅使用关键词或完全使用自然语言理解,试验证明效果并不理想,要么是问题匹配结果和实际差距太大,要么是系统过于复杂、低效,最终导致不实用。以下本文将首先分析影响问题匹配的各个因素,在实用、高效目标基础上提出一种综合考虑各种因素的新的问题匹配算法,最后给出利用该算法实现知识库的系统设计方案。

2 问题匹配相关因素

问题的匹配和问题的诸多因素有关,首先是问题关键词,其次语义词、问题被问到的频率和各关键词在问题中的权重,这些都是影响问题匹配的因素。

2.1 关键词

关键词是从问题中抽取出来,能够刻画问题关键所在的若干个词。对于客户端提出的新问题,如果从新问题语句中抽取所有关键词,将是一个非常耗时而分析结果并不十分理想的工作。因此问题可以从另外一个角度来考虑,知识库系统可以为知识库中的每个问题事先配备问题关键词属性,该关键词可以作为新老问题匹配的关键因素,具体做法是对库中每个问题(以下称老问题)将其所有关键词放入新问题中去匹配,匹配的结果有以下3种:1、老问题所有关键词均在新问题中存在;2、老问题部分关键词在新问题中存在;3、老问题无任何关键词在新问题中存在。根据此3种状态,我们可以断定,前两种情况老问题和新问题有一定程度关联,最后一种情况新老问题完全无关。

2.2 语义词

语义词是从大量的问题语料中提出来的常用词,有鲜明的语义内容,出现频率很高,如“概念”、 “区别”、 “什么”等。在问题匹配中对语义词进行匹配可以大体确定问题的语义,因此需要对语义词特别考虑,语义词的匹配结果对问题的匹配影响非常大。由于不同的人对问题的表述方式不尽相同,尤其反映在语义词上,常常利用不同的词用来体现相同的含义,如“区别”、“不同”,“差异”等。系统可以建立一个典型语义词和该语义词的同义词表,专门用于匹配新老问题中的语义词。在关键词匹配时首先利用语义词和语义同义词库匹配语义词,在进行语义词的比较时,即使不同,但属于同义词,仍可认定为语义词相等。

2.3 关键词权重

从关键词比较结果可以看出,新老问题相关联程度取决于匹配成功关键词数量在总数中所占比例。事实上即使数量比例相同,由于在问题中各个关键词所起的作用不同,即其权重不同,也会在问题理解上产生一定的作用,如果匹配成功的关键词在问题中权重大,那么该老问题将更接近于新问题。因此有必要在老问题的关键词标注时同时注明每个关键词在问题中所占的权重,每个关键词取值范围为[0,1] ,如果有n个关键词,其权重和为1。

2.4 问题访问频度

知识库中内容的普遍性决定了问题理解在很大程度上的相似性,客户端在使用过程中往往会产生大量的共同问题,这也是知识库工具存在的必要性所在。投入实际应用的知识库在一段时间的使用之后,哪些是热点问题、哪些是非热点问题,将通过问题被访问到的次数即频度而得到区分。在问题匹配程度相近的情况下,问题的高频度为问题的最终匹配提供问题关联程度的依据。

上述四种因素在问题匹配中起到了不同的决定因素,综合考虑这些因素,以下给出问题匹配算法。

3 问题匹配算法

3.1 算法

可以把问题的匹配结果用匹配程度来描述,根据匹配程度可以将库中老问题分为三类:无关问题、相关问题、相同问题。匹配程度最高且达到给定的相同问题阀值的问题定义为相同问题;匹配程度非最高但达到给定的相关问题阀值的,按照匹配程度的大小,依照递减顺序列为相关问题序列;匹配程度低于相关问题阀值的定义为无关问题。我们用以下公式计算问题匹配程度:

其中Q i为库中任意一个老问题,MG(Q i)为问题Q i的匹配程度,MG(Q i)∈[0,1] ,KP为语义词匹配结果(1表示匹配成功,0表示匹配失败),k为库中部分或全部关键词匹配成功的老问题的个数,m i为问题Q i中和新问题匹配成功的关键词的个数,ni为问题Q i所有关键词的数目,W j为m i个关键词中第j个关键词的权重,fi为问题Q i曾匹配成功且被客户端最终认定为相同问题的次数,a、y和δ是0到1之间的常数因子,τ、ξ分别为用于区分相同问题、相关问题的阀值。

3.2 问题匹配举例

根据前面的问题匹配算法(公式 1),向知识库系统提交一个问题进行效果检验。提交星型模型和雪花模型有何不同,知识库中有五个相关问题:星型模型和雪花模型有何不同、如何建立一个雪花模型、什么是雪花模型、什么是星型模型、如何建立一个星型模型,假设问题序号为1、2、3、4、5。按照上面的匹配算法,此时K=5。通常取a=0.3、y=0.6、δ=0.1,阀值τ=0.6、ξ=0.3其余各项参数和匹配结果如表一所示。

根据表1所示匹配程度、阈值,可以得出相同问题为1,相关问题按照顺序分别为 4、3。从以上给出的五个问题来看,显然此结果和理想匹配结果吻合、并且将问题清晰地进行了聚类。

表1 匹配程度结果

图1 IBM内部Intranet的知识库检索结果示例

4 知识库系统实现方案

4.1 系统框架

基于以上算法我们实现了一个Intranet知识库系统,该系统为B/S结构。服务器采用Windows 2000操作系统、DB2数据库,编程语言为HTML、ASP。系统主要由用户界面、问题匹配、知识库分析等模块组成,后台辅有知识库、语义词库、用户记录库。

系统总体框架如图1:

图2 知识库系统框架

4.2 功能模块

用户界面包括客户端、知识库管理员端。客户端提供提交问题、察看匹配结果序列、答案确认的平台,提供问提匹配模块调用、问题匹配结果序列的管理和显示;知识库管理员端提供问题发送、问题回答的工作平台;另外用户界面还提供了新问题、知识库记录在知识库中的记载、问题属性的修改工作。

问题匹配根据客户端用户界面提交的问题匹配调用,按照匹配算法并参照新问题到知识库中进行问题匹配,匹配成功问题序列交用户界面客户端端,由它提交客户端用户,最终等待客户端用户进行答案确认。

知识库分析模块根据知识库中问题和客户端提问记录,进行问题关联分析、客户端学习特征分析,最终通过用户界面提交给师生用户个性化教学学习指导。

知识库主要存储问题答案对、问题的所属、频度、相互关联等。语义词库存储语义词、语义同义词,其中语义词作为主码,一个语义词带有最多5个同义词存储字段。用户记录库记录用户提问、知识库管理员回答的工作日志,提供知识库数据分析之用。

4.3 知识库过程

客户端利用客户端用户界面通过Intranet向系统提交问题,由系统调用问题匹配模块对知识库中每个问题按照问题匹配算法计算相对新问题的匹配程度,比较每个问题的匹配程度数值和相同问题阈值得出相同问题、参照相关问题阈值并按照匹配程度大小递减顺序得出相关问题,最后通过用户界面将匹配结果发送给客户端端,最终由客户端从提供的答案中选出和提交问题吻合的答案。在答案确认时,如果推荐问题答案序列中存在和新问题实际符合的答案,则该问题访问频度数值增加1;如果不存在,则系统将问题作为新问题自动发往知识库管理员端,知识库管理员对该问题重新处理。新问题的添加和老问题的频度属性修改都属于知识库的维护工作。

5 结论

知识库系统是存储知识的实体,它是数据库技术和人工智能相结合的产物。知识库技术是知识型人工智能应用系统的基础,它使计算机应用系统有了更多的智能,如智能搜索引擎的开发。知识库是学习过程中必不可少的环节,面对的问题是使用人数多、问题量大、时间随机,一个实际可行的手段是建立一个网上知识库系统。本文就知识库系统如何更准确地理解客户端提出的问题,分析了所有相关的因素,提出了一个新的问题匹配算法,出了基于该算法的知识库系统实现系统方案。经过大量数据验证,算法结果和理想值吻合程度很高,系统工作性能较好。

[1] 杨勇等.知识库系统原理[J] .华东地质学院学报,2001.4.

[2] 申瑞民,李学军.支持问题场景的多媒体自动答疑系统[J] .计算机工程与应用,1999.1.

[3] 柳泉波,黄荣怀,何克抗.智能答疑系统设计与实现[J] .中国远程教育,2000.83.

[4] Fuketa, Masaoa; Mizofuchi. A fast method of determining weighted compound keywords from text databases.Information Processing and Management. Volume: 34,Issue: 4, July, 1998, pp. 431-442.

[5] hoo, Christopher S G. Using cause-effect relations in text to improve information retrieval precision. Information Processing and Management. Volume: 37,Issue: 1, January 1, 2001, pp. 119-145.

免责声明

我们致力于保护作者版权,注重分享,被刊用文章因无法核实真实出处,未能及时与作者取得联系,或有版权异议的,请联系管理员,我们会立即处理! 部分文章是来自各大过期杂志,内容仅供学习参考,不准确地方联系删除处理!