Я строю языковую модель в R, чтобы предсказать следующее слово в предложении на основе предыдущих слов. В настоящее время моя модель представляет собой простую модель ngram со сглаживанием Кнезера-Нея. Он предсказывает следующее слово, находя ngram с максимальной вероятностью (частотой) в обучающем наборе, где сглаживание предлагает способ интерполяции ngrams более низкого порядка, что может быть выгодно в случаях, когда ngrams более высокого порядка имеют низкую частоту и могут не обеспечивать надежного прогноза. . Хотя этот метод работает достаточно хорошо, он дает сбой в тех случаях, когда n-грамма не может не захватить контекст. Например, «На улице тепло и солнечно, пойдем на...» и «На улице холодно и идет дождь, пойдем на...» предполагают одно и то же предсказание, потому что контекст погоды не фиксируется. в последней n-грамме (при условии, что n‹5).
Я ищу более продвинутые методы и нашел пакет text2vec, что позволяет отображать слова в векторное пространство, где слова со схожим значением представлены похожими (близкими) векторами. У меня есть ощущение, что это представление может быть полезно для предсказания следующего слова, но я не могу понять, как именно определить задачу обучения. Мой вопрос заключается в том, является ли text2vec подходящим инструментом для прогнозирования следующего слова, и если да, то какой подходящий алгоритм прогнозирования можно использовать для этой задачи?