使用NLTK处理停用词时添加自定义词报错,如何正确添加?
问题:如何向NLTK停用词集合添加自定义词汇?
我正在使用Twitter Sentiment140数据集做NLP分析,为完成文本挖掘课程的文本分析任务,需要去除无意义词汇,因此下载了NLTK的停用词数据集,代码如下:
nltk.download('stopwords') stop=set(stopwords.words('english'))
我想移除数据集中诸如I/I'm/me这类词汇,但执行添加自定义词的代码时出现AttributeError: 'set' object has no attribute 'append'错误,我的错误代码:
list = ["I","I'm","--"] stop.append(list) print(stop)
请问如何正确向该停用词集合中添加新词汇?
错误原因
你定义的stop是集合(set)类型,而append()是列表(list)专属的方法,集合没有这个属性,所以触发报错。
正确添加方式
方法1:批量添加(推荐)
用集合的update()方法,直接传入自定义停用词列表,一次性完成批量添加:
custom_stopwords = ["I","I'm","--"] stop.update(custom_stopwords) print(stop)
方法2:单个添加
如果需要逐个添加词汇,使用集合的add()方法:
stop.add("I") stop.add("I'm") stop.add("--") print(stop)
额外注意
- 别用
list当变量名,它是Python内置的列表类型,用这个名字会覆盖内置功能,后续可能引发意外问题。 - 集合自带去重特性,要是你添加的词汇本来就在原停用词集合里,不会重复存储。
内容的提问来源于stack exchange,提问作者Ursula
相关产品推荐
相关产品推荐

