王保民,劉明生,,邢 飛
(1.邯鄲學院信息工程學院,河北邯鄲 056005;2.石家莊鐵道大學信息科學與技術學院,河北石家莊 050043)
相似度計算是自然語言處理領域一項核心的技術,決定著該領域工作的成敗。例如,在機器翻譯中,相似度計算主要是用來判斷不同語言之間語義表達是否一致。在信息檢索中,檢索內容和檢索目標是否相關是相似度計算的主要目的。在自動問答中,相似度計算主要用來判斷是否所答即所問。在多文檔文摘系統中,相似度計算能夠識別全部內容的重要部分,從而可以提取到文章摘要。而在文本分類研究中,相似度計算可以通過特征的相似程度比較把目標文本歸為某類已知文本中去。所以,從某種意義上講,相似度計算的好壞直接影響到眾多語言處理系統的發展。
在自然語言理解的智能化發展過程中,中文比大多數形合語言,如英文、法文、德文等,具有更大難度。這些形合語言,不要求嚴謹的邏輯,只追求結構連環。而中文是意合語言[1],詞或句子的鏈接是通過其表達意思的邏輯性完成的,隨意性強,靈活多變是其最大的特點。所以,研究漢語語句相似度計算必須考慮更多問題。業界關于中文語句相似度計算的方法很多,但由于沒有完全涵蓋所有問題,這些方法在效率和準確率方面還有許多不足。
基于向量空間模型的TF-IDF(term frequency-inverse document frequency)方法[2],將目標文本按組成順序分成若干單詞,并將每個單詞依據其地位的高低加以權重,單詞的多少決定相應坐標的坐標軸數量,權重是坐標軸上相應的值。由此,目標文本被投影到此坐標系中構成了1個矢量,同樣比較樣本也被投影到同一坐標系中構成1個矢量,計算2個矢量的夾角的余弦值,通過此值可以計算出兩者的相似程度。這種方法的不足主要表現在2方面[3]。第一,采用該方法的前提條件是比較對象包括的詞語數量必須足夠多。當所面對的是單個句子時,這種方法往往不能表現出很好的效果。詞頻統計以及大容量語料庫支持是其主要特點,單單構建如此龐大的語料庫就是一件非常困難的事,需要更高的勞動和時間成本,并且還存在著數據稀疏等一系列問題。第二,TF-IDF方法對句子結構和語義不進行分析,只利用詞頻和詞性等信息,從而存在很大的局限性。基于語義依存的語句相似度計算方法,只有在語句中作為支配作用的核心詞匯以及完全隸屬于它的有實際意義的詞構成的搭配才被納入依存分析計算相似度的范圍內,其他成分忽略不計。也就是只是對詞匯的語義進行分析計算,并不涉及句子成分間的相關性及其結構,更沒有使用語言中的其他信息,因此計算結果并不令人滿意[3]。編輯距離方法的主要缺點是沒有對語義進行分析,僅僅是對單個沒有實際意義的字進行編輯處理[4-5]。
很顯然,為了滿足具體應用,需要研究與之對應的相似度計算方法。例如:筆者在開發河北省某科技獎勵網上評審系統時,需要提供的重要功能之一是對申報請獎的項目進行機輔形式審查工作。就本質而言,形式審查就是對本年度申報項目之間及本年度申報項目和歷史項目之間包括項目名稱、關鍵詞、成果描述、成果佐證材料題錄等信息,根據設定的審查規則進行自動比對,從而篩查出具有相同或相似內容的請獎項目。有些請獎者為了逃避機輔審查規則,利用意合型語言的特征,改變部分內容,使這些內容在意思上相同而字面上或語序上不同。此時,如果只對2個比較對象進行完全匹配比對,效率和準確率都會很低。為了滿足實際應用要求,筆者提出了基于語義相似度的計算方法,此方法能夠把語義上相同的內容查找出來,可大大提高形審質量。
為了克服業界常有相似度計算方法存在的不足,筆者依據中文語言的特點和組句規律,設計一套基于語義的句子相似度計算方法,以滿足網上評審的需要。
語句相似度計算的前提條件是讓計算機能夠理解被比較的句子。要想理解一個自然語言表述的句子,一般要對其進行詞法、語法及語義分析,其中的詞法分析是整個理解過程的基礎。特別是對于像漢語這樣的自然語言顯得尤為關鍵。漢語中詞是最小的能夠獨立活動的有意義的語言成分,在一個漢語句子中,詞與詞之間沒有明顯的分隔符,而是連續的漢字串,這為詞法分析帶來了更多的困難。所以,第1步要做的就是對中文句子進行分詞,在此基礎上對詞進行標注。
當把組成一個句子的所有詞進行了一一標注后,會發現另外一個漢語語言特點,那就是相同的詞在不同的語境下會產生不同的意思,即歧義詞。如果不對這些歧義詞匯進行意思明確,計算機在進行相似度計算時,將產生語義理解混亂,即會認為2個字面上相同的詞會有相同的意思,顯然語境對詞義理解的影響造成了相似度計算準確率的下降。解決這個問題的辦法就是第2步所要做的詞義消歧。
中文分詞技術和詞義消歧技術都已被研究許多年了,不管是從技術層面還是從應用方面上來說,已經相當成熟。筆者選擇中國科學院計算技術研究所研發的漢語詞法分析系統(ICTCLAS)[6]和哈爾濱工業大學計算機科學與技術學院信息檢索研究室所做的詞義消歧系統[7-8],作為語句相似度計算模型的支撐算法。
設2個句子A和B,A包含的詞為x1,x2,…,xm,B包含的詞為y1,y2,…,yn。經過分詞和詞義消歧后,句子A和B中的詞分別被標注了語義號,語義號相同的詞被認為是語義相同的詞。詞xi(1≤i≤m)和yj(1≤j≤n)之間是否語義相同用S(xi,yj)來表示,如果語義相同,則S(xi,yj)=1,否則S(xi,yj)=0。設詞語x1,x2,…,xm的權重為W1,W2,…,Wm,可得到A和B的語句相似度公式為

