Grammalecte  Check-in [babfb0cacb]

Overview
Comment:[fr] faux positifs
Downloads: Tarball | ZIP archive | SQL archive
Timelines: family | ancestors | descendants | both | trunk | fr
Files: files | file ages | folders
SHA3-256: babfb0cacb24920bf336ba4e56161f4979fab8a0770f92b3b10c1fc99b21ab62
User & Date: olr on 2021-02-21 10:51:32
Other Links: manifest | tags
Context
2021-02-22
07:43
[build][server][cli] better Python version test check-in: 9fcb8afcbe user: olr tags: build, cli, server, trunk
2021-02-21
10:51
[fr] faux positifs check-in: babfb0cacb user: olr tags: fr, trunk
2021-02-20
16:14
[fr] faux positifs check-in: dba901b78f user: olr tags: fr, trunk
Changes

Modified gc_lang/fr/rules.grx from [08eadcc4b8] to [68fcd60fe8].

  2855   2855       [lundi|mardi|mercredi|jeudi|vendredi|samedi|dimanche]
  2856   2856           <<- not morph(<1, ":[DA].*:[me]:[si]") =>> select(\1, ":W")
  2857   2857   
  2858   2858   __da_a__
  2859   2859       [ça|ceci|cela] a
  2860   2860           <<- =>> select(\2, ":V")
  2861   2861   
         2862  +    a [,|et] [b|c|ç|d|e|f|g|h|i|j|k|l|m|n|o|p|q|r|s|t|u|v|w|x|y|z]
         2863  +        <<- =>> select(\1, ":N")
         2864  +
  2862   2865   __da_autour__
  2863   2866       autour [de|du|d’|des]
  2864   2867           <<- not morph(<1, ":D.*:[me]") =>> select(\1, "", ":N")
  2865   2868   
  2866   2869   __da_avant__
  2867   2870       avant [que|qu’|$:D]
  2868   2871           <<- not value(<1, "|l’|quel|cet|un|mon|ton|son|notre|votre|leur|") =>> select(\1, ":R")
................................................................................
  4869   4872   @@@@
  4870   4873   @@@@GRAPH: graphe2|g2                                                                              _
  4871   4874   @@@@
  4872   4875   @@@@
  4873   4876   @@@@
  4874   4877   @@@@
  4875   4878   
  4876         -!!!! Doublons (casse identique)                                                                   !!
  4877         -
         4879  +##!!!! Doublons (casse identique)                                                                   !!
  4878   4880   
  4879   4881   # SLOWER THAN REGEX RULE
  4880   4882   #__doublon__
  4881   4883   #    *WORD  *WORD
  4882   4884   #    <<- \1 == \2
  4883   4885   #        and not value(\2, "|nous|vous|faire|en|la|lui|donnant|œuvre|ah|oh|eh|hé|ho|ha|hou|olé|joli|Bora|couvent|dément|sapiens|très|vroum|")
  4884   4886   #        and not (value(\1, "|est|une|") and value(<1, "|l’|d’|"))
................................................................................
  6633   6635   
  6634   6636   
  6635   6637   
  6636   6638   !!!! A / À: accentuation la préposition en début de phrase                                        !!
  6637   6639   
  6638   6640   __typo_À_début_phrase!7__
  6639   6641       <start>  A  @:[GNAY]¬:(?:Q|3s)
  6640         -        <<- /typo/ not value(\3, "|t’|priori|posteriori|postériori|contrario|capella|fortiori|giorno|")
         6642  +        <<- /typo/ not value(\3, "|t’|priori|posteriori|postériori|contrario|capella|fortiori|giorno|a|")
  6641   6643           -2>> À                                                                                      && S’il s’agit de la préposition « à », il faut accentuer la majuscule.
  6642   6644   
  6643   6645       <start>  A  bientôt  [<end>|,|)]
  6644   6646           <<- /typo/ -2>> À                                                                           && S’il s’agit de la préposition « à », il faut accentuer la majuscule.
  6645   6647   
  6646   6648       <start>  A  t’  *WORD
  6647   6649           <<- /typo/ not value(\4, "|il|ils|elle|elles|iel|iels|on|ont|") -2>> À                      && S’il s’agit de la préposition « à », il faut accentuer la majuscule.
