王永亮, 郭 巧, 曹奇敏
(北京理工大學自動化學院,北京100081)
關鍵詞在文本處理的各個領域有著十分重要的作用[1-9]。在信息爆炸的今天,為了處理日益龐大的文本信息,國內外各個研究機構在自動文摘、信息檢索、文本分類、文本聚類等領域展開了大量研究。但是這些研究都無一例外地要用到關鍵詞抽取,可見關鍵詞在自然語言處理尤其是文本處理中占據著十分重要的地位。
傳統的關鍵詞抽取是基于詞袋(Bag of words)模型的,即忽略詞序和語法、句法,將文檔僅僅看作是詞的集合,文檔中每個詞的出現都是獨立的,不依賴于其他詞是否出現。在中文文本尤其是中文新聞文本中,為了使文字表述更加生動、豐富,往往對一個語義概念使用多種表達方式進行表述,而這個語義概念往往就是作者想要表達的關鍵概念,體現在詞層面上就是多詞一義現象。同時,因為語言表達的靈活性,一詞多義現象也普遍存在,甚至有時同一個詞在不同語境下的詞性都不盡相同。例如“打”這個詞,在“打架”這個環境下詞性屬于動詞,而在“一打啤酒”這個環境下詞性為量詞。基于詞袋模型的關鍵詞抽取技術無法分辨上述兩個語言環境下的“打”字有何區別,而只是將其根據字面意思進行歸并,采用這種模型抽取出的關鍵詞往往并不是作者本意想表述的關鍵詞。可見,多詞一義和一詞多義是漢語中的一個普遍現象,也是中文文本關鍵詞提取的核心問題和難點。傳統的詞袋模型在處理上述的多義詞和同義詞問題上顯得無能為力。
一詞多義現象使得高維的文本空間更加稀疏,文中希望能將表達同一個意思的詞語合并,來實現文本空間的降維。而多詞一義現象則給自然語言的機器理解帶來極大的困難,解決方法就是對多義詞進行詞義消歧(Word Sense Disambiguation,WSD)。將詞義消歧定義為在給定上下文語境的條件下由機器自動、高效地確定多義詞義項的技術[1]。文中利用《同義詞詞林擴展版》作為語義資源,將文本從詞空間映射到語義空間,對具有相同語義的詞進行并歸,來解決多詞一義問題。同時維護了一個二元(Bigram)詞典,采用一階隱馬爾可夫模型對文本建模,解決多義詞的詞義消歧問題。
國外對于關鍵詞的研究起步較早,Turney[2]等設計了GenEx系統,將遺傳算法和C4.5決策樹機器學習方法用于關鍵詞的提取。Witten等開發了系統KEA,它采用樸素貝葉斯模型對詞語離散的特征值進行訓練,獲取模型的權值。
對于國內研究,經歷了從單純的統計模型到利用語義資源進行語義層面的提取兩個階段。程濤等[3]人提出一種基于《同義詞詞林》的關鍵詞提取算法,該方法只是認為若該詞在詞林中的上下位詞出現則該詞比較重要,并沒有進行多義詞的消歧和同義詞歸并。方俊等[4]提出一種基于語義的關鍵詞提取算法,但是該方法需要計算語義相關度,導致算法復雜性不能令人滿意。
文中提出一種改進的中文關鍵詞提取方法SKEA(Synonym Keyword Extraction Algorithm),針對中文文本出現的多詞一義現象進行詞語在語義空間的歸并;對于多義詞,則建立一階隱馬爾可夫模型進行詞義消歧。同時對在原有KEA(Keyword Extraction Algorithm)方法的基礎上改進了權重計算公式。
KEA是一種用來提取文本文檔關鍵詞的算法,目前版本是KEA 4.0。KEA采用樸素貝葉斯模型的機器學習算法來提取文檔中的關鍵詞。文中利用《同義詞詞林擴展版》等語義資源對KEA進行改進,同時調整了權重的計算方法,提出一種SKEA方法。SKEA候選詞的特征主要從以下幾個方面考慮:
1)SF×IDF公式:傳統的SF×IDF公式中統計詞頻和詞在所有文檔中出現的次數。現在利用同義詞對含有相同語義的詞合并,改進后的公式SF×IDF,其中 SF(Synonym Frequency)代表同義詞詞頻:

式(2)中|D|表示語料庫中的文件總數,|{j:ti∈dj}|表示包含ti的文件數目,如果該詞語不在語料庫中,就會導致被除數為零,因此一般情況下使用公式:

