當前位置:
首頁 > 科技 > 專欄 | 如何做好文本關鍵詞提取?從三種演算法說起

專欄 | 如何做好文本關鍵詞提取?從三種演算法說起


機器之心專欄


作者:韓偉





在自然語言處理領域,處理海量的文本文件最關鍵的是要把用戶最關心的問題提取出來。

而無論是對於長文本還是短文本,往往可以通過幾個關鍵詞窺探整個文本的主題思想。與此同時,不管是基於文本的推薦還是基於文本的搜索,對於文本關鍵詞的依賴也很大,關鍵詞提取的準確程度直接關係到推薦系統或者搜索系統的最終效果。因此,關鍵詞提取在文本挖掘領域是一個很重要的部分。




關於文本的關鍵詞提取方法分為有監督、半監督和無監督三種:



1

有監督的關鍵詞抽取演算法


是建關鍵詞抽取演算法看作是二分類問題,判斷文檔中的詞或者短語是或者不是關鍵詞。既然是分類問題,就需要提供已經標註好的訓練語料,利用訓練語料訓練關鍵詞提取模型,根據模型對需要抽取關鍵詞的文檔進行關鍵詞抽取

2

半監督的關鍵詞提取演算法


只需要少量的訓練數據,利用這些訓練數據構建關鍵詞抽取模型,然後使用模型對新的文本進行關鍵詞提取,對於這些關鍵詞進行人工過濾,將過濾得到的關鍵詞加入訓練集,重新訓練模型。

3

無監督的方法


不需要人工標註的語料,利用某些方法發現文本中比較重要的詞作為關鍵詞,進行關鍵詞抽取。






有監督的文本關鍵詞提取演算法需要

高昂的人工成本

,因此現有的文本關鍵詞提取主要採用適用性較強的無監督關鍵詞抽取。

其文本關鍵詞抽取流程如下:



圖 1 無監督文本關鍵詞抽取流程圖




無監督關鍵詞抽取演算法可以分為三大類,基於統計特徵的關鍵詞抽取、基於詞圖模型的關鍵詞抽取和基於主題模型的關鍵詞抽取。



NO.

1




文本關鍵詞提取演算法

基於統計特徵的關鍵詞提取演算法


基於於統計特徵的關鍵詞抽取演算法的思想是

利用文檔中詞語的統計信息抽取文檔的關鍵詞。

通常將文本經過預處理得到候選詞語的集合,然後採用特徵值量化的方式從候選集合中得到關鍵詞。基於統計特徵的關鍵詞抽取方法的關鍵是採用什麼樣的特徵值量化指標的方式,目前常用的有三類:



1


基於詞權重的特徵量化




基於詞權重的特徵量化主要包括詞性、詞頻、逆向文檔頻率、相對詞頻、詞長等。




2


基於詞的文檔位置的特徵量化




這種特徵量化方式是根據文章不同位置的句子對文檔的重要性不同的假設來進行的。通常,文章的前N個詞、後N個詞、段首、段尾、標題、引言等位置的詞具有代表性,這些詞作為關鍵詞可以表達整個的主題。



3


基於詞的關聯信息的特徵量化



詞的關聯信息是指詞與詞、詞與文檔的關聯程度信息,包括互信息、hits值、貢獻度、依存度、TF-IDF值等。





下面介紹幾種常用的特徵值量化指標。



詞性




詞性時通過分詞、語法分析後得到的結果。現有的關鍵詞中,絕大多數關鍵詞為名詞或者動名詞。一般情況下,名詞與其他詞性相比更能表達一篇文章的主要思想。但是,詞性作為特徵量化的指標,一般與其他指標結合使用。



詞頻




詞頻表示一個詞在文本中出現的頻率。一般我們認為,如果一個詞在文本中出現的越是頻繁,那麼這個詞就越有可能作為文章的核心詞。詞頻簡單地統計了詞在文本中出現的次數,但是,只依靠詞頻所得到的關鍵詞有很大的不確定性,對於長度比較長的文本,這個方法會有很大的噪音。



位置信息




一般情況下,詞出現的位置對於詞來說有著很大的價值。例如,標題、摘要本身就是作者概括出的文章的中心思想,因此出現在這些地方的詞具有一定的代表性,更可能成為關鍵詞。但是,因為每個作者的習慣不同,寫作方式不同,關鍵句子的位置也會有所不同,所以這也是一種很寬泛的得到關鍵詞的方法,一般情況下不會單獨使用。



互信息




互信息是資訊理論中概念,是變數之間相互依賴的度量。互信息並不局限於實值隨機變數,它更加一般且決定著聯合分布 p(X,Y) 和分解的邊緣分布的乘積 p(X)p(Y) 的相似程度。互信息的計算公式如下:






