🚀 土耳其語有毒語言檢測模型
該模型是基於 dbmdz/bert-base-turkish-cased
微調而來,用於對土耳其語文本進行二元有毒性分類。它使用經過清理和預處理的 Overfit-GM/turkish-toxic-language
數據集進行訓練。
✨ 主要特性
- 多標籤支持:支持多種評估指標,如準確率、F1值、精確率和召回率。
- 數據處理:對訓練數據進行了清理和預處理,包括去除URL、提及、特殊字符、俚語等。
- 訓練策略:採用Hugging Face的
Trainer
API進行訓練,應用了欠採樣來平衡類別分佈。
📦 安裝指南
暫未提供相關安裝步驟。
💻 使用示例
基礎用法
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"
📚 詳細文檔
性能表現
指標 |
非有毒 |
有毒 |
宏平均 |
精確率 |
0.96 |
0.95 |
0.96 |
召回率 |
0.95 |
0.96 |
0.96 |
F1分數 |
0.96 |
0.96 |
0.96 |
準確率 |
|
|
0.96 |
測試樣本 |
5400 |
5414 |
10814 |
混淆矩陣
|
預測: 非有毒 |
預測: 有毒 |
真實: 非有毒 |
5154 |
246 |
真實: 有毒 |
200 |
5214 |
預處理細節 (cleaned_corrected_text)
該模型在 cleaned_corrected_text
列上進行訓練,該列是從 corrected_text
經過基本的基於正則表達式的清理步驟和手動俚語過濾得到的。具體如下:
清理函數
def clean_corrected_text(text):
text = text.lower()
text = re.sub(r"http\S+|www\S+|https\S+", '', text, flags=re.MULTILINE)
text = re.sub(r"@\w+", '', text)
text = re.sub(r"[^\w\s.,!?-]", '', text)
text = re.sub(r"\s+", ' ', text).strip()
return text
手動俚語過濾
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()
應用步驟總結
步驟 |
描述 |
小寫轉換 |
所有文本轉換為小寫 |
URL移除 |
移除包含http、www、https的鏈接 |
提及移除 |
移除 @username 樣式的提及 |
特殊字符移除 |
移除表情符號和符號(如üòä、*、%、$、^等) |
空格歸一化 |
將多個空格合併為一個 |
俚語移除 |
移除常見的非正式詞彙,如 "kanka"、"lan" 等 |
結論:cleaned_corrected_text
是一個經過輕度清理、未進行語言學處理的文本列。模型直接在該列上進行訓練。
訓練細節
- 訓練器:Hugging Face
Trainer
API
- 輪數:3
- 批次大小:16
- 學習率:2e-5
- 評估策略:基於輪次
- 欠採樣:應用於平衡類別分佈
數據集
使用的數據集:Overfit-GM/turkish-toxic-language
預處理和平衡後的最終數據集大小:54068 個樣本
🔧 技術細節
模型基於 dbmdz/bert-base-turkish-cased
進行微調,用於土耳其語文本的二元有毒性分類。通過對 Overfit-GM/turkish-toxic-language
數據集進行清理和預處理,去除了URL、提及、特殊字符和俚語等噪聲信息,提高了模型的性能。訓練過程中使用了Hugging Face的 Trainer
API,設置了合適的輪數、批次大小和學習率,並應用了欠採樣來平衡類別分佈。
📄 許可證
本項目採用 MIT 許可證。