API de similitud de alto rendimiento es una API de coincidencia difusa y deduplicación de alta velocidad, diseñada para datos desordenados en el mundo real. Ayuda a identificar registros casi duplicados y armoniza entidades cuando los valores no coinciden exactamente: errores de ortografía, diferencias de mayúsculas y minúsculas, puntuación faltante, problemas de espacios, abreviaturas y cambios leves en el orden de las palabras
No necesita construir y ajustar su propio canal de coincidencia difusa, solo envíe cadenas (o registros) a la API y obtenga resultados de coincidencia de puntuaciones de similitud en los que puede confiar. La salida típica incluye pares coincidentes (por ejemplo, "Apple" ↔ "apple inc."), puntajes de similitud y resultados estructurados que son fáciles de incorporar en flujos de trabajo de limpieza de datos, CRM, trabajos de ETL y canales de análisis
Casos de uso comunes:
Eliminar duplicados de listas: Buscar duplicados en conjuntos de datos (coincidencias exactas) y devolver posibles pares duplicados
Conciliar con la lista maestra: Comparar listas entrantes con un conjunto de referencia (lista contra maestro)
CRM y limpieza de datos de clientes: Limpiar registros de clientes potenciales/cuentas/empresas que se ven afectados por duplicados en informes y promociones
Resolución de entidades y vinculación de registros: Conectar referencias a la misma entidad del mundo real en diversas fuentes
Razones por las cuales los equipos lo utilizan:
Listo para usar para tratar texto desordenado (sin necesidad de crear reglas manualmente para cada caso extremo)
Puntuaciones de similitud para clasificaciones y umbrales (puede elegir el grado de rigor)
Construido para escalabilidad y automatización (diseñado para funcionar en un canal, no solo como un script de una sola vez)
Dedupe es un endpoint de emparejamiento difuso de todos contra todos para encontrar duplicados dentro de una sola lista de cadenas. En lugar de comparar solo dos entradas por llamada a la API, envías un conjunto de datos y devuelve pares similares y/o grupos deduplicados en todo el conjunto.
Por qué usarlo
Aceleración masiva: típicamente ~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 integrada: puedes habilitar una limpieza de texto común (minúsculas, eliminación de puntuación, ordenación de tokens). Esto ahorra horas (o días) de desarrollo + mantenimiento continuo.
Sufijos de empresa manejados automáticamente: se eliminan finales comunes como "Inc", "LLC", "Ltd", etc., para que coincidas con el nombre real.
Referencias: similarity-api/blog/speed-benchmarks (1M registros en ~7 minutos; más rápido que las bibliotecas de emparejamiento difuso comunes de Python).
Límites duros en Zyla
Máximo 1,000 cadenas por solicitud (aplicado).
¿Necesitas más grande / ilimitado?
Parámetros (solicitud POST)
data (requerido)
Una cadena que contiene un array JSON de cadenas.
Valor de ejemplo para data:
["Acme Inc","ACME LLC","Globex GmbH"]
Mayor = emparejamiento más estricto (menos pares). Típico: 0.80–0.90 para deduplication de empresas.
Elimina diferencias de puntuación (por ej., "A.C.M.E." vs "ACME").
Hace que el emparejamiento no distinga entre mayúsculas y minúsculas.
use_token_sort (opcional, verdadero/falso, por defecto falso)
Ayuda cuando cambia el orden de las palabras (por ej., "Bank of America" vs "America Bank of").
output_format (opcional, por defecto string_pairs)
Este endpoint puede devolver datos en múltiples formatos. Por favor selecciona uno de los siguientes:
string_pairs:
[string_A, string_B, similarity]index_pairs:
string_pairs, pero devuelve posiciones en tu lista de entrada en lugar de las cadenas.[index_A, index_B, similarity]deduped_strings:
deduped_indices:
deduped_strings, pero devuelve los índices de los elementos mantenidos.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 cada fila de entrada con una explicación de a qué pertenece (fila rep + similitud).
Úsalo cuando: quieras un resultado legible por humanos, por fila, para depuración o visualización de UI.
top_k (opcional, entero o "todo", por defecto "todo")
todo = encontrar todas las coincidencias por encima del umbral.
O un entero (por ej., 50) para limitar coincidencias por fila (más rápido, menos resultados).
Ejemplo de solicitud 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())
Eliminar duplicados - 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/11917/similarity+api+-+batch+text+similarity+processing/22650/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. La Prueba Gratuita incluye hasta 50 solicitudes.
El endpoint Dedupe devuelve un objeto JSON que contiene pares de cadenas coincidentes, puntajes de similitud y resultados deduplicados opcionales La salida puede ser formateada como pares de cadenas, pares de índices o cadenas deduplicadas dependiendo de la configuración especificada
Los campos clave en los datos de respuesta incluyen "estado" (indicando éxito o error) y "datos_de_respuesta" que contiene los resultados formateados de acuerdo con la solicitud del usuario como pares coincidentes o cadenas desduplicadas
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 de resultado deseada
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 maestra 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 coincidencia difusa 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 coincidencia confiables
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 ajustar el proceso de coincidencia a sus necesidades específicas
Si el punto final de Dedupe devuelve resultados parciales o vacíos, los usuarios deben verificar 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:
704ms
Nivel de Servicio:
100%
Tiempo de Respuesta:
449ms
Nivel de Servicio:
100%
Tiempo de Respuesta:
1.937ms
Nivel de Servicio:
100%
Tiempo de Respuesta:
542ms
Nivel de Servicio:
100%
Tiempo de Respuesta:
398ms
Nivel de Servicio:
100%
Tiempo de Respuesta:
990ms
Nivel de Servicio:
100%
Tiempo de Respuesta:
3.110ms
Nivel de Servicio:
83%
Tiempo de Respuesta:
339ms
Nivel de Servicio:
100%
Tiempo de Respuesta:
393ms
Nivel de Servicio:
100%
Tiempo de Respuesta:
910ms
Nivel de Servicio:
100%
Tiempo de Respuesta:
429ms
Nivel de Servicio:
100%
Tiempo de Respuesta:
2.147ms
Nivel de Servicio:
100%
Tiempo de Respuesta:
1.747ms
Nivel de Servicio:
100%
Tiempo de Respuesta:
1.429ms
Nivel de Servicio:
100%
Tiempo de Respuesta:
2.521ms
Nivel de Servicio:
100%
Tiempo de Respuesta:
1.254ms
Nivel de Servicio:
100%
Tiempo de Respuesta:
5.312ms
Nivel de Servicio:
100%
Tiempo de Respuesta:
310ms
Nivel de Servicio:
100%
Tiempo de Respuesta:
210ms
Nivel de Servicio:
100%
Tiempo de Respuesta:
1.130ms