王保民,劉明生,,邢 飛
(1.邯鄲學(xué)院信息工程學(xué)院,河北邯鄲 056005;2.石家莊鐵道大學(xué)信息科學(xué)與技術(shù)學(xué)院,河北石家莊 050043)
相似度計(jì)算是自然語(yǔ)言處理領(lǐng)域一項(xiàng)核心的技術(shù),決定著該領(lǐng)域工作的成敗。例如,在機(jī)器翻譯中,相似度計(jì)算主要是用來(lái)判斷不同語(yǔ)言之間語(yǔ)義表達(dá)是否一致。在信息檢索中,檢索內(nèi)容和檢索目標(biāo)是否相關(guān)是相似度計(jì)算的主要目的。在自動(dòng)問答中,相似度計(jì)算主要用來(lái)判斷是否所答即所問。在多文檔文摘系統(tǒng)中,相似度計(jì)算能夠識(shí)別全部?jī)?nèi)容的重要部分,從而可以提取到文章摘要。而在文本分類研究中,相似度計(jì)算可以通過特征的相似程度比較把目標(biāo)文本歸為某類已知文本中去。所以,從某種意義上講,相似度計(jì)算的好壞直接影響到眾多語(yǔ)言處理系統(tǒng)的發(fā)展。
在自然語(yǔ)言理解的智能化發(fā)展過程中,中文比大多數(shù)形合語(yǔ)言,如英文、法文、德文等,具有更大難度。這些形合語(yǔ)言,不要求嚴(yán)謹(jǐn)?shù)倪壿?,只追求結(jié)構(gòu)連環(huán)。而中文是意合語(yǔ)言[1],詞或句子的鏈接是通過其表達(dá)意思的邏輯性完成的,隨意性強(qiáng),靈活多變是其最大的特點(diǎn)。所以,研究漢語(yǔ)語(yǔ)句相似度計(jì)算必須考慮更多問題。業(yè)界關(guān)于中文語(yǔ)句相似度計(jì)算的方法很多,但由于沒有完全涵蓋所有問題,這些方法在效率和準(zhǔn)確率方面還有許多不足。
基于向量空間模型的TF-IDF(term frequency-inverse document frequency)方法[2],將目標(biāo)文本按組成順序分成若干單詞,并將每個(gè)單詞依據(jù)其地位的高低加以權(quán)重,單詞的多少?zèng)Q定相應(yīng)坐標(biāo)的坐標(biāo)軸數(shù)量,權(quán)重是坐標(biāo)軸上相應(yīng)的值。由此,目標(biāo)文本被投影到此坐標(biāo)系中構(gòu)成了1個(gè)矢量,同樣比較樣本也被投影到同一坐標(biāo)系中構(gòu)成1個(gè)矢量,計(jì)算2個(gè)矢量的夾角的余弦值,通過此值可以計(jì)算出兩者的相似程度。這種方法的不足主要表現(xiàn)在2方面[3]。第一,采用該方法的前提條件是比較對(duì)象包括的詞語(yǔ)數(shù)量必須足夠多。當(dāng)所面對(duì)的是單個(gè)句子時(shí),這種方法往往不能表現(xiàn)出很好的效果。詞頻統(tǒng)計(jì)以及大容量語(yǔ)料庫(kù)支持是其主要特點(diǎn),單單構(gòu)建如此龐大的語(yǔ)料庫(kù)就是一件非常困難的事,需要更高的勞動(dòng)和時(shí)間成本,并且還存在著數(shù)據(jù)稀疏等一系列問題。第二,TF-IDF方法對(duì)句子結(jié)構(gòu)和語(yǔ)義不進(jìn)行分析,只利用詞頻和詞性等信息,從而存在很大的局限性。基于語(yǔ)義依存的語(yǔ)句相似度計(jì)算方法,只有在語(yǔ)句中作為支配作用的核心詞匯以及完全隸屬于它的有實(shí)際意義的詞構(gòu)成的搭配才被納入依存分析計(jì)算相似度的范圍內(nèi),其他成分忽略不計(jì)。也就是只是對(duì)詞匯的語(yǔ)義進(jìn)行分析計(jì)算,并不涉及句子成分間的相關(guān)性及其結(jié)構(gòu),更沒有使用語(yǔ)言中的其他信息,因此計(jì)算結(jié)果并不令人滿意[3]。編輯距離方法的主要缺點(diǎn)是沒有對(duì)語(yǔ)義進(jìn)行分析,僅僅是對(duì)單個(gè)沒有實(shí)際意義的字進(jìn)行編輯處理[4-5]。
很顯然,為了滿足具體應(yīng)用,需要研究與之對(duì)應(yīng)的相似度計(jì)算方法。例如:筆者在開發(fā)河北省某科技獎(jiǎng)勵(lì)網(wǎng)上評(píng)審系統(tǒng)時(shí),需要提供的重要功能之一是對(duì)申報(bào)請(qǐng)獎(jiǎng)的項(xiàng)目進(jìn)行機(jī)輔形式審查工作。就本質(zhì)而言,形式審查就是對(duì)本年度申報(bào)項(xiàng)目之間及本年度申報(bào)項(xiàng)目和歷史項(xiàng)目之間包括項(xiàng)目名稱、關(guān)鍵詞、成果描述、成果佐證材料題錄等信息,根據(jù)設(shè)定的審查規(guī)則進(jìn)行自動(dòng)比對(duì),從而篩查出具有相同或相似內(nèi)容的請(qǐng)獎(jiǎng)項(xiàng)目。有些請(qǐng)獎(jiǎng)?wù)邽榱颂颖軝C(jī)輔審查規(guī)則,利用意合型語(yǔ)言的特征,改變部分內(nèi)容,使這些內(nèi)容在意思上相同而字面上或語(yǔ)序上不同。此時(shí),如果只對(duì)2個(gè)比較對(duì)象進(jìn)行完全匹配比對(duì),效率和準(zhǔn)確率都會(huì)很低。為了滿足實(shí)際應(yīng)用要求,筆者提出了基于語(yǔ)義相似度的計(jì)算方法,此方法能夠把語(yǔ)義上相同的內(nèi)容查找出來(lái),可大大提高形審質(zhì)量。
為了克服業(yè)界常有相似度計(jì)算方法存在的不足,筆者依據(jù)中文語(yǔ)言的特點(diǎn)和組句規(guī)律,設(shè)計(jì)一套基于語(yǔ)義的句子相似度計(jì)算方法,以滿足網(wǎng)上評(píng)審的需要。
語(yǔ)句相似度計(jì)算的前提條件是讓計(jì)算機(jī)能夠理解被比較的句子。要想理解一個(gè)自然語(yǔ)言表述的句子,一般要對(duì)其進(jìn)行詞法、語(yǔ)法及語(yǔ)義分析,其中的詞法分析是整個(gè)理解過程的基礎(chǔ)。特別是對(duì)于像漢語(yǔ)這樣的自然語(yǔ)言顯得尤為關(guān)鍵。漢語(yǔ)中詞是最小的能夠獨(dú)立活動(dòng)的有意義的語(yǔ)言成分,在一個(gè)漢語(yǔ)句子中,詞與詞之間沒有明顯的分隔符,而是連續(xù)的漢字串,這為詞法分析帶來(lái)了更多的困難。所以,第1步要做的就是對(duì)中文句子進(jìn)行分詞,在此基礎(chǔ)上對(duì)詞進(jìn)行標(biāo)注。
當(dāng)把組成一個(gè)句子的所有詞進(jìn)行了一一標(biāo)注后,會(huì)發(fā)現(xiàn)另外一個(gè)漢語(yǔ)語(yǔ)言特點(diǎn),那就是相同的詞在不同的語(yǔ)境下會(huì)產(chǎn)生不同的意思,即歧義詞。如果不對(duì)這些歧義詞匯進(jìn)行意思明確,計(jì)算機(jī)在進(jìn)行相似度計(jì)算時(shí),將產(chǎn)生語(yǔ)義理解混亂,即會(huì)認(rèn)為2個(gè)字面上相同的詞會(huì)有相同的意思,顯然語(yǔ)境對(duì)詞義理解的影響造成了相似度計(jì)算準(zhǔn)確率的下降。解決這個(gè)問題的辦法就是第2步所要做的詞義消歧。
中文分詞技術(shù)和詞義消歧技術(shù)都已被研究許多年了,不管是從技術(shù)層面還是從應(yīng)用方面上來(lái)說(shuō),已經(jīng)相當(dāng)成熟。筆者選擇中國(guó)科學(xué)院計(jì)算技術(shù)研究所研發(fā)的漢語(yǔ)詞法分析系統(tǒng)(ICTCLAS)[6]和哈爾濱工業(yè)大學(xué)計(jì)算機(jī)科學(xué)與技術(shù)學(xué)院信息檢索研究室所做的詞義消歧系統(tǒng)[7-8],作為語(yǔ)句相似度計(jì)算模型的支撐算法。
設(shè)2個(gè)句子A和B,A包含的詞為x1,x2,…,xm,B包含的詞為y1,y2,…,yn。經(jīng)過分詞和詞義消歧后,句子A和B中的詞分別被標(biāo)注了語(yǔ)義號(hào),語(yǔ)義號(hào)相同的詞被認(rèn)為是語(yǔ)義相同的詞。詞xi(1≤i≤m)和yj(1≤j≤n)之間是否語(yǔ)義相同用S(xi,yj)來(lái)表示,如果語(yǔ)義相同,則S(xi,yj)=1,否則S(xi,yj)=0。設(shè)詞語(yǔ)x1,x2,…,xm的權(quán)重為W1,W2,…,Wm,可得到A和B的語(yǔ)句相似度公式為
式(1)中,權(quán)重值Wi不是單純一種詞性的權(quán)重而是這種詞性下每個(gè)詞的權(quán)重,這樣設(shè)計(jì)的目的是由于每種詞性下詞的個(gè)數(shù)不同,在進(jìn)行相似度比較時(shí),不會(huì)因?yàn)樵~的數(shù)量或個(gè)別詞語(yǔ)義計(jì)算的差異導(dǎo)致相似度計(jì)算值有大幅波動(dòng)。如果在一個(gè)語(yǔ)句中有多個(gè)詞義相同的詞,如語(yǔ)句A中詞語(yǔ)x1和x2的語(yǔ)義號(hào)相同,它們又分別和語(yǔ)句B中的y1的語(yǔ)義相同,那么在計(jì)算過程中只算作1次相同,即不重復(fù)計(jì)算。在詞義消歧過程中,經(jīng)常會(huì)給出語(yǔ)義號(hào)為“-1”的情況,“-1”表示詞語(yǔ)本身就代表其意,所以在遇到這種情況時(shí),直接用這個(gè)詞進(jìn)行相似度比較,而不用無(wú)實(shí)際意義的語(yǔ)義號(hào)。
為了提高相似度計(jì)算的準(zhǔn)確率,在計(jì)算過程中,要讓被比句與每一個(gè)比較句進(jìn)行相似度比較,并且分別計(jì)算被比句與比較句的相似度。被比句中相似度大于指定值時(shí),把計(jì)算的2個(gè)值保存為一組,然后進(jìn)行選擇,找出最大可能相似比較結(jié)果,選擇算法如下:
① 是否存在2個(gè)以上的保存組,如果存在選擇前2個(gè)被比句相似度值最大組進(jìn)行比較,否則如果只有1個(gè)保存組,選擇后轉(zhuǎn)到④,如果為空,則轉(zhuǎn)到⑤;
② 是否這2組中被比句的相似度值相差不大(一般不超過20%),并且2個(gè)比較句的相似度值第1組比第2組小,否則選擇被比句相似度值最大的一組轉(zhuǎn)到④;
③ 分別計(jì)算這2組中被比句和比較句的差,選擇差的絕對(duì)值最小那一組;
④ 保存結(jié)果;
⑤ 進(jìn)行下一語(yǔ)句的相似度計(jì)算。
句子中的每一個(gè)詞根據(jù)其詞性的不同在句中的成分也不同。例如:名詞往往作主語(yǔ)或賓語(yǔ),動(dòng)詞常常作謂語(yǔ),形容詞作定語(yǔ)等。不同成分對(duì)句子意思的構(gòu)成影響的重要程度是不同的。主語(yǔ)、謂語(yǔ)、賓語(yǔ)是一個(gè)句子的主干,定語(yǔ)、狀語(yǔ)、補(bǔ)語(yǔ)對(duì)主干起修飾作用。因此,在進(jìn)行2個(gè)句間相似度比較時(shí),不同成分之間是否相同會(huì)造成相似度計(jì)算的差異。為了反映這種差異,必須給每個(gè)詞賦予一個(gè)權(quán)值。如果讓計(jì)算機(jī)計(jì)算詞在句子中作什么成分是非常困難的,又因?yàn)樵~性是決定句子成分的關(guān)鍵因素,所以要依據(jù)每個(gè)詞的詞性為其加權(quán)。
現(xiàn)代漢語(yǔ)的詞可以分為實(shí)詞和虛詞2大類。實(shí)詞包括名詞、動(dòng)詞、形容詞、數(shù)詞、量詞和代詞,虛詞包括副詞、介詞、連詞、助詞、擬聲詞和嘆詞。實(shí)詞指有實(shí)在意義,能夠單獨(dú)充當(dāng)句子成分,一般能單獨(dú)回答問題的詞語(yǔ)。虛詞指不表示實(shí)在意義而表示語(yǔ)法意義的詞,它不能充當(dāng)句法成分。實(shí)詞在句子中的地位比虛詞重要得多,相應(yīng)地其權(quán)重值也要比虛詞大。
相似本身是一個(gè)非常模糊的概念,它帶有很強(qiáng)的主觀因素。所以,詞性權(quán)重值的計(jì)算要根據(jù)具體實(shí)驗(yàn)得到,然后與客戶進(jìn)行共同協(xié)商確定。筆者只給實(shí)詞和虛詞中的副詞賦以權(quán)重,其他虛詞忽略,并且把代詞歸為名詞來(lái)考慮,權(quán)重總值為1。從句子的結(jié)構(gòu)來(lái)看,副詞、形容詞、數(shù)詞和量詞在句義表達(dá)上所起的作用有限,給它們分配的權(quán)重值為每種詞性0.05。相關(guān)資料以及經(jīng)驗(yàn)表明,動(dòng)詞在句子語(yǔ)義表達(dá)中起核心作用,名詞其次,所以動(dòng)詞分配的權(quán)重要大于名詞。但是從大量實(shí)驗(yàn)結(jié)果看,如果賦予動(dòng)詞權(quán)重值比名詞過大,消歧時(shí)又出現(xiàn)了意思上的偏差,也就是計(jì)算機(jī)對(duì)于動(dòng)詞詞義理解不準(zhǔn)確,從而會(huì)使語(yǔ)句相似度計(jì)算出現(xiàn)錯(cuò)誤。因此,當(dāng)句子中的每個(gè)動(dòng)詞的權(quán)重是名詞的1.5倍時(shí)是最合適的。權(quán)重計(jì)算公式為
式中:M和N分別表示句子中名詞以及動(dòng)詞的數(shù)量;wx表示名詞的權(quán)重;wy表示動(dòng)詞的權(quán)重。
由于沒有語(yǔ)句相似度測(cè)試的標(biāo)準(zhǔn)測(cè)試語(yǔ)料,所以實(shí)驗(yàn)所用的語(yǔ)料由系統(tǒng)開發(fā)人員自己構(gòu)造。本文實(shí)驗(yàn)所用的測(cè)試集,是筆者利用河北省科技進(jìn)步獎(jiǎng)當(dāng)年(2010年)請(qǐng)獎(jiǎng)項(xiàng)目庫(kù)和往年請(qǐng)獎(jiǎng)項(xiàng)目庫(kù)構(gòu)建的600個(gè)語(yǔ)句。這些句子分成2個(gè)部分,其中550句為噪音句子,構(gòu)成噪音集,另外50個(gè)是隨機(jī)選取的句子,構(gòu)成標(biāo)準(zhǔn)集。對(duì)50個(gè)標(biāo)準(zhǔn)集中的句子人為構(gòu)造與之相似的句子,形成一對(duì)一的相似關(guān)系,構(gòu)成比對(duì)集。
測(cè)試實(shí)驗(yàn)是這樣進(jìn)行的。把比對(duì)集中的50個(gè)句子按順序抽出一個(gè)句子分別和600個(gè)測(cè)試集中的句子進(jìn)行相似度計(jì)算,并按照相似值的大小對(duì)測(cè)試集中的句子進(jìn)行排序,然后觀察輸出結(jié)果,如果具有最大相似值的句子就是標(biāo)準(zhǔn)集中的句子,那么認(rèn)為相似度計(jì)算成功,否則失敗。在此分別用TF-IDF方法、語(yǔ)義依存方法、編輯距離方法和筆者提出的方法做了實(shí)驗(yàn),并把實(shí)驗(yàn)結(jié)果進(jìn)行了對(duì)比,如表1所示。
從表1可以看出,在實(shí)驗(yàn)條件相同的情況下,筆者采用的算法所得的準(zhǔn)確率要遠(yuǎn)遠(yuǎn)高于其他3個(gè)方法。原因在于,筆者在語(yǔ)義相似度計(jì)算中不僅考慮了詞語(yǔ)的語(yǔ)義,還考慮了句子不同組成成分對(duì)句子語(yǔ)義理解所產(chǎn)生的影響不同,因此,計(jì)算得到的加權(quán)語(yǔ)義相似度更具有合理性。此外,每一種算法都有其優(yōu)缺點(diǎn),在不同的應(yīng)用領(lǐng)域,應(yīng)根據(jù)需要選擇不同的計(jì)算方法,這樣就可以更加全面、準(zhǔn)確地衡量句子之間的相似度。將該計(jì)算方法應(yīng)用到2010年度河北省科技進(jìn)步獎(jiǎng)的形式審查中,在不同的查重規(guī)則下,均表現(xiàn)出理想的審核結(jié)果,平均查準(zhǔn)率高達(dá)99.98%。
表1 實(shí)驗(yàn)結(jié)果對(duì)照表Tab.1 Comparison of the test results
采用基于語(yǔ)義的語(yǔ)句相似度計(jì)算方法,該方法把語(yǔ)義與詞語(yǔ)在語(yǔ)句中所作成分的重要性結(jié)合起來(lái),有效地分析了語(yǔ)句的表達(dá)意思。在計(jì)算相似度時(shí),針對(duì)漢語(yǔ)由語(yǔ)素構(gòu)成詞語(yǔ)、由詞語(yǔ)構(gòu)成語(yǔ)句的特點(diǎn),分別對(duì)漢語(yǔ)中的詞語(yǔ)、詞義、句子3個(gè)層次進(jìn)行了研究。這三者層次不同,但是聯(lián)系密切,由部分構(gòu)成一個(gè)有機(jī)的整體,整個(gè)計(jì)算過程每一步都利用上一步的計(jì)算結(jié)果,在實(shí)驗(yàn)測(cè)試和實(shí)際應(yīng)用中均取得滿意結(jié)果。
[1] 劉 穎.計(jì)算語(yǔ)言學(xué)[M].北京:清華大學(xué)出版社,2002.
[2] 張玉芳,彭時(shí)名,呂 佳.基于文本分類 TF-IDF方法的改進(jìn)與應(yīng)用[J].計(jì)算機(jī)工程(Computer Engineering),2006,32(19):76-78.
[3] 秦 兵,劉 挺,王 洋,等.基于常問問題集的中文問答系統(tǒng)研究[J].哈爾濱工業(yè)大學(xué)學(xué)報(bào)(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ì)算[J].河北科技大學(xué)學(xué)報(bào)(Journal of Hebei University of Science and Technology),2010,31(2):108-111.
[6] 劉 群,張華平,俞鴻魁,等.基于層疊隱馬模型的漢語(yǔ)詞法分析[J].計(jì)算機(jī)研究與發(fā)展(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] 張立巖,呂 玲,王井陽(yáng).基于最大熵算法的全文檢索研究[J].河北科技大學(xué)學(xué)報(bào)(Journal of Hebei University of Science and Technology),2009,30(2):112-115.