胡 遷 黃青松,2 劉利軍* 李帥彬 馮旭鵬
1(昆明理工大學信息工程與自動化學院 云南 昆明 650500)2(昆明理工大學云南省計算機技術應用重點實驗室 云南 昆明 650500)3(昆明理工大學教育技術與網絡中心 云南 昆明 650500)
關鍵詞有助于提高文本分類、信息檢索等自然語言處理任務的性能。近年來,隨著即時聊天、網購咨詢、自動問答系統等社交網絡的迅猛發展,積累了大量的對話特性文檔,對話記錄隱含了人們聊天的情景和目的,反映了對話者的興趣。從對話中抽取關鍵詞可以用來總結、組織、檢索對話內容,也可被用于用戶個人服務、廣告推薦等。相較于傳統長文本,這類數據具有對話性、短文本、結構松散等特點,導致關鍵詞難以遴選[1]。因此,對話文本的特性給關鍵詞抽取帶來了挑戰和意義。
傳統關鍵詞抽取主要集中在網頁檢索、科技文獻和文本文檔等領域,方法主要分為有監督方法和無監督方法。有監督方法采用人工標注的關鍵詞文檔訓練分類器得到關鍵詞。Neuyen等[2]針對論文,利用論文的結構信息、詞性、詞語后綴等特征,提高了關鍵詞分類器性能。Meng等[3]基于神經網絡的編碼解碼預測模型來生成關鍵詞,文中用循環神經網絡模型結合注意力和重復機制來訓練模型,模型解決以往方法只選擇文中出現的詞作為關鍵詞和不能捕獲文檔真正的語義含義的問題。有監督方法缺點:需要標注關鍵詞。無監督方法主要計算詞的顯著性權值,然后排序推薦。Mihalcea等[4]提出基于圖的排序算法TextRank。該方法將文檔中詞的共現關系構造詞匯圖,然后計算各個節點的權重得到關鍵詞。Liu等[5]從隱含主題的角度出發,通過在Wikipedia語料上進行主題模型訓練,將候選詞與文檔的主題層相似度作為該詞的顯著性權值。在此基礎上,在偏置PageRank方法中引入隱含主題的權重,提出了Topic PageRank方法,該方法效果優于只利用LDA的方法和基于TF-IDF的方法,這驗證了在基于圖排序的關鍵短語抽取算法中引入文檔主題的可行性。文獻[6-7]計算詞語義相似度構建詞匯鏈,然后結合詞頻或主題信息進行關鍵詞抽取,但方法受到知識庫的限制。由于對話文本特點,采用傳統的關鍵詞抽取方法是否有效值得懷疑。
對話語料的關鍵詞抽取文獻研究較少。劉銘等[8]針對會議記錄,提出了兩種無監督的關鍵詞抽取算法。在TF-IDF框架下,加入詞性過濾、詞聚類和句子重要性得分提取關鍵詞。同時研究基于圖的迭代方法,分別考慮了詞與詞、詞與句子的圖類型得到詞的權重,句子與句子、句子與詞的圖類型得到句子的權重。實驗結果表明簡單的TFIDF方法優于基于圖的方法,而且詞性的過濾和句子重要性得分有助于關鍵詞抽取。結果還表明基于共現詞聚類的聚類方法對結果沒有明顯幫助,因為共現的聚類沒有拾取詞的語義相似性。Song等[9]針對英語和韓語會議記錄提出了實時關鍵詞抽取方法,方法主要基于圖,考慮歷史句子中與當前句子相關性,以及遺忘曲線跟新歷史句子生成的圖來得到當前句子的關鍵詞。但圖邊權重利用是否在窗口中共現置為1或0,沒有考慮詞間的語義關系。Liu等[10]針對會議記錄提出一種有監督的關鍵詞抽取方法,其考慮對話數據特點,利用最大熵分類器決定某個一元詞是否為關鍵詞,同時考慮了二元詞的擴展。缺點是需要標注關鍵詞訓練分類器。對話語料中標注好關鍵詞的文檔很匱乏。Chen等[11]針對課程講座語料提出了兩步法提取關鍵詞,首先利用PLSA模型計算候選詞語的主題一致性和重要性(TCS),方法結合目標文檔、按詞搜索的文檔和維基文檔綜合計算候選詞的TCS。其次,根據詞語的TCS排序,前M個作為正樣本,其他作為負樣本,然后結合詞的頻率、語義等特征訓練SVM分類器。Yeh等[12]利用語義分析分好主題類文檔來訓練LDA模型,實驗表明LDA模型比SVM模型有更高的準確率。訓練模型時如何找辨識度高的詞是關鍵。PLas等[13]針對對話研究考慮語義,他們采用兩種詞典資源:EDR和WordNet來計算詞間的語義相似性抽取關鍵詞,并同時對比了兩種詞典的效果,但方法受詞典限制。Noh[14]根據詞語的維基百科語義信息,計算詞語與本句和全部句子的語義相似性,抽取與對話語義更相關的詞語。文獻[15]首先利用LSA獲取語義信息,然后對對話文本進行分割,最后得到摘要。李天彩等[16]針對短文本信息流提出新的用戶建模方法。首先將用戶發表內容合并,然后將內容分割為固定長度的詞鏈,在分割處添加用戶名構造上下文關系,最后結合外部數據,使用Skip-gram模型進行訓練得到用戶的向量表示。將和用戶向量最相似的詞語作為用戶標簽。房冠南[1]提出一種針對對話語料的自動標簽推薦方法,該方法在TF-IDF基礎上,考慮對話者權重(對話者說出的句子數占整個對話包含句子的比重,對話者說出的次數占整個對話包含詞數的比重,對話者說出的實詞數占整個對話的實詞數)、句子重要程度和句子長度等因素,進行關鍵詞抽取,然后通過規則擴展二元關鍵詞,最后在同一尺度下排序得到top-n關鍵詞進行標簽推薦。方法實驗證明了TFIDF,POS過濾、基于實詞的對話者權重、句子重要、句子長度五種因素對關鍵詞抽取有用。同時文中指出所提方法的缺點是抽取關鍵詞僅僅考慮詞頻、未考慮詞的語義關聯。
綜上所述,本文所提方法聚焦語義和主題信息,結合詞語義聚類、詞性權重、句子主題相關性等多權重來抽取關鍵詞,簡稱KSeL方法。最后,TFIDF方法和KSel得到的關鍵詞作為節點,基于語義建立圖,通過圖迭代得到最終的關鍵詞,簡稱為GKSeL方法。
本文所提方法的流程圖如圖1所示。首先,對中文語料和對話語料進行預處理、訓練得到詞向量和主題模型。其次,計算給定文檔句子的主題相關度,詞與所有句子的相似度,得到詞與文檔語義相似度權重。然后,用詞的詞性權重、詞的語義相似度、詞語義聚類權值結合得到基于語義方法(KSeL)的候選關鍵詞。最后,嘗試將KSeL所得關鍵詞與TFIDF關鍵詞利用基于圖的方法進行混合篩選(簡稱GKSel方法),期望結合語義和詞頻得到關鍵詞。

