田紅鵬,馬 博,馮 健
(西安科技大學(xué) 計算機科學(xué)與技術(shù)學(xué)院,陜西 西安 710600)
在文本相似度計算領(lǐng)域中,其主要是扮演著自然語言處理的一種基礎(chǔ)性工具的角色。目前,這種計算方式在很多領(lǐng)域中都能夠看到其身影,比如在處理對話以及數(shù)據(jù)采集問題上均會使用[1]。Islam等[2]提出了一種基于語料庫的語義相似度測量和最長序列匹配算法來測量文本的語義相似度,可以在文本表示等領(lǐng)域?qū)W⒂谟嬎銉蓚€句子或兩個短段落之間的相似度。李曉等基于Word2Vec模型的基礎(chǔ)上,把句子進行了簡化處理,并形成向量空間中的向量運算,然后根據(jù)矩陣之間的關(guān)聯(lián)度對句子語義中的相似度進行了檢驗和論證[3]。其所使用的設(shè)置方式,對于強化相似度結(jié)構(gòu)的精準性起到了顯著作用。Magooda等[4]提出了一個基于TF-IDF和語言模型相結(jié)合的方式將計算出的相似度根據(jù)新的加權(quán)總和對檢索到的文檔進行重新排序。有效克服了模糊理解文章的語義和上下文的問題。Kusne等[5]提出文本距離算法,將文本距離分解為詞間的稀疏矩陣,基于文本向量空間距離進行求解。Tashu等[6]為了解決語義和上下文的問題,提出了使用詞移距離算法的成對語義相似性評估。該方法依靠神經(jīng)詞嵌入來衡量詞之間的相似度。Pontes等[7]證明了局部上下文對于獲取句子中單詞的信息和改進句子分析效果顯著。其系統(tǒng)地分析、識別并保存了句子各部分和整個句子中的相關(guān)信息,通過局部上下文降低均方誤差并增加相關(guān)性分析來改進句子相似性的預(yù)測,同時也提出了語料庫的重要性。Yang等[8]基于淺層句法結(jié)構(gòu)化特征的基礎(chǔ)之上進行求解,雖然依賴樹能有效解釋關(guān)聯(lián)關(guān)系,但無法適用于句子深層語義的解釋。Ozbal等[9]使用樹核函數(shù)根據(jù)輸入數(shù)據(jù)的結(jié)構(gòu)化表示生成不同維度的特征信息,對多種富含語義特征的句法信息進行求解,實驗發(fā)現(xiàn)淺層語義特征與語義特征可以很好結(jié)合。
現(xiàn)存大多數(shù)研究僅考慮單一的文本特征或僅針對語義特征進行模型融合,本文不僅考慮文本語義、詞序、主題關(guān)聯(lián)性等相關(guān)語義問題,同時還結(jié)合了文本結(jié)構(gòu)信息等表現(xiàn)形式展開分析。在此前提下,結(jié)合基于分層池化句向量的方法計算文本相似度,進而實現(xiàn)了不同形式在求解方面的融合,綜合考慮句子語義和文本結(jié)構(gòu)信息并使計算結(jié)果更優(yōu)且合理。
此權(quán)重通過兩部分實現(xiàn),其一是TF詞頻,特征詞在特定一段范圍之內(nèi)出現(xiàn)的次數(shù)出現(xiàn)次數(shù)越多,詞頻量化值越大,出現(xiàn)次數(shù)越少值越小。通過這一數(shù)值的計算,能夠進一步得出與總長度的整體比值。特征詞總量共計為N,其中某詞條的浮現(xiàn)次數(shù)為n,詞頻TFik即
(1)
其二逆文檔頻率即包含特征詞條的文檔數(shù),如式(2)所示。M為全量文本,包含詞條的文本置為m,包含特征詞的文檔越少IDF最終越大
(2)
其中,α為經(jīng)驗系數(shù),通常情況下,該數(shù)值等于0.01。TF-IDF權(quán)重表示為
TIik=TFik*IDFik
(3)
美國P.E.Baxendale的調(diào)查結(jié)果顯示:在文本中的重點思想實際上大部分是出現(xiàn)在第一句當(dāng)中,而這種現(xiàn)象占了整體的85%,另外7%是出現(xiàn)在段落末尾。因此在對其比例進行計算的時候,還需要對其位置因素多加考量,要根據(jù)其不同位置來對關(guān)鍵詞分析權(quán)重。當(dāng)關(guān)鍵詞或者核心內(nèi)容都聚集在第一句或者最后一句的時候,其關(guān)鍵詞會比其它位置的權(quán)重占比高很多。接下來對其加權(quán)函數(shù)進一步展示
(4)
其中,e1和e2為支持個性化設(shè)置,其中將e1值調(diào)整為0.2,e2值調(diào)整成0.1。x代表的時不同位置下的具體比例,且按照0-1的順序自然排序。其中一個i的詞句位置權(quán)重為Pi。
此處對我們當(dāng)前使用的漢語言詞義與特征展開研究[10],需要根據(jù)關(guān)鍵詞的含義、句法關(guān)系等來對其權(quán)重展開針對性計算[11]。對所有詞語的詞性特征進行歸納[12],并總結(jié)為7種,每一種詞性分別所占的比例體現(xiàn)在表1中。
表1 中文文本詞性分布占比
通過梳理表1數(shù)據(jù)我們不難發(fā)現(xiàn),在這些不同性質(zhì)的代表詞性當(dāng)中,在解釋詞匯內(nèi)容方面,最具解釋能力的詞性就是動詞、名詞、形容詞和副詞。剩余3種詞性的詞語幾乎不具備完整的詞匯信息,因此會被看作數(shù)據(jù)噪音被處理掉。通過前4類詞語的運用,一方面,能讓其解釋能力更佳,另一方面,還能進一步簡化不必要的計算流程,進而使計算結(jié)果更為精準與快速。同理,得出了表2中不同詞性下所對應(yīng)的占比。
表2 詞性權(quán)重系數(shù)
在表2所示的數(shù)據(jù)當(dāng)中,Si代表的是不同詞性i下的不同占比,可以發(fā)現(xiàn),除了一類與二類詞性之外,其它詞性權(quán)重都置為零。
在此研究的過程中,首先充分考慮了詞語出現(xiàn)頻率的問題,構(gòu)建多特征權(quán)重的量化信息,兼容TF-IDF、語句、詞性。在多特征融合的前提下,對不同特征詞進行了再次計算,基于其自然降序排序原則下,對特征詞進行排序,其中選取前n個作為文本關(guān)鍵特征詞。最終,在Word2Vec詞向量模型中,通過計算特征詞數(shù)值,得出了最終的向量形式,進而計算出比較精確的相似度數(shù)值。
通過結(jié)合實現(xiàn)的池化操作使用SIF模型,將不同詞序和結(jié)構(gòu)信息的表達類型分層分組,去除向量之間的空間距離后,可以計算出單位向量模型與分層求和的相似度結(jié)果。
為了更好強化算法的特征,并保證最終數(shù)值的準確性,將上述兩種單模型線性加權(quán)計算,得到融合的計算算法(algorithm for calculating the similarity of multi-model fusion,MuMoSim)。計算如下
MuMoSim=x×MuSim+y×IIGSim
(5)
其中,MuSim為前者多特征融合度量計算結(jié)果,IIGSim為后者分層池化度量計算結(jié)果。該計算方法的流程如圖1所示。
圖1 多模型融合文本相似度計算算法
大多數(shù)基于關(guān)鍵詞的相似度計算方法單一統(tǒng)計句子的關(guān)鍵詞,為綜合考慮關(guān)鍵特征對文本相似度結(jié)果的影響,本文采取將詞頻TF-IDF權(quán)重(TIi)、詞性(Si)、詞句位置(Pi)3個特征相結(jié)合,共同計算句子相似度。詞語i在文本D中的多特征融合權(quán)重計算公式如式(6)所示
MFWi=α×TIi+β×Si+γ×Pi
(6)
式中:α、β、γ分別代表的是詞頻、詞性和詞句位置3個不同要素的相似度權(quán)重系數(shù),0≤α≤1,0≤β≤1,0≤γ≤1,同時要滿足α+β+γ=1。
本文采用層次分析法計算各特征項α、β、γ的權(quán)重,針對不同數(shù)據(jù)集設(shè)計不同權(quán)重系數(shù)取值。層次分析法針對本文特征元素進行定性和定量分析。具體步驟如下:
(1)建立層次結(jié)構(gòu)模型
特征融合后的結(jié)果作為目標層,詞頻、詞性、詞句位置相似度作為準則層。
(2)構(gòu)造判斷(成對比較)矩陣
根據(jù)重要程度對比,得出準則層各個準則的比重。標度量化值1-9代表重要程度由低到高,兩兩比較減少干擾因素,最終生成判斷矩陣。
判斷矩陣元素標度方法
(7)
(3)層次排序及其一致性檢驗
計算一致性指標CI
(8)
式中:λmax為從判斷矩陣得出最大特征值,n為特征向量的維度。
平均隨機一致性指標RI標準值見表3,本文為三階矩陣,RI對應(yīng)表格中為0.52。計算一致性比例CR
表3 隨機一致性指標
(9)
通常情況下,若CR<0.1,假設(shè)判斷矩陣已通過最一致性測試,否則不符合一致性。對函數(shù)向量進行歸一化后,將生成權(quán)重向量為α、β、γ的取值。
根據(jù)組建的多特征融合權(quán)重,可以得出富含信息的特征,其中包含大量的文本信息。在多特征融合的詞移距離算法中,使用內(nèi)置多特征權(quán)重之間轉(zhuǎn)移詞的代價計算來代替算法中對兩個文本中兩個詞轉(zhuǎn)移代價的計算。假定ki和kj分別為兩篇數(shù)據(jù)文本囊括的關(guān)鍵詞。計算轉(zhuǎn)移代價
(10)
構(gòu)建轉(zhuǎn)移矩陣Tki,kj以保證文本D中所有關(guān)鍵詞ki完全轉(zhuǎn)移到文本D′中,結(jié)合原始算法的矩陣定義,需要添加以下約束
∑kjTki,kj=MFWki|D
(11)
∑kiTki,kj=MFWkj|D′
(12)
式(11)定義的約束指定從關(guān)鍵項ki轉(zhuǎn)移的總成本必須等于關(guān)鍵特征的權(quán)重系數(shù),式(12)定義的約束規(guī)定轉(zhuǎn)移到關(guān)鍵項kj的總成本必須等于此特征項的組合權(quán)重因子。因此計算文本轉(zhuǎn)移的總代價公式如下
(13)
本小節(jié)提出的距離優(yōu)化目標,就是使上述總代價Ic最小。因此文檔D與文本D′之間的歐氏距離如式(14)所示
(14)
為了確保最終相似度計算結(jié)果加權(quán)過程不受其它因素干擾,此處本文將計算出來的相似度進行處理,使結(jié)果位于0~1范圍內(nèi)。經(jīng)過運算,我們可以得到文檔之間的相似度如式(15)所示
(15)
(1)改進信息增益計算方法
對于平滑逆頻句向量模型只考慮通用數(shù)據(jù)集上的詞頻信息來計算詞權(quán)重,為了使特征詞能夠在更大程度上影響計算任務(wù),必須要綜合性的考慮增強各種因素,其中包括考慮特征詞對不同文本的影響。所以此處添加了類內(nèi)詞頻因子β和類內(nèi)、類間判別因子δ。將兩個影響因子看作新的元素進行數(shù)據(jù)篩選,計算公式如下所示
IIG(T)=IG(T)×β×δ
(16)
此處假設(shè)語料中各類型文本集合為Ci,i∈[2,n]。β表示語料集合中某特征詞在集合中出現(xiàn)次數(shù)與語料當(dāng)中詞總量的比值,這樣能夠更大程度客觀表述特征詞和類別之間的相關(guān)性。類別Ci中單詞w的類內(nèi)詞頻公式如下
(17)
其中,m表示集合中詞總量,Nij表示某特征詞匯在集合中出現(xiàn)次數(shù)。類內(nèi)詞頻因子越大,說明特征詞匯與本類的相關(guān)程度越高,此詞語對于這個集合的語料更具有代表性。
δ刻畫的是對于不同的語料集合進行篩選。如果一個詞只在一個類別中頻繁出現(xiàn),而在其它類別中不太可能出現(xiàn),則說明該詞在類別之間具有較高的區(qū)分度和較高的屬性對比度。此處區(qū)分度計算如下
(18)
(19)
簡言之,類別之間的分離程度越大,類別內(nèi)部的劃分程度越小,文本的區(qū)分程度就越大,特征詞w對類別Ci的貢獻就越大,并且能夠更好地表示類別中包含的信息。特征詞區(qū)分度定義如下
(20)
(2)基于特征貢獻度因子的選詞方法
原SIF模型具有領(lǐng)域自適應(yīng)的優(yōu)勢,在不同語料庫中使用仍然能保證優(yōu)秀的性能,但當(dāng)具體到各語料庫中的集合時,不同詞對任務(wù)的貢獻不同及其權(quán)重的問題不考慮修正。此處在第一小節(jié)的基礎(chǔ)上,增加針對文本任務(wù)的特征貢獻度因子,其表示如式(21)所示
TCF(w)=IIG(T)Weight(w)
(21)
其中,Weight(w) 表示原模型中對特征詞的設(shè)定。
生成句向量需要根據(jù)數(shù)據(jù)集中不同類別特征詞的分布,采用改進的信息增益特征選擇方法提取出任務(wù)貢獻因子。需要將任務(wù)貢獻度低的數(shù)據(jù)項剔除,需要將任務(wù)貢獻度低的數(shù)據(jù)項剔除后再展開計算,這是實現(xiàn)運算結(jié)果準確性的基礎(chǔ)。模型算法過程如下算法1。首先對各個特征詞的出現(xiàn)頻率進行了求解,其次對增益算法進一步升級增強后,對任務(wù)貢獻因子求解,隨后根據(jù)任務(wù)貢獻度因子值大小進行降序排序,修正特征詞表,最終將詞向量加權(quán)平均得到句向量。
算法1: 分層池化的IIG-SIF句向量模型
輸入: 詞向量集合vw; 句子集合S; 語料庫p(w); 分類訓(xùn)練集Ci
輸出: 句向量集合vs
(1)forallsentencesinSdo
(3)endfor
(4) Create matrix X whose columns arevs
(5) Create first singular vectoruby X
(6) Create word order vectordby X
(7)forallsentencesinSdo
(8)vs←vs-uuTvs
(9)vs.append(d)
(10)endfor
分層池化的IIG-SIF計算相似度過程如下:
(1)數(shù)據(jù)預(yù)處理。將標準化、去停篩選后的文本數(shù)據(jù)集合定義為S′1、S′2。
(2)句向量生成。采用改進的特征貢獻度因子生成模型句向量Sv1和Sv2。
(3)相似度計算。利用向量Sv1和Sv2之間的余弦距離計算文本之間的相似度,即
(22)
具體實驗環(huán)境見表4。
表4 實驗環(huán)境
為了凸顯本文方法的有效性,實驗在數(shù)據(jù)集選取時引入中文和英文的句子對、短文本集合等4種數(shù)據(jù)集,以驗證在不同語言、不同粒度下的實際表現(xiàn)情況。具體的數(shù)據(jù)體現(xiàn)見表5。
表5 Quora數(shù)據(jù)集示例
數(shù)據(jù)集Ⅰ如表5所示,其源自Quora數(shù)據(jù)集。其中囊括了39萬余英文句子,由Question1、Question2及Is_duplicate 這3部分組成,在此數(shù)據(jù)集中語義標注為人工標注,若語境結(jié)果表述的含義相同或相似則Is_duplicate置為1,反之為0。
數(shù)據(jù)集Ⅱ選擇了20余類英文的熱點話題,其中包括財經(jīng)、歷史、體育、科技等。將話題文本總量較少的文本類型剔除后,剩余6組共計3000條數(shù)據(jù)以供使用,其中3組文本類別相似,其余3組不相似以供對比。
數(shù)據(jù)集Ⅲ選擇STS中文文本語義相似度語料庫,見表6。數(shù)據(jù)集的評分區(qū)間為[0,5],即0為語義相反或毫不相關(guān),5為相似度極高。該數(shù)據(jù)集分為兩組數(shù)據(jù),其中包含27 490個句子對,其各個相似度評分的數(shù)據(jù)量分布不均,大部分為相似度極高數(shù)據(jù)集,因此,需要篩選數(shù)據(jù),最終本文剩余8000個句子對展開實驗分析,盡量保證各個相似度評分下的數(shù)據(jù)量大小一致。
表6 ChineseSTS數(shù)據(jù)集示例
數(shù)據(jù)集Ⅳ選取自復(fù)旦大學(xué)的中文文本分類數(shù)據(jù)集。下載的原始數(shù)據(jù)編碼格式是gb18030,因此需要將數(shù)據(jù)格式轉(zhuǎn)為utf-8編碼格式后使用。train.zip訓(xùn)練集共9804篇文檔,test.zip測試集共9832篇文檔,都分為20個類別。其中無用數(shù)據(jù)需篩選,部分類別的文檔數(shù)量較少,無法使用。本文選擇計算機、環(huán)境等7類數(shù)據(jù)量充足的數(shù)據(jù)以供使用。
在實驗過程中首先做預(yù)處理,對數(shù)據(jù)進行刪除和過濾等處理。與此同時,本文使用了相同的區(qū)間值,即[0,1],在對相關(guān)數(shù)據(jù)進行觀察和研究之后,對評分較低的語句進行了二次標注,即統(tǒng)一標上1,而評分結(jié)果為2或0時置為0。
接下來,本文使用jieba工具包對采集到的數(shù)據(jù)進行分詞,并對特征詞的TF-IDF系數(shù)予以求解,然后對所有詞匯按照其不同特征值進行細分,最終歸結(jié)為4類,并分別進行標注。而在此之前,要先對短文本數(shù)據(jù)進行篩選,并對其中不同詞語的位置予以定位,進而得出不同詞性的權(quán)重。另外,對于句子對比而言,應(yīng)將初始權(quán)重均勻設(shè)置為1。這種做法,一方面能夠降低文本長度對結(jié)算結(jié)果造成的影響,另一方面也能夠最大限度提升計算過程的便利性。至此將數(shù)據(jù)代入式(6)計算出融合后的權(quán)重系數(shù)大小。
第三步結(jié)合現(xiàn)有資料,利用已有流行庫來對Word2Vec詞向量進行數(shù)據(jù)集訓(xùn)練。其中選用模型Skip-gram模型(sg=1)。設(shè)定其基本參數(shù),結(jié)合實際情況將窗口大小設(shè)為5,向量維度300,初始默認學(xué)習(xí)率設(shè)置為0.001。并且使用一些初始化后隨機的向量來表示不在語料庫中的詞語。
最后進行分層池化相關(guān)操作。先對各個特征詞的出現(xiàn)頻率進行了求解,再將增益算法增強后對任務(wù)貢獻因子求解。模型依然按照原始模型當(dāng)中參數(shù)進行設(shè)置。模型系數(shù)a設(shè)置為0.0001。
(1)實驗1:選取特征詞最佳占比
在實驗過程中,選擇使用多特征融合模式下適用的詞移距離算法時,在選取詞語這一過程中,不同選取比例會影響文本相似度計算的結(jié)果。選取的比例過小,就會導(dǎo)致模型可能會忽視一些文本信息,影響算法的計算結(jié)果;但如果選取的比例過大,而這些信息中包含了一些與模型不兼容的信息,模型涉及的冗余信息過多,這導(dǎo)致算法效果不佳、精準度無法得到保證。
聚類被廣泛應(yīng)用在信息挖掘模型中,因為這種模式不僅不需要事先訓(xùn)練,同時還能夠免去標注、分類等復(fù)雜環(huán)節(jié)。所以在從此實驗過程中,本文重點采用了當(dāng)下聚類效果出眾的K-means、DBSCAN算法中來確定特征詞占比。鑒于數(shù)據(jù)集Ⅱ在聚類算法中也經(jīng)常使用,也得到了大部分研究者的認可。基于此,本文將在這一數(shù)據(jù)集的前提下,選擇歸一化互信息指標(normalized mutual information,NMI)來評測聚類結(jié)果好壞。當(dāng)NMI值越大,說明聚類的效果越好,即說明該算法包含的文本信息越多。在圖2中,不同比例特征項對聚類結(jié)果的差異十分明顯。
圖2 文本特征詞對聚類的影響
由圖2可知,如果選取60%的文本特征詞,聚類的效果是最好的。若是選取的比例小于60%,就會出現(xiàn)模型包含的文本信息量不足,造成算法的效果不理想,若是選取的比例大于60%,就會造成文本的冗余,削弱文本與文本之間的獨立性,造成算法的效果不準確。
(2)實驗2:針對加權(quán)因子進行取值。
該實驗的數(shù)據(jù)集選自數(shù)據(jù)集Ⅳ中的部分內(nèi)容,結(jié)果見表7。
表7 不同x和y取值下的實驗結(jié)果
由表7可知,通過增加多特征融合和詞移距離算法的權(quán)重,就能夠進一步提升召回率,因此這種做法能夠最大限度保證數(shù)據(jù)運算的準確性和文本特征的多元性。通過實驗結(jié)果可知,當(dāng)x選取0.6,y選取0.4的時候,召回率最高,最終本文確定x和y的取值分別為0.6和0.4。
(3)實驗3:融合方法的對照實驗
為了驗證本文算法的有效性,選擇了準確率、召回率和F1值作為評價指標,通過將本文算法(MuMoSim)與未融合多特征的詞移距離算法(MuSim)、基于分層池化IIG-SIF句向量算法(IIGSim)、傳統(tǒng)的詞移距離算法(WMDSim)和基于SIF句向量算法(SIFSim)進行對比來進行驗證。實驗結(jié)果見表8。
表8 融合方法對照實驗結(jié)果數(shù)據(jù)
由表8可以看出,在這4種數(shù)據(jù)集下,本文算法(MuMoSim)在3個評價指標上都獲得了比較高的數(shù)值,評價指標取得的值越高,說明算法的效果越好。這是因為本文算法能夠?qū)崿F(xiàn)詞義、語義等多種信息的有效采集和處理。而在這一前提下提出的多特征融合權(quán)重,結(jié)合數(shù)據(jù)特征能夠更為精準解釋詞語轉(zhuǎn)移距離。結(jié)合分層池化相關(guān)內(nèi)容,根據(jù)數(shù)據(jù)集中不同類別特征詞的分布,采用改進的信息增益特征選擇方法提出任務(wù)貢獻因子,計算出句向量大小。由于本文算法還提前設(shè)置了最佳的文本特征詞的占比,這從一定程度上提高了算法運行的效率。
(4)實驗4:不同文本相似度算法的對比實驗。
將本文算法與文獻[13,14]相關(guān)融合算法做對照實驗,以F1值為評價標準,實驗結(jié)果見表9。
表9 4種數(shù)據(jù)集下3類相似度算法F1值/%
由表9可知,文獻[13]的算法雖結(jié)合反義與否定兩種信息,但其語義詞典不完善,明顯在不同的數(shù)據(jù)集有不同的影響,在英文新聞數(shù)據(jù)處理方面效果起伏較大。文獻[14]的相似度計算算法雖然獲取了句子的詞形特征、詞序特征、句長特征,但在語義相似度處理方面存在不足,影響相似度結(jié)果。而本文在此次研究中,提出MuMoSim的算法,既考慮了最佳的文本特征占比,還設(shè)置了最佳權(quán)重,讓最終結(jié)論更為精準。由實驗結(jié)果可知,本文算法在4種數(shù)據(jù)集中在F1值下的表現(xiàn)都要優(yōu)于其它兩種方法,更具有競爭性。
首先,本文在傳統(tǒng)詞移距離算法的基礎(chǔ)上加入了特征融合機制,融合多特征來解決權(quán)重單一對詞移距離算法的影響。其次,引入分層池化IIG-SIF句向量模型,在一定程度上增強文本結(jié)構(gòu)信息和詞匯排序問題。最后,通過對前兩種方法進行加權(quán)融合,得到最終算方法。實驗結(jié)果表明,本文的算法與之前基線模型進行相比,在評價指標F1值上有了明顯的提升,得到了較好的文本相似度計算結(jié)果。
在后續(xù)的研究過程中將繼續(xù)對本文的方法加以改進,例如引入外部知識來彌補中文數(shù)據(jù)庫效果差的弊端,增強中文的語義信息,提高文本相似度的計算結(jié)果。