API de detección de idioma: cómo funcionan los trigramas
La detección de idioma por frecuencia de trigramas identifica el idioma de un texto contando las secuencias de tres caracteres que contiene y comparando esa distribución con perfiles precalculados de cada idioma. Es una técnica estadística compacta y rápida que no necesita ningún modelo neuronal, y es el enfoque en el que se basa el detector de idioma de ipto, que cubre 76 idiomas.
Cómo funciona la detección por trigramas
Cada idioma tiene combinaciones de letras características. En inglés, secuencias como «the», «ing» y «ion» están por todas partes; en español, «ión», «que» y «los» ocupan su lugar; en alemán, «sch», «ein» y «der» son frecuentes. Un trigrama es simplemente una serie de tres caracteres tomada del texto, normalmente tras pasarlo a minúsculas y eliminar dígitos y signos de puntuación, conservando los espacios para que los límites de palabra formen parte del patrón. La cadena « th», por ejemplo, señala una palabra que empieza por «th».
El detector construye de antemano un perfil de cada idioma contando los trigramas en un gran corpus de referencia y ordenándolos por frecuencia. En el momento de la consulta hace lo mismo con tu texto y mide cuánto se acerca esa distribución a cada perfil almacenado. Gana el idioma con la menor distancia, y la diferencia entre el mejor candidato y el segundo da un valor de confianza. Como los perfiles son tablas de consulta, el trabajo por solicitud es una única pasada sobre el texto más unas pocas comparaciones. No se necesita ningún servicio remoto, así que nada del texto tiene que salir del servidor.
Escrituras frente a trigramas
Las estadísticas de trigramas son más útiles cuando muchos idiomas comparten un sistema de escritura. Las escrituras latina, cirílica, árabe y devanagari albergan cada una muchos idiomas, y el detector tiene que apoyarse en patrones de frecuencia para distinguir el portugués del español o el ruso del ucraniano. Para los idiomas que tienen una escritura propia, como el griego, el tailandés, el coreano, el tamil o el bengalí, la escritura por sí sola suele bastar para nombrar el idioma, por lo que no hace falta ninguna comparación de frecuencias. El chino y el japonés requieren algo más de cuidado, ya que el texto japonés mezcla kana con caracteres Han, lo que es un indicio fuerte de japonés. En ipto, 61 de los 76 idiomas se separan por frecuencia de trigramas y los otros 15 se reconocen por su escritura.
Dónde funciona bien y dónde no
Para texto web corto, como títulos, comentarios, consultas de búsqueda y tickets de soporte, los métodos de trigramas son una buena opción. Necesitan muy poca entrada para producir una estimación útil, son baratos de ejecutar y totalmente deterministas, lo que facilita probar y depurar su comportamiento. Los clasificadores neuronales grandes pueden ser más precisos en casos difíciles, sobre todo con texto extremadamente corto o ruidoso, pero cuestan más de ejecutar y son más difíciles de inspeccionar. Cuál es mejor depende de tus necesidades de precisión y de tus restricciones; para enrutar y etiquetar, un detector ligero suele ser suficiente.
Conoce sus modos de fallo antes de depender de él:
- Entrada muy corta. Un puñado de caracteres ofrece muy pocos trigramas. La API de ipto devuelve un idioma nulo para entradas de menos de 10 caracteres y, para entradas de menos de unos 30 caracteres, puede dar una mejor estimación pero marca
reliablecomo false. - Idiomas muy próximos. El noruego y el danés, o el croata y el serbio, comparten la mayoría de sus trigramas. Revisa los candidatos siguientes cuando la confianza sea baja.
- Texto en varios idiomas. La comparación de perfiles asume un idioma dominante. Un párrafo que cambia a mitad devolverá el idioma que posea la mayoría de los caracteres.
- Ruido. Las URL, el código, los hashtags y los códigos de producto añaden trigramas que no pertenecen a ningún idioma. Elimínalos antes de la detección.
- Idiomas poco comunes. Un idioma fuera del conjunto admitido devuelve la coincidencia estadística más cercana y no una exacta.
Uso en la práctica
Puedes pegar texto en el detector de idioma para ver el idioma ganador, un valor de confianza y los candidatos siguientes. Desde código, llama a GET /v1/language?text=Bonjour; la solicitud se analiza localmente, el texto no se envía a un proveedor externo ni a un modelo de IA y no se registra nada. El nivel gratuito permite 1.000 solicitudes al día sin registro, y la documentación de la API describe los campos de la respuesta.
Entre los usos habituales están elegir el idioma de origen de una traducción, establecer el atributo lang de una página y enrutar los tickets de soporte al equipo adecuado. Otro patrón útil es combinar el idioma del texto con el contexto de red. El idioma es una señal sobre quien escribe, no sobre la conexión, por lo que a menudo discrepará de dónde procede la conexión; un usuario hispanohablante en Francia o en una VPN es del todo normal. Si quieres comparar ambas señales, una comprobación de VPN y proxy sobre la dirección IP te ayuda a ver si una discrepancia de ubicación tiene una explicación de red, y el parser de User-Agent expone el contexto de navegador y dispositivo. Trata cualquier discrepancia como una pista, nunca como prueba de que algo va mal.