埋め込みベクトル コサイン類似度計算機|2 つの embedding を貼って類似度を確認
OpenAI・Cohere・SBERT などが返す埋め込みベクトル 2 本を貼り付けると、コサイン類似度・角度 (度)・コサイン距離を同時に表示。カンマ・スペース・JSON 配列の 3 形式に対応し、ノルムと解釈ラベルも併記する。最大 4096 次元。
💡 このツールについて
ベクトル検索や RAG (検索拡張生成) を組んでいると、「この 2 つの文章の埋め込みは、本当に近いのか?」を手元で確かめたくなる場面が頻繁にある。Pinecone や pgvector のクエリ結果をそのまま信じる前に、生の数値ベクトルで距離を一度検算したい — そんなときに使う計算機。
埋め込み同士の近さを測る指標として最も一般的なのがコサイン類似度。ベクトルの長さ (大きさ) を無視して向きだけで比較するため、文章の長短に左右されず「意味の方向」が揃っているかを見られる。本ツールは API レスポンスを 3 形式のまま貼れるパーサーを備え、コサイン値に加えて角度と距離も出すので、0.85 / 0.5 / 0 といった閾値のどこに位置するかが解釈ラベルで一目で判断できる。
次元数が違う・ゼロベクトルが混ざっている・数値に解釈できない要素がある、といった失敗もエラーバナーで弾くため、API の出力をそのまま貼って気づかぬうちに誤った値を読む事故を防げる。
🧐 よくある質問
コサイン類似度とユークリッド距離はどう違う? コサイン類似度はベクトルの向きだけを見るのに対し、ユークリッド距離は位置の隔たり (長さ込み) を測る。テキスト埋め込みは正規化済みのことが多く、向きの比較で十分なためコサインが定番。長さに意味がある特徴量ではユークリッドが向く。
値の目安は? 何点以上で「似ている」と言える? テキスト埋め込みでは 0.7〜0.95 が「類似」の典型レンジ。本ツールは cos > 0.85 を強い類似、0.50〜0.85 を中程度、0〜0.50 を弱い類似/無相関として解釈ラベルを出す。ただし閾値はモデルやタスクで変わるため、自分のデータで分布を見て決めるのが確実。
コサイン距離 (1 - cos) はなぜ併記する? ベクトル DB の多くは「距離が小さいほど近い」という距離指標で結果を並べる。Pinecone の cosine メトリックなどは内部でコサイン距離を使うため、距離側でも把握しておくとクエリ結果の数値と突き合わせやすい。
次元数の上限はある? 最大 4096 次元まで。OpenAI の text-embedding-3-large (3072 次元) や ada-002 (1536 次元) はそのまま扱える。A と B の次元数が一致しない場合はエラーとして弾く。
ゼロベクトルを入れるとどうなる? ノルム (長さ) が 0 のベクトルはコサイン類似度が定義できない (0 除算になる) ため、エラーを表示する。
入力形式は混ぜられる? A と B は同じ形式で解釈する。OpenAI の JSON 配列レスポンスはそのまま JSON モードで、ログにコピーしたカンマ区切りの数値はカンマモードで貼り分ける。
📚 ベクトル DB とコサインの豆知識
国内でも RAG 構成は急速に一般化し、ベクトルストアの選定 (Pinecone / Weaviate / Qdrant / pgvector) が技術ブログの定番ネタになっている。多くの実装が既定の距離指標としてコサインを採用するのは、埋め込みモデルが出力ベクトルを単位長に正規化していることが多く、向きの比較が意味の比較とほぼ一致するため。
ベクトルが正規化済み (ノルム = 1) の場合、コサイン類似度とドット積 (内積) は数値が一致する。検索エンジンの内部実装で「内積で並べている」のと「コサインで並べている」のが同じ結果になるのはこのため。本ツールはノルムも表示するので、貼ったベクトルが正規化済みかどうかを ‖A‖ / ‖B‖ がほぼ 1 かで確認できる。