Grammalecte  Check-in [f6bc813e54]

Many hyperlinks are disabled.
Use anonymous login to enable hyperlinks.

Overview
Comment:[fr] faux positifs et ajustements
Downloads: Tarball | ZIP archive | SQL archive
Timelines: family | ancestors | descendants | both | trunk | fr
Files: files | file ages | folders
SHA3-256:f6bc813e54025d51a5796d425db7f95e63a0c9cb9e8cdd47401a9b901d7c07d7
User & Date: olr 2019-08-20 10:22:32
Context
2019-08-20
10:24
[core] don’t print if not in debug mode check-in: aea18de06f user: olr tags: core, trunk
10:22
[fr] faux positifs et ajustements check-in: f6bc813e54 user: olr tags: fr, trunk
2019-08-17
16:31
[fr] faux positif check-in: f36568b697 user: olr tags: fr, trunk
Changes

Changes to gc_lang/fr/rules.grx.

11539
11540
11541
11542
11543
11544
11545

11546
11547
11548
11549
11550
11551
11552
.....
14710
14711
14712
14713
14714
14715
14716
14717
14718
14719
14720
14721
14722
14723
14724
14725
14726
14727
14728
14729
.....
14731
14732
14733
14734
14735
14736
14737

14738
14739
14740
14741
14742
14743
14744
.....
22473
22474
22475
22476
22477
22478
22479
22480
22481
22482
22483
22484
22485
22486
22487
.....
23141
23142
23143
23144
23145
23146
23147

23148
23149
23150
23151
23152
23153
23154
    par-ci ?,¿ par-là
    par-derrière
    par-dessus le marché
    par-dessus tout
    par-devant
    par instants
    par là

    parfois
    partant [de|d’] là
    partout
    pas du tout
    pas le moins du monde
    pas à pas
    pendant ?[bien|si|assez|très]¿ longtemps
................................................................................
        <<- /gn/ space_after(\1, 1, 1) and not value(<1, "|/|") and not re.search("^0*[01](?:,[0-9]+|)$", \1) and not morph(<1, ":N")
            and ( (morph(\2, ":[NA].*:s", "*") and not value(\2, "|janvier|février|mars|avril|mai|juin|juillet|août|aout|septembre|octobre|novembre|décembre|rue|route|ruelle|place|boulevard|avenue|allée|chemin|sentier|square|impasse|cour|quai|chaussée|côte|vendémiaire|brumaire|frimaire|nivôse|pluviôse|ventôse|germinal|floréal|prairial|messidor|thermidor|fructidor|"))
            or \1 in aREGULARPLURAL )
        -2>> =suggPlur(\2)                                                                  # Accord de nombre erroné : « \2 » devrait être au pluriel.

    *NUM  *WORD  *WORD
        <<- /gn/ not value(\2, "|fois|janvier|février|mars|avril|mai|juin|juillet|août|aout|septembre|octobre|novembre|décembre|rue|route|ruelle|place|boulevard|avenue|allée|chemin|sentier|square|impasse|cour|quai|chaussée|côte|vendémiaire|brumaire|frimaire|nivôse|pluviôse|ventôse|germinal|floréal|prairial|messidor|thermidor|fructidor|")
            and not value(<1, "|et|ou|de|d’|") and not morph(\3, ">(?:seule|maximum|minimum)/") >>>
        <<- /gn/ ((morph(\2, ":[NA].*:m", ":(?:B|e|G|V0|f)") and morph(\3, ":[NA].*:f", "*")) or (morph(\2, ":[NA].*:f", ":(?:B|e|G|V0|m)") and morph(\3, ":[NA].*:m", "*")))
            and not apposition(\2, \3)
        -3>> =switchGender(\3, True)                                                                # Accord de genre erroné entre « \2 » et « \3 ».
        <<- /gn/ __also__ and hasFemForm(\2) -2>> =switchGender(\2, True)                           # Accord de genre erroné avec « \3 ».
        <<- /gn/ morph(\2, ":[NA].*:[pi]") and morph(\3, ":[NA].*:s", "*") and not apposition(\2, \3) and not (value(>1, "|et|,|") and morph(>2, ":A"))
        -3>> =suggPlur(\3)                                                                          # Accord de nombre erroné avec « \1 \2 » : « \3 » devrait être au pluriel.

