石 靜, 吳云芳, 邱立坤, 呂學強
(1. 北京大學 計算語言學研究所,北京 100871; 2. 魯東大學 文學院,山東 煙臺 264025;3. 北京信息科技大學 網絡文化與數字傳播 北京市重點實驗室,北京 100101)
詞匯語義信息是自然語言處理中很重要的資源,是進一步進行句法和語義分析的基礎。在信息檢索中的查詢擴展、機器翻譯中的模塊識別等方面,相似詞都是不可或缺的知識資源;在句法分析、詞義消歧等信息處理任務中,詞語相似度也發揮著重要的作用。而相似度詞典的手工構建是一項費時費力的浩大工程,存在著不易更新、覆蓋度不全等諸多缺陷。自動地獲取相似詞并得到相似度,使自動構建詞典成為可能,不僅減少了工作量,還使詞典資源能夠定時更新和擴展。
詞義相似度的計算可分為兩大類方法: 基于大規模語料庫和基于詞典。基于詞典的研究多是利用詞典中現有的層次關系計算兩個詞的相似度,例如,基于WordNet來計算英語詞語的語義相似度,基于HowNet來計算漢語詞語的語義相似度。基于語料庫的研究多是選取上下文特征,用向量來表征詞語,再利用這些特征向量進行詞語之間相似度的計算。研究者用這兩種方法對英語詞義相似度進行了大量的研究,但漢語研究主要集中在基于詞典的方法上,基于大規模語料庫計算漢語詞義相似度的研究還不多見。劉群和李素建[1]基于HowNet計算漢語詞義相似度,后人在此基礎上進行了很多拓展研究,例如,文獻[2-3]。但基于詞典的方法需要有完備的知識庫的支撐,依賴詞典編撰者個人的經驗知識,無法反映大規模語料庫中詞語真實的意義和用法。Agirre等[4]的研究表明,基于語料庫的方法可以取得和詞典方法相媲美的結果而無需人工知識的支撐。本文采用基于語料庫的方法來計算漢語詞語的語義相似度。
基于語料的相似詞獲取方法是基于分布性假設[5]: 語義相似的詞語通常有著相似的上下文。Lin[6]基于一個6.4億詞的英文語料,加以依存句法分析,將上下文語境表示成有依存關系的三元組,而后基于互信息提出一種算法來計算詞語之間的相似度,實驗結果優于其他計算方法。Curran[7]提出將不同上下文表征方式相結合,包括用3種句法分析方法CASS, MINIPAR, SEXTANT 抽取出的上下文特征,3種窗口特征W(L1,2), W(L1,R1), W(R1,2)。實驗結果表明,集成方法顯著優于單個方法。Weeds 等[8]基于BNC語料,應用9種不同的相似度算法,所得相似度結果差別很大,因而指出面對不同任務時應選擇合適的計算方法,但是作者并沒有明確指出如何來選擇算法。Hagiwara 等[9]系統研究了分布相似方法中的上下文特征選擇,選取的3類特征包括依存關系、窗口詞語、句子共現。句子共現特征效果很不理想,依存關系和窗口詞語可以達到較好的結果,三者的結合超越任何單一的特征。Geffet和Dagan提出了一種自舉方法來計算特征的權值,其基本思想是,相似詞共有的特征是那個意義最好的表征,因此其權值應該被加大[10]。Kazama 等[11]進行了日語語義相似度計算研究,提出了一種貝葉斯算法來解決基于分布方法中的數據稀疏問題。
本文研究了基于大規模語料庫的漢語詞義相似度計算方法,系統地比較分析了相似度計算中的上下文選擇方法: 上下文特征的權值計算、基于窗口和基于依存關系的表示方法、不同語體的差異。
基于分布的相似度計算方法的核心思想是,基于大規模語料,將詞語分布的上下文語境表示成向量,通過計算向量之間的相似性來獲得目標詞之間的相似度。具體實現方法為: 1)取目標詞所在的上下文,或詞語、詞性、相對位置,或包含目標詞的句內依存關系,作為特征;2)利用上下文與目標詞的關系,或共現次數,或相關程度等,作為特征權值,構成向量;3)使用相似度計算方法,或余弦夾角,或向量重疊的信息量,計算兩個向量的相似程度,作為兩個詞語的相似度。該方法不需要語言學知識或人工標注語料的指導,可以自動地從大規模語料庫中挖掘出詞語潛在的語義,是一種應用很廣泛的無指導自動語義獲取方法。
在語料中按一定方法選取上下文特征后(見下文第3節詳述),使用向量空間模型來表征詞語,即對每個目標詞都構造特征向量,特征向量的每個維度對應一個特征。如何來衡量每個維度的權值是一個很值得研究的問題,權值選取方法不同,相似度計算的結果差異很大。本文實驗了5種不同的權值計算方法。
1)tf: 上下文詞與目標詞共現的頻次;
2)bool值: 上下文詞與目標詞曾經共現則取值為1,從未共現則取值為0;
3)idf值: 上下文詞的idf取值
其中,N為目標詞的總數,df(cj)為詞cj在上下文出現的目標詞的個數,+1是為了平滑,避免出現0值;
4)tfidf: 指1)的tf乘以3)的idf,
tfidf(wi,cj)=tf(wi,cj)×idf(cj)
(2)
其中,wi為目標詞,cj為上下文詞;
5) PMI: 指目標詞wi和上下文詞cj的互信息,


