Quelle est la bonne façon de mettre en œuvre la "prédiction du mot suivant"? Par exemple, l'utilisateur tape "Je suis" et le système propose "a" et "non" (ou éventuellement d'autres) comme mot suivant. Je connais une méthode qui utilise les chaînes de Markov et un texte de formation (évidemment) pour plus ou moins y parvenir. Mais j'ai lu quelque part que cette méthode est très restrictive et s'applique à des cas très simples.
Je comprends les bases des réseaux de neurones et des algorithmes génétiques (bien que je ne les ai jamais utilisés dans un projet sérieux) et peut-être qu'ils pourraient être utiles. Je me demande s'il existe des algorithmes qui, étant donné un texte de formation approprié (par exemple, des articles de journaux et la frappe de l'utilisateur) peuvent proposer des suggestions raisonnablement appropriées pour le mot suivant. Sinon (liens vers) des algorithmes, les méthodes générales de haut niveau pour attaquer ce problème sont les bienvenues.
la source
n
qui donne de bons résultats? Il n'a pas toujours avoir à être le troisième mot qui est prévu, vous voyezn
donne une liste plus longue qui vous donnera une prédiction plus précise mais est également plus coûteuse à rechercher. C'est donc un compromis entre la précision et le temps de calcul.Il semble que le domaine problématique soit un sous-ensemble de recherche de chaînes. En étendant les mots pour inclure des espaces blancs, la correspondance de chaîne floue peut être appliquée ici.
Vous voudrez peut-être considérer / autoriser toutes les entrées utilisateur en un seul mot pendant la formation en plus de votre dictionnaire. Cela vous permet de suggérer le mot suivant mais suggère également la saisie automatique des mots ou des phrases.
Voici un lien vers une compilation d'algorithmes de recherche de chaînes floues
http://ntz-develop.blogspot.com/2011/03/fuzzy-string-search.html
la source
Vous recherchez un modèle de langage (statistique) .
la source