| --- |
| language: |
| - ru |
| pipeline_tag: text-classification |
| tags: |
| - toxicity |
| - binary-classification |
| base_model: ai-forever/ru-en-RoSBERTa |
| datasets: |
| - Izbebe/ru-toxicity-support-binary |
| --- |
| |
| # Бинарный классификатор токсичности русскоязычных текстов |
|
|
| Модель для детекции токсичных сообщений в переписке службы поддержки |
| (учебный проект). Дообучена на базе `ai-forever/ru-en-RoSBERTa`: |
| энкодер заморожен, обучалась только классификационная голова. |
|
|
| ## Классы |
| - `0` — нетоксичный текст |
| - `1` — токсичный текст (грубость, оскорбления, сарказм, пассивная агрессия) |
|
|
| ## Метрики на тестовой выборке |
| | Метрика | Значение | |
| |---------|----------| |
| | Accuracy | 0.9610 | |
| | Precision | 0.9646 | |
| | Recall | 0.9571 | |
| | F1 | 0.9608 | |
| | ROC AUC | 0.9948 | |
| | MCC | 0.9220 | |
|
|
| ## Пример использования |
| ```python |
| import torch |
| from transformers import AutoTokenizer, AutoModelForSequenceClassification |
| |
| tokenizer = AutoTokenizer.from_pretrained("Izbebe/ru-toxicity-classifier-rosberta") |
| model = AutoModelForSequenceClassification.from_pretrained("Izbebe/ru-toxicity-classifier-rosberta") |
| |
| text = "Вы что, совсем тупой? Я же уже объяснял!" |
| inputs = tokenizer(text, return_tensors="pt", truncation=True, max_length=128) |
| with torch.no_grad(): |
| probs = torch.softmax(model(**inputs).logits, dim=-1) |
| print(f"Вероятность токсичности: {probs[0, 1].item():.3f}") |
| ``` |
|
|
| ## Обучающие данные |
| Датасет: [Izbebe/ru-toxicity-support-binary](https://huggingface.co/datasets/Izbebe/ru-toxicity-support-binary) |
|
|