Подход глубокого обучения:
По сути, вам нужна модель прогнозирования на уровне слов на основе RNN.Такие модели используются при генерации текста.Вы можете обратиться к одному примеру здесь .
Эти модели специально берут слово (t) и предсказывают следующее слово (t1).Тогда, принимая t1, он предсказывает t2.Этот цикл продолжается до тех пор, пока не будет достигнуто максимальное количество слов.
Если бы мне пришлось тренировать такую модель RNN в одном предложении, например
Hello world from TensorFlow
Тогда метка объектапары выглядят так:
X, Y
Hello, World
World, from
from, TensorFlow
Эти предложения можно было бы извлечь из предыдущих входных данных пользователя.
Вещи, которые вам потребуются при построении такой модели:
- Множество пользовательских данных.
- Алгоритм ранжирования, позволяющий получить N прогнозов на высшем уровне
- Вероятно, это графический процессор или TPU.Процессоры могут оказаться очень медленными и могут занять несколько дней.
Подход не глубокого обучения:
Вы можете воспользоваться теоремой Байеса или просто проверить, какое слово имеетнаибольшая вероятность после конкретного слова.Слово «утро» будет иметь наибольшую вероятность после слова «хорошо».
Подсказка:
- В большинстве случаев вам также потребуется обрабатывать пользовательский пользовательслова, которые вы не можете добавить в свой словарь.Это может быть имя человека.Поэтому при сборе данных вам нужно пометить такие слова в общее слово, например.