Présentation de Theuth et de Blue Moon



L'algorithme Theuth est basée sur une idée complètement originale, et qui va à contre-courant des idées dominantes en théorie linguistique.


Avant toutes choses, je précise que les exemples qui vont suivre tournent chez des hébergeurs peu puissants, et mettent pour cette raison beaucoup de temps à s'afficher. CE N'EST PAS UNE DEFICIENCE DE MON ALGORITHME, le problème est au niveau des hébergeurs car ils ne fournissent pas un service adapté à mes besoins « atypiques ».


Les algorithmes actuels, « chomskyens », sont SYNTAGMATIQUES. Ils découpent les textes en phrases, et les phrases en groupes de mots. Puis, ils opèrent sur ces groupes de mots unité par unité, et « recollent les morceaux ».


La façon dont Theuth traduit est différente. Theuth renonce à découper un texte en phrase et les phrases en groupes de mots. L'algorithme reproduit des principes d'intuition du traducteur, et se laisse guider par le rythme des phrases.


D'autre part, l'algorithme ne traduit pas les mots par d'autres mots, mais par des programmes, ce qui émule le comportement d'un traducteur humain qui se dit en voyant telle expression : « Je dois faire ceci ! » et non pas : « Je dois écrire cela ! ».


(Exemple de Je dois faire ceci... : « Je dois conserver le style de cette phrase », « Je ne dois pas répéter ce mot-là », « Je dois retenir que l'héroïne est enceinte », etc.)


La traduction fonctionne par pivots excentrés. Cela veut dire que toutes les langues sont rapportées à une représentation unique, en une langue universelle. Hé oui, c'est faisable ! Ça faisait cinquante ans qu'on s'y essayait... En fait, il suffisait de renoncer au syntagmatisme pour débloquer la question...


L'algo de Theuth est donc un parseur a-syntagmatique.


Le langage Theuth permettant de comprendre la langue naturelle, il était logique de faire en sorte que le code Theuth soit lui-même écrit... en langue naturelle ! Ou presque...


En tout cas, le code Theuth est écrit dans un langage clair, ce qui permet aux utilisateurs novices de faire du monkey programming.


Derrière cette facilité du code, il y a une autre idée :
permettre à n'importe qui de coder en Theuth, donc, permettre à n'importe qui d'augmenter et/ou d'améliorer les grammaires.


Ainsi, les grammaires Theuth seront des grammaires sous licence libre, qui seront l'œuvre de la communauté des utilisateurs.


D'autre part, l'algo Theuth possède une astuce de programmation qui lève les contradictions qui pourraient apparaître si des bouts de grammaire sont incompatibles entre eux.


Cela, ajouté au fait que les grammaires sont encodées dans une structure de Wiki (éminemment collaborative), fait que les grammairiens n'ont pas besoin de se doter d'une structure hiérarchique lourde pour coder ensemble : Chacun peut développer dans son coin !


Tout utilisateur étant un programmeur potentiel, il peut améliorer le produit à son échelle. Les grammaires sont très intuitives.


Au départ, on part avec une grammaire vraiment minimale, pour traduire les expressions et les phrases les plus courantes. Puis, du fait même que les nouveaux utilisateurs ont besoin de traduire de nouvelles phrases, il les ajoutent dans la base, et le produit gagne en valeur !


Et notez même encore que, par ce procédé, les capacités du traducteur sont EXACTEMENT celles qu'on exige de lui, puisque c'est la demande qui commande l'offre. Principe de développement citoyen.


[un exemple de code Theuth, voyez comme c'est intuitif] —— Comme vous le voyez le code se comprend tout seul !


[autre exemple de code Theuth]


La version suivante utilise un nouveau concept de programmation, que j'ai baptisé Programmation Orientée Chose. Ce n'est PAS la Programmation Orientée Objet, c'est autre chose.


C'est un mode de programmation puissant qui permet, appliqué à la langue naturelle, de lever les ambiguïtés syntaxiques.


Pour vous en convaincre, allez sur les pages suivantes, et jouez avec le bouton [Traduire] tout en bas à droite de l'écran :


[Une maxime personnelle (3 langues)] —— cette page a été créée de façon collaborative par des gens qui ne connaissent presque rien à Theuth —— elle démontre que le logiciel est facile d'usage !


[De la Bible, Jean 1:1 (6 langues)]


[Une phrase de Nietzsche (3 langues)] —— Notez comment l'algo, qui gère les phrases selon leur rythme permet par conséquent de conserver le style d'un auteur !


Voici encore des exemples de code Theuth :


[un exemple : une expression]


[Cet exemple ne permet pas de démontrer toute la puissance syntaxique du Theuth, mais ce n'est pas dû à des lacunes ou des déficiences de ma part : c'est juste que je suis aux limites de mon hébergeur, et que j'ai besoin d'un hébergeur plus puissant pour continuer à programmer... Voir la FAQ en fin de page.]


[Notamment, la v015 permet de décliner et de conjuguer automatiquement les mots, mais les versions de démo que je peux donner, compte-tenu des limitations de mon hébergeur, ne me permettent pas de vous le montrer !]


Comme les mots du texte-source ne sont pas traduits en mots, mais en programmes (qui affichent des mots, mais peuvent aussi faire d'autres choses), il est possible de faire preuve de toute la finesse d'un traducteur humain en sortie.


Par exemple, on peut insérer des petites notes pour expliquer les mots propres à une culture. De cette manière, si un mot qui est propre à une culture, et qui ne saurait donc être traduit sans note, apparaît, la note est insérée, mais seulement lors de la première apparition du mot culturel.


C'est le système des Notules :


[Exemple de Notules]


Jouez avec le bouton [Traduire], et ensuite regardez le code de la page pour voir comment cela fonctionne. (Regardez aussi le code de cette page !)


L'algorithme se distingue aussi des procédés de traduction automatique traditionnel en ce qu'il permet d'être très tolérant en entrée : il comprend les textes avec des fautes, et même il les rectifie.


On peut donc aussi se servir du programme comme d'un correcteur automatique, ou un arrangeur de style !


[Exemple de texte fautif bien compris quand même]


(Cette capacité miraculeuse est le résultat d'une longue réflexion théorique personnelle sur les concepts chomskyens de performance/compétence)


Un système de suivi subtil permet de repérer les coïncidences sémiotiques, et donc, entre autres, de repérer certains jeux de mots (pas tous, bien entendu), ou même certaines contrepèteries.


[exemple de page où l'on repère un jeu de mots dans le texte original]


En fait, repérer les contrepèteries n'est pas le but de ce système, et n'est pas très vendeur : le vrai but est de repérer les intentions du locuteur, et le système y arrive ! (mais j'ai besoin d'un hébergeur plus puissant pour pouvoir installer les pages qui le démontrent...)


Autrement dit les mots tels que lui, elle, ils, cela, demain, dont le sens dépend du contexte d'énonciation et de qui les dit !


Ces mots déictiques sont le cauchemar des traducteurs classiques, syntagmatiques et mots vers mots, mais pour Theuth, qui est a-syntagmatique et mots vers programmes, cela devient d'une grande facilité !


(bien sûr, dans certains cas rares, les heuristiques se trompent)


[Exemple de page où l'on voit des déictiques] —— Notez bien comment l'algo devine si le mot « lui » désigne un homme ou une femme !


L'algo peut faire de la compréhension de texte ou de l'extraction de données à partir de textes en langage naturel ! Et ceci est la conséquence du point précédent (compréhension des déictiques) !


L'algo peut donc transformer un texte en toute langue en code compilé, par exemple en langage de Web Sémantique pour extraction de données.


En fait, l'algo est même tellement puissant qu'on n'a plus besoin des codages de type « Web Sémantique » : Les données peuvent être extraites directement à partir du texte en langue naturelle !!!


L'algo comprend même les textes qui sont écrits en plusieurs langues.


C'est-à-dire qu'il est capable de comprendre même jusqu'aux textes où plusieurs langues sont mélangées, y compris des mélanges de langues dans la même phrase !


[Exemple de phrase originale multilingue] —— regardez le source de la page pour vous en convaincre ! —— NOTA: un petit bug lié au fait que je ne dispose pas d'assez de mémoire fait qu'il faut jouer plusieurs fois avec le bouton [Traduire] pour changer de langue !


C'est dû au caractère a-syntagmatique de l'algo. C'est un des points sur lequel il épouse le fonctionnement des traducteurs humains, qui ont également cette capacité.


Au passage, cela veut aussi dire que l'algo est capable de repérer tout seul dans quelle langue est écrit un texte qu'on lui donne... Ce qui est quelque chose qu'on ne savait pas encore faire aujourd'hui (ou plutôt, pour être exact, qu'on sait faire, mais dans des programmes à part du logiciel de traduction lui-même... ici les deux phases « reconnaissance de la langue de départ » et « traduction » sont effectuées en une seule passe !)...


L'algo restitue les références culturelles.


Si vous tapez un proverbe entier, ou une phrase qui fait référence dans votre culture (un gimmick), l'algo le repère, et traduit en conséquence pour que cela paraisse dans la langue de l'utilisateur à l'autre bout.


L'algo traduit aussi les patois, les argots et les jargons.


En effet, la définition du concept de « langue » est si vaste en langage Theuth, qu'il est possible de traiter comme un langue ce qui ne sera par exemple qu'un jargon.... voire même la façon de parler propre à une seule personne ! (« l'idiolecte »)


Ainsi, histoire de m'amuser, j'ai fait [cette page humoristique] où l'on peut traduire le texte original français en allemand et anglais, mais aussi en jargons tels que l'universitaire, l'anarchiste, le végétalien, la bourgeoise, etc...


Vous avez des objections ? La FAQ suivante devrait y répondre.


Pour ceux qui sont intéressés par les discussions de nature plus théorique, il y a encore cette page ! Bonne lecture !!!


Nicolas Montessuit




Le wiki Altra Quaze : http://bluemoon.tuxfamily.org//


Le wiki Blue Moon : http://bluemoon.anoptique.net/