Bert Offensive Lang Detection Tr
模型概述
該模型基於dbmdz/bert-base-turkish-128k-uncased模型微調,專門用於土耳其語攻擊性語言檢測任務。
模型特點
土耳其語優化
專門針對土耳其語特性進行優化,包括字符處理和文本預處理
全面的預處理流程
包含重音轉換、小寫處理、用戶提及移除等多種文本清洗步驟
不平衡數據處理
針對不平衡數據集(攻擊性樣本佔少數)進行了優化處理
模型能力
土耳其語文本分類
攻擊性語言檢測
社交媒體文本分析
使用案例
內容審核
社交媒體評論審核
自動識別並過濾社交媒體上的攻擊性評論
可幫助減少人工審核工作量
在線社區管理
檢測論壇和討論區中的不當言論
維護健康的在線討論環境
🚀 土耳其語冒犯性語言檢測模型
本項目是一個用於檢測土耳其語冒犯性語言的模型,它基於預訓練的BERT模型,使用特定的數據集進行微調,能夠有效識別文本中的冒犯性內容。
🚀 快速開始
安裝必要的庫
pip install git+https://github.com/emres/turkish-deasciifier.git
pip install keras_preprocessing
模型初始化
# 直接加載模型
from transformers import AutoTokenizer, AutoModelForSequenceClassification
tokenizer = AutoTokenizer.from_pretrained("TURKCELL/bert-offensive-lang-detection-tr")
model = AutoModelForSequenceClassification.from_pretrained("TURKCELL/bert-offensive-lang-detection-tr")
檢查句子是否具有冒犯性
import numpy as np
def is_offensive(sentence):
d = {
0: 'non-offensive',
1: 'offensive'
}
normalize_text = clean_text(sentence)
test_sample = tokenizer([normalize_text], padding=True, truncation=True, max_length=256, return_tensors='pt')
test_sample = {k: v.to(device) for k, v in test_sample.items()}
output = model(**test_sample)
y_pred = np.argmax(output.logits.detach().cpu().numpy(), axis=1)
print(normalize_text, "-->", d[y_pred[0]])
return y_pred[0]
is_offensive("@USER Mekanı cennet olsun, saygılar sayın avukatımız,iyi günler dilerim")
is_offensive("Bir Gün Gelecek Biriniz Bile Kalmayana Kadar Mücadeleye Devam Kökünüzü Kurutacağız !! #bebekkatilipkk")
✨ 主要特性
- 基於 dbmdz/bert-base-turkish-128k-uncased 模型進行微調。
- 使用 OffensEval 2020 數據集,該數據集包含 31,756 條帶註釋的推文。
- 對多種預處理步驟的性能進行了分析,確定了有效的預處理策略。
- 在測試集上達到了 89% 的準確率。
📦 安裝指南
pip install git+https://github.com/emres/turkish-deasciifier.git
pip install keras_preprocessing
💻 使用示例
基礎用法
安裝必要的庫
pip install git+https://github.com/emres/turkish-deasciifier.git
pip install keras_preprocessing
預處理函數
from turkish.deasciifier import Deasciifier
def deasciifier(text):
deasciifier = Deasciifier(text)
return deasciifier.convert_to_turkish()
def remove_circumflex(text):
circumflex_map = {
'â': 'a',
'î': 'i',
'û': 'u',
'ô': 'o',
'Â': 'A',
'Î': 'I',
'Û': 'U',
'Ô': 'O'
}
return ''.join(circumflex_map.get(c, c) for c in text)
def turkish_lower(text):
turkish_map = {
'I': 'ı',
'İ': 'i',
'Ç': 'ç',
'Ş': 'ş',
'Ğ': 'ğ',
'Ü': 'ü',
'Ö': 'ö'
}
return ''.join(turkish_map.get(c, c).lower() for c in text)
文本清理函數
import re
def clean_text(text):
# 去除文本中的帶帽字符
text = remove_circumflex(text)
# 將文本轉換為小寫
text = turkish_lower(text)
# 轉換為土耳其語字符
text = deasciifier(text)
# 去除用戶提及
text = re.sub(r"@\S*", " ", text)
# 去除話題標籤
text = re.sub(r'#\S+', ' ', text)
# 去除URL
text = re.sub(r"http\S+|www\S+|https\S+", ' ', text, flags=re.MULTILINE)
# 去除標點符號和帶標點的表情符號
text = re.sub(r'[^\w\s]|(:\)|:\(|:D|:P|:o|:O|;\))', ' ', text)
# 去除表情符號
emoji_pattern = re.compile("["
u"\U0001F600-\U0001F64F" # 表情符號
u"\U0001F300-\U0001F5FF" # 符號和象形圖
u"\U0001F680-\U0001F6FF" # 交通和地圖符號
u"\U0001F1E0-\U0001F1FF" # 旗幟(iOS)
u"\U00002702-\U000027B0"
u"\U000024C2-\U0001F251"
"]+", flags=re.UNICODE)
text = emoji_pattern.sub(r' ', text)
# 將多個連續空格替換為單個空格並去除首尾空格
text = re.sub(r'\s+', ' ', text).strip()
return text
高級用法
模型初始化
# 直接加載模型
from transformers import AutoTokenizer, AutoModelForSequenceClassification
tokenizer = AutoTokenizer.from_pretrained("TURKCELL/bert-offensive-lang-detection-tr")
model = AutoModelForSequenceClassification.from_pretrained("TURKCELL/bert-offensive-lang-detection-tr")
檢查句子是否具有冒犯性
import numpy as np
def is_offensive(sentence):
d = {
0: 'non-offensive',
1: 'offensive'
}
normalize_text = clean_text(sentence)
test_sample = tokenizer([normalize_text], padding=True, truncation=True, max_length=256, return_tensors='pt')
test_sample = {k: v.to(device) for k, v in test_sample.items()}
output = model(**test_sample)
y_pred = np.argmax(output.logits.detach().cpu().numpy(), axis=1)
print(normalize_text, "-->", d[y_pred[0]])
return y_pred[0]
is_offensive("@USER Mekanı cennet olsun, saygılar sayın avukatımız,iyi günler dilerim")
is_offensive("Bir Gün Gelecek Biriniz Bile Kalmayana Kadar Mücadeleye Devam Kökünüzü Kurutacağız !! #bebekkatilipkk")
📚 詳細文檔
模型描述
本模型使用 dbmdz/bert-base-turkish-128k-uncased 模型和 OffensEval 2020 數據集進行微調。Offenseval-tr 數據集包含 31,756 條帶註釋的推文。
數據集分佈
非冒犯性(0) | 冒犯性 (1) | |
---|---|---|
訓練集 | 25625 | 6131 |
測試集 | 2812 | 716 |
預處理步驟
處理步驟 | 描述 |
---|---|
重音字符轉換 | 將重音字符轉換為無重音的等效字符 |
小寫轉換 | 將所有文本轉換為小寫 |
去除 @user 提及 | 從文本中去除 @user 格式的用戶提及 |
去除話題標籤表達式 | 從文本中去除 #話題標籤 格式的表達式 |
去除 URL | 從文本中去除 URL |
去除標點符號和帶標點的表情符號 | 從文本中去除標點符號和帶有標點的表情符號 |
去除表情符號 | 從文本中去除表情符號 |
去 ASCII 化 | 將 ASCII 文本轉換為包含土耳其字符的文本 |
對每個預處理步驟的性能進行了分析,去除數字和保留話題標籤沒有效果。
🔧 技術細節
模型評估
在測試集上的評估結果如下表所示,我們在測試集上達到了 89% 的準確率。
類別 | 精確率 | 召回率 | F1 分數 | 準確率 |
---|---|---|---|---|
類別 0 | 0.92 | 0.94 | 0.93 | 0.89 |
類別 1 | 0.73 | 0.67 | 0.70 | |
宏平均 | 0.83 | 0.80 | 0.81 |
📄 許可證
本項目採用 MIT 許可證。
Distilbert Base Uncased Finetuned Sst 2 English
Apache-2.0
基於DistilBERT-base-uncased在SST-2情感分析數據集上微調的文本分類模型,準確率91.3%
文本分類 英語
D
distilbert
5.2M
746
Xlm Roberta Base Language Detection
MIT
基於XLM-RoBERTa的多語言檢測模型,支持20種語言的文本分類
文本分類
Transformers 支持多種語言

