web-dev-qa-db-fra.com

Quels algorithmes peuvent être utilisés pour obtenir raisonnablement bonne prédiction de mot suivante?

Qu'est-ce qu'un bon moyen d'implémenter "prédiction suivante"? Par exemple, les types d'utilisateurs "Je suis" et le système suggère "a" et "non" (ou éventuellement d'autres) comme mot suivant. Je suis au courant d'une méthode qui utilise les chaînes de Markov et un texte de formation (évidemment) à plus ou moins d'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ées dans un projet sérieux) et peut-être qu'ils pourraient être de l'aide. Je me demande s'il y a des algorithmes qui, étant donné le texte de la formation approprié (par exemple, les articles de journaux et la dactylographie de l'utilisateur) peuvent proposer des suggestions raisonnablement appropriées pour le mot suivant. Sinon (liens vers) algorithmes, des méthodes générales de haut niveau pour attaquer ce problème sont les bienvenues.

10
yati sagade

Jetez un coup d'œil à N-grammes . Un n-gramme est une séquence de mots n mots. Dans votre cas, vous voulez n d'être 3, car vous avez besoin de deux query words et a resulting Word. Un 3 gramme serait par exemple "je suis fatigué", un autre "je suis heureux".

Ce que vous avez alors besoin est une collection de ces 3 grammes collectées sur votre langue cible, disons l'anglais. Puisque vous ne pouvez pas le récupérer sur tout ce qui a été écrit en anglais, vous devez faire une sélection. Cette sélection de textes représentatifs s'appelle un corpus. Si votre corpus est bon, cela vous indiquera combien de fois une séquence de trois mots spécifiques se produisent ensemble en anglais. De cela, vous pouvez calculer la probabilité d'un 3 gramme.

La collecte de ce type de données est la partie la plus difficile. Une fois que vous avez la liste des 3 grammes avec leur probabilité, vous pouvez filtrer votre liste à tous les 3 grammes commençant par "Je suis". Ensuite, vous triez toute cette liste par probabilité et voilà: votre prédiction.

9
sebastiangeiger

Vous recherchez un (statistique) modèle de langue .

Un modèle de langue statistique attribue une probabilité d'une séquence de M mots P(w_1,...,w_m) au moyen d'une distribution de probabilité ...

En reconnaissance de la parole et en compression de données, un tel modèle tente de capturer les propriétés d'une langue et de prédire le mot suivant dans une séquence de discours ...

1
user3287