Détecter si un message est en kreyòl, français ou anglais pour répondre dans la bonne langue

asked 2 months ago424 viewsfr

4

Mon application reçoit des messages dans les trois langues, souvent mélangées. Les bibliothèques de détection de langue classent beaucoup de messages kreyòl comme du français. Que faire ?

AI diagnosis

AI-generated. Not an answer — the community below confirms or corrects it. Always verify before relying on it.

1 Answer

5
✓
✓ Accepted answer

C'est un problème connu : le kreyòl partage beaucoup de vocabulaire avec le français, et les messages sont courts et souvent sans accents. Les détecteurs génériques (entraînés surtout sur des textes longs et « propres ») se trompent souvent.

Approche en couches :

1. Préférence explicite d'abord. La langue choisie dans le profil ou l'interface est le meilleur signal. Détectez seulement quand elle manque, ou pour signaler un changement.

2. Heuristique kreyòl rapide. Quelques marqueurs très fréquents en kreyòl, rares en français :

const HT_MARKERS = /\b(mwen|ou|nou|yo|pa|ap|kijan|kisa|poukisa|kounye a|anpil|bagay|fè|pou m|sa k|m ap)\b/i;
const FR_MARKERS = /\b(je|vous|nous|est|sont|pourquoi|comment|avec|aussi|très)\b/i;
 
function quickGuess(text: string): "ht" | "fr" | "en" | null {
  const ht = (text.match(new RegExp(HT_MARKERS, "gi")) ?? []).length;
  const fr = (text.match(new RegExp(FR_MARKERS, "gi")) ?? []).length;
  if (ht > fr && ht >= 2) return "ht";
  if (fr > ht && fr >= 2) return "fr";
  return null; // incertain → étape suivante
}

3. Modèle en dernier recours. Pour les cas incertains, un petit appel à un LLM (« Réponds uniquement par ht, fr ou en ») est très fiable, y compris sur les messages mélangés, et peu coûteux avec un modèle léger.

4. Répondre intelligemment. Pour un message mélangé kreyòl/français, répondre en kreyòl est généralement le bon choix. Proposez toujours un moyen simple de changer de langue.

Constituez un petit jeu de test (vrais messages anonymisés, étiquetés à la main) pour mesurer chaque amélioration.

Sign in to tell others whether this worked.

answered 2 months ago

Sign in and verify your email to post an answer.