基于TextRank的关键词提取算法
基于TextRank的關鍵詞提取算法
前沿
TextRank是一種文本排序算法,是基于著名的網頁排序算法PageRank改動而來。在介紹TextRank前,我們先簡單介紹下什么是PageRank。另外TextRank不僅能進行關鍵詞提取,也能做自動文摘,這邊文章以關鍵詞提取為主,自動文摘部分后續補充。
一、PageRank原理
PageRank是用來計算網頁重要性的,將每一個網頁看作一個節點,將網頁之間的鏈接看作是節點之間的有向邊,網頁的重要性取決于鏈接到它的網頁數量以及這些網頁的重要性。衡量網頁重要性的公式說明如下:
二、TextRank原理
進行關鍵詞提取時,TextRank算法思想和PageRank算法類似,不同的是,TextRank中時以詞為節點,以共現關系建立起節點之間的鏈接,需要強調的是,PageRank中是有向邊,而TextRank中是無向邊,或者說是雙向邊。
什么是共現關系呢?將文本進行分詞,去除停用詞或詞性篩選等之后,設定窗口長度為K,即最多只能出現K個詞,進行窗口滑動,在窗口中共同出現的詞之間即可建立起無向邊。
基于TextRank提取關鍵詞的主要步驟:
(1)把給定的文本T按照完整句子進行分割;
(2)對于每個句子,進行分詞和詞性標注處理,并過濾掉停用詞,只保留指定詞性的單詞,如名詞、動詞、形容詞等。這些詞形成候選關鍵詞;
(3)構建候選關鍵詞圖G = (V,E),其中V為節點集,由(2)生成的候選關鍵詞組成,然后采用共現關系(co-occurrence)構造任兩點之間的邊,兩個節點之間存在邊僅當它們對應的詞匯在長度為K的窗口中共現;
(4)根據PageRank原理中的衡量重要性的公式,初始化各節點的權重,然后迭代計算各節點的權重,直至收斂;
(5)對節點權重進行倒序排序,從而得到最重要的T個單詞,作為候選關鍵詞;
(6)由(5)得到最重要的T個單詞,在原始文本中進行標記,若形成相鄰詞組,則組合成多詞關鍵詞。例如,文本中有句子“Matlab code for plotting ambiguity function”,如果“Matlab”和“code”均屬于候選關鍵詞,則組合成“Matlab code”加入關鍵詞序列。
《新程序員》:云原生和全面數字化實踐50位技術專家共同創作,文字、視頻、音頻交互閱讀總結
以上是生活随笔為你收集整理的基于TextRank的关键词提取算法的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 机器学习中的损失函数
- 下一篇: adaboost和GBDT的区别以及xg