ベクトル類似度の計算
Web処理はすべてブラウザ内で完結します。データは送信されません
1 行に 1 つのベクトルを入力すると、総当たりで 5 つの尺度を計算します。コサイン類似度・内積・ユークリッド距離・マンハッタン距離・チェビシェフ距離をすべて並べて表示します。混同されやすい 2 つの問いに答えるためです。コサインは「向きが同じか」(ベクトルを 2 倍にしてもコサインは不変)を、ユークリッドは「どれだけ離れているか」(2 倍にすると距離が変わる)を問います。各ベクトルのノルムも表示し、選んだ尺度での最も似たペアを別途示します。⚠️ ゼロベクトル(ノルム 0)に対するコサイン類似度は定義されません。本ツールは 0 や NaN を返さずエラーにします。すべてブラウザ内で完結します。
機能
- 5 つの尺度を一度に表示:コサイン・内積・ユークリッド・マンハッタン・チェビシェフ
- 総当たりの完全な比較を 1 ペア 1 行で表示
- 各ベクトルのノルム(L2 ノルム)を表示
- 選んだ尺度で最も似たペアを別途明示
- ⚠️ ゼロベクトルのコサインはエラー。0 や NaN は返さない
- 次元が一致しない場合は何番目のベクトルかを指摘
- 単位ベクトルへの正規化が可能(コサインは不変、内積はコサインに一致)
- 小数点以下の桁数を調整可能(0〜10)
使い方
- 1 行に 1 つのベクトルを、カンマか空白区切りで入力します
- 「最も似たペア」の判定に使う尺度を選びます
- 必要に応じて正規化や桁数を調整します
- 「コピー」で結果を取り出します
よくある質問
- コサイン類似度とユークリッド距離はどちらを使うべきですか?
- 「向き」を重視するか「大きさ」を重視するかで決まります。コサインは向きだけを見ます。`(1,2,3)` と `(2,4,6)` は後者が 2 倍の長さでもコサインは 1(完全に同方向)です。ユークリッド距離は長さも数えるため、この 2 点の距離は 0 になりません。テキストベクトル(単語頻度や TF-IDF)は通常コサインを使います。文書の長短で「話題が同じか」が変わってはいけないからです。
- ゼロベクトルでコサイン類似度がエラーになるのはなぜですか?
- コサインは内積を 2 つのノルムの積で割ったもので、ゼロベクトルのノルムは 0 です。0 で割ることは定義できません。0 を返すと「まったく似ていない」と読まれ、NaN は無意味です。そのため本ツールは正直にエラーにし、何番目のベクトルがゼロかを示します。
- 正規化すると結果が変わるのはなぜですか?
- 正規化は各ベクトルを長さ 1 に揃えるため、長さの情報が失われ、向きだけが残ります。正規化後は内積がコサイン類似度に等しくなり、ユークリッド距離とコサインの間にも一定の関係が成り立ちます。長さの差が判断を歪めている疑いがあるときは、先に正規化してください。
- 長さの違うベクトルでも計算できますか?
- できません。すべてのベクトルは同じ次元である必要があり、そうでなければ内積も距離も定義できません。ある行の数値の個数が 1 行目と異なる場合、本ツールは 0 を補ったり切り詰めたりせず、何番目のベクトルかを指摘します。
関連ツール
行列と JSON
変換行列テキストと JSON の二次元配列を相互変換します。数値は数値のまま、行の長さが揃わない場合は行番号を指して報告します。
分数の計算
変換分数の約分、最大公約数と最小公倍数、小数から分数への変換、分数の四則演算。すべて BigInt で計算し、大きな整数でも桁を失いません。
文字列距離
テキスト2 つの文字列の近さを 5 通りで比較します。編集距離と文字ごとの対応表、Damerau、Hamming、Jaro-Winkler 類似度、最長共通部分列。
URL 解析
WebURL を解析し、スキーム・ホスト・ポート・パス・クエリパラメータ・アンカーに分解します。パラメータは元の値とデコード値を並記。すべてブラウザ内で処理します。
UA 解析
WebUser-Agent を解析し、ブラウザ・バージョン・OS・デバイス種別・エンジンを判定します。判定はパターン照合による概算です。すべてブラウザ内で処理します。
HTTP ステータスコード
WebHTTP ステータスコードの検索。番号から意味を、キーワードから番号を引けます。1xx〜5xx の分類・利用場面・確認のポイント付き。すべてブラウザ内で処理します。