圖1 基于語義與主題的用戶標簽生成方法
對話語料含有很多語氣詞和符號,為了提高實驗的效率和精度需要做分詞和去停用詞等預處理工作。為了方便理解,先給出文中所用的定義。
定義1(詞的向量表示)W={d1,d2,…,dn},其中n表示詞的向量維度,每個詞的維度相同,di表示詞對應i維上的值。
定義2(會話表示)DL={s1,s2,…,sm},其中m表示對話中句子的個數,不同對話文本含有的句子的個數不一定相同,si表示文中第i個句子。
定義3(主題表示)T={t1,t2,…,tk},其中ti表示組成主題的詞,k表示詞的個數,ti表示主題第i個詞。
定義4(句子表示)S={w1,w2,…,wm},其中m表示句子的個數,不同句子含有詞的個數不一定相同,wi表示文中第i個詞。
Yunseok Noh[14]闡述含有信息的語句很大程度上與主題相關,反之沒有信息的語句包含的詞多是無意義或習慣性詞語,文獻[8,17]都表明重要的句子通常包含關鍵詞,關鍵詞也經常出現在重要句子中。因此考慮句子的主題權重,首先通過訓練的主題模型得到給定對話文檔的主題T={t1,t2,…,tk},然后,計算文檔中每個句子S={w1,w2,…,wm}與主題T的相似度。相似度WeightSi計算如下:
(1)
如果一個詞的語義與對話語句的語義越相似,則該詞越能夠代表該句子表示的語義信息,文獻[14]利用ESA表示詞的語義信息,然后基于此計算詞的局部權重和全局權重。由此,方法考慮詞語與文本中所有句子的相似,得到詞的全局相似值作為詞的語義權重。詞與句子的相似性WeightWi計算如下:
(2)
式中:w1代表候選關鍵詞,w2i代表含有m個詞的句子中的第i個詞。詞與句子相似度高,但句子與對話主題不相關,則詞不能很好地代表對話內容。因此,考慮詞語與句子相似性的同時需要考慮句子的主題關聯性。句子與主題關聯性越高,則句子越能夠代表主題。最終得到候選關鍵詞的語義相似度值WDscore計算如下:
(3)
式中:m表示對話文本含有的句子的個數,WeightWi和WeightSi分別由式(1)-式(2)求得,即WeightSi代表句子i與主題的相似權重,WeightWi候選關鍵詞與句子i的語義相似度。
對話過程中可能會反復提到某個詞來強調意圖,同時,會話可能用不同的詞代表相似的意思,對話所含詞語中,如果某幾個或多個詞語相似,至少說明文本中涉及該類信息。所以本文方法根據詞的語義相似度進行聚類,根據得到的類中詞語的個數占文本總詞數作為該類詞的語義聚類權重。本文采用文獻[18]中的快速聚類方法,該方法假設聚類中心周圍都是密度比其低的點,同時類中這些點距離該聚類中心的距離相比于其他聚類中心最近,對于每個數據點i,需要計算兩個量:局部密度ρi和高于i點密度的最小距離δi。
局部密度定義如下:
(4)
當χ<0時;χ(x)=1,否則等于0。這里dc是一個截斷距離,這里選擇比較魯棒性,因此算法中dc定義為文中所有點的相互距離由小到大排列占總數2%的位置的詞間距離。最小距離定義如下:
(5)
比i點密度高的所有點中,與i點距離最近的點的距離表示為δi,對于最大密度的點其δi為所有點之間距離的最大值。然后給定兩δmin和ρmin,同時大于這兩個數的點作為聚類中心點。確定聚類中心后,剩下的點的標簽按照以下原則分配:當前點的類別標簽和高于當前點密度的最近點的標簽一致。據此得到候選詞w的聚類權重ClusterW如下:
(6)
式中:num1是候選詞所屬類中詞語的數目,num是所有候選詞數目,同一聚類中所有詞擁有相同的語義聚類重要度。
文獻[1,8,10]通過詞性過濾只保留動詞、名詞、形容詞作為候選詞,其實驗表明這種過濾對關鍵詞抽取有幫助,所以,方法考慮詞性的權重PosWeight,采用文獻[19]中定義的不同詞性的權重值,如:動詞為0.3,形容詞為0.5,副詞為0.3,名詞為0.8等,其他詞性重要度請參考文獻。
本文方法考慮詞性權重、詞語義聚類權重(得分)、詞的語義相似度權重(得分),最終得到詞權重Wscore計算如下:
Wscore=PosWeight×(ClusterW+WDscore)
(7)
上文公式中詞間距distance()和dij采用余弦距離公式,根據文獻[20]詞語可以由一堆實數的向量形式表示語義信息,本文詞向量采用Skip-gram方法得到,如W1{x1,x2,…,xn},W2{x1,x2,…,xn},則詞間距離計算公式如下:
(8)
文獻[8]的實驗結果表明基于TF-IDF方法抽取關鍵詞優于基于圖的方法,圖中邊權重主要考慮TF-IDF。本文主要考慮語義抽取關鍵詞。但是,因為人們對關鍵詞理解有不同的認知,基于語義的關鍵詞概括性可能不如基于頻率抽取的關鍵詞,反之依然。所以,考慮將兩種方法的抽取的關鍵詞混合,然后基于圖的迭代計算詞的權重,最后選出TopN個詞,期望能綜合利用到詞的語義和頻率信息。
本文中用G=(V,E)代表混合候選詞語構成的圖,V代表詞語節點,E是邊的集合,對于每個節點vi,In(vi)代表指向它的節點集合,Out(vi)代表節點vi指向的節點集合。權重Wij代表節點間邊的權重。Wij計算如下:
(9)
distance(vi,vj)由式(8)得到,Wij為0表示兩詞無邊鏈接,節點vi的最終權重計算公式如下所示:
(10)
式中:d取0.85。S(Vi)的初始值定義為:如果該點的詞語同時出現在TF-IDF和所提方法中為2,否則為1。權重計算是個迭代過程,直至收斂或達到一定迭代次數停止,最后選取權重最高的N個詞。
實驗使用的數據集來自訪談節目的對話,試驗前對語料進行分詞、去停用、清洗特殊符號等預處理工作,盡可能地使其包含一個主題。我們招募了8名學生進行人工標注,兩人一組標注相同的對話,共標注了1 000個對話,每個人的對話標注的標簽不少于5個,標注者可以任意選擇他們認為重要的詞作為關鍵詞。
訪談對話示例如圖2所示。

