
3.2
前処理:共通する単語の出現回数を類似度として計測する
49
>>>
print(X.toarray().transpose())
array([[1, 1],
[1, 1],
[1, 1],
[1, 0],
[1, 0],
[0, 1],
[1, 0]], dtype=int64)
これは、初めの文章がproblems以外の単語を全て含んでいて、二つ目の文章がhow、my、toを除
いた単語を全て含んでいることを示しています。実際、表3-1と同じ形をしており、二つのベクトルの
行数は同じです。この変数X から特徴ベクトルを取得することができ、その特徴ベクトルによって、二
つの文章を比較することができます。
それでは、単純なアプローチから始めたいと思います(すぐに、厄介な問題を考えなければならない
ことがわかるでしょう)。単純なアプローチとは、まずランダムに文書をひとつ選んで、その特徴ベク
トルを計算します。そして、他の文書の特徴ベクトルとの距離を全て算出し、最も距離の小さい文書
を選びます。
3.2.2
単語を数える
ここでは、表 3-2に示す文書からなるデータセットを対象とします。
表3-2 文書のファイル名とその中身
文書のファイル名 文書の中身
01.txt This is a toy post about machine learning. Actually, it contains not much interesting
stuff.
02.txt Imaging databases can ...