allo-media/text2num

Does not seem to work for troisième

Closed this issue · 1 comments

We installed text2num and ran the example but it does not work for troisième

We also had to add the 'fr' parameter. It seems the documentation is incorrect

$ python3 test_bugs.py 
842 pommes, 25 chiens, 1003 chevaux, 12698 clous.
95 vaut 95. On tolère l'absence de tirets avant les unités : 76 vaut 76.
Nombres en série : 12 15 004 20 52 103 52 31.
Ordinaux: 5ème troisième 21ème 100ème 1230ème.
Décimaux: 12,99, 120,05 ; mais 60 02.
$ cat test_bugs.py 
from text_to_num import alpha2digit
sentence = (
	 "Huit cent quarante-deux pommes, vingt-cinq chiens, mille trois chevaux, "
	 "douze mille six cent quatre-vingt-dix-huit clous.\n"
	 "Quatre-vingt-quinze vaut nonante-cinq. On tolère l'absence de tirets avant les unités : "
	 "soixante seize vaut septante six.\n"
	 "Nombres en série : douze quinze zéro zéro quatre vingt cinquante-deux cent trois cinquante deux "
	 "trente et un.\n"
	 "Ordinaux: cinquième troisième vingt et unième centième mille deux cent trentième.\n"
	 "Décimaux: douze virgule quatre-vingt dix-neuf, cent vingt virgule zéro cinq ; "
	 "mais soixante zéro deux."
	)
print(alpha2digit(sentence,'fr'))

My French is not the best ^^ but I think troisième is below the default ordinal threshold of 3. Try ordinal_threshold=0.
This is new in 2.4.0:

def alpha2digit(
    text: str,
    lang: str,
    relaxed: bool = False,
    signed: bool = True,
    ordinal_threshold: int = 3,
)