圖2 訪談對話示例
人工標注對話的例子如表1所示。

表1 對話標注例子
不同的標注者看待問題的角度不同,所以對于詞的重要程度的認識也不相同,導致標注的關鍵詞不一致。我們抽樣200個對話來計算不同標注者的一致性,人工標注分析采用嚴格匹配的方式,兩個標注者對于同一對話的一致率是32%。
為了比較算法的性能,我們使用TFIDF和基于圖的TextRank方法作為對比方法。表2中列出了針對同一段對話,四種方法抽取的關鍵詞示例。

表2 不同方法關鍵詞抽取結果
根據抽取關鍵詞結果比較,KSeL闡述的對話主題更完善,TFIDF的闡述缺少主題,表達不夠清楚,KSeL和TFIDF同時出現了“錢”和“房子”兩個關鍵詞,說明對話很大程度上與房子和錢有關,TFIDF可以理解演員之間買賣房子等,KSeL可以理解為魯豫王凱倆人討論畢業和房子的故事,同時牽涉錢的問題,對原話表達更全面清楚。TextRank和KSeL比較抽取結果雖然很多相似,但結合原對話分析,TextRank缺少了“畢業”、“坎兒”、“日子”等描述生活狀態的詞,多了一些“覺得”、“沒有”、“想到”等模糊詞語。GKSeL是由TFIDF和KSeL得到,可以看出IFIDF方法中“借錢”、“供”、“月”排到了前面,表達了“房子”,“月供”,“借錢”,“坎兒”的連貫性,與KSeL相比描述的信息更具體深入。
本文采用兩種評價方法的性能,第一種采用文獻[1]中的自動評價方法,如下所示:
Top-K準確率:k個抽取關鍵詞中至少有一個正確的文檔占全部的關鍵詞比例。
精確度:抽取的正確關鍵詞占所有抽取的關鍵詞的比率。
準確率:抽取的正確關鍵詞占人工標注關鍵詞的比例(召回率)。
圖3顯示了三種方法的Top-K,精確度和準確率。從圖3(a)中可以看出,GKSeL在top-1時的準確率達到了48.23%,TextRank和TFIDF準確率分別為39.35%和43.32%,隨著標簽個數的增加,Top-K準確率的性能有所提高;從圖中看出,方法GKSeL對于5個關鍵詞的準確率達到75.12%。圖3(b)顯示了關鍵詞個數從1增加到5時,精確度隨關鍵詞個數變化,GKSeL最高精確度48.56%。顯示了召回率的變化情況,隨著關鍵詞個數的增加GKSeL的召回率不斷增加,最低召回率為21%。從圖中得出方法的性能優于TFIDF和TextRank。