其中,p(x,y)是X和Y的聯合概率分布函數,p(x)和p(y)分別為X和Y的邊緣概率分布函數。


當使用互信息作為關鍵詞提取的特徵量化時,應用文本的正文和標題構造PAT樹,然後計算字元串左右的互信息。



詞跨度




詞跨度是指一個詞或者短語字文中首次出現和末次出現之間的距離,詞跨度越大說明這個詞對文本越重要,可以反映文本的主題。一個詞的跨度計算公式如下:




其中,

表示詞i在文本中最後出現的位置, 表示詞 i 在文本中第一次出現的位置,sum表示文本中詞的總數。




詞跨度被作為提取關鍵詞的方法是因為在現實中,文本中總是有很多雜訊(指不是關鍵詞的那些詞),使用詞跨度可以減少這些雜訊。



TF-IDF值




一個詞的TF是指這個詞在文檔中出現的頻率,假設一個詞w在文本中出現了m次,而文本中詞的總數為n,那麼

一個詞的IDF是根據語料庫得出的,表示這個詞在整個語料庫中出現的頻率。假設整個語料庫中,包含詞w的文本一共有M篇,語料庫中的文本一共有N篇,則






由此可得詞w的TF-IDF值為:





TF-IDF的優點是實現簡單,相對容易理解。

但是,TFIDF演算法提取關鍵詞的缺點也很明顯,嚴重依賴語料庫,需要選取質量較高且和所處理文本相符的語料庫進行訓練。另外,對於IDF來說,它本身是一種試圖抑制雜訊的加權,本身傾向於文本中頻率小的詞,這使得TF-IDF演算法的精度不高。TF-IDF演算法還有一個缺點就是不能反應詞的位置信息,

在對關鍵詞進行提取的時候,詞的位置信息,例如文本的標題、文本的首句和尾句等含有較重要的信息,應該賦予較高的權重。




基於統計特徵的關鍵詞提取演算法通過上面的一些特徵量化指標將關鍵詞進行排序,獲取TopK個詞作為關鍵詞。




基於統計特徵的關鍵詞的重點在於特徵量化指標的計算,不同的量化指標得到的結果也不盡相同。同時,不同的量化指標作為也有其各自的優缺點,在實際應用中,通常是採用不同的量化指標相結合的方式得到Topk個詞作為關鍵詞



NO.

2




文本關鍵詞提取演算法

基於詞圖模型的關鍵詞抽取演算法


基於詞圖模型的關鍵詞抽取首先要構建文檔的語言網路圖,然後對語言進行網路圖分析,在這個圖上尋找具有重要作用的詞或者短語,這些短語就是文檔的關鍵詞。語言網路圖中節點基本上都是詞,根據詞的鏈接方式不同,語言網路的主要形式分為四種:

共現網路圖、語法網路圖、語義網路圖和其他網路圖。





在語言網路圖的構建過程中,都是以預處理過後的詞作為節點,詞與詞之間的關係作為邊。語言網路圖中,邊與邊之間的權重一般用詞之間的關聯度來表示。在使用語言網路圖獲得關鍵詞的時候,需要評估各個節點的重要性,然後根據重要性將節點進行排序,選取TopK個節點所代表的詞作為關鍵詞。節點的重要性計算方法有以下幾種方法。




1



綜合特徵法




綜合特徵法也叫社會網路中心性分析方法,這種方法的核心思想是節點中重要性等於節點的顯著性,以不破壞網路的整體性為基礎。此方法就是從網路的局部屬性和全局屬性角度去定量分析網路結構的拓撲性質,常用的定量計算方法如下。







節點的度是指與該節點直接向量的節點數目,表示的是節點的局部影響力,對於非加權網路,節點的度為:

對於加權網路,節點的度又稱為節點的強度,計算公式為:





接近性



節點的接近性是指節點到其他節點的最短路徑之和的倒數,表示的是信息傳播的緊密程度,其計算公式為:




特徵向量





特徵向量的思想是節點的中心化測試值由周圍所有連接的節點決定,即一個節點的中心化指標應該等於其相鄰節點的中心化指標之線性疊加,表示的是通過與具有高度值的相鄰節點所獲得的間接影響力。特徵向量的計算公式如下:


集聚係數




節點的集聚係數是它的相鄰的節點之間的連接數與他們所有可能存在來鏈接的數量的比值,用來描述圖的頂點之間階級成團的程度的係數,計算公式如下:



平均最短路徑