(3)
其中,T為語料中所有出現詞的總個數,count(x)為語料中x出現的頻次。
當特征向量構建完成后,詞語之間語義的相似度就轉換為計算向量之間的相似度。常用的相似度計算方法有匹配系數、Dice系數、Jaccard系數、Lin方法等。本文實驗了前2種相似度計算方法。
1) cos: cos度量被廣泛應用于計算語義相似度。

2) LIN方法: 是指Dekang Lin在1998年提出的求詞語相似度的公式[6],它被研究者廣泛應用于計算英語的詞義相似度,被證明有較好的效果。
其中,T(w)是出現在w上下文的詞,且與w的互信息為正值。可以觀察到,LIN方法與cos_PMI公式有相似之處,只是將分母的求乘積改成求和,分子的求模改成求和。
語義相似度研究中,上下文特征常用兩種表征形式: 基于窗口和基于依存關系。Pado和Lapata (2007)[12]研究表明,基于依存關系可以區別不同的語義關系類別。本文比較分析了這兩種不同的上下文表征形式。
1) 基于窗口
窗口上下文是指取一定窗口內的詞作為目標詞的上下文特征,即區分位置的詞袋詞語(bag of words)。在本文實驗中,原始語料經過切詞、詞性標注之后,利用標點符號“。,: );”進行了斷句處理。在句子范圍內,選取目標詞前后窗口為3的上下文詞、這些詞的詞性、與目標詞的相對位置作為上下文特征。選取時,刪除了和目標詞共現頻次很低的特征(≤10)。例如下面的這個句子:
(1) 黑龍江/ns 將/d 嚴格/ad 控制/v 森林/n 資源/n 消耗量/n
設目標詞為“控制”,窗口為3的上下文特征w-3,w-2,w-1,w+1,w+2,w+3分別為“黑龍江/ns”,“將/d”,“嚴格/ad”,“森林/n”,“資源/n”,“消耗量/n”。
2) 基于依存關系
依存關系上下文是指,以與目標詞相關的所有句內依存關系作為上下文特征。其語言學假設是: 能在相同依存關系中擔任相同成分的詞是相似詞。這需要首先對語料中的每個句子進行依存分析,本文使用了斯坦福的漢語分析器*http://nlp.stanford.edu/software/lex-parser.shtml。對語料進行依存分析,該依存分析器一共包含45種漢語依存關系,詳見Chang 等[13]的描述。例如,下面的句子及提取出的依存關系如下:
(2) 新加坡 印尼 簽訂 航空 協定
nsubj(簽訂-3, 新加坡-1);nsubj(簽訂-3, 印尼-2);nn(協定-5, 航空-4);dobj(簽訂-3, 協定-5)
每一條依存關系提供的信息有: 關系名稱(如nsubj,主謂;nn,名詞修飾名詞;dobj,動賓),兩個參與關系的詞語及它們分別在句中的位置。45種依存關系中有一種標注為dep,表示無法清晰定義的其他關系。本文實驗時去掉了該關系,選取其余44種關系作為有用特征。
對每一個目標詞w,其一個依存特征定義為一個三元組
詞義相似度計算中關于語料語體的影響,即有關領域遷移和對比(domain adaptation)的研究還不多見。本文在新聞語體和網絡語體這兩種語體上進行了實驗。
1) 新聞語體
使用了國際語言資源聯盟LDC的Chinese Gigaword,選取其中的新華社語料加以研究,該語料庫收錄了1991~2004年14年的新華社全部文本,共約471 110K字。對語料進行了前期處理工作: 1)從Unicode到GB編碼的轉換;2)利用中國科學院計算技術研究所的分詞軟件ICTCLAS對全部文本進行了自動詞語切分和詞性標注;3)利用斯坦福的漢語分析器對全部文本進行了依存分析。經過統計計算,得到語料中出現的所有名詞、動詞、形容詞及其頻次,去掉出現10次以下的詞,并經過初步篩選: 動詞和形容詞去掉不能單獨構成詞的語素(詞性標注為”vg””ag”)、名詞取詞性標注為”n”,構成相似度計算的目標詞,名詞有31 125個,動詞有15 250個,形容詞有 3 060個。在新聞語體上,我們只計算同詞類詞語的語義相似度,即計算了31 125×31 125個名詞的相似度,15 250×15 250個動詞的相似度,3 060×3 060個形容詞的相似度。
2) 網絡語體
使用了搜狗實驗室提供的網絡語料,從中提取了130 000個常用詞所出現的句子,每個詞語抽取了最多1萬個句子,利用中國科學院計算技術研究所的分詞軟件ICTCLAS對全部文本進行了自動詞語切分和詞性標注,計算了130 000×130 000個詞語之間的相似度。
選擇了哈爾濱工業大學的《同義詞詞林》(擴展版)作為評測標準。《詞林》(擴展版)共收錄了91 114個詞,以5層的樹狀結構來組織這些詞。我們基于類別大小的考慮,主要使用了2、3、4層進行評價,第2層有95個類,第3層有1 425個類,第4層有4 229個類。限于篇幅,本文只匯報了第4層的評價結果,不同方法在不同層級上的相對實驗結果是一致的。
采用了兩種評價指標。相似詞排名的前N個詞具有更大的實際意義,因此用P@K來評價,K分別取1、5、10、50,即排名前K個詞對應到《詞林》里的準確率。
(6)
使用了MAP指標來評測,MAP為所有選出的目標詞的平均AP值:
(7)
其中,N為計算結果中目標詞所包含的同義詞數目(在本實驗中,名詞N=31 125,動詞N=15 250,形容詞N=3 060),R為《詞林》中目標詞所含有的同義詞的數目,ans為《詞林》中目標詞所在的同義詞類別,M為加以評價的目標詞總數目。本文對多義詞還未做處理,如果一個詞出現在多個類別中,那ans為這些類別的合集。
在評測時,根據詞語在語料中出現的頻次、單字詞還是雙字詞、義項的多寡等多種因素,分別人工選取了150個名詞、150個動詞、150個形容詞,共450個詞語作為樣本進行評測。
1) 不同權值的比較分析
在新聞語體的Chinese Gigaword語料上,基于窗口選取上下文特征,利用cos方法來計算向量相似度,比較實驗了不同權值的性能,實驗結果如表1所示。

