【发布时间】:2015-05-07 19:41:03
【问题描述】:
我已经安装了 python 2.7、numpy 1.9.0、scipy 0.15.1 和 scikit-learn 0.15.2。 现在,当我在 python 中执行以下操作时:
train_set = ("The sky is blue.", "The sun is bright.")
test_set = ("The sun in the sky is bright.",
"We can see the shining sun, the bright sun.")
from sklearn.feature_extraction.text import CountVectorizer
vectorizer = CountVectorizer()
print vectorizer
CountVectorizer(analyzer=u'word', binary=False, charset=None,
charset_error=None, decode_error=u'strict',
dtype=<type 'numpy.int64'>, encoding=u'utf-8', input=u'content',
lowercase=True, max_df=1.0, max_features=None, min_df=1,
ngram_range=(1, 1), preprocessor=None, stop_words=None,
strip_accents=None, token_pattern=u'(?u)\\b\\w\\w+\\b',
tokenizer=None, vocabulary=None)
vectorizer.fit_transform(train_set)
print vectorizer.vocabulary
None.
其实应该是这样打印出来的:
CountVectorizer(analyzer__min_n=1,
analyzer__stop_words=set(['all', 'six', 'less', 'being', 'indeed', 'over',
'move', 'anyway', 'four', 'not', 'own', 'through', 'yourselves', (...) --->
For count vectorizer
{'blue': 0, 'sun': 1, 'bright': 2, 'sky': 3} ---> for vocabulary
以上代码来自博客: http://blog.christianperone.com/?p=1589
请您帮助我了解为什么会出现这样的错误。由于词汇表没有正确索引,我无法继续理解 TF-IDF 的概念。我是 python 的新手,所以任何帮助将不胜感激。
弧线。
【问题讨论】:
-
vectorizer.vocabulary_带下划线就是你想要的。vectorizer.vocabulary不是你想要的,如果你传入了 in,它就是词汇表,如果有的话(通常是 None)。
标签: python numpy scikit-learn scipy countvectorizer