🚀 トルコ語有毒言語検出モデル
このモデルは、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 形式のメンションを除去します |
特殊文字除去 |
絵文字や記号(üòä、*、%、$、^など)を除去します |
空白正規化 |
複数の空白を1つにまとめます |
俗語除去 |
"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 ライセンスの下で提供されています。