華南師范大學(xué)物理與電信工程學(xué)院 吳桃宇
在AI浪潮的推動下,如何讓機(jī)器理解語言成為了人們迫不及待的愿望。在這樣的背景下,自然語言處理成為了目前人工智能的一大研究方向。本文主要提出了基于Word2vec和BM25算法的問句分析和答案檢索。
BM25模型是基于TF-IDF算法的模型,是一種典型的信息檢索的模型,通常用來做搜索相關(guān)性評分。概況其主要思想:首先對問句進(jìn)行語素解析,生成語素;然后,對于每個搜索文檔,計算每個語素與文檔的相關(guān)性得分;最后,將語素相對于文檔的相關(guān)性得分進(jìn)行加權(quán)求和,從而得到問句與文檔的相關(guān)性得分。BM25模型比較簡單,但是其局限性也顯而易見:
不能理解語義。BM25是一種基于語素為最小單位的匹配得分模型,不能很好地區(qū)分詞與詞之間的相關(guān)性。
難以匹配短句答案。BM25模型是基于語素復(fù)現(xiàn)的一種評分模型,對于短句答案,其不能夠很好地匹配到。例如,問題:高速占用應(yīng)急車道扣多少分?回答:6分。BM25模型將其的相關(guān)度評分為0,而實際上該回答是問題的正確答案。
Word2vec模型是一種詞向量模型,是一種用向量表示詞匯的一種高效方法。Word2vec是Google 在 2013 年開源的一款將詞表征為實數(shù)值向量的高效工具, 其利用深度學(xué)習(xí)的思想,可以通過訓(xùn)練,把對文本內(nèi)容的處理簡化為 K 維向量空間中的向量運算,而向量空間上的相似度可以用來表示文本語義上的相似度。Word2vec模型能夠理解詞語的相似性,是對BM25傳統(tǒng)檢索模型的一種很好的補(bǔ)充。
筆者提出來的基于Word2vec+BM25的閱讀理解模型,其雖然是屬于傳統(tǒng)BM25算法的一種改進(jìn),有一定的創(chuàng)新性,其也有精度較高、可改良的方面廣、可解釋性較好等優(yōu)點。
為了檢驗筆者提出模型的有效性,在此選取了第六屆泰迪杯數(shù)據(jù)挖掘挑戰(zhàn)賽的C題數(shù)據(jù)集作為模型的測試。該數(shù)據(jù)集問題有30000個,對應(yīng)問題的選項有10~20個不等,每個問題的標(biāo)簽都是給定的。筆者將其視為一個篇章,即實驗過程是給出特定的問題,模型能夠從篇章中找出合適的答案來回答該問題,從結(jié)果分析模型的有效性。
2.2.1 分詞:在對問題和候選答案進(jìn)行分析之前,需要對句子進(jìn)行分詞處理。值得一提的是,由于中文的句子中,謂語、介詞、連詞、語氣詞、人稱代詞、標(biāo)點符號等詞匯頻數(shù)比較高,而且對筆者句子語義理解影響較小,筆者構(gòu)建了一張停用詞表,在分詞時除去了這些“噪聲詞”。
2.2.2 構(gòu)建詞向量:在分完詞以后,為了更大程度地捕獲詞語之間的相似性與上下文之間的銜接性,筆者利用Word2vec的CBOW模型來訓(xùn)練分詞后的詞語,將其映射到多維稠密的空間向量中,并用余弦相似度來刻畫詞與詞之間的相似程度。兩個詞之間的相似度越接近1,表示這兩個詞的詞義越接近。
2.2.3 詞性標(biāo)注:分完詞后,由于不同詞性對中文句子的影響程度不同,筆者對詞語進(jìn)行詞性標(biāo)注,再進(jìn)行后續(xù)的分析處理。
2.31 問句分類

圖1 問句分類情況
要對提出的問句進(jìn)行回答,首要是對問句進(jìn)行分類,問句大致可以分為六個類別(如圖1所示),分別為人物問句、地點問句、數(shù)量問句、事件問句、因果問句以及復(fù)雜問句,分類的詳細(xì)的流程圖如圖1所示。問句可以劃分為含有疑問代詞以及不含疑問代詞的問句兩類,在本文中,筆者定義以下規(guī)則:
問句中有且只有一個疑問詞的問句是簡單問句。簡單問句包括人物問句、地點問句、數(shù)量問句、事件問句和因果問句。
問句中不含有疑問詞或多于一個疑問詞的問句是復(fù)雜問句。
對于輸入一個問句,首先分析其是否是簡單問句,如果是簡單句,筆者首先把這個疑問詞提取出來,根據(jù)Word2vec詞向量模型與筆者定義好的各類別中心詞進(jìn)行相似度計算,判定該問句是屬于基本類型(人物、地點、數(shù)量、事件、因果)。

圖2 問句分類流程圖
2.3.2 問句特征選取
在實際分析的時候,并不是每個詞語在問句中都同等重要,而且對每個詞語都進(jìn)行分析,不僅會增大計算量,而且會產(chǎn)生更大的誤差,所以在問句分析之前,筆者需要對問句進(jìn)行特征提取。一般來說,中文句子的成分重要程度有如下關(guān)系:
名詞>動詞>形容詞>副詞>其他詞匯
筆者在提取特征的時候,除了提取重要的疑問詞以外,把句子中的名詞、動詞、形容詞、副詞提取出來,構(gòu)成新的句子特征集合。
候選答案的特征選取與問句的特征選取相類似。不同之處在于,候選答案除了提取名詞、動詞、形容詞、副詞等重要特征詞以外,針對不同類型的簡單問句,筆者還提取了額外特征,對其進(jìn)行補(bǔ)充。例如,對于人物問句,筆者的答案更傾向于回答人名,因此筆者把人名作為人物問句的額外特征,與筆者的重要特征構(gòu)成特征集合來分析。
BM25算法是用來做相關(guān)度打分的公式,主要是計算一個問句里面所有詞和文檔的相關(guān)度,再把分?jǐn)?shù)作累加操作,然后根據(jù)分?jǐn)?shù)進(jìn)行排序的算法。這種算法能夠很好地匹配問句Q和答案d的特征。公式描述如下:

