← Retour au blog

API de détection de langue : la méthode des trigrammes

API de détection de langue : la méthode des trigrammes

La détection de langue par fréquence de trigrammes identifie la langue d’un texte en comptant les séquences de trois caractères qu’il contient et en comparant cette distribution à des profils précalculés pour chaque langue. C’est une technique statistique compacte et rapide qui n’exige aucun modèle neuronal, et c’est l’approche du détecteur de langue d’ipto, qui couvre 76 langues.

Comment fonctionne la détection par trigrammes

Chaque langue a des combinaisons de lettres caractéristiques. En anglais, des séquences comme « the », « ing » et « ion » sont partout ; en espagnol, « ión », « que » et « los » prennent leur place ; en allemand, « sch », « ein » et « der » sont fréquentes. Un trigramme est simplement une suite de trois caractères tirée du texte, généralement après passage en minuscules et suppression des chiffres et de la ponctuation, les espaces étant conservés pour que les limites de mots fassent partie du motif. La chaîne « th », précédée d’un espace, signale par exemple un mot commençant par « th ».

Le détecteur construit à l’avance un profil pour chaque langue en comptant les trigrammes dans un grand corpus de référence et en les classant par fréquence. Au moment de la requête, il fait de même pour votre texte et mesure la proximité de cette distribution avec chaque profil stocké. La langue à la plus petite distance l’emporte, et l’écart entre le meilleur candidat et le deuxième donne une valeur de confiance. Les profils étant des tables de correspondance, le travail par requête se résume à un seul passage sur le texte plus quelques comparaisons. Aucun service distant n’est nécessaire ; rien du texte n’a donc à quitter le serveur.

Écritures contre trigrammes

Les statistiques de trigrammes sont surtout utiles lorsque de nombreuses langues partagent un système d’écriture. Les écritures latine, cyrillique, arabe et dévanagari accueillent chacune de nombreuses langues, et le détecteur doit s’appuyer sur les motifs de fréquence pour distinguer le portugais de l’espagnol ou le russe de l’ukrainien. Pour les langues qui ont leur propre écriture, comme le grec, le thaï, le coréen, le tamoul ou le bengali, l’écriture suffit généralement à nommer la langue ; aucune comparaison de fréquence n’est donc nécessaire. Le chinois et le japonais demandent un peu plus de soin, car le texte japonais mêle des kana et des caractères Han, ce qui est un indice fort du japonais. Dans ipto, 61 des 76 langues sont distinguées par fréquence de trigrammes et les 15 autres sont reconnues à partir de leur écriture.

Où cela fonctionne bien et où cela échoue

Pour du texte web court comme des titres, des commentaires, des requêtes de recherche et des tickets de support, les méthodes par trigrammes conviennent bien. Elles exigent très peu d’entrée pour produire une estimation utile, sont peu coûteuses à exécuter et sont entièrement déterministes, ce qui rend le comportement facile à tester et à déboguer. Les grands classifieurs neuronaux peuvent être plus précis sur les cas difficiles, en particulier avec du texte extrêmement court ou bruité, mais ils coûtent plus cher à exécuter et sont plus difficiles à inspecter. Le meilleur choix dépend de vos besoins de précision et de vos contraintes ; pour le routage et l’étiquetage, un détecteur léger suffit fréquemment.

Connaissez ses modes de défaillance avant de vous y fier :

  • Entrée très courte. Une poignée de caractères offre trop peu de trigrammes. L’API d’ipto renvoie une langue nulle pour une entrée de moins de 10 caractères, et pour une entrée de moins d’environ 30 caractères elle peut donner une meilleure estimation mais marque reliable comme false.
  • Langues très proches. Le norvégien et le danois, ou le croate et le serbe, partagent la plupart de leurs trigrammes. Vérifiez les candidats suivants lorsque la confiance est faible.
  • Texte multilingue. Une comparaison de profils suppose une langue dominante. Un paragraphe qui change de langue en cours de route renverra la langue qui possède la majorité des caractères.
  • Bruit. Les URL, le code, les hashtags et les codes produit ajoutent des trigrammes qui n’appartiennent à aucune langue. Supprimez-les avant la détection.
  • Langues rares. Une langue hors de l’ensemble pris en charge renvoie la correspondance statistique la plus proche plutôt qu’une correspondance exacte.

L’utiliser en pratique

Vous pouvez coller du texte dans le détecteur de langue pour voir la langue gagnante, une valeur de confiance et les candidats suivants. Depuis du code, appelez GET /v1/language?text=Bonjour ; la requête est analysée localement, le texte n’est envoyé ni à un fournisseur tiers ni à un modèle d’IA, et rien n’est journalisé. L’offre gratuite autorise 1 000 requêtes par jour sans inscription, et la documentation de l’API décrit les champs de réponse.

Les usages courants comprennent le choix d’une langue source de traduction, la définition de l’attribut lang d’une page et le routage des tickets de support vers la bonne équipe. Un autre schéma utile consiste à associer la langue du texte au contexte réseau. La langue est un signal sur l’auteur, pas sur la connexion ; elle sera donc souvent en désaccord avec l’origine de la connexion, et un utilisateur hispanophone en France ou sur un VPN est tout à fait normal. Si vous voulez comparer les deux signaux, une vérification de VPN et de proxy sur l’adresse IP aide à voir si un décalage de localisation a une explication réseau, et le parseur de User-Agent expose le contexte du navigateur et de l’appareil. Traitez tout décalage comme un indice, jamais comme la preuve que quelque chose ne va pas.

Réponses directes

Elle identifie la langue d’un texte en comptant les séquences de trois caractères et en comparant leurs fréquences à des profils stockés pour chaque langue. Le profil le plus proche donne la réponse et l’écart donne une valeur de confiance.
Une chaîne courte contient trop peu de trigrammes pour distinguer de façon fiable des langues proches. L’API d’ipto renvoie une langue nulle en dessous de 10 caractères et signale les résultats de moins d’environ 30 caractères comme non fiables.
Non. Le détecteur de langue d’ipto analyse le texte localement avec des statistiques de trigrammes, n’appelle aucun fournisseur externe ni modèle d’IA, et ne journalise pas l’entrée.
← Retour au blog