P2A-test-NV / laser /laser_encoders /language_list.py
KuangDW
Add laser2.spm using Git LFS
05d3571
#!/bin/bash
# Copyright (c) Facebook, Inc. and its affiliates.
# All rights reserved.
#
# This source code is licensed under the BSD-style license found in the
# LICENSE file in the root directory of this source tree.
#
# LASER Language-Agnostic SEntence Representations
# is a toolkit to calculate multilingual sentence embeddings
# and to use them for document classification, bitext filtering
# and mining
#
# -------------------------------------------------------
# Language mapping to handle different language codes and names
def build_language_names_dict(language_list: list, language_names: dict) -> dict:
"""
Build a dictionary mapping language names to their corresponding language codes.
Parameters:
- language_list (list): A list of language codes.
- language_names (dict): A dictionary mapping language codes to language names.
Returns:
- dict: A dictionary mapping language names to their corresponding language codes.
"""
result_dict = {}
for lang_code in language_list:
if lang_code not in language_names:
raise ValueError(
f"Language code '{lang_code}' not found in the provided language_names dictionary."
)
names_list = language_names[lang_code]
# Ensure names_list is always a list
if not isinstance(names_list, list):
names_list = [names_list]
for name in names_list:
if name not in result_dict:
result_dict[name] = []
result_dict[name].append(lang_code)
# Remove single-element lists and convert them to the element itself
for key in result_dict:
if len(result_dict[key]) == 1:
result_dict[key] = result_dict[key][0]
return result_dict
SPM_LANGUAGE = [
"amh_Ethi",
"ayr_Latn",
"azj_Latn",
"bak_Cyrl",
"bel_Cyrl",
"bod_Tibt",
"ckb_Arab",
"crh_Latn",
"dik_Latn",
"dzo_Tibt",
"fur_Latn",
"fuv_Latn",
"grn_Latn",
"kab_Latn",
"kac_Latn",
"kaz_Cyrl",
"kir_Cyrl",
"kmr_Latn",
"lij_Latn",
"lim_Latn",
"lmo_Latn",
"ltg_Latn",
"mya_Mymr",
"pbt_Arab",
"pes_Arab",
"prs_Arab",
"sat_Beng",
"scn_Latn",
"srd_Latn",
"szl_Latn",
"taq_Latn",
"tgk_Cyrl",
"tir_Ethi",
"tzm_Tfng",
"vec_Latn",
]
##################################
###### LANGUAGE NAMES ############
##################################
LANGUAGE_NAMES = {
"ace_Arab": ["acehnese", "ace", "ace_Arab"],
"ace_Latn": ["acehnese", "ace", "ace_Latn"],
"acm_Arab": ["mesopotamian arabic", "acm", "acm_Arab"],
"acq_Arab": ["ta’izzi-adeni arabic", "acq", "acq_Arab"],
"aeb_Arab": ["tunisian arabic", "aeb", "aeb_Arab"],
"afr_Latn": ["afrikaans", "afr", "afr_Latn"],
"ajp_Arab": ["south levantine arabic", "ajp", "ajp_Arab"],
"aka_Latn": ["akan", "aka", "aka_Latn"],
"amh_Ethi": ["amharic", "amh", "amh_Ethi"],
"apc_Arab": ["north levantine arabic", "apc", "apc_Arab"],
"arb_Arab": ["modern standard arabic", "arb", "arb_Arab"],
"arb_Latn": ["modern standard arabic", "arb", "arb_Latn"],
"ars_Arab": ["najdi arabic", "ars", "ars_Arab"],
"ary_Arab": ["moroccan arabic", "ary", "ary_Arab"],
"arz_Arab": ["egyptian arabic", "arz", "arz_Arab"],
"asm_Beng": ["assamese", "asm", "asm_Beng"],
"ast_Latn": ["asturian", "ast", "ast_Latn"],
"awa_Deva": ["awadhi", "awa", "awa_Deva"],
"ayr_Latn": ["central aymara", "ayr", "ayr_Latn"],
"azb_Arab": ["south azerbaijani", "azb", "azb_Arab"],
"azj_Latn": ["north azerbaijani", "azj", "azj_Latn"],
"bak_Cyrl": ["bashkir", "bak", "bak_Cyrl"],
"bam_Latn": ["bambara", "bam", "bam_Latn"],
"ban_Latn": ["balinese", "ban", "ban_Latn"],
"bel_Cyrl": ["belarusian", "bel", "bel_Cyrl"],
"bem_Latn": ["bemba", "bem", "bem_Latn"],
"ben_Beng": ["bengali", "ben", "ben_Beng"],
"bho_Deva": ["bhojpuri", "bho", "bho_Deva"],
"bjn_Arab": ["banjar", "bjn", "bjn_Arab"],
"bjn_Latn": ["banjar", "bjn", "bjn_Latn"],
"bod_Tibt": ["standard tibetan", "bod", "bod_Tibt"],
"bos_Latn": ["bosnian", "bos", "bos_Latn"],
"bug_Latn": ["buginese", "bug", "bug_Latn"],
"bul_Cyrl": ["bulgarian", "bul", "bul_Cyrl"],
"cat_Latn": ["catalan", "cat", "cat_Latn"],
"ceb_Latn": ["cebuano", "ceb", "ceb_Latn"],
"ces_Latn": ["czech", "ces", "ces_Latn"],
"cjk_Latn": ["chokwe", "cjk", "cjk_Latn"],
"ckb_Arab": ["central kurdish", "ckb", "ckb_Arab"],
"crh_Latn": ["crimean tatar", "crh", "crh_Latn"],
"cym_Latn": ["welsh", "cym", "cym_Latn"],
"dan_Latn": ["danish", "dan", "dan_Latn"],
"deu_Latn": ["german", "deu", "deu_Latn"],
"dik_Latn": ["southwestern dinka", "dik", "dik_Latn"],
"dyu_Latn": ["dyula", "dyu", "dyu_Latn"],
"dzo_Tibt": ["dzongkha", "dzo", "dzo_Tibt"],
"ell_Grek": ["greek", "ell", "ell_Grek"],
"eng_Latn": ["english", "eng", "eng_Latn"],
"epo_Latn": ["esperanto", "epo", "epo_Latn"],
"est_Latn": ["estonian", "est", "est_Latn"],
"eus_Latn": ["basque", "eus", "eus_Latn"],
"ewe_Latn": ["ewe", "ewe_Latn"],
"fao_Latn": ["faroese", "fao", "fao_Latn"],
"fij_Latn": ["fijian", "fij", "fij_Latn"],
"fin_Latn": ["finnish", "fin", "fin_Latn"],
"fon_Latn": ["fon", "fon_Latn"],
"fra_Latn": ["french", "fra", "fra_Latn"],
"fur_Latn": ["friulian", "fur", "fur_Latn"],
"fuv_Latn": ["nigerian fulfulde", "fuv", "fuv_Latn"],
"gla_Latn": ["scottish gaelic", "gla", "gla_Latn"],
"gle_Latn": ["irish", "gle", "gle_Latn"],
"glg_Latn": ["galician", "glg", "glg_Latn"],
"grn_Latn": ["guarani", "grn", "grn_Latn"],
"guj_Gujr": ["gujarati", "guj", "guj_Gujr"],
"hat_Latn": ["haitian creole", "hat", "hat_Latn"],
"hau_Latn": ["hausa", "hau", "hau_Latn"],
"heb_Hebr": ["hebrew", "heb", "heb_Hebr"],
"hin_Deva": ["hindi", "hin", "hin_Deva"],
"hne_Deva": ["chhattisgarhi", "hne", "hne_Deva"],
"hrv_Latn": ["croatian", "hrv", "hrv_Latn"],
"hun_Latn": ["hungarian", "hun", "hun_Latn"],
"hye_Armn": ["armenian", "hye", "hye_Armn"],
"ibo_Latn": ["igbo", "ibo", "ibo_Latn"],
"ilo_Latn": ["ilocano", "ilo", "ilo_Latn"],
"ind_Latn": ["indonesian", "ind", "ind_Latn"],
"isl_Latn": ["icelandic", "isl", "isl_Latn"],
"ita_Latn": ["italian", "ita", "ita_Latn"],
"jav_Latn": ["javanese", "jav", "jav_Latn"],
"jpn_Jpan": ["japanese", "jpn", "jpn_Jpan"],
"kab_Latn": ["kabyle", "kab", "kab_Latn"],
"kac_Latn": ["jingpho", "kac", "kac_Latn"],
"kam_Latn": ["kamba", "kam", "kam_Latn"],
"kan_Knda": ["kannada", "kan", "kan_Knda"],
"kas_Arab": ["kashmiri", "kas", "kas_Arab"],
"kas_Deva": ["kashmiri", "kas", "kas_Deva"],
"kat_Geor": ["georgian", "kat", "kat_Geor"],
"knc_Arab": ["central kanuri", "knc", "knc_Arab"],
"knc_Latn": ["central kanuri", "knc", "knc_Latn"],
"kaz_Cyrl": ["kazakh", "kaz", "kaz_Cyrl"],
"kbp_Latn": ["kabiyè", "kbp", "kbp_Latn"],
"kea_Latn": ["kabuverdianu", "kea", "kea_Latn"],
"khm_Khmr": ["khmer", "khm", "khm_Khmr"],
"kik_Latn": ["kikuyu", "kik", "kik_Latn"],
"kin_Latn": ["kinyarwanda", "kin", "kin_Latn"],
"kir_Cyrl": ["kyrgyz", "kir", "kir_Cyrl"],
"kmb_Latn": ["kimbundu", "kmb", "kmb_Latn"],
"kmr_Latn": ["northern kurdish", "kmr", "kmr_Latn"],
"kon_Latn": ["kikongo", "kon", "kon_Latn"],
"kor_Hang": ["korean", "kor", "kor_Hang"],
"lao_Laoo": ["lao", "lao_Laoo"],
"lij_Latn": ["ligurian", "lij", "lij_Latn"],
"lim_Latn": ["limburgish", "lim", "lim_Latn"],
"lin_Latn": ["lingala", "lin", "lin_Latn"],
"lit_Latn": ["lithuanian", "lit", "lit_Latn"],
"lmo_Latn": ["lombard", "lmo", "lmo_Latn"],
"ltg_Latn": ["latgalian", "ltg", "ltg_Latn"],
"ltz_Latn": ["luxembourgish", "ltz", "ltz_Latn"],
"lua_Latn": ["luba-kasai", "lua", "lua_Latn"],
"lug_Latn": ["ganda", "lug", "lug_Latn"],
"luo_Latn": ["luo", "luo_Latn"],
"lus_Latn": ["mizo", "lus", "lus_Latn"],
"lvs_Latn": ["standard latvian", "lvs", "lvs_Latn"],
"mag_Deva": ["magahi", "mag", "mag_Deva"],
"mai_Deva": ["maithili", "mai", "mai_Deva"],
"mal_Mlym": ["malayalam", "mal", "mal_Mlym"],
"mar_Deva": ["marathi", "mar", "mar_Deva"],
"min_Arab": ["minangkabau", "min", "min_Arab"],
"min_Latn": ["minangkabau", "min", "min_Latn"],
"mkd_Cyrl": ["macedonian", "mkd", "mkd_Cyrl"],
"plt_Latn": ["plateau malagasy", "plt", "plt_Latn"],
"mlt_Latn": ["maltese", "mlt", "mlt_Latn"],
"mni_Beng": ["meitei", "mni", "mni_Beng"],
"khk_Cyrl": ["halh mongolian", "khk", "khk_Cyrl"],
"mos_Latn": ["mossi", "mos", "mos_Latn"],
"mri_Latn": ["maori", "mri", "mri_Latn"],
"mya_Mymr": ["burmese", "mya", "mya_Mymr"],
"nld_Latn": ["dutch", "nld", "nld_Latn"],
"nno_Latn": ["norwegian nynorsk", "nno", "nno_Latn"],
"nob_Latn": ["norwegian bokmål", "nob", "nob_Latn"],
"npi_Deva": ["nepali", "npi", "npi_Deva"],
"nso_Latn": ["northern sotho", "nso", "nso_Latn"],
"nus_Latn": ["nuer", "nus", "nus_Latn"],
"nya_Latn": ["nyanja", "nya", "nya_Latn"],
"oci_Latn": ["occitan", "oci", "oci_Latn"],
"gaz_Latn": ["west central oromo", "gaz", "gaz_Latn"],
"ory_Orya": ["odia", "ory", "ory_Orya"],
"pag_Latn": ["pangasinan", "pag", "pag_Latn"],
"pan_Guru": ["eastern panjabi", "pan", "pan_Guru"],
"pap_Latn": ["papiamento", "pap", "pap_Latn"],
"pes_Arab": ["western persian", "pes", "pes_Arab"],
"pol_Latn": ["polish", "pol", "pol_Latn"],
"por_Latn": ["portuguese", "por", "por_Latn"],
"prs_Arab": ["dari", "prs", "prs_Arab"],
"pbt_Arab": ["southern pashto", "pbt", "pbt_Arab"],
"quy_Latn": ["ayacucho quechua", "quy", "quy_Latn"],
"ron_Latn": ["romanian", "ron", "ron_Latn"],
"run_Latn": ["rundi", "run", "run_Latn"],
"rus_Cyrl": ["russian", "rus", "rus_Cyrl"],
"sag_Latn": ["sango", "sag", "sag_Latn"],
"san_Deva": ["sanskrit", "san", "san_Deva"],
"sat_Olck": ["santali", "sat", "sat_Olck"],
"scn_Latn": ["sicilian", "scn", "scn_Latn"],
"shn_Mymr": ["shan", "shn", "shn_Mymr"],
"sin_Sinh": ["sinhala", "sin", "sin_Sinh"],
"slk_Latn": ["slovak", "slk", "slk_Latn"],
"slv_Latn": ["slovenian", "slv", "slv_Latn"],
"smo_Latn": ["samoan", "smo", "smo_Latn"],
"sna_Latn": ["shona", "sna", "sna_Latn"],
"snd_Arab": ["sindhi", "snd", "snd_Arab"],
"som_Latn": ["somali", "som", "som_Latn"],
"sot_Latn": ["southern sotho", "sot", "sot_Latn"],
"spa_Latn": ["spanish", "spa", "spa_Latn"],
"als_Latn": ["tosk albanian", "als", "als_Latn"],
"srd_Latn": ["sardinian", "srd", "srd_Latn"],
"srp_Cyrl": ["serbian", "srp", "srp_Cyrl"],
"ssw_Latn": ["swati", "ssw", "ssw_Latn"],
"sun_Latn": ["sundanese", "sun", "sun_Latn"],
"swe_Latn": ["swedish", "swe", "swe_Latn"],
"swh_Latn": ["swahili", "swh", "swh_Latn"],
"szl_Latn": ["silesian", "szl", "szl_Latn"],
"tam_Taml": ["tamil", "tam", "tam_Taml"],
"tat_Cyrl": ["tatar", "tat", "tat_Cyrl"],
"tel_Telu": ["telugu", "tel", "tel_Telu"],
"tgk_Cyrl": ["tajik", "tgk", "tgk_Cyrl"],
"tgl_Latn": ["tagalog", "tgl", "tgl_Latn"],
"tha_Thai": ["thai", "tha", "tha_Thai"],
"tir_Ethi": ["tigrinya", "tir", "tir_Ethi"],
"taq_Latn": ["tamasheq", "taq", "taq_Latn"],
"taq_Tfng": ["tamasheq", "taq", "taq_Tfng"],
"tpi_Latn": ["tok pisin", "tpi", "tpi_Latn"],
"tsn_Latn": ["tswana", "tsn", "tsn_Latn"],
"tso_Latn": ["tsonga", "tso", "tso_Latn"],
"tuk_Latn": ["turkmen", "tuk", "tuk_Latn"],
"tum_Latn": ["tumbuka", "tum", "tum_Latn"],
"tur_Latn": ["turkish", "tur", "tur_Latn"],
"twi_Latn": ["twi", "twi_Latn"],
"tzm_Tfng": ["central atlas tamazight", "tzm", "tzm_Tfng"],
"uig_Arab": ["uyghur", "uig", "uig_Arab"],
"ukr_Cyrl": ["ukrainian", "ukr", "ukr_Cyrl"],
"umb_Latn": ["umbundu", "umb", "umb_Latn"],
"urd_Arab": ["urdu", "urd", "urd_Arab"],
"uzn_Latn": ["northern uzbek", "uzn", "uzn_Latn"],
"vec_Latn": ["venetian", "vec", "vec_Latn"],
"vie_Latn": ["vietnamese", "vie", "vie_Latn"],
"war_Latn": ["waray", "war", "war_Latn"],
"wol_Latn": ["wolof", "wol", "wol_Latn"],
"xho_Latn": ["xhosa", "xho", "xho_Latn"],
"ydd_Hebr": ["eastern yiddish", "ydd", "ydd_Hebr"],
"yor_Latn": ["yoruba", "yor", "yor_Latn"],
"yue_Hant": ["yue chinese", "yue", "yue_Hant"],
"zho_Hans": ["chinese", "zho", "zho_Hans"],
"zho_Hant": ["chinese", "zho", "zho_Hant"],
"zsm_Latn": ["standard malay", "zsm", "zsm_Latn"],
"zul_Latn": ["zulu", "zul", "zul_Latn"],
"diq_Latn": ["southern zaza", "diq", "diq_Latn"],
"sat_Beng": ["santali", "sat", "sat_Beng"],
}
##################################
###### LASER 3 ###################
##################################
LASER3_LANGUAGES_LIST = [
"ace_Latn",
"aka_Latn",
"als_Latn",
"amh_Ethi",
"asm_Beng",
"awa_Deva",
"ayr_Latn",
"azb_Arab",
"azj_Latn",
"bak_Cyrl",
"bam_Latn",
"ban_Latn",
"bel_Cyrl",
"bem_Latn",
"ben_Beng",
"bho_Deva",
"bjn_Latn",
"bod_Tibt",
"bug_Latn",
"ceb_Latn",
"cjk_Latn",
"ckb_Arab",
"crh_Latn",
"cym_Latn",
"dik_Latn",
"diq_Latn",
"dyu_Latn",
"dzo_Tibt",
"ewe_Latn",
"fao_Latn",
"fij_Latn",
"fon_Latn",
"fur_Latn",
"fuv_Latn",
"gaz_Latn",
"gla_Latn",
"gle_Latn",
"grn_Latn",
"guj_Gujr",
"hat_Latn",
"hau_Latn",
"hin_Deva",
"hne_Deva",
"hye_Armn",
"ibo_Latn",
"ilo_Latn",
"ind_Latn",
"jav_Latn",
"kab_Latn",
"kac_Latn",
"kam_Latn",
"kan_Knda",
"kas_Arab",
"kas_Deva",
"kat_Geor",
"kaz_Cyrl",
"kbp_Latn",
"kea_Latn",
"khk_Cyrl",
"khm_Khmr",
"kik_Latn",
"kin_Latn",
"kir_Cyrl",
"kmb_Latn",
"kmr_Latn",
"knc_Arab",
"knc_Latn",
"kon_Latn",
"lao_Laoo",
"lij_Latn",
"lim_Latn",
"lin_Latn",
"lmo_Latn",
"ltg_Latn",
"ltz_Latn",
"lua_Latn",
"lug_Latn",
"luo_Latn",
"lus_Latn",
"mag_Deva",
"mai_Deva",
"mal_Mlym",
"mar_Deva",
"min_Latn",
"mlt_Latn",
"mni_Beng",
"mos_Latn",
"mri_Latn",
"mya_Mymr",
"npi_Deva",
"nso_Latn",
"nus_Latn",
"nya_Latn",
"ory_Orya",
"pag_Latn",
"pan_Guru",
"pap_Latn",
"pbt_Arab",
"pes_Arab",
"plt_Latn",
"prs_Arab",
"quy_Latn",
"run_Latn",
"sag_Latn",
"san_Deva",
"sat_Beng",
"scn_Latn",
"shn_Mymr",
"sin_Sinh",
"smo_Latn",
"sna_Latn",
"snd_Arab",
"som_Latn",
"sot_Latn",
"srd_Latn",
"ssw_Latn",
"sun_Latn",
"swh_Latn",
"szl_Latn",
"tam_Taml",
"taq_Latn",
"tat_Cyrl",
"tel_Telu",
"tgk_Cyrl",
"tgl_Latn",
"tha_Thai",
"tir_Ethi",
"tpi_Latn",
"tsn_Latn",
"tso_Latn",
"tuk_Latn",
"tum_Latn",
"tur_Latn",
"twi_Latn",
"tzm_Tfng",
"uig_Arab",
"umb_Latn",
"urd_Arab",
"uzn_Latn",
"vec_Latn",
"war_Latn",
"wol_Latn",
"xho_Latn",
"ydd_Hebr",
"yor_Latn",
"zsm_Latn",
"zul_Latn",
]
LASER3_LANGUAGE = build_language_names_dict(LASER3_LANGUAGES_LIST, LANGUAGE_NAMES)
##################################
###### LASER 2 ###################
##################################
LASER2_LANGUAGES_LIST = [
"acm_Arab",
"acq_Arab",
"aeb_Arab",
"afr_Latn",
"ajp_Arab",
"amh_Ethi",
"apc_Arab",
"arb_Arab",
"arb_Latn",
"ars_Arab",
"ary_Arab",
"arz_Arab",
"ayr_Latn",
"azb_Arab",
"azj_Latn",
"bel_Cyrl",
"ben_Beng",
"bos_Latn",
"bul_Cyrl",
"cat_Latn",
"ces_Latn",
"ckb_Arab",
"crh_Latn",
"dan_Latn",
"deu_Latn",
"ell_Grek",
"eng_Latn",
"epo_Latn",
"est_Latn",
"eus_Latn",
"fin_Latn",
"fra_Latn",
"gle_Latn",
"glg_Latn",
"hau_Latn",
"heb_Hebr",
"hin_Deva",
"hrv_Latn",
"hun_Latn",
"hye_Armn",
"ind_Latn",
"isl_Latn",
"ita_Latn",
"jpn_Jpan",
"kab_Latn",
"kat_Geor",
"kaz_Cyrl",
"khm_Khmr",
"kmr_Latn",
"kor_Hang",
"lit_Latn",
"lvs_Latn",
"mal_Mlym",
"mar_Deva",
"mkd_Cyrl",
"plt_Latn",
"mya_Mymr",
"nld_Latn",
"nob_Latn",
"oci_Latn",
"pes_Arab",
"pol_Latn",
"por_Latn",
"ron_Latn",
"rus_Cyrl",
"sin_Sinh",
"slk_Latn",
"slv_Latn",
"snd_Arab",
"som_Latn",
"spa_Latn",
"als_Latn",
"srp_Cyrl",
"swe_Latn",
"swh_Latn",
"tam_Taml",
"tat_Cyrl",
"tel_Telu",
"tgk_Cyrl",
"tgl_Latn",
"tha_Thai",
"tur_Latn",
"uig_Arab",
"ukr_Cyrl",
"urd_Arab",
"uzn_Latn",
"vie_Latn",
"yue_Hant",
"yue_Hant",
"zho_Hans",
"zho_Hant",
"zsm_Latn",
]
LASER2_LANGUAGE = build_language_names_dict(LASER2_LANGUAGES_LIST, LANGUAGE_NAMES)