La machine à inventer des mots, version Ikea

ikea-flatpack-furniture-1Vous connaissez le canapé Söft ? La commode Utrad ? L’étagère Hång ? L’armoire Muskydd ? Le mixeur Skymfor ? La poële Kukväde ? Le placard Klöstig ? Le circuit Rundering ? La table Oljulstad ? Les rideaux Lykofåtsly ? Le bureau Håkmanedfol ? La chaise Sjärganskig ?

Eh bien contrairement aux apparences, ces noms ne font pas partie du véritable catalogue Ikea ! Ils ont été fabriqués automatiquement par un algorithme qui s’inspire de vrais mots suédois pour en créer de nouveaux, qui « sonnent suédois » mais n’existent pas dans cette langue.

Les habitués de ce blog auront reconnu la méthode que j’avais utilisée il y a quelques semaines pour vous proposer ma machine à inventer des mots, au sujet de laquelle j’avais fait cette vidéo, que je vous remets pour ceux qui ne l’ont pas vue

Suite à la vidéo, j’avoue avoir été surpris par le nombre de personnes qui me demandaient le code source ! Il se trouve que je l’avais mis en partage sur le billet précédent, mais sans trop faire gaffe à la qualité de ce qu’il contenait.

Vu l’enthousiasme général et suite à un certain nombre de questions et suggestions, j’ai décidé de récrire une version un peu plus propre du code, et de la partager avec vous.

Parmi les nouveautés de ce code, j’ai surtout inclus plus de langues, grâce à une excellente source : les dictionnaires du package hunspell, merci à Samuel pour cette idée brillante ! (ici l’archive contenant les dictionnaires que j’ai légèrement adaptés)

Dans le cas du français, on peut faire la comparaison avec le dictionnaire que j’avais utilisé pour faire ma vidéo. En fait ce dernier n’en était pas vraiment un puisqu’il s’agissait plutôt d’un corpus de mots issus d’une analyse automatique des livres du projet Gutenberg. Ce corpus contenait donc beaucoup de mots au pluriel, ou bien de verbes conjugués à tous les temps, ce qui influençait pas mal les mots que j’avais obtenu dans la vidéo. Autre différence, les livres du projet Gutenberg étant supposés être du domaine public, on trouvait pas mal de vieux textes, ce qui donnait à mon avis ce côté sympathiquement « vieillot » des mots que j’avais générés.

Avec le dictionnaire français de hunspell, c’est un chouilla moins fun je trouve, mais ça marche bien quand même.

Voici quelques mots « français » fabriqués aléatoirement :

bilectique, pulablote, cyclisale, pluminer, gréricodire, tacatraptée, bardemper, cyclisale, gulatrie, extrabler, capapente, etc. (plein d’autres mots ici)

Grâce à hunspell, j’ai pu facilement étendre l’analyse à d’autres langues comme

l’espagnol,

cebilleño, diznerón, perador, vitazar, malúrda, menjez, cozonar, realsargados, etc. (plein d’autres mots ici)

l’italien,

tiviatote, oritace, ingivolosi, cappidero, stezzano, crettoble, revanazio, nenteggiando, etc.  (plein d’autres mots ici)

le hongrois,

kérmegy, szapolt, hiszó, ujjóbbrak, csipitkolge (plein d’autres mots ici)

et donc surtout…le suédois (plein d’autres mots ici) ! Ikea n’a qu’à bien se tenir !

Ci-dessous, vous trouverez une comparaison des matrices de transition des différentes langues, et qui montre que certaines langues sont plus contrastées que d’autres. Comme je le disais dans mon premier billet sur le sujet, les mots anglais créés par la machine sonnent relativement mal, et je pense que c’est à relier avec le fait que la matrice est peut-être moins contrastée que dans les autres langues, ce qui conduit à produire des mots plus aléatoires et moins typés.

Mais je vous mets tout en téléchargement pour que vous puissiez vous faire votre idée ! (ICI LE CODE SOURCE)

Français

matrix_FRAnglais

matrix_ENSuédois

matrix_SE

Italien

matrix_IT

Espagnol

matrix_ES

Hongrois

matrix_HU