TEST: il a adopté 1 {{chiens}}.
TEST: 22 {{heure}}
TEST: 3 {{heure}}
TEST: Environ 10 essais {{nucléaire}} ont été réalisés
TEST: 20 {{grandes}} {{animaux}}
................................................................................
TEST: les élèves sont inquiets après une année 2018 compliquée et riche en réformes.
TEST: ils gagneront 300 € maximum.
TEST: il revint en 2005 complètement dévoré par la culpabilité.
TEST: un jeu de 1980 absolument démodé.
TEST: elle fut le 13 janvier décapitée
TEST: elles furent le 18 janvier décorées
TEST: en quantité 2 fois moindre



##  trouver ça/ceci/cela + adj
__gn_trouver_ça_adj__
    >trouver  [ça|cela|ceci]  @:A.*:(?:f|m:p)¬:(?:G|3[sp]|M)
        <<- /gn/ -3>> =suggMasSing(\3)                                              # Trouver \2 + [adjectif] : l’adjectif s’accorde avec “\2” (au masculin singulier).

................................................................................

#### NOMS PROPRES

# 3sg
__conj_nom_propre__
    ~^[A-ZÉÈ]  @:[123][sp]¬:(?:G|3s|3p!|P|M|A.*:[si]|N.*:m:s)
        <<- /conj/ not before("\\b[dD]e l’ *$") and morph(\1, ":M")
            and not morph(<1, ":[VRD]|>(?:ni|et|ou)/") and not before("([A-ZÉÈ][\\w-]+), +([A-ZÉÈ][\\w-]+), +$")
            and not ( morph(\2, ":3p") and before("\\w") )
        -2>> =suggVerb(\2, ":3s")                                                                   # Conjugaison erronée. Accord avec “\1”. Le verbe devrait être à la 3ᵉ personne du singulier.

TEST: Marc {{arrives}} demain.
TEST: Paul ne {{viens}} pas demain.
TEST: Marc Aurèle {{étaient}} l’empereur des Romains. (Pas de trait d’union sur Marc Aurèle.)
TEST: Arthur D. parvient à…
................................................................................
TEST: Quel est le problème ? Je ne fais que ramener Paul à la raison.
TEST: La voir se fêler ainsi lui noua la gorge.
TEST: Quoi de neuf, mec ?
TEST: T’as enfin trouvé des gens avec qui t’entendre ?
TEST: ça fait du bien de se l’entendre dire
TEST: Laisse tomber, mec ! Pour qui tu te prends ?
TEST: il y avait souvent foule




!!! Tests historiques                                                                             !!

## Version 0.5.14
TEST: par le léger tissu de rayonne qui les protégeait en ce moment.







>







 







|




|







 







>







 







|







 







>







11539
11540
11541
11542
11543
11544
11545
11546
11547
11548
11549
11550
11551
11552
11553
.....
14711
14712
14713
14714
14715
14716
14717
14718
14719
14720
14721
14722
14723
14724
14725
14726
14727
14728
14729
14730
.....
14732
14733
14734
14735
14736
14737
14738
14739
14740
14741
14742
14743
14744
14745
14746
.....
22475
22476
22477
22478
22479
22480
22481
22482
22483
22484
22485
22486
22487
22488
22489
.....
23143
23144
23145
23146
23147
23148
23149
23150
23151
23152
23153
23154
23155
23156
23157
    par-ci ?,¿ par-là
    par-derrière
    par-dessus le marché
    par-dessus tout
    par-devant
    par instants
    par là
    par [un|le] simple effet du hasard
    parfois
    partant [de|d’] là
    partout
    pas du tout
    pas le moins du monde
    pas à pas
    pendant ?[bien|si|assez|très]¿ longtemps
