python去停用词用nltk_使用NLTK删除停用词

@ alvas的答案可以完成这项任务,但可以更快地完成 . 假设你有 documents :一个字符串列表 .

from nltk.corpus import stopwords

from nltk.tokenize import wordpunct_tokenize

stop_words = set(stopwords.words('english'))

stop_words.update(['.', ',', '"', "'", '?', '!', ':', ';', '(', ')', '[', ']', '{', '}']) # remove it if you need punctuation

for doc in documents:

list_of_words = [i.lower() for i in wordpunct_tokenize(doc) if i.lower() not in stop_words]

请注意,由于您在这里搜索集合(不在列表中),理论上速度理论上会快 len(stop_words)/2 倍,如果您需要通过许多文档操作,这很重要 .

对于5000个大约300个单词的文档,我的例子为1.8秒,@ alvas为20秒 .

附:在大多数情况下,您需要将文本划分为单词以执行其他使用tf-idf的分类任务 . 所以最有可能的是使用stemmer也会更好:

from nltk.stem.porter import PorterStemmer

porter = PorterStemmer()

并在循环内使用 [porter.stem(i.lower()) for i in wordpunct_tokenize(doc) if i.lower() not in stop_words] .

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值