From 8e8dd31e6740dba629d7fc3f00c3ac1dd8148a30 Mon Sep 17 00:00:00 2001 From: thjbbvlt Date: Fri, 15 Mar 2024 12:05:01 +0100 Subject: [PATCH] end french tokenizer + add sentences (examples) --- spacy/lang/fr/examples.py | 33 +++++++++++++++++++++++++++ spacy/lang/fr/punctuation.py | 8 +++++-- spacy/lang/fr/tokenizer_exceptions.py | 2 +- 3 files changed, 40 insertions(+), 3 deletions(-) diff --git a/spacy/lang/fr/examples.py b/spacy/lang/fr/examples.py index a74a62204..ff1a503b5 100644 --- a/spacy/lang/fr/examples.py +++ b/spacy/lang/fr/examples.py @@ -15,8 +15,41 @@ sentences = [ "Apple lance HomePod parce qu'il se sent menacé par l'Echo d'Amazon", "La France ne devrait pas manquer d'électricité cet été, même en cas de canicule", "Nouvelles attaques de Trump contre le maire de Londres", + + # additions "Où es-tu ?", "Qui est le président de la France ?", "Où est la capitale des États-Unis ?", "Quand est né Barack Obama ?", + "Où vas-tu?", + "Où va-t'on?", + "Je ne sais pas mais on y va depuis le 2023-12-21.", + "Qu'en est-t-il des autres?", + "Sont-iels à Villar-le-ruisseau?", + "Et les non-humain-es?", + "Et le produit anti-nominaliste?", + "T'en as? Tu m'en donnnes?", + "Sinon mets-en un peu par terre.", + "il n'y a plus rien ici. ", + "enfin j'crois, nos p'tites affaires ont été enl'vées.", + "aujourd'hui, c'est comme ça.", + "(oui) le(s) tableau(x) est là.(dé)croche-le, nan?", + "(et où est/sont le(s) reste(s))", + "quelqu'un.e a dit: \"[que] les personnes [s]e promène[nt]\"", + "et elles se promen(erai)ent.", + "un.e directeur.ice, des employé.es, ", + "des juriste.x.s. tout le monde était là.Et à l'heure!et.à.l'heure!", + "des non-humain-es étaient là aussi, visiblement heureux·ses.", + "j'ai trouvé ça surhttps://site_inexistant.fr/accueil#milieu ou www.quelque_part.com/ je pense.", + "Les numéros 12.1 et 132.121, et 1.213 et 1.2.3,", + "aussi le 1.a. ", + "Alors lisez déjà la p.30, la p.3, la p.5 la p. 20 et la p.2.", + "Ah et le 2.3! Pas le 2.par contre.3 oui 3 aussi. ", + "Éventuellement le numéro 4.", + "Le 10.a.2 et A.3.a pourquoi pas.", + "On est quoi, le 21.12.2023...", + "2,3 et non,2 c'est pas assez,3 non plus ", + "et 4,je sais pas.ici il n'y rien/pas grand chose. ", + "1/mais par contre on s'amuse. et le 20.12, ", + "ou alors le 21/12 oui c'est ça c'était le 21/12/2023...", ] diff --git a/spacy/lang/fr/punctuation.py b/spacy/lang/fr/punctuation.py index 21e92647f..9ff8d87ca 100644 --- a/spacy/lang/fr/punctuation.py +++ b/spacy/lang/fr/punctuation.py @@ -67,11 +67,15 @@ TOKENIZER_INFIXES = ( r"(?<=[{al}{q}])\.(?=[{au}{q}])".format( al=ALPHA_LOWER, au=ALPHA_UPPER, q=CONCAT_QUOTES ), - r"(?<=[0-9])[+\-\*^](?=[0-9-])", + # r"(?<=[0-9])[+\-\*^](?=[0-9-])", + # "2024-12-20" should be one token, so i remove "\-" from the above default regex + r"(?<=[0-9])[+\*^](?=[0-9-])", r"(?<=[{a}]),(?=[{a}])".format(a=ALPHA), + r"(?<=\d),(?=[{a}])".format(a=ALPHA), + r"(?<=[{a}]),(?=[\d])".format(a=ALPHA), r"(?<=[{a}0-9])[:<>=/](?=[{a}])".format(a=ALPHA), ] - # plus conditionnal hyphen + # conditionnal hyphen: verb-subject inversion + [_inversion] ) diff --git a/spacy/lang/fr/tokenizer_exceptions.py b/spacy/lang/fr/tokenizer_exceptions.py index f3471e257..85f591390 100644 --- a/spacy/lang/fr/tokenizer_exceptions.py +++ b/spacy/lang/fr/tokenizer_exceptions.py @@ -7,7 +7,7 @@ _exc = { "St": [{ORTH: "St", NORM: "Saint"}], "Ste": [{ORTH: "Ste", NORM: "Sainte"}], "Mme": [{ORTH: "Mme", NORM: "Madame"}], - "Mr.": [{ORTH: "Mr", NORM: "Monsieur"}], + "Mr": [{ORTH: "Mr", NORM: "Monsieur"}], "M.": [{ORTH: "M.", NORM: "Monsieur"}], "Mlle": [{ORTH: "Mlle", NORM: "Mademoiselle"}], "Dr": [{ORTH: "Dr", NORM: "Docteur"}],