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 |