【发布时间】:2012-12-26 22:43:39
【问题描述】:
我有一个包含 8000 个字符串 (stop_words) 的列表和一个包含 100,000 个不同长度的字符串的列表,这些字符串包含数百万个单词。我正在使用该函数对 100,000 个字符串进行标记,并从 stop_words 列表中排除非字母数字标记和标记。
def tokenizer(text):
return [stemmer.stem(tok.lower()) for tok in nltk.word_tokenize(text)/
if tok.isalpha() and tok.lower() not in stop_words]
我已经使用 600 个字符串测试了这段代码,它需要 60 秒。如果我删除排除停用词的条件,则在相同的 600 个字符串上需要 1 秒
def tokenizer(text):
return [stemmer.stem(tok.lower()) for tok in nltk.word_tokenize(text)/
if tok.isalpha()]
我希望有一种更有效的方法可以从另一个列表中排除在一个列表中找到的项目。
感谢任何帮助或建议
谢谢
【问题讨论】:
-
尝试
set排除类似项目。set(list1).difference(list2)see
标签: python string list tokenize stop-words