2)位置信息:對于文檔Di,對其分詞后得到詞的集合:

定義詞wi的相對位置:

式中,lj為詞wj的長度,L為文章的總長度。因為開始和結束位置的詞往往更可能是關鍵詞,所以有經驗公式(5)確定位置權重:

同時,標題中出現的詞比內容中的詞更重要,可以賦予比正文中的詞更大的權重。
3)利用詞性信息:關鍵詞往往是名詞或者動詞,所以在文檔預處理階段,需要維護一個停用詞字典,將介詞、副詞等從文檔中過濾掉。同時認為人名、地名、機構名等具有比一般名詞或者動詞更強的表述能力,應該相應地提高權重。
依據以上幾點,基于SKEA的權重計算公式如下所示:

式中,Title,Property,Unique 分別為標題權重、詞性權重和特殊權重(人名地名等信息)。
文中的SKEA方法先根據以上幾種特征方式計算文本中每一個詞的權重,然后根據《同義詞詞林擴展版》和一階隱馬爾可夫模型將文本由詞轉換為語義代碼的表示模式,實現文本的降維。然后在語義空間下將文本的語義表示按合并后的權重遞減排列,排名靠前的為關鍵語義。此時,按預先設定好的關鍵詞個數,取排名序列前N個語義,作為關鍵語義。最后對每個語義,選出組成該語義各個詞中分權重最大的詞,來代表這個語義,即做了一個語義空間到詞空間的反變換。系統框圖如圖1所示。

圖1 SKEA方法系統Fig.1 Block diagram of SKEA
哈爾濱工程大學(簡稱“哈工大”)的《同義詞詞林擴展版》是哈工大信息檢索研究室對《同義詞詞林》原版進行罕用詞剔除、新詞擴充之后的一部漢語大詞表,包含77 343條詞語。其按照樹狀的層次結構把所有收錄的詞條組織在一起,把詞匯分成大、中、小3類,大類有12個,中類有97個,小類有1 400個。每個小類里都有很多詞,這些詞又根據詞義的遠近和相關性分成若干個詞群(段落)。每個段落中的詞語又進一步分成若干個行,同一行的詞語要么詞義相同(有的詞義十分接近),要么詞義有很強的相關性。小類中的段落可以看作第4級的分類,段落中的行可以看作第5級的分類。這樣,詞典《同義詞詞林》就具備了5層結構[3],如表1所示。

表1 詞典結構示例Tab.1 Examples of dictionary structure
以哈工大《同義詞詞林擴展版》為基礎,建立了Access中的數據庫Cilin.mdb。將其5層結構代碼取前3層,即1 400個語義代碼總數。針對每個代碼對應的同義詞詞組,將其拆分,最終將拆分的詞組成詞—代碼對,并順序標號形成詞典數據庫。
一詞多義是一個普遍存在的現象,漢語中多義詞的出現頻率在0.40左右[5]。由于文中采用《同義詞詞林擴展版》作為語義資源,但是該詞典存在一詞多義問題,即一個詞可能存在多個語義編碼詞群中。所以需要對這些多義詞進行語義消歧,確定該詞在文中的唯一語義。
對詞語進行詞義消歧需要獲取待消歧詞語的上下文信息。基于語料庫的統計方法通過計算給定文本中詞匯語義在多義詞上下文中的概率權重,選擇具有最大概率權重的語義作為最佳結果輸出。文中采用一階隱馬爾可夫模型對文本建模[1],并維護一個二元(Bigram)詞典來實現詞義消歧。
2.3.1 隱馬爾可夫模型 隱馬爾可夫模型(Hidden Markov Model,HMM)是一種在自然語言處理領域中被廣泛應用的統計模型。HMM實際上是一個有限狀態機,系統的狀態是不可觀測的,但是到達一個狀態時,可以記錄一個觀測,這個觀測是該狀態的一個概率函數。它可以被描述成一個五元組HMM=〈S,V,A,B,Π〉,有如下定義:
1)N是模型狀態個數,S是模型中的狀態。則有狀態集合:S={S1,S2,S3,…,SN},在文中模型中,定義狀態為《同義詞詞林擴展版》中的小類(3級分類),則有 N=1 400。
2)M表示每個狀態上對應的可能觀測值的個數,V表示每個狀態的觀測值,有觀測值集合:V={v1,v2,v3,…,vM}在文中模型中,觀測值就是文本中的詞。
3)狀態轉移概率矩陣A=[aij],其中

在文中模型中,A是一個1 400×1 400的稀疏矩陣。

