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