劉 典,李石君
(武漢大學 計算機學院,湖北 武漢430072)
目前關鍵詞的主要應用對象為人類用戶和機器用戶。在面向人類用戶的應用中,需要提取的關鍵詞能簡要的概括文本的內容,具有較高的可讀性;在面向機器的應用中,關鍵詞具有較高的代表性。例如,文本分類中,根據一定的分類體系和分類標準,對文本進行分類,判定文本關鍵詞是其中一個重要依據。
關鍵詞提取的研究與不同學科和技術相結合形成了一系列行之有效的方法,可劃分為3類:
(1)基于統計特征的關鍵詞自動提取,主要包括詞頻,共出現頻率,TF-IDF 等統計信息。Salton 提出了TF-IDF算法[1]。詞頻 (TF)表示某個詞語在文檔中出現的頻率,逆文檔頻率 (IDF)度量的是詞語的普遍重要性。TF-IDF用詞頻與逆文檔頻率的乘積來表示。
(2)基于機器學習的關鍵詞提取,包括遺傳算法,支持向量機[1],最大熵模型,條件隨機等。例如,Turney提出的GenEx算法利用遺傳算法訓練相關參數,用參數給每個候選詞打分,提取出關鍵詞。Kea算法[2]則是一個基于貝葉斯模型的非常有效的算法,從已標注關鍵詞的文檔中學習,根據學習的模型從無標注文檔中提取關鍵詞。Kea算法主要用到TFIDF和詞首次出現位置兩個特征。
(3)基于語義的關鍵詞提取,包括詞性,語法,句法,語義依存等。利用基于語義的方法消除多義詞有歧義的詞義,提高提取的關鍵詞質量。文獻 [3]利用詞語的語義相似度合并候選集中的同義詞,提高關鍵詞提取的效率。
在上述關鍵詞提取算法中,基于統計特征的算法方便理解,計算簡單,但是并不是所有關鍵性的詞語都滿足統計特征,一些出現頻率不高的有重要意義的詞語就會被忽略。有部分基于機器學習的算法充分利用了各種先驗知識,但由于過度擬合,使得不具有普適性。基于語義的方法[4],用詞語的語義來衡量詞語重要性,這能大大提高提取的關鍵詞的可讀性,但在博大精深的漢語中,可以使用多樣化的句式和詞語來表達同樣的內容,甚至所用詞語不是近義詞,這使得同主題的詞語大部分未能關聯,導致詞義在關鍵詞提取中不能發揮應有的作用。
本文提出一種基于用戶反饋的關鍵詞打分策略。首先根據用戶反饋的關鍵詞,提取語義相似或相關的候選詞,然后根據這些候選詞與關鍵詞的詞語擴展度給候選詞的用戶反饋值打分,利用候選詞的統計特征信息和用戶反饋值的線性組合作為該詞的權重,生成文檔的關鍵詞。
詞語相似度[5]描繪的是文本中兩個詞語之間的可替換程度。如果兩個詞語可以在不改變文本語義的情況下互相替換,那說明它們之間的詞語相似度很高,比如, “開心-高興”。一般來說,詞語相似度的取值范圍為 [0,1],兩個在任何文本中都不能替換的詞語之間的詞語相似度為0,詞語與它本身的詞語相似度為1。
詞語相關度[6]描繪的是文本中兩個詞語相互關聯的程度。如果兩個詞語總是同時出現在同一個上下文中,說明這兩個詞語的相關度很高。兩個詞語可能不存在相似關系,但可能通過某種關聯具有相關關系,如 “跑步一健身”。因此,我們用語義擴展度來描述兩個詞語之間的關系,它由詞語相似度和詞語相關度的線性組合而成。通過語義擴展度,我們可以將具有一定程度的語義相似和相關的詞語組成在一起共同來表達文章的某一主題內容。
《同義詞詞林》記錄了一個詞語的同義詞和它一系列的同類詞[7]。哈工大在原版的基礎上,進行了擴展和修改,最終形成現階段最常用的同義詞詞林擴展板。
同義詞詞林的詞典分類層級體系如圖1所示。越是底層的級別,對詞義的刻畫越細化。每個詞語在詞典中對應一個編碼,編碼由該詞語在每一層的代碼和一個標記位組成。每一層的代碼共同記錄了詞語從根節點到葉子節點的路徑。最后一個標記位有3個值: “==”, “#”, “@”,分別表示詞語同義,詞語相關,詞語獨立。

