Comparar y ordenar vectores numéricos

Pega un vector de consulta y varios candidatos para compararlos numéricamente. Elige una métrica para ordenarlos y detectar dimensiones incompatibles; la herramienta no genera embeddings.

Se ejecuta localmente en tu navegador
El análisis numérico es local. La herramienta no crea embeddings ni envía vectores a servicios externos.
Vector de consulta
Vectores candidatos

Compara vectores sin exponer embeddings

El coseno compara dirección, el producto punto también refleja magnitud y las distancias ordenan de menor a mayor. Normaliza de forma coherente con tu flujo real.

Cómo ordenar vectores por coseno, distancia o producto escalar

Pega un vector de consulta y varios candidatos etiquetados y la página los devuelve ordenados según la métrica elegida. La similitud coseno, el producto escalar, la distancia euclídea y la distancia Manhattan se calculan en la pestaña con los valores tal como los escribes: no se normaliza nada, no se llama a ningún modelo de embeddings y ningún vector sale del navegador.

Un ranking solo es tan bueno como los propios vectores. Los vectores de modelos distintos, o del mismo modelo con un preprocesado distinto, viven en espacios diferentes, así que compara puntuaciones solo cuando procedan de una misma cadena de procesamiento.

  1. Pega el vector de consulta: números separados por comas, espacios o punto y coma, o un array JSON como [0.82, 0.15, -0.31, 0.44].
  2. Añade los candidatos, uno por línea: una etiqueta y después un tabulador (o dos puntos o un espacio) con el vector entre corchetes, por ejemplo “fragmento A<TAB>[0.79, 0.18, -0.28, 0.48]”. También sirve un array JSON de arrays o de objetos {label, vector}.
  3. Elige la métrica: la similitud coseno y el producto escalar ordenan primero el valor mayor; las distancias euclídea y Manhattan ordenan primero la distancia menor.
  4. Pulsa Calcular y ordenar. El candidato cuya longitud no coincida con la consulta, o cuya línea no se pueda leer, se lista con el motivo y queda fuera del ranking en lugar de hacer fallar toda la ejecución.
  5. Pulsa Limpiar para vaciar el formulario; la métrica vuelve a similitud coseno.

Formatos de entrada, fórmulas de las métricas y gestión de errores

Formatos de entrada que acepta el analizador

Un vector es una lista de números finitos. En el cuadro de consulta pueden separarse con comas, espacios o punto y coma, o escribirse como array JSON; se aceptan decimales, signos y notación científica (1e-3, 2E-3), y los números también pueden venir entre comillas, como suelen exportarlos las hojas de cálculo y los CSV. null, true, false, entradas vacías y cualquier otro texto se rechazan: la página nombra el valor problemático en lugar de convertirlo en 0 o en 1.

Las líneas de candidatos se leen como una etiqueta más un vector. El separador puede ser un tabulador, dos puntos o un espacio; el vector debe ir entre corchetes o, si la línea no lleva etiqueta, como una lista de números. Las líneas sin etiqueta se numeran «Vector 1», «Vector 2», etc. Una lista JSON de candidatos puede ser un array de arrays, un array de objetos {label, vector} o un único array plano que se lee como un candidato.

Qué devuelve cada métrica

La similitud coseno divide el producto escalar entre las dos magnitudes, así que compara solo la dirección e ignora la longitud: va de −1 (opuestos) pasando por 0 (sin relación) hasta 1 (misma dirección). Es la opción habitual para embeddings de texto e imagen. Un vector nulo no tiene dirección, así que su coseno es indefinido y la fila se muestra como no disponible en lugar de como 0.

El producto escalar multiplica los componentes correspondientes y los suma, así que crece tanto con la coincidencia de dirección como con la longitud de los vectores; se ordena por el valor mayor y un resultado negativo queda por debajo de cualquier positivo. La distancia euclídea es la distancia en línea recta entre los dos puntos y la de Manhattan suma las diferencias absolutas componente a componente: ambas ordenan primero la distancia menor y ambas dependen de la escala de los números.

El coseno se calcula sobre copias reescaladas de los dos vectores para que componentes enormes (1e200) no desborden los productos intermedios, y la distancia euclídea se acumula con Math.hypot para que el cuadrado tampoco desborde. Un producto escalar que supere de verdad el rango de un número de JavaScript se indica como no disponible, con el motivo en la línea de estado, en lugar de mostrarse como Infinity.

Lo que la página no hace

No genera embeddings, no descarga vectores de una API ni busca en un corpus: los números que pegas son los que ordena. Tampoco normaliza los vectores, no descarta etiquetas duplicadas y no reordena los empates: dos candidatos con la misma puntuación conservan el orden de entrada.

La barra de cada fila se escala entre la mejor y la peor puntuación de la ejecución actual, así que muestra la posición relativa dentro de un ranking y no es comparable entre ejecuciones o métricas. La columna de puntuaciones se redondea para mostrarla —los valores extremos pasan a notación exponencial—, así que usa una librería numérica en tu propio proceso cuando necesites aritmética exacta con lotes grandes.

Herramientas recientes: