【发布时间】:2015-04-12 16:05:22
【问题描述】:
我正在使用 scikit-learn 中的 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'
我该如何解决?谢谢。
【问题讨论】:
-
输入是来自stocktwits.com的一堆推文,其中包含很多俚语
-
stems函数中的tokenize列表是一个局部变量,每次调用函数时都会产生和消亡。你为什么要费心建立那个清单?它不可能有任何用途。 -
对不起,我错过了退货声明。
标签: python regex scikit-learn tokenize