RAKE 快速、簡單的關鍵詞抽取算法


A Python implementation of the Rapid Automatic Keyword Extraction (RAKE) algorithm as described in: Rose, S., Engel, D., Cramer, N., & Cowley, W. (2010). Automatic Keyword Extraction from Individual Documents. In M. W. Berry & J. Kogan (Eds.), Text Mining: Theory and Applications: John Wiley & Sons.

了解該算法中的設計思維,關鍵詞抽取的側重點,對於后續的文本處理任務有很大幫助

開源地址:https://github.com/zelandiya/RAKE-tutorial

http://www.hlt.utdallas.edu/~saidul/code.html

https://pypi.org/project/yake/

Example use

from nlp_rake import rake

stoppath = 'data/stoplists/SmartStoplist.txt'

rake_object = rake.Rake(stoppath, 5, 3, 4)

sample_file = open("data/docs/fao_test/w2167e.txt", 'r', encoding="iso-8859-1")
text = sample_file.read()

keywords = rake_object.run(text)

# 3. print results
print("Keywords:", keywords)

 

其它常見的關鍵詞提取算法

  • 基於TF-IDF算法的關鍵詞抽取 

import jieba.analyse

jieba.analyse.extract_tags(sentence, topK=20, withWeight=False, allowPOS=()) 
sentence 為待提取的文本 
topK 為返回幾個 TF/IDF 權重最大的關鍵詞,默認值為 20 
withWeight 為是否一並返回關鍵詞權重值,默認值為 False 
allowPOS 僅包括指定詞性的詞,默認值為空,即不篩選

jieba.analyse.TFIDF(idf_path=None) 新建 TFIDF 實例,idf_path 為 IDF 頻率文件
關鍵詞提取所使用逆向文件頻率(IDF)文本語料庫可以切換成自定義語料庫的路徑

用法:jieba.analyse.set_idf_path(file_name) # file_name為自定義語料庫的路徑
關鍵詞提取所使用停止詞(Stop Words)文本語料庫可以切換成自定義語料庫的路徑

用法: jieba.analyse.set_stop_words(file_name) # file_name為自定義語料庫的路徑

 

  • 基於TextRank算法的關鍵詞提取

jieba.analyse.textrank(sentence, topK=20, withWeight=False, allowPOS=(‘ns’, ‘n’, ‘vn’, ‘v’)) 直接使用,接口相同,注意默認過濾詞性。
jieba.analyse.TextRank() 新建自定義 TextRank 實例 
基本思想
將待抽取關鍵詞的文本進行分詞 
以固定窗口大小(默認為5,通過span屬性調整),詞之間的共現關系,構建圖 
計算圖中節點的PageRank,注意是無向帶權圖


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM