Vous pourriez utiliser une approche de «force brute», par laquelle vous comparez la langue générée aux données recueillies sur n-grammes de plus haut ordre que le modèle de Markov qui l'a généré. C'est-à-dire que si la langue a été générée avec un modèle de Markov de second ordre, jusqu'à 3 grammes auront les bonnes fréquences, mais probablement pas 4 grammes.
Vous pouvez obtenir jusqu'à des fréquences de 5 grammes de Google publics de n-gram dataset. Il est énorme si - 24G comprimé - vous devez l'obtenir par la poste sur DVD de LDC.
EDIT: Ajout de quelques détails de mise en œuvre
Les n-grammes ont déjà été comptés, vous avez juste besoin donc de stocker les comptes (ou fréquences) d'une manière qui est rapide à rechercher. Une base de données correctement indexée, ou peut-être un index Lucene devrait fonctionner.
Pour une partie de texte, parcourez le et cherchez la fréquence de chaque 5 grammes dans votre base de données, et voyez où elle se classe par rapport aux autres 5 grammes qui commencent par les mêmes 4 mots. En pratique, les conditions de licence de l'ensemble de données constituent un obstacle plus important. L'utiliser pour une application commerciale peut être interdit.
J'aime cette approche, mais je pense que ce serait infaisable d'un point de vue informatique? – agiliq
Ne vois pas comment, ajouté quelques détails à la réponse. – pufferfish