Faire un don ! | | style | statistiques | contactez-nous | plan | lettre d'information

Journal : Google livre ses N-Grammes !

Posté par Duncan Idaho (Jabber id, page perso, ) le 13 août 2006
Bonjour,

il semble que la question du traitement automatique du langage intéresse quelques personnes ici (correcteur grammaticaux, thésaurus...) alors je me permet de relayer cette information que j'ai reçu il y a quelques jours.

http://googleresearch.blogspot.com/2006/08/all-our-n-gram-ar(...)

All Our N-gram are Belong to You


Si vous n'avez aucune idée de ce qu'est un N-gramme, il y a un article (largement améliorable) sur wikipédia : http://fr.wikipedia.org/wiki/N-gramme

En gros, partant d'une unité textuelle (caractère, mot, phrase) on retient les n-séquences différentes et leur probabilité. Par exemple, on sait qu'en français, le bi-gramme (n-gramme de niveau 2) le plus fréquent est la séquence "de". Ceci informe, lors d'un traitement automatique, sur la lettre la plus fréquente apparaissant après un "d".

Application : vous programmez un logiciel de reconnaissance de l'écriture, vous reconnaissez « mond* », avec « * » un caractère très mal reconnus, le logiciel hésite entre "e" et "l". Muni des n-gramme, il proposera certainement le choix "e" car "dl" est un bigramme très rare (bon, dans la vraie vie le logiciel dispose d'un dictionnaire qui va lui proposer "monde", qui existe, plutôt que "mondl", qui n'existe pas).

Bref, c'est une ressource assez précieuse mais pas nécessairement facile à constituer (il n'est pas évident de récolter des corpus fiable, bien constitué, voir http://fr.wikipedia.org/wiki/Corpus#Le_corpus_dans_la_scienc(...) ). Google propose ici à la communauté scientifique :

We processed 1,011,582,453,213 words of running text and are publishing the counts for all 1,146,580,664 five-word sequences that appear at least 40 times. There are 13,653,070 unique words, after discarding words that appear less than 200 times.


En gros : plus d'un milliards de 5-gramme (énorme !), le tout sur 6 DVD...

> Lire le journal (10 commentaires, moyenne: 3,5).  

Cette discussion est archivée, il n'est plus possible de laisser des commentaires.

Note : les commentaires appartiennent à ceux qui les ont postés. Nous n'en sommes pas responsables.

Sympa.

Posté par Mathieu Stumpf (Jabber id, page perso, ) le 13/08/2006 à 11:20. (lien). Évalué à 10.

J'aime beaucoup le

All Our N-gram are Belong to You


Voir http://fr.wikipedia.org/wiki/All_your_base_are_belong_to_us

Blahmatic

Posté par Brice Arnould ( un_brice ) (page perso, ) le 13/08/2006 à 11:29. (lien). Évalué à 4.

J'ai codé recement quelque chose dans cette idée : ça s'appelle blahmatic, et c'est une généralisation du pipotron.
Concrètement: pendant la phase de lecture, après avoir découpé la phrase en mots, il associe à chaque paire de mots consécutifs un troisième.
Ensuite, la phase de génération consiste à prendre deux mots qui étaient en début de phrase et à leur associer l'un des mots qui a suivit le couple, et ainsi de suite jusqu'à une fin de phrase.

Par exemple avec les phrases
"Iksaif aime les vaches.", Iksaif aime les chamos., "Le chat aime les souris." et la regexp [[:space:]]
Blahmatic pourrait générer
Iksaif aime les vaches. (Iksaif aime)->les, (aime les)->vaches
Iksaif aime les souris. (Iksaif aime)->les, (aime les)->souris

C'est sous GPL, y'a une interface SuckingDisplayLibrary, une en ligne de commande et un fichier LisezMoi qui explique tout (notement le principe du wrapper que j'ai utilisé pour ne pas avoir à subir l'API de la susnommée SDL).
Le code se veut lisible et documenté, le coeur du programe (grammar.c) ne fait que 256 lignes, et y'a même un port windows qui va bientôt être ejecté du code source.
Manque plus qu'un corpus adapté, je reconnais n'avoir pas trop cherché...

Mangez-en ! http://vleu.net/blahmatic/blahmatic.tar.bz2 (si y'en a que ça interesse, je peut présenter plus précisement l'implémentation)

