2011-04-08 3 views
9

Je cherche des informations sur des algorithmes pour traiter des phrases de texte ou pour suivre une structure lors de la création de phrases valables dans un langage humain normal tel que l'anglais. Je voudrais savoir s'il existe des projets dans ce domaine que je peux apprendre ou utiliser. Par exemple, si je donnais un nom à un programme, je le dotais d'un thésaurus (pour les mots apparentés) et d'une partie de discours (donc il comprenait où chaque mot appartenait dans une phrase) - pouvait-il créer un aléatoire, phrase valide? Je suis sûr qu'il y a beaucoup de sous-sections de ce genre de recherche, donc toutes les pistes dans ce domaine seraient excellentes.Ordinateur AI algorithme pour écrire des phrases?

Répondre

1

L'écriture de phrases aléatoires n'est pas si difficile. L'exemple simple-english-grammar d'un manuel d'analyseur peut être exécuté en sens inverse pour générer des phrases non-sens grammaticalement correctes.

Une autre façon est le mot-tuple-marche aléatoire, rendu populaire par l'ancien magazine BYTE travestissement, ou des trucs comme http://www.perlmonks.org/index.pl?node_id=94856

9

Ceci est appelé NLG (génération du langage naturel), bien que ce soit principalement la tâche de générer du texte qui décrit un ensemble de données. Il y a aussi beaucoup de recherches sur la génération de phrases complètement aléatoires.

Un point de départ consiste à utiliser des chaînes de Markov pour générer des phrases. Comment cela se fait est que vous avez une matrice de transition qui indique la probabilité de transition entre chaque partie de discours. Vous avez aussi le début et la fin de la partie de discours la plus probable d'une phrase. Mettez tout cela ensemble et vous pouvez générer des séquences probables de parties du discours. Maintenant, vous êtes loin d'avoir terminé, cela n'offrira pas un très bon résultat car vous ne tenez compte que de la probabilité entre les mots adjacents (aussi appelés bi-grammes), alors ce que vous voulez faire est d'étendre ceci pour regarder par exemple à la matrice de transition entre trois parties de discours (ceci fait une matrice 3D et vous donne des trigrammes). Vous pouvez l'étendre à 4 grammes, 5 grammes, etc. en fonction de la puissance de traitement et si votre corpus peut remplir une telle matrice. Enfin, vous avez besoin de rafistoler des choses telles que l'accord d'objet (sujet-verbe-accord, adjectif-verbe-accord (pas en anglais cependant), etc.) et le temps, de sorte que tout soit congruent.

14

Le champ que vous cherchez est appelée génération du langage naturel, un sous-domaine de traitement du langage naturel http://en.wikipedia.org/wiki/Natural_language_processing

génération de la peine est soit vraiment facile ou vraiment selon dur à quel point vous voulez que les phrases soient. Actuellement, il n'y a pas de programmes qui seront capables de générer 100% de phrases sensées sur les noms donnés (même avec un thésaurus) - si c'est ce que vous voulez dire.

Si, par contre, vous seriez satisfait d'un non-sens parfois non grammatical, alors vous pourriez essayer un générateur de phrases basé sur n-gramme. Ceux-ci forment simplement une chaîne de mots qui ont tendance à apparaître en séquence, et les générateurs de 3 à 4 grammes semblent assez bien parfois (bien que vous les reconnaissiez comme étant ce qui génère beaucoup de spams).

est ici une introduction aux bases de la production à base de n-grammes, en utilisant NLTK: http://www.nltk.org/book/ch02.html#generating-random-text-with-bigrams

+0

Le deuxième lien a besoin d'authentification! – Skynet

3

Oui. Il y a quelques travaux traitant de résoudre des problèmes en NLG avec des techniques d'IA. Pour autant que je sache, actuellement, il n'y a aucune méthode que vous pouvez utiliser pour une utilisation pratique.Si vous avez des antécédents, je suggère de se familiariser avec un peu de travail par Alexander Koller de l'Université de la Sarre. Il décrit comment coder NLG en PDDL. L'article principal que vous voudrez lire est "Phrase générant comme un problème de planification".

Si vous n'avez aucun antécédent en PNL, recherchez simplement les cours en ligne ou les supports de cours de Michael Collings ou Dan Jurafsky.

Questions connexes