(a) Top-K準確率

(b) 精確度-召回率圖3 不同方法在對話數據上的性能
第二種方法采用文獻[1,8]拒絕率評價,拒絕率代表有多少抽取的關鍵詞是不可以被人接受的。由于人工標注的不一致性,我們需要質疑,Top-K等是否適合用來評價抽取關鍵詞方法的性能。所以本文在少量語料上,采用拒絕率進行人工評測。我們選取100個對話,給2個人提供方法抽取的關鍵詞,并讓其標注不能反映對話內容的關鍵詞,然后測量出每個標注者和方法的拒絕率。結果如表3所示。

表3 不同方法人工拒絕率
從表3中,可以看出,人工標注的拒絕率最低,因為人能夠更清楚地理解對話內容,但不同的人具有不同的出發點,所以拒絕率不同,但符合預期。GKSel的人工拒絕率低于TFIDF和TextRank方法,人工拒絕率的測評結果同樣證明了我們所提方法的有效性。
本文提出了一種面向中文對話語料的自動關鍵詞抽取方法。該方法利用語義和主題信息,結合詞的語義聚類、詞性權重、句子主題相關性等多權重來抽取關鍵詞。最后,結合TFIDF方法得到的關鍵詞建立以詞為節點的圖,基于圖迭代方法得到最終關鍵詞。方法考慮語義基礎上兼顧頻率,同時利用自動評價和人工評價檢驗方法的性能。實驗結果顯示,所提方法優于TFIDF和TextRank方法,證明了本文所提方法的有效性。
本文從實驗數據上說明了方法的可行性,但人工標注的不一致性和抽取關鍵詞的準確率有很大關系。另一方面,所抽取的詞仍然比較單一,雖然文獻[1,10]考慮了二元擴展,但基于模板,比較簡單。未來希望可以結合神經網絡訓練語義的優點來得到文中未出現詞且符合人們習慣的詞語。因此,未來將考慮未現詞和短語方面的研究。