陈玉
摘 要:近年来,问答系统被大量广泛的研究,问答系统的目标是给定一个问题,能够得到简短精确的答案;而问句分类在问答系统中有着重要的作用,为此本文用朴素贝叶斯算法对问句分类做了一定的研究。从实验结果来看,该方法在实际应用中取得了较好的效果。
关键词:问答系统;问句分类;朴素贝叶斯
中图分类号:TP391 文献标识码:A
1 引言(Introduction)
传统网络搜索引擎通过输入关键字来查找所需信息,如百度、谷歌等搜索引擎,关键字搜索往往缺乏语义性,其搜索结果只是一些相关网页;相比而言,问答系统(Question Answering System)允许用户输入自然语言问句,并最终提交给用户简洁而准确的结果;问答系统主要由几部分构成:问题语法解析、问题分类、搜索引擎、语料解析、答案选择及答案排序等。问答系统大致分为定型问答系统和开放域问答系统两种。
定型问答系统在受限领域内表现较好。而开放域问答系统要对来自任何领域的提问都能够提供答案,为此,需用自然语言处理方法来提取答案[1]。设计开放域问答系统的难点在于系统需要处理问句的大跨度性;问句有可能是涉及命名实体的,问句也有可能涉及复杂事件或情况。基于开放域问答系统的特点,所以问句分类在其中起着重要的前提作用,正确合理的分类对问答系统结果的准确性有着重要的影响。
2 问句正确分类的意义(The significance of question
correct classification)
2.1 问句的正确分类可以有效确定候选的答案的数量
例如当问答系统的问句是“中国的首都在哪里?”,通过问句的具体分类算法处理,知道该问句主要是问及关于地名的命名实体,所以问答系统在后续处理中只要去关注一些有关地名的相关答案即可,而没必要去关注无关的候选语料。
2.2 问句的合适分类可以确定候选答案的类型
问答系统中的问句种类繁杂,提前确定不同的问句类型,可以在候选答案的处理中明确问句的具体类型。如:问句“美国第一人总统是谁?”,根据问句分类,问答系统知道只要处理与人名相关的语料即可。再如:问句“什么是互联网?”,这类问句系统不可能用一个简短的答案回答,而应该返回给用户一段描述性的文字。
上述例句说明,对于不同的问句类型,我们使用不同的答案选择策略,一个好的问句分类算法能够有效改善问答系统的性能。
2.3 问句的详细分类可以在语义上确定候选答案的类型
问句的详细分类可以在语义上细化答案的抽取。如:问句“获得诺贝尔奖的中国人是谁?”及问句“2015年获得诺贝尔奖的中国人是谁?”,这两个问句由于在时间上有区别,系统返回的答案也会有明显的区别,如果在问句的分类算法上进一步的细化,那么就可以使系统的返回答案更加准确。
3 问句分类算法(The algorithm of question
classification)
目前对于问句分类的研究一般都是借鉴文本分类的思想,结合问句分类本身的特征进行的。如果没有问句分类,则会对问答系统的性能产生很大的影响。
3.1 各类算法介绍
自然语言处理中,常用统计分类算法主要有:朴素贝叶斯算法、聚类分类算法、K近邻法、神经网络算法及决策树分类算法[2]。
朴素贝叶斯分类算法是由贝叶斯决策理论发展而来的,是现在比较热门的一个分类方法,朴素贝叶斯分类法是假定被分类对象的特征项是相互独立的,相对于问句分类来说,就是问句中的词是相互独立的。聚类方法属于无监督分类法,聚类的核心思想是被分类对象的相似性,聚类主要是根据对象的距离进行测度。K近邻法主要通过构造kd树来提高对训练数据的搜索速度,而传统的线性扫描法面对大的训练数据时,则会在时间复杂度上变大。神经网络算法具有较好的容错能力和自适应学习能力,对数据中的噪声和数据的一些变形具有较好的抵抗能力,并具有较快速的分类处理能力。决策树分类法计算复杂度相对较低,对不相关特征数据的处理有优势,分类结果直观,但有时会产生过度匹配的问题。
本文中的问句分类主要是依据朴素贝叶斯算法,具体将每一用户问句中的各个分词单元作为条件独立的特征项,通过朴素贝叶斯算法计算概率最大的分类结果,同时既可确定用户问句类型。
3.2 具体分类算法基础
为了能够对问答系统中的问句分类,我们定义了问答系统中的问句类型分为7类,即人物、空间、时间、数量、组织及其他。每个大类又进行了进一步的细分,一共形成了45个细的类别。
朴素贝叶斯算法是由传统贝叶斯定理和特征属性相互独立的前提下演变而来的。根据训练样本集,先计算每个分类的先验概率,最后再根据贝叶斯公式及条件概率转换关系计算后验概率的最大值。
(1)设属于,训练样本集的分类,是和的联合概率分布。训练样本集由特征属性相互独立而得。
(2)在条件概率独立的基础上,朴素贝叶斯法又对条件特征项作了独立性的假设,于是得到:
(1)
分类特征项在条件独立假定的基础上,会使朴素贝叶斯公式变得容易计算,不过有时候这在一定程度上会影响到分类结果的合理性。
朴素贝叶斯算法的具体计算过程为,在已知的特征条件各特征属性独立的基础上,通过计算,最后取概率最大的特征输入量,计算得:
(2)
将式(1)代入式(2)得:
(3)
在式(3)中,分母对所有都是相同的,所以
(4)
本文根据朴素贝叶斯思想,设定系统中用户问句里的各个词之间是相互独立的,词之间不存在语义联系,同时也不考虑词之间的顺序。
具体如用户输入问句,“谁发明了电灯?”,那么问答系统对问句进行分词和词性标注处理后,上述问句形式上变成“谁/r发明/v了/u电灯/n”,本算法中假设问句中词与词之间不存在任何关系,本算法就是要在系统问句库中查找和用户所提问句最接近的问句,用式(4)可具体将各变量解释为:表示问句库中的某一问句,表示用户所提问句的中的某一个词,如:谁、发明、电灯;同时问了降低系统的计算复杂度,本文将式(4)简化为:
(5)
3.3 具体算法步骤如下:
(1)依次计算在中出现的类型,具体用表示。
(2)计算
其中表示问句库总的问句数量,加入0.5是为了避免结果为0。
(3)最后计算得出用户问句类型。
4 结论(Conclusion)
本文通过构建本地问句的样本句库和测试句库对算法进行了验证,其中样本句库包括2000句,测试句库包括200句,最后总体测试准确率可以达到64%。对于样本句库中含有较多实例的问句类型,由于问句类型的特征信息比较丰富,因此属于这些类型的问句分类相对比较准确。而对于样本句库中含有较少实例的问句类型,会造成这一类的问句分类准确率偏低[3]。
本文对用户问句进行分类主要采用了朴素贝叶斯算法,通过假定用户问句特征词项相互独立、无关的特性,不仅简化了运算过程,同时也取得了很好的问句分类效果,总体上改善了开放域问答系统的性能,不过由于开放域问答系统所涉及领域的广泛性,系统算法还有待于更多用户问句的验证,以及尝试并使用其他有效的算法来改进问句的分类。
参考文献(References)
[1] Agichtein E,Lawrence S,Gravano L.Learning to find answers
to questions on the Web[J].ACM Transactions on Internet
Technology,2004,4(2):129-162.
[2] Clarke C,et al.Question answering by passage selection(multitext
experiments for TREC-9)[C]//Proceedings of the 9th Text
Retrieval Conference(TREC-9),2000.
[3] Cody Kwok,Oren Etzioni and Daniel S.Weld.Scaling Question
Answering to the Web[J].ACM Transactions on Information
Systems(TOIS)archive Volume19,Issue 3.2001:242-262.
作者简介:
陈 玉(1975-),男,硕士,实验师.研究领域:计算机应
用,中文信息处理.