从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 中的自定义令牌中删除铸币权限?