郜炎峰 王碩寧
?
基于二元文法模型的漢語句子相似度計算
郜炎峰1王碩寧2
1.哈爾濱商業大學計算機與信息工程學院;2.黑龍江旅游職業技術學院郜炎峰(1990-)男,碩士研究生,研究方向:自然語言處理。


行業曲線

本文針對漢語句子相似度計算準確率低的問題,提出解決方案。在自然語言處理領域起到至關重要的作用。
如付諸現實將產生可觀的經濟效益。
創新點:1.在關系向量模型的基礎上,加入了長句子的影響因素,使關鍵詞的相似度計算更加準確;2.采用更加合理的句長相似度計算公式,使句長對句子相似度的影響更加合理。
隨著信息技術的飛速發展,自然語言處理越來越受到人們的重視,句子相似度計算在自然語言處理領域具有非常重要的地位。基于二元文法模型的漢語句子相似度計算方法以相鄰關鍵詞共同出現進行加權的方式計算句子相似度。方法重點考慮關鍵詞詞形和句長相似度,還適當考慮了近義詞的情況。實驗結果表明,該方法可以更好的處理句子長度差較大的句子相似度,在計算漢語句子相似度時準確率高于關系向量模型的方法。
在信息技術迅速發展的今天,信息科技迅速融入各個行業,中國網民數量和網絡規模也出現了爆炸性的增長,互聯網每天都會有海量的信息產生,這些信息以文本、語音、圖片等形式被保存下來,其中文本數據信息占據了三分之二。面對海量的數據,如何從中獲取有效信息是自然語言處理的重要使命,漢語句子相似度計算作為自然語言處理的一個熱點和難點,在自然語言處理中扮演重要的角色。
研究概況
句子相似度計算廣泛應用于信息過濾、機器翻譯、自動文摘、信息抽取等領域,它的研究現狀與其相關的領域息息相關。
國外對英語和日語的句子相似度計算的研究相對比較成熟,但是缺少對漢語句子相似度計算的研究。
國內的漢語句子的相似度研究近些年才逐漸受到重視,并取得了一定的成果,例如:張培穎綜合考慮了語句的六個方面特征,并賦予不同特征不同的權重,提出了多特征融合的句子相似度計算方法。吳全娥,熊海靈綜合考慮關鍵詞詞形、語義和句法結構三個方面計算句子的相似度。文獻[5-7]都是從語義的角度計算句子相似度的方法。
本文著重考慮了關鍵詞詞形的相似度,對漢語句子的影響因素做了深入研究,提出了基于二元文法模型的漢語句子相似度計算方法。
關鍵詞劃分
在漢語言文學中,漢語句子都是由起重要作用的主謂賓成分和次要作用的修飾成分組成。一般主語和賓語是代詞、名詞,謂語是動詞、形容詞。因此,本文將名詞、動詞、代詞、形容詞作為關鍵詞。
特征分析
在句子相似度計算方法中,關鍵詞一直作為唯一的主角,具有無可替代的作用,語句特征雖然很多,但是大多特征都是無足輕重,甚至部分特征之間存有一定的牽制作用,全部考慮所有的特征可能適得其反,本文除關鍵詞外,僅重點考慮句長的影響。
文中的句長表示一個句子包含的詞語個數,在句子中詞語的多少與信息量的大小有著直接的關系,一般句長較大的句子含有信息量較多。
概念與公式
基礎概念
設定一個句子Ti,經過分詞處理,并提取關鍵詞,得到的詞語按順序構成一個關鍵詞向量,表示形式Ti={g1,g2,g3,…,gn},其中gi表示一個關鍵詞,Ti的句長表示為Len(Ti)。Ti中每一個詞語都有一個初始權重值1/n,這些權重值構成的向量稱為權重值向量,表示為Tci={1/n,1/n,…,1/n}。
設定兩個句子Ti和Tj,Tj的句長較大,針對Ti={g1,g2,g3,…,gn}中的每一個詞gi,如果gi或其近義詞在向量Tj={g1,g2,g3,…,gn}中也存在,則Ti和Tj共同存在的詞構成的向量,稱為存在向量,表示為Ei,j={e1,e2,…,ep},其中1≤p≤n。存在向量中的每一個詞對應的權重值向量中的權重值構成的向量,稱為存在值向量,句子Ti的存在值向量表示為Eci={c1,c2,…,cp},句子Tj的存在值向量表示為Ecj={c1,c2, …,cp}。
假如現對Ti和Tj兩個句子進行相似度計算,Tj的句長較大,對存在向量中每一個詞ei,讓ei在Ti和Tj中的前一個相鄰詞作比較,如果這兩個相鄰詞是相同的詞或近義詞,就把該詞在權重值向量Tci和Tcj中相應的權重值增加β倍,同時將存在值向量Eci和Ecj中相應的權重值也增加β倍,如果它們不是相同的詞或近義詞,則權重值不作任何改變。對于ei在Ti和Tj中的后一個相鄰詞做相同處理,β的取值由實驗反復驗證獲得。
計算公式
設定句子Tj的句長較大,本文提出句長的相似度計算公式如公式(1):

