Помогите с классификацией текстов, сил нет! — NLP

Ну вот, опять застрял. Задача — классифицировать отзывы на товары. Хочу разделить их на позитивные, негативные и нейтральные. Пробовал разные модели NLP, вроде все по гайдам делал, но результаты — полная ерунда. То ли модель кривая, то ли данные шумят дико. Использовал стандартные библиотеки для текстового анализа, но чуда не произошло. Кто-нибудь сталкивался с подобным? Может, есть какие-то хитрости или готовые решения, которые реально работают?

Может, есть какие-то лингвистические сервисы, которые справятся с этим лучше, чем мои потуги? Подскажите, а то уже скоро конец спринта, а я всё топчусь на месте.

Классификация текстов не работает, что делать?! — NLP
Классификация текстов не работает, что делать?! — NLP
12-04-2026, 12:39, Помощь новичкам и FAQ
ЗАМУЧИЛСЯ С КЛАССИФИКАЦИЕЙ ТЕКСТОВ! — обработка естественного языка
ЗАМУЧИЛСЯ С КЛАССИФИКАЦИЕЙ ТЕКСТОВ! — обработка естественного языка
15-04-2026, 21:49, Анализ социальных медиа и новостей
Крутое СПАРСИВАНИЕ текстов: от хаоса к пониманию (и обратно, ахах) — NLP
Крутое СПАРСИВАНИЕ текстов: от хаоса к пониманию (и обратно, ахах) — NLP
6-04-2026, 20:39, Анализ социальных медиа и новостей
Тех, кто помнит dial-up, ещё берут в NLP?
Тех, кто помнит dial-up, ещё берут в NLP?
3-04-2026, 18:49, Вакансии и карьера
Не могу никак настроить парсер для кракен сайта! Помогите!
Не могу никак настроить парсер для кракен сайта! Помогите!
4-04-2026, 12:31, Лингвистические модели и алгоритмы
DataScientist_Anna

DataScientist_Anna В среду в 10:00

Социо_Аналитик, а ты точно с предобработкой разобрался? Я вот когда с похожей задачей возился, оказалось, что стоп-слова были не те, что надо. Ну, типа, убрал "отличный", "хороший" — и позитива стало меньше, ага.

Если смотреть характеристики моделей, то для такого рода задач часто используют TF-IDF + SVM или даже нейронки типа BERT, если данных побольше. Но начни с простого, кмк.

У меня лично лучший результат по классификации тональности дал такой пайплайн:

  • Токенизация
  • Лемматизация (на русских текстах это прям маст хэв)
  • Удаление стоп-слов (тут важно подобрать свой список)
  • TF-IDF
  • Логистическая регрессия или Naive Bayes (для старта)

Замерил — результат такой: точность на валидации ~85% была, что уже неплохо для начала. Если там прям совсем все плохо, может, данные и правда говно? Или разметка кривая?

А какие библиотеки юзал-то? spaCy, NLTK, или что-то на C++ для скорости?)))

Тихий_Наблюдатель

Тихий_Наблюдатель В среду в 10:45

Социо_Аналитик, а про метрики думал? Accuracy тут может врать, когда классы несбалансированы. Попробуй F1-score или Precision/Recall

ProMaster

ProMaster В среду в 13:07

Социо_Аналитик, привет! Понимаю твою боль, классификация текстов — штука коварная. У меня было похожее, когда начинал свой путь в NLP.

Смотри, тут логика такая: если стандартные модели не тянут, а предобработку и метрики ты уже проверил (спасибо Анне и Тихому Наблюдателю за это!), то, возможно, проблема в выборе признаков или самой архитектуре модели.

Частая ошибка — полагаться только на bag-of-words или TF-IDF. Это хорошо для простых задач, но когда нужны нюансы, эти методы теряют много информации

Попробуй вот что:

  • Векторизация с помощью эмбеддингов. Вместо простых чисел для слов, используй готовые модели вроде Word2Vec, GloVe или FastText. Они учитывают семантику слова. Или еще лучше — бери предобученные трансформеры (BERT, RoBERTa) и дообучай их под свою задачу. Это даст гораздо более глубокое понимание текста.
  • Изучи модели для последовательностей. Если эмбеддинги использовать, то дальше логично идут RNN (LSTM, GRU) или трансформеры. Они умеют работать с порядком слов, что важно для тональности.

Еще можно попробовать аугментацию данных, если шума много. Это когда ты искусственно создаешь новые примеры текстов, немного меняя существующие (синонимы, перестановка слов, обратно-перевод). Но с этим осторожнее, чтобы не исказить смысл

Не сдавайся! Текстовый анализ — это марафон, а не спринт. Со временем все получится ) ))

DataScientist_Anna

DataScientist_Anna В среду в 14:52

Социо_Аналитик, да, предобработка — это прям база. Я ж говорю, стоп-слова — это отдельная песня. Иногда просто выкинуть "не" или "нет" может всю картину мира перевернуть, сам удивлялся.

Кстати, про TF-IDF. Если смотреть характеристики, то эта штука хороша для взвешивания слов, да. Но она не учитывает порядок слов. А для sentiment analysis это частенько критично.

Может, стоит попробовать что-то поинтереснее, ну типа Word2Vec или GloVe для эмбеддингов? Или даже BERT, если мощности позволяют. Они семантику лучше ловят.

Ну и как вариант, если совсем туго идет: ручками раскидай пару тысяч отзывов. Просто чтоб глазами почувствовать, где типичные проблемы. Это как с кодом — иногда на проблему смотришь, а потом раз — и нашел баг, который годами не замечал

{login}

Твой комментарий..

Кликните на изображение чтобы обновить код, если он неразборчив

Новости партнёров

File engine/modules/mainstats.php not found.