我有一個包含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