節點的平局最短路徑也叫緊密中心性,是節點的所有最短路徑之和的平均值,表示的是一個節點傳播信息時對其他節點的依賴程度。如果一個節點離其他節點越近,那麼他傳播信息的時候也就越不需要依賴其他人。一個節點到網路中各點的距離都很短,那麼這個點就不會受制於其他節點。計算公式如下:





因為每個演算法的側重方向的不同,在實際的問題中所選取的定量分析方法也會不一樣。同時,對於關鍵詞提取來說,也可以和上一節所提出的統計法得到的詞的權重,例如詞性等相結合構建詞搭配網路,然後利用上述方法得到關鍵詞。



2


系統科學法




系統科學法進行中心性分析的思想是節點重要性等於這個節點被刪除後對於整個語言網路圖的破壞程度。重要的節點被刪除後會對網路的呃連通性等產生變化。如果我們在網路圖中刪除某一個節點,圖的某些指定特性產生了改變,可以根據特性改變的大小獲得節點的重要性,從而對節點進行篩選。

3


隨機遊走法




隨機遊走演算法時網路圖中一個非常著名的演算法,它從給定圖和出發點,隨機地選擇鄰居節點移動到鄰居節點上,然後再把現在的節點作為出發點,迭代上述過程。





隨機遊走演算法一個很出名的應用是大名鼎鼎的PageRank演算法,PageRank演算法是整個google搜索的核心演算法,是一種通過網頁之間的超鏈接來計算網頁重要性的技術,其關鍵的思想是重要性傳遞。

在關鍵詞提取領域, Mihalcea 等人所提出的TextRank演算法就是在文本關鍵詞提取領域借鑒了這種思想。




PageRank演算法將整個互聯網看作一張有向圖,網頁是圖中的節點,而網頁之間的鏈接就是圖中的邊。根據重要性傳遞的思想,如果一個大型網站A含有一個超鏈接指向了網頁B,那麼網頁B的重要性排名會根據A的重要性來提升。網頁重要性的傳遞思想如下圖所示:



圖 2 PageRank簡單描述(來自PageRank論文)




在PageRank演算法中,最主要的是對於初始網頁重要性(PR值)的計算,因為對於上圖中的網頁A的重要性我們是無法預知的。但是,在原始論文中給出了一種迭代方法求出這個重要性,論文中指出,冪法求矩陣特徵值與矩陣的初始值無關。那麼,就可以為每個網頁隨機給一個初始值,然後迭代得到收斂值,並且收斂值與初始值無關。


PageRank求網頁i的PR值計算如下:





其中,d為阻尼係數,通常為0.85。

是指向網頁 i 的網頁集合。

是指網頁j中的鏈接指向的集合,

是指集合中元素的個數。




TextRank在構建圖的時候將節點由網頁改成了句子,並為節點之間的邊引入了權值,其中權值表示兩個句子的相似程度。其計算公式如下:



公式中的

為圖中節點

和的邊

的權重。其他符號與PageRank公式相同。




TextRank演算法除了做文本關鍵詞提取,還可以做文本摘要提取,效果不錯。但是TextRank的計算複雜度很高,應用不廣。



NO.

3




文本關鍵詞提取演算法

基於主題模型的關鍵詞抽取


基於主題關鍵詞提取演算法主要利用的是主題模型中關於主題的分布的性質進行關鍵詞提取。演算法步驟如下:


1

獲取候選關鍵詞

從文章中獲取候選關鍵詞。即將文本分詞,也可以再根據詞性選取候選關鍵詞。

2

語料學習

根據大規模預料學習得到主題模型。

3

計算文章主題分部

根據得到的隱含主題模型,計算文章的主題分布和候選關鍵詞分布。

4

排序

計算文檔和候選關鍵詞的主題相似度並排序,選取前n個詞作為關鍵詞。




演算法的關鍵在於主題模型的構建。

主題模型是一種文檔生成模型,對於一篇文章,我們的構思思路是先確定幾個主題,然後根據主題想好描述主題的辭彙,將辭彙按照語法規則組成句子,段落,最後生成一篇文章。




主題模型也是基於這個思想,它認為文檔是一些主題的混合分布,主題又是詞語的概率分布,pLSA模型就是第一個根據這個想法構建的模型。同樣地,我們反過來想,我們找到了文檔的主題,然後主題中有代表性的詞就能表示這篇文檔的核心意思,就是文檔的關鍵詞。





pLSA模型認為,一篇文檔中的每一個詞都是通過一定概率選取某個主題,然後再按照一定的概率從主題中選取得到這個詞語,這個詞語的計算公式為:







一些貝葉斯學派的研究者對於pLSA模型進行了改進,他們認為,文章對應主題的概率以及主題對應詞語的概率不是一定的,也服從一定的概率,於是就有了現階段常用的主題模型--LDA主題模型。





