単語の出現回数のベクトルはbag-of-wordsと呼ばれます。
scikit-learn は、それを計算するための優れたモジュールを提供しますsklearn.feature_extraction.text.CountVectorizer
。例:
import numpy as np
from sklearn.feature_extraction.text import CountVectorizer
vectorizer = CountVectorizer(analyzer = "word", \
tokenizer = None, \
preprocessor = None, \
stop_words = None, \
min_df = 0, \
max_features = 50)
text = ["Hello I am going to I with hello am"]
# Count
train_data_features = vectorizer.fit_transform(text)
vocab = vectorizer.get_feature_names()
# Sum up the counts of each vocabulary word
dist = np.sum(train_data_features.toarray(), axis=0)
# For each, print the vocabulary word and the number of times it
# appears in the training set
for tag, count in zip(vocab, dist):
print count, tag
出力:
2 am
1 going
2 hello
1 to
1 with
コードの一部は、bag-of-words に関するこの Kaggle チュートリアルから取得されました。
参考までに: sklearn の CountVectorizerand() を使用して、句読点を個別のトークンとして含む ngram を取得する方法は?