我有一个包含8000个字符串(stop_words)的列表以及一串由数百万个单词组成的各种长度的100,000个字符串。我正在使用该函数标记100,000字符串,并从列表stop_words中排除非字母数字标记和标记。从Python中的另一个列表中排除一个列表中的项目的有效方法
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串
def tokenizer(text):
return [stemmer.stem(tok.lower()) for tok in nltk.word_tokenize(text)/
if tok.isalpha()]
我希望有排除从其他列表中的一个列表中找到的项目进行更有效的方式1秒。
我很感激任何帮助或建议
感谢
尝试'设置'排除类似的项目。 'set(list1).difference(list2)'[see](http://docs.python.org/2/library/sets.html) – Developer