menu
Tatoeba
language
Register Log in
language English
menu
Tatoeba

chevron_right Register

chevron_right Log in

Browse

chevron_right Show random sentence

chevron_right Browse by language

chevron_right Browse by list

chevron_right Browse by tag

chevron_right Browse audio

Community

chevron_right Wall

chevron_right List of all members

chevron_right Languages of members

chevron_right Native speakers

search
clear
swap_horiz
search
sacredceltic sacredceltic April 6, 2019 April 6, 2019 at 4:28:33 PM UTC link Permalink

Bonjour.

J'avais déjà signalé ici il y a quelques temps que je trouvais que l'identification automatique de langues semblait moins bien fonctionner qu'auparavant.

Là, je viens d'introduire la phrase « La stupidité n'est pas une excuse » et elle a été identifiée comme de l'italien.
Ca semble extravagant.
Dans mon souvenir, le système d'identification mis en place par sysko, reposait sur une analyse statistique de sections de 3 ou 4 lettres des phrases de chaque langue, permettant d'établir un score de probabilité.
J'avais participé à l'évaluation de ce système, et il était très efficace, en tout cas pour les langues pour lesquelles Tatoeba disposait d'une quantité suffisante pour servir de base statistique.
Or si on décompose ma phrase en sections de 3 ou 4 lettres, on tombe sur des sections qui sont quasiment toutes hautement improbables en italien :
"La stupidità non è una scusa"
J'ai donc bien peur que le système ait été changé pour un système bien moins performant qu'auparavant...

{{vm.hiddenReplies[31626] ? 'expand_more' : 'expand_less'}} hide replies show replies
gillux gillux April 6, 2019 April 6, 2019 at 5:27:23 PM UTC link Permalink

Je suis conscient que c’est frustrant, mais sache nous n’avons pas oublié ce problème, il est noté sur Github [1]. Mais merci de nous le rappeler!

C’est toujours le même algorithme de sysko qui détecte les langues, donc cela doit venir de la base de données sur la laquelle il s’appuie. J’avais tenté de la mettre à jour, mais ça n’avait pas résolu le problème. Je vais investiguer ça prochainement et je te tiendrai au courant si j’ai besoin de ton aide pour tester.

[1] https://github.com/Tatoeba/tatoeba2/issues/1731

{{vm.hiddenReplies[31627] ? 'expand_more' : 'expand_less'}} hide replies show replies
sacredceltic sacredceltic April 6, 2019 April 6, 2019 at 6:12:14 PM UTC link Permalink

Je serais ravi de participer à tous les tests en la matière.
Je trouve ce sujet passionnant et je me demande si d'autres services, sur Internet, ont ce besoin. Je pense que c'est une besoin émergeant. Et il faudrait envisager de recourir à de l'IA, du "deep learning", de la même manière qu'on apprend à des systèmes à reconnaître des visages.
Je pense qu'il serait intéressant de demander à Google de l'assistance en la matière. Je suis convaincu qu'ils prêteraient leur aide, car ils doivent considérer le projet Tatoeba comme intéressant et prometteur, et donc avec bienveillance.
Mais, en attendant, je trouvais la piste prise par sysko très intéressante. D'ailleurs, les probabilités, c'est la base de ce sur quoi s'appuie le "deep learning" pour dire qu'une photo est celle d'un visage ou pas.
La connaissance est rarement algorithmique. Elle est plutôt cumulative.

{{vm.hiddenReplies[31629] ? 'expand_more' : 'expand_less'}} hide replies show replies
gillux gillux April 23, 2019 April 23, 2019 at 2:11:37 PM UTC link Permalink

Comme promis, je me suis penché sur le problème.

J’ai construis un jeu de données en extrayant 10% du corpus actuel au hasard et j’ai utilisé ça comme base de travail. J’ai divisé cette base en deux parties, 90% pour entraîner le modèle, et 10% pour tester le modèle entraîné. Avec l’algorithme de détection actuel, j’ai constaté un taux de réussite de 94%, ce qui n’est pas trop mal. J’ai tout de même réécrit l’algorithme, parce qu’il me paraissait un peu mal fichu. Après pas mal de peaufinages, je suis parvenu à un taux de réussite de 97%. J’ai installé ça sur https://dev.tatoeba.org/, je t’invite à tester.

