基于自然语言理解的在线答疑系统设计与实现

时间:2022-08-13 09:11:29

基于自然语言理解的在线答疑系统设计与实现

摘 要: 基于自然语言理解的相似度计算仍是计算机语言处理技术尚需深入研究的内容。通过在“知网”知识表示的基础上,综合考虑深度和密度两方面的影响因素,利用一种较为成熟的改进的多因素语义相似度处理算法,基于全文检索匹配技术,设计并实现了一个限定领域内的在线答疑系统。实例运行结果表明,系统可靠性较高,且答疑效果较为明显,达到了预期目标。

关键词: 自然语言理解; 语义相似度; 全文检索; 在线答疑系统

中图分类号:TP399 文献标志码:A 文章编号:1006-8228(2015)05-10-03

Abstract: The similarity calculation based on natural language understanding is still a research content of the computer language processing technology. Based on the knowledge representation of "HowNet", considering the both factors of depth and density, by using a more sophisticated multivariate semantic similarity algorithm, and with a full-text search matching technology, an online answer system in the limited field is designed and implemented. The experimental results show that, the system is reliable, the answer effect is more obvious, and the desired goal is achieved.

Key words: natural language understanding; semantic similarity; full text retrival; on-line answer system

0 引言

随着计算机网络技术的飞速发展,传统的教学手段已不能满足当前大信息量的教学内容需求,因此,创造一个在教师指导和引导下学生自主式学习的智能系统平台很有必要。智能的网络答疑系统可以利用自然语言处理技术对学生的疑问进行自动匹配处理,它的出现为网络教学提供了交互的情境,成为支持网络教学顺利进行的重要条件。智能网络答疑系统是传统课堂教学的重要补充,并逐渐在学生学习、认知、再学习这样一个闭环的学习过程中发挥着举足轻重的作用[1]。

1 设计思想及算法原理

基于计算机自然语言处理技术,充分利用校园网络资源,通过人机互动等丰富信息表现形式,实现一个智能的、高效的基于自然语言理解的专业课程自动答疑系统。系统设计的关键是如何实现快速、高效的智能搜索答案。该过程实际上类似于一个搜索引擎,其核心就是构建一个结构合理、具有完整丰富内容的知识库,并能够在自然语言理解的基础上,快速、准确的完成自动答疑工作。基于自然语言理解的在线答疑系统中两个关键技术分别是:中文分词技术和相似度计算。

1.1 中文分词技术

自然语言理解(Natural Language Understanding,简称NLU)研究如何让计算机理解和运用人类的自然语言,使得计算机懂得自然语言的含义,并对人给计算机提出的问题,通过人机对话(man-machine dialogue)的方式,用自然语言进行回答。为了使计算机系统能够较好地理解用户提出的问题,首先需要对问题进行处理,这一过程最先用到的最为关键的技术就是分词技术【2,3】。由于中英文之间的语言组织、词法结构不同,使得中文分词一直以来成为制约中文自然语言处理的主要因素。而中文文本中,只是字、句和段之间可以通过明显的分界符来简单划界,词与词之间没有天然的分隔符,中文词汇大多是由两个或两个以上的汉字组成,并且语句是连续书写的。这就要求在对中文文本进行自动分析之前,先将整句切割成小的词汇单元,即中文分词(或中文切词),相比英文语句处理,中文分词难度更大。

从算法处理上看,目前主要有三种【4-6】:一是基于词典的分词方法,它使用机器词典作为分词依据,分词效率高,目前应用范围较广;二是基于统计的分词方法,它是利用统计方法,通过对大规模文本的统计,让计算机自动判断的方法,该方法使系统资源开销较大;三是基于人工智能的分词方法,如专家系统和神经网络分词方法等,这类方法目前尚处于实验室阶段,尚未投入实际应用。

1.2 相似度处理技术

相似度计算在自然语言处理、智能检索、文本聚类、文本分类、自动应答、词义排歧和机器翻译等领域都有广泛的应用[7]。其计算方法按照基于规则和统计分为两种情况:一是根据某种世界知识(如Ontology)来计算,主要是基于按照概念间结构层次关系组织的语义词典的方法,根据在这类语言学资源中概念之间的上下位关系和同位关系来计算词语的相似度[8];二是利用大规模的语料库进行统计,这种基于统计的方法主要将上下文信息的概率分布作为词汇语义相似度的参照依据[9]。

