1. 程式人生 > >NLP-關鍵詞抽取的幾種演算法

NLP-關鍵詞抽取的幾種演算法

TextRank

從PageRank

PageRank的思想是這樣的:
求解網頁的重要性就是求解有向圖中節點的重要性,或者說節點的權重。圖中節點的重要性和節點的入度有關,越多的其他節點連線到該節點說明該節點的重要性越大。因此,節點的重要性與節點的入度有關。考慮到存在沒有入度的節點,增加了阻尼係數來保證所有的節點都有大於0的重要性。試驗結果表明,0.85的阻尼係數,迭代100多次就可以收斂到一個穩定的值。
所以PageRank的公式:
這裡寫圖片描述

到TextRank

TextRank從PageRank改進而來,比PageRank多了一個引數:節點之間邊的權重,不同的是TextRank演算法構造了一個無向圖。公式如下:
這裡寫圖片描述


文字分詞後的詞彙相當於有向圖中的節點,節點之間的邊則通過詞共現關係構建。給節點指定任意初值,迭代傳播節點之間的權重,直到收斂。
優點:僅用單個文件就可以抽取其本身的關鍵詞,不需要使用多篇文件訓練
缺點:

TF-IDF

TF-IDF=TF*IDF

TF(Term Frequency)

Term Frequency:詞頻,顧名思義,TF的基本思想是詞在文件中出現的次數越多,越能代表該文件。由於同一個詞語在長檔案裡可能會比短檔案有更高的詞頻,所以需要對詞頻進行歸一化處理。
而有些通用詞在每個文件中都出現很多次,但不能表示任一文件的含義,所以引入IDF。
Inverse Document Frequency:逆文件頻率。
這裡寫圖片描述


IDF的思想是:對於某一文件中的詞,如果在該文件中出現次數很多,而在其他文件中出現次數很少或不出現,則該詞的區分能力越高。
分母加一是考慮到包含詞條的文件數為0的情況,對公式進行拉普拉斯平滑處理。
某文件內的高頻詞,以及該詞在文件集中的低文件頻率,得到的TF-IDF值更高。因此,TF-IDF可以過濾掉通用詞,只保留重要的詞語。
TF-IDF是一種基於統計的關鍵詞抽取演算法,詞語的關鍵程度跟詞語在文件中出現的次數有關。
優點:簡單快捷,結果比較符合實際情況。
缺點:單純以詞頻衡量一個詞的重要性,不夠全面,有時重要的詞可能出現次數不多,而且忽略了詞序和詞義的重要性。

LDA

主題模型

對於LDA的理解源於一篇通俗易懂的部落格戲說從Unigram model 到LDA再到BTM部落格使用了上帝擲骰子這一個比喻來解釋LDA,非常通俗有趣。從無主題文件,單主題文件,多主題文件到LDA,上帝擲骰子的難度逐步增加。
如果要深入理解LDA,可以參考52nlp-LDA八卦

應用例項

參考了《Python自然語言處理實戰:核心技術與演算法》
書籍github地址