Skip to main content

Fasttext 语言识别速度提高 80 倍,准确率提高 95%

项目描述

快速文本语言检测

该库是 Facebook 在 fasttext 上训练的语言检测模型的包装器。欲了解更多信息,请访问:https ://fasttext.cc/docs/en/language-identification.html

支持的语言

af als am an ar arz as ast av az azb ba bar bcl be bg bh bn bo bpy br bs bxr ca cbk ce cebckb co cs cv cy da de diq dsb dty dv el eml en eo es et eu fa fi fr frr fy ga gd gl gn gom gu gv he hi hif hr hsb ht hu hy ia id ie ilo io is it ja jbo jv ka kk km kn ko krc ku kv kw ky la lb lez li lmo lo lrc lt lv mai mg mhr min mk ml mn mr mrj ms mt mwl my myv mzn nah nap nds ne new nl nn no oc or os pa pam pfl pl pms pnb ps pt qu rm ro ru rue sa sah sc scn sco sd sh si sk sl so sq sr su sv sw ta te tg th tk tl tr tt tyv ug uk ur uz vec vep vi vls vo wa war wuu xal xmf yi yo yue zh

安装

pip install fasttext-langdetect

用法

detect方法需要 UTF-8 数据。low_memory选项可以通过牺牲一点准确性来使用压缩版本的 fasttext 模型获得预测。

from ftlangdetect import detect

result = detect(text="Bugün hava çok güzel", low_memory=False)
print(result)
> {'lang': 'tr', 'score': 1.00}

result = detect(text="Bugün hava çok güzel", low_memory=True)
print(result)
> {'lang': 'tr', 'score': 0.9982126951217651}

基准

我们在 Wili-2018 数据集上针对cld2langidlangdetect对fasttext 模型进行了基准测试。

快速文本 懒散的 语言检测 cld2
平均时间(毫秒) 0,158273381 1,726618705 12,44604317 0,028776978
139 langs - 未加权 76,8 61,6 37,6 80,8
139 langs - 流行加权 95,5 93,1 86,6 92,7
44 langs - 未加权 93,3 89,2 81,6 91,5
44 语言 - 流行加权 96,6 94,8 89,4 93,4
  • pop weighted意味着每种语言的召回率乘以其说话者的数量
  • 139 种语言 = 具有 ISO 639-1 2 字母代码的所有语言
  • 44 种语言 = 世界上使用最多的 44 种语言

每种语言的召回

