https://github.com/nsbarsukov/toxic-comments-detector
Репозиторий python-пакета "toxicity". Выявление токсичного контента в русскоязычных текстах c помощью глубокого обучения.
https://github.com/nsbarsukov/toxic-comments-detector
deep-learning hate-speech toxic-comment-classification toxic-comments-detector toxicity
Last synced: about 1 year ago
JSON representation
Репозиторий python-пакета "toxicity". Выявление токсичного контента в русскоязычных текстах c помощью глубокого обучения.
- Host: GitHub
- URL: https://github.com/nsbarsukov/toxic-comments-detector
- Owner: nsbarsukov
- Created: 2020-12-20T07:15:30.000Z (over 5 years ago)
- Default Branch: master
- Last Pushed: 2021-06-12T18:26:06.000Z (almost 5 years ago)
- Last Synced: 2025-04-08T11:01:41.967Z (about 1 year ago)
- Topics: deep-learning, hate-speech, toxic-comment-classification, toxic-comments-detector, toxicity
- Language: Jupyter Notebook
- Homepage:
- Size: 98.4 MB
- Stars: 6
- Watchers: 2
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# Python package "toxicity"
**Мой магистерский диплом "Выявление токсичного контента в русскоязычных текстах".**
Магистерская программа "Анализ больших данных в бизнесе, экономике и обществе".
НИУ "Высшая Школа Экономики" (СПб).
Текст работы представлен [на сайте НИУ ВШЭ](https://www.hse.ru/edu/vkr/470708555).
В работе подробно объяснено, почему были выбраны данные алгоритмы машинного обучения, и расписаны все детали реализации полученных алгоритмов.
В данном репозитории собрана вся история разработки модели по классификации токсичного контента
на русском языке. В конце лучшая модель (с наилучшим соотношением качества и размера)
опубликована в форме python-пакета [**toxicity**](https://pypi.org/project/toxicity/).
Показатели метрик точности на тестовой выборке у модели (внутри пакета **toxicity**):
Accuracy | Recall | Precision | F1
-------- | ------ | --------- | ------ |
90.6% | 83.86% | 87.24% | 85.52% |
## Пример использования python-библиотеки
Установи пакет
```shell
pip3 install toxicity
```
и сразу пробуй
```python
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 # различные способы векторизации слов
```
## Навигация по проекту
- [Используемые данные](/data)
- [Предварительная очистка текстовых данных](/textPreprocessing)
Как обрабатывались сырые текстовые данные перед их дальнейшим использованием в построении моделей машинного обучения.
- [Какие способы векторизации слов применялись](/wordEmbeddingsLayers)
- [Какие модели ML были опробованы для решения поставленной главной задачи классификации](/models)
- [Как опубликовать новую версию python-пакета](/publishPackageUtils/how-publish-package-instruction.md)