................................................................................
 18042  18044       ,  je      [t’|vous]   en  [prie|supplie]  ,
 18043  18045       ,  nous    [t’|vous]   en  [prions|supplions]  ,
 18044  18046           <<- not morph(>1, ":E") ~>> *
 18045  18047   
 18046  18048   
 18047  18049   # Déterminant + nombre
 18048  18050   __p_dét_plur_nombre_nom__
 18049         -    [les|des|mes|tes|ses|nos|vos|leurs]  ~^\d+$  @:[NA].*:[pi]¬:(?:V0|3p|Oo|X)|>(?:janvier|février|mars|avril|mai|juin|juillet|ao[ûu]t|septembre|octobre|novembre|décembre|vendémiaire|brumaire|frimaire|nivôse|pluviôse|ventôse|germinal|floréal|prairial|messidor|thermidor|fructidor)
        18051  +    [les|ces|des|mes|tes|ses|nos|vos|leurs]  [*NUM|$:B]  @:[NA].*:[pi]¬:(?:V0|3p|Oo|X)|>(?:janvier|février|mars|avril|mai|juin|juillet|ao[ûu]t|septembre|octobre|novembre|décembre|vendémiaire|brumaire|frimaire|nivôse|pluviôse|ventôse|germinal|floréal|prairial|messidor|thermidor|fructidor)
 18050  18052           <<- ~2>> *
 18051  18053   
 18052         -    [les|des|mes|tes|ses|nos|vos|leurs]  ~^\d+$  ou  ~^\d+$  @:[NA].*:[pi]¬:(?:V0|3p|Oo|X)|>(?:janvier|février|mars|avril|mai|juin|juillet|ao[ûu]t|septembre|octobre|novembre|décembre|vendémiaire|brumaire|frimaire|nivôse|pluviôse|ventôse|germinal|floréal|prairial|messidor|thermidor|fructidor)
        18054  +    [les|ces|des|mes|tes|ses|nos|vos|leurs]  [*NUM|$:B]  ou  [*NUM|$:B]  @:[NA].*:[pi]¬:(?:V0|3p|Oo|X)|>(?:janvier|février|mars|avril|mai|juin|juillet|ao[ûu]t|septembre|octobre|novembre|décembre|vendémiaire|brumaire|frimaire|nivôse|pluviôse|ventôse|germinal|floréal|prairial|messidor|thermidor|fructidor)
 18053  18055           <<- ~2:4>> *
 18054  18056   
 18055  18057       [les|des]   >numéro  [un|*NUM|$:B]  et  [*NUM|$:B]
 18056  18058           <<- ~3:0>> *
 18057  18059   
 18058  18060       la  >numéro  un
 18059  18061       la  >numéro  $:B
................................................................................
 20486  20488   __da_participe_passé__
 20487  20489       >avoir  $:Q
 20488  20490           <<- not value(\1, "|avoir|avoirs|") and not morph(<1, ":D") =>> rewrite(\2, ":A", "")
 20489  20491   
 20490  20492       >être   $:Q
 20491  20493           <<- not value(\1, "|être|êtres|") and not morph(<1, ":D") =>> rewrite(\2, ":A", "")
 20492  20494   
        20495  +
        20496  +__da_dit__
        20497  +    ,  dit  /_Maj_
        20498  +    ,  dit  $:D
        20499  +        <<- =>> =select(\2, "", ":A")
        20500  +
 20493  20501   
 20494  20502   __purge_rien__
 20495  20503       rien  $:Q  [d’|de]
 20496  20504           <<- /2>> _rien_
 20497  20505   
 20498  20506       rien
 20499  20507           <<- morph(<1, ":V") and not value(>1, "|qui|de|d’|ne|n’|") ~>> *
