API de similitud de resultados instantáneos es una API de coincidencia difusa y deduplicación de alta velocidad diseñada para datos desordenados y del mundo real. Ayuda a identificar registros casi duplicados y reconciliar entidades incluso cuando los valores no coinciden exactamente—errores tipográficos, diferencias de mayúsculas y minúsculas, puntuación faltante, problemas de espaciado, abreviaturas y cambios menores en el orden de las palabras.
En lugar de construir y ajustar su propia canalización de coincidencia difusa, envía sus cadenas (o registros) a la API y recibe de vuelta coincidencias puntuadas por similitud en las que puede confiar. Las salidas típicas incluyen pares coincidentes (por ejemplo, “Apple” ↔ “apple inc.”), puntuaciones de similitud y resultados estructurados que son fáciles de integrar en flujos de trabajo de limpieza de datos, CRMs, trabajos de ETL y canalizaciones de análisis.
Casos de uso comunes:
Deduplicar listas: encontrar duplicados dentro de un conjunto de datos (coincidencia uno a uno) y devolver pares de duplicados probables.
Reconciliar contra una lista maestra: coincidir una lista entrante con un conjunto canónico (lista a maestra).
Higiene de datos de CRM y clientes: limpiar leads/cuentas/empresas donde los duplicados rompen informes y actividades de alcance.
Resolución de entidades y vinculación de registros: conectar referencias a la misma entidad del mundo real a través de fuentes.
Por qué los equipos lo utilizan:
Funciona con texto desordenado desde el primer momento (sin reglas manuales para cada caso límite)
Puntuaciones de similitud para clasificación y umbrales (usted elige cuán estricto ser)
Diseñado para escalar y automatizar (diseñado para ejecutarse en canalizaciones, no solo en scripts únicos)
Dedupe es un punto final de coincidencia difusa de todos a todos para encontrar duplicados dentro de una sola lista de cadenas. En lugar de comparar solo dos entradas por llamada de API, envías un conjunto de datos y devuelve pares similares y/o grupos desduplicados a través de todo el conjunto.
Por qué lo usarías
Aceleración masiva: generalmente de ~300× a 1,000× más rápido que los enfoques “regulares” que la gente prueba primero (comparaciones por pares, bucles de puntuaciones difusas, etc.) una vez que superas listas pequeñas.
Limpieza opcional incorporada: puedes habilitar la limpieza de texto común (minusculización, eliminación de puntuación, ordenación de tokens). Esto ahorra horas (o días) de desarrollo + mantenimiento continuo.
Aglutinaciones de empresas manejadas automáticamente: finales comunes como “Inc”, “LLC”, “Ltd”, etc. son eliminadas para que coincida con el nombre real.
Referencias: similarity-api/blog/speed-benchmarks (1M registros en ~7 minutos; más rápido que las bibliotecas comunes de coincidencias difusas en Python).
Límites máximos en Zyla
Máx 1,000 cadenas por solicitud (aplicado).
¿Necesitas mayor / ilimitado?
Parámetros (solicitud POST)
data (requerido)
Una cadena que contiene un arreglo JSON de cadenas.
Valor de ejemplo para data:
["Acme Inc","ACME LLC","Globex GmbH"]
Más alto = coincidencias más estrictas (menos pares). Típico: 0.80–0.90 para la desduplicación de empresas.
Elimina las diferencias de puntuación (por ejemplo, “A.C.M.E.” vs “ACME”).
Hace que las coincidencias no diferencien mayúsculas y minúsculas.
use_token_sort (opcional, verdadero/falso, predeterminado falso)
Ayuda cuando el orden de las palabras cambia (por ejemplo, “Banco de América” vs “América Banco de”).
output_format (opcional, predeterminado string_pairs)
Este punto final puede devolver datos en múltiples formatos. Por favor selecciona uno de los siguientes:
string_pairs:
[cadena_A, cadena_B, similitud]index_pairs:
string_pairs, pero devuelve posiciones en tu lista de entrada en lugar de las cadenas.[índice_A, índice_B, similitud]deduped_strings:
deduped_indices:
deduped_strings, pero devuelve los índices de los elementos conservados.membership_map:
[0,0,0,3,3] significa que las filas 0/1/2 son un grupo (rep=0) y las filas 3/4 son otro (rep=3).row_annotations:
Devuelve un objeto por fila de entrada con una explicación de a qué pertenece (fila rep + similitud).
Usa cuando: quieras un resultado legible por humanos, por fila, para depuración o visualización en UI.
top_k (opcional, entero o "todo", predeterminado "todo")
todo = encontrar todas las coincidencias por encima del umbral.
O un número entero (por ejemplo, 50) para limitar coincidencias por fila (más rápido, menos resultados).
Solicitud de ejemplo en python
import requests, json
API_KEY = "TU_CLAVE_ZYLA"
URL = "API_URL/dedupe"
data_list = ["Microsoft","Micsrosoft","Apple Inc","Apple","Google LLC","9oogle"]
params = {
"data": json.dumps(data_list),
"similarity_threshold": "0.75",
"remove_punctuation": "true",
"to_lowercase": "true",
"use_token_sort": "false",
"output_format": "string_pairs",
"top_k": "all"
}
headers = {"Authorization": f"Bearer {API_KEY}"}
r = requests.post(URL, headers=headers, params=params, timeout=60)
print(r.status_code)
print(r.json())
Dedupe - Características del Endpoint
| Objeto | Descripción |
|---|---|
data |
[Requerido] JSON array of strings to deduplicate (max 1000). Example: ["a","b","c"] |
similarity_threshold |
Opcional Similarity cutoff from 0 to 1. Higher values are stricter (fewer matches). Default is 0.75. |
remove_punctuation |
Opcional If true, punctuation is removed before matching. Default is true. |
to_lowercase |
Opcional If true, strings are lowercased before matching. Default is true. |
use_token_sort |
Opcional If true, tokens in each string are sorted before matching. Useful when word order varies. Default is false. |
output_format |
Opcional Default: string_pairs Allowed values (and what each means): index_pairs List of matches as [i, j, score] where i and j are indices in the input list. string_pairs List of matches as [string_i, string_j, score] using original strings. deduped_strings List of strings with duplicates removed (one representative per group). deduped_indices List of indices representing the deduplicated set (one representative per group). membership_map Array of length N where entry i is the representative index for the group of data[i]. row_annotations Array of objects (one per input row) with fields: index, original_string, rep_index, rep_string, similarity_to_rep. |
top_k |
Opcional Limits how many neighbors are returned per input string. Use all for full dedupe, or a positive integer for top matches per row. |
{"status":"success","response_data":[["Apple","appl!e",1.0]]}
curl --location --request POST 'https://zylalabs.com/api/11921/instant+results+similarity+api/22655/dedupe?data=["Apple", "appl!e"]' --header 'Authorization: Bearer YOUR_API_KEY'
| Encabezado | Descripción |
|---|---|
Autorización
|
[Requerido] Debería ser Bearer access_key. Consulta "Tu Clave de Acceso a la API" arriba cuando estés suscrito. |
Sin compromiso a largo plazo. Mejora, reduce o cancela en cualquier momento.
El endpoint Dedupe devuelve un objeto JSON que contiene pares de cadenas coincidentes, puntajes de similitud y resultados deduplicados opcionales La salida se puede formatear como pares de cadenas, pares de índices o cadenas deduplicadas según la configuración especificada
Los campos clave en los datos de respuesta incluyen "estado" (indicando éxito o error) y "datos_de_respuesta" que contienen los resultados formateados de acuerdo con la solicitud del usuario como pares coincidentes o cadenas deduplicadas
Los usuarios pueden personalizar las solicitudes ajustando parámetros en el objeto "config" como "similarity_threshold" para la rigurosidad de coincidencias "remove_punctuation" para el preprocesamiento y "output_format" para elegir la estructura del resultado deseado
Los datos de respuesta están organizados como un arreglo de resultados donde cada entrada corresponde a un partido o cadena desduplicada Dependiendo del formato de salida las entradas pueden incluir cadenas originales índices y puntajes de similitud facilitando una fácil integración en flujos de trabajo
Los casos de uso típicos incluyen la deduplicación de listas de clientes la conciliación de registros con una lista principal la limpieza de datos de CRM y la resolución de entidades a través de diferentes fuentes de datos para garantizar la integridad y precisión de los datos
La precisión de los datos se mantiene a través de avanzados algoritmos de emparejamiento difuso que tienen en cuenta problemas comunes de datos como errores tipográficos y diferencias en mayúsculas y minúsculas La API está diseñada para manejar datos desordenados de manera efectiva asegurando resultados de emparejamiento fiables
Los valores de parámetro aceptados incluyen "similarity_threshold" (0 a 1), "remove_punctuation" (booleano), "to_lowercase" (booleano), "use_token_sort" (booleano) y "top_k" (entero o "todos"). Estos parámetros permiten a los usuarios adaptar el proceso de coincidencia a sus necesidades específicas
Si el punto final de Dedupe devuelve resultados parciales o vacíos, los usuarios deben revisar los datos de entrada en busca de problemas de calidad, como duplicados excesivos o umbrales de similitud muy bajos. Ajustar el "umbrales_de_similitud" o revisar la lista de entrada puede ayudar a mejorar los resultados
Nivel de Servicio:
100%
Tiempo de Respuesta:
313ms
Nivel de Servicio:
100%
Tiempo de Respuesta:
3.110ms
Nivel de Servicio:
100%
Tiempo de Respuesta:
201ms
Nivel de Servicio:
100%
Tiempo de Respuesta:
704ms
Nivel de Servicio:
100%
Tiempo de Respuesta:
1.259ms
Nivel de Servicio:
100%
Tiempo de Respuesta:
20.002ms
Nivel de Servicio:
100%
Tiempo de Respuesta:
3.407ms
Nivel de Servicio:
100%
Tiempo de Respuesta:
592ms
Nivel de Servicio:
100%
Tiempo de Respuesta:
2.403ms
Nivel de Servicio:
100%
Tiempo de Respuesta:
20.002ms
Nivel de Servicio:
100%
Tiempo de Respuesta:
0ms
Nivel de Servicio:
100%
Tiempo de Respuesta:
0ms
Nivel de Servicio:
100%
Tiempo de Respuesta:
0ms
Nivel de Servicio:
100%
Tiempo de Respuesta:
0ms
Nivel de Servicio:
100%
Tiempo de Respuesta:
0ms
Nivel de Servicio:
100%
Tiempo de Respuesta:
2.331ms
Nivel de Servicio:
100%
Tiempo de Respuesta:
291ms
Nivel de Servicio:
100%
Tiempo de Respuesta:
291ms
Nivel de Servicio:
100%
Tiempo de Respuesta:
175ms
Nivel de Servicio:
100%
Tiempo de Respuesta:
291ms