我正在使用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
向量器=TFIDFvectorier(标记器=tokenize,小写=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'
我怎样才能解决这个问题?非常感谢。
你可以像下面这样做,
>>> 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']