Иметь заслуженное свободное время между завершением крупных проектов (например, создание финтех-решений с нуля) — это отличная возможность расслабиться… или, в нашем случае, отличная возможность попробовать что-то новое! Одной из вещей, которую мы давно хотели проверить, была насколько хорошо глубокое обучение работает на языках, отличных от английского. Обучение на уровне символов привлекло немало внимания благодаря работе Андрея Карпати, описанной в Необоснованной эффективности рекуррентных нейронных сетей, с использованием его char-rnn и рекуррентных нейронных сетей для изучения генеративных языковых моделей. Многие люди использовали его для самых разных целей, от автоматического создания ирландских народных песен (здесь), кликбейтных заголовков (здесь) или речей Обамы (здесь).

Мы взяли данные с сайта спортивного сообщества sport.sk из Словакии, печально известного очень бурными дискуссиями на форумах, которые часто переходят в серьезный треш-ток. Было интересно посмотреть, сможем ли мы научить модель автоматически генерировать эти комментарии из всей прошлой истории, которую мы получили, и собирается ли она изучать используемые там структуры и нюансы.

ДАННЫЕ:

Мы собрали данные с дискуссионных форумов sport.sk, просканировав все обсуждения на сайте. Нам удалось собрать более 200 тысяч уникальных комментариев (ответы на комментарий являются частью исходного комментария из структуры сайта) и склеить их все вместе в один текст. Окончательный размер данных в текстовом формате составил ~37 МБ, организованных следующим образом:

/* ПРИМЕР ИЗ ДАННЫХ */
miki50
pan Weiss som dlhodobo fanusik Slovana a iba tolko,,zbalte si kufre a nechajte Slovan Slovanom,,robite nam iba hambu aj s tym vasim gasparom

kurri44
Добра робота Слован!

aleg966
треба игнорировать целу словенскую лигу jednoducho tam nechodit na tie baletky sa divat

voivod07
Кед самотни слованисти нейробиа ник, так Вас Вайс ту буде страсит есть зо 10 лет.

giza69
mantaci, nasadte tam radsej zemaky, bude to lacnejsie a bude z toho nejaky uzitok :)))

АЛГОРИТМ:

Алгоритм, который мы решили использовать, представлял собой побочную библиотеку torch-rnn, созданную JC Johnson. Это обеспечивает улучшение скорости и памяти по сравнению с исходной реализацией и в настоящее время рекомендуется в качестве версии для перехода, по словам Андрея Карпати. Мы использовали модель Долговременная кратковременная память для изучения последовательностей символов. Мы запустили обучение модели на экземпляре графического процессора AWS g2.xlarge (настройка tu). Время выполнения составило что-то более 17 часов. Для наших данных потребуется более крупная машина (с большей мощностью графического процессора), чтобы раскрыть всю ее мощь (поскольку она была довольно большой по сравнению с другими приложениями), однако в качестве стартапа мы хотели выделить столько ресурсов для публикации в блоге. ;).

РЕЗУЛЬТАТЫ:

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

/* EXAMPLE GENERATED DISCUSSION STRUCTURE */

Bobetpo0es15989
existuje a priatel je stala a to ukazal bez Tour Drnay ostane a neznamena v blavu a chyb zo vsak v tisete :)

ivan7777
Jarozinu), bol sme mali skor v NHL a nastupca na zem strely. Viazny-Slovaci je...nevies?

ardz
na hlou Trnavy aj ty jsi za to kde nechytaval si tahna.. teraz toto podla mna v existuje....
  1. Структура обсуждения. Модель прекрасно изучила структуру обсуждения с именами пользователей, за которыми следуют комментарии. См. выше.
  2. Сгенерированные настоящие имена пользователей: мы провели поиск нескольких имен пользователей, используемых моделью, в сравнении с исходным набором данных, и (некоторые) сгенерированные комментарии были замаскированы, чтобы исходить от реальных пользователей (здесь не приводятся по соображениям конфиденциальности).
  3. Матерные слова, подвергшиеся цензуре. Модель выучила такие слова, как ***ti и ***ol, которые для говорящего на словацком языке явно представляют собой вульгарные комментарии, использованные в обсуждении.
  4. Использование специальных терминов sport.sk: модели также удалось выучить термины и слова, часто используемые в обсуждениях, которые не используются в обычном языке, такие как Coboli (термин, используемый в настоящее время для игроков команды ненавижу в обсуждении :))
  5. Использование эмоций в обсуждениях:используется много смайликов, заглавных букв и множественных знаков препинания, которые используются для выражения стресса или эмоций.
/* EXAMPLE */
ahlaniskrajeu
MS talian pomoc Vasi s bodym narofci-i nejlepsi????? lebo sa hrali pekne milionom

Likan739
to je to keciar. ;-)

MLUSePam
chalani si tim nejakel tak je prosim hladovani! ;))

В данных, несомненно, скрыто больше, и если кто-то хочет разобраться в этом, свяжитесь с нами.

Эта статья изначально была опубликована по адресу: https://www.knoyd.com/blog/2016/6/23/deep-learning-on-sport-forum-discussions