Как автоматизировать классифицирование текста?
Имеется список обращений, каждый из которых представляет собой осмысленный текст. Каждому обращению необходимо задать маркер (тег), классифицировать: жалоба, похвала, ругательство и так далее.
Сейчас это все делается вручную. Хотелось бы автоматизировать этот процесс. Полагаю, что возможно это сделать с помощью машинного обучения.
Может кто-то из присутствующих сталкивался с такой или похожей задачей?
Ответы (2 шт):
Ну у вас же часть данных уже размечена, я так понимаю? То есть есть на чём попробовать "обучение с учителем". На первый прикид даже "мешок слов" подойдёт, то есть CountVectorizer. Дальше надо пробовать TF-IDF, а потом уже всякие эмбеддинги Word2vec. Для текстов, кстати, быстрые и простые вероятностные модели вроде MultinomialNB неплохо работают.
Главное сделать некоторый бейзлайн, а потом его можно улучшать:
- чистить мусорные слова/символы
- пробовать разные варианты токенизации: отдельные слова/сочетания слов, стемминг/лемматизация, приводить всё в один регистр или не нужно
- пробовать разные варианты векторизации подготовленных текстов: мешок слов,
tf-idf,word2vec,doc2vec,fasttext - пробовать разные модели, на ваших данных может взлететь разное, как минимум надо пробовать байесовские модели, деревянные модели, бустинги, нейросети; если данных много, то что-то из моделей может не пролезть по времени/памяти, так что процесс творческий
Там ещё есть разные тонкости. Если не знаете вообще как начать, я поищу ссылки, но можно погуглить text classification, наверняка вылезет много примеров, в частности на каггле.
Да, это классическая задача машинного обучения. И как для почти всех задач машинного обучения, решающую роль играет качество данных, поданных на вход модели классификатору.
Какие данные вам понадобятся для обучения и проверки модели:
- список обращений
- заранее проставленный экспертом вручную тег
Далее делается предобработка текста. Практически все известные мне модели машинного обучения требуют на вход числовые матрицы. Соответственно сначала нужно будет получить такие матрицы. Конкретные детали векторизации текста будут зависеть от выбранного алгоритма классификации.