圖1 同義詞詞林的結構
用戶反饋包括顯式反饋和隱式反饋。顯式反饋是指通過用戶主動評價某一事物或結果來反映用戶的認同度。用戶對主題特征詞的評價有兩個選項,一種是同意,一種是反對。同意越多表示該關鍵詞代表了用戶對它關注度越高,類似的,反對越多表示用戶不需要這方面的信息。隱式反饋是指在用戶沒有主動評價的情況下,通過對用戶的行為進行分析和估計,推測出用戶的認同度。本文涉及到的用戶反饋都指顯式反饋。
定義1 用戶反饋庫:記錄主題下的關鍵詞和用戶對生成關鍵詞的評價。每次生成關鍵詞時,把庫中沒有記錄的關鍵詞添加到庫中。初始化時,庫中僅包含主題特征項。
定義2 用戶反饋值:用戶反饋庫的反饋詞的用戶反饋值是量化用戶對該反饋詞的關注度以及準確度的評價。
用戶反饋庫的結構可表示為

式中:WordSet——用戶反饋庫中所有反饋詞的集合,w——反饋詞,Word(w)表示反饋詞的詳細結構,word-Id——反饋詞的編號,是對反饋詞的唯一標識,score——反饋詞的用戶反饋值,初試化時值為1。
基于用戶反饋的關鍵詞提取的主要思想是據用戶反饋結果優化關鍵詞提取。使用用戶反饋庫量化用戶對關鍵詞的反饋。在特征選擇中,將用戶反饋庫記錄的用戶反饋值作為計算詞語權重的影響因子;用戶對生成的關鍵詞做出評價后,據詞語的語義擴展度更新用戶反饋庫;關鍵詞生成產生的新詞會擴充到用戶反饋庫。圖2為關鍵詞提取的系統流程。

圖2 關鍵詞提取的系統流程
預處理中的中文分詞用ICTCLAS[8]來完成。去掉一些停用詞,得到粗略的候選詞集。利用文獻 [9]提出的根據計算詞語相似度來合并同義詞,合并候選詞集中的同義詞,形成最終的候選詞集。
詞語相似度的計算是自然語言處理相關領域的一個基礎性工作,已經形成了很多卓有成效的方法。計算方法主要有:①以大規模的語料庫為基礎的語義相似度計算[10];②以詞素為單位的相似度計算;③以余弦相似度為代表字面相似度計算。本文選用的第一種方法,根據文獻 [11]提出的基于同義詞詞林的方法來計算。它的主要思想為先在同義詞詞林中獲取要計算相似度的兩個詞匯對應的編碼。然后,判斷兩個詞匯的編碼在5 層結構中的哪一層分支,根據分支層的兩個義項的語義距離,計算出相似度。一般來說,距離越近,相似度越高。語義相似度計算公式如下

式中:Sim ——詞語相似度 (0<Sim <1);d——系數,由兩個詞匯所對應的編碼在哪一層分支所決定;n——分支層節點的總個數;k——分支間的距離。
采用文獻 [8]提出的方法計算詞語相關性

詞語擴展度的計算方法,線性結合詞語相似度的計算和詞語相關性的計算,如下

式中:θ——調節因子,本文實驗中θ取0.5。
用戶反饋庫有很多語義相近或相關的詞語,通過用戶反饋對關鍵詞的用戶反饋值進行打分時,根據詞語擴展度,對與該關鍵詞語義相似的關鍵詞使用不同程度的打分。
用戶反饋分析的基本思想:根據用戶的反饋信息,利用式 (2)計算詞語擴展度。引入閥值μ,篩選用戶反饋庫中與反饋詞語擴展度較高的詞語集合ExpSet,對這些詞語的用戶反饋值做相應的修正。根據用戶反饋的性質,用戶反饋值的修正公式如下

式 中:w——用 戶 反 饋 詞;score——w 的 用 戶 反 饋 值;exp——w 與wi的詞語擴展度;wi∈ExpSet(w);flag 為1表示正例反饋,0表示反例反饋。
根據數形結合的思想,描繪函數圖像大致的趨勢模擬用戶反饋函數。假設X 軸表示反饋前的值,Y 軸表示反饋后的值。由前文可知,用戶反饋值的數值范圍在0到2之間,X 軸和Y 軸的取值范圍都應為 [0,2]。正例反饋的函數圖像應在y=x上方。反例反饋的函數圖像應在y=x下方。用漸進式曲線來模擬,函數圖像的變化趨勢如圖3所示。

圖3 用戶反饋函數的圖像趨勢
由圖像得到的啟發,設計如下函數計算用戶反饋值

綜上所述,把式 (5)代入式 (6)可得,用戶反饋的修正公式為

特征的選擇決定候選詞的計算的權值,因此,有效的特征選擇可以提高關鍵詞提取的質量。本文選取詞頻TFIDF,詞語出現的位置,詞語的詞性以及詞語的用戶反饋值,特征描述信息見表1。

