Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Postprocess script does not remove starting space #76

Open
ZJaume opened this issue Feb 13, 2023 · 2 comments
Open

Postprocess script does not remove starting space #76

ZJaume opened this issue Feb 13, 2023 · 2 comments

Comments

@ZJaume
Copy link

ZJaume commented Feb 13, 2023

Using Tatoeba-MT-models/gmq-eng/opusTCv20210807+bt_transformer-big_2022-03-09 to translate WMT21 test set for Icelandic. The postprocess script

#!/bin/bash
#
# USAGE postprocess.sh < input > output
#

sed 's/ //g;s/▁/ /g'

does not take into account starting spaces inserted by SentencePiece.

These sentences from WMT21 test set Icelandic:

Forsætisráðherra Indlands mun mæta í skóflustungu fyrir byggingu hofs á umdeildum stað
NÝJA-DELÍ (AP) – Narendra Modi, forsætisráðherra Indlands, verður viðstaddur skóflustunguathöfn fyrir byggingu hindútrúarhofs á umdeildum stað í Norður-Indlandi, þar sem moska frá 16. öld var rifin niður af strangtrúuðum hindúum árið 1992, að sögn samtakanna sem hafa umsjón með byggingu hofsins.
Athöfnin á að fara fram 5. ágúst, en skipuleggjendur segja þá dagsetningu boða lukku fyrir hindúa samkvæmt stjörnuspeki auk þess sem þá er ár liðið frá því að indverska þingið afnam sérstaka sjálfstjórnarstöðu eina ríkisins þar sem múslimar eru í meirihluta íbúa, Jammu og Kasmír.
Symbólisminn í dagsetningarvalinu var augljós bæði stuðningsmönnum og andstæðingum hins þjóðernissinnaða hindúflokks Modi, Bharatiya Janata-flokksins, eða BJP, en flokkurinn hefur áratugum saman haft það að stefnu sinni að afnema sjálfstjórn Kasmírs og byggja hof hindúguðsins Ram þar sem moskan frá tímum Mógúlveldisins stóð eitt sinn, í Ayodhya-borg í ríkinu Uttar Pradesh sem trúarfólk telur vera fæðingarstað Ram.
Kórónuveiran er enn skæð víða í Indlandi, en þar greinist þriðji mesti fjöldi tilfella á heimsvísu, og því verður athöfnin send beint út í ríkissjónvarpinu og fjöldi þátttakenda og áhorfenda verður takmarkaður, samkvæmt Vishwa Hindu Parishadm, eða heimssamtökum hindúa, þjóðræknum hóp sem hefur tengsl við BJP.

Are tokenized like this (with the preprocess.sh script)

