LINUX.ORG.RU

Проект Нейромодератор

 , ,


6

6

Точнее «нейрокрыса»: т.к. модераторских полномочий у меня нет, я лишь могу сделать скрипты, которые будут отписываться в специальный тред

Тема навеяна Бан без причины (комментарий)

Суть такова: буду пилить набор скриптов для «выявления подозрительных сообщений», обучать буду на текстах с LORа, которые были удалены модераторами.

Когда доделаю попрошу модераторов оценить качество работы сабжа.

На данный момент:

  • скачан архив тредов с января по май 2019;
  • идет первичный анализ данных;
  • идет подготовка к разметке данных.

Проблема: модераторы указывают причины вручную (или не указывают совсем), соответственно:

  • есть сомнения в качестве разметки,
  • текстовую разметку придется превращать в разметку для классификации;

Для решения проблемы сформированы:

Да, разделитель в файлах - точка с запятой.

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

cast @jollheef, @Shaman007, @maxcom

Апдейт 1 (13.06.2019)

По результатам обсуждения тут решил:

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

  • В качестве отрицательных - оставленные модераторами собщения из тех же топиков, что и удаленные.

  • Если данных хватать не будет - добью неудаленными из других топиков.

Пришлось немного переформатировать датасет (датафрейм pandas), т.к. раннее там не было ссылок сообщение-топик.

В эти выходные сделаю обучающую выборку и попробую сделать бинарный классификатор.

Если получится, - на следующей неделе буду пилить нейромодератора нейроябеду.

Апдейт 2 (16.06.2019)

Апдейт 3 (16.06.2019)

Апдейт 4 (16.06.2019)

Апдейт 5 (17.06.2019)

Апдейт 6 (22.06.2019)

Апдейт 7 (22.06.2019)

Апдейт 8 (27.06.2019)

Апдейт 9 (30.06.2019)

Апдейт 10(05.07.2019)

Апдейт 11(14.09.2019)

Апдейт 12(08.12.2019)

Проект на GitHub

Тестовый тред

★★★★★

Последнее исправление: shkolnick-kun (всего исправлений: 18)

Ответ на: И снова здравствуйте. от shkolnick-kun
--------------------------------
Пункт правил: 4.6
--------------------------------
 Accuracy: 0.9782393669634025
Precision: 0.990909090909091

Два банхаммера этому господину.

t184256 ★★★★★
()
Ответ на: И снова здравствуйте. от shkolnick-kun

А расскажи ка, как сейчас в общих чертах алгоритм выглядит, чтобы не копаться зря в коде. Имеется ввиду совсем в общих, а-ля берётся текст, проводится выделение ключевых слов/какой-то другой анализ, их в матрицу, матрицу в кластеризацию, кластеризованную матрицу в модель такую-то и т.д.. Что-то в этом духе интересно узнать.

Если что-то похожее, на то что я пилю увижу, то могу подсказать и много времени сэкономить. Ну или наоборот, тут как повезёт. Исправление опечаток для модели пробовал вводить? Приведение слов к начальной форме? Т.е. стараемся исправить опечатки, считаем их количество, бОльШие буквы среди слов тоже считаем, чтобы ПеЙсАтЕлЕй определять, они тоже как признак сгодятся. Ну а исправленный текст уже в модель подавать.

peregrine ★★★★★
()
Последнее исправление: peregrine (всего исправлений: 5)
Ответ на: комментарий от peregrine

Скорее всего, что ТС при разработке проекта и попытке его использование для ЛОР понял, что лучше этот анализ не делать …

anonymous
()
Ответ на: комментарий от peregrine

То, что работало в роботе, сделано по гугловскому хендбуку по классификации текстов.

Препроцессинг: убираем вставки кода, убираем знаки препинания (вопросы и восклицание заменяются на «вопрос» «восклицание»), автозамена юникодовых emoji (смайлики, предметы, флаги) и смайликов на их текстовые описания, автозамена цифр на числительные, приводим к нижнему регистру, лемматизируем, убираем стоп-слова (кроме числительных).

Дальше - токенизатор (20к самых частых слов) и паддинг и нейронка.

Перед новым годом экспериментировал с разными имбеддингами.

Тогда же сделал «мешок слов»->tfidf->svd(100 компонент)->manifold, на графиках почти ничего интересного не увидел, не видно там сходу отдельных куч данных.

Вчера сделал так: «препроцессинг без лемматизации»-> Laser->manifold, данные оказались ещё более скученными (одна куча + несколько оторвавшихся точек), метки распределены равномерно по всей куче…

Сомневаюсь, что кластеризация поможет…

Собственно, Laser заинтересовал тем, что извлекает семантику независимо от языка, соответственно, можно попробовать обогатить датасет за счет размеченных toxic comments на любых языках, которые смогу найти.

shkolnick-kun ★★★★★
() автор топика
Последнее исправление: shkolnick-kun (всего исправлений: 11)
Ответ на: комментарий от anonymous

Шутка

Если модерировать ЛОР «по настоящему», то на нем останутся лишь

Одни модераторы и свободные кони.

Владимир

anonymous
()

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

Твоя тупая железка учится не соблюдать правила, а угождать модераторам. Ты ведь в курсе? Так что «нейлоочколиз» было бы правильнее. Хотя это скорее уже не к железке.

kostyarin_ ★★
()
Ответ на: комментарий от shkolnick-kun

Дальше - токенизатор (20к самых частых слов) и паддинг и нейронка.

Знаешь, можно ещё взять нормальные (не потёртые) и ненормальные сообщения и посчитать для них частоты слов, выбрать те слова, которые с разными частотами встречаются (они чётче всего характеризуют интересующую тебя область). Порог сам посмотришь, на графике отсортируй только по частоте и как пик пойдёт резко вверх, так твои слова (статистически важные признаки) начались. Только слова, которые редко встречаются (меньше 1% на всё множество с повторениями слов отбрось, это шумы). Хорошо бы тут развернуть ещё всё твоё векторное пространство текста как-то, но в эту сторону, насколько я понимаю, особо не думали пока и один BERT учитывает расстояния между словами. Хотя по идее там да, n-мерные пространства можно наворачивать, добавляя расстояния между словами

peregrine ★★★★★
()
Последнее исправление: peregrine (всего исправлений: 4)
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.