另外,本文根據詞語的前后相鄰關系提出關鍵詞相似度計算公式,如公式(2):

式中,存在向量Ei,j的長度為p1,句子Ti的句長Len(Ti)為n1,句子Tj的句長Len(Tj)為n2;ck代表存在值向量Eci中第k項的值,0<k≤p1,cl代表存在值向量Ecj中第l項的值,1≤l≤p1;ci代表句子Ti的權重值向量Tci第i項的值,1≤i≤n1,cj代表句子Tj的權重值向量Tcj第j項的值,1≤j≤n2。
句子相似度計算具體實現
方法介紹
輸入:兩個漢語句子Ti、Tj
輸出:句子相似度S(Ti,Tj)
方法:
1)假如Tj的句長較大,利用NLPIR分詞軟件做分詞處理。
2)對分詞處理后的句子Ti、Tj抽取關鍵詞,并構造兩個句子的關鍵詞向量,計算兩個句子的存在向量Ei,j。
1.2.3 RTCA增殖實驗 RTCA(Real Time Cellular Analysis)中文名為實時細胞分析技術??蓪崿F實時、動態的對細胞進行定量分析,可用于追蹤細胞增殖、遷移和浸潤。本實驗采用xCELLigence RTCA DP(model:3×16)儀器,實驗開始前RTCA機器整體置于5%CO2 37℃細胞培養箱內,待RTCA機器溫度與培養箱內一致方可開始實驗。
3)根據存在向量,分別計算Ti和Tj的權重值向量Tci、Tcj以及Ti和Tj的存在值向量Eci、Ecj。
4)由公式(1)計算兩個句子的句長相似度。
5)由公式(2)計算關鍵詞的相似度。
6)采用以下方法計算兩個句子相似度。
計算方法
該方法是以基于關鍵詞詞形的相似度計算方法為基礎,公式表示如式(3):

該方法加入了長句子的影響因素,同時也在一定程度上縮小了兩個句子長度差對句子相似度的影響。
本實驗采集了150個漢語句子作為一個測試集,實驗分別采用殷耀明等提出的基于關系向量模型的相似度計算方法和本文提出的相似度計算方法做相似度計算結果的比較實驗,從中計算出相似度最高的句子組數,每組包含兩個句子。分別設定為50組和40組時,實驗結果如表1所示。
表1中結果表明本文的相似度計算方法明顯優于關系向量模型的相似度計算方法。分析錯誤數據,發現參考文獻中的方法在計算兩個句子相似度時,過分夸大了句長的影響。本文方法能更加準確的衡量兩個句子的影響因素,因此正確率也較高。
另外,本實驗采用的測試集中含有的非關鍵詞較少,對非關鍵詞較多的句子的相似度進行計算時,其正確率可能會受到影響。例如:“不管怎樣,你都要我去。”與“你要我去?”兩個句子具有相同的關鍵詞,意思卻有明顯差別。此外,不同的標點符號可能導致兩個句子的意思有差異。
本文提出的基于二元文法模型的句子相似度計算方法適當考慮了相鄰詞語之間的相互影響,準確的衡量了句長對相似度的影響。該方法僅對非關鍵詞較少的句子相似度計算做了驗證實驗,對非關鍵詞較多的句子相似度還需要做進一步研究。
基金項目:黑龍江省自然科學基金,基于多策略的漢語語句改寫研究,F201243;黑龍江省教育廳科學研究項目,基于句子結構特點的漢語語句改寫方法研究,12511127
DOI:10.3969/j.issn.1001- 8972.2016.13.025