表1 不同權值的比較結果
可以觀察到,權值的計算方法對實驗結果的影響非常大,無論是對于動詞、名詞還是形容詞,權值PMI方法都取得了最好的實驗結果,然后依次是idf、tfidf和bool,最差的是tf。PMI權值的結果最好,是因為其運用了更多的信息。idf可以削弱高頻詞的作用,例如,“的”、“是”等這些其實對詞義區分并無提示作用的詞,所以也取得了比較好的效果。相對而言,tf過多地強調了頻次,這樣使得無作用的超高頻詞起了主導作用,所以結果比較差。
2) 不同相似度計算方法的比較分析
在新聞語體的Chinese Gigaword語料上,用基于窗口和基于依存關系兩種方法選取上下文特征,比較了cos_PMI 和LIN方法兩種不同相似度計算方法的性能,如表2所示。

表2 不同相似度計算方法的比較結果
可以觀察到,無論是基于窗口還是基于依存關系,無論是對于動詞、名詞還是形容詞,cos_PMI方法都要優于LIN方法。Lin(1998)[7]提出該方法時,是基于全部的依存關系。但是在漢語中即便是基于依存關系,LIN方法比cos_PMI仍是略遜一籌。
通過分析LIN和cos的公式可以得知(式(4)和式(5)),LIN其實類似于cos的一個變體,將內積轉化為求和,將求模也轉化為求和的結果。乘的方式更能擴大兩個元素的作用,而相加則可能將其中一個的信息湮沒,所以在相同PMI權值下,乘的方法即cos,獲得了比加的方法即LIN,更好的效果。
3) 窗口和依存關系的比較分析
在新聞語體的Chinese Gigaword語料上,用性能最好的cos_PMI方法,比較了窗口和依存關系兩種不同方法的性能,如表3所示。
可以觀察到,在中文句法分析的結果下,基于窗口方法優于基于依存關系的方法。這個原因是多方面的, 其中一個主要的原因是因為中文的句法分析準確率不高,引入了大量的噪聲。據本文的分析,存在以下幾類主要錯誤。