式(1)中,權重值Wi不是單純一種詞性的權重而是這種詞性下每個詞的權重,這樣設計的目的是由于每種詞性下詞的個數不同,在進行相似度比較時,不會因為詞的數量或個別詞語義計算的差異導致相似度計算值有大幅波動。如果在一個語句中有多個詞義相同的詞,如語句A中詞語x1和x2的語義號相同,它們又分別和語句B中的y1的語義相同,那么在計算過程中只算作1次相同,即不重復計算。在詞義消歧過程中,經常會給出語義號為“-1”的情況,“-1”表示詞語本身就代表其意,所以在遇到這種情況時,直接用這個詞進行相似度比較,而不用無實際意義的語義號。
為了提高相似度計算的準確率,在計算過程中,要讓被比句與每一個比較句進行相似度比較,并且分別計算被比句與比較句的相似度。被比句中相似度大于指定值時,把計算的2個值保存為一組,然后進行選擇,找出最大可能相似比較結果,選擇算法如下:
① 是否存在2個以上的保存組,如果存在選擇前2個被比句相似度值最大組進行比較,否則如果只有1個保存組,選擇后轉到④,如果為空,則轉到⑤;
② 是否這2組中被比句的相似度值相差不大(一般不超過20%),并且2個比較句的相似度值第1組比第2組小,否則選擇被比句相似度值最大的一組轉到④;
③ 分別計算這2組中被比句和比較句的差,選擇差的絕對值最小那一組;
④ 保存結果;
⑤ 進行下一語句的相似度計算。
句子中的每一個詞根據其詞性的不同在句中的成分也不同。例如:名詞往往作主語或賓語,動詞常常作謂語,形容詞作定語等。不同成分對句子意思的構成影響的重要程度是不同的。主語、謂語、賓語是一個句子的主干,定語、狀語、補語對主干起修飾作用。因此,在進行2個句間相似度比較時,不同成分之間是否相同會造成相似度計算的差異。為了反映這種差異,必須給每個詞賦予一個權值。如果讓計算機計算詞在句子中作什么成分是非常困難的,又因為詞性是決定句子成分的關鍵因素,所以要依據每個詞的詞性為其加權。
現代漢語的詞可以分為實詞和虛詞2大類。實詞包括名詞、動詞、形容詞、數詞、量詞和代詞,虛詞包括副詞、介詞、連詞、助詞、擬聲詞和嘆詞。實詞指有實在意義,能夠單獨充當句子成分,一般能單獨回答問題的詞語。虛詞指不表示實在意義而表示語法意義的詞,它不能充當句法成分。實詞在句子中的地位比虛詞重要得多,相應地其權重值也要比虛詞大。
相似本身是一個非常模糊的概念,它帶有很強的主觀因素。所以,詞性權重值的計算要根據具體實驗得到,然后與客戶進行共同協商確定。筆者只給實詞和虛詞中的副詞賦以權重,其他虛詞忽略,并且把代詞歸為名詞來考慮,權重總值為1。從句子的結構來看,副詞、形容詞、數詞和量詞在句義表達上所起的作用有限,給它們分配的權重值為每種詞性0.05。相關資料以及經驗表明,動詞在句子語義表達中起核心作用,名詞其次,所以動詞分配的權重要大于名詞。但是從大量實驗結果看,如果賦予動詞權重值比名詞過大,消歧時又出現了意思上的偏差,也就是計算機對于動詞詞義理解不準確,從而會使語句相似度計算出現錯誤。因此,當句子中的每個動詞的權重是名詞的1.5倍時是最合適的。權重計算公式為

