piapia123
ja

ベクトル類似度の計算

Web

処理はすべてブラウザ内で完結します。データは送信されません

入力
ファイルをここにドロップすると読み込めます
出力

1 行に 1 つのベクトルを入力すると、総当たりで 5 つの尺度を計算します。コサイン類似度・内積・ユークリッド距離・マンハッタン距離・チェビシェフ距離をすべて並べて表示します。混同されやすい 2 つの問いに答えるためです。コサインは「向きが同じか」(ベクトルを 2 倍にしてもコサインは不変)を、ユークリッドは「どれだけ離れているか」(2 倍にすると距離が変わる)を問います。各ベクトルのノルムも表示し、選んだ尺度での最も似たペアを別途示します。⚠️ ゼロベクトル(ノルム 0)に対するコサイン類似度は定義されません。本ツールは 0 や NaN を返さずエラーにします。すべてブラウザ内で完結します。

機能

  • 5 つの尺度を一度に表示:コサイン・内積・ユークリッド・マンハッタン・チェビシェフ
  • 総当たりの完全な比較を 1 ペア 1 行で表示
  • 各ベクトルのノルム(L2 ノルム)を表示
  • 選んだ尺度で最も似たペアを別途明示
  • ⚠️ ゼロベクトルのコサインはエラー。0 や NaN は返さない
  • 次元が一致しない場合は何番目のベクトルかを指摘
  • 単位ベクトルへの正規化が可能(コサインは不変、内積はコサインに一致)
  • 小数点以下の桁数を調整可能(0〜10)

使い方

  1. 1 行に 1 つのベクトルを、カンマか空白区切りで入力します
  2. 「最も似たペア」の判定に使う尺度を選びます
  3. 必要に応じて正規化や桁数を調整します
  4. 「コピー」で結果を取り出します

よくある質問

コサイン類似度とユークリッド距離はどちらを使うべきですか?
「向き」を重視するか「大きさ」を重視するかで決まります。コサインは向きだけを見ます。`(1,2,3)` と `(2,4,6)` は後者が 2 倍の長さでもコサインは 1(完全に同方向)です。ユークリッド距離は長さも数えるため、この 2 点の距離は 0 になりません。テキストベクトル(単語頻度や TF-IDF)は通常コサインを使います。文書の長短で「話題が同じか」が変わってはいけないからです。
ゼロベクトルでコサイン類似度がエラーになるのはなぜですか?
コサインは内積を 2 つのノルムの積で割ったもので、ゼロベクトルのノルムは 0 です。0 で割ることは定義できません。0 を返すと「まったく似ていない」と読まれ、NaN は無意味です。そのため本ツールは正直にエラーにし、何番目のベクトルがゼロかを示します。
正規化すると結果が変わるのはなぜですか?
正規化は各ベクトルを長さ 1 に揃えるため、長さの情報が失われ、向きだけが残ります。正規化後は内積がコサイン類似度に等しくなり、ユークリッド距離とコサインの間にも一定の関係が成り立ちます。長さの差が判断を歪めている疑いがあるときは、先に正規化してください。
長さの違うベクトルでも計算できますか?
できません。すべてのベクトルは同じ次元である必要があり、そうでなければ内積も距離も定義できません。ある行の数値の個数が 1 行目と異なる場合、本ツールは 0 を補ったり切り詰めたりせず、何番目のベクトルかを指摘します。

関連ツール