令和元年度 基礎科目の一覧へ

令和元年度・基礎科目 I-2-3

コサイン類似度で文書を比べる

問題文をPDFで見る

解説

ポイント

単語の出てくる回数をベクトルにして,向きのそろい具合(コサイン類似度)で文書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(公益社団法人日本技術士会) ジャンル:情報・アルゴリズム