Cosine Similarityは2つの文書の類似性を測ります。
ChatbotやWebページ検索をはじめ、日常言語処理において広く用いられています。
I.Cosine Similarityの計算式
Cosine Similarity (d1, d2) = Dot product(d1, d2) / ||d1|| * ||d2||
説明は次にあります。
II.計算例
次の文書の例を紹介します。
Cosine similarity in data mining
2つの文書があり、それぞれのテキストが次のベルトルに変換されているとします。
d1 = (0, 3, 0, 0, 2, 0, 0, 2, 0, 5)
d2 = (1, 2, 0, 0, 1, 1, 0, 1, 0, 3)
Dot productを計算します。
Dot product(d1, d2) = 0*1 + 3*2 + 0*0 + 0*0 + 2*1 + 0*1 + 0*0 + 2*1 + 0*0 + 5*3 = 25
norm(ベクトルの長さ)を計算します。
Square root(0*0 + 3*3 + 0*0 + 0*0 + 2*2 + 0*0 + 0*0 + 2*2 + 0*0 + 5*5) = 6.481
Square root(1*1 + 2*2 + 0*0 + 0*0 +1*1 + 1*1 + 0*0 + 1*1 + 0*0 + 3*3) = 4.12
Cosine similarityを計算します。
cos(d1, d2) = 25/(6.481*4.12) = 0.94
III.Onlineで計算
次のページで計算できます。
COSINE SIMILARITY examples, formula and calculations
IV.Pythonで計算
ライブラリsklearnを使用します。