2011-07-21 3 views
2

Je travaille sur un système qui peut créer des mots fantaisistes composés en fonction d'une variété d'entrées utilisateur, telles que des gabarits syllabiques ou un formulaire Backus Naur modifié. Un nouveau mode, cependant, devrait être l'apprentissage automatique. Ici, l'utilisateur ne définit pas explicitement de règles, mais collez du texte et le système apprend la structure des mots donnés et crée des mots similaires.Apprentissage automatique de la structure des mots

Mon approche naïve actuelle serait de créer une table des probabilités de voisinage lettre (y compris une fin de mot « lettre » spéciale) et le remplir en balayant l'entrée par paires de lettres (utilisant les espaces et la ponctuation comme mot limites). Création d'un mot signifierait rechercher les probabilités pour chaque lettre de suivre la lettre en cours et choisir au hasard une selon les probabilités, ajouter, et réitérer jusqu'à ce que fin de mot est rencontré.

Mais je cherche des approches plus sophistiquées qui (probablement?) Donnent de meilleurs résultats. Je ne connais pas grand-chose à l'apprentissage automatique, donc les pointeurs sur des sujets, des techniques ou des algorithmes sont appréciés.

+1

Un petit point: en langues, que ce soit si vous générez une séquence de mots (un autre problème) ou une séquence de lettres (ce que vous demandez), il est souvent préférable de générer un nouveau mot/lettre en tenant compte du dernier ** deux ** mots/lettres (plutôt qu'un seul). Cela implique toujours les mêmes algorithmes. Les mots/lettres supplémentaires ne donnent pas de meilleurs résultats. – Fezvez

Répondre

2

Je pense que pour mots indépendants (un noms particulièrement), un simple système de chaîne de Markov (que vous semblez décrire en parlant d'utiliser des paires de lettres) peut très bien fonctionner. Donnez-lui un lexique et lancez-lui une graine pour générer un nouveau nom basé sur ce qu'il a appris. Vous voudrez peut-être modifier la longueur du préfixe de la chaîne de Markov pour obtenir des résultats agréables (comme indiqué dans un commentaire à votre question, 2 lettres valent mieux qu'une). Je l'ai essayé une fois avec des dictionnaires de noms elfiques et orques et obtenu des résultats très satisfaisants.

+0

Sons prometteurs, merci. –

Questions connexes