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