Tutorial: el corpus FLORES para la evaluación de sistemas de Traducción automática - mtuoc/mtuoc.github.io GitHub Wiki

Introducción

El corpus FLORES+ (https://github.com/openlanguagedata/flores), que se distribuye bajo una licencia CC BY-SA 4.0 contiene un conjunto de datos que se utilizan para entrenar sistemas y evaluarlos. Este corpus fue inicialmente publicado por investgadores del grupo FAIR de Meta, con el nombre de FLORES. Actualmente OLDI (Open Language Data Initiative) se encarga de su ampliación y mantenimiento. Se ha añadido + al nombre del corpus para no confundirlo con el corpus inicial.

Para cada una de las lenguas hay tres conjuntos de datos: dev (con 997 segmentos), devtest (con 1012 setgmentos) y un conjunto test, que se mantiene oculto y que fue desarrollado por Meta y que no mantiene OLDI ni es parte del repositorio.

El coprus se creó de la siguiente manera: se recopilaron un conjunto de segmnentos en inglés con la misma cantidad de segmentos provinietes de Wikinews, Wikijunior y Wikivoyage . Así pues, la lengua original es el inglés y la mayoría de traducciones las han realizado traductores profesionales a partir del original inglés y de manera manual. Algunas traducciones, no obstante, se han realizado a partir de la traducción de otra lengua y unas pocas a partir de postediciones de traducciones automáticas.

Este conjunto de datos se utiliza mucho en Shared Tasks de Traducción automática en conferencias, como por ejemplo en la Shared task: Translation into Low-Resource Languages of Spain. Las Shared Tasks son una especie de competiciones en la que diversos participantes entrenan sistemas para un par de lenguas y/o especialidad determinada. Los participantes tienen acceso a las partes dev y devtest, que pueden utilizar en el entrenamiento. Los organizaores tienen la parte test que es secreta que servirá para evaluar los sistemas que se presenten. Los participantes pueden utilizar las partes dev y devtest como quieran, pero es muy habitual utilizar la parte dev para validación y la devtest para evaluar los diferentes sistemas que entrena el participante y decidir qué sistema enviar a la competición.

Este corpus también lo podemos utilizar para evaluar algunos sistemas existentes y otros que entrenemos. Para ello utilizaremos la parte devtest del corpus. Por ejemplo, si queremos evaluar un sistema de traducción automática francés-ruso, traducirermos el devtest francés al ruso con el sistema de traducción automática, y para la evaluación tomaremos como referencias el devtest ruso.

En el anexo se puede encontrar la lista de lenguas disponibles en Flores+

Lectura recomendada

NLLB Team, Costa-jussà, M. R., Cross, J., Çelebi, O., Elbayad, M., Heafield, K., … Wang, J. (2022). No Language Left Behind: Scaling Human-Centered Machine Translation.

Descarga de Flores+

Para descargar Flores+ hay que leer atentamente las instrucciones, que dicen:

"The latest version of the dataset can be downloaded in the Releases tab of this repository."

por lo que hay que fijar-se en la parte derecha de la página, donde pone Releases y que es un enlace a [https://github.com/openlanguagedata/flores/releases](https://github.com/openlanguagedata/flores/releases]. De allí escoged la última versión disponoble y deplegad el menú *Assets" y descargad el zip con el corpus. En el momento de escribir este tutorial era la versión [2.0-rc.3] – 2024-05-13 y se podía descargar el archivo floresp-v2.0-rc.3.zip

Una vez descargado, al descomprimir el archivo zip necesitaremos poner una contraseña, concretamente multilingual machine translation.

Cuando descomprimáis el archivo zip, aparecerá una estructura de directorios, con un directorio con los archivos dev y otro con los devtest

Búsqueda de los archivos devtest para vuestro par de lenguas

Copiad los archivos devtest de la lengua de partida y de llegada para vuestro par de lenguas en un directorio aparte.

Anexo. Lenguas disponibles

Code Variety Name Notes
ace_Arab achi1257 Acehnese (Arabic script)
ace_Latn achi1257 Acehnese (Latin script)
acm_Arab meso1252 Mesopotamian Arabic [1]
acq_Arab taiz1242 Taʽizzi-Adeni Arabic [1]
aeb_Arab tuni1259 Tunisian Arabic
afr_Latn afri1274 Afrikaans
als_Latn tosk1239 Albanian (Tosk)
amh_Ethi amha1245 Amharic
apc_Arab nort3139 Levantine Arabic (North) [1]
apc_Arab sout3123 Levantine Arabic (South) [1]
arb_Arab stan1318 Modern Standard Arabic
arb_Latn stan1318 Modern Standard Arabic (Romanized)
ars_Arab najd1235 Najdi Arabic [1]
ary_Arab moro1292 Moroccan Arabic
arz_Arab egyp1253 Egyptian Arabic
asm_Beng assa1263 Assamese
ast_Latn astu1245 Asturian
awa_Deva awad1243 Awadhi
ayr_Latn cent2142 Central Aymara
azb_Arab sout2697 South Azerbaijani
azj_Latn nort2697 North Azerbaijani
bak_Cyrl bash1264 Bashkir
bam_Latn bamb1269 Bambara
ban_Latn bali1278 Balinese
bel_Cyrl bela1254 Belarusian
bem_Latn bemb1257 Bemba
ben_Beng beng1280 Bengali
bho_Deva bhoj1244 Bhojpuri
bjn_Arab banj1239 Banjar (Jawi script)
bjn_Latn banj1239 Banjar (Latin script)
bod_Tibt utsa1239 Lhasa Tibetan
bos_Latn bosn1245 Bosnian
brx_Deva bodo1269 Bodo dev only
bug_Latn bugi1244 Buginese
bul_Cyrl bulg1262 Bulgarian
cat_Latn stan1289 Catalan
ceb_Latn cebu1242 Cebuano
ces_Latn czec1258 Czech
chv_Cyrl chuv1255 Chuvash dev only
cjk_Latn chok1245 Chokwe
ckb_Arab cent1972 Central Kurdish
cmn_Hans beij1234 Mandarin Chinese (Standard Beijing)
cmn_Hant taib1240 Mandarin Chinese (Taiwanese)
crh_Latn crim1257 Crimean Tatar
cym_Latn wels1247 Welsh
dan_Latn dani1285 Danish
deu_Latn stan1295 German
dgo_Deva dogr1250 Dogri dev only
dik_Latn sout2832 Southwestern Dinka
dyu_Latn dyul1238 Dyula
dzo_Tibt dzon1239 Dzongkha
ekk_Latn esto1258 Estonian
ell_Grek mode1248 Greek
eng_Latn stan1293 English
epo_Latn espe1235 Esperanto
eus_Latn basq1248 Basque
ewe_Latn ewee1241 Ewe
fao_Latn faro1244 Faroese
fij_Latn fiji1243 Fijian
fil_Latn fili1244 Filipino
fin_Latn finn1318 Finnish
fon_Latn fonn1241 Fon
fra_Latn stan1290 French
fur_Latn east2271 Friulian
fuv_Latn nige1253 Nigerian Fulfulde
gaz_Latn west2721 West Central Oromo
gla_Latn scot1245 Scottish Gaelic
gle_Latn iris1253 Irish
glg_Latn gali1258 Galician
gom_Deva goan1235 Goan Konkani
gug_Latn para1311 Paraguayan Guaraní
guj_Gujr guja1252 Gujarati
hat_Latn hait1244 Haitian Creole
hau_Latn haus1257 Hausa
heb_Hebr hebr1245 Hebrew
hin_Deva hind1269 Hindi
hne_Deva chha1249 Chhattisgarhi
hrv_Latn croa1245 Croatian
hun_Latn hung1274 Hungarian
hye_Armn nucl1235 Armenian
ibo_Latn nucl1417 Igbo
ilo_Latn ilok1237 Ilocano
ind_Latn indo1316 Indonesian
isl_Latn icel1247 Icelandic
ita_Latn ital1282 Italian
jav_Latn java1254 Javanese
jpn_Jpan nucl1643 Japanese
kab_Latn kaby1243 Kabyle
kac_Latn kach1280 Jingpho
kam_Latn kamb1297 Kamba
kan_Knda nucl1305 Kannada
kas_Arab kash1277 Kashmiri (Arabic script)
kas_Deva kash1277 Kashmiri (Devanagari script)
kat_Geor nucl1302 Georgian
kaz_Cyrl kaza1248 Kazakh
kbp_Latn kabi1261 Kabiyè
kea_Latn kabu1256 Kabuverdianu
khk_Cyrl halh1238 Halh Mongolian
khm_Khmr cent1989 Khmer (Central)
kik_Latn kiku1240 Kikuyu
kin_Latn kiny1244 Kinyarwanda
kir_Cyrl kirg1245 Kyrgyz
kmb_Latn kumb1266 Kimbundu
kmr_Latn nort2672 Northern Kurdish
knc_Arab kana1288 Central Kanuri (Arabic script)
knc_Latn kana1288 Central Kanuri (Latin script)
kon_Latn kongo1235 Kikongo
kor_Hang kore1280 Korean
lao_Laoo lao1244 Lao
lij_Latn ligu1248 Ligurian
lim_Latn limb1241 Limburgish
lin_Latn ling1269 Lingala
lit_Latn lith1251 Lithuanian
lld_Latn friu1241 Friulian
ltz_Latn lixe1235 Luxembourgish
lua_Latn luba1253 Luba-Lulua
lue_Latn luba1249 Luba-Kasai
lug_Latn ganda1244 Luganda
luo_Latn luol1238 Luo
lvs_Latn latv1249 Latvian
mag_Deva magh1243 Magahi
mah_Latn mars1254 Marshallese
mai_Deva mait1250 Maithili
mal_Mlym nucl1303 Malayalam
mar_Deva nucl1285 Marathi
min_Latn minang1252 Minangkabau
mkd_Cyrl maced1256 Macedonian
mlt_Latn malt1244 Maltese
mon_Cyrl khalk1247 Khalkha Mongolian
mri_Latn maor1246 Māori
msh_Latn masa1307 Masai
mya_Mymr nucl1312 Burmese
nan_Hant hoil1236 Hokkien
naw_Latn akan1256 Akan
ndo_Latn ndon1247 Ndonga
nep_Deva nucl1300 Nepali
nld_Latn dtch1251 Dutch
nob_Latn norw1257 Norwegian Bokmål
npi_Deva nepa1254 Pahari Nepali
nya_Latn nyan1254 Nyanja
oci_Latn prov1237 Occitan
ood_Latn djib1241 Djiiru
orm_Latn orom1262 Oromo
oss_Cyrl osse1245 Ossetic
pan_Guru panc1240 Punjabi
pol_Latn poli1261 Polish
por_Latn port1297 Portuguese
prs_Arab afgh1245 Dari
pus_Arab east2690 Pashto
que_Latn ayac1237 Ayacucho Quechua
roh_Latn roma1325 Romansh
ron_Latn roma1327 Romanian
run_Latn kiny1247 Kirundi
rus_Cyrl russ1268 Russian
san_Deva sans1269 Sanskrit
sin_Sinh sinh1246 Sinhala
slk_Latn slov1262 Slovak
slv_Latn slov1263 Slovenian
sme_Latn nort2645 Northern Sami
sna_Latn shon1249 Shona
snd_Arab sind1260 Sindhi
som_Latn somali1247 Somali
sot_Latn sout1264 Southern Sotho
spa_Latn stan1293 Spanish
sqi_Latn tosk1242 Albanian
srp_Cyrl serb1264 Serbian
srp_Latn serb1264 Serbian
ssw_Latn swat1249 Swati
sun_Latn suna1244 Sundanese
swa_Latn suah1249 Swahili
swe_Latn swed1257 Swedish
tam_Taml nucl1302 Tamil
tat_Cyrl tata1248 Tatar
tel_Telu nucl1307 Telugu
tgk_Cyrl tajik1253 Tajik
tgl_Latn tagal1247 Tagalog
tha_Thai thai1254 Thai
tir_Ethi tigr1241 Tigrinya
tpi_Latn tokp1247 Tok Pisin
tsn_Latn tswa1235 Tswana
tso_Latn tswa1239 Tsonga
tuk_Latn turk1252 Turkmen
tur_Latn turk1256 Turkish
uig_Arab uigh1243 Uyghur
ukr_Cyrl ukra1253 Ukrainian
umb_Latn umbu1241 Umbundu
urd_Arab urdu1245 Urdu
uzb_Latn uzbe1249 Uzbek
uzn_Latn uzbe1249 Uzbek
ven_Latn venda1246 Venda
vie_Latn viet1255 Vietnamese
wol_Latn wolw1247 Wolof
xho_Latn xhos1249 Xhosa
yor_Latn yoru1243 Yoruba
zha_Latn zhua1257 Zhuang
zho_Hans nucl1236 Chinese (Simplified)
zho_Hant nucl1236 Chinese (Traditional)
zul_Latn zulu1247 Zulu