Каков хороший способ реализации «предсказания следующего слова»? Например, пользователь вводит «Я есть», и система предлагает «а» и «нет» (или, возможно, другие) в качестве следующего слова. Мне известен метод, который использует цепи Маркова и некоторый обучающий текст (очевидно), чтобы более или менее достичь этого. Но я где-то читал, что этот метод очень строг и применим к очень простым случаям.
Я понимаю основы нейронных сетей и генетических алгоритмов (хотя никогда не использовал их в серьезном проекте) и, возможно, они могли бы помочь. Интересно, существуют ли какие-либо алгоритмы, которые, при наличии соответствующего обучающего текста (например, газетных статей и собственного набора текста пользователем), могут предложить разумно подходящие предложения для следующего слова. Если нет (ссылки на) алгоритмы, приветствуются общие высокоуровневые методы для решения этой проблемы.
n
которое дает хорошие результаты?n
длиннее список, который даст вам более точный прогноз, но и более дорогой для поиска. Так что это компромисс между точностью и временем вычислений.Похоже, проблемный домен является подмножеством поиска строк. Расширяя слова для включения пробелов, здесь можно применить нечеткое сопоставление строк.
Возможно, вы захотите рассмотреть / разрешить ввод всех пользователей как одно слово во время обучения в дополнение к вашему словарю. Это позволяет вам предлагать следующее слово, но также предлагает автоматическое заполнение слова или фразы.
Вот ссылка на подборку алгоритмов поиска нечетких строк
http://ntz-develop.blogspot.com/2011/03/fuzzy-string-search.html
источник
Вы ищете (статистическую) языковую модель .
источник