................................................................................
 25138  25146   TEST: les agrandissements photo
 25139  25147   TEST: Il faut donc examiner ensemble les panneaux et les parois latéraux.
 25140  25148   TEST: Il faut donc examiner ensemble les panneaux et les parois latérales.
 25141  25149   TEST: l’homme les a volés
 25142  25150   
 25143  25151   
 25144  25152   __gn_les_2m_virg__
        25153  +    calendriers ,  [grégorien|julien|hégirien] et [grégorien|julien|hégirien]
        25154  +        <<- !3>> gn
        25155  +
 25145  25156       <start>  les  *WORD  ,  @:A¬:[GP]
 25146  25157           <<- /gn/ morph(\3, ":[NA].*:[pi]", ":3[sp]") and not agreement(\3, \5)
        25158  +            and not (value(>1, "|et|") and morph(\-1, "#G") and morph(>2, "#G"))
 25147  25159           --1>> =suggAgree(\-1, \3)                                                           && Cet adjectif n’est pas accordé avec “\2 \3”.
 25148  25160   
 25149  25161   TEST: les femmes, {{blessé}} par deux fois                                      ->> blessées
 25150  25162   TEST: les hommes, {{blessée}} par deux fois                                     ->> blessés
 25151  25163   TEST: les femmes, demeurant rue de la paix
        25164  +TEST: les deux camps, italien et allemand, étaient à portée d’arc
 25152  25165   
 25153  25166   
 25154  25167   __gn_leurs_1m__
 25155  25168       leurs  *WORD
 25156  25169           <<- /gn/ morph(\2, ":[NA].*:s", ":(?:[ipGW]|[123][sp])") and not (value(>1, "|et|ou|") and morph(>2, ":[NA]"))
 25157  25170           -2>> =suggPlur(\2)                                                                  && Accord de nombre erroné avec « \1 » : « \2 » devrait être au pluriel.
 25158  25171           <<- /gn/ __also__ -1>> leur                                                         && Accord de nombre erroné avec « \2 ».
................................................................................
 26862  26875   TEST: ajoute plein de sel sur ses pâtes
 26863  26876   TEST: avoir plein d’argent ne suffit pas toujours à tout résoudre
 26864  26877   
 26865  26878   
 26866  26879   __gn_groupe_de__
 26867  26880       [un|une|le|la|ce|cette|mon|ton|son|ma|ta|sa|les|ces|des|mes|tes|ses|nos|vos|leurs|quelques|plusieurs]
 26868  26881           || [>dizaine|>douzaine||>vingtaine|>trentaine|>quarantaine|>cinquantaine|>soixantaine|>centaine|>millier|>million|>milliard|>multitude|>horde]  [de|d’]  *WORD
 26869         -        <<- /gn/ morph(\4, ":[NA].*:s", ":[ip]|>(?:fraude|large|long|profondeur|hauteur)/")
        26882  +        <<- /gn/ morph(\4, ":[NA].*:s", ":[ip]|>(?:bénéfice|fraude|large|long|profondeur|hauteur|perte)/")
 26870  26883           -4>> =suggPlur(\4)                                                                  && Avec « \1 \2 \3… », mettre au pluriel “\4” s’il y en a bien plusieurs.
 26871  26884   
 26872  26885       [un|une|le|la|ce|cette|mon|ton|son|ma|ta|sa|les|ces|des|mes|tes|ses|nos|vos|leurs|quelques|plusieurs] >groupe [d’|de] [écoutes|paroles]
 26873  26886           <<- /gn/ -4>> =suggSing(\4)                                                         && Mettez au singulier.
 26874  26887   
 26875  26888       [>association|>assemblée|>collectif|>collectivité|>groupe|>rassemblement|>regroupement|>réunion|>troupe] [de|d’] [artiste|agriculteur|agricultrice|architecte|automobiliste|citoyen|citoyenne|con|conne|consommateur|consommatrice|enfant|entreprise|femme|fille|garçon|homme|imbécile|infirmier|infirmière|jeune|malfaiteur|médecin|motard|motarde|musicien|musicienne|passionné|passionnée|prostitué|prostituée|touriste|travailleur|travailleuse|vieille|vieillard|vieillarde]
 26876  26889           <<- /gn/ -3>> \3s                                               && Il manque un “s”. Il y en a plusieurs dans un groupe, un rassemblement, une assemblée, etc.