head -5 wmt21.is | ./preprocess.sh is source.spm
▁For sæt is ráðherra ▁Ind lands ▁mun ▁mæt a ▁í ▁skó flu stu ngu ▁fyrir ▁bygging u ▁ hof s ▁á ▁um deild um ▁stað
▁N Ý J A - DEL Í ▁( AP ) ▁– ▁Nar en dra ▁Mod i , ▁for sæt is ráðherra ▁Ind lands , ▁verður ▁við stad dur ▁skó flu stu ngu at höfn ▁fyrir ▁bygging u ▁ hind ú t rú ar hof s ▁á ▁um deild um ▁stað ▁í ▁Norður - Ind landi , ▁þar ▁sem ▁mo ska ▁frá ▁16. ▁öld ▁var ▁ri fin ▁niður ▁af ▁str ang t rú uðum ▁ hind ú um ▁árið ▁1992 , ▁að ▁ sögn ▁samt ak anna ▁sem ▁hafa ▁um s jón ▁með ▁bygging u ▁ hof sins .
▁At höfn in ▁á ▁að ▁fara ▁fram ▁5. ▁ágúst , ▁en ▁skip u legg j endur ▁segja ▁þá ▁dag setningu ▁bo ða ▁ luk ku ▁fyrir ▁ hind ú a ▁samkvæmt ▁stjörnu spe ki ▁auk ▁þess ▁sem ▁þá ▁er ▁ár ▁lið ið ▁frá ▁því ▁að ▁ind ver ska ▁þing ið ▁af nam ▁sér s taka ▁sjálf stjórn ar stöðu ▁eina ▁ríkis ins ▁þar ▁sem ▁m ú s lim ar ▁eru ▁í ▁meiri hluta ▁íbúa , ▁Jam mu ▁og ▁Kas m í r .
▁Sym b ól ism inn ▁í ▁dag setning ar val inu ▁var ▁aug ljós ▁bæði ▁stuðning s mönnum ▁og ▁and stæð ing um ▁hins ▁þjóð er nis s inna ða ▁ hind ú flokk s ▁Mod i , ▁Bha rat iya ▁Jan ata - flokk sins , ▁eða ▁B JP , ▁en ▁flokk urinn ▁hefur ▁áratug um ▁saman ▁haft ▁það ▁að ▁stefnu ▁sinni ▁að ▁af ne ma ▁sjálf stjórn ▁Kas m í r s ▁og ▁byggja ▁ hof ▁ hind ú g uð sins ▁Ram ▁þar ▁sem ▁mos kan ▁frá ▁t ím um ▁M ó g úl veld i sins ▁stóð ▁eitt ▁sinn , ▁í ▁Ay od hy a - borg ▁í ▁rík inu ▁Ut tar ▁Pra de sh ▁sem ▁trú ar fólk ▁tel ur ▁vera ▁f æð ingar stað ▁Ram .
▁K ór ón u vei ran ▁er ▁enn ▁sk æð ▁v íða ▁í ▁Ind landi , ▁en ▁þar ▁grein ist ▁þ rið ji ▁mest i ▁fjöl di ▁til fell a ▁á ▁heims ví su , ▁og ▁því ▁verður ▁at höfn in ▁send ▁beint ▁út ▁í ▁ríkis s jón varp inu ▁og ▁fjöl di ▁þátt tak enda ▁og ▁á hor f enda ▁verður ▁takmarka ður , ▁samkvæmt ▁Vi sh wa ▁Hind u ▁Parish ad m , ▁eða ▁heims samtök um ▁ hind ú a , ▁þjóð r æk num ▁hóp ▁sem ▁hefur ▁ten gs l ▁við ▁B JP .

and then the postprocess generates starting spaces when replaces the .

 Forsætisráðherra Indlands mun mæta í skóflustungu fyrir byggingu hofs á umdeildum stað
 NÝJA-DELÍ (AP) – Narendra Modi, forsætisráðherra Indlands, verður viðstaddur skóflustunguathöfn fyrir byggingu hindútrúarhofs á umdeildum stað í Norður-Indlandi, þar sem moska frá 16. öld var rifin niður af strangtrúuðum hindúum árið 1992, að sögn samtakanna sem hafa umsjón með byggingu hofsins.
 Athöfnin á að fara fram 5. ágúst, en skipuleggjendur segja þá dagsetningu boða lukku fyrir hindúa samkvæmt stjörnuspeki auk þess sem þá er ár liðið frá því að indverska þingið afnam sérstaka sjálfstjórnarstöðu eina ríkisins þar sem múslimar eru í meirihluta íbúa, Jammu og Kasmír.
 Symbólisminn í dagsetningarvalinu var augljós bæði stuðningsmönnum og andstæðingum hins þjóðernissinnaða hindúflokks Modi, Bharatiya Janata-flokksins, eða BJP, en flokkurinn hefur áratugum saman haft það að stefnu sinni að afnema sjálfstjórn Kasmírs og byggja hof hindúguðsins Ram þar sem moskan frá tímum Mógúlveldisins stóð eitt sinn, í Ayodhya-borg í ríkinu Uttar Pradesh sem trúarfólk telur vera fæðingarstað Ram.
 Kórónuveiran er enn skæð víða í Indlandi, en þar greinist þriðji mesti fjöldi tilfella á heimsvísu, og því verður athöfnin send beint út í ríkissjónvarpinu og fjöldi þátttakenda og áhorfenda verður takmarkaður, samkvæmt Vishwa Hindu Parishadm, eða heimssamtökum hindúa, þjóðræknum hóp sem hefur tengsl við BJP.

I think this is due to SentencePiece having the corresponding tokens learned only with the at the beginning. If I use spm_decode -m model.spm this does not happen because SP takes care of it.

@jorgtied
Copy link
Member

jorgtied commented Mar 6, 2023

Thanks for pointing this out. I should adjust the post-processing script. Does spm_decode do something else that i was not aware of? I never really understood why it would need this separate program and the model as argument. Maybe I am missing something important?

@ZJaume
Copy link
Author

ZJaume commented Mar 6, 2023

I don't know if it does anything else but I personally prefer to use it. It seems that is also removing trailing and duplicate spaces, see google/sentencepiece#650.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants