提问者:小点点

如何修复scikit学习中的令牌模式?


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

我怎样才能解决这个问题?非常感谢。


共1个答案

匿名用户

你可以像下面这样做,

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