PROJET AUTOBLOG


Shaarli - le hollandais volant

Site original : Shaarli - le hollandais volant

⇐ retour index

La machine à inventer des mots - le hollandais volant

lundi 27 août 2018 à 19:52

Voilàààà.

J’ai enfin réussi à implémenter l’idée (géniale) de David Louapre (de Science-Étonnante).

C’est un générateur de mots.

Mais contrairement à un truc simple qui sort des lettres au hasard, ou même une simple alternance voyelle/consonne, ce script utilise une table de probabilités qu’ont les lettres de ses suivre les unes des autres.

C’est pour cette simple raison que les mots produits ici sonnent si bien (à noter par contre qu’il reste difficile de les lire : on hésite dessus, car ils sont inédits. Si cela montre une chose, c’est qu’à force de lire, on ne lit plus des lettres, mais vraiment des mots, ce qui est plus rapide).

Par exemple, en Français, le « q » est généralement suivi d’un « u » (à 99,005 % du temps sur certains tests – le reste du temps il est suivi d’un « a » (dans Qatar), d’un autre « q » (Saqqarah) ou d’un « n » (dans le sigle LQDN, présent dans mon dictionnaire !).

Je produits une table de probabilités pour toutes les lettres, suivies de toutes les autres.

Pour de meilleurs résultats, comme le conseille d’ailleurs David dans son article, le script analyse des séquences de 3 lettres, les lettres de début, et de fin.
Pour le Français, mon script utilise environ 80 000 mots pour construire cette table de probabilités.

Dans cet outil, le script qui produit la table n’est pas présente (elle sera publiée prochainement). Le script récupère juste la table puis construit des mots.

J’ai fait les tables pour diverses langues (français, allemand, islandais, suédois, norvégien, néerlandais, anglais, letton, italien, danois, espagnol, slovaque, portugais, albanais, ukrainien (ce dernier est en cyrillique)).

Notez que les diacritiques (éàèçâæ…) sont également pris en compte, ainsi que les caractères spécifiques à ces langues.

Je voulais ajouter d’autres langues (polonais, grec, tchèque…), mais JavaScript supporte mal l’unicode et en l’occurence… ces langues ne passent pas. D’ailleurs, certains caractères ne marchent tout simplement pas dans Unicode avec SublimeText ou Xed, donc je laisse tomber pour le moment.

J’aimerais aussi ajouter le japonais (katakanas) et le coréen (hangul). Les kana ça va être simple (si JS supporte), les hangeul un peu moins (il faudra décomposer les han, faire les tables, produire les mots, et reconstruire les han. On pourrait aussi supporter tous les han, mais le tableau serait beaucoup trop gros — là aussi, à condition que JS supporte ça).


— (permalink)