Multilingual E5 Language Detection
M
Multilingual E5 Language Detection
由 Mike0307 开发
支持45种语言的检测模型,基于multilingual-e5-base微调,准确率达98.37%
下载量 570
发布时间 : 1/27/2024
模型简介
该模型专门用于检测文本的语言类型,支持45种语言,包括阿拉伯语、中文、英语等多种语言。基于multilingual-e5-base模型在common-language数据集上微调而成,具有高准确率和广泛的语言覆盖。
模型特点
多语言支持
支持45种语言的检测,涵盖广泛的语言类型
高准确率
整体准确率达98.37%,多数语言F1值超过0.95
细粒度中文检测
能区分中国大陆、香港和台湾的中文变体
模型能力
语言检测
多语言文本分类
使用案例
内容管理
多语言内容分类
自动识别用户提交内容的语言类型
准确率98.37%
本地化服务
语言路由
根据检测到的语言将用户请求路由到相应语言服务
🚀 多语言检测模型
本模型支持检测45种语言,它基于 multilingual-e5-base 模型在 common-language 数据集上进行微调。整体准确率达到了98.37%,更多评估结果如下所示。
🚀 快速开始
📦 下载模型
from transformers import AutoTokenizer, AutoModelForSequenceClassification
tokenizer = AutoTokenizer.from_pretrained('Mike0307/multilingual-e5-language-detection')
model = AutoModelForSequenceClassification.from_pretrained('Mike0307/multilingual-e5-language-detection', num_labels=45)
💻 使用示例
基础用法
import torch
languages = [
"Arabic", "Basque", "Breton", "Catalan", "Chinese_China", "Chinese_Hongkong",
"Chinese_Taiwan", "Chuvash", "Czech", "Dhivehi", "Dutch", "English",
"Esperanto", "Estonian", "French", "Frisian", "Georgian", "German", "Greek",
"Hakha_Chin", "Indonesian", "Interlingua", "Italian", "Japanese", "Kabyle",
"Kinyarwanda", "Kyrgyz", "Latvian", "Maltese", "Mongolian", "Persian", "Polish",
"Portuguese", "Romanian", "Romansh_Sursilvan", "Russian", "Sakha", "Slovenian",
"Spanish", "Swedish", "Tamil", "Tatar", "Turkish", "Ukranian", "Welsh"
]
def predict(text, model, tokenizer, device = torch.device('cpu')):
model.to(device)
model.eval()
tokenized = tokenizer(text, padding='max_length', truncation=True, max_length=128, return_tensors="pt")
input_ids = tokenized['input_ids']
attention_mask = tokenized['attention_mask']
with torch.no_grad():
input_ids = input_ids.to(device)
attention_mask = attention_mask.to(device)
outputs = model(input_ids=input_ids, attention_mask=attention_mask)
logits = outputs.logits
probabilities = torch.nn.functional.softmax(logits, dim=1)
return probabilities
def get_topk(probabilities, languages, k=3):
topk_prob, topk_indices = torch.topk(probabilities, k)
topk_prob = topk_prob.cpu().numpy()[0].tolist()
topk_indices = topk_indices.cpu().numpy()[0].tolist()
topk_labels = [languages[index] for index in topk_indices]
return topk_prob, topk_labels
text = "你的測試句子"
probabilities = predict(text, model, tokenizer)
topk_prob, topk_labels = get_topk(probabilities, languages)
print(topk_prob, topk_labels)
# [0.999620258808, 0.00025940246996469, 2.7690215574693e-05]
# ['Chinese_Taiwan', 'Chinese_Hongkong', 'Chinese_China']
📚 详细文档
评估结果
测试数据集采用的是 common_language 测试数据集。
序号 | 语言 | 精确率 | 召回率 | F1分数 | 样本数量 |
---|---|---|---|---|---|
0 | Arabic | 1.00 | 1.00 | 1.00 | 151 |
1 | Basque | 0.99 | 1.00 | 1.00 | 111 |
2 | Breton | 1.00 | 0.90 | 0.95 | 252 |
3 | Catalan | 0.96 | 0.99 | 0.97 | 96 |
4 | Chinese_China | 0.98 | 1.00 | 0.99 | 100 |
5 | Chinese_Hongkong | 0.97 | 0.87 | 0.92 | 115 |
6 | Chinese_Taiwan | 0.92 | 0.98 | 0.95 | 170 |
7 | Chuvash | 0.98 | 1.00 | 0.99 | 137 |
8 | Czech | 0.98 | 1.00 | 0.99 | 128 |
9 | Dhivehi | 1.00 | 1.00 | 1.00 | 111 |
10 | Dutch | 0.99 | 1.00 | 0.99 | 144 |
11 | English | 0.96 | 1.00 | 0.98 | 98 |
12 | Esperanto | 0.98 | 0.98 | 0.98 | 107 |
13 | Estonian | 1.00 | 0.99 | 0.99 | 93 |
14 | French | 0.95 | 1.00 | 0.98 | 106 |
15 | Frisian | 1.00 | 0.98 | 0.99 | 117 |
16 | Georgian | 1.00 | 1.00 | 1.00 | 110 |
17 | German | 1.00 | 1.00 | 1.00 | 101 |
18 | Greek | 1.00 | 1.00 | 1.00 | 153 |
19 | Hakha_Chin | 0.99 | 1.00 | 0.99 | 202 |
20 | Indonesian | 0.99 | 0.99 | 0.99 | 150 |
21 | Interlingua | 0.96 | 0.97 | 0.96 | 182 |
22 | Italian | 0.99 | 0.94 | 0.96 | 100 |
23 | Japanese | 1.00 | 1.00 | 1.00 | 144 |
24 | Kabyle | 1.00 | 0.96 | 0.98 | 156 |
25 | Kinyarwanda | 0.97 | 1.00 | 0.99 | 103 |
26 | Kyrgyz | 0.98 | 1.00 | 0.99 | 129 |
27 | Latvian | 0.98 | 0.98 | 0.98 | 171 |
28 | Maltese | 0.99 | 0.98 | 0.98 | 152 |
29 | Mongolian | 1.00 | 1.00 | 1.00 | 112 |
30 | Persian | 1.00 | 1.00 | 1.00 | 123 |
31 | Polish | 0.91 | 0.99 | 0.95 | 128 |
32 | Portuguese | 0.94 | 0.99 | 0.96 | 124 |
33 | Romanian | 1.00 | 1.00 | 1.00 | 152 |
34 | Romansh_Sursilvan | 0.99 | 0.95 | 0.97 | 106 |
35 | Russian | 0.99 | 0.99 | 0.99 | 100 |
36 | Sakha | 0.99 | 1.00 | 1.00 | 105 |
37 | Slovenian | 0.99 | 1.00 | 1.00 | 166 |
38 | Spanish | 0.96 | 0.95 | 0.95 | 94 |
39 | Swedish | 0.99 | 1.00 | 0.99 | 190 |
40 | Tamil | 1.00 | 1.00 | 1.00 | 135 |
41 | Tatar | 1.00 | 0.96 | 0.98 | 173 |
42 | Turkish | 1.00 | 1.00 | 1.00 | 137 |
43 | Ukranian | 0.99 | 1.00 | 1.00 | 126 |
44 | Welsh | 0.98 | 1.00 | 0.99 | 103 |
宏平均 | 0.98 | 0.99 | 0.98 | 5963 | |
加权平均 | 0.98 | 0.98 | 0.98 | 5963 | |
整体准确率 | 0.9837 | 5963 |
📄 许可证
本项目采用 Apache-2.0 许可证。
模型信息
属性 | 详情 |
---|---|
模型类型 | 基于 multilingual-e5-base 微调的多语言检测模型 |
训练数据 | common_language 数据集 |
支持语言
本模型支持以下45种语言的检测:
- Arabic、Basque、Breton、Catalan、Chinese_China、Chinese_Hongkong、Chinese_Taiwan、Chuvash、Czech、Dhivehi、Dutch、English、Esperanto、Estonian、French、Frisian、Georgian、German、Greek、Hakha_Chin、Indonesian、Interlingua、Italian、Japanese、Kabyle、Kinyarwanda、Kyrgyz、Latvian、Maltese、Mongolian、Persian、Polish、Portuguese、Romanian、Romansh_Sursilvan、Russian、Sakha、Slovenian、Spanish、Swedish、Tamil、Tatar、Turkish、Ukranian、Welsh
评估指标
本模型使用以下评估指标:
- 精确率(precision)
- 召回率(recall)
- F1分数(f1)
- 准确率(accuracy)
标签
本模型相关标签:
- language-detection
- Frisian
- Dhivehi
- Hakha_Chin
- Kabyle
- Sakha
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