Il faut garder en tête que de notre point de vue d’être humain, l’algorithme peut paraître assez stupide quand il se trompe, mais ça ne veut pas dire qu’il est nul.

Si on constate qu’il n’arrive pas à détecter correctement « La stupidité n'est pas une excuse », on peut logiquement penser qu’il est plutôt mauvais. S’il se plante sur une phrase aussi « facile » (à nos yeux), qu’en sera-t-il avec une phrase plus ambiguë ?

Or, ce n’est pas parce qu’il échoue sur une phrase facile qu’il échouera aussi sur une phrase difficile. L’algorithme ne regarde pas les mots, tout repose sur de simples statistiques de co-occurences de caractères (pas encore de "deep learning", désolé ;-)). Pour l’algorithme, les phrases les plus difficiles ne sont pas les plus ambiguës, mais celles qui contiennent des suites de caractères pour lesquelles ses statistiques sont mauvaises.

Bref, pour se faire une idée de la qualité de l’algorithme, il faut regarder comment il se débrouille dans l’ensemble, et dans toutes les langues.

En regardant là où l’algorithme a du mal, j’ai noté que le Berbère est souvent confondu avec le Kabyle (et vice-versa), ce qui rend ces langues relativement mal reconnues par l’algorithme, malgré la quantité de données dont nous disposons pour elles. Je me demande à quel point elles sont proches. Pareil pour le Russe qui est parfois confondu avec l’Ukrainien (et vice-versa), là aussi je me demande à quel point ces langues sont proches. Il y a aussi les langues latines qui sont parfois reconnues comme de l’interlingua, ce qui n’est pas si étonnant vu que l’interlingua est directement basé sur les langues latines.

{{vm.hiddenReplies[31732] ? 'expand_more' : 'expand_less'}} hide replies show replies
sacredceltic sacredceltic April 23, 2019 April 23, 2019 at 3:47:04 PM UTC link Permalink

Merci de t’en être occupé.
Je comprends que les 10% du corpus, ce n’est qu’un essai.
Le plus, le mieux. Idéalement il faudrait utiliser la totalité du corpus, en tout cas les phrases écrites par des locuteurs dont c’est la langue natale ( enfin celle qu’ils déclarent avoir...)
Et il faudrait une mécanique qui permette sa réactualisation permanente (sysko avait prévu ce truc, dans ma mémoire, mais ça n'avait peut-être jamais été mis en œuvre...)
Ça n’a pas besoin d’être du temps réel. Un bon traitement hebdomadaire ferait l’affaire.
Donc sans être du « profond », ce serait quand même de l’apprentissage...

{{vm.hiddenReplies[31733] ? 'expand_more' : 'expand_less'}} hide replies show replies
gillux gillux April 24, 2019 April 24, 2019 at 2:33:56 AM UTC link Permalink

Les 10% du corpus, c’est juste pour me permettre à moi de travailler avec un volume de données suffisamment petit pour être analysé rapidement, et suffisamment gros pour être significatif. Le temps de faire des essais et des évaluations.

L’algorithme actuellement installé sur dev.tatoeba.org a été quant à lui entraîné avec la totalité des phrases de tatoeba.org et je souhaite l’installer tel quel sur tatoeba.org. Je t’invite donc à l’essayer.

Bien sûr, le modèle sera réactualisé régulièrement.

{{vm.hiddenReplies[31737] ? 'expand_more' : 'expand_less'}} hide replies show replies
sacredceltic sacredceltic April 25, 2019 April 25, 2019 at 7:41:43 PM UTC link Permalink

Je ne peux pas dire que j’aie « stressé «  le système, mais je l’ai testé avec quelques phrases courtes, qui sont les plus difficiles à reconnaître par ce type de technique, et avec du vocabulaire non standard.
Je dois dire que je suis très satisfait du résultat. C’est très efficace. Je n’ai eu aucune erreur.
Donc merci beaucoup pour le résultat parfait !
Il reste à tester avec d’autres langues, mais pour le français, c’est redoutable !
Bravo !

{{vm.hiddenReplies[31763] ? 'expand_more' : 'expand_less'}} hide replies show replies
gillux gillux April 26, 2019 April 26, 2019 at 6:41:14 AM UTC link Permalink

Merci pour ton retour. Je suis confiant quant à l’efficacité de la détection pour les autres langues, donc j’ai dores et déjà installé la nouvelle version de l’algorithme sur tatoeba.org.