X
papluca
2.7M
333
Roberta Hate Speech Dynabench R4 Target
該模型通過動態生成數據集來改進在線仇恨檢測,專注於從最差案例中學習以提高檢測效果。
文本分類
Transformers 英語

R
facebook
2.0M
80
Bert Base Multilingual Uncased Sentiment
MIT
基於bert-base-multilingual-uncased微調的多語言情感分析模型,支持6種語言的商品評論情感分析
文本分類 支持多種語言
B
nlptown
1.8M
371
Emotion English Distilroberta Base
基於DistilRoBERTa-base微調的英文文本情感分類模型,可預測埃克曼六種基本情緒及中性類別。
文本分類
Transformers 英語

E
j-hartmann
1.1M
402
Robertuito Sentiment Analysis
基於RoBERTuito的西班牙語推文情感分析模型,支持POS(積極)/NEG(消極)/NEU(中性)三類情感分類
文本分類 西班牙語
R
pysentimiento
1.0M
88
Finbert Tone
FinBERT是一款基於金融通訊文本預訓練的BERT模型,專注於金融自然語言處理領域。finbert-tone是其微調版本,用於金融情感分析任務。
文本分類
Transformers 英語

F
yiyanghkust
998.46k
178
Roberta Base Go Emotions
MIT
基於RoBERTa-base的多標籤情感分類模型,在go_emotions數據集上訓練,支持28種情感標籤識別。
文本分類
Transformers 英語

R
SamLowe
848.12k
565
Xlm Emo T
XLM-EMO是一個基於XLM-T模型微調的多語言情感分析模型,支持19種語言,專門針對社交媒體文本的情感預測。
文本分類
Transformers 其他

X
MilaNLProc
692.30k
7
Deberta V3 Base Mnli Fever Anli
MIT
基於MultiNLI、Fever-NLI和ANLI數據集訓練的DeBERTa-v3模型,擅長零樣本分類和自然語言推理任務
文本分類
Transformers 英語

D
MoritzLaurer
613.93k
204
精選推薦AI模型
Llama 3 Typhoon V1.5x 8b Instruct
專為泰語設計的80億參數指令模型,性能媲美GPT-3.5-turbo,優化了應用場景、檢索增強生成、受限生成和推理任務
大型語言模型
Transformers 支持多種語言

L
scb10x
3,269
16
Cadet Tiny
Openrail
Cadet-Tiny是一個基於SODA數據集訓練的超小型對話模型,專為邊緣設備推理設計,體積僅為Cosmo-3B模型的2%左右。
對話系統
Transformers 英語

C
ToddGoldfarb
2,691
6
Roberta Base Chinese Extractive Qa
基於RoBERTa架構的中文抽取式問答模型,適用於從給定文本中提取答案的任務。
問答系統 中文
R
uer
2,694
98