如何在Python中设置RAKE算法的关键词提取数量及相关参数?
使用rake-nltk自定义关键词提取规则
初始化Rake实例时的核心参数
创建Rake对象时,可通过以下参数控制候选短语的基础范围:
min_length: 短语的最少单词数(默认1)max_length: 短语的最多单词数(默认3)min_char_length: 短语的最少字符数(默认0,即不限制)
示例:
from rake_nltk import Rake # 允许1-5个单词的短语,且字符数至少为5 r = Rake(min_length=1, max_length=5, min_char_length=5)
获取所有候选短语(带分数)
调用get_ranked_phrases_with_scores()方法可拿到所有生成的候选短语及其对应分数,结果按分数降序排列:
r.extract_keywords_from_text(text) # 返回格式:[(分数1, 短语1), (分数2, 短语2), ...] all_candidates = r.get_ranked_phrases_with_scores()
设置最低分数阈值筛选短语
基于带分数列表,自行过滤出分数符合要求的短语:
min_score = 2.0 # 自定义最低分数 filtered_keywords = [phrase for score, phrase in all_candidates if score >= min_score]
提取指定数量的关键词
直接从排序后的列表中截取前N个短语,无需考虑分数:
top_n = 10 # 自定义要提取的数量 top_keywords = r.get_ranked_phrases()[:top_n]
补充说明
- 默认的
get_ranked_phrases()方法返回所有符合长度限制的短语,按分数降序排列,并非只返回"最显著"的——如果觉得结果太少,大概率是默认的max_length(3)限制了短语长度,调大该参数即可。 - 如果需要保留重复出现的短语,初始化时设置
include_repeated_phrases=True(默认False)。
内容的提问来源于stack exchange,提问作者Mounir Cobra
相关产品推荐
相关产品推荐