................................................................................
 26879  26892   TEST: une multitude d’{{homme}}                                     ->> hommes
 26880  26893   TEST: des groupes de {{paroles}}                                    ->> parole
 26881  26894   TEST: ils constituent un groupe de {{passionné}}.                   ->> passionnés
 26882  26895   TEST: Ce collectif d’{{artiste}} est très inventif.                 ->> artistes
 26883  26896   TEST: les 80 milliards de fraude fiscale
 26884  26897   TEST: un groupe de prière
 26885  26898   TEST: elle fait environ un mètre de large sur des dizaines de long
        26899  +TEST: six milliards de perte
 26886  26900   
 26887  26901   
 26888  26902   __gn_cage_d_escalier__
 26889  26903       >cage d’ escaliers
 26890  26904           <<- /gn/ -3>> escalier                                          && Usuellement, pas de “s” à escalier.
 26891  26905   
 26892  26906   __gn_carnet_de__
................................................................................
 27048  27062   
 27049  27063   # extérieur/intérieur
 27050  27064   __gn_intérieur_extérieur__
 27051  27065       [l’|d’|mon|ton|son|leur|notre|votre|cet|en] [intérieure|extérieure]
 27052  27066           <<- /gn/ -2>> =\2[:-1]                          && Ceci est un adjectif féminin. Pas de “e” pour le nom masculin.
 27053  27067   
 27054  27068       [d’|ces|des|les|mes|tes|ses|leurs|nos|vos|en] [intérieures|extérieures]
 27055         -        <<- /gn/ -2>> =\2[:-2]+"s"                      && Ceci est un adjectif féminin. Pas de “e” pour le nom masculin.
        27069  +        <<- /gn/ space(\1, 1, 3) -2>> =\2[:-2]+"s"      && Ceci est un adjectif féminin. Pas de “e” pour le nom masculin.
 27056  27070   
 27057  27071   TEST: que pensez-vous de notre {{intérieure}} ?             ->> intérieur
 27058  27072   TEST: à l’{{intérieure}} rien de notable.                   ->> intérieur
 27059  27073   TEST: un homme de l’{{intérieure}}.                         ->> intérieur
 27060  27074   TEST: des {{intérieures}} remarquables.                     ->> intérieurs
 27061  27075   
 27062  27076   
