關鍵詞提取Part1(A Quick Review)

最近做了一些關於關鍵詞提取的工作,所以讀了一些已有的相關研究。然後發現,關鍵詞提取這個領域最近有點兒不太火了,所以就想寫點東西吐槽一下... ...

關鍵詞提取(Key Word Extraction)說白了就是對文章進行總結,從一篇文章中抽取出比較重要的一些辭彙,幫助閱讀者高效率地了解文章的大意。尤其是對互聯網環境下,每天大量的信息湧出,若不加以預處理,則會成為網頁瀏覽者的負擔。關鍵詞提取技術可以非常簡單,也可以非常複雜,但是其任務框架都一樣,輸入一個文章,輸出幾個關鍵詞。當然,也可以把關鍵詞提取任務適當擴展成關鍵片語提取,關鍵字提取,關鍵句子提取,關鍵段落(只適用於特別長的文檔,如博士論文)....這些技術做的事兒都差不多... 那麼,給定一篇文章,關鍵詞是怎麼抽取出來的呢?

當前關鍵詞提取演算法主要可以分成兩個流派:

1. Statistical

2. Rule Based

本文提供的是一種比較大的分類方法,也有很多reivew的文章分成3類、4類、5類種種,都不重要,關鍵把思路理清就好。

1) Statistical

統計流派,其思路是,先定義一個關鍵詞指標,然後為文章中所有辭彙計算關鍵詞指標,把辭彙按照指標從大到小排列,指標大的優先選為關鍵詞。這種思路很簡單,有點兒像班裡選班長,老師說選學習成績最好的同學當班長,那麼選拔方法就是,先定義一個指標,比如考試總分,然後,給每個學生的語文、數學、物理成績加總,排名,總分排第一的當班長(關鍵詞)。當然,老師可以指定班裡有任意多個班長,例如選K個班長,那麼就是成績排名前K個學生當班長。統計流派的關鍵在於,計算每個辭彙的關鍵詞指標,這個指標是根據辭彙在文章中的表現統計並計算出來的,所以有Statistical其名。

在對關鍵詞進行提取時,可以有多種指標,影響力最大的兩個是:TF-IDF指標和 PageRank指標。TF-IDF基於詞袋模型(Bag-of-Words),把文章表示成辭彙的集合,由於集合中辭彙元素之間的順序位置與集合內容無關,所以TF-IDF指標不能有效反映文章內部的辭彙組織結構。PageRank指標,基於網路模型(Graph Model),把文章表示成網路的結構,網路中的節點表示辭彙,節點之間的邊為辭彙之間的位置鄰接關係,網路結構比集合結構包含信息多,考慮了文章內辭彙的順序,所以PageRank指標一般比TF-IDF指標表現更好。

2) Rule Based

規則流派,其思路是,將關鍵詞提取任務,定義為一個對辭彙進行二元分類的任務。即給定一個辭彙,要麼是關鍵詞,要麼不是關鍵詞,對其分類,是關鍵詞為1,不是就是0。那麼,關鍵詞提取問題就變成了一個預測問題。預測問題,需要一個預測函數,這個函數就是規則,給定辭彙,獲得該辭彙的特徵( x_i={x_{i1},x_{i2},x_{i3},...x_{ik}} ),然後預測該辭彙是否為關鍵詞 y_i={0,or,1}

規則可以人工指定,也可以通過機器學習(Machine Learning)的方法獲得。人工指定規則,一般比較難,費腦子,誰也不清楚究竟到底啥樣兒的詞是關鍵詞....所以大家就想著讓程序自己去獲得規則,即通過機器學習。機器學習的方法相對省腦子,但是費體力,要一堆閑的蛋疼的人到網上找一堆文章手工標關鍵詞,然後把標記過的樣本扔到模型里去把規則給學習出來。機器學習過程中,需要指定一些辭彙特徵,用於訓練。這些特徵,一般也不知道,所以也需要人工指定,比如,考慮詞頻、辭彙包含的字數、詞性、辭彙的位置等等。所以,前十年,做機器學習進行關鍵詞提取的論文,特別好搞,你選幾個指標,發一篇,他選幾個指標,又發一篇,也不太費腦子,就是各種拍腦袋想指標,然後把想出的指標各種排列組合丟到模型里去跑,找個相對好的結果就行。這幾年,深度學習比較火,有人說了,我想規則費腦子,想指標也費腦子,我就是懶,我直接搞個神經網路讓他連辭彙特徵都一起給學習了。所以,現在深度學習成為關鍵詞提取新的發展方向,但是深度學習的方法只能通過複雜網路的訓練幫你抽象出辭彙特徵,但是還得依賴於人工標註,依然需要閑的蛋疼的人去標記文章。當然了,深度學習的一大好處在於,有一些模型支持對沒標記的數據進行學習,可以優化辭彙特徵的表示。例如,自動編碼器,深度玻爾茲曼機...什麼的...

總結:

基於此,我想說的是,雖然關鍵詞提取的演算法很多,也很花哨,但是思路比較簡單,應當在寫Paper之前,或者開發技術應用之前,做好技術定位。另外,幾乎沒有論文回答最基礎的一個問題,什麼是關鍵詞?為什麼某些詞應當被提取出來給閱讀者看而另外一些詞應當忽略?哪些詞應當展示給用戶看?太多研究關注演算法的精度和效率,而忽視了關鍵詞的本質內涵。關鍵詞不是一個客觀存在的東西,而本身也是人為標註的,因此模型的評估和優化,本身也是一個主觀的東西。這種主觀的東西,不應當以演算法開發者的意志所左右,而是應當關注用戶的需求,想用戶之所想,把用戶真正關心的那些關鍵詞展示出來。因此,雖然關鍵詞提取演算法當前停滯不前,但是從用戶的角度重新去考慮關鍵詞的定義,把用戶的特徵與辭彙的特徵相結合,進行指標的構建(Statistical)或者規則模型的學習(Rule Based),或許是可以為關鍵詞提取演算法的未來研究提供新的發展契機。

推薦閱讀:

【譯文】使用文本挖掘技術分析Twitter用戶對電影的評價
基於R語言的唐僧「師徒關係」分析(詞向量分析)
R文本挖掘初探之「天下風雲出我輩, 一入江湖歲月」
我們分析了300萬字文本,終於知道了什麼是直男癌
【譯文】100000個故事中的性別與動詞分析: 一個簡單案例

TAG:文本挖掘 | 大數據 | 機器學習 |