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: |
babfb0cacb24920bf336ba4e56161f49 |
| 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: trunk, cli, build, server | |
|
2021-02-21
| ||
| 10:51 | [fr] faux positifs check-in: babfb0cacb user: olr tags: trunk, fr | |
|
2021-02-20
| ||
| 16:14 | [fr] faux positifs check-in: dba901b78f user: olr tags: trunk, fr | |
Changes
Modified gc_lang/fr/rules.grx from [08eadcc4b8] to [68fcd60fe8].
| ︙ | ︙ | |||
2855 2856 2857 2858 2859 2860 2861 2862 2863 2864 2865 2866 2867 2868 |
[lundi|mardi|mercredi|jeudi|vendredi|samedi|dimanche]
<<- not morph(<1, ":[DA].*:[me]:[si]") =>> select(\1, ":W")
__da_a__
[ça|ceci|cela] a
<<- =>> select(\2, ":V")
__da_autour__
autour [de|du|d’|des]
<<- not morph(<1, ":D.*:[me]") =>> select(\1, "", ":N")
__da_avant__
avant [que|qu’|$:D]
<<- not value(<1, "|l’|quel|cet|un|mon|ton|son|notre|votre|leur|") =>> select(\1, ":R")
| > > > | 2855 2856 2857 2858 2859 2860 2861 2862 2863 2864 2865 2866 2867 2868 2869 2870 2871 |
[lundi|mardi|mercredi|jeudi|vendredi|samedi|dimanche]
<<- not morph(<1, ":[DA].*:[me]:[si]") =>> select(\1, ":W")
__da_a__
[ça|ceci|cela] a
<<- =>> select(\2, ":V")
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]
<<- =>> select(\1, ":N")
__da_autour__
autour [de|du|d’|des]
<<- not morph(<1, ":D.*:[me]") =>> select(\1, "", ":N")
__da_avant__
avant [que|qu’|$:D]
<<- not value(<1, "|l’|quel|cet|un|mon|ton|son|notre|votre|leur|") =>> select(\1, ":R")
|
| ︙ | ︙ | |||
4869 4870 4871 4872 4873 4874 4875 | @@@@ @@@@GRAPH: graphe2|g2 _ @@@@ @@@@ @@@@ @@@@ | | < | 4872 4873 4874 4875 4876 4877 4878 4879 4880 4881 4882 4883 4884 4885 4886 | @@@@ @@@@GRAPH: graphe2|g2 _ @@@@ @@@@ @@@@ @@@@ ##!!!! Doublons (casse identique) !! # SLOWER THAN REGEX RULE #__doublon__ # *WORD *WORD # <<- \1 == \2 # 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|") # and not (value(\1, "|est|une|") and value(<1, "|l’|d’|")) |
| ︙ | ︙ | |||
6633 6634 6635 6636 6637 6638 6639 |
!!!! A / À: accentuation la préposition en début de phrase !!
__typo_À_début_phrase!7__
<start> A @:[GNAY]¬:(?:Q|3s)
| | | 6635 6636 6637 6638 6639 6640 6641 6642 6643 6644 6645 6646 6647 6648 6649 |
!!!! A / À: accentuation la préposition en début de phrase !!
__typo_À_début_phrase!7__
<start> A @:[GNAY]¬:(?:Q|3s)
<<- /typo/ not value(\3, "|t’|priori|posteriori|postériori|contrario|capella|fortiori|giorno|a|")
-2>> À && S’il s’agit de la préposition « à », il faut accentuer la majuscule.
<start> A bientôt [<end>|,|)]
<<- /typo/ -2>> À && S’il s’agit de la préposition « à », il faut accentuer la majuscule.
<start> A t’ *WORD
<<- /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 18043 18044 18045 18046 18047 18048 |
, je [t’|vous] en [prie|supplie] ,
, nous [t’|vous] en [prions|supplions] ,
<<- not morph(>1, ":E") ~>> *
# Déterminant + nombre
__p_dét_plur_nombre_nom__
| | | | 18044 18045 18046 18047 18048 18049 18050 18051 18052 18053 18054 18055 18056 18057 18058 18059 18060 18061 |
, je [t’|vous] en [prie|supplie] ,
, nous [t’|vous] en [prions|supplions] ,
<<- not morph(>1, ":E") ~>> *
# Déterminant + nombre
__p_dét_plur_nombre_nom__
[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)
<<- ~2>> *
[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)
<<- ~2:4>> *
[les|des] >numéro [un|*NUM|$:B] et [*NUM|$:B]
<<- ~3:0>> *
la >numéro un
la >numéro $:B
|
| ︙ | ︙ | |||
20486 20487 20488 20489 20490 20491 20492 20493 20494 20495 20496 20497 20498 20499 |
__da_participe_passé__
>avoir $:Q
<<- not value(\1, "|avoir|avoirs|") and not morph(<1, ":D") =>> rewrite(\2, ":A", "")
>être $:Q
<<- not value(\1, "|être|êtres|") and not morph(<1, ":D") =>> rewrite(\2, ":A", "")
__purge_rien__
rien $:Q [d’|de]
<<- /2>> _rien_
rien
<<- morph(<1, ":V") and not value(>1, "|qui|de|d’|ne|n’|") ~>> *
| > > > > > > | 20488 20489 20490 20491 20492 20493 20494 20495 20496 20497 20498 20499 20500 20501 20502 20503 20504 20505 20506 20507 |
__da_participe_passé__
>avoir $:Q
<<- not value(\1, "|avoir|avoirs|") and not morph(<1, ":D") =>> rewrite(\2, ":A", "")
>être $:Q
<<- not value(\1, "|être|êtres|") and not morph(<1, ":D") =>> rewrite(\2, ":A", "")
__da_dit__
, dit /_Maj_
, dit $:D
<<- =>> =select(\2, "", ":A")
__purge_rien__
rien $:Q [d’|de]
<<- /2>> _rien_
rien
<<- morph(<1, ":V") and not value(>1, "|qui|de|d’|ne|n’|") ~>> *
|
| ︙ | ︙ | |||
25138 25139 25140 25141 25142 25143 25144 25145 25146 25147 25148 25149 25150 25151 25152 25153 25154 25155 25156 25157 25158 |
TEST: les agrandissements photo
TEST: Il faut donc examiner ensemble les panneaux et les parois latéraux.
TEST: Il faut donc examiner ensemble les panneaux et les parois latérales.
TEST: l’homme les a volés
__gn_les_2m_virg__
<start> les *WORD , @:A¬:[GP]
<<- /gn/ morph(\3, ":[NA].*:[pi]", ":3[sp]") and not agreement(\3, \5)
--1>> =suggAgree(\-1, \3) && Cet adjectif n’est pas accordé avec “\2 \3”.
TEST: les femmes, {{blessé}} par deux fois ->> blessées
TEST: les hommes, {{blessée}} par deux fois ->> blessés
TEST: les femmes, demeurant rue de la paix
__gn_leurs_1m__
leurs *WORD
<<- /gn/ morph(\2, ":[NA].*:s", ":(?:[ipGW]|[123][sp])") and not (value(>1, "|et|ou|") and morph(>2, ":[NA]"))
-2>> =suggPlur(\2) && Accord de nombre erroné avec « \1 » : « \2 » devrait être au pluriel.
<<- /gn/ __also__ -1>> leur && Accord de nombre erroné avec « \2 ».
| > > > > > | 25146 25147 25148 25149 25150 25151 25152 25153 25154 25155 25156 25157 25158 25159 25160 25161 25162 25163 25164 25165 25166 25167 25168 25169 25170 25171 |
TEST: les agrandissements photo
TEST: Il faut donc examiner ensemble les panneaux et les parois latéraux.
TEST: Il faut donc examiner ensemble les panneaux et les parois latérales.
TEST: l’homme les a volés
__gn_les_2m_virg__
calendriers , [grégorien|julien|hégirien] et [grégorien|julien|hégirien]
<<- !3>> gn
<start> les *WORD , @:A¬:[GP]
<<- /gn/ morph(\3, ":[NA].*:[pi]", ":3[sp]") and not agreement(\3, \5)
and not (value(>1, "|et|") and morph(\-1, "#G") and morph(>2, "#G"))
--1>> =suggAgree(\-1, \3) && Cet adjectif n’est pas accordé avec “\2 \3”.
TEST: les femmes, {{blessé}} par deux fois ->> blessées
TEST: les hommes, {{blessée}} par deux fois ->> blessés
TEST: les femmes, demeurant rue de la paix
TEST: les deux camps, italien et allemand, étaient à portée d’arc
__gn_leurs_1m__
leurs *WORD
<<- /gn/ morph(\2, ":[NA].*:s", ":(?:[ipGW]|[123][sp])") and not (value(>1, "|et|ou|") and morph(>2, ":[NA]"))
-2>> =suggPlur(\2) && Accord de nombre erroné avec « \1 » : « \2 » devrait être au pluriel.
<<- /gn/ __also__ -1>> leur && Accord de nombre erroné avec « \2 ».
|
| ︙ | ︙ | |||
26862 26863 26864 26865 26866 26867 26868 |
TEST: ajoute plein de sel sur ses pâtes
TEST: avoir plein d’argent ne suffit pas toujours à tout résoudre
__gn_groupe_de__
[un|une|le|la|ce|cette|mon|ton|son|ma|ta|sa|les|ces|des|mes|tes|ses|nos|vos|leurs|quelques|plusieurs]
|| [>dizaine|>douzaine||>vingtaine|>trentaine|>quarantaine|>cinquantaine|>soixantaine|>centaine|>millier|>million|>milliard|>multitude|>horde] [de|d’] *WORD
| | > | 26875 26876 26877 26878 26879 26880 26881 26882 26883 26884 26885 26886 26887 26888 26889 26890 26891 26892 26893 26894 26895 26896 26897 26898 26899 26900 26901 26902 26903 26904 26905 26906 |
TEST: ajoute plein de sel sur ses pâtes
TEST: avoir plein d’argent ne suffit pas toujours à tout résoudre
__gn_groupe_de__
[un|une|le|la|ce|cette|mon|ton|son|ma|ta|sa|les|ces|des|mes|tes|ses|nos|vos|leurs|quelques|plusieurs]
|| [>dizaine|>douzaine||>vingtaine|>trentaine|>quarantaine|>cinquantaine|>soixantaine|>centaine|>millier|>million|>milliard|>multitude|>horde] [de|d’] *WORD
<<- /gn/ morph(\4, ":[NA].*:s", ":[ip]|>(?:bénéfice|fraude|large|long|profondeur|hauteur|perte)/")
-4>> =suggPlur(\4) && Avec « \1 \2 \3… », mettre au pluriel “\4” s’il y en a bien plusieurs.
[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]
<<- /gn/ -4>> =suggSing(\4) && Mettez au singulier.
[>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]
<<- /gn/ -3>> \3s && Il manque un “s”. Il y en a plusieurs dans un groupe, un rassemblement, une assemblée, etc.
TEST: des centaines de {{bête}} à cornes passèrent devant nous. ->> bêtes
TEST: une multitude d’{{homme}} ->> hommes
TEST: des groupes de {{paroles}} ->> parole
TEST: ils constituent un groupe de {{passionné}}. ->> passionnés
TEST: Ce collectif d’{{artiste}} est très inventif. ->> artistes
TEST: les 80 milliards de fraude fiscale
TEST: un groupe de prière
TEST: elle fait environ un mètre de large sur des dizaines de long
TEST: six milliards de perte
__gn_cage_d_escalier__
>cage d’ escaliers
<<- /gn/ -3>> escalier && Usuellement, pas de “s” à escalier.
__gn_carnet_de__
|
| ︙ | ︙ | |||
27048 27049 27050 27051 27052 27053 27054 |
# extérieur/intérieur
__gn_intérieur_extérieur__
[l’|d’|mon|ton|son|leur|notre|votre|cet|en] [intérieure|extérieure]
<<- /gn/ -2>> =\2[:-1] && Ceci est un adjectif féminin. Pas de “e” pour le nom masculin.
[d’|ces|des|les|mes|tes|ses|leurs|nos|vos|en] [intérieures|extérieures]
| | | 27062 27063 27064 27065 27066 27067 27068 27069 27070 27071 27072 27073 27074 27075 27076 |
# extérieur/intérieur
__gn_intérieur_extérieur__
[l’|d’|mon|ton|son|leur|notre|votre|cet|en] [intérieure|extérieure]
<<- /gn/ -2>> =\2[:-1] && Ceci est un adjectif féminin. Pas de “e” pour le nom masculin.
[d’|ces|des|les|mes|tes|ses|leurs|nos|vos|en] [intérieures|extérieures]
<<- /gn/ space(\1, 1, 3) -2>> =\2[:-2]+"s" && Ceci est un adjectif féminin. Pas de “e” pour le nom masculin.
TEST: que pensez-vous de notre {{intérieure}} ? ->> intérieur
TEST: à l’{{intérieure}} rien de notable. ->> intérieur
TEST: un homme de l’{{intérieure}}. ->> intérieur
TEST: des {{intérieures}} remarquables. ->> intérieurs
|
| ︙ | ︙ | |||
31775 31776 31777 31778 31779 31780 31781 31782 31783 31784 31785 31786 31787 31788 |
<<- /ppas/ morph(\2, ":[NA].*:[fe]", ">(?:fois|impression)/") and not morph(>1, ":(?:Y|Ov|D|ÉV)|>qu[e’]/")
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, "|à|")))
--1>> =suggVerbPpas(\-1, ":f:s")
&& 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
[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É]
[l’|mon|ton|son|notre|votre|leur] *WORD [que|qu’] $:D¬:R @:[NA] ?[ne|n’]¿ ?[lui|leur]¿ >avoir @:V[0-3]..t.*:Q¬:[GWÉ]
<<- /ppas/ morph(\2, ":[NA].*:m", ":[fe]|>impression/") and morph(\-1, ":Q.*:[fp]", ":[me]:[si]") --1>> =suggVerbPpas(\-1, ":m:s")
&& 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
<<- /ppas/ __else__ and morph(\2, ":[NA].*:f", ":[me]") and morph(\-1, ":Q.*:[mp]", ":[fe]:[si]") --1>> =suggVerbPpas(\-1, ":f:s")
&& 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
<<- /ppas/ __else__ and morph(\2, ":[NA].*:[si]") and morph(\-1, ":Q.*:p", ":[si]") --1>> =suggSing(\-1)
&& 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
| > | 31789 31790 31791 31792 31793 31794 31795 31796 31797 31798 31799 31800 31801 31802 31803 |
<<- /ppas/ morph(\2, ":[NA].*:[fe]", ">(?:fois|impression)/") and not morph(>1, ":(?:Y|Ov|D|ÉV)|>qu[e’]/")
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, "|à|")))
--1>> =suggVerbPpas(\-1, ":f:s")
&& 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
[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É]
[l’|mon|ton|son|notre|votre|leur] *WORD [que|qu’] $:D¬:R @:[NA] ?[ne|n’]¿ ?[lui|leur]¿ >avoir @:V[0-3]..t.*:Q¬:[GWÉ]
<<- /ppas/ not morph(>1, ":(?:Y|Ov|D|ÉV)|>qu[e’]/") >>>
<<- /ppas/ morph(\2, ":[NA].*:m", ":[fe]|>impression/") and morph(\-1, ":Q.*:[fp]", ":[me]:[si]") --1>> =suggVerbPpas(\-1, ":m:s")
&& 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
<<- /ppas/ __else__ and morph(\2, ":[NA].*:f", ":[me]") and morph(\-1, ":Q.*:[mp]", ":[fe]:[si]") --1>> =suggVerbPpas(\-1, ":f:s")
&& 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
<<- /ppas/ __else__ and morph(\2, ":[NA].*:[si]") and morph(\-1, ":Q.*:p", ":[si]") --1>> =suggSing(\-1)
&& 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
|
| ︙ | ︙ | |||
31830 31831 31832 31833 31834 31835 31836 31837 31838 31839 31840 31841 31842 31843 |
TEST: votre père que vous m’avez {{envoyée}} ->> envoyé
TEST: ton psychologue que tu nous as {{suggérés}} ->> suggéré
TEST: le flacon qu’ils ont réussi à acquérir
TEST: la danse qu’ils ont réussi à faire
TEST: La dernière fois qu’elle a brûlé, c’était pendant la Commune.
TEST: en ayant l’impression qu’il a beaucoup réussi
TEST: rassuré par l’enquête qu’il avait dû mener, il consentit à me faire confiance
__ppas_det_plur_COD_que_avoir__
[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É]
[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É]
<<- /ppas/ not morph(>1, ":(?:Y|Ov|D|LV|ÉV)")
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, "|à|")))
and morph(\2, ":[NA]") >>>
| > > | 31845 31846 31847 31848 31849 31850 31851 31852 31853 31854 31855 31856 31857 31858 31859 31860 |
TEST: votre père que vous m’avez {{envoyée}} ->> envoyé
TEST: ton psychologue que tu nous as {{suggérés}} ->> suggéré
TEST: le flacon qu’ils ont réussi à acquérir
TEST: la danse qu’ils ont réussi à faire
TEST: La dernière fois qu’elle a brûlé, c’était pendant la Commune.
TEST: en ayant l’impression qu’il a beaucoup réussi
TEST: rassuré par l’enquête qu’il avait dû mener, il consentit à me faire confiance
TEST: l’hypothèse que ces deux familles aient partagé un ancêtre commun
__ppas_det_plur_COD_que_avoir__
[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É]
[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É]
<<- /ppas/ not morph(>1, ":(?:Y|Ov|D|LV|ÉV)")
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, "|à|")))
and morph(\2, ":[NA]") >>>
|
| ︙ | ︙ |