⑴ 常用语义词典

对于基于语义词典的相似度计算方法,由于存在计算简单、基础条件低、假设条件易于满足等优点,受到越来越多研究者的欢迎。常用语义词典主要有[10-12]:WordNet、FrameNet、MindNet、知网(HowNet)、同义词词林、中文概念词典(CCD),以及叙词表、领域概念网、概念图等概念网络结构。本文对于相似度的计算主要是基于知网(HowNet)结构。其概念结构如图1所示。

⑵ 相似度计算

与概念相似度密切相关的一个概念是语义距离(semantic distance)。在一棵树形图中,任何两个节点之间有且只有一条路径,在计算语义相似度的时候,这条路径的长度就可以作为这两个概念的语义距离的一种度量,通常认为它们是概念关系特征的不同表现形式,两者之间可以建立一种简单概念词相似度用来描述概念树中两个节点之间的语义接近程度,一般最常用的是刘群提出的以《知网》为基础的相似度计算方法[13]:

式⑴中,p1和p2表示两个概念节点,dis(p1,p2)是树状结构中两节点间的最短距离,α是一个调节参数,表示相似度为0.5时的路径长度。

文献[14,15]综合考虑深度与密度因素,提出了多因素义原相似度计算方法:

式⑵中,h为义原树深度,l为LCN层次,LCN为最小公共父节点。

文献[16]认为该方法存在两点不足:一是该式仅把相似度取为密度、深度因素的算术平均值,显然对于概念节点分布不均的情况不够合理;二是该式没有对密度、深度两者的影响程度进行分析,这样对他的使用范围受到了限制。基于此考虑,提出了改进的语义相似度计算方法:

式⑶中,l(p1,p2)为分别遍历概念网中节点p1,p2到达其最小公共父结点所历经的父结点(包括最小公共父结点)数的最大值。w(p1,p2)为p1,p2所在层概念数的最大值。算法关键部分引进了一个调节参数λ(p1,p2),并保证在该参数的作用下,当节点p1,p2所在层概念数较多,即w(p1,p2)增大时,密度因素对相似度的贡献值大;而当p1,p2离最小公共父结点较远,即l(p1,p2)增大时,深度因素对相似度的贡献值较大。同时算法约定,当p1,p2的父结点和最小公共父结点相同,且同层只有p1,p2两个节点时,调节参数为0.5。该方法即为本文在相似度计算方面采用的算法模型。

2 模型设计

下面我们参考文献[17],按照一般教师对于问题的处理方式,在上述概念语义相似度计算的基础上,从计算机建模层面上给出计算机自动答疑模型的建模过程。

Step1:计算条件

已知标准问题库A可以表示为关键词序列:A=(a1,a2,…,an);学生提问B可以表示为关键词序列:B=(b1,b2,…,bn)。

Step2:相似度计算

⑴ 知识点关键词信息提取

该问题的处理主要通过提取学生问题中每一个关键词,对照系统知识库,从底层开始遍历搜索,当找到对应的概念节点时,提取该节点的高度、密度等属性信息,并保存起来,搜索完成后即可参加相似度的计算。

⑵ 概念相似度求解

概念相似度的计算采用语义相似度技术,设标准问题库A可以表示为知识点的一个向量组A=(a1,a2,…,an),循环遍历每一个学生输入的问题关键词序列,通过概念语义相似度算法可得到任意两概念之间的相似度Sim(ai,bj),其中i=1,2,…,m,j=1,2,…,n。

Step3:匹配结果输出

前面已经完成了输入问题和标准问题库之间的循环相似度匹配计算,为了将需要的信息提取出来,模型还需要设置一个阀值δ。通过阀值δ这个关卡,将相似度结果大于δ的问题提取出来,并按照降序排列输出即可。论文答疑系统模型建模流程如图2所示。

3 系统实现与验证

系统设计环境为Visual Studio 2005,数据库服务器为SQL Server 2000。采用B/S网络模型进行构架设计,按照系统功能需求划分为用户表示层、应用逻辑层和数据访问层三个层面。系统测试界面如图3所示。

