華南師范大學(xué)物理與電信工程學(xué)院 吳桃宇
在AI浪潮的推動(dòng)下,如何讓機(jī)器理解語(yǔ)言成為了人們迫不及待的愿望。在這樣的背景下,自然語(yǔ)言處理成為了目前人工智能的一大研究方向。本文主要提出了基于Word2vec和BM25算法的問(wèn)句分析和答案檢索。
BM25模型是基于TF-IDF算法的模型,是一種典型的信息檢索的模型,通常用來(lái)做搜索相關(guān)性評(píng)分。概況其主要思想:首先對(duì)問(wèn)句進(jìn)行語(yǔ)素解析,生成語(yǔ)素;然后,對(duì)于每個(gè)搜索文檔,計(jì)算每個(gè)語(yǔ)素與文檔的相關(guān)性得分;最后,將語(yǔ)素相對(duì)于文檔的相關(guān)性得分進(jìn)行加權(quán)求和,從而得到問(wèn)句與文檔的相關(guān)性得分。BM25模型比較簡(jiǎn)單,但是其局限性也顯而易見(jiàn):
不能理解語(yǔ)義。BM25是一種基于語(yǔ)素為最小單位的匹配得分模型,不能很好地區(qū)分詞與詞之間的相關(guān)性。
難以匹配短句答案。BM25模型是基于語(yǔ)素復(fù)現(xiàn)的一種評(píng)分模型,對(duì)于短句答案,其不能夠很好地匹配到。例如,問(wèn)題:高速占用應(yīng)急車(chē)道扣多少分?回答:6分。BM25模型將其的相關(guān)度評(píng)分為0,而實(shí)際上該回答是問(wèn)題的正確答案。
Word2vec模型是一種詞向量模型,是一種用向量表示詞匯的一種高效方法。Word2vec是Google 在 2013 年開(kāi)源的一款將詞表征為實(shí)數(shù)值向量的高效工具, 其利用深度學(xué)習(xí)的思想,可以通過(guò)訓(xùn)練,把對(duì)文本內(nèi)容的處理簡(jiǎn)化為 K 維向量空間中的向量運(yùn)算,而向量空間上的相似度可以用來(lái)表示文本語(yǔ)義上的相似度。Word2vec模型能夠理解詞語(yǔ)的相似性,是對(duì)BM25傳統(tǒng)檢索模型的一種很好的補(bǔ)充。
筆者提出來(lái)的基于Word2vec+BM25的閱讀理解模型,其雖然是屬于傳統(tǒng)BM25算法的一種改進(jìn),有一定的創(chuàng)新性,其也有精度較高、可改良的方面廣、可解釋性較好等優(yōu)點(diǎn)。
為了檢驗(yàn)筆者提出模型的有效性,在此選取了第六屆泰迪杯數(shù)據(jù)挖掘挑戰(zhàn)賽的C題數(shù)據(jù)集作為模型的測(cè)試。該數(shù)據(jù)集問(wèn)題有30000個(gè),對(duì)應(yīng)問(wèn)題的選項(xiàng)有10~20個(gè)不等,每個(gè)問(wèn)題的標(biāo)簽都是給定的。筆者將其視為一個(gè)篇章,即實(shí)驗(yàn)過(guò)程是給出特定的問(wèn)題,模型能夠從篇章中找出合適的答案來(lái)回答該問(wèn)題,從結(jié)果分析模型的有效性。
2.2.1 分詞:在對(duì)問(wèn)題和候選答案進(jìn)行分析之前,需要對(duì)句子進(jìn)行分詞處理。值得一提的是,由于中文的句子中,謂語(yǔ)、介詞、連詞、語(yǔ)氣詞、人稱代詞、標(biāo)點(diǎn)符號(hào)等詞匯頻數(shù)比較高,而且對(duì)筆者句子語(yǔ)義理解影響較小,筆者構(gòu)建了一張停用詞表,在分詞時(shí)除去了這些“噪聲詞”。
2.2.2 構(gòu)建詞向量:在分完詞以后,為了更大程度地捕獲詞語(yǔ)之間的相似性與上下文之間的銜接性,筆者利用Word2vec的CBOW模型來(lái)訓(xùn)練分詞后的詞語(yǔ),將其映射到多維稠密的空間向量中,并用余弦相似度來(lái)刻畫(huà)詞與詞之間的相似程度。兩個(gè)詞之間的相似度越接近1,表示這兩個(gè)詞的詞義越接近。
2.2.3 詞性標(biāo)注:分完詞后,由于不同詞性對(duì)中文句子的影響程度不同,筆者對(duì)詞語(yǔ)進(jìn)行詞性標(biāo)注,再進(jìn)行后續(xù)的分析處理。
2.31 問(wèn)句分類(lèi)
圖1 問(wèn)句分類(lèi)情況
要對(duì)提出的問(wèn)句進(jìn)行回答,首要是對(duì)問(wèn)句進(jìn)行分類(lèi),問(wèn)句大致可以分為六個(gè)類(lèi)別(如圖1所示),分別為人物問(wèn)句、地點(diǎn)問(wèn)句、數(shù)量問(wèn)句、事件問(wèn)句、因果問(wèn)句以及復(fù)雜問(wèn)句,分類(lèi)的詳細(xì)的流程圖如圖1所示。問(wèn)句可以劃分為含有疑問(wèn)代詞以及不含疑問(wèn)代詞的問(wèn)句兩類(lèi),在本文中,筆者定義以下規(guī)則:
問(wèn)句中有且只有一個(gè)疑問(wèn)詞的問(wèn)句是簡(jiǎn)單問(wèn)句。簡(jiǎn)單問(wèn)句包括人物問(wèn)句、地點(diǎn)問(wèn)句、數(shù)量問(wèn)句、事件問(wèn)句和因果問(wèn)句。
問(wèn)句中不含有疑問(wèn)詞或多于一個(gè)疑問(wèn)詞的問(wèn)句是復(fù)雜問(wèn)句。
對(duì)于輸入一個(gè)問(wèn)句,首先分析其是否是簡(jiǎn)單問(wèn)句,如果是簡(jiǎn)單句,筆者首先把這個(gè)疑問(wèn)詞提取出來(lái),根據(jù)Word2vec詞向量模型與筆者定義好的各類(lèi)別中心詞進(jìn)行相似度計(jì)算,判定該問(wèn)句是屬于基本類(lèi)型(人物、地點(diǎn)、數(shù)量、事件、因果)。
圖2 問(wèn)句分類(lèi)流程圖
2.3.2 問(wèn)句特征選取
在實(shí)際分析的時(shí)候,并不是每個(gè)詞語(yǔ)在問(wèn)句中都同等重要,而且對(duì)每個(gè)詞語(yǔ)都進(jìn)行分析,不僅會(huì)增大計(jì)算量,而且會(huì)產(chǎn)生更大的誤差,所以在問(wèn)句分析之前,筆者需要對(duì)問(wèn)句進(jìn)行特征提取。一般來(lái)說(shuō),中文句子的成分重要程度有如下關(guān)系:
名詞>動(dòng)詞>形容詞>副詞>其他詞匯
筆者在提取特征的時(shí)候,除了提取重要的疑問(wèn)詞以外,把句子中的名詞、動(dòng)詞、形容詞、副詞提取出來(lái),構(gòu)成新的句子特征集合。
候選答案的特征選取與問(wèn)句的特征選取相類(lèi)似。不同之處在于,候選答案除了提取名詞、動(dòng)詞、形容詞、副詞等重要特征詞以外,針對(duì)不同類(lèi)型的簡(jiǎn)單問(wèn)句,筆者還提取了額外特征,對(duì)其進(jìn)行補(bǔ)充。例如,對(duì)于人物問(wèn)句,筆者的答案更傾向于回答人名,因此筆者把人名作為人物問(wèn)句的額外特征,與筆者的重要特征構(gòu)成特征集合來(lái)分析。
BM25算法是用來(lái)做相關(guān)度打分的公式,主要是計(jì)算一個(gè)問(wèn)句里面所有詞和文檔的相關(guān)度,再把分?jǐn)?shù)作累加操作,然后根據(jù)分?jǐn)?shù)進(jìn)行排序的算法。這種算法能夠很好地匹配問(wèn)句Q和答案d的特征。公式描述如下:
影響B(tài)M25公式的因數(shù)有:
idf,idf 越高,分?jǐn)?shù)越高。
tf,tf 越高,分?jǐn)?shù)越高。
dl/avgdl,如果該查長(zhǎng)度在文檔水平中越高,則分?jǐn)?shù)越低。
k1,b為分?jǐn)?shù)的調(diào)節(jié)因子。
依靠BM25排序模型來(lái)檢索答案有一定的準(zhǔn)確性,它能夠很好地匹配問(wèn)句與候選答案的有比較多復(fù)現(xiàn)詞的情況,對(duì)于復(fù)雜問(wèn)句的鑒別準(zhǔn)確率較高,對(duì)于簡(jiǎn)單問(wèn)句的鑒別準(zhǔn)確率較低,這是遠(yuǎn)遠(yuǎn)不夠的。一部分原因是問(wèn)答對(duì)中含有大量答案為短句的問(wèn)答對(duì),這種情況下模型是很難判斷它是否是正確的。另一部分原因是候選答案為長(zhǎng)句時(shí),比較容易獲得較高的評(píng)分,從而能夠“混淆”模型。這時(shí)筆者提出Word2cec神經(jīng)網(wǎng)絡(luò)語(yǔ)言模型來(lái)彌補(bǔ)BM25排序模型的不足。
Word2cev神經(jīng)網(wǎng)絡(luò)語(yǔ)言模型的提出是因?yàn)樵~語(yǔ)之間的關(guān)系并不是獨(dú)立的,而是一個(gè)詞語(yǔ)的出現(xiàn)與另一個(gè)詞或者若干個(gè)詞有關(guān)系,這就是語(yǔ)言模型。在本文中,筆者認(rèn)為簡(jiǎn)單問(wèn)句的答案是由一個(gè)核心詞構(gòu)成,復(fù)雜問(wèn)句是由一個(gè)核心句子構(gòu)成,筆者的語(yǔ)言模型主要是針對(duì)提高簡(jiǎn)單問(wèn)句的精確度。筆者這里采取的是性能較為優(yōu)異的Word2vec神經(jīng)網(wǎng)絡(luò)語(yǔ)言模型來(lái)預(yù)測(cè)核心詞。對(duì)于簡(jiǎn)單問(wèn)句,筆者首先找到問(wèn)句疑問(wèn)詞所在的位置,筆者通過(guò)分析疑問(wèn)詞的上文和下文,來(lái)預(yù)測(cè)核心詞。
核心詞會(huì)多次出現(xiàn)在候選答案組中。筆者的思想是先把高頻詞提取出來(lái),存放到一個(gè)集合中。然后利用Word2vec神經(jīng)網(wǎng)絡(luò)語(yǔ)言模型通過(guò)上下文來(lái)預(yù)測(cè)中心詞,選擇出該集合中概率最大的詞作為核心詞,作為該問(wèn)句的細(xì)粒度答案。基于Word2cev的CBOW語(yǔ)言模型能夠通過(guò)上下文來(lái)預(yù)測(cè)中心詞,并且在簡(jiǎn)單問(wèn)句中取得了良好的效果,較好地彌補(bǔ)了BM25模型對(duì)短句的識(shí)別度低的缺陷。答案生成模塊是基于BM25排序模型和Word2vec語(yǔ)言模型來(lái)選擇最合適的答案,詳細(xì)的流程圖如圖3所示。
圖3 答案生成流程圖
首先,在檢驗(yàn)結(jié)果之前,筆者定義了細(xì)粒度答案和最佳答案兩種不同特征的答案生成方式,并用以對(duì)比生成答案的效果:
3.1 細(xì)粒度答案:僅使用Word2vec語(yǔ)言模型來(lái)生成答案,其結(jié)果往往是只有一個(gè)詞,優(yōu)點(diǎn)是答案精簡(jiǎn)、不冗余,對(duì)于人物類(lèi)型和數(shù)量類(lèi)型問(wèn)句比較有效;缺點(diǎn)是精確度不高。
3.2 最佳答案:融合了BM25排序模型和Word2vec語(yǔ)言模型來(lái)生成答案,其優(yōu)點(diǎn)是答案精確度較高;缺點(diǎn)是過(guò)于冗余。
此外,筆者選取了部分問(wèn)句對(duì)構(gòu)建的閱讀理解模型的生成答案的效果進(jìn)行檢驗(yàn),問(wèn)句涵蓋了人物問(wèn)句、地點(diǎn)問(wèn)句、數(shù)量問(wèn)句、事件問(wèn)句以及復(fù)雜問(wèn)句。部分生成結(jié)果如下表格(“”表示沒(méi)有得到結(jié)果):
圖4 部分結(jié)果
筆者在數(shù)據(jù)集上的進(jìn)行大量測(cè)試,Word2vec+BM25的閱讀理解模型的效果具有以下特點(diǎn):
3.2.1 該模型實(shí)現(xiàn)了從篇章中選擇合適的答案來(lái)回答問(wèn)句要求,生成效果良好,而且生成最佳答案(使用Word2vec+BM25模型)的效果比生成細(xì)粒度答案(僅使用Word2vec模型)的效果要好。
3.2.2 問(wèn)句分類(lèi)相對(duì)來(lái)說(shuō)比較粗糙,分類(lèi)的結(jié)果還不是特別精確,這是因?yàn)閃ord2vec模型進(jìn)行問(wèn)句分類(lèi)的局限所致。
3.2.3 答案檢索對(duì)于簡(jiǎn)單問(wèn)句是有更好的效果,對(duì)于復(fù)雜問(wèn)句的效果稍差。
本文融合了Word2cec語(yǔ)言模型和BM25排序模型的優(yōu)點(diǎn),提出了基于Word2vec+BM25的閱讀理解模型。模型不僅能夠進(jìn)行句子層面的分析,而且能夠捕獲詞語(yǔ)之間的聯(lián)系,能夠有效地從海量文本中找出合適的句子回答問(wèn)句,效果比較良好。模型的缺點(diǎn)是問(wèn)句分類(lèi)比較粗糙,僅根據(jù)疑問(wèn)詞的特征進(jìn)行分析,某種意義上屬于粗粒度分類(lèi)。在未來(lái),若能利用更優(yōu)的算法對(duì)問(wèn)句進(jìn)行細(xì)粒度的問(wèn)句分類(lèi),以及在答案檢索模塊更充分利用Word2vec語(yǔ)言模型的優(yōu)勢(shì),該模型的效果能進(jìn)一步提高。