Python使用rake_nltk初始化Rake实例时报'int对象不可迭代'错误
错误原因
- 你调用
rake.Rake时参数传递顺序错误,未显式指定参数名导致参数含义错位 rake_nltk库的Rake类构造函数第二个位置参数是punctuations(需要传入可迭代的标点符号集合),你按位置传入了整数5,代码执行时尝试迭代该整数做停用词合并,直接触发'int' object is not iterable报错- 额外问题:你提前定义了停词文件路径变量
stoppath,但实际调用时没有使用该变量,直接写死文件名会大概率触发文件找不到的后续错误
修复方案
使用关键字参数明确指定参数含义,避免位置传参的错位问题,示例如下(根据你的实际参数需求调整即可):
from rake_nltk import rake import operator stoppath = 'data/stoplists/SmartStoplist.txt' # 明确指定停词路径、最小短语长度、最大短语长度,按需调整参数值 rake_object = rake.Rake(stopwords=stoppath, min_length=3, max_length=5)
如果你需要限制关键词的最低出现频次,该逻辑不在构造函数参数中配置,提取关键词后自行过滤即可。
内容的提问来源于stack exchange,提问作者Krishnamurthy
相关产品推荐
相关产品推荐

