从NLTK中的大型令牌中删除垃圾单词

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了从NLTK中的大型令牌中删除垃圾单词相关的知识,希望对你有一定的参考价值。

我对处理大尺寸文本文件感到困惑。

方案:将文本文件转换为令牌及其列表,其长度为250000

而且我想从中删除垃圾字。为此,我正在使用nltk和列表理解。

但是对于列表大小100,其列表理解需要10秒。

from nltk.corpus import stopwords,words

strt_time = time.time()
no_junk = [x for x in vocab_temp if x in words.words()]
print(time.time() - strt_time)
9.56

因此,完整的设置将需要几个小时。

如何优化它?

答案

这是因为在列表理解中,您每次迭代都调用words.words()。由于每次比较都不会改变,因此您可以将其移到循环外。

from nltk.corpus import stopwords,words
import nltk

nltk.download('words')

vocab_temp =  ['hello world'] * 100
keep_words = words.words() 

[x for x in vocab_temp if x in keep_words]

以上是关于从NLTK中的大型令牌中删除垃圾单词的主要内容,如果未能解决你的问题,请参考以下文章

注销方法不会从数据库中删除令牌

如何使用 @solana/web3.js 从 Solana 中的自定义令牌中删除铸币权限?

如何更改 NLTK 中朴素贝叶斯分类器的平滑方法?

JWT 令牌中的无状态身份验证和权限

Django rest framework JWT ,删除 jwt 令牌

从 JWT 令牌中删除角色信息