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,注意是无向带权图

原文地址:https://www.cnblogs.com/demo-deng/p/13227253.html