【发布时间】:2015-04-04 09:18:25
【问题描述】:
我有这段文字:
data = ['Hi, this is XYZ and XYZABC is $$running']
我正在使用以下 tfidfvectorizer:
vectorizer = TfidfVectorizer(
stop_words='english',
use_idf=False,
norm=None,
min_df=1,
tokenizer = tokenize,
ngram_range=(1, 1),
token_pattern=u'\w{4,}')
我将数据拟合如下:
tdm =vectorizer.fit_transform(data)
现在,当我打印时
vectorizer.get_feature_names()
我明白了:
[u'hi', u'run', u'thi', u'xyz', u'xyzabc']
我的问题是为什么我会得到“hi”和“xyz”,即使我提到我希望它只捕获至少有 4 个字符的单词? - token_pattern=u'\w{4,}'
【问题讨论】:
-
我不确定是不是这样,但我怀疑由于您将自己的标记器传递给
tokenizer参数,因此您传递给 ngram 和标记模式参数的任何内容都会被忽略。将None传递给tokenizer或在您自己的标记化函数中处理。
标签: python machine-learning nlp scikit-learn tf-idf