🚀 语言检测模型
这是一个基于BERT的语言检测模型,在hac541309/open-lid-dataset上进行训练,该数据集包含200种语言的1.21亿个句子。此模型针对文本分类任务中的语言识别进行了优化,能够快速且准确地识别语言。
📦 模型信息
📚 训练过程
数据集
分词器
使用自定义的BertTokenizerFast
,包含[UNK]
、[CLS]
、[SEP]
、[PAD]
、[MASK]
等特殊标记。
超参数
- 学习率:2e-5
- 批量大小:训练时为256,测试时为512
- 训练轮数:1
- 调度器:Cosine
训练器
利用Hugging Face的Trainer API进行训练,并使用Weights & Biases进行日志记录。
🔧 数据增强
为了提高模型的泛化能力和鲁棒性,引入了一种新的文本增强策略,具体包括:
- 随机去除数字
- 打乱单词顺序以增加多样性
- 有选择地去除单词
- 添加随机数字以模拟噪声
- 修改标点符号以处理不同的文本格式
增强效果
引入这些增强方法后,模型的整体性能得到了提升,最新的评估结果如下:
📊 评估
更新后的性能指标
- 准确率:0.9733
- 精确率:0.9735
- 召回率:0.9733
- F1分数:0.9733
详细评估(约1200万条文本)
脚本 |
支持数量 |
精确率 |
召回率 |
F1分数 |
大小 |
Arab |
502886 |
0.908169 |
0.91335 |
0.909868 |
21 |
Latn |
4.86532e+06 |
0.973172 |
0.972221 |
0.972646 |
125 |
Ethi |
88564 |
0.996634 |
0.996459 |
0.996546 |
2 |
Beng |
100502 |
0.995 |
0.992859 |
0.993915 |
3 |
Deva |
260227 |
0.950405 |
0.942772 |
0.946355 |
10 |
Cyrl |
510229 |
0.991342 |
0.989693 |
0.990513 |
12 |
Tibt |
21863 |
0.992792 |
0.993665 |
0.993222 |
2 |
Grek |
80445 |
0.998758 |
0.999391 |
0.999074 |
1 |
Gujr |
53237 |
0.999981 |
0.999925 |
0.999953 |
1 |
Hebr |
61576 |
0.996375 |
0.998904 |
0.997635 |
2 |
Armn |
41146 |
0.999927 |
0.999927 |
0.999927 |
1 |
Jpan |
53963 |
0.999147 |
0.998721 |
0.998934 |
1 |
Knda |
40989 |
0.999976 |
0.999902 |
0.999939 |
1 |
Geor |
43399 |
0.999977 |
0.999908 |
0.999942 |
1 |
Khmr |
24348 |
1 |
0.999959 |
0.999979 |
1 |
Hang |
66447 |
0.999759 |
0.999955 |
0.999857 |
1 |
Laoo |
18353 |
1 |
0.999837 |
0.999918 |
1 |
Mlym |
41899 |
0.999976 |
0.999976 |
0.999976 |
1 |
Mymr |
62067 |
0.999898 |
0.999207 |
0.999552 |
2 |
Orya |
27626 |
1 |
0.999855 |
0.999928 |
1 |
Guru |
40856 |
1 |
0.999902 |
0.999951 |
1 |
Olck |
13646 |
0.999853 |
1 |
0.999927 |
1 |
Sinh |
41437 |
1 |
0.999952 |
0.999976 |
1 |
Taml |
46832 |
0.999979 |
1 |
0.999989 |
1 |
Tfng |
25238 |
0.849058 |
0.823968 |
0.823808 |
2 |
Telu |
38251 |
1 |
0.999922 |
0.999961 |
1 |
Thai |
51428 |
0.999922 |
0.999961 |
0.999942 |
1 |
Hant |
94042 |
0.993966 |
0.995907 |
0.994935 |
2 |
Hans |
57006 |
0.99007 |
0.986405 |
0.988234 |
1 |
与之前性能的对比
引入文本增强方法后,模型在相同评估数据集上的性能有所提升,准确率从0.9695提高到0.9733,平均精确率、召回率和F1分数也有类似的提升。
💡 总结
新的文本增强技术的引入显著提高了模型的准确率和鲁棒性。这些改进使模型能够更好地在不同语言脚本上进行泛化,提高了其在实际应用中的可用性。
仓库中还提供了详细的按脚本分类报告,以供进一步分析。
💻 使用示例
基础用法
你可以使用Transformers pipeline快速加载并运行此模型进行推理:
from transformers import AutoTokenizer, AutoModelForSequenceClassification, pipeline
tokenizer = AutoTokenizer.from_pretrained("alexneakameni/language_detection")
model = AutoModelForSequenceClassification.from_pretrained("alexneakameni/language_detection")
language_detection = pipeline("text-classification", model=model, tokenizer=tokenizer)
text = "Hello world!"
predictions = language_detection(text)
print(predictions)
这将输出预测的语言代码或标签以及相应的置信度分数。
⚠️ 重要提示
模型的性能可能会因文本长度、语言多样性和特定领域词汇的不同而有所差异。在关键应用中,请始终根据自己的数据集验证结果。
💡 使用建议
如需更多信息,请参阅仓库文档。
感谢使用此模型,欢迎提供反馈和贡献!
📄 许可证
本项目采用MIT许可证。