コサイン類似度で文書を比べる
解説
ポイント
単語の出てくる回数をベクトルにして,向きのそろい具合(コサイン類似度)で文書Aにいちばん似た文書を探す問題です。
考え方と解き方
式の (X・Y)/(‖X‖‖Y‖) は2つのベクトルのなす角の cosθ で,向きが同じなら 1,距離は 1−1 = 0 になります。
長さ(文書の長さ)に関係なく,単語の「割合」が同じなら同じ向きなので,まず A の何倍かになっている文書を探します。
- A = (7,3,2) に対して D = (21,9,6) は,21 = 7×3,9 = 3×3,6 = 2×3 で,ちょうど A の3倍
- 同じ向きなので cosθ = 1,距離 = 0。これより似ている文書はありません
- 式で確かめ:A・D = 7×21+3×9+2×6 = 147+27+12 = 186
‖A‖ = √62,‖D‖ = √(441+81+36) = √558 = 3√62
- cosθ = 186÷(√62×3√62) = 186÷186 = 1 なので距離は 0。答えは ③ 文書D
ほかの選択肢
②(文書C):単語1が 70 と多く,文書Aと数字が似て見えますが,割合がちがいます。cosθ ≒ 0.91 で距離は約 0.09 です。
⑤(文書F):単語2・3が多く,向きが大きくずれています。cosθ ≒ 0.62 で距離は約 0.38 です。
覚えておくこと
- コサイン類似度は,ベクトルの長さではなく「向き(割合)」を比べる
- 何倍かになっているベクトル同士は cosθ = 1,距離 0
- 内積は成分ごとにかけて足す。ノルムは成分の2乗の和の平方根
出典:令和元年度 技術士第一次試験 基礎科目 I-2-3(公益社団法人日本技術士会) ジャンル:情報・アルゴリズム