Sklearn / NaiveBayes / RandomForrest
Стандарт "классического ML" - Scikit-learn.
Мы на нем делали в 2017 - 2018, обучаемую классификацию фрагментов договоров - содержит ли абзац информацию по теме. Можно подсветить для юристов, получить список договоров, где пропущены пункты и т.п.
По сути это аналог спам-фильтра, но с другими классами вместо "спам"/"не спам".
Для спам фильтров исторически был популярен NaiveBayes - при обучении считает вероятности "если встретилось данное слово, то это спам/не спам". Учитывает только факт/частоту появления слова, нет порядка, связей, паттернов.
DecisionTree - строит вопросы о признаках текста: "если есть слово X, то... тогда если есть слово Y, то .... тогда ...". Можно сохранить в картинку и понять, чему именно обучилась модель. Random Forest — ансамбль таких деревьев, обученных по-разному. Вместе дают более качественный усредненный результат.
Вот здесь сделал пример - NaiveBayes начинает ошибаться, а DecisionTree работает.
Это пара моделей из множества в sklearn.