如何在scikit-learn中修复令牌模式?

时间:2015-02-12 03:18:41

标签: python regex scikit-learn tokenize

我正在使用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'

我该如何解决?谢谢。

1 个答案:

答案 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']