Один из подходов, если я не путаю, это seq2seq модель, она же рекуррентный энкодер.
На базе текстов, подобных тем, которые планируется обрабатывать, строится автоэнкодер. Как обычно в автоэнкодерах, его первая половина учится "сжимать" входные данные (в нашем случае кодированный текст), а вторая половина учится их "распаковывать" обратно. При этом "несжатые" данные - это последовательность входов, а "сжатые" - статический вектор контекста, который некоторым (не обязательно известным нам) способом кодирует "смысл". Контроль успешности кодирования проверяется последующей "распаковкой" - на выходе автоэнкодера должна получиться та же самая последовательность, которая была на входе.
Когда научились "сжимать" текст в вектор, этот вектор можно обрабатывать другими методами машинного обучения. Например, решать задачи классификации, регрессии и т.п.
Тогда при обработке неизвестного текста он кодируется (например, производится лемматизация - устраняются грамматические числа, падежи и т.п.), прогоняется через первую половину автоэнкодера, а полученный вектор контекста подаётся на вход сети, которая и заточена под решение нашей задачи.
Но ЕМНИП, это один из ранних подходов. Сейчас есть более продвинутые вещи, я просто о них в не курсе.