................................................................................
        <<- /gn/ space_after(\1, 1, 1) and not value(<1, "|/|") and not re.search("^0*[01](?:,[0-9]+|)$", \1) and not morph(<1, ":N")
            and ( (morph(\2, ":[NA].*:s", "*") and not value(\2, "|janvier|février|mars|avril|mai|juin|juillet|août|aout|septembre|octobre|novembre|décembre|rue|route|ruelle|place|boulevard|avenue|allée|chemin|sentier|square|impasse|cour|quai|chaussée|côte|vendémiaire|brumaire|frimaire|nivôse|pluviôse|ventôse|germinal|floréal|prairial|messidor|thermidor|fructidor|"))
            or \1 in aREGULARPLURAL )
        -2>> =suggPlur(\2)                                                                  # Accord de nombre erroné : « \2 » devrait être au pluriel.

    *NUM  *WORD  *WORD
        <<- /gn/ not value(\2, "|fois|janvier|février|mars|avril|mai|juin|juillet|août|aout|septembre|octobre|novembre|décembre|rue|route|ruelle|place|boulevard|avenue|allée|chemin|sentier|square|impasse|cour|quai|chaussée|côte|vendémiaire|brumaire|frimaire|nivôse|pluviôse|ventôse|germinal|floréal|prairial|messidor|thermidor|fructidor|")
            and not re.search("^0*[01](?:,[0-9]+|)$", \1) and not value(<1, "|et|ou|de|d’|") and not morph(\3, ">(?:seule|maximum|minimum)/") >>>
        <<- /gn/ ((morph(\2, ":[NA].*:m", ":(?:B|e|G|V0|f)") and morph(\3, ":[NA].*:f", "*")) or (morph(\2, ":[NA].*:f", ":(?:B|e|G|V0|m)") and morph(\3, ":[NA].*:m", "*")))
            and not apposition(\2, \3)
        -3>> =switchGender(\3, True)                                                                # Accord de genre erroné entre « \2 » et « \3 ».
        <<- /gn/ __also__ and hasFemForm(\2) -2>> =switchGender(\2, True)                           # Accord de genre erroné avec « \3 ».
        <<- /gn/ morph(\2, ":[NA].*:[pi]", ":G") and morph(\3, ":[NA].*:s", "*") and not apposition(\2, \3) and not (value(>1, "|et|,|") and morph(>2, ":A"))
        -3>> =suggPlur(\3)                                                                          # Accord de nombre erroné avec « \1 \2 » : « \3 » devrait être au pluriel.

TEST: il a adopté 1 {{chiens}}.
TEST: 22 {{heure}}
TEST: 3 {{heure}}
TEST: Environ 10 essais {{nucléaire}} ont été réalisés
TEST: 20 {{grandes}} {{animaux}}
................................................................................
TEST: les élèves sont inquiets après une année 2018 compliquée et riche en réformes.
TEST: ils gagneront 300 € maximum.
TEST: il revint en 2005 complètement dévoré par la culpabilité.
TEST: un jeu de 1980 absolument démodé.
TEST: elle fut le 13 janvier décapitée
TEST: elles furent le 18 janvier décorées
TEST: en quantité 2 fois moindre
TEST: 1 La Mort


##  trouver ça/ceci/cela + adj
__gn_trouver_ça_adj__
    >trouver  [ça|cela|ceci]  @:A.*:(?:f|m:p)¬:(?:G|3[sp]|M)
        <<- /gn/ -3>> =suggMasSing(\3)                                              # Trouver \2 + [adjectif] : l’adjectif s’accorde avec “\2” (au masculin singulier).

................................................................................

#### NOMS PROPRES

# 3sg
__conj_nom_propre__
    ~^[A-ZÉÈ]  @:[123][sp]¬:(?:G|3s|3p!|P|M|A.*:[si]|N.*:m:s)
        <<- /conj/ not before("\\b[dD]e l’ *$") and morph(\1, ":M")
            and not morph(<1, ":[VRDM]|>(?:ni|et|ou)/") and not before("([A-ZÉÈ][\\w-]+), +([A-ZÉÈ][\\w-]+), +$")
            and not ( morph(\2, ":3p") and before("\\w") )
        -2>> =suggVerb(\2, ":3s")                                                                   # Conjugaison erronée. Accord avec “\1”. Le verbe devrait être à la 3ᵉ personne du singulier.

TEST: Marc {{arrives}} demain.
TEST: Paul ne {{viens}} pas demain.
TEST: Marc Aurèle {{étaient}} l’empereur des Romains. (Pas de trait d’union sur Marc Aurèle.)
TEST: Arthur D. parvient à…
................................................................................
TEST: Quel est le problème ? Je ne fais que ramener Paul à la raison.
TEST: La voir se fêler ainsi lui noua la gorge.
TEST: Quoi de neuf, mec ?
TEST: T’as enfin trouvé des gens avec qui t’entendre ?
TEST: ça fait du bien de se l’entendre dire
TEST: Laisse tomber, mec ! Pour qui tu te prends ?
TEST: il y avait souvent foule
TEST: 03/07/2019 SANTÉ



!!! Tests historiques                                                                             !!

## Version 0.5.14
TEST: par le léger tissu de rayonne qui les protégeait en ce moment.