表3 窗口和依存關系的比較結果
[1] 詞語切分錯誤
該報 道 是 毫無 根據 的 ——“報道”切分錯誤
[2] 詞性標注錯誤
( /NN 約/AD 423萬/ CD 美元/ M )/ JJ —— 括號標注錯誤,應標注為標點符號PU
[3] 人名地名分析錯誤
記者/NN 肖/ NR 輝/ CD 家/ M——名字都被拆分開,標注成了不同的詞性
[4] 中心語提取錯誤
阿 否認 開放 邊界 的 消息 dobj(開放-3, 消息-6) ——“開放”的賓語應該是“邊界”
[5] 標點符號的錯誤。包括標點符號詞性標注錯誤和標點相關的關系punct的錯誤,例子見[2]、[6]
[6] 句法樹分析失敗造成依存關系分析的錯誤
#Failure# punct(作出-3, 裁定-14)——句法樹分析失敗,導致錯誤的punct關系,punct應存在于一個詞與一個標點之間
4) 新聞語料和網絡語言的比較分析
基于窗口方法選取特征,利用PMI方法衡量權值,用cos方法計算相似度,比較分析了兩種不同語體: 新聞語料和網絡語言對語義相似度計算的影響,實驗結果如表4所示。

表4 新聞語料和網絡語言的比較結果
可以觀察到, 網絡語體較新聞語體有著較大的優勢。新聞語體是針對特定領域的,質量較高但覆蓋率不足,詞語的用法受限,經常會運用一些特定的句式;網絡語體是不限領域的,覆蓋率較高,詞語用法豐富靈活。表4的結果告訴我們,在計算詞義相似度時,語料語體的選擇是一個很重要的因素。
本文研究了基于大規模語料庫的漢語分布性相似度計算方法。分布性相似度計算方法包含兩個步驟: 用上下文特征向量來表征目標詞語;計算向量的相似度來逼近詞義的相似度。本文系統實驗了漢語詞義相似度計算中的各種因素: 比較分析了tf、bool、idf、tfidf、PMI 5種不同的上下文特征權值算法;比較分析了cos 和LIN 兩種不同的相似度計算方法;比較分析了窗口上下文和依存關系上下文兩種不同的表征形式;比較分析了新聞語體和網絡語體的領域差別。實驗結果表明: PMI 權值明顯優于其他權值衡量方法;以PMI為權值的cos方法優于LIN方法;在漢語分析器的現狀基礎上,基于窗口的相似詞獲取方法優于基于依存關系的相似詞獲取方法;網絡語體因其豐富靈活性而優于新聞語體。
接下來,我們將進一步實驗,在窗口和依存關系的基礎上深入挖掘,去尋找更多的或更有用的上下文特征。在依存關系方面,思考如何去除噪音挑選出準確且重要性高的關系。并進一步對相似度計算的公式加以分析,以求提出更好的計算方法。
[1] 劉群,李素建. 基于《知網》的詞匯語義相似度的計算[C]//第三屆漢語詞匯語義學研討會,臺北,2002.
[2] 張亮,尹存燕,陳家駿. 基于語義樹的中文詞語相似度計算與分析[J].中文信息學報,2010,24(6):23-30.
[3] 劉青磊,顧小豐. 基于《知網》的詞語相似度算法研究[J]. 中文信息學報,2010,24(6):31-36.
[4] Agirre E, Alfonseca E, Hall K, et al. A study on similarity and relatedness using distributional and WordNet-based approaches[C]//Proceedings of HLT-NAACL, 2009: 19-27.
[5] Harris Z. Mathematical structures of language[D]. Wiley, New Jersey,1968.
[6] Lin D. Automatic Retrieval and Clustering of Similar Words[C]//Proceedings of COLING/ACL 1998: 768-774.
[7] Curran J. Ensemble methods for automatic thesaurus extraction[C]//Proceedings of EMNLP-2002: 222-229.
[8] Weeds J, Weir D, McCarthy D. Characterizing measures of lexical distributional similarity[C]//Proceedings of COLING-2004: 1015-1021.
[9] Hagiwara M, Ogawa Y, Toyama K. Selection of effective contextual information for automatic synonym acquisition[C]//Proceedings of ACL/ COLING-2006, 2006: 353-360.
[10] Geffet M, Dagan I. Bootstrapping distributional feature vector quality[J]. Computational Linguistics, 2009, 35(3):435-461.
[11] Kazama J, Saeger S, Kuroda K, et al. A Bayesian method for robust estimation of distributional similarities[C]//Proceedings of COLING-2010, 2010: 247-256.
[13] Chang.P, Tsengb,H, Jurafskya,D and Manning,C. Discriminative Reordering with Chinese Grammatical Relations Features[C]//Proceedings of the Third Workshop on Syntax and Structure in Statistical Translation at NAACL HLT 2009.51-59.
附錄A
詞語相似度示例(前10個相似詞)
哀思: 情思-0.088 鄉愁-0.084 鄉思-0.084 憂思-0.075 愛意-0.069 英靈-0.066 情愫-0.065 痛楚-0.064 敬意-0.063 深情厚意-0.063
輪船: 游輪-0.117 貨輪-0.114 客輪-0.108 海輪-0.102 渡輪-0.097 海船-0.096 貨船-0.096 航船-0.095 船只-0.089 江輪-0.087
泥土: 浮土-0.128 灰土-0.104 沙土-0.096 沙子-0.094 淤泥-0.091 沙礫-0.091 表土-0.090 土塊-0.088 泥巴-0.087 塵土-0.086
床單: 被單-0.151 床罩-0.136 被褥-0.135 枕巾-0.134 枕套-0.127 蚊帳-0.121 浴巾-0.119 棉被-0.112 毛巾被-0.107 褥子-0.103
老練: 老到-0.122 老辣-0.122 練達-0.109 干練-0.096 沉穩-0.092 老成-0.083 嫻熟-0.083 狡詐-0.0821 鎮定-0.080 精明-0.078
犀利: 尖刻-0.122 銳利-0.117 凌厲-0.098 老辣-0.093 精辟-0.087 敏銳-0.087 潑辣-0.082 簡練-0.081 機智-0.081 機敏-0.080
優雅: 高雅-0.135 典雅-0.130 幽雅-0.129 柔美-0.121 淡雅-0.118 雅致-0.115 素雅-0.113 婉約-0.109 文雅-0.103 溫婉-0.102
解救: 營救-0.076 援救-0.068 挽救-0.067 搭救-0.064 拯救-0.063 搶救-0.063 脫身-0.057 安撫-0.056 救護-0.053 救活-0.053
糾正: 改正-0.103 制止-0.087 訂正-0.083 改掉-0.077 克服-0.075 更正-0.069 補救-0.067 矯正-0.066 督促-0.065 批評-0.064
善待: 關愛-0.109 關心-0.102 愛護-0.096 對待-0.092 愛惜-0.092 體諒-0.090 珍惜-0.089 感化-0.085 體恤-0.083 尊重-0.083