当前位置:首页 期刊杂志

基于Word2vec+BM25的信息检索技术研究

时间:2024-09-03

华南师范大学物理与电信工程学院 吴桃宇

在AI浪潮的推动下,如何让机器理解语言成为了人们迫不及待的愿望。在这样的背景下,自然语言处理成为了目前人工智能的一大研究方向。本文主要提出了基于Word2vec和BM25算法的问句分析和答案检索。

1.模型介绍

BM25模型是基于TF-IDF算法的模型,是一种典型的信息检索的模型,通常用来做搜索相关性评分。概况其主要思想:首先对问句进行语素解析,生成语素;然后,对于每个搜索文档,计算每个语素与文档的相关性得分;最后,将语素相对于文档的相关性得分进行加权求和,从而得到问句与文档的相关性得分。BM25模型比较简单,但是其局限性也显而易见:

不能理解语义。BM25是一种基于语素为最小单位的匹配得分模型,不能很好地区分词与词之间的相关性。

难以匹配短句答案。BM25模型是基于语素复现的一种评分模型,对于短句答案,其不能够很好地匹配到。例如,问题:高速占用应急车道扣多少分?回答:6分。BM25模型将其的相关度评分为0,而实际上该回答是问题的正确答案。

Word2vec模型是一种词向量模型,是一种用向量表示词汇的一种高效方法。Word2vec是Google 在 2013 年开源的一款将词表征为实数值向量的高效工具, 其利用深度学习的思想,可以通过训练,把对文本内容的处理简化为 K 维向量空间中的向量运算,而向量空间上的相似度可以用来表示文本语义上的相似度。Word2vec模型能够理解词语的相似性,是对BM25传统检索模型的一种很好的补充。

笔者提出来的基于Word2vec+BM25的阅读理解模型,其虽然是属于传统BM25算法的一种改进,有一定的创新性,其也有精度较高、可改良的方面广、可解释性较好等优点。

2.实验过程

2.1 数据集

为了检验笔者提出模型的有效性,在此选取了第六届泰迪杯数据挖掘挑战赛的C题数据集作为模型的测试。该数据集问题有30000个,对应问题的选项有10~20个不等,每个问题的标签都是给定的。笔者将其视为一个篇章,即实验过程是给出特定的问题,模型能够从篇章中找出合适的答案来回答该问题,从结果分析模型的有效性。

2.2 数据预处理

2.2.1 分词:在对问题和候选答案进行分析之前,需要对句子进行分词处理。值得一提的是,由于中文的句子中,谓语、介词、连词、语气词、人称代词、标点符号等词汇频数比较高,而且对笔者句子语义理解影响较小,笔者构建了一张停用词表,在分词时除去了这些“噪声词”。

2.2.2 构建词向量:在分完词以后,为了更大程度地捕获词语之间的相似性与上下文之间的衔接性,笔者利用Word2vec的CBOW模型来训练分词后的词语,将其映射到多维稠密的空间向量中,并用余弦相似度来刻画词与词之间的相似程度。两个词之间的相似度越接近1,表示这两个词的词义越接近。

2.2.3 词性标注:分完词后,由于不同词性对中文句子的影响程度不同,笔者对词语进行词性标注,再进行后续的分析处理。

2.3 问句分析

2.31 问句分类

图1 问句分类情况

要对提出的问句进行回答,首要是对问句进行分类,问句大致可以分为六个类别(如图1所示),分别为人物问句、地点问句、数量问句、事件问句、因果问句以及复杂问句,分类的详细的流程图如图1所示。问句可以划分为含有疑问代词以及不含疑问代词的问句两类,在本文中,笔者定义以下规则:

问句中有且只有一个疑问词的问句是简单问句。简单问句包括人物问句、地点问句、数量问句、事件问句和因果问句。

问句中不含有疑问词或多于一个疑问词的问句是复杂问句。

对于输入一个问句,首先分析其是否是简单问句,如果是简单句,笔者首先把这个疑问词提取出来,根据Word2vec词向量模型与笔者定义好的各类别中心词进行相似度计算,判定该问句是属于基本类型(人物、地点、数量、事件、因果)。

图2 问句分类流程图

2.3.2 问句特征选取

在实际分析的时候,并不是每个词语在问句中都同等重要,而且对每个词语都进行分析,不仅会增大计算量,而且会产生更大的误差,所以在问句分析之前,笔者需要对问句进行特征提取。一般来说,中文句子的成分重要程度有如下关系:

名词>动词>形容词>副词>其他词汇

笔者在提取特征的时候,除了提取重要的疑问词以外,把句子中的名词、动词、形容词、副词提取出来,构成新的句子特征集合。