影響B(tài)M25公式的因數(shù)有:
idf,idf 越高,分?jǐn)?shù)越高。
tf,tf 越高,分?jǐn)?shù)越高。
dl/avgdl,如果該查長度在文檔水平中越高,則分?jǐn)?shù)越低。
k1,b為分?jǐn)?shù)的調(diào)節(jié)因子。
依靠BM25排序模型來檢索答案有一定的準(zhǔn)確性,它能夠很好地匹配問句與候選答案的有比較多復(fù)現(xiàn)詞的情況,對于復(fù)雜問句的鑒別準(zhǔn)確率較高,對于簡單問句的鑒別準(zhǔn)確率較低,這是遠(yuǎn)遠(yuǎn)不夠的。一部分原因是問答對中含有大量答案為短句的問答對,這種情況下模型是很難判斷它是否是正確的。另一部分原因是候選答案為長句時,比較容易獲得較高的評分,從而能夠“混淆”模型。這時筆者提出Word2cec神經(jīng)網(wǎng)絡(luò)語言模型來彌補(bǔ)BM25排序模型的不足。
Word2cev神經(jīng)網(wǎng)絡(luò)語言模型的提出是因為詞語之間的關(guān)系并不是獨立的,而是一個詞語的出現(xiàn)與另一個詞或者若干個詞有關(guān)系,這就是語言模型。在本文中,筆者認(rèn)為簡單問句的答案是由一個核心詞構(gòu)成,復(fù)雜問句是由一個核心句子構(gòu)成,筆者的語言模型主要是針對提高簡單問句的精確度。筆者這里采取的是性能較為優(yōu)異的Word2vec神經(jīng)網(wǎng)絡(luò)語言模型來預(yù)測核心詞。對于簡單問句,筆者首先找到問句疑問詞所在的位置,筆者通過分析疑問詞的上文和下文,來預(yù)測核心詞。
核心詞會多次出現(xiàn)在候選答案組中。筆者的思想是先把高頻詞提取出來,存放到一個集合中。然后利用Word2vec神經(jīng)網(wǎng)絡(luò)語言模型通過上下文來預(yù)測中心詞,選擇出該集合中概率最大的詞作為核心詞,作為該問句的細(xì)粒度答案。基于Word2cev的CBOW語言模型能夠通過上下文來預(yù)測中心詞,并且在簡單問句中取得了良好的效果,較好地彌補(bǔ)了BM25模型對短句的識別度低的缺陷。答案生成模塊是基于BM25排序模型和Word2vec語言模型來選擇最合適的答案,詳細(xì)的流程圖如圖3所示。

圖3 答案生成流程圖
首先,在檢驗結(jié)果之前,筆者定義了細(xì)粒度答案和最佳答案兩種不同特征的答案生成方式,并用以對比生成答案的效果:
3.1 細(xì)粒度答案:僅使用Word2vec語言模型來生成答案,其結(jié)果往往是只有一個詞,優(yōu)點是答案精簡、不冗余,對于人物類型和數(shù)量類型問句比較有效;缺點是精確度不高。
3.2 最佳答案:融合了BM25排序模型和Word2vec語言模型來生成答案,其優(yōu)點是答案精確度較高;缺點是過于冗余。
此外,筆者選取了部分問句對構(gòu)建的閱讀理解模型的生成答案的效果進(jìn)行檢驗,問句涵蓋了人物問句、地點問句、數(shù)量問句、事件問句以及復(fù)雜問句。部分生成結(jié)果如下表格(“”表示沒有得到結(jié)果):

圖4 部分結(jié)果
筆者在數(shù)據(jù)集上的進(jìn)行大量測試,Word2vec+BM25的閱讀理解模型的效果具有以下特點:
3.2.1 該模型實現(xiàn)了從篇章中選擇合適的答案來回答問句要求,生成效果良好,而且生成最佳答案(使用Word2vec+BM25模型)的效果比生成細(xì)粒度答案(僅使用Word2vec模型)的效果要好。
3.2.2 問句分類相對來說比較粗糙,分類的結(jié)果還不是特別精確,這是因為Word2vec模型進(jìn)行問句分類的局限所致。
3.2.3 答案檢索對于簡單問句是有更好的效果,對于復(fù)雜問句的效果稍差。
本文融合了Word2cec語言模型和BM25排序模型的優(yōu)點,提出了基于Word2vec+BM25的閱讀理解模型。模型不僅能夠進(jìn)行句子層面的分析,而且能夠捕獲詞語之間的聯(lián)系,能夠有效地從海量文本中找出合適的句子回答問句,效果比較良好。模型的缺點是問句分類比較粗糙,僅根據(jù)疑問詞的特征進(jìn)行分析,某種意義上屬于粗粒度分類。在未來,若能利用更優(yōu)的算法對問句進(jìn)行細(xì)粒度的問句分類,以及在答案檢索模塊更充分利用Word2vec語言模型的優(yōu)勢,該模型的效果能進(jìn)一步提高。