Я проанализировал 4.5 миллиона комментариев с DTF, чтобы тебе не пришлось этого делать. Результат убил

Когда шутка зашла слишком далеко.

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

Я проанализировал 4.5 миллиона комментариев с DTF, чтобы тебе не пришлось этого делать. Результат убил

Глава 0. Вступление

Итак.

Не так давно я создал щитпост с целью немного покекать и собрать классы. Собрал, как оказалось, действительно немного.

Там была парочка хороших комментариев.

Я проанализировал 4.5 миллиона комментариев с DTF, чтобы тебе не пришлось этого делать. Результат убил
Я проанализировал 4.5 миллиона комментариев с DTF, чтобы тебе не пришлось этого делать. Результат убил

Уже тогда у меня возникла идея сделать все это серьезно, но мне было лень и не было понимания, с чего начать.

Тем не менее, в тот же вечер я все-таки решил попробовать и начал изучать API этого «потрясающего» ресурса.

Глава 1. Ноутбук Ширяева

Девочки, в каком же ахуе я был. Спасибо большое mr2zeek за то, что помог разобраться в этом адовом поносе.

Я проанализировал 4.5 миллиона комментариев с DTF, чтобы тебе не пришлось этого делать. Результат убил

После некоторых экспериментов с API, я понял, что собрать комментарии будет непросто.

Мой первоначальный план сделать условный GET /comments просто потерпел фиаско, потому что у них не работает НИ-ХУ-Я. Система кажется разорванной на части и разбросанной по разным версиям API. Да – да, понимаю, не в приоритете.

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

Короче, что я сделал – сначала я начал парсить самые популярные посты по количеству комментариев, чтобы из комментов вытащить пользоваталей и потом уже по пользователям начать собирать их подписчиков, и затем уже комменты. Благо mr2zeek подсказал ID подсайта ИГРЫ, в котором состоят видимо 99.9999% населения этого сайта.

Сбор подписчиков занял у меня 13 часов на гигабитном канале и с Xeon E5 2670 V3.

Я проанализировал 4.5 миллиона комментариев с DTF, чтобы тебе не пришлось этого делать. Результат убил

А знаете почему так долго? Потому что их API не отдает больше 30 записей за раз, в большинстве методов. Ну да, понятно, что надо отбиваться от таких злостных пидоров как я. Получилось около 500к пользователей. Плюс минус километр.

Погнали дальше – собираем комментарии. Примерно таким же способом, тоже по 30 штук за раз, НО НА ЭТОТ РАЗ Я БЫЛ УМНЕЕ И ЕБАШИЛ В 10 ПОТОКОВ С 10 ПРОКСЯМИ. ВЫКУСИ НОУТБУК ШИРЯЕВА.

Я проанализировал 4.5 миллиона комментариев с DTF, чтобы тебе не пришлось этого делать. Результат убил

После суток упорного труда, весь ваш "контент" теперь у меня на сервере. Мммм, 4531991 уникальных комментариев. Теперь можно и развлечься..

обмазываюсь вашими комментариями
обмазываюсь вашими комментариями

Сразу хочу отметить, что последний комментарий датирован 18 сентября.

Глава 2. Модели

Вопрос — так что с комментами делать? Я в ML не особо шарю, хотя и тусуюсь в команде из девяти датасатанистов.

литерали ми

Изначально хотел загнать все ваши комменты в Word2Vec, чтобы их векторизовать и кластеризовать через k-means. Пробовал на небольшой выборке — вышла откровенная хуета. Коллега подсказал: «Нужно эти комменты разметить и обучать на них модель». Это что, реально каждый коммент мне теперь размечать? Да ну нахуй, не до такой степени я шиз.

Внезапно вспомнил про Hugging Face и там нашел 3 модели для определения токсичности. Какие именно? Хуй я вам скажу. Просто не хочу.

Я проанализировал 4.5 миллиона комментариев с DTF, чтобы тебе не пришлось этого делать. Результат убил

