Иван Бондаренко

Узнай, хорошо или плохо говорят о тебе или твоей фирме в Интернете! “Soroka” с искусственным интеллектом принесёт тебе это на своём хвосте.

Описание проекта

Soroka – нейросетевой продукт, анализирующий репутацию человека или компании в Интернете.

Для этого вам нужно указать название компании (или имя человека), а также один или несколько интернет-адресов, с которых начнётся анализ веб-контента. Затем с помощью свёрточных нейронных сетей система ищет упоминания заданного имени или названия, после чего анализирует тональность контекста. В результате вы получаете коэффициент сороки – долю положительных, негативных и нейтральных упоминаний в тексте по заданному объекту на заданном сайте (группе сайтов).

Soroka поможет вам следить за своей собственной репутацией и репутацией вашей компании, первым узнавать о значимых тенденциях в общественном мнении и вовремя реагировать на любые изменения.

Как это работает:

В нашем продукте мы используем свёрточные нейронные сети, концепция которых успешно используется для анализа изображений. В последнее время этот подход приобрел популярность в задачах обработки естественного языка. Существует ряд публикаций, доказывающих их преимущества перед другими алгоритмами: например, качество свёрточной сети сравнимо с качеством рекуррентной сети типа LSTM или GRU, при этом время обучения свёрточной нейросети меньше в несколько раз.

Также мы использовали двухслойный персептрон в рамках модели word2vec для решения вспомогательной задачи – формирования векторов слов, которые используются как признаки свёрточной нейросети.

На первом шаге веб-краулер парсит контент заданного сайта, от странички к страничке переходя вплоть до установленного уровня вложенности и выкачивая весь текстовый контент.

На втором шаге свёрточная нейронная сеть анализирует полученный текст и находит в нем упоминание о заданном человеке или организации.

На третьем шаге другая свёрточная нейросеть оценивает текст на его семантику и распознает эмоциональность текста – похвалу, критику, нейтральное мнение. В результате "Soroka" возвращает в процентном соотношении уровень положительных, негативных и нейтральных упоминаний искомого объекта в тексте.

Какие бизнес-задачи можно решать:

- Сравнить, насколько хорошо или плохо пишут о вас и ваших конкурентах;

- Оценить, как изменилось отношение к вам или вашей организации в Интернете после проведения рекламной кампании;

- Узнать, что пишут о компаниях, акциями и облигациями которых вы владеете или собираетесь приобретать;

- Оценить, что пишут о компании, услугами или продуктами которой вы хотите воспользоваться;

- Провести анализ рынков с целью выявления потенциальных конкурентных преимуществ;

- Оперативно реагировать на негативную реакцию о вас или вашей компании в Интернете;

- И любые другие бизнес-кейсы, в которых требуется анализ тональности текста.

Состав команды:

  • Иван Бондаренко, Вдохновитель и руководитель команды
  • Вадим Фомин, Инженер-программист-исследователь
  • Петр Гусев, Инженер-разработчик и творец миров
  • Анастасия Малышева, Математик-программист и творец миров
  • Анна Белкина, Лингвист-программист
  • Алексей Забайкин, Программист-китайский шпион
  • Мария Боровикова, Аналитик тональностей и генератор датасетов
  • Екатерина Ясинецкая, Лингвист-программист
  • Вика Кондрашук, Аналитик всего

Комментарии

Юрий Бабуров

Интересный проект, а в серверно-облачном исполнении, возможно, и готовый бизнес! Получилось ли хорошо натренировать классификатор для сентимента? Расскажите поподробнее, как вы это делаете.
Откуда вы берёте тренировочные данные для классификатора сентимента?

Иван Бондаренко

Классификатор сентимента - это самая наша проблемная часть. В первой версии "Сороки", которую мы сделали в минувшее воскресенье, мы обучали Sentiment Analyzer на твитах, потому что нам были доступны размеченные корпуса русскоязычныхтвитов. Но у текста твитов есть свои жанровые особенности, которые с трудом позволяют экстраполировать его на тесты других жанров (например, новостные). Но, к счастью, вчера мы нашли небольшой корпус именно новостных текстов и обучили новую версию "Сороки" на нём, и при этом перешли от анализа отдельных предложений к анализу целых абзацев (скорее всего, так лучше удастся уловить "тонкую" семантику типа сарказма и т.п.). Вчера вечером закоммитили новую версию на Гитхаб. Но всё равно, корпус небольшой, а хочется чего-то большего. У нас в планах есть применение Transfer Learning для сентимент-анализатора "Сороки" (т.е. сначала обучаем свёрточную сеточку на большом корпусе любых русских текстах, размеченных метками любых классов - не обязательно сентимент, а, например, тематическими метками). А затем обученную свёрточную сеть дообучаем уже на небольшом корпусе для сентимент. На младших свёрточных слоях уже сформируются представления о текстовых фичах, и такая частично обученная сеть легче дообучится на задаче сентимент, чем если бы мы её обучали с нуля. Но для реализации такого подхода надо немного допрограммировать наш CNNClassifier, и не факт,  что мы это успеем до конца хакатона. Тем не менее, это в наших планах есть :-)

Ivan Panin

А в чем специфика тональности новостей по сравнению с тональностью твитов?

Наверное, новости с точки зрения классификатора более "нейтральные", чем твитты? В этом смысле я бы сначала разделил классифицируемые фразы по их источнику (новости, форумы / соцсети) и применял разные модели.

Как думаете?

Иван Бондаренко

Иван, вы правы. У текстов разных жанров есть своя лексическая специфика: разными словами выражают свои эмоции, например. У твитов ведь есть жёсткое ограничение по длине, и это влияет на то, какими словами пишутся эти твиты. Кроме того, в твитах и других соцсетях достаточно активно используются смайлы, эмодзи и т.п., чего не наблюдается в новостных текстах. Мы обучались на твитах не от хорошей жизни, а потому что корпуса русскоязычных твитов с sentiment-разметкой были нам доступны. Сейчас, кстати, мы нашли корпус с новостными текстами и обучили нашё модель на нём. Вчера вечером закоммитили её. Можете попробовать с новой моделью :-) На тестовом корпусе там получается F1-мера около 0,62, а при визуальном анализе результаты кажутся более или менее адекватными. Например, новая "Сорока" более уверенно говорит, что на сайтах "Интерфакса", "РИА Новости" и "России сегодня" нашего президента упоминают часто и в нейтральном ключе, а вот Алексея Навального упоминают гораздо реже и ругательно :-) На сайтах же "Дождя" и "Эха Москвы" ситуация во многом противоположная, с точки зрения "Сороки", и это похоже на правду (официальные и оппозиционные издания по-разному пишут о разных политиках)

Pavel Mochalov

Вау! Крутой проект! Сразу захотелось узнать, что про нашу компанию говорят в интернетах))

Иван Бондаренко

Павел, стоит попробовать :-) Мы пока не сделали веб-интерфейс, но нашу "Сороку" можно установить локально у себя и запустить в полёт по заданному набору сайтов. А она уж постарается :-)