................................................................................
 31775  31789           <<- /ppas/ morph(\2, ":[NA].*:[fe]", ">(?:fois|impression)/") and not morph(>1, ":(?:Y|Ov|D|ÉV)|>qu[e’]/")
 31776  31790               and not ((value(\-1, "|commencé|décidé|essayé|fini|imaginé|ordonné|oublié|recommencé|supplié|tenté|") and value(>1, "|de|d’|")) or (value(\-1, "|commencé|recommencé|réussi|pensé|échoué|") and value(>1, "|à|")))
 31777  31791           --1>> =suggVerbPpas(\-1, ":f:s")
 31778  31792           && Si “\1 \2…” est bien le COD du participe passé “\-1”, celui-ci devrait être au féminin singulier.|http://fr.wikipedia.org/wiki/Accord_du_participe_pass%C3%A9_en_fran%C3%A7ais
 31779  31793   
 31780  31794       [l’|mon|ton|son|notre|votre|leur]  *WORD  [que|qu’]  [je|j’|tu|il|elle|on|nous|vous|ils|elles|iel|iels|$:M]  ?[ne|n’]¿  ?[lui|leur]¿  >avoir  @:V[0-3]..t.*:Q¬:[GWÉ]
 31781  31795       [l’|mon|ton|son|notre|votre|leur]  *WORD  [que|qu’]  $:D¬:R  @:[NA]                                          ?[ne|n’]¿  ?[lui|leur]¿  >avoir  @:V[0-3]..t.*:Q¬:[GWÉ]
        31796  +        <<- /ppas/ not morph(>1, ":(?:Y|Ov|D|ÉV)|>qu[e’]/") >>>
 31782  31797           <<- /ppas/ morph(\2, ":[NA].*:m", ":[fe]|>impression/") and morph(\-1, ":Q.*:[fp]", ":[me]:[si]") --1>> =suggVerbPpas(\-1, ":m:s")
 31783  31798           && Si “\1 \2…” est bien le COD du participe passé “\-1”, celui-ci devrait être au masculin singulier.|http://fr.wikipedia.org/wiki/Accord_du_participe_pass%C3%A9_en_fran%C3%A7ais
 31784  31799           <<- /ppas/ __else__ and morph(\2, ":[NA].*:f", ":[me]") and morph(\-1, ":Q.*:[mp]", ":[fe]:[si]") --1>> =suggVerbPpas(\-1, ":f:s")
 31785  31800           && Si “\1 \2…” est bien le COD du participe passé “\-1”, celui-ci devrait être au féminin singulier.|http://fr.wikipedia.org/wiki/Accord_du_participe_pass%C3%A9_en_fran%C3%A7ais
 31786  31801           <<- /ppas/ __else__ and morph(\2, ":[NA].*:[si]") and morph(\-1, ":Q.*:p", ":[si]") --1>> =suggSing(\-1)
 31787  31802           && Si “\1 \2…” est bien le COD du participe passé “\-1”, celui-ci devrait être au singulier.|http://fr.wikipedia.org/wiki/Accord_du_participe_pass%C3%A9_en_fran%C3%A7ais
 31788  31803   
................................................................................
 31830  31845   TEST: votre père que vous m’avez {{envoyée}}                                    ->> envoyé
 31831  31846   TEST: ton psychologue que tu nous as {{suggérés}}                               ->> suggéré
 31832  31847   TEST: le flacon qu’ils ont réussi à acquérir
 31833  31848   TEST: la danse qu’ils ont réussi à faire
 31834  31849   TEST: La dernière fois qu’elle a brûlé, c’était pendant la Commune.
 31835  31850   TEST: en ayant l’impression qu’il a beaucoup réussi
 31836  31851   TEST: rassuré par l’enquête qu’il avait dû mener, il consentit à me faire confiance
        31852  +TEST: l’hypothèse que ces deux familles aient partagé un ancêtre commun
        31853  +
 31837  31854   
 31838  31855   __ppas_det_plur_COD_que_avoir__
 31839  31856       [les|des|ces|mes|tes|ses|nos|vos|leurs|quelques|plusieurs]  *WORD  [que|qu’]  [je|j’|tu|il|elle|on|nous|vous|ils|elles|iel|iels|$:M]  ?[ne|n’]¿  ?[lui|leur]¿  >avoir  @:V[0-3]..t.*:Q¬:[GWÉ]
 31840  31857       [les|des|ces|mes|tes|ses|nos|vos|leurs|quelques|plusieurs]  *WORD  [que|qu’]  $:D¬:R  @:[NA]                                          ?[ne|n’]¿  ?[lui|leur]¿  >avoir  @:V[0-3]..t.*:Q¬:[GWÉ]
 31841  31858           <<- /ppas/ not morph(>1, ":(?:Y|Ov|D|LV|ÉV)")
 31842  31859               and not ((value(\-1, "|commencé|décidé|essayé|fini|imaginé|ordonné|oublié|recommencé|supplié|tenté|") and value(>1, "|de|d’|")) or (value(\-1, "|commencé|recommencé|réussi|pensé|échoué|") and value(>1, "|à|")))
 31843  31860               and morph(\2, ":[NA]") >>>