J'allais oublier l'exemple :

J'en arrive maintenant au point qui est le même pour la 3D , avec une fenêtre impossible à fermer sans passer par un "Bonjour" , et se terminer par une formule de politesse comme "Merci d'avance" .
(généré par ./blahmatic langs/sdz/ --talk)

--
Respect à RMS.
  • [^]Re: Blahmatic

    Posté par chimrod (Jabber id, page perso, ) le 13/08/2006 à 14:06. (lien). Évalué à 4.

    C'est le principe des chaînes de markov[1] appliquées à la génération de phrases.
    Il existe de nombreux projets qui sont basés la dessus, nottamment en ce qui concerne les bots parlant sur IRC, comme par exemple magahal[2] qui est assez avancé ou encore benzo[3] qui est juste un script python illustrant la chose.
    Je suis aussi en train de plancher là dessus, puisque je suis en train de reprendre le code de PyBorg[4] et je compte modifier le processus de réponse pour qu'il utilise ce principe... Je n'avais pas connaissance de ton projet, mais je compte aller y faire un tour pour voir comment tu gère tout ça !
    Quoi qu'il en soit, c'est assez instructif de voir comment tout cela fonctionne ! :)

    [1] : http://fr.wikipedia.org/wiki/Cha%C3%AEne_de_Markov#Exemple:_(...)
    [2] : http://megahal.alioth.debian.org/
    [3] : http://benzo.sourceforge.net/
    [4] : http://rezal404.org/wikini/wakka.php?wiki=PyBorG

    --
    It is no bug, it's future
    • [^]Re: Blahmatic

      Posté par Nicolas Boulay () le 16/08/2006 à 08:24. (lien). Évalué à 8.

      Vos boots seraient capables de loguer un chan IRC et de ressortir des réponses donnés à des questions plus anciennes ?

      En gros le bot log les chat sur un chan d'aides par exemples, et lorsqu'une question est posé ou lui est posé, il réponds en fonction de phrase donné dans le même contexte dans le passé.

      • [^]Re: Blahmatic

        Posté par Duncan Idaho (Jabber id, page perso, ) le 22/08/2006 à 11:34. (lien). Évalué à 2.

        A priori non. Enfin ça n'est pas impossible, mais ça n'est sans doute pas la meilleure approche.

        En revanche, l'idée est intéressante (et pas si difficile que ça je pense), le plus dur étant la récolte de questions/réponses.

        • [^]Re: Blahmatic

          Posté par Nicolas Boulay () le 23/08/2006 à 09:35. (lien). Évalué à 2.

          Non la récolte est facile. Il suffit que le bot log le chan en cours. C'est souvent toujours les memes question qui reviennent. Cela revient à créer une faq automatique.

  • [^]Re: Blahmatic

    Posté par Corentin Chary (page perso, ) le 13/08/2006 à 19:01. (lien). Évalué à 4.

    /me n'aime pas les chamos

    --
    Vive les Sugus !§

Watching for an announcement ...

Posté par left () le 14/08/2006 à 07:22. (lien). Évalué à 3.

Le lien de google nous demande de surveiller une annonce.
Je suis allé sur la page du LDC, mais rien.
Toi qui a reçu ça il y a qques jours, tu as vu qque chose passer ou pas ?

[+] Premières utilisations

Posté par plagiats () le 14/08/2006 à 09:11. (lien). Évalué à -6.

Si j'ai bien compris, on va pouvoir accéder à ces n-grammes depuis son nokia-770 et pouvoir commander, sans se tromper, son pain au chocolat en 15 langues !

Autre utilisation : Participer à La Roue De La Fortune et faire parcourir des kilomètres de bonnes réponses à la belle Victoria Silvted !

--
La mort est un phénomène naturel qui se produit par l'avalement répété de petites quantités de salive au cours d'une grande période de temps. - George Carlin

Licence ?

Posté par jjl (page perso, ) le 17/08/2006 à 12:17. (lien). Évalué à 4.

J'ai rapidement regardé l'annonce, mais je n'ai pas vu de détails sur les conditions d'utilisation.

Ce serait encore mieux si on peux intégrer/utiliser cette base (ou une partie) dans des softs libres.

Revenir en haut de page