薛慧芳
【摘 要】詞語相似度計算在自動問答、智能檢索、文本聚類、機(jī)器翻譯等領(lǐng)域,詞語相似度計算等領(lǐng)域有著廣泛的應(yīng)用,本文對詞語相似度計算方法進(jìn)行了介紹,并側(cè)重介紹了基于《知網(wǎng)》的詞語相似度計算方法。最后對常用的兩類計算方法進(jìn)行了對比。
【關(guān)鍵詞】詞語相似度計算;知網(wǎng)
1.什么是詞語相似度
漢語最基本的語義和語法單位就是詞語,詞語相似度計算用來研究用什么樣的方法來計算或比較兩個詞語的相似性。本文認(rèn)為,詞語相似度就是詞語在語義上的匹配程度,取值范圍為[0,1]。詞語相似度的值越大,說明兩個詞語的語義越相近;反之,則說明兩個詞語的語義差別越大。特殊的,當(dāng)值為1時,表明兩個詞語的語義完全相同;當(dāng)值為0時,表明兩個詞語的語義完全不同。
2.詞語相似度計算方法
詞語相似度計算方法大體上可以分為以下兩類:
2.1基于語料庫統(tǒng)計的方法
這種方法綜合體現(xiàn)了詞語在句法、語義還有語用等方面的異同。該方法屬于基于統(tǒng)計的定量分析方法,其應(yīng)用前提是:兩個詞語語義相似,當(dāng)且僅當(dāng)它們處于相似的上下文環(huán)境中。思想是統(tǒng)計大規(guī)模的語料,利用詞匯上下文信息的概率分布進(jìn)行詞語之間的語義相似度的計算。該方法能夠相對精確、有效的度量詞語的語義相似度。
比如計算詞語相似度也可以利用詞語的相關(guān)性來進(jìn)行。方法是事先選擇一組特征詞,接著計算這一組特征詞與每一個詞語的相關(guān)性,一般基于大規(guī)模語料選擇這組詞在某個詞語的上下文中出現(xiàn)的頻率作為度量詞語相似度的相關(guān)數(shù)據(jù),對于每一個詞都可以得到一個特征詞向量。兩個詞的相似度就可以通過這些向量之間的相似度來衡量。而向量之間的相似度,一般通過計算向量之間的夾角余弦值得出。
2.2基于某種世界知識(Ontology)的計算方法
該方法一般利用語義詞典來進(jìn)行詞語相似度計算?;谡Z義詞典的詞語相似度計算方法,以語言學(xué)和人工智能兩方面為基礎(chǔ)。它基于語義詞典,根據(jù)概念之間的上下位關(guān)系、同義關(guān)系進(jìn)行計算。這種方法建立在這樣的前提下:當(dāng)且僅當(dāng)兩個詞語在概念間的結(jié)構(gòu)層次網(wǎng)絡(luò)圖中存在一條通路(上下位關(guān)系)時,這兩個詞語具有語義相關(guān)性。這種方法簡單有效且易于理解。
這類方法的基礎(chǔ)是大規(guī)模的語義計算知識資源。在英文方面,WordNet、FrameNet、MindNet等是具有代表性的例子;在漢語方面,《知網(wǎng)》(HowNet)、《同義詞詞林》、中文概念詞典(CCD)等是幾種主要的知識資源,很多學(xué)者嘗試?yán)盟鼈儊碛嬎阍~語相似度。目前常用的詞語相似度計算方法,就是基于《知網(wǎng)》的相似度計算,下面將對它進(jìn)行介紹。
3.基于《知網(wǎng)》的詞語相似度計算
3.1《知網(wǎng)》的簡介
《知網(wǎng)》(HowNet)是一個常識知識庫,它含有豐富的詞匯語義知識以及世界知識,內(nèi)部結(jié)構(gòu)復(fù)雜。《知網(wǎng)》的描述對象是詞語代表的概念,它揭示了概念之間、以及概念所具備的屬性之間的關(guān)系。它將詞匯所代表的概念分為四大類,分別是實(shí)體、事件、屬性、屬性值。并通過義原(所謂義原,是不可再分的語義單位)來標(biāo)注概念?!吨W(wǎng)》由多個數(shù)據(jù)文件構(gòu)成,是一個網(wǎng)狀的有機(jī)知識系統(tǒng),為人們進(jìn)行自然語言處理的研究提供了寶貴的資源。
3.2《知網(wǎng)》的結(jié)構(gòu)
《知網(wǎng)》中兩個最基礎(chǔ)的概念是“概念”和“義原”?!案拍睢笔怯脕砻枋鲈~語語義。因?yàn)橐粋€詞可以含有多個語義,所以一個詞需要多個概念來描述。使用“知識表示語言”對概念進(jìn)行描述,“知識表示語言” 使用的“詞匯”便是義原。《知網(wǎng)》中的不可再分的、最小的意義單位是“義原”。即用義原用來描述概念,用概念來描述詞語。
《知網(wǎng)》作為一個知識系統(tǒng),它主要反映了概念的共性和個性。通過對漢字詳實(shí)的分析考察,《知網(wǎng)》采用的義原有1500個。知網(wǎng)反映了概念之間、概念屬性之間各種各樣的關(guān)系,總體來說知網(wǎng)描述了16種關(guān)系。
義原之間組成的不是一個樹狀結(jié)構(gòu),而是一個復(fù)雜的網(wǎng)狀結(jié)構(gòu)。然而義原關(guān)系中最重要的是上下位關(guān)系。所有的“基本義原”以這種上下位關(guān)系為基礎(chǔ)構(gòu)成了義原層次體系。該體系是樹狀結(jié)構(gòu),叫做義原分類樹。義原分類樹囊括了各個義原,以及義原和義原之間的聯(lián)系。在義原分類樹中,父節(jié)點(diǎn)義原和子節(jié)點(diǎn)義原之間具有上下位關(guān)系。可以通過義原分類樹來計算詞語和詞語之間的語義距離。
3.3知網(wǎng)的知識詞典
知識詞典是知網(wǎng)中最基本的數(shù)據(jù)庫。
在知識詞典中,每一個概念(概念又稱為義項(xiàng))可以用一條記錄來描述。一條記錄含有八項(xiàng)信息,每一項(xiàng)由用“=”連接的兩個部分組成,等號左邊表示數(shù)據(jù)的域名,右邊是數(shù)據(jù)的值。
比如下面就是一條描述概念的記錄:
其中,NO表示概念的編號,W_C表示漢語詞語,G_C表示漢語詞語的詞性,E_C表示漢語詞語例子,W_E表示英語詞語,G_E則表示英語詞語詞性,E_E表示英語詞語例子,DEF表示概念的定義,通過一個語義表達(dá)式來描述。所有的詞語的概念都可以利用如上這些義原及其關(guān)系,來進(jìn)行定義。
3.4基于《知網(wǎng)》的義原相似度計算
詞語是通過概念來描述的,概念又通過義原進(jìn)行解釋,所以首先要研究義原的相似度計算。在《HowNet》中,依據(jù)上下位關(guān)系,所有的義原構(gòu)成了一個樹狀層次結(jié)構(gòu)。根據(jù)樹形圖中兩個結(jié)點(diǎn)之間的路徑長度來表示這兩個義原的語義距離。本文將兩個義原分別記為pl、p2,將它們的語義距離記為d,p1和p2兩個義原的相似度記為Sim(p1,p2),相應(yīng)的公式如下:
Sim(p1,p2)= (公式1)
其中,d表示兩個義原p1和p2的路徑長度,a是一個調(diào)節(jié)參數(shù),本文取相似度為0.5時的路徑長度(d)的值。
Sim(pl,p2),即兩個義原的相似度取值在[0,1]之間。在這里,只利用了義原的上下位關(guān)系來計算義原相似度。
3.5基于《知網(wǎng)》的詞語相似度計算
基于《知網(wǎng)》的詞語相似度研究已經(jīng)比較成熟。漢語詞語可以分為實(shí)詞和虛詞,本文做如下約定:在文本中實(shí)詞和虛詞不能互相代替,即實(shí)詞和虛詞的相似度是零。由于虛詞是采用“{關(guān)系義原}”或者“{句法義原}”,這兩種方式加以描述的。因此,計算虛詞的相似度就比較簡單,計算用來描述虛詞的關(guān)系義原之間、或者句法義原之間的相似度就可以了。
實(shí)詞則不同,它需要使用語義表達(dá)式進(jìn)行描述,所以實(shí)詞的相似度計算難度就比較大。本文使用實(shí)詞定義項(xiàng)中義原和義原之間的相似度,來描述實(shí)詞與實(shí)詞之間的相似度。比如,計算兩個獨(dú)立的實(shí)詞之間的相似度時,本文選擇描述這兩個實(shí)詞的概念之間的最大相似度作為這兩個實(shí)詞之間的相似度。
概念通過義原進(jìn)行描述,實(shí)詞概念的語義表達(dá)式由四部分組成,它們分別是第一獨(dú)立義原描述式,其他獨(dú)立義原描述式,關(guān)系義原描述式和符號義原描述式。本文把這些義原描述式的相似度分別記為:Sim1(S1,S2)、Sim2(S1,S2)、Sim3(S1,S2)、Sim4(S1,S2)。
由此,兩個概念之間的相似度計算公式如下:
其中,βi(1≤i≤4)是可以調(diào)節(jié)的參數(shù),代表每一部分的權(quán)重,且有β1+β2+β3+β4=1,β1≥β2≥β3≥β4。后者體現(xiàn)了Sim1到Sim4,對于最終的概念相似度Sim(S1,S2)所起作用是遞減的。由于第一獨(dú)立義原描述式Sim1,可以反映一個概念的最主要特征,所以本文將它的權(quán)值定義得比較大,一般應(yīng)大于0.5。
最后,把上述四個相似度計算結(jié)果進(jìn)行加權(quán)求和,便可以得到兩個概念之間的相似度。假如有兩個詞語分別為W1和W2,其中W1含有n個概念,分別為:S11,S12,……,S1n,W2則含有m個概念,分別為S21,S22,……,S2m。那么計算詞語W1和W2相似度的公式如下。
4.小結(jié)
文中對詞語相似度計算的兩種主要方法即基于語料統(tǒng)計的方法和基于語義詞典的方法進(jìn)行了介紹。兩者各有其優(yōu)缺點(diǎn)。
基于大規(guī)模語料庫的計算方法,能夠客觀地反映詞語的形態(tài)、句法、語義和語用等特點(diǎn),可以發(fā)現(xiàn)許多僅靠人無法觀測到的字符串間的有效關(guān)聯(lián)。能夠相對精確、有效地度量詞語間的語義相似度。但是這種方法比較依賴于語料庫,方法復(fù)雜同時計算量大。另外,它受數(shù)據(jù)稀疏和數(shù)據(jù)噪聲的干擾比較大,有時會出現(xiàn)明顯的錯誤。
基于語義詞典的方法比較直觀而且簡單有效,可以計算出字面上不相似,并且統(tǒng)計關(guān)聯(lián)較小的詞匯間的相似度,然而它對語義詞典的依賴性較強(qiáng),構(gòu)造漢語語義詞典本身又是一項(xiàng)非常復(fù)雜的工作,所以該方法受人的主觀影響比較大。有時不能準(zhǔn)確的反映客觀事實(shí)。另外這種方法對于詞語之間語義方面的異同計算比較準(zhǔn)確,但是在詞語間的句法特點(diǎn)和語用特點(diǎn)方面,考慮有所欠缺。
前已述及,詞語相似度計算在自動問答、智能檢索、文本聚類、機(jī)器翻譯等領(lǐng)域有著廣泛的應(yīng)用,那么到底選擇哪種計算方法,需考慮每種方法的特點(diǎn),并結(jié)合具體應(yīng)用環(huán)境而定。