nsbarsukov / toxic-comments-detector

Репозиторий python-пакета "toxicity". Выявление токсичного контента в русскоязычных текстах c помощью глубокого обучения.

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Python package "toxicity"

Мой магистерский диплом "Выявление токсичного контента в русскоязычных текстах".

Магистерская программа "Анализ больших данных в бизнесе, экономике и обществе".
НИУ "Высшая Школа Экономики" (СПб).

Текст работы представлен на сайте НИУ ВШЭ.
В работе подробно объяснено, почему были выбраны данные алгоритмы машинного обучения, и расписаны все детали реализации полученных алгоритмов.

В данном репозитории собрана вся история разработки модели по классификации токсичного контента на русском языке. В конце лучшая модель (с наилучшим соотношением качества и размера) опубликована в форме python-пакета toxicity.

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

Accuracy Recall Precision F1
90.6% 83.86% 87.24% 85.52%

Пример использования python-библиотеки

Установи пакет

pip3 install toxicity

и сразу пробуй

from toxicity import ToxicCommentsDetector

test_raw_texts = [
    'ты чего берега попутал?',
    'это правый берег реки, не путай с левым'
]

toxicDetector = ToxicCommentsDetector()
print(toxicDetector.predict(test_raw_texts)) # [0.9521822  0.18336123]

В данном примере показывается, что модель с 95% вероятностью уверена, что текст

ты чего берега попутал?

является токсичным, а уверенность модели, что текст

это правый берег реки, не путай с левым

может быть токсичным составляет лишь 18%.

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

Структура проекта

├── data # Используемые данные
│
├── dev # Набор констант и утилит для разработки
│   ├── constants
|   └── utils
│
├── models # различные модели для решения главной задачи классификации  
│
├── publishPackageUtils # инструменты для публикации пакета
│    
├── textPreprocessing # набор утилит для предобработки русскоязычных текстов
│   ├── text_utils # набор маленьких утилит по очистке текста
│   └── preprocess_text.py # собирает все утилиты из text_utils в одну функцию
│
└── wordEmbeddingsLayers # различные способы векторизации слов

Навигация по проекту

About

Репозиторий python-пакета "toxicity". Выявление токсичного контента в русскоязычных текстах c помощью глубокого обучения.


Languages

Language:Jupyter Notebook 99.4%Language:Python 0.6%