cld2 快速文本 语言检测 懒散的
南非荷兰语 0,94 0,918 0,992 0,966
阿尔巴尼亚语 0,958 0,966 0,964 0,954
阿姆哈拉语 0,976 0,982 0 0,982
阿拉伯 0,994 0,998 0,998 0,996
阿拉贡语 0 0,43 0 0,788
亚美尼亚语 0,966 0,972 0 0,968
阿萨姆语 0,946 0,956 0 0,14
阿瓦尔 0 0,626 0 0
艾马拉 0,596 0 0 0
阿塞拜疆 0,97 0,988 0 0,984
巴什基尔 0,97 0,97 0 0
巴斯克 0,978 0,99 0 0,962
白俄罗斯语 0,94 0,97 0 0,964
孟加拉 0,898 0,922 0,904 0,942
博杰普里 0,716 0,15 0 0
博克马尔 0,852 0,966 0,976 0,95
波斯尼亚语 0,422 0,108 0 0,054
布列塔尼 0,946 0,974 0 0,976
保加利亚语 0,892 0,964 0,964 0,942
缅甸语 0,998 0,998 0 0
加泰罗尼亚语 0,882 0,95 0,93 0,928
中央高棉 0,876 0,878 0 0,876
车臣 0 0,99 0 0
楚瓦什语 0 0,96 0 0
康沃尔语 0 0,792 0 0
科西嘉岛 0,88 0,016 0 0
克罗地亚语 0,688 0,806 0,982 0,932
捷克语 0,978 0,986 0,984 0,982
丹麦语 0,886 0,958 0,95 0,896
迪维希语 0,996 0,998 0 0
荷兰语 0,9 0,978 0,968 0,97
英语 0,992 1 0,998 0,986
世界语 0,936 0,978 0 0,948
爱沙尼亚语 0,918 0,952 0,948 0,932
法罗语 0,912 0 0 0,618
芬兰 0,988 0,998 0,998 0,994
法语 0,946 0,996 0,99 0,992
加利西亚语 0,89 0,912 0 0,93
格鲁吉亚语 0,974 0,976 0 0,976
德语 0,958 0,984 0,978 0,978
瓜拉尼 0,968 0,728 0 0
古吉拉特语 0,932 0,932 0,93 0,932
海地克里奥尔语 0,988 0,536 0 0,99
豪萨 0,976 0 0 0
希伯来语 0,994 0,996 0,998 0,998
印地语 0,982 0,984 0,982 0,972
匈牙利 0,96 0,988 0,968 0,986
冰岛的 0,984 0,996 0 0,996
我愿意 0 0,76 0 0
伊博语 0,798 0 0 0
印度尼西亚 0,88 0,946 0,958 0,836
国际语 0,27 0,688 0 0
中间语 0,198 0,192 0 0
爱尔兰语 0,968 0,978 0 0,984
意大利语 0,866 0,948 0,932 0,936
日本人 0,97 0,986 0,98 0,986
爪哇语 0 0,864 0 0,938
卡纳达语 0,998 0,998 0,998 0,998
哈萨克语 0,978 0,992 0 0,916
基尼亚卢旺达语 0,86 0 0 0,44
吉尔吉斯斯坦 0,974 0,99 0 0,408
科米 0 0,544 0 0
韩国人 0,986 0,99 0,988 0,99
库尔德 0 0,972 0 0,976
老挝 0,84 0,842 0 0,85
拉丁 0,778 0,864 0 0,854
拉脱维亚语 0,98 0,992 0,992 0,99
林堡干 0 0,324 0 0
林加拉语 0,85 0 0 0
立陶宛语 0,96 0,976 0,974 0,97
卢干达 0,952 0 0 0
卢森堡语 0,864 0,894 0 0,93
马其顿语 0,88 0,984 0,982 0,974
马尔加什 0,99 0,99 0 0,988
马来语 0,896 0,586 0 0,39
马拉雅拉姆语 0,988 0,988 0,988 0,988
马耳他语 0,962 0,966 0 0,964
马恩岛 0,972 0,294 0 0
毛利人 0,994 0 0 0
马拉地语 0,958 0,966 0,964 0,942
现代希腊语 0,99 0,992 0,99 0,992
0,964 0,994 0 0,996
纳瓦霍人 0 0 0 0
尼泊尔语(宏观语言) 0,96 0,98 0,978 0,922
北萨米人 0 0 0 0,866
挪威尼诺斯克 0,94 0,79 0 0,796
奥克西坦 0,66 0,48 0 0,724
奥里亚语 0,96 0,958 0 0,96
奥罗莫 0,956 0 0 0
奥塞梯 0 0,938 0 0
旁遮普语 0,994 0,994 0,994 0,994
波斯语 0,992 0,998 0,996 0,998
抛光 0,982 0,998 0,998 0,992
葡萄牙语 0,908 0,956 0,946 0,952
普什图 0,938 0,922 0 0,754
盖丘亚语 0,926 0,808 0 0,852
罗马尼亚语 0,932 0,986 0,984 0,984
罗曼什语 0,934 0,328 0 0
俄语 0,728 0,986 0,984 0,988
梵文 0,964 0,976 0 0
撒丁岛 0 0,01 0 0
苏格兰盖尔语 0,964 0,942 0 0
塞尔维亚 0,942 0,946 0 0,902
塞尔维亚-克罗地亚语 0 0,402 0 0
绍纳 0,844 0 0 0
信德语 0,978 0,982 0 0
僧伽罗语 0,962 0,962 0 0,962
斯洛伐克语 0,964 0,974 0,982 0,97
斯洛文尼亚 0,876 0,966 0,968 0,946
索马里 0,924 0,696 0,956 0
西班牙语 0,894 0,986 0,976 0,98
标准中文 0,946 0,984 0,746 0,978
巽他语 0,91 0,854 0 0
斯瓦希里语(宏语言) 0,924 0,92 0,938 0,934
瑞典 0,872 0,994 0,992 0,986
他加禄语 0,928 0,972 0,974 0,964
塔吉克 0,82 0,85 0 0
泰米尔语 0,992 0,992 0,992 0,994
鞑靼人 0,978 0,984 0 0
泰卢固语 0,958 0,958 0,958 0,96
泰国 0,988 0,988 0,988 0,988
0,986 0,992 0 0
同安 0,968 0 0 0
茨瓦纳 0,928 0 0 0
土耳其 0,968 0,986 0,982 0,976
土库曼 0,94 0,936 0 0
维吾尔 0,978 0,986 0 0,964
乌克兰 0,97 0,988 0,986 0,986
乌尔都语 0,86 0,958 0,89 0,896
乌兹别克语 0,984 0,99 0 0
越南语 0,978 0,986 0,984 0,984
沃拉普克 0,994 0,982 0 0,986
瓦隆 0 0,664 0 0,98
威尔士语 0,98 0,992 0,992 0,984
西弗里斯兰语 0,888 0,956 0 0
沃洛夫 0,926 0 0 0
科萨语 0,928 0 0 0,912
意第绪语 0,956 0,958 0 0
约鲁巴语 0,75 0,262 0 0

参考

[1] A. Joulin、E. Grave、P. Bojanowski、T. Mikolov,《高效文本分类技巧包》

@article{joulin2016bag,
  title={Bag of Tricks for Efficient Text Classification},
  author={Joulin, Armand and Grave, Edouard and Bojanowski, Piotr and Mikolov, Tomas},
  journal={arXiv preprint arXiv:1607.01759},
  year={2016}
}

[2] A. Joulin, E. Grave, P. Bojanowski, M. Douze, H. Jégou, T. Mikolov, FastText.zip:压缩文本分类模型

@article{joulin2016fasttext,
  title={FastText.zip: Compressing text classification models},
  author={Joulin, Armand and Grave, Edouard and Bojanowski, Piotr and Douze, Matthijs and J{\'e}gou, H{\'e}rve and Mikolov, Tomas},
  journal={arXiv preprint arXiv:1612.03651},
  year={2016}
}

项目详情


下载文件

下载适用于您平台的文件。如果您不确定要选择哪个,请了解有关安装包的更多信息。

源分布

fasttext-langdetect-1.0.3.tar.gz (6.6 kB 查看哈希

已上传 source