陳洪生,吳守華
(1.湖北科技學院 計算機科學與技術學院,湖北 咸寧 437100;
2.通城縣地方稅務局,湖北 通城 437400)
與前些年的信息資源匱乏相比,現在信息用戶更加關注的是如何從海量的信息資源中發掘其所需要的信息.信息資源異構性的存在,尤其是語義異構性的存在,使得采用傳統以字符串匹配為基礎的信息檢索系統難以滿足用戶對信息和知識的深層次需求,因此,加強基于概念匹配的信息檢索系統的研究就顯得尤為重要.簡而言之,概念匹配就是計算詞語之間的語義相似度[1].與傳統的以詞形為切入點、建立在詞語字面匹配基礎上的檢索算法相比,語義相似度計算是對源和目標詞語間在概念層面上相似程度的度量,需要考慮詞語所在的語境和語義等信息.在我國,以知網[2]為基礎的詞匯相似度計算是較好的方法之一,并在機器翻譯、信息檢索、文本分類、文本聚類答問、案提取、答系統等領域有著一定程度的應用;劉群[3]等人提出的方法可以解決同一特征文件中義原間的語義相似度問題,但不能解決不同特征文件義原間的語義相關性問題.李素建[4]將知網和同義詞詞林結合起來計算不同特征文件中詞語的相似度,在一定程度上解決了不同特征文件間詞語的語義相關性,但是知網和同義詞詞林詞語的組織方式完全不同,所以計算結果不是很理想;許云[5]、王廣正[6]等提出了各自的語義相關度計算方法.
研究語義相關度評價方法會牽涉到語義相似性和語義相關性問題,在具體的研究前,先對基本概念做出解釋.語義相似性是指主題間有共同特性,意義相似;而相關是指在人的直覺中兩個主題關聯,關聯的原因多種多樣,可以說語義相似是語義相關一種特例,相關性是比相似性更普遍一個概念.除了語義相關和語義相似,語義距離被用于度量主題間的相關性,它被視為語義相關的逆,即主題間語義距離越小,則語義相關度越大.研究中具體采用哪種概念作為語義關聯的度量取決于相關度評價方法構建,同時指出文中常提到的關聯量化及相關度評價兩個名詞都是對相關性度量的稱謂.
目前,根據語義相關度評價方法依賴的知識資源區分,主要有兩類評價方法:分布方法和基于本體的方法.國內學者通常把分布方法稱為統計方法(Distribution Measure),把基于本體的方法(Ontology—Based Measure)稱為語義詞典方法.分布方法是對大型文本語料庫進行統計分析,通過判斷兩個單詞的上下文(上下文是由一些共現詞組成的)的相關程度,間接計算單詞對的相關度[7].分布方法計算相關度依賴語料庫知識資源,計算結果的準確度外部受語料庫的規模、質量、專業性的影響,內部受共現詞的出現窗口大小、句型結構的選擇等因素的影響,具有局限性;基于本體的方法[8]是以某種方式,把知識資源構建為網絡或者有向圖,使之形成一個確定的概念化體系,基于圖中概念間連通的路徑屬性來計算相關度.基于本體的方法計算相關度依賴本體資源的質量,主題圖本身是一種針對專業領域構建的知識本體,且主題間的相關度具有強烈的領域特色,例如說:主題對“空間”和“時間”在量子力學中關系非常相似,但在其他大部分領域中都并不那么相近,主題間的語義相關度無法脫離特定的主題圖本體而獨立得出,因此基于本體的方法適用于衡量主題間的相關度[9].
目前,基于本體的方法主要是基于WbrdNet語義詞典的方法,在詳細討論下述基于本體的語義相關度評價方法時,首先給出一些符號、概念的定義:
(1)同義詞集c1到同義詞集c2的最短路徑的長度用len(c1,c2)來表示;
(2)一個節點的深度是指從該節點到根節點的路徑的長度;
(3)c1和c2的最近共同父類,即同時包含才c1和c2并且深度最大的類,記為lso(c1,c2);基于本體的語義相關度評價方法通過主題間路徑的屬性來計算相關度,本體作為一個分類層次化語義網絡體系,網絡結構的局部密度、主題節點在網絡層次中的深度、網絡中蘊含的連接類型、主題間的路徑長度、連接強度都是影響語義相關度的關鍵因素.
此方法是基于向量空間模型以及信息論,提出一個與文章內容相關的語義相關度算法模型.該模型將文章語義抽象為詞頻表,并通過機器學習構建詞語之間的關聯度表,以此詞關聯度為基礎,計算文章之間的相關度,此方法可以有效的根據文章之間的語義相關度大小進行排名[10].
目前有很多公開的數據庫供研究者使用,特別是如維基百科、知網等很多數據庫都可以使用,當然有很多基于這些數據庫的語義相關度研究,劉軍等在[11]文中提出基于Wikipedia的語義相關度計算方法.在構建Wikipedia類別樹的基礎上,通過 Wikipedia類別向量表示Wikipedia中的詞匯,形成一部包含各種領域知識的 Wikipedia詞典,利用該詞典計算語義相關度.張振幸等在[12]文中以知網理論相似度計算為基礎,提出了一種計算詞語相關度方法;該方法將知網中不同特征文件間的義原通過其解釋義原與其它特征文件中的義原建立聯系,進而計算它們之間的相關度,并用該方法提取文本特征,實驗結果表明,該方法更趨于合理,絕大部分結果更符合人們的日常體驗 ,有效提高了計算結果的精確度和準確性.
目前,國外學者對于語義相關度的評價方法的已做了較為深入的研究,它可以分為兩類,一類是基于語義詞典的方法,一類是統計的方法[7].其中基于語義詞典的方法大多基于WordNet提出的許多度量語義相關的度量方法.但是,國內在語義相關原理和應用方面的研究還比較欠缺,特別缺少在中文環境下的分析與應用,大多數的研究都選擇英文環境,少部分采用中文環境.如顏偉和荀恩東計算了WordNet中英語單詞的相關度[13],孫爽和章勇提出了基于語義相似度的聚類算法[14],但是他們研究的語言環境還是英語.在中文環境下,章成志介紹了上文若干種度量方法[15],但沒有進行相互之間的比較,劉群和李素建基于知網提出新的度量方法,但仍囿于知網的規模相對較小[3].李峰等人根據現有的方法,提出了多個相似度計算公式,但比較時實驗集很小,并且缺乏在實際應用中的比較[16].Raftopoulou P[17]等在文中提出了一個新的語義相關的定義,認為兩個詞所表達的概念之間,如果存在用類似“知網”的知識描述體系所描述的語義關系,那么這兩個概念之間就是語義相關的.通過挖掘這些直接或間接的關系,提出了一種新的語義相關度的計算模型,適用于所有類似知網的知識體系中語義相關度的計算.最后將該計算模型應用于詞義排歧,驗證了該計算模型的有效性.
目前,基于本體的語義相似度計算方法研究已經形成了豐富的研究成果,語義相似度和語義距離之間存在著密切的關系:兩個詞語的語義距離越大,其相似度越低;反之,兩個詞語的語義距離越小,其相似度越大.詞語語義距離的計算方法基本上可以分為兩類:基于某種世界知識的計算方法和基于大規模語料庫的統計計算方法[16].本體概念體系可用層次樹來描述,其中節點表示本體中的概念詞;邊表示本體中概念詞與概念詞之間的關系.一般來講,概念范疇較廣的概念詞在樹中的位置一般比較高,周圍節點密度相對較少;概念范疇較為具體的概念詞在樹中的位置相對較低,且周圍節點密度相對較大.因此,樹中概念詞間語義相似度計算主要受以下因素影響[17-19]:
(1)被比較概念詞在本體層次樹中所處的深度
在本體層次樹中,概念詞所處層次越高,越抽象;所處層次越低,越具體.高層次的概念詞間的語義相似度一般小于低層次概念詞間的語義相似度.因此,路徑相同的兩個節點,高層次節點所表征的語義距離要大于低層次節點所表征的語義距離.
(2)被比較概念詞在本體層次樹中所處區域的密度
在本體層次樹中,局部區域密度越大,說明該區域對節點概念的細化程度也越大.因此,對組成被比較概念詞連接路徑的各個邊來說,其在本體層次樹中所處的密度越大,對應的權重也應該越大.
(3)被比較概念詞連通路徑上各個邊的類型
在本體中,不同的概念關系所表征的語義相似度是不同的.例如,“同義關系”所表征的語義相似度應大于“整體-部分關系”所表征的語義相似度.
(4)被比較概念詞連通路徑上各個邊在本體層次樹中的關聯強度
在本體層次樹中,一個節點可能與多個節點相連接,但這些節點的重要程度通常存在差異,因此,相應的連接邊對語義相似度的影響也必然不同.
(5)被比較概念詞連通路徑上各個邊的兩端節點概念詞的屬性
本體,尤其是領域本體,不僅會對概念及其關系進行準確定義,還會對概念的屬性進行詳細描述.如果某條邊兩端的概念詞所用的相同屬性越多,那么其對語義相似度的影響也越大.
國內外精典計算模型有以下一些方法:基于距離的語義相似度計算,基于信息內容的語義相似度計算,基于屬性的語義相似度計算,混合式語義相似度計算,基于概念向量模型的語義相似度計算等.孫海霞等在[20]文中在對基于本體的詞語語義相似度進行界定的基礎上,對基于本體的語義相似度研究進行綜述,分別闡述基于距離的語義相似度計算、基于內容的語義相似度計算、基于屬性的語義相似度計算和混合式語義相似度計算等算法模型,最后從宏觀層面指出今后本領域的研究方向.
計算語義相關度在語言應用中非常重要,如查找、聚類、消除歧義等方面.以前的計算語義相關度的方法大部分都采用了靜態語言資源,而忽略了它們時間的影響,其實通過學習過去一段時間的單詞使用樣式是可以找到單詞間的相關性信息的.比如說,我們考慮很多年的報紙存檔信息,兩個單詞“戰爭”與“和平”,也許這兩個詞很少在同一個文章里使用,但是它們的使用樣式在過去一段時間里也許是相類似的.在文獻[21]中,作者提出了一種新的語義相關度模型,時間語義分析(TSA),這種方法獲取時間信息.以前的研究方法,直接語義分析(ESA)通過概念向量來表示單詞的語義.TSA使用了一種改進的表示方法,每個向量不再是一個標準值,而是過去一段時間的文檔的一個時間序列,并且這是第一次嘗試將時間信息放入語義相關度分析模型中.
在文獻[21]中,主要貢獻如下:首先,作者提出了使用時間信息作為發現單詞間語義相關的的互補資源,尤其是,作者介紹了時間語義分析,這改變了一些信息并計算出了語義相關改變度.然后,作者構建了一個新的語義相關度的數據庫,并且通過Amazon'sMechanical Turk提供的服務進行了評價,最后實驗結果顯示TSA比ESA性能優越性好很多.
時間語義分析(TSA)主要包含兩部分,自然語言中字詞的語義表示和字詞間語義相關度的計算.作者的方法是建立在每個單詞與一個有一定權值的概念向量表示,這種概念向量可以從維基百科,Flickr或者從在線書簽服務來表示,這跟最近的語義分析方法ESA很相似.然而,ESA使用的是靜態語義表示每個向量,作者使用了概念度即通過這一概念發生的時間序列表示時間變化行為.因此,不僅僅是用一個單位向量來表示一個單詞,向量的時間序列也加入進來,每個時間序列通過時間概念度來描述.我們的假設是概念行為隨著時間是類似的,那么語義就相關.TSA有三個步驟:
(1)把單詞通過概念向量表示:通過概念庫選擇(Wikipedia or Flickr im-age tags)
(2)提取每個概念的時間度:通過使用文檔選擇(NewYork Times archive)
(3)把時間段擴展到靜態表示中去
下面我們分析一下文獻[21]中TSA方法中的一些主要的思想及算法,首先看時間概念度(TemporalConceptDynamics)的計算,假設C是一個概念可以通過一系列的單詞Wc1,….Wck表示,d表示一個文檔.我們說如果每個單詞對(Wci,Wcj),在文檔d中出現的位置距離小于給定的一個值Q,那么就說C這個概念在文檔d中出現過.一般的Q是一個近似松弛系數,在此文中作者設置此值為20,即單詞對的間隔不超過20個.這也就是說一個概念在一篇文檔中出現實際上就是有一個大小為Q的窗口包含了概念C中的所有單詞.比如,有一概念“GreatFireof London”,我們說這個概念在一個文檔 d中出現時指單詞“Great”、“Fir”、“of”、“London”四個單詞同時出現在它們間的距離小于Q個單詞的文檔d中.
T1……Tn表示連續的不相關的時間點(如天),H=D1….Dn表示文檔收集集的歷史表示,其中Di是跟時間Ti相關的文檔收集.所以定義概念C的度可以用其出現在H中的頻率的時間序列表示公式如下:

將時間信號擴展到靜態表示中,作者用權重和概念時間序列混合來表示一個單詞,權重相當于概念關于原始詞意的重要程度,具體的表示如下圖所示:

根據對以前文檔的統計計算得出時間概念度之后,就可以使用TSA來計算語義相關度了,為了計算一對單詞間的語義相關度,我們使用多個時間序列間權重距離測量來比較他們的向量,并且結合靜態語義相似度概念測量方法.所以這個方法整合了單詞的時間和靜態意義行為.基于TSA的語義相關度算法如下:
作者僅假設高權重相關的概念單詞也相關,假設我們想找到兩個單詞T1和T2之間的相關度,假設T1映射到一個概念集C(T1)={C11,….Cn1},T2映射到一個概念集C(T2)={C12,….Cm2}.假設有一個函數Q通過使用它們之間的概念時間度來決定兩個單獨的概念之間的相關度,并且假設n<=m,我們就可以定義T1與T2之間的相關度R為所有有序子集C(T2中每對概念相關度和的最大值,具體公式如下:

實際上如果按照以上的公式進行窮舉計算求最大值是很難實現的,所以作者提供了一種取舍貪婪方法,在算法中每步是找出最高相關度的一對時間序列.然后在相應集合中刪除它們,如此循環,最后通過求和得到一個相關度.此過程的時間復雜度為O(n*m*max(|ts|)),其中ts是表示概念的時間序列長度.
其中Q函數計算語義相關度的方法有兩種即 交叉相關(CrossCorrelation)和動態時間包裝(Dynamic TimeWarping),經過實驗交叉相關在TSA中效果比動態時間包裝(Dynamic TimeWarping)要好,故在文獻[21]中采用的是交叉相關(CrossCorrelation)方法求語義相關度.
TSA方法性能上比ESA要好,但是也存在一些缺陷,TSA在識別復雜隱含聯系時存在一些與人們認識不同的結果,也就是不能準確把握語義聯系.存在這種問題的原因是作者所選用的時間序列文檔集不夠完全,太單一,沒有涉及特殊領域的文檔,如科學技術等,可以考慮增加一些時間文檔,如博客、評論等信息.
對于文獻[21],本人有一些不成熟的想法,此文提出的是一種新穎并且有效的方法通過語義分析來解決字詞間相關性問題,并且通過實驗驗證了其想法的有效性.但是也有局限性如自己提到的由于使用的數據庫的局限性本文中作者必然導致一些語義相近詞鑒別不出來,可以針對性進行分類比較,比如科普性的、大眾性的等,是否可以先對大量的文檔進行一個分類,然后再進行統計計算效果應該會更好.
本文對語義相關度中的一些技術及前沿方法進行了簡要的介紹,主要從基于詞關聯度、基于相關數據庫的語義相關度計算、中文語義相關度計算的研究、基于本體的語義相似度計算方法、使用時間語義分析計算單詞間相關度進行了闡述,重點以文獻[21]介紹了使用時間語義分析計算單詞間相關度,并且提出了一些自己想法和有待于研究的問題,總之,在語義相關度中還有很多問題值得人們去思考,研究和實踐.
[1]Semantic Similarity Measures in MeSH Ontology and Their Application to Information Retrieval on Medline[EB/OL].[2007 -12 -10].http://www.intelligence.tuc.gr/publications/Hliautakis
[2]董振東,董強.知網簡介[EB/EL].http://www.keen2age.com.
[3]劉群,李素建.基于《知網》的詞匯語義相似度計算[J].Computational L inguistics and Chinese Language Process zing,2002:59 -76.
[4]李素建.基于語義計算的語句相關度研究[J].計算機工程與應用,2002,(7):75 -77.
[5]許云,樊孝忠,張鋒.基于知網的語義相關度計算[J].北京理工大學學報,2005,20(5):411 -414.
[6]王廣正,王喜鳳.基于知網語義相關度計算的詞義消歧方法[J].安徽工業大學學報(自然科學版),2008,(1):71-75.
[7]Mohammat S,Hirst G.Distributional Measures as Proxies for Semantic Relatedness.In Submission[EB/OL].http://www.cs.toronto.edu/compling/publications.
[8]Budanitsky A,HirstG..EvaluatingWordNet-based Measures of Lexical Semantic Relatedness[J].Computational Linguistics.2006,32(1):13 -47.
[9]李麗冬,主題圖的語義相關度評價方法研究,碩士論文,大連理工大學,2008.12.
[10]張增杰等,基于詞關聯度的語義相關度算法研究,微型電腦應用[J].2011,27(3).
[11]劉軍,姚天昉,基于 Wikipedia的語義相關度計算[J].計算機工程,2010,(10).
[12]張振幸,李金厚,一種基于知網的語義相關度計算方法[J].洛陽師范學院學報,2010,4.
[13]顏偉,荀恩東.基于語義網計算英語詞語相似度[J].情報學報,2006,25(1):43 ~48.
[14]孫爽,章勇.一種基于語義相似度的文本聚類算法[J].南京航天航空大學學報,2006,38(6):712 ~716.
[15]章成志.詞語的語義相似度計算及其應用研究[C].//第一屆全國信息檢索與內容安全學術會議,上海,2004.
[16]李峰,李芳.中文詞語語義相似度計算——基于《知網》2000[J].中文信息學報,2007,21(3):99 ~105.
[17]Raftopoulou P,Petrakis E.Semantic Similarity Measures:A Comparison Study[R],2005.
[18]黃果,周竹榮.基于領域本體的語義相似度計算研究[J].計算機工程與科學,2007,29(5):112 ~117.
[19]張忠平,趙海亮,張志惠.基于本體的概念相似度計算[J].計算機工程,2009,35(7):17 ~19.
[20]孫海霞,錢 慶,成 穎,基于本體的語義相似度計算方法研究綜述[J].現代圖書情報技術,2010(1).
[21]Kira Radinsky,Eugene Agichteiny,Evgeniy Gabrilovichz,and Shaul Markovitch,A Word at a Time:Computing Word Relatedness using Temporal Semantic Analysis,in proc ofWWW,2011.