本站小編為你精心準備了基于統計詞語關聯度網絡自動構建方法參考范文,愿這些范文能點燃您思維的火花,激發您的寫作靈感。歡迎深入閱讀并收藏。
1引言
詞語語義知識是眾多的必要語言知識中一個重要的部分,它的豐富和完善對于計算機自然語言處理能力的提升具有重要的意義。目前較為成熟的語義詞典在英語方面有WordNet[1]、FrameNet[2]、MindNet[3]等,漢語方面有How-Net[4]、同義詞詞林[5]等。這些語義詞典從本質上可以看做概念以及概念之間各種關系的集合。它們均為人工開發,從開發到維護往往要耗費大量的人力和時間。自劉群[6]起,已有大量學者參與中文詞語相似度技術的研究。目前被廣泛研究與采用的兩種方法是基于世界知識(Ontology)或某種分類體系(Taxonomy)的方法和基于統計的上下文向量空間模型方法。目前前者的研究更多一些。由于一些理論上以及運行條件的限制,現有的技術還存在很多問題,難以發揮理想的效果。基于語義詞典的詞語相似度計算方法是一種基于語言學和人工智能的理性主義方法,它利用語義詞典,依據概念之間的上下位關系和同義關系,通過計算兩個概念在樹狀概念層次體系中的距離來得到詞語間的相似度。這種方法存在以下幾點不足:1)人類語言的詞語具有很強的模糊性,一個詞語往往有很多種詞性、詞義,應用語境也是豐富多變。以層次關系明確的關系結構作為知識表示框架并人工添加信息很難表現模糊性的詞語知識;2)詞語語義知識復雜且含量巨大,只能由專業人員制定,進行知識密集的研究,希望全面細致地構建詞典工作量是極為艱巨的,實際上目前的語義詞典都還很不完備;3)規則的制定受人的主觀影響比較大,不能準確反映客觀現實;4)信息量固定,針對性較強,用戶很難根據特定需要以及現實世界變化進行修改或擴展;5)應用困難,對結構性的知識進行分析處理需要復雜的人工智能技術理論支持以及大量的假設性強的人工規則制定,由于語言的模糊性,人工規則的假設實際上大部分都不是可以普遍使用的一致性假設,因此以人工語義詞典為基礎開發的語言處理系統泛化性、魯棒性普遍不高,難以適應豐富多彩、千變萬化的真實語言環境。基于統計的詞語相似度研究,把結論建立在可觀測、量經驗證實的語言事實上,而不僅僅依賴于語言學家以及工程人員的直覺,可以較好地解決上面的問題,隨著語料庫的擴大,學習經驗的增加,機器學習得到的知識可以逐漸趨于完美。其原理是:構造一個以屬性詞為維度的屬性空間,屬性詞的個數小于真實詞語數目,但具備完全描述或近似完全描述所有事物的能力,類似于HowNet中的義原。每個詞語擁有一個屬性向量作為它的語義表示,這個向量每一維的權重為屬性詞與待表示詞在語義上的關系的大小(一般用在大規模語料中屬性詞在待表示詞的一定范圍的上下文中出現的頻率來度量),兩個詞的相似度就等于它們的屬性向量的相似度。由于一些理論及外部條件的限制,基于統計的方法也并沒有得到廣泛的研究和應用。秦春秀[7]對這種方法的缺點進行了總結。此外一個重要的技術問題是巨大數據存儲的困難。統計而得的數量巨大的共現數據是很難在當前的計算機中存儲的。為了發揮基于統計方法的優勢同時克服它實現上的困難,本文對基于統計的方法在理論以及技術上進行了一定的改進和創新。
2詞語相關度原理
本文提出領域、領域樹、詞語領域特性、詞語相關度的概念,作為詞語相關度網絡技術的理論基礎。定義1領域、領域樹世間萬物可以看做為具有層次關系的諸多領域,這些層次不同的領域構成一個樹形結構,稱為領域樹,樹的根節點囊括所有的子領域,而一個子領域還可以向下劃分,得到若干個描述該領域一部分內容的更下層子領域。所有領域構成領域空間。定義2詞語領域特性詞語是具備領域特性的,拋開詞語的詞性以及在句子中充當成分的信息不看,一部分詞語或強或弱地與一個或多個或大或小的領域關聯,這種與領域關聯的能力稱為詞語的領域特性。詞語與領域關聯可以看做詞語空間的一部分詞語具備到領域空間的一對一或一對多映射,而每個映射具有一個強度值,這個強度值與詞語出現而傳達出該領域的信息量成正比。詞語到領域的映射可以通俗地表述為詞語W“代表”領域D。與比如詞語“籃球”,它只有一個映射,映射至的領域為名為“籃球”的一種人類體育活動,這種映射的強度值為最大,因為只要該詞語出現就能確定該領域出現;對于詞語“進攻”,它存在兩個映射,一個映射至戰爭中的進攻行為,一個映射至體育運動中的進攻行為,一對多映射源于詞語的多義現象,這種一對多映射分散了該詞語傳達一個領域的信息量,因此每個映射的強度較小;對于詞語“優秀”,它可以映射到人類活動的多個領域,這些映射的強度更弱。一部分詞語是不具備領域特性的,比如虛詞,在語言表達中只起到輔助作用,它們不能傳達任何與領域有關的信息。定義3詞語相關度本文研究兩個詞語之間在代表領域上的相關程度,命名為詞語相關度。詞語相關度是一個相對性的量,是用來對不同的目的詞語相對于一個源詞語在領域上相關程度的大小進行比較,也就是說一對詞語的相關度數值是沒有使用價值的,只有對多個始于同一個源詞語但終止于不同目的詞語的相關度比較排序,從而獲知哪些詞語于源詞語在領域上的相關程度更大,哪些更小。相關度可以根據兩個詞語代表領域在領域樹中的節點的距離來計算,這種距離與兩個節點和它們的公共祖先節點的距離有關。直觀地看,父子節點以及同一父節點的若干個子節點之間距離最近。以“投籃”、“籃板”、“穿衣”三個詞語為例,它們代表的領域也可稱為“投籃”、“籃板”、“穿衣”,“投籃”和“籃板”為父子節點,距離很近,而“投籃”和“穿衣”、“籃板”和“穿衣”兩對節點的公共祖先節點為“人類活動”,子節點距離公共祖先節點較遠,因此第一對詞語的相關度比后面兩對的相關度高。詞語相關度的概念相比于詞語相似度更加精確、有針對性。本文的目標就是實現一種能夠較為精確地計算詞語相關度的方法。
3詞語相關度網絡原理
Matsuo等人[8]發現,將詞語作為節點,根據詞語在一定窗口內的共現關系將詞語相連接可以構成一個詞語網絡,這個網絡既不是完全隨機的,也不是完全規則的,而是具備小世界特性的復雜網絡。詞語網絡在全局上高度連接,且局部高度聚集。他們提出由詞語網絡表示文檔的主要內容,節點表示文檔中的詞語,邊表示文檔中詞語間的關系。詞語網絡不僅能反映文檔的內容,還可反映文檔的總體結構和語義結構。文檔中能夠強烈表現文檔主題的關鍵詞可以通過挖掘詞語網絡的中心節點—即對圖中小團體的緊密度起重要作用的節點來獲得。如果將這種面向單文本的詞語網絡擴展,將它應用于多文本,來挖掘詞語間的語義關系是否可行呢?不考慮文學作品比如散文、小說等,按照人類的語言習慣,在書寫一篇應用文本時一般只圍繞一個主題。因此文本中出現的詞語除了一些領域特性弱或沒有領域特性的之外,領域特性強的詞語往往都共同涉及一個較高層的領域,本文稱為全文主領域。而文本的每個段落經常會圍繞一個全文主領域所包含的子領域,一個句子則圍繞某個更下層的劃分。所以可以假設,隨著考察窗口的縮小,窗口中的強領域特性詞語是共同涉及一個逐漸縮小的公共領域的,這些詞語的相關度較高。我們知道貝葉斯定理的原理:一個事件越是頻繁出現,是事實的可能性就越大。由此可以推導出一個更重要的假設,稱為詞語相關度假設:設定一個文本窗口,對大量文本進行分析,頻繁在文本窗口中共現的一對詞語相關度較高。如果這個假設是正確的,那么將單文本詞語網絡擴展到多文本,據此挖掘詞語的相關度知識就是可行的。由詞語相關度假設可知,詞語相關度與詞語對的共現頻數成正比,與每個詞語單獨出現的頻數成反比,由此得到詞語相關度公式定義,由詞語相關度可以構建詞語相關度網絡。定義4詞語相關度公式假設詞語wx和wy,Fxy表示詞語對在窗口內共現的頻數,Fx和Fy表示每個詞語單獨出現的頻數,那么詞語wx和wy的相關度Cor為Cor(wx,wy)=Fxy/Fx槡Fy(1)定義5詞語相關度網絡以所有領域特性較強的詞語為節點,如果兩個節點相關度大于零,就在兩個節點之間建立權值為二者相關度的無向邊,所有節點和邊一起構成一個復雜的無向加權網絡,稱為詞語相關度網絡。可以運用多種圖與網絡的理論對詞語相關度網絡進行分析,以獲取更多的詞語語義知識。下面構建一個詞語相關度網絡,通過實驗驗證詞語相關度假設。
4.1總體步驟從整體上看構建詞語相關度網絡可分為以下幾個大的步驟:1)選擇適當的詞語作為網絡的節點,設節點數目為N,建立一個N×N的二元組數據庫,用于保存每兩個詞語共現的頻數。2)將數據庫的所有元素先置零,遍歷語料庫中的文檔,對文檔進行分詞處理,當詞語wi和wj在文本窗口中共同出現,就將二元組中i行j列以及j行i列位置的元素加1。由此統計節點詞語共現頻數,獲得共現數據庫。3)根據共現數據庫,根據詞語相關度公式計算每兩個詞語間的相關度,獲得相關度數據庫(同樣也是N×N的二元組)。
4.2節點詞語選擇本著盡可能降低網絡數據的空間復雜度同時又盡量維持數據完整的原則,節點集不宜包含所有中文詞語,應選擇領域特性較強的一部分詞語。經過觀察發現,絕大多數名詞、動詞和縮略語領域特性很強,而形容詞的領域特性也相對較強,此外單字詞相比于多字詞領域特性較弱。據此,實驗擬從中科院ICTCLAS分詞系統的詞典中選取所有詞性為名詞、動詞、縮略語、形容詞的多字詞(共65165個)作為網絡節點。
4.3文本窗口選擇我們的文本窗口選擇為段落,因為與句子、文章相比,段落表達對主題的表達更為全面(與句子相比),并且能夠避免較多的噪音(與文章相比)。句子雖然能避免更多的噪音,但是表達的內容往往只局限于很小的一點,除非訓練集十分龐大,否則很容易引起數據稀疏問題;文章雖然對主題的表達更加寬泛,但不同段落關注的內容很有可能有較大差別,尤其是對于訓練集中很大一部分的網頁文本,在一篇文本中很有可能出現一些與主題無關的附加信息,這就會帶來大量的噪音。因此綜合考慮的結果還是以段落為窗口最佳。在實際的代碼中,可以取空格符為段落間隔符,以回車或換行符為段落間隔符是不恰當的,因為有很多文本為了便于瀏覽或其他原因,在一個段落結束前就使用一些換行符以保持顯示時每行的長度為某一固定大小,如果以換行符為段落間隔符,就會錯誤地劃分出很多段。幾乎所有的段落在開頭都會有首行縮進,也就是增加空格符,因此以空格符作為段落間隔符是合理的。基于上面所說的情況,在文本分析前應把所有回車及換行符去掉,以免造成分詞錯誤。
4.4數據存儲的困難可以看出,詞語相關度網絡與基于統計的詞語相似度計算是類似的,都需要對語料庫的詞語共現信息進行統計,統計學習得到的知識具有基于規則的語義詞典無法比擬的優點。但如上文所述,就目前條件來說共現數據的存儲存在很大困難。圖和網絡的存儲方法主要有兩種:無壓縮的矩陣數組或壓縮性質的鏈表(包括鄰接表和十字鏈表等)。假設網絡的節點為N,如果網絡用矩陣數組表示,這個數組為一個N×N的二元組,空間復雜度將達到O(N2)。本實驗節點的個數為65165,此時數組元素的個數達到4G以上,如果元素用int整型(int型變量占4字節空間)表示,整個數組占用存儲空間的大小將達到16GB以上,目前占主流地位的32位個人PC機整個內存空間的大小只有4GB,這么大的數組是無法存儲在內存中的。而且數組數據實際上較為稀疏,完全存儲會造成較多的空間浪費。稀疏數組可以采用壓縮性質的鏈表存儲來節約空間。對于本實驗,每行或列的元素僅使用普通的鏈表存儲是不恰當的,這樣就會失去隨機存取的功能,對于本網絡節點數目達到萬級的情況,時間復雜度將不可接受。每行或列的數據存儲可以采用動態查找表,如平衡二叉樹、紅黑樹等等,這也是一種以鏈表為基礎的壓縮存儲方法,同時隨機存取的效率不至于損失過大。實驗擬采用這種方法:每行元素使用C++標準庫的map容器(此容器內部實現方式為紅黑樹)存儲,這樣既能夠節約空間,又能夠保持較高的存取效率。但在語料庫學習的過程中,隨著網絡邊數的不斷增多,當分析的文檔數達到一萬多個時,計算機依然不能承受巨大的內存開銷而產生內存不足的情況。也就是說即使壓縮,內存也無法完整地存儲詞語共現信息。那么是否可以通過篩選共現數據來實現進一步的壓縮呢?章志凌[9]在為計算詞語相似度而進行共現信息的統計時,為了減少空間復雜度,設計了兩種方法進行空間約簡:一是減少屬性詞語的數量,只取二字及二字以上的名詞,然而詞語節點只包含名詞則忽略了大量強領域特性的詞語,比如動詞、形容詞的領域特性也較強,這樣必然會遺漏大量的語義信息;二是設計了在統計學習的過程中不斷裁剪共現數據的算法,但裁剪算法較為復雜,大量增加了時間復雜度,而且不完全準確,最終得到的數據與真實情況存在誤差。由此可見,在內存中存儲數據并保持較高的準確性是不可能的。目前外存硬盤的容量已達到TB級,完全足夠容納共現數據,所以將數據移至硬盤中。
4.5硬盤存儲方法硬盤有一個致命的問題是存取速度很慢,因此網絡應當采用數組表示法,來盡量較少效率的損失。本實驗的數組大小為16GB,那么應該怎樣存儲和操作呢?實驗首先采取一種簡單的可以直接想到的方法:建立一個與數組相同大小的大文件,文件的地址從低到高依次存儲數組的各行元素,在分析語料庫的過程中不斷地隨機讀寫,來實現共現頻數的添加。但是對大文件頻繁的隨機讀寫因為需要不停地轉動磁盤盤面,效率是極為低下的,對于一個大語料庫,讀寫操作很可能達到上億次。實驗證明采用這種方法平均處理每一篇文本需要幾秒鐘,這樣的速度是不可接受的,與盡可能增大語料庫規模以較少數據噪聲的愿望完全違背,因此不宜采用。實驗設計了一種數組分割的方法。雖然數組不可以完全放入內存,但是將數組分割成內存可以容納的n個子塊,學習語料庫的過程相應的增加為n次,第i次學習時,內存中存儲數組第i子塊的數據,學習中對內存進行操作,學完一遍后將內存中數據保存至硬盤。這樣在學習中均為內存操作,只是學習的次數增加了n倍,只要n足夠小,學習過程的時間復雜度就是可以接受的。
5效率及性能測試
5.1效率測試本實驗的硬件環境為:CPU:IntelCeleronE3300雙核主頻:2.5GHz/前端總線頻率:800MHz;內存:DDR23GB雙通道工作頻率:400MHz;硬盤:7200轉。語料庫包含文檔33087篇,數據量為152MB。文檔分詞采用中科院ICT-CLAS詞法分析系統。共現數據庫采用數組分割法,實驗發現內存中最大可分配6000行元素,而數組總共有65165行,所以子塊數n為11,一次遍歷語料庫耗時23分鐘,11次遍歷的最終學時間為4小時,在效率上能夠較好地滿足需求。
5.2性能測試給定一個詞語,得到與該詞語在領域上關系最大的若干個詞語的集合,可稱為“語義擴展”。下面對本實驗系統進行語義擴展測試,首先選取詞語“財政”、“計算機”、“環保”、“教育”、“就業”、“軍事”作為核心詞,分別獲取與每個核心詞相關度最大的20詞,結果列表如表1所示。可以看出,每個核心詞列出的擴展詞基本上均為領域關系較大的,詞語相關度的計算結果與真實情況較為符合。
6結語
本文提出了詞語相關度的概念以及基于統計的詞語相關度計算方法,并以此為基礎構建了一個基于強領域特性中文詞語的詞語相關度網絡,設計了數組分割的硬盤儲存方法把網絡數組存放在硬盤中,使海量數據的分析處理可以在目前的個人PC上完成。實驗證實了數據的有效性,詞語相關度知識具有廣闊的應用前景:1)詞語相關度網絡是一個規模與信息含量很大的復雜網絡,可以對這個網絡應用多種圖和復雜網絡的理論和算法,以獲取更加豐富的語義知識。2)統計方法與規則方法相互結合,綜合使用,往往可以彼此揚長避短,優勢互補。因此可以利用詞語相關度網絡蘊含的語義知識簡化語義詞典的構建工作,方便專家在短時間內構建知識準確且豐富的語義詞典。3)強大的語義擴展能力可以應用在文本分類、檢索、過濾等自然語言處理技術中,為語言處理系統提供豐富的詞語語義知識,既可以以此為基礎設計新的算法機制,也可以作為某些成型算法機制的知識擴充,從而提升計算機中文處理的能力。
但當前工作還存在一些問題,有進一步改進的空間,總結如下:1)節點詞語集存在改進的空間,存儲方式有靈活變通的可能。實驗的節點詞語是從ICTCLAS分詞系統中抽取的,實際上詞數較為有限,還有很多領域特性強的詞語沒有包含。中文詞語數量十分巨大,如果算上專業術語,領域特性強的詞語至少有幾十萬。除此之外,一些常用的或用作專業術語的詞組短語也具有很強的領域特性,如“管狀組織”、“產值結構”等等,它們也符合加入節點詞語集的條件,有助于擴充計算機的認知。綜合考慮各種情況,中文中領域特性強的詞及短語的總數很可能達到百萬級,希望網絡囊括所有這些詞當然不可能,但可以根據應用環境的特點選取應用環境需要的一部分,比如諸多的專業術語在大眾化的應用環境就不需要,可以除去。另外實驗中僅根據詞性來判斷詞語領域特性的強弱是不充分的,很多符合實驗條件的詞語諸如“進行”、“認為”、“可能”顯然領域特性較低,加入節點集不僅增加了空間消耗甚至帶來了噪音,應該分析找到這類弱領域特性詞并去除。另外,針對不同的應用,網絡的結構以及存儲方式可以相應改變以減少空間復雜度。比如如果不需要很多復雜的網絡分析而只對部分詞語進行語義擴展,可以減少數組行或列的數目,設定一個核心詞集和領域詞集,核心詞集中僅加入需要進行語義擴展的一部分詞語,是領域詞集中的一個子集,用領域詞集中的詞語對核心詞進行語義擴展。設核心詞集的詞數為NR,領域詞集的詞數為NC,NR<NC,此時的數組大小NR×NC小于完整網絡的大小NC2,這樣也給領域詞集的擴展提供了空間。2)數據噪音。經過觀察發現,一個核心詞語的相關詞語列表在相關度大的部分較為準確,隨著相關度的減小,就會越來越多地出現無關詞混雜在相關詞之間的情況,這就是數據噪音。這與語料庫、文本窗口、計算公式等多種因素相關。實際上文本窗口的選取是與語料庫大小相關的,語料庫當然是越大越好,如果語料庫很大,文本窗口就可以小些,可以提高準確性;但是如果條件有限,語料庫比較小,文本窗口應該大一些以提升完備性。此外,應當更深入研究詞語的統計規律,設計更準確的計算公式。3)語義關系有待擴展。本文是基于詞語在文本窗口中的共現情況挖掘詞語的領域相關性,實際上詞語還有很多更細致的語義關系,挖掘這些語義關系需要句法分析的支持,目前中文處理中的句法分析技術還不夠完善,未來當句法分析技術條件完備時,就可以深入挖掘這些豐富的語義關系。