LDA是D.M.Blei在2003年提出的。LDA採用了詞袋模型的方法簡化了問題的複雜性。在LDA模型中,每一篇文檔是一些主題的構成的概率分布,而每一個主題又是很多單詞構成的一個概率分布。同時,無論是主題構成的概率分布還是單詞構成的概率分布也不是一定的,這些分布也服從Dirichlet 先驗分布。




文檔的生成模型可以用如下圖模型表示:


其中

為先驗分布的超參數,

為第k個主題下的所有單詞的分布,

為文檔的主題分布,w為文檔的詞,z為w所對應的主題





圖 3 Blei在論文中的圖模型




DA挖掘了文本的深層語義即文本的主題,用文本的主題來表示文本的也從一定程度上降低了文本向量的維度,很多人用這種方式對文本做分類,取得了不錯的效果。

具體LDA的演算法在請

參考《一文詳解LDA主題模型》。




LDA關鍵詞提取演算法利用文檔的隱含語義信息來提取關鍵詞,但是主題模型提取的關鍵詞比較寬泛,不能很好的反應文檔主題。另外,對於LDA模型的時間複雜度較高,需要大量的實踐訓練。



NO.

4




文本關鍵詞提取演算法

應用


現階段,文本的關鍵詞提取在基於文本的搜索、推薦以及數據挖掘領域有著很廣泛的應用。同時在實際應用中,因為應用環境的複雜性,對於不同類型的文本,例如長文本和短文本,用同一種文本關鍵詞提取方法得到的效果並相同。因此,在實際應用中針對不同的條件環境所採用的演算法會有所不同,沒有某一類演算法在所有的環境下都有很好的效果。




相對於上文中所提到的演算法,一些組合演算法在工程上被大量應用以彌補單演算法的不足,例如將TF-IDF演算法與TextRank演算法相結合,或者綜合TF-IDF與詞性得到關鍵詞等。同時,工程上對於文本的預處理以及文本分詞的準確性也有很大的依賴。對於文本的錯別字,變形詞等信息,需要在預處理階段予以解決,分詞演算法的選擇,未登錄詞以及歧義詞的識別在一定程度上對於關鍵詞突提取會又很大的影響。




關鍵詞提取是一個看似簡單,在實際應用中卻十分棘手的任務,從現有的演算法的基礎上進行工程優化,達觀數據在這方面做了很大的努力並且取得了不錯的效果。



NO.

5




文本關鍵詞提取演算法

總結


本文介紹了三種常用的無監督的關鍵詞提取演算法,並介紹了其優缺點。關鍵詞提取在文本挖掘領域具有很廣闊的應用,現有的方法也存在一定的問題,我們依然會在關鍵詞提取的問題上繼續努力研究,也歡迎大家積極交流。





參考文獻


[1] TextRank演算法提取關鍵詞和摘要

http://xiaosheng.me/2017/04/08/article49/




[2] Page L, Brin S, Motwani R,et al. The PageRank citation ranking: Bringing order to the web[R]. StanfordInfoLab, 1999.




[3] 劉知遠. 基於文檔主題結構的關鍵詞抽取方法研究[D]. 北京: 清華大學, 2011.




[4] tf-idf,

https://zh.wikipedia.org/zh-hans/Tf-idf




[5] 一文詳解機器領域的LDA主題模型 

https://zhuanlan.zhihu.com/p/31470216




[6] Blei D M, Ng A Y, Jordan MI. Latent dirichlet allocation[J]. Journal of machine Learning research, 2003,3(Jan): 993-1022.




[7] 趙京勝, 朱巧明, 周國棟, 等. 自動關鍵詞抽取研究綜述[J]. 軟體學報, 2017,28(9): 2431-2449.



A


BOUT


作者簡介


韓偉:

達觀數據數據挖掘工程師,負責達觀數據文本方面的挖掘與應用。主要參與達觀數據標籤提取與文本分類系統的構建與實現,對深度學習,NLP數據挖掘領域有濃厚興趣。




本文為機器之心經授權轉載,

轉載請聯繫原公眾號獲得授權



?------------------------------------------------


加入機器之心(全職記者/實習生):hr@jiqizhixin.com


投稿或尋求報道:editor@jiqizhixin.com


廣告&商務合作:bd@jiqizhixin.com

喜歡這篇文章嗎?立刻分享出去讓更多人知道吧!

本站內容充實豐富,博大精深,小編精選每日熱門資訊,隨時更新,點擊「搶先收到最新資訊」瀏覽吧!


請您繼續閱讀更多來自 機器之心 的精彩文章:

解放程序員,讓AI自行編寫程序

TAG:機器之心 |