2.4 答案生成

候选答案的特征选取与问句的特征选取相类似。不同之处在于,候选答案除了提取名词、动词、形容词、副词等重要特征词以外,针对不同类型的简单问句,笔者还提取了额外特征,对其进行补充。例如,对于人物问句,笔者的答案更倾向于回答人名,因此笔者把人名作为人物问句的额外特征,与笔者的重要特征构成特征集合来分析。

BM25算法是用来做相关度打分的公式,主要是计算一个问句里面所有词和文档的相关度,再把分数作累加操作,然后根据分数进行排序的算法。这种算法能够很好地匹配问句Q和答案d的特征。公式描述如下:

影响BM25公式的因数有:

idf,idf 越高,分数越高。

tf,tf 越高,分数越高。

dl/avgdl,如果该查长度在文档水平中越高,则分数越低。

k1,b为分数的调节因子。

依靠BM25排序模型来检索答案有一定的准确性,它能够很好地匹配问句与候选答案的有比较多复现词的情况,对于复杂问句的鉴别准确率较高,对于简单问句的鉴别准确率较低,这是远远不够的。一部分原因是问答对中含有大量答案为短句的问答对,这种情况下模型是很难判断它是否是正确的。另一部分原因是候选答案为长句时,比较容易获得较高的评分,从而能够“混淆”模型。这时笔者提出Word2cec神经网络语言模型来弥补BM25排序模型的不足。

Word2cev神经网络语言模型的提出是因为词语之间的关系并不是独立的,而是一个词语的出现与另一个词或者若干个词有关系,这就是语言模型。在本文中,笔者认为简单问句的答案是由一个核心词构成,复杂问句是由一个核心句子构成,笔者的语言模型主要是针对提高简单问句的精确度。笔者这里采取的是性能较为优异的Word2vec神经网络语言模型来预测核心词。对于简单问句,笔者首先找到问句疑问词所在的位置,笔者通过分析疑问词的上文和下文,来预测核心词。

核心词会多次出现在候选答案组中。笔者的思想是先把高频词提取出来,存放到一个集合中。然后利用Word2vec神经网络语言模型通过上下文来预测中心词,选择出该集合中概率最大的词作为核心词,作为该问句的细粒度答案。基于Word2cev的CBOW语言模型能够通过上下文来预测中心词,并且在简单问句中取得了良好的效果,较好地弥补了BM25模型对短句的识别度低的缺陷。答案生成模块是基于BM25排序模型和Word2vec语言模型来选择最合适的答案,详细的流程图如图3所示。

图3 答案生成流程图

3.结果分析

首先,在检验结果之前,笔者定义了细粒度答案和最佳答案两种不同特征的答案生成方式,并用以对比生成答案的效果:

3.1 细粒度答案:仅使用Word2vec语言模型来生成答案,其结果往往是只有一个词,优点是答案精简、不冗余,对于人物类型和数量类型问句比较有效;缺点是精确度不高。

3.2 最佳答案:融合了BM25排序模型和Word2vec语言模型来生成答案,其优点是答案精确度较高;缺点是过于冗余。

此外,笔者选取了部分问句对构建的阅读理解模型的生成答案的效果进行检验,问句涵盖了人物问句、地点问句、数量问句、事件问句以及复杂问句。部分生成结果如下表格(“”表示没有得到结果):

图4 部分结果

笔者在数据集上的进行大量测试,Word2vec+BM25的阅读理解模型的效果具有以下特点:

3.2.1 该模型实现了从篇章中选择合适的答案来回答问句要求,生成效果良好,而且生成最佳答案(使用Word2vec+BM25模型)的效果比生成细粒度答案(仅使用Word2vec模型)的效果要好。

3.2.2 问句分类相对来说比较粗糙,分类的结果还不是特别精确,这是因为Word2vec模型进行问句分类的局限所致。

3.2.3 答案检索对于简单问句是有更好的效果,对于复杂问句的效果稍差。

本文融合了Word2cec语言模型和BM25排序模型的优点,提出了基于Word2vec+BM25的阅读理解模型。模型不仅能够进行句子层面的分析,而且能够捕获词语之间的联系,能够有效地从海量文本中找出合适的句子回答问句,效果比较良好。模型的缺点是问句分类比较粗糙,仅根据疑问词的特征进行分析,某种意义上属于粗粒度分类。在未来,若能利用更优的算法对问句进行细粒度的问句分类,以及在答案检索模块更充分利用Word2vec语言模型的优势,该模型的效果能进一步提高。

免责声明

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