20 réflexions sur “La machine à inventer des mots, version Ikea

  1. J’adore ! Attention toutefois les mots aléatoires évoquent parfois des mots existants… et pas les plus polis !! 🙂
    Kukväde par exemple… Il ne manque qu’un R au bout pour en faire un « temps de bite » !!! 🙂

    • Essaye de rajouter ces lignes après les imports pour forcer l’encoding, ça devrait fonctionner ensuite:

      import sys
      reload(sys)
      sys.setdefaultencoding(‘ISO-8859-1’)

  2. Hello… parlant moi-même suédois, je trouve que les mots ainsi générés ne « font pas trop suédois ». Alors que ça semble mieux marcher en français… Est-ce que l’ordre de la chaine de Markov devrait varier avec la langue ?
    En tout cas, je soupçonne fortement que ça ne marchera pas avec les langues sémitiques….

  3. Pingback: La machine à inventer des mots, version ...

  4. Pingback: Actualités - Dossiers à lire | Pearltrees

  5. Merci pour cette présentation ludique, et notamment la super introduction aux chaînes de Markov !

    Les « pseudo-mots » – c’est comme ça qu’on les appelle – sont fascinants car ils allient le plaisir très oulipen de jouer avec des sonorités cocasses à l’utilité scientifique. Quelques précisions à ce propos justement :

    Les pseudo-mots sont abondamment utilisés par les chercheurs en linguistique qui étudient comment le langage est acquis durant l’enfance, ou comment le cerveau traite et produit des mots. Des expériences utilisant des pseudo-mots ont permis par exemple de montrer que les enfants internalisent des règles assez complexes sur les structures phonétiques d’une langue avant même de commencer à parler, et ne se contentent donc pas simplement d’apprendre les mots qu’ils entendent par coeur. Les pseudo-mots permettent également de distinguer les mécanismes cérébraux liés au sens des mots (sémantique) de ceux qui en analysent la structure (phonétique et morphologie).

    Les linguistes utilisent différentes méthodes pour générer des pseudo-mots, y compris les chaines de Markov. Mais comme ils utilisent à la fois des vrais mots et des pseudo-mots dans leurs expériences (afin de les comparer) et qu’ils souhaitent contrôler précisément la nature des différences entre ces deux groupes de mots (comme la longueur, l’homonymie, la fréquence des syllabes, la proximité avec d’autres mots, etc.), ils partent en général de la liste des vrais mots qu’ils utiliseront dans leur expérience et les transforment selon des règles bien définies.

    Deux générateurs de pseudo-mots utilisés par les chercheurs :
    Wuggy : http://crr.ugent.be/programs-data/wuggy
    WordGen : http://www.wouterduyck.be/?page_id=29

  6. Salut je travaille sur un projet dans lequel j’aurait besoins de tes données sur les enchainements de lettres mais ton tableau(sur mon pc) je n’arrive pas a différencier les cases noirs (sans AUCUN enchainement(je précise parsque c’est important pour mon projet)) des cases bleu foncé. As tu les données sous forme de chiffes? ou uniquement le tableau?

    Si tu as les données peux tu s’il te plait me les envoyer?

  7. Merci pour l’idée de la machine à inventer des mots. Je l’ai reprise pour mon cours d’initiation à LabVIew à mes étudiants de master. Dans mon fascicule de TP, je les renvoie vers ton blog et ta vidéo. J’espère contribuer modestement à augmenter le nombre de vue et à faire connaître tes vidéos et ton blog.

  8. Le code tente d’utiliser un encoding sur un octet mais les données de « data » sont en utf-8.
    Pour utiliser le code j’ai tout repassé en raw bytes.

Laisser un commentaire

Entrez vos coordonnées ci-dessous ou cliquez sur une icône pour vous connecter:

Logo WordPress.com

Vous commentez à l'aide de votre compte WordPress.com. Déconnexion / Changer )

Image Twitter

Vous commentez à l'aide de votre compte Twitter. Déconnexion / Changer )

Photo Facebook

Vous commentez à l'aide de votre compte Facebook. Déconnexion / Changer )

Photo Google+

Vous commentez à l'aide de votre compte Google+. Déconnexion / Changer )

Connexion à %s