表1 統計信息特征
詞語TF-IDF計算公式為

式中:TFIDF(w,doc)——詞w的TFIDF值;tf(w,doc)——詞語w的詞頻TF;uw——含有w的文檔數;U——總文檔數。
首次出現位置firstArise的計算方法為

詞跨度span的計算方法為

式中:L——文檔包含的詞匯的總數;從文檔開始,給每個詞匯標上序號,從1到L,Posfirst——詞語w 首次出現在文檔中的位置的序號,Poslast——詞語w 最后一次出現在文檔中的位置的序號。
詞語重要位置inTitle的計算方法

在用戶反饋庫中查詢詞語w 的用戶反饋值時,如果使用詞語的完全匹配,會出現詞語重復,影響效率。所以,使用基于詞語相似度的查詢。根據詞語間的相似度,在用戶反饋庫里篩選出與詞匯w 的相似度大于閥值t 的詞匯集(一般取t=0.9),取詞匯集中用戶反饋值與初始值的差距最大的值。查詢詞語w 的用戶反饋值的算法如算法1所示。

算法1:查詢詞語的用戶反饋值輸入:詞語w,用戶反饋庫WordSet= {m1,m2,…,mn}輸出:詞語w 的用戶反饋值S SimSet←S←1;for i=1to n do //compute the word similarity between w and mi sim←Sim (w,mi);if sim >=t then add miat the end of SimSet endif endfor if SimSet is not NULL then S ←compute max (abs(score-1))in SimSet endif return S;
綜合考慮各項特征因素,提出詞語w 的權重計算方法

式中:a1+a2+a3+a4=1。
綜上所述,按照式 (8)~式 (11)分別計算候選詞的各個統計信息特征的值,根據式 (12)計算候選詞的權重,輸出前n個權重最高的關鍵詞。
我們將關鍵詞提取算法提取的關鍵詞與文檔標注的關鍵詞做匹配,用這樣的方法來評估算法。如果我們用精準匹配來匹配關鍵詞,不考慮詞語的語義信息,匹配的結果不準確。比如,文檔標注的關鍵詞是 “通貨緊縮”,算法提取的關鍵詞是 “通縮”,該方法會認為兩者是不同的,其實,“通縮”是 “通貨緊縮”的縮寫。所以,在匹配關鍵詞時,用詞語相似度是否大于閥值來衡量是否相同。
關鍵詞提取比較常用的評價指標包括:查全率R,查準率P和綜合指標F-measure。具體計算公式分別為

式中:c為關鍵詞正確匹配的個數;all為提取的關鍵詞的總數;key 為文檔標注的關鍵詞個數。
本實驗選定財經領域為示例。我們從網上下載了100篇已標注關鍵詞的財經類文章。為了驗證基于用戶反饋的關鍵詞提取方法的有效性,進行了這兩類實驗:
(1)本文算法的對比實驗。將進行無任何用戶反饋和有用戶反饋的對比,以驗證用戶反饋的有效性。在實驗的100篇文章了隨機選擇40篇文章進行用戶反饋,剩余60篇文章作為測試集。抽取的關鍵詞個數分別取5,7,9,11進行4組實驗,結果見表2。

表2 是否進行用戶反饋的對比實驗結果
實驗結果表明,進行用戶反饋后的方法提取效果比沒有用戶反饋的方法提取效果更好。隨著提取關鍵詞個數的不斷增加,特別是當個數大于7 時,查準率有明顯下降,查全率緩慢上升甚至有所下降。這是因為文檔標注的關鍵詞個數的平均值為6.2,提取的關鍵詞個數超出關鍵詞平均值時,生成了部分不準確的關鍵詞,影響了評估結果。
(2)本文算法與Kea算法的對比實驗,以驗證本文提出的方法有改進的效果。將下載的文章按7∶3的比例分為訓練集和測試集,抽取的關鍵詞個數分別取5,7,9,11進行4組實驗。選定F值作對比數據,結果如圖4所示。