4)觀測概率B=[bj(m)],其中在文中模型中bj(k)表示在Sj語義下,t時刻出現詞wk的概率,稱其為發射概率。
5)初始狀態概率Π =[πi],其中

在文中模型中指的是文本第一個詞出現語義Si的概率。
在確定模型參數后,詞義消歧就轉化為從一定觀測值序列的所有可能狀態中,選取概率最大的作為最終的狀態序列問題。可以采用Viterbi算法,即由動態規劃的方法來尋找出現概率最大的隱藏狀態序列。
2.3.2 詞義消歧 針對《同義詞詞林擴展版》的5層結構編碼,取前3層共計1 400個詞義編碼項組成的集合來組成語義空間S,即

在Access數據庫中建立《同義詞詞林》字典,并通過查字典的方法獲得候選詞wi在語義空間的狀態集合,定義上述查字典過程為

式(7)中,對于m=0,即未登錄詞,給定特殊的編碼符號。對m=1,即非多義詞,則無需進行詞義消歧。而對m >1,即多義詞,則通過上述的一階隱馬爾可夫模型進行詞義消歧。
定義消歧過程為

式(8)中,c表示wi所處上下文的語境為根據一階隱馬爾可夫消歧后確定的唯一語義,sunique為未登錄詞給定的特殊語義項。將wi逐一按照上述過程進行語義轉換,最終得到一個文檔在語義空間的映射集合Sfinal。
至此,詞義消歧結束,得到一個文檔從詞空間到語義空間的唯一轉換。
上述的一階隱馬爾可夫模型解決了詞義消歧問題,同時為語義歸并打下了基礎。對于文檔在語義空間的集合Sfinal,同時將其對應的權重和詞關聯起來,得到三維數組集合:

對相同語義編碼的項進行合并,得到一個Sfinal的子集Smean:

同時得到一個合并后的三維數組:

對于?si∈Smean,有式(9)來更新Weight(si):

合并后的項的權重就是合并前各分項權重之和,此時對于Tmean,按Weight遞減進行排序,排名靠前的就是關鍵語義。
此時得到的只是詞在語義空間的描述,而并非所認知的關鍵詞,這就需要做一個語義空間到詞空間的反變換。在合并同語義項之后,對于?si∈Smean,可以得到一個Word的子集Word':


此時按Weight遞減進行排序,就可以得到文本的按權重大小順序排列的關鍵詞。
為了比較SKEA方法和KEA方法在中文關鍵詞抽取方面的優劣,選取一篇有代表性的文章進行對比實驗。針對所選文本,分別采用SKEA方法和KEA方法抽取關鍵詞,同時選取權重排序最大的10個詞作為實驗結果。實驗結果如表2所示。
分析表2中數據可知,SKEA方法和KEA方法抽取的關鍵詞中有9個都是一樣的。而KEA方法因為沒有進行同義詞合并,把“工會”和“總工會”兩個詞都當作了關鍵詞,帶來冗余。而SKEA方法則合并了這兩個詞,作為一個關鍵詞。顯然采用SKEA方法進行詞義合并后抽取的關鍵詞更加準確一些。
為了測試SKEA方法在不同文本領域的性能,從搜狗實驗室文本分類語料庫中選取軍事、體育、政治、藝術這4個大類,每個大類選取50篇共計200篇文章作為測試集;并通過相應領域的專家抽取每篇文章的10個關鍵詞,與KEA方法進行比較。

表2 單文本實驗結果Tab.2 Experiment result of single document
定義準確率為

同時采用外部評測方法,分別用SKEA和KEA方法提取25個關鍵詞作為文章的特征向量進行文本分類。分類器采用支持向量機(SVM)分類器,核函數采用線性核,參數為默認參數,使用交叉檢驗得到分類準確率。
1)由表3可知,在藝術、軍事、政治等領域,SKEA準確率明顯好于KEA方法。而體育領域由于《同義詞詞林》定義同義詞的問題,例如某篇關于體操的報道中,提到了高低杠、平衡木等項目名稱,而《同義詞詞林》則將這些同一體育項目的詞都定義為同義詞/近義詞,此時出現了過合并現象。而這些過合并導致SKEA方法和KEA方法在體育大類的表現基本差不多甚至略有不如。
由于軍事政治領域中的專有名詞出現較多。文中采用中國科學院ICTCLAS方法,能準確識別文章中出現未登錄專有名詞,諸如人名、地名、國家名、機構名等。本方法給予這些專有名詞較大的權重,使其比較容易成為關鍵詞。實驗結果證明這個方法行之有效,在軍事和政治兩個領域的準確率高于體育和藝術領域。

