我正在使用scikit-tfidfVectorizer学习提取功能, 设置如下:
def tokenize(text):
tokens = nltk.word_tokenize(text)
stems = []
for token in tokens:
token = re.sub("[^a-zA-Z]","", token)
stems.append(EnglishStemmer().stem(token))
return stems
vectorizer = TfidfVectorizer(tokenizer = tokenize,lowercase = True,stop_words =' english')
在将训练集提供给矢量化器之后,我打电话给
vectorizer.get_feature_names()
输出包含一些带空格的重复单词:例如
u'', u' ', u' low', u' lower', u'lower', u'lower ', u'lower high', u'lower low'
可接受的输出应为:
u'low', u'lower', u'lower high', u'lower low'
我该如何解决?谢谢。
答案 0 :(得分:0)
你可以这样做,
>>> l = ['lower low', 'lower high','lower ', ' lower', u'lower', ' ', '', 'low']
>>> list(set(i.strip() for i in l if i!=' ' and i))
['lower', 'lower low', 'lower high', 'low']