圖4 本文方法與Kea算法的對比實驗
由圖4中實驗數據分析可得,F 值的變化趨勢和實驗一是相同的,在關鍵詞個數為7 時,取極大值。總體上,相對于Kea算法,基于用戶反饋的關鍵詞提取的準確度更高,證明了本文算法是有改進的效果。
根據以上兩個實驗,基于用戶反饋的關鍵詞提取確實有一定的改進效果。使用 《同義詞語林》計算詞語的相似度,合并候選詞中的同義詞,有效的減少了關鍵詞中同義詞的出現。基于用戶反饋的方法,有助于提取到出現頻率很小但有重要意義的關鍵詞。然而,從兩個實驗的實驗數據可知,該方法還有提升空間。一是同義詞詞林在面向專業領域術語時,規模還有待擴大。二是本文僅使用了部分統計信息特征,忽略了候選詞的詞性特征。
根據Kea算法提出的文本特征選擇,提出一種基于用戶反饋的關鍵詞提取方法。利用 《同義詞詞林》計算詞語相似度和詞語相關性,對關鍵詞候選集進行同義詞合并。提出用戶反饋庫和用戶反饋值量化用戶對關鍵詞的反饋,用戶反饋值作為候選詞權重計算的一個影響因子。把詞語所在位置,TFIDF等統計信息特征和用戶反饋值結合起來,計算詞語的權重。考慮用戶反饋后,生成的關鍵詞會更符合用戶對某一特定領域的關注點。實驗驗證了較好的抽取效果。實驗發現該方法在提取關鍵詞上有改進空間。將對用戶反饋函數做進一步優化,挖掘具有代表性的關鍵詞,提高算法穩定性。
[1]LIANG Weiming.Chinese keyphrases extraction technique[D].Shanghai:Shanghai Jiao Tong University,2010 (in Chinese).[梁偉明.中文關鍵詞提取技術 [D].上海:上海交通大學,2010.]
[2]Frank E,Paynter G W.Domain-specific keyphrase extraction[C]//Proceedings of 16th International Joint Conferenceon Artificial Intelligence,1999:668-673.
[3]JIANG Changjin,PENG Hong,CHEN Jianchao,et al.Keywords extraction algorithm based on combined word and sunset[J].Application Research of Computers,2010,27 (8):2853-2856 (in Chinese).[蔣昌金,彭宏,陳建超,等.基于組合詞和同義詞集的關鍵詞提取算法 [J].計算機應用研究,2010,27 (8):2853-2856.]
[4]WANG Lixia,HUAI Xiaoyong.Semantic-based keyword extraction algorithm for Chinese text [J].Computer Engineering,2012,38 (1):1-4 (in Chinese).[王立霞,淮曉永.基于語義的中文文本關鍵詞提取算法 [J].計算機工程,2012,38 (1):1-4.]
[5]WANG Teng,ZHU Qing,WANG Shan,et al.Statements verification based on semantic similarity [J].Chinese Journal of Computers 2013,36 (8):1668-1681 (in Chinese).[王騰,朱青,王珊,等.基于語義相似度的Web信息可信分析 [J].計算機學報,2013,36 (8):1668-1681.]
[6]WANG Yi,WANG Xiaolin.Algorithm forwords’semantic relevancy based on modified algorithm for sememes’relevanc[J].Journal of the China Society for Scientific and Technical Information,2012,31 (12):1271-1275 (in Chinese). [王義,王小林.基于改進的義原關聯度算法的詞語相關度計算[J].情報學報,2012,31 (12):1271-1275.]
[7]LIU Dandan,PENG Cheng,QIAN Longhua,et al.The effect of TongYiCi CiLin in Chinese entity relation extraction[J].Journal of Chinese Information Processing,2014,28(20):91-99 (in Chinese).[劉丹丹,彭成,錢龍華,等.《同義詞詞林》在中文實體關系抽取中的作用 [J].中文信息學報,2014,28 (20):91-99.]
[8]ZHANG Huapin,LIU Qun.Institute of computing technology,Chinese lexical analysis system [S].2009 (in Chinese).
[張華平,劉群.中國科學院計算技術研究所漢語詞法分析系統ICTCLAS2009版 [S].2009.]
[9]LIU Duanyang,WANG Liangfang.Extraction algorithm based on semantic expansion intergrated with lexical chain [J].Computer Science,2013,40 (12):264-269 (in Chinese). [劉端陽,王良芳.結合語義擴展度和詞匯鏈的關鍵詞提取算法[J].計算機科學,2013,40 (12):264-269.]
[10]LIU Qun,LI Sujian.Word similarity computing based on HowNet[J].Computational Linguistics &Chinese Information Processing,2007,31 (7):59-76 (in Chinese).[劉群,李素建.基于 《知網》的詞匯語義相似度計算 [J].計算機語言學及中文信息處理,2007,31 (7):59-76.]
[11]TIAN Jiule,ZHAO Wei.Words similarity algorithm based on TongyiciCilinin semantic web adaptive learning system [J].Journal of Jilin University,2010,28 (6):602-608 (in Chinese).[田久樂,趙蔚.基于同義詞詞林的詞語相似度計算方法 [J].吉林大學學報,2010,28 (6):602-608.]