このパートでは、文章をクラスタリングすることが目標です。そのためには、文章をデータ化して特徴量にしないといけません。
前回、日本語の文章から、単語のリストを取得できました。ここでは、単語のリストからBag of Words(以降BoW)という特徴量を計算します。BoWは、並び順を無視して簡単に計算できる特徴量です。簡易な分析に向いています。
BoWでは、単語ごとの出現回数を計算します。出現回数の計算は、collections.Counterで簡単にできます。
ここでは、便宜上、collections.CounterオブジェクトをBoWとみなします。
from collections import Counter
from janome.tokenizer import Tokenizer
text = 'オリンピックを日本でします'
tokenizer = Tokenizer(wakati=True)
c = Counter(tokenizer.tokenize(text))
print(c)
Counter({'オリンピック': 1, 'を': 1, '日本': 1, 'で': 1, 'し': 1, 'ます': 1})
単語に分解するだけなので、wakati=True
にしています。collections.Counter
を使うと、簡単に辞書形式で出現数をカウントできます。
ただし、collections.Counter
のままでは、分析しづらいです。
コメント