Fasttext支持的语言名称

3
我正在尝试查找Fasttext的LID工具支持的语言名称,给定这些语言代码列表(此处)
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 ceb ckb 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

我试图将ISO代码映射到每种语言,但似乎非标准化,可以使用ISO-639-1或ISO-639-3。是否有人有这些代码的语言名称列表,或者知道如何找到它们?
维基百科的列表也没有涵盖所有内容,因此手动映射也没有帮助。
更新:在GitHub上开了一个问题

哪些名称会造成问题?在您的Wikipedia列表中,您可以找到指向ISO 639宏语言的链接,其中包含其他代码,例如alsazb - furas
在这些链接中,我找不到代码“ bpy”的语言 - 但当我使用谷歌搜索时,它会显示 https://iso639-3.sil.org/code_tables/639/data 页面。 - furas
顺便提一下,在这个页面的底部我还发现了一个链接,可以下载表格,看起来它有一个名为iso-639-3.tab的文件(使用制表符分隔的值,类似于.csv)。 - furas
1个回答

2
我在维基百科的列表中找到了大部分代码,但有些代码是我在ISO 639宏语言的子页面中找到的。
但使用Google搜索bpy时,我找到了ISO 639代码表页面,可能所有代码都在那里。
甚至还有下载页面,其中包含文件iso-639-3.tab(类似于.csv)。
使用这个文件和pandas(使用tab作为分隔符的read_csv函数),我编写了这个脚本。
odes = '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 ceb ckb 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'
codes = codes.split(' ')

import pandas as pd

df = pd.read_csv('/home/furas/iso-639-3.tab', sep='\t')

print(df)

for code in codes:
    name = df[ (df['Id'].str.strip() == code) | (df['Part1'].str.strip() == code) ]
    
    if not name.empty:
        print(code, name['Ref_Name'].iloc[0])
    
    #if name.empty:
    #    print('unknown:', code)

它几乎支持所有语言 - 除了、和。
如果您使用代码if name.empty:,就可以看到这一点。

编辑:

正如@tripleee在评论中提到的:


1
快速Duck Duck Going为我提供了几个资源,它们将bh标识为Bihari语言; https://en.wikipedia.org/wiki/Bihari_languages 表示这是一个已弃用的代码。https://en.wikipedia.org/wiki/Emilian-Romagnol_language 同样将eml标识为该语言的弃用代码。https://en.wikipedia.org/wiki/Nahuatl 表示nah是该语言的ISO 639-2代码。 - tripleee
@tripleee 谢谢,我也用维基百科查找了一些缺失的代码,但是我跳过了这部分信息 - 只保留了我可以自动化的部分 :) 但现在我会添加你的评论中的链接。 - furas

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接