式中:M和N分別表示句子中名詞以及動詞的數量;wx表示名詞的權重;wy表示動詞的權重。

由于沒有語句相似度測試的標準測試語料,所以實驗所用的語料由系統開發人員自己構造。本文實驗所用的測試集,是筆者利用河北省科技進步獎當年(2010年)請獎項目庫和往年請獎項目庫構建的600個語句。這些句子分成2個部分,其中550句為噪音句子,構成噪音集,另外50個是隨機選取的句子,構成標準集。對50個標準集中的句子人為構造與之相似的句子,形成一對一的相似關系,構成比對集。
測試實驗是這樣進行的。把比對集中的50個句子按順序抽出一個句子分別和600個測試集中的句子進行相似度計算,并按照相似值的大小對測試集中的句子進行排序,然后觀察輸出結果,如果具有最大相似值的句子就是標準集中的句子,那么認為相似度計算成功,否則失敗。在此分別用TF-IDF方法、語義依存方法、編輯距離方法和筆者提出的方法做了實驗,并把實驗結果進行了對比,如表1所示。
從表1可以看出,在實驗條件相同的情況下,筆者采用的算法所得的準確率要遠遠高于其他3個方法。原因在于,筆者在語義相似度計算中不僅考慮了詞語的語義,還考慮了句子不同組成成分對句子語義理解所產生的影響不同,因此,計算得到的加權語義相似度更具有合理性。此外,每一種算法都有其優缺點,在不同的應用領域,應根據需要選擇不同的計算方法,這樣就可以更加全面、準確地衡量句子之間的相似度。將該計算方法應用到2010年度河北省科技進步獎的形式審查中,在不同的查重規則下,均表現出理想的審核結果,平均查準率高達99.98%。

表1 實驗結果對照表Tab.1 Comparison of the test results
采用基于語義的語句相似度計算方法,該方法把語義與詞語在語句中所作成分的重要性結合起來,有效地分析了語句的表達意思。在計算相似度時,針對漢語由語素構成詞語、由詞語構成語句的特點,分別對漢語中的詞語、詞義、句子3個層次進行了研究。這三者層次不同,但是聯系密切,由部分構成一個有機的整體,整個計算過程每一步都利用上一步的計算結果,在實驗測試和實際應用中均取得滿意結果。
[1] 劉 穎.計算語言學[M].北京:清華大學出版社,2002.
[2] 張玉芳,彭時名,呂 佳.基于文本分類 TF-IDF方法的改進與應用[J].計算機工程(Computer Engineering),2006,32(19):76-78.
[3] 秦 兵,劉 挺,王 洋,等.基于常問問題集的中文問答系統研究[J].哈爾濱工業大學學報(Journal of Harbin Institute of Technology),2003,35(10):1 179-1 182.
[4] LEUSCH G,UEFFING N,NEY H,et al.A novel string-to-string distance measure with applications to machine translation evaluation[A].Machine Translation SummitⅨ[C].New Orleans:[s.n.],2003.240-247.
[5] 崔春生.基于可拓的 Vague相似度計算[J].河北科技大學學報(Journal of Hebei University of Science and Technology),2010,31(2):108-111.
[6] 劉 群,張華平,俞鴻魁,等.基于層疊隱馬模型的漢語詞法分析[J].計算機研究與發展(Journal of Computer Research and Development),2004,41(8):1 421-1 429.
[7] LIU Ting,LU Zhi-mao,LI Sheng.Word sense disambiguation based on improved bayesian classifiers[J].Journal of Electronics,2006,23(3):394-398.
[8] 張立巖,呂 玲,王井陽.基于最大熵算法的全文檢索研究[J].河北科技大學學報(Journal of Hebei University of Science and Technology),2009,30(2):112-115.