表3 提取10個關鍵詞時內部評測實驗結果Tab.3 Experimental results in the extraction of 10 keywords
2)由表4可知,采用SKEA方法對文本進行特征選擇后SVM分類器的分類效果好于KEA方法。這是因為SKEA解決了一詞多義和多詞一義的問題,使得所選出的作為關鍵詞的特征向量對于文章類別的表述能力更強,即分類效果更好。從表4中可以看出,SKEA+SVM方法平均準確率比KEA+SVM方法高2.6%。

表4 提取25個關鍵詞時外部評測實驗結果Tab.4 Experimental results in the extraction of 25 keywords
針對KEA方法進行改進,提出一種SKEA方法。使用哈工大《同義詞詞林擴展版》作為語義資源,將文檔從詞空間映射到語義空間。針對漢語中的一詞多義和多詞一義現象,建立了一階隱馬爾可夫模型對多義詞進行消歧,而后對映射到語義空間的文檔進行語義合并;對合并后的語義代碼按權重排序,最后做語義空間到詞空間的反變換來獲取關鍵詞序列。實驗結果證明內部評測中SKEA方法比KEA方法平均準確率高出5.2%,外部評測高出2.6%,效果滿意。
由于文中詞義消歧模型采用的是基于一階隱馬爾可夫模型,但是一個多義詞的詞義并不只有前一個詞確定,而是由該詞所在的整句話的非噪聲詞確定的。采用更準確的模型來提高詞義消歧精度是下一步研究的主要內容。
[1]丁江偉,劉挺,盧志茂,等.隱馬爾可夫模型和貝葉斯模型詞義消歧對比研究[C]//全國第七屆計算語言學聯合學術會議論文集.北京:清華大學出版社,2003:214-220.
[2]Turney P.Learning to extract keyphrases from text[R].Technical Report ERB-1057.National Research Council,Institute for Information Technology,1999.http://wenku.baidu.com/5ala70ebb8f67clcfad6b8f0.html
[3]程濤,施水才,王霞,等.基于同義詞詞林的中文文本主題詞提取[J].廣西師范大學學報:自然科學版,2007,25(2):145-148.CHENG Tao,SHI Shui-cai,WANG Xia,et al.Chinese keywords extraction the Chinese based on CILIN[J].Journal of Guangxi Normal University:Natural Science Edition,2007,25(2):145-148.(in Chinese)
[4]方俊,郭雷,王曉東.基于語義的關鍵詞提取算法[J].計算機科學,2008,35(6):148-154.FANG Jun,GUO Lei,WANG Xiao-dong.Semantically improved automatic keyphrase extractionp[J].Computer Science,2008,35(6):148-154.(in Chinese)
[5]魯松,白傾,黃雄,等.基于向量空間模型的有導詞義消歧[J].計算機研究與發展,2001,38(6):663-667.LU Song,BAI Qing,HUANG Xiong,et al.Supervised word sense disambiguation based on vector space model[J].Journal of Computer Research and Development,2001,38(6):663-667.(in Chinese)
[6]李鵬,王斌,石志偉,等.Tag-TextRank:一種基于 Tag的網頁關鍵詞抽取方法[J].計算機研究與發展,2012,49(11):2345-2354.LI Peng,WAGN Bin,SHI Zhi-wei,et al.Tag-TextRank:a webpage keyword extraction method based on tags[J].Journal of Computer Research and Development,2012,49(11):2345-2354.(in Chinese)
[7]柯逍,李紹滋,曹冬林.基于相關視覺關鍵詞的圖像自動標注方法研究[J].計算機研究與發展,2012,49(4):846-855.KE Xiao,LI Shao-zi,CAO Dong-lin.Automatic image annotation based on relevant visual keywords[J].Journal of Computer Research and Development,2012,49(4):846-855.(in Chinese)
[8]楊潔,季鐸,蔡東風.基于聯合權重的多文檔關鍵詞抽取技術[J].中文信息學報,2008,22(6):75-79.YANG Jie,JI Duo,CAI Dong-feng.Keywords extraction in multi-document based on united weight technology[J].Journal of Chinese Information Processing,2008,22(6):75-79.(in Chinese)
[9]WAN Xiao-jun,YANG Jian-wu,XIAO Jian-guo.Towards an iterative reinforcement approach for simultaneous document summarization and keyword extraction[C]//Proceedings of the 45th Annual Meeting of the Association of Computational Linguistics.Stroudsburg:ACL,2007:552-559.