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の初心者なので、助けていただければ幸いです。
アーク。
アンダースコアがありません。次の方法で試してください。
from sklearn.feature_extraction.text import CountVectorizer
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.")
vectorizer = CountVectorizer(stop_words='english')
document_term_matrix = vectorizer.fit_transform(train_set)
print vectorizer.vocabulary_
# {u'blue': 0, u'Sun': 3, u'bright': 1, u'sky': 2}
Ipythonシェルを使用する場合は、タブ補完を使用でき、オブジェクトのメソッドと属性を簡単に見つけることができます。
vectorizer.get_feature_names()
メソッドを使用してみてください。 document_term_matrix
に表示される順序で列名を指定します。
from sklearn.feature_extraction.text import CountVectorizer
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.")
vectorizer = CountVectorizer(stop_words='english')
document_term_matrix = vectorizer.fit_transform(train_set)
vectorizer.get_feature_names()
#> ['blue', 'bright', 'sky', 'Sun']