Другой коллега всё таки тоже порекомендовал разметить немного комментариев и дообучить модели на этом семпле, и знаете что, я даже начал, чтобы добавить нотку субъективности. Хотел даже жену подпрячь, но потом одумался. Так же думал запихнуть комментарии в Толоку.

Я прикинул по баблу – выйдет около 10-15 баксов за 1к комментариев. В целом не проблема, да только мне, опять же, стало впадлу этим всем заниматься и я тупо запустил все 3 модели, чтобы потом найти среднее значение между ними всеми.

Я проанализировал 4.5 миллиона комментариев с DTF, чтобы тебе не пришлось этого делать. Результат убил

Ох мамочи, что это было.

Запустив сначала всё это дело на CPU я немного охуел. По прикидкам – на это ушло бы около 3х суток. Хуйня – думаю. Надо на GPU – зря я покупал чтоли себе 3080Ti?

Запускаю на GPU иии

Я проанализировал 4.5 миллиона комментариев с DTF, чтобы тебе не пришлось этого делать. Результат убил

Думаю - «Вот педрила». Надо сделать поменьше батч.

Делаю поменьше батч, иииии

Я проанализировал 4.5 миллиона комментариев с DTF, чтобы тебе не пришлось этого делать. Результат убил

И вот скажите – нахуй я покупал эту дрочь, если ни на что кроме игрушек этих ваших она не способна? Вот и я ответить не могу.

Погнали на CPU.

Я проанализировал 4.5 миллиона комментариев с DTF, чтобы тебе не пришлось этого делать. Результат убил

Короче посчитаете время сами. Больше 3х суток. Результат есть, осталась мелочь. Проанализировать.

Глава 3. Дебичи

Общее распределение токсичности

Я проанализировал 4.5 миллиона комментариев с DTF, чтобы тебе не пришлось этого делать. Результат убил

Первый запрос по общему распределению комментариев меня расстроил. Думал, тут будет больше токсичности.

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

Тренды роста токсичных комментариев

Я проанализировал 4.5 миллиона комментариев с DTF, чтобы тебе не пришлось этого делать. Результат убил

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

Однако это начиная с августа какой-то взрывной рост хуйни наблюдается. Астрологи были правы. Количество ебанутый увеличилось вдвое.

Средняя токсичность по дням

Я проанализировал 4.5 миллиона комментариев с DTF, чтобы тебе не пришлось этого делать. Результат убил

Всё стабильно: около 20% комментариев ежедневно содержат оскорбления или ругательства. Есть небольшие пики – февраль 2022, тут всё понятно. В 2016 году есть пики какие-то, но это скорее выбросы, я не разбирался откуда там они. Забьем хуй.

Распределение донатов по токсичности

Я проанализировал 4.5 миллиона комментариев с DTF, чтобы тебе не пришлось этого делать. Результат убил

Люди предпочитают донатить адекватным комментариям. Особенно много донатов в диапазоне 0-0.2.

Но есть и исключения.

Лайки на токсичные комментарии

Ну тут всё сразу становится ясно. Токсичные комментарии гораздо чаще лайкают. Так что вперде – теперь вы знаете как заработать классы.

Я проанализировал 4.5 миллиона комментариев с DTF, чтобы тебе не пришлось этого делать. Результат убил

Эпилог

Это не все графики которые есть у меня, их у меня больше.

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

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

Итак - вот ссылка на дашборд.

Вверху есть 2 поля для ввода - поиск по User ID, и по Post ID.

Я проанализировал 4.5 миллиона комментариев с DTF, чтобы тебе не пришлось этого делать. Результат убил

Найти эти значения вы можете в ссылке, выдерните оттуда числовое значение.

Для юзера
Для юзера
Для поста
Для поста

Результаты будут в двух таблицах в самом низу дашборда.

Я проанализировал 4.5 миллиона комментариев с DTF, чтобы тебе не пришлось этого делать. Результат убил

На этом наверное всё.

Я пока еще не знаю сколько по времени будет доступен вам этот дашборд. Постараюсь его оставить подольше. В общем, как надоест и я увижу отсутствие активности, тогда я его и вырублю.

1.8K
706 комментариев