/ Модель

Характеристики

Контекст
512 токенов
Параметры
138 млн
Лицензия
MIT
Архитектура
bert · dense
Опубликована
30 дек 2024

turkish-toxic-language-detection

Классификация текстаТекст → label3 профессии

BERT-модель для определения токсичных и нетоксичных сообщений на турецком языке.

179скачиваний за 30 дней2лайкавеса обновлены8 июн 2025

Бенчмарки

Как модель справилась с задачами пользователей ailist и что о ней публикуют открытые лидерборды

Публичные оценки

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

В подключённых источниках результатов для этой модели пока нет.

Что умеет модель

Описание составлено по карточке модели и метаданным Hugging Face

Модель разработана автором репозитория ariyul и дообучена на базе dbmdz/bert-base-turkish-cased для бинарной классификации токсичности турецких текстов. Она относит текст к токсичному или нетоксичному классу и подходит для предварительной модерации пользовательских сообщений и анализа турецкого контента.

Модель основана на BERT, имеет около 137,8 млн параметров и принимает последовательности длиной до 512 токенов. Обучение проводилось на очищенных и сбалансированных примерах датасета Overfit-GM/turkish-toxic-language; в описанной предобработке текст приводится к нижнему регистру, удаляются ссылки, упоминания и часть специальных символов. Автор сообщает F1-score 0,96 для обоих классов на своей оценке.

Модель работает с турецким текстом. Результаты могут зависеть от соответствия текста обучающим данным и предобработке; удаление эмодзи, ссылок и упоминаний может терять контекст, а метрики README не гарантируют аналогичного качества на других данных. Лицензия — MIT.

Сценарии применения

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

Ограничения

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

Для каких профессий подходит3

Разделы каталога профессий, в задачах которых используется эта модель

Все профессии

Карточка модели

README от автора на Hugging Face, как он его опубликовал

Открыть на Hugging Face

🇹🇷 Turkish Toxic Language Detection Model 🧠🔥

This model is a fine-tuned version of dbmdz/bert-base-turkish-cased for binary toxicity classification in Turkish text. It was trained using a cleaned and preprocessed version of the Overfit-GM/turkish-toxic-language dataset.

📊 Performance

MetricNon-ToxicToxicMacro Avg
Precision0.960.950.96
Recall0.950.960.96
F1-score0.960.960.96
Accuracy0.96
Test Samples5400541410814

Confusion Matrix

Pred: Non-ToxicPred: Toxic
True: Non-Toxic5154246
True: Toxic2005214

🧪 Preprocessing Details (cleaned_corrected_text)

The model is trained on the cleaned_corrected_text column, which is derived from corrected_text using basic regex-based cleaning steps and manual slang filtering. Here's how:

🔧 Cleaning Function

def clean_corrected_text(text):
    text = text.lower()
    text = re.sub(r"http\S+|www\S+|https\S+", '', text, flags=re.MULTILINE)  # URL removal
    text = re.sub(r"@\w+", '', text)  # remove @mentions
    text = re.sub(r"[^\w\s.,!?-]", '', text)  # remove special characters (e.g., emojis)
    text = re.sub(r"\s+", ' ', text).strip()  # normalize whitespaces
    return text

🧹 Manual Slang Filtering

slang_words = ["kanka", "lan", "knk", "bro", "la", "birader", "kanki"]

def remove_slang(text):
    for word in slang_words:
        text = text.replace(word, "")
    return text.strip()

✅ Applied Steps Summary

StepDescription
LowercasingAll text is converted to lowercase
URL removalRemoves links containing http, www, https
Mention removalRemoves @username style mentions
Special character removalRemoves emojis and symbols (😊, *, %, $, ^, etc.)
Whitespace normalizationCollapses multiple spaces into one
Slang word removalRemoves common informal words like "kanka", "lan", etc.

📌 Conclusion: cleaned_corrected_text is a lightly cleaned, non-linguistically processed text column. The model is trained directly on this.

💡 Example Usage

from transformers import AutoTokenizer, AutoModelForSequenceClassification
import torch

tokenizer = AutoTokenizer.from_pretrained("fc63/turkish_toxic_language_detection_model")
model = AutoModelForSequenceClassification.from_pretrained("fc63/turkish_toxic_language_detection_model")

def predict_toxicity(text):
    inputs = tokenizer(text, return_tensors="pt", truncation=True, padding="max_length", max_length=128)
    outputs = model(**inputs)
    predicted = torch.argmax(outputs.logits, dim=1).item()
    return "Toxic" if predicted == 1 else "Non-Toxic"

🛠 Training Details

  • Trainer: Hugging Face Trainer API
  • Epochs: 3
  • Batch size: 16
  • Learning Rate: 2e-5
  • Eval Strategy: Epoch-based
  • Undersampling: Applied to balance class distribution

📁 Dataset

Dataset used: Overfit-GM/turkish-toxic-language
Final dataset size after preprocessing and balancing: 54068 samples

Как запустить

На своей GPU в ailist. Цена — по текущим предложениям провайдеров

GPU в ailist

Универсальный рантайм · text-classification

Можно запустить

Подбираем GPU…

Класс архитектуры
BertForSequenceClassification
Ревизия весов
d09cc7a

0 моделей