如图3所示,在答疑系统界面中输入问句:“计算机包含哪些硬件?”,系统自动分词后生成的关键词语汇单元为:“计算机;硬件”(其中“包含;哪些”等作为停用词已经被过滤掉了),然后系统自动在数据库中检索匹配,最终反馈了12条相关结果,图3为部分结果截图。这里说明一点,反馈结果的多少取决于阀值δ,测试中我们选取的阀值δ为0.8,一般我们取阀值δ在0.8左右即可。

为了进一步验证系统的查询能力,我们将刚才的问句调整为:“计算机包含?”,这时系统自动分词后生成的汇单元只有一个关键词“计算机”,最终匹配结果如图4所示。

这里读者或许会发现,系统反馈回来的结果与问题毫不相关。其实,这并不是系统出错,而是“知网”概念网络中“计算机”与“硬件、软件”两个概念关系比较密切,表现为在概念网络中的节点位置较为接近,匹配结果相似度值较高,因此才有了上述的结果。也就是说,也许在某些时候当查询某个概念时,相近的结果就会被检索出来(或者当不确定查找的问题时,只需输入相近的问题,也会查询到想要的答案),这就是基于自然语言理解的语义相似度计算模型优势所在。

4 结束语

由于汉语词汇表达的复杂性和词汇语义概念较强的主观性,以及具体应用领域的专业性等因素影响,目前基于自然语言理解的相似度计算仍是计算机语言处理技术需深入研究的内容。本文在“知网”知识表示的基础上,充分考虑“知网”深度和密度因素影响,基于全文检索匹配技术,设计并实现了一个限定领域内的在线答疑系统,大量的运行结果证明了该系统是可靠的,达到了系统设计的目的。但在准确性方面还存在不足,从第一个测试中可以看出,提问人员真正需要的是:“计算机的硬件组成”。其重点关注的是计算机、硬件,而答案给出了太多的“计算机特点,计算机发展”等其他一些与“计算机”有关的匹配答案,其原因是关键词权重的影响因素没有体现出来,离真正的自然语言理解还存在一定的距离,这是系统下一步有待改进的地方。

参考文献:

[1] 冯志伟.自然语言问答系统的发展与现状[J].外国语,2012.35(6):28-30

[2] 黄,符绍宏.自动分词技术及其在信息检索中的应用研究[J].现代图书情报技术,2001.3:26-29

[3] 沈斌.基于分词的中文文本相似度计算研究[D].天津财经大学,2006:12-17

[4] 张波.网络答疑系统的设计与实现[D].吉林大学,2006:30-31

[5] 张丽辉.计算机领域中文自动问答系统的研究[D].天津大学,2006:14-18

[6] 朱.中文自动分词系统的研究[D].华中师范大学,2004:12-13

[7] 周舫.汉语句子相似度计算方法及其应用的研究[D].河南大学,2005:24-25

[8] 于江生,俞士汶.中文概念词典的结构[J].中文信息学报,2002.16(4):13-21

[9] 胡俊峰,俞士汶.唐宋诗中词汇语义相似度的统计分析及应用[J].中文信息学报,2002.4:40-45

[10] Miller G A, Fellbaum C. Semantic network of English [M]//Levin B, pinker S. lexical & conceptual semantics. Amsterdam, Netherlands: E lsevier Science Publishers,1991.

[11] Baker C F. The Berkeley frameNet project [C]//Proceeding ofthe COLING -ACL.98.Montreal, Canada,1998:86-90

[12] 黄康,袁春风.基于领域概念网络的自动批改技术[J].计算机应用研究,2004.11:260-262

[13] 刘群,李素建.基于“知网”的词汇语义相似度计算[C].第三届汉语词汇语义学研讨会论文集,2002:59-76

[14] AGIRREE, RIGAU G. A Proposal for Word Sense Disambigua-tion Using Conceptual Distance[EB/OL],1995:112-118

[15] 蒋溢,丁优,熊安萍等.一种基于知网的词汇语义相似度改进计算方法[J].重庆邮电大学(自然科学版),2009.21(4):533-537

[16] 党丽琼,刘文辉.一种改进的多因素语义相似度计算方法[J].计算机与现代化,2011.10:24-26

[17] 穗志方.语句相似度研究中的骨架依存分析法及应用[D].北京大学,1998:18-19

上一篇:寻找外星人有了新武器 下一篇:基于单词匹配和编辑距离的钓鱼贝叶斯检测器研...