python langid 语种检测以及语种对应表

本文介绍了一个使用langid包进行文本语种识别的方法,并提供了详细的Python代码示例。通过对不同语言的文本输入,该工具能够准确识别出文本所属的语言种类。
部署运行你感兴趣的模型镜像

利用langid包识别语种,demo代码

import langid
def lang_by_langid(para_text):
    '''
    语种识别,根据langid包
    '''
    ret = langid.classify(para_text)
    print(f"langid:{ret}")
    return ret[0]

lang_arr=[
        "「i-FILTER」に複数の脆弱性。導入企業は最新版に更新を(JVN#32155106) | セキュリティ対策のラック",
        "疑似 KimsukyAPT 组织最新攻击活动样本分析",
        "이스트시큐리티 알약 블로그",
        "Ruth Schofield Is Joining Heimdal™ Security’s Executive All-Star Team as UK Sales Director",
         'いつもながら素敵や。https://t.co/Ei2fJGhZTC'
    ]

for item in lang_arr:
    print(f"text:{item}")
    tmp = lang_by_langid(item)

输出结果:

text:「i-FILTER」に複数の脆弱性。導入企業は最新版に更新を(JVN#32155106) | セキュリティ対策のラック
langid:('ja', -675.1671650409698)

text:疑似 KimsukyAPT 组织最新攻击活动样本分析
langid:('zh', -202.03950572013855)

text:이스트시큐리티 알약 블로그
langid:('ko', -248.97621655464172)

text:Ruth Schofield Is Joining Heimdal™ Security’s Executive All-Star Team as UK Sales Director
langid:('en', -54.81398916244507)

text:いつもながら素敵や。https://t.co/Ei2fJGhZTC
langid:('ja', -255.61449241638184)

ISO 639语言编码标准

ISO 639-1是国际标准化组织ISO 639语言编码标准的第一部分。它含有 136 个两字母的编码,用来标示世界上主要的语言。这些代码在很多地方都被用作语言的简写,例如:
    * 英语(English)用en表示
    * 德语(Deutsch)用de表示(Deutsch 是德语的本名)
    * 日语(Japanese)用ja表示(尽管日语的拼音是 Nihongo)
    * 汉语 使用zh表示,来自“中文”的汉语拼音: Zhōngwén

 ISO 639-1语言列表 
aa      阿法尔语        fr      法语            li      林堡语          se      北萨米语
ab      阿布哈兹语      fy      弗里西亚语      ln      林加拉语        sg      桑戈语
ae      阿维斯陀语      ga      爱尔兰语        lo      老挝语          sh      塞尔维亚-克罗地亚语
af      阿非利堪斯语    gd      苏格兰盖尔语    lt      立陶宛语        si      僧加罗语
ak      阿坎语          gl      加利西亚语      lu      卢巴-加丹加语   sk      斯洛伐克语
am      阿姆哈拉语      gn      瓜拉尼语        lv      拉脱维亚语      sl      斯洛文尼亚语
an      阿拉贡语        gu      古吉拉特语      mg      马达加斯加语    sm      萨摩亚语
ar      阿拉伯语        gv      马恩岛语        mh      马绍尔语        sn      绍纳语
as      阿萨姆语        ha      豪萨语          mi      毛利语          so      索马里语
av      阿瓦尔语        he      希伯来语        mk      马其顿语        sq      阿尔巴尼亚语
ay      艾马拉语        hi      印地语          ml      马拉亚拉姆语    sr      塞尔维亚语
az      阿塞拜疆语      ho      希里莫图语      mn      蒙古语          ss      斯瓦特语
ba      巴什基尔语      hr      克罗地亚语      mo      摩尔达维亚语    st      南索托语
be      白俄罗斯语      ht      海地克里奥尔语  mr      马拉提语        su      巽他语
bg      保加利亚语      hu      匈牙利语        ms      马来语          sv      瑞典语
bh      比哈尔语        hy      亚美尼亚语      mt      马耳他语        sw      斯瓦希里语
bi      比斯拉玛语      hz      赫雷罗语        my      缅甸语          ta      泰米尔语
bm      班巴拉语        ia      国际语A         na      瑙鲁语          te      泰卢固语
bn      孟加拉语        id      印尼语          nb      书面挪威语      tg      塔吉克语
bo      藏语            ie      国际语E         nd      北恩德贝勒语    th      泰语
br      布列塔尼语      ig      伊博语          ne      尼泊尔语        ti      提格里尼亚语
bs      波斯尼亚语      ii      四川彝语        ng      恩敦加语        tk      土库曼语
ca      加泰隆语        ik      依努庇克语      nl      荷兰语          tl      塔加洛语
ce      车臣语          io      伊多语          nn      新挪威语        tn      塞茨瓦纳语
ch      查莫罗语        is      冰岛语          no      挪威语          to      汤加语
co      科西嘉语        it      意大利语        nr      南恩德贝勒语    tr      土耳其语
cr      克里语          iu      伊努伊特语      nv      纳瓦霍语        ts      宗加语
cs      捷克语          ja      日语            ny      尼扬贾语        tt      塔塔尔语
cu      教会斯拉夫语    jv      爪哇语          oc      奥克语          tw      特威语
cv      楚瓦什语        ka      格鲁吉亚语      oj      奥吉布瓦语      ty      塔希提语
cy      威尔士语        kg      刚果语          om      奥洛莫语        ug      维吾尔语
da      丹麦语          ki      基库尤语        or      奥利亚语        uk      乌克兰语
de      德语            kj      宽亚玛语        os      奥塞梯语        ur      乌尔都语
dv      迪维希语        kk      哈萨克语        pa      旁遮普语        uz      乌兹别克语
dz      不丹语          kl      格陵兰语        pi      巴利语          ve      文达语
ee      埃维语          km      高棉语          pl      波兰语          vi      越南语
el      现代希腊语      kn      卡纳达语        ps      普什图语        vo      沃拉普克语
en      英语            ko      朝鲜语、韩语    pt      葡萄牙语        wa      沃伦语
eo      世界语          kr      卡努里语        qu      凯楚亚语        wo      沃洛夫语
es      西班牙语        ks      克什米尔语      rm      利托-罗曼语     xh      科萨语
et      爱沙尼亚语      ku      库尔德语        rn      基隆迪语        yi      依地语
eu      巴斯克语        kv      科米语          ro      罗马尼亚语      yo      约鲁巴语
fa      波斯语          kw      康沃尔语        ru      俄语            za      壮语
ff      富拉语          ky      吉尔吉斯语      rw      基尼阿万达语    zh      中文、汉语
fi      芬兰语          la      拉丁语          sa      梵语            zu      祖鲁语
fj      斐济语          lb      卢森堡语        sc      撒丁语          
fo      法罗语          lg      干达语          sd      信德语  

您可能感兴趣的与本文相关的镜像

Python3.9

Python3.9

Conda
Python

Python 是一种高级、解释型、通用的编程语言,以其简洁易读的语法而闻名,适用于广泛的应用,包括Web开发、数据分析、人工智能和自动化脚本

语种识别模型是自然语言处理领域中用于判断一段语音或文本所属语言种类的模型。以下介绍一些常见的语种识别模型及其特点: ### 基于传统机器学习的语种识别模型 传统机器学习方法在语种识别早期应用广泛,常使用高斯混合模型 - 通用背景模型(GMM - UBM)。GMM - UBM 先通过大量的语音数据训练出一个通用背景模型(UBM),它代表了所有语言的通用特征分布。然后针对每种目标语言,使用该语言的语音数据对 UBM 进行自适应调整,得到该语言的高斯混合模型(GMM)。在识别时,将待识别语音与各个语言的 GMM 进行匹配,计算其似然度,似然度最高的语言即为识别结果。这种方法的优点是原理相对简单,实现成本较低,但对于复杂语音环境和小语种识别效果有限。 ### 基于深度学习的语种识别模型 #### 卷积神经网络(CNN) CNN 具有强大的特征提取能力,在语种识别中可以自动从语音或文本中提取有效的特征。对于语音数据,CNN 可以对语音的频谱图等特征进行卷积操作,捕捉语音的局部特征和模式。在文本语种识别中,CNN 可以处理文本的词向量表示,通过卷积层和池化层提取文本的局部语义信息。例如,在一些基于 CNN 的语种识别系统中,将文本转换为字符级的词向量序列,然后输入到 CNN 中进行训练和识别。CNN 的优点是能够高效地处理大规模数据,并且可以通过多层卷积结构学习到复杂的特征表示。 #### 循环神经网络(RNN)及其变体 RNN 及其变体(如 LSTM 和 GRU)适合处理序列数据,在语种识别中可以考虑语音或文本的上下文信息。LSTM 和 GRU 解决了传统 RNN 的梯度消失问题,能够更好地捕捉长序列中的依赖关系。在语音语种识别中,RNN 可以逐帧处理语音信号,利用前后帧之间的信息进行识别。在文本语种识别中,RNN 可以按顺序处理文本中的单词或字符,理解文本的语义和语法结构。例如,在一些基于 LSTM 的语种识别模型中,将文本的词向量序列输入到 LSTM 网络中,通过隐藏层的状态更新来学习文本的上下文信息,最后根据输出进行语种判断。 #### Transformer 模型 Transformer 模型基于自注意力机制,能够高效地捕捉序列中的长距离依赖关系。在语种识别中,Transformer 可以同时处理整个语音或文本序列,并行计算各个位置之间的注意力权重,从而更好地理解序列的全局信息。例如,一些基于 Transformer 的语种识别模型将语音的特征序列或文本的词向量序列输入到 Transformer 编码器中,通过多层的自注意力和前馈神经网络层提取特征,最后进行语种分类。Transformer 模型在处理大规模数据和长序列时表现出色,并且具有较好的可扩展性。 ### 开源语种识别模型 #### langid.py langid.py 是一个轻量级的开源文本语种识别工具,它基于朴素贝叶斯分类器,训练了一个包含 97 种语言的分类模型。该模型简单易用,只需要将待识别的文本输入到模型中,即可快速得到识别结果。例如,在 Python 中可以使用以下代码进行语种识别: ```python import langid text = "Hello, how are you?" language, confidence = langid.classify(text) print(f"Language: {language}, Confidence: {confidence}") ``` #### FastText FastText 是 Facebook 开源的一个用于文本分类和词向量学习的工具,也可以用于语种识别。FastText 基于字符级的 n - gram 特征和简单的线性分类器,训练速度快,识别准确率较高。可以使用预训练的语种识别模型对文本进行识别,示例代码如下: ```python import fasttext model = fasttext.load_model('lid.176.bin') text = "Bonjour, comment ça va?" result = model.predict(text) language = result[0][0].replace('__label__', '') confidence = result[1][0] print(f"Language: {language}, Confidence: {confidence}") ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值