【Python/NumPy】コサイン類似度の計算

Pythonモジュール「NumPy」でコサイン類似度を計算する方法についてまとめました。

【NumPy】コサイン類似度の計算①

コサイン類似度とは、ベクトル同士の角度の近さが表現したもので、以下の式で計算されます。

(1) \begin{eqnarray*} \cos{ (\boldsymbol{a}, \boldsymbol{b} ) } = \frac{\boldsymbol{a} \cdot \boldsymbol{b}}{|\boldsymbol{a}| |\boldsymbol{b}|} \end{eqnarray*}

1に近いほどベクトル同士の類似度が高く、0に近ければ類似度が低いことになります。
Pythonモジュール「NumPy」では、以下のスクリプトで簡単に計算できます。

import numpy as np

def cos_similarity(v1, v2):
    return np.dot(v1, v2) / (np.linalg.norm(v1) * np.linalg.norm(v2))

x = np.array([1, 1])
y = np.array([0.9, 0.9])
z = np.array([0.5, 0.5])

print(cos_similarity(x, y))
関連記事
1 Python入門 サンプル集
2 NumPy入門 サンプル集
関連記事