Overview
Comment: | [fr] faux positif: en tant que président du conseil (trailing spaces automatically removed) |
---|---|
Downloads: | Tarball | ZIP archive | SQL archive |
Timelines: | family | ancestors | descendants | both | trunk | fr |
Files: | files | file ages | folders |
SHA3-256: |
37fb199673c4c8702f5b9a70c580534e |
User & Date: | olr on 2018-06-25 07:58:15 |
Original Comment: | [fr] faux positif: en tant que président du conseil |
Other Links: | manifest | tags |
Context
2018-06-25
| ||
08:26 | [build][fr] bookmark update check-in: 3c68a92318 user: olr tags: trunk, fr, build | |
07:58 | [fr] faux positif: en tant que président du conseil (trailing spaces automatically removed) check-in: 37fb199673 user: olr tags: trunk, fr | |
2018-06-22
| ||
07:46 | [cli] option to load personal dictionary check-in: cb3f319c08 user: olr tags: trunk, cli | |
Changes
Modified gc_lang/fr/rules.grx from [f601a2bdd7] to [61fedd664d].
︙ | ︙ | |||
45 46 47 48 49 50 51 | # ERREURS COURANTES # http://fr.wikipedia.org/wiki/Wikip%C3%A9dia:Fautes_d%27orthographe/Courantes !! !! | | | 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 | # ERREURS COURANTES # http://fr.wikipedia.org/wiki/Wikip%C3%A9dia:Fautes_d%27orthographe/Courantes !! !! !! Options !! !! OPTGROUP/basic: typo apos, esp tab, nbsp unit, tu maj, num virg, nf chim, ocr mapos, liga OPTGROUP/gramm: conf sgpl gn OPTGROUP/verbs: infi conj ppas, imp inte vmode OPTGROUP/style: bs pleo, redon1 redon2, neg |
︙ | ︙ | |||
196 197 198 199 200 201 202 | OPTLABEL/debug: Debug OPTLABEL/idrule: Display control rule identifier [!]|Display control rule identifier in the context menu message. !! !! | | | 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 | OPTLABEL/debug: Debug OPTLABEL/idrule: Display control rule identifier [!]|Display control rule identifier in the context menu message. !! !! !! Définitions pour les regex !! !! DEF: avoir [aeo]\w* DEF: etre [êeésf]\w+ DEF: avoir_etre [aeêésfo]\w* DEF: aller (?:ai?ll|v[ao]|ir[aio])\w* |
︙ | ︙ | |||
238 239 240 241 242 243 244 | !! !! !! !! !! !! !! | | | 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 | !! !! !! !! !! !! !! !! PASSE 0: PARAGRAPHE PAR PARAGRAPHE !! !! !! !! !! !! !! |
︙ | ︙ | |||
264 265 266 267 268 269 270 | !! !! !! !! | | | 264 265 266 267 268 269 270 271 272 273 274 275 276 277 278 | !! !! !! !! !!! Espaces & tabulations !! !! # Espaces surnuméraires # Note : les tabulations ne sont pas soulignées dans LibreOffice. Mais l’erreur est bien présente. __<s>/tab(tab_début_ligne)__ ^[ ]+ <<- ->> "" # Espace(s) en début de ligne à supprimer : utilisez les retraits de paragraphe. __<s>/tab(tab_fin_ligne)__ [ ]+$ <<- ->> "" # Espace(s) en fin de ligne à supprimer. |
︙ | ︙ | |||
373 374 375 376 377 378 379 | # À partir d’ici, toute règle est susceptible de supprimer des caractères et les remplacer par des espaces ou des chaînes de longueur égale. # # !!! !!! | | | 373 374 375 376 377 378 379 380 381 382 383 384 385 386 387 | # À partir d’ici, toute règle est susceptible de supprimer des caractères et les remplacer par des espaces ou des chaînes de longueur égale. # # !!! !!! !!! Processeur: efface les ponctuations gênantes (URL, sigles, abréviations, IP, heures, etc.) !!! !!! # e-mail __<i>(p_email)__ \w[\w.-]*@\w[\w.-]*\w[.]\w+ <<- ~>> * |
︙ | ︙ | |||
522 523 524 525 526 527 528 | TEST: Dossier C:\Program Files (x86)\LibreOffice TEST: [1] Dossier à revoir. !!! !!! | | | 522 523 524 525 526 527 528 529 530 531 532 533 534 535 536 | TEST: Dossier C:\Program Files (x86)\LibreOffice TEST: [1] Dossier à revoir. !!! !!! !!! Processeur: balises HTML et LaTeX !!! !!! # HTML __<i>/html(p_html_amp_xxx)__ &[a-zA-Z]+; <<- ~>> _ __<i>/html(p_html_lt)__ < <<- ~>> " <" __<i>/html(p_html_gt)__ > <<- ~>> > |
︙ | ︙ | |||
550 551 552 553 554 555 556 | TEST: __html__ des <b>{{homme}}</b> TEST: __html__ des [b]{{femme}}[/b] !! !! | | | 550 551 552 553 554 555 556 557 558 559 560 561 562 563 564 | TEST: __html__ des <b>{{homme}}</b> TEST: __html__ des [b]{{femme}}[/b] !! !! !!!! Écritures épicènes dystypographiques !! !! # (attention aux modifs: brainfuck d’intensité non négligeable) # La désambiguïsation est faite lors de la deuxième passe __[i](typo_écriture_épicène_tous_toutes)__ |
︙ | ︙ | |||
649 650 651 652 653 654 655 | TEST: je suis {{déconsidéré.e}} par ma hiérarchie. TEST: il faut en parler à l’{{auteur(e)}} et à son agent. !! !! | | | 649 650 651 652 653 654 655 656 657 658 659 660 661 662 663 | TEST: je suis {{déconsidéré.e}} par ma hiérarchie. TEST: il faut en parler à l’{{auteur(e)}} et à son agent. !! !! !!!! Majuscules manquantes !! !! # Majuscules après un point __[s]/maj(majuscule_après_point)__ ({w_2})[.] ([a-zéàèîçô]\w*) @@0,$ <<- not re.search("(?i)^(?:etc|[A-Z]|chap|cf|fig|hab|litt|circ|coll|r[eé]f|étym|suppl|bibl|bibliogr|cit|op|vol|déc|nov|oct|janv|juil|avr|sept)$", \1) |
︙ | ︙ | |||
672 673 674 675 676 677 678 | <<- after("\w\w[.] +\w+") -1>> =\1.capitalize() # Majuscule en début de phrase, sauf éventuellement lors d’une énumération. TEST: {{je}} suis disponible quand tu veux. Mais pas aujourd’hui. !! !! | | | 672 673 674 675 676 677 678 679 680 681 682 683 684 685 686 | <<- after("\w\w[.] +\w+") -1>> =\1.capitalize() # Majuscule en début de phrase, sauf éventuellement lors d’une énumération. TEST: {{je}} suis disponible quand tu veux. Mais pas aujourd’hui. !! !! !!!! Virgules !! !! # virgules manquantes __[i>/virg(virgule_manquante_avant_etc)__ {w_1}( etc[.]) @@$ <<- -1>> , etc. # Avant « etc. », il faut mettre une virgule. __[i>/virg(virgule_manquante_avant_car)__ ({w_1})( car)(?= (?:j[e’]|tu|ils?|nous|vous|elles?|on|les?|l[a’]|ces?|des?|cette|[mts](?:on|a|es))\b) @@0,$ |
︙ | ︙ | |||
730 731 732 733 734 735 736 | #__<i>/typo__ ({w_2}) *$ @@0 # <<- before("[a-zéàùèê][.] ") and not before(r"^(?:\d|\w[.])") # -1>> \1.|\1…|\1 !|\1 ?|\1 :|\1 ;|\1, # Il manque une ponctuation finale. !! !! | | | 730 731 732 733 734 735 736 737 738 739 740 741 742 743 744 | #__<i>/typo__ ({w_2}) *$ @@0 # <<- before("[a-zéàùèê][.] ") and not before(r"^(?:\d|\w[.])") # -1>> \1.|\1…|\1 !|\1 ?|\1 :|\1 ;|\1, # Il manque une ponctuation finale. !! !! !!!! Espaces manquants !! !! __<s>/typo(typo_espace_manquant_après1)__ ({w1})[,:]({w_1}) @@0,$ <<- not \1.isdigit() -2>> " \2" # Il manque un espace. __<s>/typo(typo_espace_manquant_après2)__ [?!;%‰‱˚»}]({w_1}) @@$ <<- -1>> " \1" # Il manque un espace. |
︙ | ︙ | |||
759 760 761 762 763 764 765 | TEST: espace.{{Manquant}} ->> " Manquant" TEST: qui ont refuse.{{de}} se sauver ->> " de" TEST: pic.twitter.com/PICNAME !! !! | | | 759 760 761 762 763 764 765 766 767 768 769 770 771 772 773 | TEST: espace.{{Manquant}} ->> " Manquant" TEST: qui ont refuse.{{de}} se sauver ->> " de" TEST: pic.twitter.com/PICNAME !! !! !!!! Points !! !! # Points superflus __[i>/typo(typo_et_cetera)__ etc(?:[.]{3,5}|…) <<- ->> etc. # Un seul point après « etc. » TEST: {{etc…}} |
︙ | ︙ | |||
798 799 800 801 802 803 804 | TEST: Ligne de points{{...........................}} TEST: Aujourd’hui, M. Camus va nous lire son texte. !! !! | | | 798 799 800 801 802 803 804 805 806 807 808 809 810 811 812 | TEST: Ligne de points{{...........................}} TEST: Aujourd’hui, M. Camus va nous lire son texte. !! !! !!!! Tirets !! !! # Tirets, énumérations et dialogues __<s>/typo(typo_tiret_début_ligne)__ ^[-_][ ] <<- ->> "— |– " # Dialogues et énumérations : un tiret cadratin ou demi-cadratin, suivi d’un espace insécable, est requis. __<s>/typo(typo_tiret_dans_dialogue)__ ^ *«[ ](-[ ]) @@$ <<- -1>> "— |– " # Dialogues : un tiret cadratin ou demi-cadratin, suivi d’un espace insécable, est requis. (Attention : à moins qu’il s’agisse d’un dialogue inclus dans un autre dialogue, cette manière d’écrire est erronée.) |
︙ | ︙ | |||
821 822 823 824 825 826 827 | TEST: {{—}}Viens là. ->> "— |– " TEST: Cette phrase contient{{ - }}c’est certain – des tirets d’incise. ->> " – | — " TEST: « {{- }}Viens ! On va en finir avec cette affaire, sale fils de pute. ->> "— |– " !! !! | | | | 821 822 823 824 825 826 827 828 829 830 831 832 833 834 835 836 837 838 839 840 | TEST: {{—}}Viens là. ->> "— |– " TEST: Cette phrase contient{{ - }}c’est certain – des tirets d’incise. ->> " – | — " TEST: « {{- }}Viens ! On va en finir avec cette affaire, sale fils de pute. ->> "— |– " !! !! !!!! Ponctuations redondantes !! !! # virgules et points __<s>/typo(typo_virgules_points)__ ,[.,]{2,} <<- ->> =\0.replace(",", ".").replace("...", "…") # Erreur de numérisation ? Virgules au lieu de points ? TEST: Ah !{{,.,}} et en quoi consistait le festin ? __<s>/typo(typo_ponctuation_superflue1)__ , ?([.,;:!?]) @@$ <<- ->> =",|" + \1 # Une de ces ponctuations est superflue. |
︙ | ︙ | |||
869 870 871 872 873 874 875 | TEST: Succession : a{{;}} b. ->> " ;" TEST: C’est assez {{: }}parlez ! ->> ": " TEST: {{» }}C’est ce qu’on croit savoir. ->> "» |« " !! !! | | | 869 870 871 872 873 874 875 876 877 878 879 880 881 882 883 | TEST: Succession : a{{;}} b. ->> " ;" TEST: C’est assez {{: }}parlez ! ->> ": " TEST: {{» }}C’est ce qu’on croit savoir. ->> "» |« " !! !! !!!! Signes typographiques !! !! __<s>/typo(typo_signe_multiplication)__ (\d+) ?[x*] ?(\d+) @@0,$ <<- not \0.startswith("0x") ->> \1 × \2 # Signe de multiplication typographique. TEST: {{800 x 600}} ->> 800 × 600 |
︙ | ︙ | |||
898 899 900 901 902 903 904 | TEST: __liga__ un {{fl}}ottement ->> fl TEST: __liga__ une belle {{fi}}gure ->> fi !! !! | | | 898 899 900 901 902 903 904 905 906 907 908 909 910 911 912 | TEST: __liga__ un {{fl}}ottement ->> fl TEST: __liga__ une belle {{fi}}gure ->> fi !! !! !!!! Apostrophes !! !! ## Apostrophe typographique __[i>/apos(apostrophe_typographique)__ ([ldsncjmç]|jusqu|lorsqu|aujourd|presqu|quelqu|puisqu|qu|prud|entr)['´‘′`](?=[\w"«]) @@0 <<- ->> \1’ # Apostrophe typographique. __[i>/apos(apostrophe_typographique_après_t)__ t['´‘′`](?!ils?|elles?|on)(?=[\w"«]) <<- ->> t’ # Apostrophe typographique. |
︙ | ︙ | |||
952 953 954 955 956 957 958 | TEST: Il {{s }}était dit qu’il ne le ferait pas. ->> s’ TEST: Je {{m }}étais imaginé que je pourrais pas retrouver cet objet. ->> m’ TEST: Je {{n }}ai pas retrouvé l’ambiance de mes années de lycée. ->> n’ !! !! | | | 952 953 954 955 956 957 958 959 960 961 962 963 964 965 966 | TEST: Il {{s }}était dit qu’il ne le ferait pas. ->> s’ TEST: Je {{m }}étais imaginé que je pourrais pas retrouver cet objet. ->> m’ TEST: Je {{n }}ai pas retrouvé l’ambiance de mes années de lycée. ->> n’ !! !! !!!! Guillemets typographiques !! !! __<s>/typo(typo_guillemets_typographiques_doubles_ouvrants)__ "(?=\w) <<- not before(r"[a-zA-Zéïîùàâäôö]$") ->> « |“ # Guillemets typographiques ouvrants. __<s>/typo(typo_guillemets_typographiques_doubles_fermants)__ |
︙ | ︙ | |||
994 995 996 997 998 999 1000 | TEST: Le {{'}}grand’ homme. ->> “|‘|‹ TEST: Le ‘grand{{'}} homme. ->> ”|’|› TEST: J’en ai '''marre''' (syntaxe wiki). !! !! | | | 994 995 996 997 998 999 1000 1001 1002 1003 1004 1005 1006 1007 1008 | TEST: Le {{'}}grand’ homme. ->> “|‘|‹ TEST: Le ‘grand{{'}} homme. ->> ”|’|› TEST: J’en ai '''marre''' (syntaxe wiki). !! !! !!!! Élisions !! !! __[i]/typo(typo_élision_déterminants)__ (l[ea] |de )([aâeéêiîoôu]\w+) @@0,$ <<- not re.search("(?i)^(?:onz[ei]|énième|iourte|ouistiti|ouate|one-?step|ouf|Ouagadougou|I(?:I|V|X|er|ᵉʳ|ʳᵉ|è?re))", \2) and not \2.isupper() and not morph(\2, ":G", False) -1>> =\1[0]+"’" # Élision de l’article devant un mot commençant par une voyelle.|http://fr.wikipedia.org/wiki/Élision |
︙ | ︙ | |||
1046 1047 1048 1049 1050 1051 1052 | -1>> cet # Euphonie : « ce » devient « cet » devant un mot commençant par une voyelle. TEST: {{ce}} animal est dangereux !! !! | | | 1046 1047 1048 1049 1050 1051 1052 1053 1054 1055 1056 1057 1058 1059 1060 | -1>> cet # Euphonie : « ce » devient « cet » devant un mot commençant par une voyelle. TEST: {{ce}} animal est dangereux !! !! !!!! Divers !! !! ## NF (memo: don’t use flag i) __[s]/nf(nf_norme_française)__ [nN][fF][ -]?(?:c|C|e|E|p|P|q|Q|s|S|x|X|z|Z|[eE][nN](?:[ -][iI][sS][oO]|))[ -]?[0-9]+(?:[/ ‑-][0-9]+|) <<- not re.search("^NF (?:C|E|P|Q|S|X|Z|EN(?: ISO|)) [0-9]+(?:‑[0-9]+|)", \0) |
︙ | ︙ | |||
1069 1070 1071 1072 1073 1074 1075 | <<- ->> =\0.replace("2", "₂").replace("3", "₃").replace("4", "₄") # Typographie des composés chimiques. [!] TEST: __chim__ les molécules {{CaCO3}} et {{H2O}}… !! !! | | | 1069 1070 1071 1072 1073 1074 1075 1076 1077 1078 1079 1080 1081 1082 1083 | <<- ->> =\0.replace("2", "₂").replace("3", "₃").replace("4", "₄") # Typographie des composés chimiques. [!] TEST: __chim__ les molécules {{CaCO3}} et {{H2O}}… !! !! !!!! Cohérence des guillemets !! !! __<s>/typo(typo_cohérence_guillemets_chevrons_ouvrants)__ («)[^»“]+?(”) @@0,$ <<- not before(r"\w$") -1>> “ # Guillemet ouvrant différent du guillemet fermant (”). <<- not after(r"^\w") -2>> " »" # Guillemet fermant différent du guillemet ouvrant («). |
︙ | ︙ | |||
1127 1128 1129 1130 1131 1132 1133 | TEST: « Je suis là. TEST: — Oui, nous t’avons vu arriver. » TEST: « J’en suis “malade”. » !! !! | | | 1127 1128 1129 1130 1131 1132 1133 1134 1135 1136 1137 1138 1139 1140 1141 | TEST: « Je suis là. TEST: — Oui, nous t’avons vu arriver. » TEST: « J’en suis “malade”. » !! !! !!!! Espaces insécables avant unités de mesure !! !! __[s]/unit(unit_nbsp_avant_unités1)__ ((\d+(?:,\d+[⁰¹²³⁴⁵⁶⁷⁸⁹]?|[⁰¹²³⁴⁵⁶⁷⁸⁹]|)) ?)(?:[kcmµn]?(?:[slgJKΩ]|m[²³]?|Wh?|Hz|dB)|[%‰€$£¥Åℓhj]|min|°C|℃)(?![’']) @@0,0 <<- -1>> "\2 " # Avec une unité de mesure, mettez un espace insécable. |
︙ | ︙ | |||
1165 1166 1167 1168 1169 1170 1171 | TEST: 1998 s’annonce grandiose. TEST: il y en a 3,43 milliards. TEST: je veux 200 euros. !! !! | | | 1165 1166 1167 1168 1169 1170 1171 1172 1173 1174 1175 1176 1177 1178 1179 | TEST: 1998 s’annonce grandiose. TEST: il y en a 3,43 milliards. TEST: je veux 200 euros. !! !! !!!! Grands nombres !! !! __[s]/num(num_grand_nombre_soudé)__ \d\d\d\d+ <<- not before("NF[ -]?(C|E|P|Q|X|Z|EN(?:[ -]ISO|)) *$") >>> <<- \0.__len__() > 4 ->> =formatNumber(\0) # Formatage des grands nombres. |
︙ | ︙ | |||
1214 1215 1216 1217 1218 1219 1220 | <<- ~>> =\0.replace(" ", "_") TEST: Il a perdu {{20 000}} euros à la Bourse en un seul mois. !! !! | | | | | | 1214 1215 1216 1217 1218 1219 1220 1221 1222 1223 1224 1225 1226 1227 1228 1229 1230 1231 1232 1233 1234 1235 1236 1237 1238 1239 1240 1241 1242 1243 1244 1245 1246 1247 1248 1249 1250 1251 1252 1253 1254 1255 1256 1257 1258 1259 1260 1261 1262 1263 1264 1265 1266 1267 1268 1269 1270 1271 1272 1273 1274 1275 1276 1277 | <<- ~>> =\0.replace(" ", "_") TEST: Il a perdu {{20 000}} euros à la Bourse en un seul mois. !! !! !!!! Dates !! !! __[i]/date(date_nombres)__ (?<!\d[ /.-])(\d\d?)[ /.-](\d\d?)[ /.-](\d\d\d+)(?![ /.-]\d) @@0,w,$ <<- not checkDate(\1, \2, \3) and not before(r"(?i)\bversions? +$") ->> _ # Cette date est invalide. <<- ~>> =\0.replace(".", "-").replace(" ", "-").replace("\/", "-") TEST: le {{29 02 2011}} TEST: le {{40-02-2011}} TEST: le {{32.03.2018}} TEST: le {{81/01/2012}} TEST: 12-12-2012 !! !! !!!! Redondances !! !! __[i]/redon1(redondances_paragraphe)__ ({w_4})[ ,.;!?:].*[ ](\1) @@0,$ <<- not morph(\1, ":(?:G|V0)|>(?:t(?:antôt|emps|rès)|loin|souvent|parfois|quelquefois|côte|petit|même) ", False) and not \1[0].isupper() -2>> _ # Dans ce paragraphe, répétition de « \1 » (à gauche). <<- __also__ -1>> _ # Dans ce paragraphe, répétition de « \1 » (à droite). TEST: __redon1__ Tu es son {{avenir}}. Et lui aussi est ton {{avenir}}. TEST: __redon1__ Car parfois il y en a. Mais parfois il n’y en a pas. !!! !!! !!! Processeur: Dernier nettoyage avant coupure du paragraphe en phrases !!! !!! # Trait d’union conditionnel (u00AD) __<i>(p_trait_union_conditionnel1)__ \w+‑\w+‑\w+ <<- ~>> =\0.replace("‑", "") __<i>(p_trait_union_conditionnel2)__ \w+‑\w+ <<- ~>> =\0.replace("‑", "") # empêcher la scission en fin de dialogue __<s>(p_fin_dialogue1)__ ([?!…][?!… ]*)[ "'”» ]*, @@0 <<- ~1>> * __<s>(p_fin_dialogue2)__ ([?!…][?!… ]*)[ "'”» ]*[a-zéèêîô] @@0 <<- ~1>> , TEST: « Je suis donc perdu ? », dit Paul. TEST: “C’est bon !”, croit savoir Marie. TEST: “Parce que… ?” finit par demander Paul. TEST: « Dans quel pays sommes-nous ? » demanda un manifestant. !! !! !! !! !! |
︙ | ︙ | |||
1286 1287 1288 1289 1290 1291 1292 | !! !! !! !! !! !! !! | | | 1286 1287 1288 1289 1290 1291 1292 1293 1294 1295 1296 1297 1298 1299 1300 | !! !! !! !! !! !! !! !! PASSE 1: PHRASE PAR PHRASE !! !! !! !! !! !! !! |
︙ | ︙ | |||
1312 1313 1314 1315 1316 1317 1318 | !! !! [++] | | | | 1312 1313 1314 1315 1316 1317 1318 1319 1320 1321 1322 1323 1324 1325 1326 1327 1328 1329 1330 1331 1332 1333 1334 1335 1336 1337 1338 | !! !! [++] !!!! Doublons (casse identique) __[s](doublon)__ ({w1}) {1,3}\1 @@0 <<- not re.search("(?i)^([nv]ous|faire|en|la|lui|donnant|œuvre|h[éoa]|hou|olé|joli|Bora|couvent|dément|sapiens|très|vroum|[0-9]+)$", \1) and not (re.search("^(?:est|une?)$", \1) and before("[’']$")) and not (\1 == "mieux" and before("(?i)qui +$")) ->> \1 # Doublon. TEST: Il y a un {{doublon doublon}}. !!!! Nombres: typographie #(\d\d\d\d)-(\d\d\d\d) <<- ->> \1–\2 # Ne pas séparer deux dates par un trait d’union, mais par un tiret demi-cadratin. __[s]/num(num_lettre_O_zéro1)__ [\dO]+[O][\dO]+ <<- not option("ocr") ->> =\0.replace("O", "0") # S’il s’agit d’un nombre, utilisez le chiffre « 0 » plutôt que la lettre « O ». __[s]/num(num_lettre_O_zéro2)__ [1-9]O <<- not option("ocr") ->> =\0.replace("O", "0") # S’il s’agit d’un nombre, utilisez le chiffre « 0 » plutôt que la lettre « O ». TEST: année {{2O11}} ->> 2011 |
︙ | ︙ | |||
1376 1377 1378 1379 1380 1381 1382 | TEST: le {{IInd}} siècle ->> IIᵈ TEST: le {{VIième}} siècle ->> VIᵉ TEST: Le {{XXIème}} siècle. ->> XXIᵉ TEST: le {{XXè}} siècle. ->> XXᵉ | | | | | | | | | | 1376 1377 1378 1379 1380 1381 1382 1383 1384 1385 1386 1387 1388 1389 1390 1391 1392 1393 1394 1395 1396 1397 1398 1399 1400 1401 1402 1403 1404 1405 1406 1407 1408 1409 1410 1411 1412 1413 1414 1415 1416 1417 1418 1419 1420 1421 1422 1423 1424 1425 1426 1427 1428 1429 1430 1431 1432 1433 1434 1435 1436 1437 1438 1439 1440 1441 1442 1443 | TEST: le {{IInd}} siècle ->> IIᵈ TEST: le {{VIième}} siècle ->> VIᵉ TEST: Le {{XXIème}} siècle. ->> XXIᵉ TEST: le {{XXè}} siècle. ->> XXᵉ !!!! Écritures épicènes invariables __[i](d_typo_écriture_épicène_pluriel)__ ({w_1}[éuitsrn])_(?:[nt]|)e_s @@0 <<- morphex(\1, ":[NAQ]", ":G") =>> define(\1, [":N:A:Q:e:p"]) __[i](d_typo_écriture_épicène_singulier)__ ({w_2}[éuitsrn])_e @@0 <<- morph(\1, ":[NAQ]", False) =>> define(\1, [":N:A:Q:e:s"]) !!!! Dates __[i]/date(date_jour_mois_année)__ (\d\d?) (janvier|février|ma(?:rs|i)|a(?:vril|o[ûu]t)|jui(?:n|llet)|septembre|octobre|novembre|décembre) (\d\d\d+) @@0,w,$ <<- not checkDateWithString(\1, \2, \3) ->> _ # Cette date est invalide. TEST: {{29 février 2011}} __[i]/date(date_journée_jour_mois_année1)__ (lundi|m(?:ardi|ercredi)|jeudi|vendredi|samedi|dimanche),? (?:le |)(\d\d?)-(\d\d?)-(\d\d+) @@0,w,w,$ <<- not after(r"^ +av(?:ant|) +J(?:C|ésus-Christ)") and not checkDay(\1, \2, \3, \4) -1>> =getDay(\2, \3, \4) # Le jour de la date suivante est incorrect. TEST: {{mercredi}}, le 10-06-2014 ->> mardi __[i]/date(date_journée_jour_mois_année2)__ (lundi|m(?:ardi|ercredi)|jeudi|vendredi|samedi|dimanche),? (?:le |)(\d\d?) (janvier|février|ma(?:rs|i)|a(?:vril|o[ûu]t)|jui(?:n|llet)|septembre|octobre|novembre|décembre) (\d\d+) @@0,w,w,$ <<- not after(r"^ +av(?:ant|) +J(?:C|ésus-Christ)") and not checkDayWithString(\1, \2, \3, \4) -1>> =getDayWithString(\2, \3, \4) # Le jour de la date suivante est incorrect. TEST: {{mercredi}}, le 10 juin 2014 ->> mardi TEST: {{lundi}}, 18 août 1912 ->> dimanche TEST: lundi, 18 août 1912 avant Jésus-Christ (date imaginaire) __[i]/date(date_mois_31)__ 31 (avril|juin|septembre|novembre) @@3 <<- ->> 30 \1 # Cette date est invalide. Il n’y a que 30 jours en \1. TEST: le {{31 avril}} __[i]/date(date_février)__ 3[01] février <<- ->> 28 février|29 février # Cette date est invalide. Il n’y a que 28 ou 29 jours en février. TEST: le {{30 février}} !!! !!! !!! Processeur: épuration des signes inutiles et quelques simplifications !!! !!! # fin de phrase __<s>(p_fin_de_phrase)__ [.?!:;…][ .?!… »”")]*$ <<- ~>> * # début de phrase |
︙ | ︙ | |||
1460 1461 1462 1463 1464 1465 1466 | __[i](p_références_aux_notes)__ [a-zéèâàôîù][a-zéèâàôîù-]+(\d+) @@$ <<- not morph(\0, ":", False) ~1>> * # faux positifs avec adverbes de négation __[i](p_pas_mal)__ pas mal <<- not morph(word(-1), ":D", False) ~>> * __[i](p_pas_assez)__ pas assez ({w_2}) @@$ <<- morph(\1, ":A", False) and not morph(word(-1), ":D", False) ~>> * # faux positifs avec «à chez» | | | 1460 1461 1462 1463 1464 1465 1466 1467 1468 1469 1470 1471 1472 1473 1474 | __[i](p_références_aux_notes)__ [a-zéèâàôîù][a-zéèâàôîù-]+(\d+) @@$ <<- not morph(\0, ":", False) ~1>> * # faux positifs avec adverbes de négation __[i](p_pas_mal)__ pas mal <<- not morph(word(-1), ":D", False) ~>> * __[i](p_pas_assez)__ pas assez ({w_2}) @@$ <<- morph(\1, ":A", False) and not morph(word(-1), ":D", False) ~>> * # faux positifs avec «à chez» __[i](p_de_chez_à_chez_pronom)__ de chez \w+ (?:à|jusqu à) chez (?:moi|toi|lui|elles?|eux|nous|vous) <<- ~>> * __[i](p_de_chez)__ (jusqu à|de) chez @@0 <<- ~1>> * # faux positifs __[i](p_en_tout_et_pour_tout)__ en tout et pour tout <<- ~>> * __[i](p_au_sortir_de)__ au (sortir) de?s? @@3 <<- ~1>> * __[i](p_au_revoir)__ au revoir <<- ~>> au_revoir |
︙ | ︙ | |||
1499 1500 1501 1502 1503 1504 1505 | TEST: New York {{étaient}} {{devenue}} la plaque tournante de tous les trafics. !! !! | | | 1499 1500 1501 1502 1503 1504 1505 1506 1507 1508 1509 1510 1511 1512 1513 | TEST: New York {{étaient}} {{devenue}} la plaque tournante de tous les trafics. !! !! !!!! Traits d’union !! !! __<i]/tu(tu_t_euphonique_incorrect)__ ([-–—− ]t(?:[’' ][-–—−]?|[-–—−][’' ]?))(ils?|elles?|on|tu) @@0,$ <<- re.search("(?i)^(?:ils|elles|tu)$", \2) -1>> - # Le “t” euphonique n’est pas nécessaire avec “\2”.|http://bdl.oqlf.gouv.qc.ca/bdl/gabarit_bdl.asp?T1=t+euphonique&id=2513 <<- __else__ and \1 != "-t-" and \1 != "-T-" -1>> -t- # Pour le “t” euphonique, il faut deux traits d’union. Pas d’apostrophe. Pas d’espace. |
︙ | ︙ | |||
1592 1593 1594 1595 1596 1597 1598 | TEST: Cet {{in folio}} est incroyable. TEST: c’est {{in}} stage de réinsertion. TEST: Dans ce drive in douze hommes mangent. __[i]/tu(tu_préfixe_mi)__ | | | | 1592 1593 1594 1595 1596 1597 1598 1599 1600 1601 1602 1603 1604 1605 1606 1607 1608 1609 1610 1611 1612 | TEST: Cet {{in folio}} est incroyable. TEST: c’est {{in}} stage de réinsertion. TEST: Dans ce drive in douze hommes mangent. __[i]/tu(tu_préfixe_mi)__ mi ({w2}) @@$ <<- morph(\1, ":[NAQ]", False) ->> mi-\1 # S’il s’agit d’un seul mot, il manque un trait d’union. TEST: J’ai été engagé pour un {{mi temps}}. __[i]/tu(tu_préfixe_quasi)__ (?:l(?:es?|a|eurs?)|ce(?:tte|t|s|)|des?|m(?:a|on|es)|[ts](?:es|a)) (quasi ({w1})) @@$,$ <<- morphex(\2, ":N", ":[AGW]") -1>> quasi-\2 # Il manque un trait d’union : « quasi » s’accroche au mot qui le suit s’il s’agit d’un nom. <<- ~1>> \2 TEST: leurs {{quasi indifférences}} __[i]/tu(tu_préfixe_semi)__ |
︙ | ︙ | |||
1682 1683 1684 1685 1686 1687 1688 | __[i]/tu(tu_là_adverbe)__ là (bas|haut|desso?us|dedans|devant|derrière) @@3 <<- ->> là-\1 # Il manque un trait d’union. __[i]/tu(tu_n_est_ce_pas)__ n’est(?: ce[ -]pas|-ce-pas) <<- ->> n’est-ce pas # Un trait d’union. __[i]/tu(tu_nord_sud_ouest)__ (nord|sud) ouest @@0 <<- ->> \1-ouest # Il manque un trait d’union. __[i]/tu(tu_nord_sud_est)__ (nord|sud) est @@0 <<- isEnd() ->> \1-est # Il manque un trait d’union. __[i]/tu(tu_outre_mer)__ outre mer <<- ->> outre-mer # Il manque un trait d’union. __[i]/tu(tu_ouï_dire)__ ou[iï] dire <<- morph(word(-1), ":G") ->> ouï-dire # Il manque un trait d’union. __[i]/tu(tu_par_préposition)__ | | | | 1682 1683 1684 1685 1686 1687 1688 1689 1690 1691 1692 1693 1694 1695 1696 1697 1698 1699 1700 | __[i]/tu(tu_là_adverbe)__ là (bas|haut|desso?us|dedans|devant|derrière) @@3 <<- ->> là-\1 # Il manque un trait d’union. __[i]/tu(tu_n_est_ce_pas)__ n’est(?: ce[ -]pas|-ce-pas) <<- ->> n’est-ce pas # Un trait d’union. __[i]/tu(tu_nord_sud_ouest)__ (nord|sud) ouest @@0 <<- ->> \1-ouest # Il manque un trait d’union. __[i]/tu(tu_nord_sud_est)__ (nord|sud) est @@0 <<- isEnd() ->> \1-est # Il manque un trait d’union. __[i]/tu(tu_outre_mer)__ outre mer <<- ->> outre-mer # Il manque un trait d’union. __[i]/tu(tu_ouï_dire)__ ou[iï] dire <<- morph(word(-1), ":G") ->> ouï-dire # Il manque un trait d’union. __[i]/tu(tu_par_préposition)__ par (desso?us|devant|delà|derrière|dehors|dedans|devers) @@$ <<- ->> par-\1 # Il manque un trait d’union. __[i]/tu(tu_par_ci_par_là)__ par ci,? par là <<- ->> par-ci par-là|par-ci, par-là # Trait(s) d’union manquant(s). __[i]/tu(tu_prêt_à_porter)__ (prêts?) à porter @@0 <<- before(r"(?i)\b(?:les?|du|des|un|ces?|[mts]on) +") ->> \1-à-porter # Il manque les traits d’union. __[i]/tu(tu_plate_forme)__ plates? formes? <<- ->> plate-forme|plates-formes|plateforme|plateformes # Il manque un trait d’union. Vous pouvez aussi souder les deux mots. __[i]/tu(tu_quelques_uns_unes)__ quelques (une?s) @@$ <<- ->> quelques-\1 # Il manque un trait d’union. __[i]/tu(tu_plus_moins_values)__ (plus|moins) (values?) @@0,$ <<- ->> \1-\2 # Il manque un trait d’union. __[i]/tu(tu_rez_de_chaussée)__ rez de chaussées? <<- ->> rez-de-chaussée # Il manque un trait d’union. __[i]/tu(tu_science_fiction)__ science fiction <<- ->> science-fiction # Il manque un trait d’union. __[i]/tu(tu_stock_option)__ stock options? <<- ->> =\0.replace(" ", "-") # Il manque un trait d’union. |
︙ | ︙ | |||
1710 1711 1712 1713 1714 1715 1716 | TEST: on a fait {{à la va vite}}… TEST: marre de faire des {{allers retours}} TEST: {{le}} {{bouche à oreille}} TEST: à ce {{moment là}} ->> moment-là TEST: une {{plus value}} ->> plus-value TEST: Il est {{en-dessous}} de tout. ->> en dessous TEST: Ils sont {{en-deçà}} de tout ->> en deçà | | | 1710 1711 1712 1713 1714 1715 1716 1717 1718 1719 1720 1721 1722 1723 1724 | TEST: on a fait {{à la va vite}}… TEST: marre de faire des {{allers retours}} TEST: {{le}} {{bouche à oreille}} TEST: à ce {{moment là}} ->> moment-là TEST: une {{plus value}} ->> plus-value TEST: Il est {{en-dessous}} de tout. ->> en dessous TEST: Ils sont {{en-deçà}} de tout ->> en deçà TEST: {{Là bas}}. ->> Là-bas TEST: {{Au dessus}} ->> Au-dessus TEST: {{ci dessus}} ->> ci-dessus TEST: {{par dessus}} ->> par-dessus TEST: {{au delà}} ->> au-delà TEST: {{ci devant}}. ->> ci-devant TEST: Il faisait froid cet {{hiver la}}. ->> hiver-là TEST: {{Ceux la}} vont à la pêche. ->> Ceux-là |
︙ | ︙ | |||
1802 1803 1804 1805 1806 1807 1808 | __[u]/tu(tu_Nouveau_Brunswick)__ Nouveau Brunswick <<- ->> Nouveau-Brunswick # Il manque un trait d’union. __[u]/tu(tu_Nouvelle_Qqch)__ Nouvelle (Zélande|Calédonie|Orléans) @@$ <<- ->> Nouvelle-\1 # Il manque un trait d’union. __[u]/tu(tu_Pas_de_Calais)__ Pas de Calais <<- ->> Pas-de-Calais # Il manque les traits d’union. __[u]/tu(tu_Rhône_Alpes)__ Rhône Alpes <<- ->> Rhône-Alpes # Il manque les traits d’union. __[u]/tu(tu_Saône_et_Loire)__ Saône et Loire <<- ->> Saône-et-Loire # Il manque un trait d’union. __[u]/tu(tu_Jésus_Christ)__ Jésus Christ <<- ->> Jésus-Christ # Il manque un trait d’union. __[u]/tu(tu_Jean_prénom)__ | | | | 1802 1803 1804 1805 1806 1807 1808 1809 1810 1811 1812 1813 1814 1815 1816 1817 1818 1819 | __[u]/tu(tu_Nouveau_Brunswick)__ Nouveau Brunswick <<- ->> Nouveau-Brunswick # Il manque un trait d’union. __[u]/tu(tu_Nouvelle_Qqch)__ Nouvelle (Zélande|Calédonie|Orléans) @@$ <<- ->> Nouvelle-\1 # Il manque un trait d’union. __[u]/tu(tu_Pas_de_Calais)__ Pas de Calais <<- ->> Pas-de-Calais # Il manque les traits d’union. __[u]/tu(tu_Rhône_Alpes)__ Rhône Alpes <<- ->> Rhône-Alpes # Il manque les traits d’union. __[u]/tu(tu_Saône_et_Loire)__ Saône et Loire <<- ->> Saône-et-Loire # Il manque un trait d’union. __[u]/tu(tu_Jésus_Christ)__ Jésus Christ <<- ->> Jésus-Christ # Il manque un trait d’union. __[u]/tu(tu_Jean_prénom)__ Jean (Baptiste|Claude|François|Jacques|Louis|Luc|Marc|Marie|Michel|Paul|Philippe|Pierre) @@$ <<- ->> Jean-\1 # Il manque un trait d’union. __[u]/tu(tu_Marie_Prénom)__ Marie (Ange|Agnès|Anne|Antoinette|Cécile|Chantal|Charlotte|Christine|Claire|Claude|Dominique|France|Françoise|Hélène|Jeanne|José|Josèphe|Line|Louise|Madeleine|Noëlle|Odile|Paule|Pierre|Rose|Thérèse) @@$ <<- ->> Marie-\1 # Il manque un trait d’union. __[s]/tu(tu_St_Ste_Bidule)__ ((Ste?) )[A-ZÉÈÎ]\w+ @@0,0 <<- -1>> \2- # Il manque un trait d’union s’il s’agit d’une église, d’une cité, d’une communauté… S’il s’agit d’une personne, écrivez « saint(e) » sans majuscule, sans trait d’union. TEST: Émigrer au {{Royaume Uni}} |
︙ | ︙ | |||
1911 1912 1913 1914 1915 1916 1917 | lors que? <<- not before(r"(?i)\bd[eè]s +$") ->> =\0.replace(" ", "") # Attachez les deux mots.|https://fr.wiktionary.org/wiki/lorsque TEST: Elle y arriva {{lors qu}}’elle trouva l’astuce permettant l’ouverture de la porte. TEST: Dès lors qu’on sait comment s’y prendre, aucune raison de faillir. | | | 1911 1912 1913 1914 1915 1916 1917 1918 1919 1920 1921 1922 1923 1924 1925 | lors que? <<- not before(r"(?i)\bd[eè]s +$") ->> =\0.replace(" ", "") # Attachez les deux mots.|https://fr.wiktionary.org/wiki/lorsque TEST: Elle y arriva {{lors qu}}’elle trouva l’astuce permettant l’ouverture de la porte. TEST: Dès lors qu’on sait comment s’y prendre, aucune raison de faillir. !!!! Virgules # Dialogues __[u]/virg(virgule_dialogue_après_nom_propre)__ ([A-ZÉÈ][\w-]+) (\w+-(?:moi|toi|l(?:ui|a|e(?:ur|s|))|nous|vous|je|tu|ils|elles)) @@0,$ <<- morphex(\1, ":M", ":G") and not morph(\2, ":N", False) and isStart() -1>> \1, # Dialogue ? Ajoutez une virgule pour mettre en incise la personne à qui s’adresse la réplique. |
︙ | ︙ | |||
1948 1949 1950 1951 1952 1953 1954 | TEST: Tu vas les {{donner}} Rachel. TEST: Il va la {{tuer}} Paul. TEST: Cependant les promesses n’engagent que ceux qui les croient, comme aimait à le dire Jacques Chirac. | | | | 1948 1949 1950 1951 1952 1953 1954 1955 1956 1957 1958 1959 1960 1961 1962 1963 1964 1965 1966 1967 1968 1969 1970 1971 1972 | TEST: Tu vas les {{donner}} Rachel. TEST: Il va la {{tuer}} Paul. TEST: Cependant les promesses n’engagent que ceux qui les croient, comme aimait à le dire Jacques Chirac. !!!! Apostrophe manquante (2) __<s>/typo(typo_apostrophe_manquante_audace2)__ ^ *([LDSNCJMTÇ] )[aeéiouhAEÉIOUHyîèêôûYÎÈÊÔÛ] @@* <<- option("mapos") -1>> =\1[:-1]+"’" # Il manque peut-être une apostrophe. TEST: __mapos__ {{L }}opinion des gens, elle s’en moquait. !!!! A / À: accentuation la préposition en début de phrase __<s]/typo(typo_À_début_phrase1)__ ^ *(A) (?!t[’-](?:ils?|elles?|on))({w_2}) @@*,$ <<- morphex(\2, ":[GNAY]", ":(?:Q|3s)|>(?:priori|post[eé]riori|contrario|capella|fortiori) ") or (\2 == "bientôt" and isEnd()) -1>> À # S’il s’agit de la préposition « à », il faut accentuer la majuscule. __<s>/typo(typo_À_début_phrase2)__ |
︙ | ︙ | |||
1980 1981 1982 1983 1984 1985 1986 | TEST: — {{A}} t’emmener loin de tout ceci. TEST: {{A}} bientôt, mon ami. TEST: A bientôt fini son devoir. TEST: A priori, nul ne peut y parvenir sans une aide extérieure. TEST: A devient notre meilleure chance d’y parvenir. | | | | 1980 1981 1982 1983 1984 1985 1986 1987 1988 1989 1990 1991 1992 1993 1994 1995 1996 1997 1998 1999 2000 2001 2002 2003 2004 2005 2006 2007 | TEST: — {{A}} t’emmener loin de tout ceci. TEST: {{A}} bientôt, mon ami. TEST: A bientôt fini son devoir. TEST: A priori, nul ne peut y parvenir sans une aide extérieure. TEST: A devient notre meilleure chance d’y parvenir. !!!! Accentuation des majuscules __[u]/maj(maj_accents)__ E(?:tat|glise|co(?:le|nomie)|quipe|lectri(?:cité|que)|gal(?:ité|ement)|té)s? @@1 <<- ->> ="É"+\0[1:] # Accentuez les majuscules. <<- ~>> ="É"+\0[1:] TEST: Le budget de l’{{Etat}}. !!! !!! !!! Désambiguïsation !!! !!! # mots grammaticaux __[i](d_dans)__ dans <<- not morph(word(-1), ":D.*:p|>[a-z]+ièmes ", False, False) =>> select(\0, ":R") |
︙ | ︙ | |||
2080 2081 2082 2083 2084 2085 2086 2087 2088 2089 2090 2091 2092 2093 2094 2095 2096 2097 | <<- =>> exclude(\1, ":V") __[i](d_par_non_verbe)__ par +({w_3}) @@$ <<- =>> exclude(\1, ":V[123]") __[i](d_très_non_verbe)__ très +({w_2}) @@$ <<- =>> exclude(\1, ":[123][sp]") # divers __[i](p_bac_plus_nombre)__ bac ?([+] ?\d\d?) @@$ <<- ~1>> * <<- =>> define(\0, [":N:e:i"]) TEST: il s’agit d’{{un}} {{anagramme}} TEST: nul ne sait qui arriva à ce pauvre Paul surpris par la pluie. TEST: elle finit par être très fière de son fils. | > > > | | | 2080 2081 2082 2083 2084 2085 2086 2087 2088 2089 2090 2091 2092 2093 2094 2095 2096 2097 2098 2099 2100 2101 2102 2103 2104 2105 2106 2107 2108 2109 2110 2111 2112 2113 2114 | <<- =>> exclude(\1, ":V") __[i](d_par_non_verbe)__ par +({w_3}) @@$ <<- =>> exclude(\1, ":V[123]") __[i](d_très_non_verbe)__ très +({w_2}) @@$ <<- =>> exclude(\1, ":[123][sp]") __[i](d_en_tant_que)__ en tant que +({w_2}) @@$ <<- =>> exclude(\1, ":[123][sp]") # divers __[i](p_bac_plus_nombre)__ bac ?([+] ?\d\d?) @@$ <<- ~1>> * <<- =>> define(\0, [":N:e:i"]) TEST: il s’agit d’{{un}} {{anagramme}} TEST: nul ne sait qui arriva à ce pauvre Paul surpris par la pluie. TEST: elle finit par être très fière de son fils. TEST: en tant que président du conseil !! !! !!!! OCR !! !! # ? __<s]/ocr(ocr_point_interrogation)__ [ ]7 <<- after0("^(?: +[A-ZÉÈÂ(]|…|[.][.]+| *$)") ->> " ?" # Erreur de numérisation ? |
︙ | ︙ | |||
2750 2751 2752 2753 2754 2755 2756 | TEST: __ocr__ trouve {{l£}} temps TEST: __ocr__ elle s’{{avance*}} sur le seuil TEST: __ocr__ par beaucoup d’argent ? {{{Il}} débouche le Jack Daniels !! !! | | | 2753 2754 2755 2756 2757 2758 2759 2760 2761 2762 2763 2764 2765 2766 2767 | TEST: __ocr__ trouve {{l£}} temps TEST: __ocr__ elle s’{{avance*}} sur le seuil TEST: __ocr__ par beaucoup d’argent ? {{{Il}} débouche le Jack Daniels !! !! !!!! Incohérences de base !! !! ### double négation __[i](double_négation)__ pas (personne|aucune?|jamais) @@4 <<- not morph(word(-1), ":D:[me]" ,False, False) ->> \1|pas, \1 |
︙ | ︙ | |||
2812 2813 2814 2815 2816 2817 2818 | TEST: je ne sais {{des}} {{ses}} choses. !! !! | | | 2815 2816 2817 2818 2819 2820 2821 2822 2823 2824 2825 2826 2827 2828 2829 | TEST: je ne sais {{des}} {{ses}} choses. !! !! !!!! Style !! !! #__bs__ Mr <<- ->> M. # M. est l’usage courant pour “Monsieur”. « Mr » est l’abréviation ancienne, française. # à / en __[i]/bs(bs_en_à_ville)__ |
︙ | ︙ | |||
2923 2924 2925 2926 2927 2928 2929 | #Se rappelle de l’amour #enjoindre à qqn de faire qqch !! !! | | | 2926 2927 2928 2929 2930 2931 2932 2933 2934 2935 2936 2937 2938 2939 2940 | #Se rappelle de l’amour #enjoindre à qqn de faire qqch !! !! !!!! Pléonasmes !! !! __[i]/pleo(pleo_abolir)__ (abol\w+) (?:absolument|entièrement|compl[èé]tement|totalement) @@0 <<- morph(\1, ">abolir ", False) ->> \1 # Pléonasme. __[i]/pleo(pleo_acculer)__ (accul\w+) aux? pieds? du mur @@0 <<- morph(\1, ">acculer ", False) ->> \1 # Pléonasme. __[i]/pleo(pleo_achever)__ (ach[eè]v\w+) (?:absolument|entièrement|compl[èé]tement|totalement) @@0 <<- morph(\1, ">achever ", False) ->> \1 # Pléonasme. __[i]/pleo(pleo_en_cours)__ actuellement en cours <<- not after(r" +de?\b") ->> en cours # Pléonasme. |
︙ | ︙ | |||
3099 3100 3101 3102 3103 3104 3105 | TEST: {{ta}} aimée ->> ton TEST: {{ma}} obligée ->> mon TEST: Ce couple va donner à la France sa très importante collection qui rejoindra le musée d’Orsay !! !! | | | | 3102 3103 3104 3105 3106 3107 3108 3109 3110 3111 3112 3113 3114 3115 3116 3117 3118 3119 3120 3121 3122 3123 | TEST: {{ta}} aimée ->> ton TEST: {{ma}} obligée ->> mon TEST: Ce couple va donner à la France sa très importante collection qui rejoindra le musée d’Orsay !! !! !!!! Confusions !! !! __[s>/conf(conf_ne_n)__ [nN]e n’ <<- ->> ne m’|n’ # Incohérence. Double négation. __[s>/conf(conf_pronoms1)__ [mtMT]e ([nmst](?:’|e )) @@$ <<- ->> \1 # Incohérence. __[s>/conf(conf_pronoms2)__ [sS]e ([mst](?:’|e )) @@$ <<- ->> \1 # Incohérence. __[s>/conf(conf_de_d)__ [dD][eu] d’(?![A-ZÉÂÔÈ]) <<- ->> d’ # Incohérence. TEST: Il {{ne n’}}arrive jamais à l’heure. TEST: Ça {{me te }}prend la tête, toutes ces complications vaines. TEST: il {{se m’}}est difficile d’y parvenir. TEST: Ça t’arrive {{de d’}}arriver à l’heure ? TEST: Les écrits de d’Alembert. |
︙ | ︙ | |||
3141 3142 3143 3144 3145 3146 3147 | TEST: toute chose pourrait finalement advenir indifféremment en n’importe quel point du globe __[i]/conf(conf_malgré_le_la_les_leur)__ malgré l(?:es? +|eurs? +|a +|’)({w_3}) @@$ <<- morphex(\1, ":", ":[GNAWMB]") -1>> =suggSimil(\1, ":[NA]", True) # Incohérence : après “malgré”, on devrait trouver un groupe nominal. | | | 3144 3145 3146 3147 3148 3149 3150 3151 3152 3153 3154 3155 3156 3157 3158 | TEST: toute chose pourrait finalement advenir indifféremment en n’importe quel point du globe __[i]/conf(conf_malgré_le_la_les_leur)__ malgré l(?:es? +|eurs? +|a +|’)({w_3}) @@$ <<- morphex(\1, ":", ":[GNAWMB]") -1>> =suggSimil(\1, ":[NA]", True) # Incohérence : après “malgré”, on devrait trouver un groupe nominal. TEST: malgré l’{{arrête}} qui interdisait le port TEST: malgré les deux précédentes erreurs __[i]/conf(conf_ma_ta_cette_verbe)__ ([mt]a|cette) +({w_2}) @@0,$ <<- morphex(\2, ":V.*:(?:Y|[123][sp])", ":[NAQ]") and \2[0].islower() -2>> =suggSimil(\2, ":[NA]:[fe]:[si]", True) # Incohérence avec « \1 » : « \2 » est un verbe. |
︙ | ︙ | |||
3334 3335 3336 3337 3338 3339 3340 | # Trop de faux positifs #__[i]/conf__ # très +(bien|\w+ent) +({w2}) @@w,$ # <<- morph(\1, ":W", False) and morphex(\2, ":[123][sp]", ":[GAQW]") -2>> _ # # Incohérence avec « très » : « \2 » n’est ni un adjectif, ni un participe passé, ni un adverbe. | | | 3337 3338 3339 3340 3341 3342 3343 3344 3345 3346 3347 3348 3349 3350 3351 | # Trop de faux positifs #__[i]/conf__ # très +(bien|\w+ent) +({w2}) @@w,$ # <<- morph(\1, ":W", False) and morphex(\2, ":[123][sp]", ":[GAQW]") -2>> _ # # Incohérence avec « très » : « \2 » n’est ni un adjectif, ni un participe passé, ni un adverbe. __[i]/conf(conf_très_verbe)__ très +(?!envie)({w_2}) @@$ <<- morphex(\1, ":(?:Y|[123][sp])", ":[AQW]") -1>> =suggSimil(\1, ":[AW]", True) # Incohérence avec « très » : « \1 » n’est ni un adjectif, ni un participe passé, ni un adverbe. <<- morph(\1, ">jeûne ", False) -1>> =\1.replace("û", "u") # Confusion. Le jeûne est une privation de nourriture.|https://fr.wiktionary.org/wiki/jeune TEST: Il est très {{cite}}. TEST: très {{suivit}} par ce détective |
︙ | ︙ | |||
3460 3461 3462 3463 3464 3465 3466 | (à les) ({w_2}) @@0,6 <<- morphex(\2, ":[NAQ]", ":(?:Y|Oo)") -1>> a les|aux # Confusion. Ou vous confondez “a” (préposition) avec “a” (avoir), ou vous devez employer “aux”. Exemple : Elle _a_ donné du travail _aux_ employés _à_ profusion. __[i]/conf(conf_a_à_au_aux)__ (à) aux?(?! (?:moins|plus)) @@0 <<- -1>> a # Confusion : “à” est une préposition. Pour le verbe avoir, écrivez : __[i]/conf(conf_a_à_base_cause)__ (a) (?:base|cause) d(?:es?|u|) @@0 <<- not before(r"(?i)\bce que?\b") -1>> à # Confusion. Utilisez la préposition « à ». __[i]/conf(conf_a_à_faim_peur_honte_soif)__ | | | | 3463 3464 3465 3466 3467 3468 3469 3470 3471 3472 3473 3474 3475 3476 3477 3478 3479 3480 3481 3482 | (à les) ({w_2}) @@0,6 <<- morphex(\2, ":[NAQ]", ":(?:Y|Oo)") -1>> a les|aux # Confusion. Ou vous confondez “a” (préposition) avec “a” (avoir), ou vous devez employer “aux”. Exemple : Elle _a_ donné du travail _aux_ employés _à_ profusion. __[i]/conf(conf_a_à_au_aux)__ (à) aux?(?! (?:moins|plus)) @@0 <<- -1>> a # Confusion : “à” est une préposition. Pour le verbe avoir, écrivez : __[i]/conf(conf_a_à_base_cause)__ (a) (?:base|cause) d(?:es?|u|) @@0 <<- not before(r"(?i)\bce que?\b") -1>> à # Confusion. Utilisez la préposition « à ». __[i]/conf(conf_a_à_faim_peur_honte_soif)__ (à) +(?:faim|peur|honte|soif) @@0 <<- -1>> a # Confusion : “à” est une préposition. Pour le verbe avoir, écrivez : __[i]/conf(conf_a_à_part)__ (a) part ({w1}) @@0,7 <<- morph(\2, ":(?:M[12]|D|Oo)") -1>> à # Confusion probable. __[i]/conf(conf_a_à_les_à)__ les (à)(?! côtés| peu près| prioris?| post[eé]rioris?| valoirs?| pics?| propos) @@4 <<- -1>> a # Confusion : “à” est une préposition. Pour le verbe avoir, écrivez : __[i]/conf(conf_a_à_avant_conj_prep)__ (à) +(?:a(?:fin|lors|près|uprès|ux?(?! moins| plus| mieux)|vant|vec)|au-de(?:dans|hors|là|sso?us|vant)|chez|d(?:ans|evant|ès|déjà|onc|urant)|lorsque?|malgré|par(?:ce|mi|)|p(?:endant|our|uisque)|que?|sur|tandis) @@0 <<- -1>> a # Confusion probable : “à” est une préposition. Écrivez “a” pour la conjugaison de “avoir”. __[i]/conf(conf_a_participe_passé_ou_vconj)__ (à) +({w_2}) @@0,$ <<- \2.islower() and \2 != "coté" >>> <<- morphex(\2, ":(?:V.......[_z][az].*:Q|V1.*:Ip:2p)", ":[MGWNY]") -1>> a # Confusion probable : “à” est une préposition. Pour le verbe “avoir”, écrivez : |
︙ | ︙ | |||
3496 3497 3498 3499 3500 3501 3502 | -1>> à # Confusion probable : “a” est la conjugaison du verbe “avoir”. Utilisez la préposition “à”.|http://fr.wiktionary.org/wiki/%C3%A0 __[s]/conf(conf_a_à_locutions4)__ (a) (?:[mts](?:es|on|a)|[nv]o(?:s|tre)|leurs?) (?:avis|c(?:onnaissance|ôtés)|c(?:œur|orps) défendant|dé(?:pens|triment)|disposition|encontre|égard|grand(?: désarroi|e (?:surprise|tristesse))|guise|insu|portée|risques et périls|sujet|tour) @@0 <<- not before(r"(?i)(?:\bque? |[ln]’$|(?<!-)\b(?:il|elle|on|y|n’en) +$)") -1>> à # Confusion probable : “a” est la conjugaison du verbe “avoir”. Utilisez la préposition “à”.|http://fr.wiktionary.org/wiki/%C3%A0 __[s]/conf(conf_a_à_infi)__ (?<![mtn]’)(a) (?:[mts](?:’(?:en +|y +|)|e +)|[nv]ous|)({w_2}(?:er|re|ir)) @@0,2 | | | 3499 3500 3501 3502 3503 3504 3505 3506 3507 3508 3509 3510 3511 3512 3513 | -1>> à # Confusion probable : “a” est la conjugaison du verbe “avoir”. Utilisez la préposition “à”.|http://fr.wiktionary.org/wiki/%C3%A0 __[s]/conf(conf_a_à_locutions4)__ (a) (?:[mts](?:es|on|a)|[nv]o(?:s|tre)|leurs?) (?:avis|c(?:onnaissance|ôtés)|c(?:œur|orps) défendant|dé(?:pens|triment)|disposition|encontre|égard|grand(?: désarroi|e (?:surprise|tristesse))|guise|insu|portée|risques et périls|sujet|tour) @@0 <<- not before(r"(?i)(?:\bque? |[ln]’$|(?<!-)\b(?:il|elle|on|y|n’en) +$)") -1>> à # Confusion probable : “a” est la conjugaison du verbe “avoir”. Utilisez la préposition “à”.|http://fr.wiktionary.org/wiki/%C3%A0 __[s]/conf(conf_a_à_infi)__ (?<![mtn]’)(a) (?:[mts](?:’(?:en +|y +|)|e +)|[nv]ous|)({w_2}(?:er|re|ir)) @@0,2 <<- morph(\2, ":Y", False) and not before(r"(?i)\bque? |(?:il|elle|on|n’(?:en|y)) +$") -1>> à # Confusion probable : “a” est la conjugaison du verbe “avoir”. Utilisez la préposition “à”.|http://fr.wiktionary.org/wiki/%C3%A0 __[s]/conf(conf_a_à_après_interrogative)__ \w+-(?:je|ils?|elles?|je|tu|on|vous|nous) (a)(?! priori| posteriori| fortiori) @@$ <<- -1>> à # Confusion probable : “a” est la conjugaison du verbe “avoir”. Utilisez la préposition “à”.|http://fr.wiktionary.org/wiki/%C3%A0 TEST: Cette femme {{à}} été confondue avec une autre. |
︙ | ︙ | |||
3987 3988 3989 3990 3991 3992 3993 | __[i]/conf(conf_golf)__ (champion(?:ne|nat|)s?|clubs?|joueu(?:r|se)s?|parcours|sacs?|balles?|terrains?|tournois?|compétitions?|passionnée?s?|écoles?|professeurs?|parties?|professionnel(?:le|)s?|amateure?s?|stages?|journées?|après-midi|matinées?|heures?|fédérations?|fans?) de (golfe) @@0,$ <<- -2>> golf # Confusion. Le golfe est une zone de mer ou d’un lac avancée dans les terres. Ex : Le golfe Persique. __[i]/conf(conf_golfe)__ (golf) (persique|d[ue] (?:Bengale|Botnie|Gascogne|Gabès|Guinée|Lion|Morbihan|Mexique|Porto|Saint-Laurent|Thaïlande|Tonkin|Tunis|Winam)|d’(?:Aden|Ajaccio|Alaska|Hammamet)) @@0,$ <<- -1>> golfe # Confusion. Le golf est un sport. __[i]/conf(conf_Golfe)__ | | | | 3990 3991 3992 3993 3994 3995 3996 3997 3998 3999 4000 4001 4002 4003 4004 4005 4006 4007 4008 4009 4010 4011 4012 4013 4014 | __[i]/conf(conf_golf)__ (champion(?:ne|nat|)s?|clubs?|joueu(?:r|se)s?|parcours|sacs?|balles?|terrains?|tournois?|compétitions?|passionnée?s?|écoles?|professeurs?|parties?|professionnel(?:le|)s?|amateure?s?|stages?|journées?|après-midi|matinées?|heures?|fédérations?|fans?) de (golfe) @@0,$ <<- -2>> golf # Confusion. Le golfe est une zone de mer ou d’un lac avancée dans les terres. Ex : Le golfe Persique. __[i]/conf(conf_golfe)__ (golf) (persique|d[ue] (?:Bengale|Botnie|Gascogne|Gabès|Guinée|Lion|Morbihan|Mexique|Porto|Saint-Laurent|Thaïlande|Tonkin|Tunis|Winam)|d’(?:Aden|Ajaccio|Alaska|Hammamet)) @@0,$ <<- -1>> golfe # Confusion. Le golf est un sport. __[i]/conf(conf_Golfe)__ (?:guerre|émir|monarchie)s? du (golf) @@$ <<- -1>> Golfe # Confusion. Le golf est un sport. TEST: Il a réalisé un documentaire sur la guerre du {{Golf}}. TEST: C’est un bon joueur de {{golfe}}. TEST: Le {{golf}} Persique est presque une mer fermée. TEST: J’ai fait de la voile dans le {{golf}} du Morbihan. TEST: Le {{golf}} d’Aden. # haut delà / au-delà __[i]/conf(conf_au_delà)__ haut[- ]del[àa] <<- ->> au-delà # Confusion. TEST: il va dans l’{{haut delà}} # héro / héros __[i]/conf(conf_héros)__ (?:le|quel|cet?|un|du|au) (héro) @@$ |
︙ | ︙ | |||
4165 4166 4167 4168 4169 4170 4171 | ^ *(?:il|ce) (peut-être) @@$ <<- -1>> peut être # Confusion probable : « peut-être » signifie « possiblement ». __[i]/conf(conf_cela_peut_être_adj)__ ^ *(?:cela|ceci) (peut-être) ({w_2}) @@w,$ <<- morph(\2, ":[AQ]", False) -1>> peut être # Confusion probable : « peut-être » signifie « possiblement ». __[i]/conf(conf_peu_à_peu)__ peu[xt]? a peu[xt]? | | | 4168 4169 4170 4171 4172 4173 4174 4175 4176 4177 4178 4179 4180 4181 4182 | ^ *(?:il|ce) (peut-être) @@$ <<- -1>> peut être # Confusion probable : « peut-être » signifie « possiblement ». __[i]/conf(conf_cela_peut_être_adj)__ ^ *(?:cela|ceci) (peut-être) ({w_2}) @@w,$ <<- morph(\2, ":[AQ]", False) -1>> peut être # Confusion probable : « peut-être » signifie « possiblement ». __[i]/conf(conf_peu_à_peu)__ peu[xt]? a peu[xt]? <<- ->> peu à peu # Confusion : « peu à peu » ou « petit à petit ». __[i]/conf(conf_peu_importe)__ (peu[tx]) importe(?:nt|) @@w <<- morph(word(-1), ":C", False, True) -1>> peu # Confusion : « \1 » est une conjugaison de “pouvoir”, utilisez “peu” pour dire “pas beaucoup”. __[i]/conf(conf_adv_de_peu)!6__ (?:très|trop|de|quelque|pour|à) (peu[tx]) @@$ <<- -1>> peu # Confusion : « \1 » est une conjugaison de “pouvoir”, utilisez “peu” pour dire “pas beaucoup”. __[i]/conf(conf_un_peu)!6__ |
︙ | ︙ | |||
4273 4274 4275 4276 4277 4278 4279 | TEST: être rassuré quant à l’avenir du continent européen TEST: il comprit trop tard qu’en elle naquit alors le doute qui l’éloigna de lui à jamais. TEST: Quand à mon tour je réalise l’imposture, c’est trop tard. # quand bien même __[i]/conf(conf_quand_bien_même)__ | | | 4276 4277 4278 4279 4280 4281 4282 4283 4284 4285 4286 4287 4288 4289 4290 | TEST: être rassuré quant à l’avenir du continent européen TEST: il comprit trop tard qu’en elle naquit alors le doute qui l’éloigna de lui à jamais. TEST: Quand à mon tour je réalise l’imposture, c’est trop tard. # quand bien même __[i]/conf(conf_quand_bien_même)__ combien même <<- not after("^ si ") ->> quand bien même # Locution conjonctive.|https://fr.wiktionary.org/wiki/quand_bien_m%C3%AAme TEST: J’irai, {{combien même}} vous seriez tous contre moi. TEST: Il partirait en guerre quand bien même devrait-il être tout seul. TEST: Elle veut savoir combien même si ça ne lui est d’aucune utilité immédiate. # qu’elle / quelle |
︙ | ︙ | |||
4398 4399 4400 4401 4402 4403 4404 | # tant / temps (1re partie) __[i]/conf(conf_en_temps_de)__ en (tant?) de? @@3 <<- not after("^[ ’](?:lieux|endroits|places|mondes|villes|pays|régions|cités)") -1>> temps # Confusion. Écrivez « en temps de » si vous évoquez une période de temps. __[i]/conf(conf_de_temps_en_temps)__ de tant? en tant? <<- ->> de temps en temps # Confusion. Écrivez « de temps en temps ». __[i]/conf(conf_un_temps_soit_peu)__ un (temps|tan) soi[tes]? peu @@3 <<- -1>> tant # Confusion. Écrivez « un tant soit peu ». | | | 4401 4402 4403 4404 4405 4406 4407 4408 4409 4410 4411 4412 4413 4414 4415 | # tant / temps (1re partie) __[i]/conf(conf_en_temps_de)__ en (tant?) de? @@3 <<- not after("^[ ’](?:lieux|endroits|places|mondes|villes|pays|régions|cités)") -1>> temps # Confusion. Écrivez « en temps de » si vous évoquez une période de temps. __[i]/conf(conf_de_temps_en_temps)__ de tant? en tant? <<- ->> de temps en temps # Confusion. Écrivez « de temps en temps ». __[i]/conf(conf_un_temps_soit_peu)__ un (temps|tan) soi[tes]? peu @@3 <<- -1>> tant # Confusion. Écrivez « un tant soit peu ». __[i]/conf(conf_tant_de)__ a(?:près|vec) (temps|tan) de? @@w <<- -1>> tant # Confusion.|http://fr.wiktionary.org/wiki/tant __[i]/conf(conf_à_temps_partiel)__ [àa] (tant?) (?:partiel|plein)s? @@2 <<- -1>> temps # Confusion. __[i]/conf(conf_en_même_temps)__ en mêmes? (tant?) @@$ <<- -1>> temps # Confusion. TEST: en {{tant}} de guerre, il faut savoir faire face et ne pas faiblir face à l’adversité. TEST: ils vont {{de tan en tan}} au restaurant TEST: un {{temps}} soit peu perdu dans cette affaire. TEST: après {{temps}} de souffrance, il faut savoir lâcher prise. |
︙ | ︙ | |||
4453 4454 4455 4456 4457 4458 4459 | # voire / voir __[i]/conf(conf_voir_voire)__ (voir) ({w_2}) @@0,$ <<- not re.search("^(?:grand|petit|rouge)$", \2) and morphex(\2, ":A", ":[NGM]") and not \2.istitle() and not before(r"(?i)\b[ndmts](?:e |’(?:en |y ))(?:pas |jamais |) *$") and not morph(word(-1), ":O[os]|>(?:[ndmts]e|falloir|pouvoir|savoir|de) ", False) | | | 4456 4457 4458 4459 4460 4461 4462 4463 4464 4465 4466 4467 4468 4469 4470 | # voire / voir __[i]/conf(conf_voir_voire)__ (voir) ({w_2}) @@0,$ <<- not re.search("^(?:grand|petit|rouge)$", \2) and morphex(\2, ":A", ":[NGM]") and not \2.istitle() and not before(r"(?i)\b[ndmts](?:e |’(?:en |y ))(?:pas |jamais |) *$") and not morph(word(-1), ":O[os]|>(?:[ndmts]e|falloir|pouvoir|savoir|de) ", False) -1>> voire # Confusion probable : “voir” est un verbe concernant la perception visuelle. Pour signifier “et même possiblement”, écrivez :|https://fr.wiktionary.org/wiki/voire __[i]/conf(conf_voire_voir)__ voire <<- morph(word(-1), ":Cs|>(?:ni|et|sans|pour|falloir|[pv]ouvoir|aller) ", True, False) ->> voir # Confusion probable : “voire” signifie “et même possiblement”. Pour le verbe, écrivez “voir”.|https://fr.wiktionary.org/wiki/voire |
︙ | ︙ | |||
4483 4484 4485 4486 4487 4488 4489 | TEST: car elles pénètrent dans les poumons voire le système sanguin. TEST: des enfants malades, qui préfèrent souvent voir Dark Vador que des vieux clowns un peu flippants. !! !! | | | 4486 4487 4488 4489 4490 4491 4492 4493 4494 4495 4496 4497 4498 4499 4500 | TEST: car elles pénètrent dans les poumons voire le système sanguin. TEST: des enfants malades, qui préfèrent souvent voir Dark Vador que des vieux clowns un peu flippants. !! !! !!!! Pronoms + incohérences !! !! __[i](p_m_enfin)__ m’enfin <<- ~>> * __[i]/conf(conf_j_y_en_qqch)__ (j’(?:en +|y +|))({w_1}) @@0,$ <<- morphex(\2, ":", ":(?:[123][sp]|O[onw])") |
︙ | ︙ | |||
4555 4556 4557 4558 4559 4560 4561 | TEST: C’que j’comprends, c’est qu’il y a des limites à ce qu’on peut supporter. TEST: la tentation pour certains médias de ne tout simplement pas rémunérer notre travail si celui-ci n’est finalement pas publié. TEST: Ne parfois pas être celui qui sabote l’ambiance. !! !! | | | 4558 4559 4560 4561 4562 4563 4564 4565 4566 4567 4568 4569 4570 4571 4572 | TEST: C’que j’comprends, c’est qu’il y a des limites à ce qu’on peut supporter. TEST: la tentation pour certains médias de ne tout simplement pas rémunérer notre travail si celui-ci n’est finalement pas publié. TEST: Ne parfois pas être celui qui sabote l’ambiance. !! !! !!!! Formes verbales sans sujet !! !! ## Incohérences avec formes verbales 1sg et 2sg sans sujet __[i](p_notre_père_qui_es_au_cieux)__ notre père (qui est? aux cieux) @@11 <<- ~1>> * __[i]/conj(conj_xxxai_sans_sujet)!3__ |
︙ | ︙ | |||
4634 4635 4636 4637 4638 4639 4640 | TEST: Mon épouse et moi-même avons toujours dit TEST: que vous ou moi ignorions à peu près tout du boson de Higgs n’a pas du tout le même sens !! !! | | | 4637 4638 4639 4640 4641 4642 4643 4644 4645 4646 4647 4648 4649 4650 4651 | TEST: Mon épouse et moi-même avons toujours dit TEST: que vous ou moi ignorions à peu près tout du boson de Higgs n’a pas du tout le même sens !! !! !!!! Locutions invariables !! !! ## plus que prévu / mois que prévu __[i]/sgpl(sgpl_que_prévu1)__ (plus|moins|autant) +que (prévu(?:es?|s)) @@0,$ <<- -2>> prévu # Invariable. Implicitement, \1 que ce qui était prévu. __[i]/sgpl(sgpl_que_prévu2)__ (plus|moins|aussi) +({w_2}) +que (prévu(?:es?|s)) @@0,w,$ <<- -3>> prévu # Invariable. Implicitement, \1 \2 que ce qui était prévu. __[i]/sgpl(sgpl_que_prévu3)__ (plus|moins|autant) +d(?:e |’)({w_2}) +que (prévu(?:es?|s)) @@0,w,$ <<- -3>> prévu # Invariable. Implicitement, \1 \2 que ce qui était prévu. |
︙ | ︙ | |||
4658 4659 4660 4661 4662 4663 4664 | TEST: il y en a moins que {{prévues}} ->> prévu TEST: comme {{convenus}} ->> convenu !! !! | | | 4661 4662 4663 4664 4665 4666 4667 4668 4669 4670 4671 4672 4673 4674 4675 | TEST: il y en a moins que {{prévues}} ->> prévu TEST: comme {{convenus}} ->> convenu !! !! !!!! Tout, tous, toute, toutes !! !! __[i](p_fais_les_tous)__ fai(?:tes|sons|s)-(?:les|[nv]ous) (tou(?:te|)s) @@$ <<- ~1>> * __[i](p_tout_débuts_petits)__ (tout) (?:débuts|petits) @@0 <<- before(r"\b(aux|[ldmtsc]es|[nv]os|leurs) +$") ~1>> * |
︙ | ︙ | |||
4761 4762 4763 4764 4765 4766 4767 | TEST: aux tout débuts, il y eut bien des erreurs TEST: comment les inégalités sociales impactent la santé des tout petits !! !! | | | 4764 4765 4766 4767 4768 4769 4770 4771 4772 4773 4774 4775 4776 4777 4778 | TEST: aux tout débuts, il y eut bien des erreurs TEST: comment les inégalités sociales impactent la santé des tout petits !! !! !!!! Adverbes de négation !! !! __[i]/neg(ne_manquant1)__ (?:je|tu|ils?|on|elles?) ([bcdfgjklmnpqrstvwxz][\w-]*) (pas|rien|jamais|guère) @@w,$ <<- morph(\1, ":[123][sp]", False) and not (re.search("(?i)^(?:jamais|rien)$", \2) and before(r"\b(?:que?|plus|moins) ")) -1>> ne \1 # Ne … \2 : il manque l’adverbe de négation. |
︙ | ︙ | |||
4795 4796 4797 4798 4799 4800 4801 | TEST: __neg__ On {{en}} a pas. TEST: __neg__ Il {{y}} a jamais d’eau. !! !! | | | 4798 4799 4800 4801 4802 4803 4804 4805 4806 4807 4808 4809 4810 4811 4812 | TEST: __neg__ On {{en}} a pas. TEST: __neg__ Il {{y}} a jamais d’eau. !! !! !!!! Infinitif !! !! __[i](p_ne_plus_pas_jamais_beaucoup_trop_rien)__ ne (?:pas|plus|jamais) +(beaucoup|trop|rien) @@$ <<- ~1>> * __[i]/infi(infi_ne)__ |
︙ | ︙ | |||
5126 5127 5128 5129 5130 5131 5132 | __[i](p_v_divers)__ v(?:aille que vaille|entre à terre|ers nulle part) <<- ~>> * TEST: ils vont et viennent, toujours {{cotes a cotes}}… TEST: Nous irons {{tours à tours}} chercher du bois. TEST: Ma thèse en 180 secondes. | | | 5129 5130 5131 5132 5133 5134 5135 5136 5137 5138 5139 5140 5141 5142 5143 | __[i](p_v_divers)__ v(?:aille que vaille|entre à terre|ers nulle part) <<- ~>> * TEST: ils vont et viennent, toujours {{cotes a cotes}}… TEST: Nous irons {{tours à tours}} chercher du bois. TEST: Ma thèse en 180 secondes. # je / tu / il / elles / nous / vous / ils / elles __[i](p_je_vous_en_prie)__ je (?:t’en|vous en) (?:prie|supplie) <<- ~>> * __[i](p_nous_vous_en_prions)__ nous (?:t’en|vous en) (?:prions|supplions) <<- ~>> * # mot-là __[i](p_qqch_tiret_là)__ ({w1})(-là) @@0,$ <<- morphex(\1, ":[NAQ]", ":G") ~2>> * # Après |
︙ | ︙ | |||
5152 5153 5154 5155 5156 5157 5158 | __[i](p_de_mes_yeux_vu)__ (de (?:[mts]es|[nv]os|leurs) yeux) vue?s? @@0 <<- ~1>> * __[i](p_en_loc_de1)__ en (arrière|attente|amont|aval|cas|cours|dehors|dépit|direction|faveur|guise|l’(?:absence|honneur)|lieu et place|plein milieu|présence|raison|sus|termes|vertu) d(?:es?|u) @@3 <<- ~1>> * __[i](p_en_loc_de2)__ en (flagrant délit|matière) de? @@3 <<- ~1>> * __[i](p_en_proie_à)__ (en proie) à @@0 <<- ~1>> * __[i](p_eu_égard_à)__ (eu égard) (?:à|aux?) @@0 <<- ~1>> * __[i](p_la_une_de)__ la (une) d(?:es?|u) @@3 <<- ~1>> _ __[i](p_le_long_de)__ le (long) d(?:es?|u) @@3 <<- ~1>> _ | | | 5155 5156 5157 5158 5159 5160 5161 5162 5163 5164 5165 5166 5167 5168 5169 | __[i](p_de_mes_yeux_vu)__ (de (?:[mts]es|[nv]os|leurs) yeux) vue?s? @@0 <<- ~1>> * __[i](p_en_loc_de1)__ en (arrière|attente|amont|aval|cas|cours|dehors|dépit|direction|faveur|guise|l’(?:absence|honneur)|lieu et place|plein milieu|présence|raison|sus|termes|vertu) d(?:es?|u) @@3 <<- ~1>> * __[i](p_en_loc_de2)__ en (flagrant délit|matière) de? @@3 <<- ~1>> * __[i](p_en_proie_à)__ (en proie) à @@0 <<- ~1>> * __[i](p_eu_égard_à)__ (eu égard) (?:à|aux?) @@0 <<- ~1>> * __[i](p_la_une_de)__ la (une) d(?:es?|u) @@3 <<- ~1>> _ __[i](p_le_long_de)__ le (long) d(?:es?|u) @@3 <<- ~1>> _ __[i](p_par_le_biais_de)__ par (le biais|l’entremise) d(?:es?|u) @@4 <<- ~1>> * __[i](p_pour_ou_contre)__ pour (ou contre) @@5 <<- ~1>> * __[i](p_rien_comparé_à)__ rien +(comparé) +à @@w <<- ~1>> * __[i](p_suite_à)__ (suite) (?:à|aux?) @@0 <<- not before(r"(?i)\b(?:une|la|cette|[mts]a|[nv]otre|de) +") ~1>> * __[i](p_vent_debout_contre)__ (vent debout) contre @@0 <<- ~1>> * # Déterminant + nombre __[i](p_dét_plur_nombre_nom)__ |
︙ | ︙ | |||
5289 5290 5291 5292 5293 5294 5295 | __[i](p_motion_de)__ motions? (de (?:blâme|censure|défiance)) @@$ <<- ~1>> * __[i](p_noix_de)__ noix (de (?:cajou|p[ée]can|coco|lavage|muscade|veau|macadamia)) @@$ <<- ~1>> * __[i](p_nu_comme_un_ver)__ nue?s? (comme (?:un ver|des vers)) @@$ <<- ~1>> * __[i](p_numéro)__ numéro (un|deux|trois|quatre|cinq|six|sept|huit|neuf|dix(?:-sept|-huit|-neuf|)|onze|douze|treize|quatorze|quinze|seize|vingt|trente|quarante|cinquante|soixante(?:-dix|)|quatre-vingt(?:-dix|)|cent|mille|\d+) @@$ <<- before(r"\b[lL]a +$") =>> define(\0, [">numéro :N:f:s"]) <<- ~1>> * | | | 5292 5293 5294 5295 5296 5297 5298 5299 5300 5301 5302 5303 5304 5305 5306 | __[i](p_motion_de)__ motions? (de (?:blâme|censure|défiance)) @@$ <<- ~1>> * __[i](p_noix_de)__ noix (de (?:cajou|p[ée]can|coco|lavage|muscade|veau|macadamia)) @@$ <<- ~1>> * __[i](p_nu_comme_un_ver)__ nue?s? (comme (?:un ver|des vers)) @@$ <<- ~1>> * __[i](p_numéro)__ numéro (un|deux|trois|quatre|cinq|six|sept|huit|neuf|dix(?:-sept|-huit|-neuf|)|onze|douze|treize|quatorze|quinze|seize|vingt|trente|quarante|cinquante|soixante(?:-dix|)|quatre-vingt(?:-dix|)|cent|mille|\d+) @@$ <<- before(r"\b[lL]a +$") =>> define(\0, [">numéro :N:f:s"]) <<- ~1>> * __[i](p_oiseau_de)__ oiseaux? (de (?:malheur|nuit|proie|mauvais augure)) @@$ <<- ~1>> * __[i](p_onde_de_choc)__ ondes? (de choc) @@$ <<- ~1>> * __[i](p_orge)__ orge (perlé|mondé|carré) @@$ <<- ~1>> * __[i](p_noire_comme)__ noire?s? (comme (?:la nuit|une nuit sans lune)) @@$ <<- ~1>> * __[i](p_partie_de_jambe_en_l_air)__ parties? (de jambes en l’air) @@$ <<- ~1>> * __[i](p_pièce_de)__ pièces? (de (?:théâtre|monnaie|\d+ (?:euros?|centimes?|cents?|livres? sterling|shillings?))) @@$ <<- ~1>> * __[i](p_pomme_de)__ pommes? (de (?:discorde|terre|reinette|pin)|d’(?:Adam|api|amour|ambre|eau|or)) @@$ <<- ~1>> * |
︙ | ︙ | |||
5424 5425 5426 5427 5428 5429 5430 | __[i](p_60_qqch)__ soixante-(?:d(?:eux|ix|ouze)|tr(?:ois|eize)|quat(?:re|orze)|cinq|six|sept|huit|neuf|quinze|seize| et (?:un|onze)|-et-(?:un|onze)) <<- ~>> soixante __[i](p_80_qqch)__ quatre-vingt-(?:un|d(?:eux|ix|ouze)|tr(?:ois|eize)|quat(?:re|orze)|cinq|six|sept|huit|neuf|onze|quinze|seize) <<- ~>> quatre-vingts __[i](p_qqch_100)__ | | | | 5427 5428 5429 5430 5431 5432 5433 5434 5435 5436 5437 5438 5439 5440 5441 5442 5443 5444 5445 5446 5447 5448 | __[i](p_60_qqch)__ soixante-(?:d(?:eux|ix|ouze)|tr(?:ois|eize)|quat(?:re|orze)|cinq|six|sept|huit|neuf|quinze|seize| et (?:un|onze)|-et-(?:un|onze)) <<- ~>> soixante __[i](p_80_qqch)__ quatre-vingt-(?:un|d(?:eux|ix|ouze)|tr(?:ois|eize)|quat(?:re|orze)|cinq|six|sept|huit|neuf|onze|quinze|seize) <<- ~>> quatre-vingts __[i](p_qqch_100)__ ((?:d(?:eux|ouze)|tr(?:ois|eize)|quat(?:re|orze)|cinq|s(?:ix|seize)|sept|huit|neuf|onze|quinze) cents) +({w_2}) @@0,$ <<- morphex(\2, ":[NAQ].*:[pi]", ":(?:G|3p)") ~1>> cent __[i](p_qqch_1000)__ (?:deux|trois|quatre|cinq|six|sept|huit|neuf|cent) (?:cent |)mille <<- ~>> mille __[i](p_det_plur_nombre_nom)__ (?:le(?:ur|)s|des|ses|ces|mes|tes|nos|vos) +((?:quelque +|)(?:d(?:eux|ix|ouze)|tr(?:ois|eize|ente)|qua(?:t(?:re(?:-vingts|)|orze)|rante)|cinq(?:uante|)|s(?:ix|eize|oixante)|sept|huit|neuf|onze|quinze|vingt|cent|mille|\d+)) +({w_2}) @@w,$ <<- morphex(\2, ":[NAQ].*:[pi]", ":(?:G|3p)") ~1>> * __[i](p_une_heure)__ (?:à |d(?:e +|’))une +heure(?: (?:d(?:eu|i)x|tr(?:ois|eize|ente)|qu(?:a(?:t(?:re|orze)|rante)|inze)|cinq(?:uante|)|s(?:ix|ept|eize)|huit|neuf|onze|douze|vingt|décente|(?:très |)tardive)|) <<- ~>> * __[i](p_nombre_heure)__ (?:à|de) (?:d(?:eu|i)x|tr(?:ois|eize)|qu(?:at(?:re|orze)|inze)|cinq|s(?:ix|ept|eize)|huit|neuf|onze|douze|vingt) +heures(?: (?:d(?:eu|i)x|tr(?:ois|eize|ente)|qu(?:a(?:t(?:re|orze)|rante)|inze)|cinq(?:uante|)|s(?:ix|ept|eize)|huit|neuf|onze|douze|vingt)|) <<- ~>> * |
︙ | ︙ | |||
5582 5583 5584 5585 5586 5587 5588 | le ({w_2}) (le plus) ({w_2}) @@3,w,$ <<- morphex(\1, ":[NAQ].*:[me]", ":G") and morph(\3, ":[AQ].*:[me]", False) ~2>> * __[i](p_la_xxx_la_plus_adj)__ la ({w_2}) (la plus) ({w_2}) @@3,w,$ <<- morphex(\1, ":[NAQ].*:[fe]", ":G") and morph(\3, ":[AQ].*:[fe]", False) ~2>> * __[i](p_les_xxx_les_plus_adj)__ (?:[lmts]es|nos|vos|leurs) ({w_2}) (les plus) ({w_2}) @@w,w,$ | | | 5585 5586 5587 5588 5589 5590 5591 5592 5593 5594 5595 5596 5597 5598 5599 | le ({w_2}) (le plus) ({w_2}) @@3,w,$ <<- morphex(\1, ":[NAQ].*:[me]", ":G") and morph(\3, ":[AQ].*:[me]", False) ~2>> * __[i](p_la_xxx_la_plus_adj)__ la ({w_2}) (la plus) ({w_2}) @@3,w,$ <<- morphex(\1, ":[NAQ].*:[fe]", ":G") and morph(\3, ":[AQ].*:[fe]", False) ~2>> * __[i](p_les_xxx_les_plus_adj)__ (?:[lmts]es|nos|vos|leurs) ({w_2}) (les plus) ({w_2}) @@w,w,$ <<- morphex(\1, ":[NAQ].*:[pi]", ":[123][sp]") and morph(\3, ":A.*:[pi]", False) ~2>> * __[i](p_le_plus_le_moins)__ (le (?:plus|moins)) ({w_2}) @@0,$ <<- morph(\2, ":A", ":([me]:[si]|G)") and morph(word(-1), ">(?:avoir|être) :V", False) ~1>> * __[i](p_bien_sûr)__ bien sûr(?! de) <<- ~>> * __[i](p_bien_mal_fort_adj_adv)__ (bien|mal|(?:fort|super) (?:bien|mal)|fort) +({w_2}) @@0,$ |
︙ | ︙ | |||
5895 5896 5897 5898 5899 5900 5901 | # # //////////////////////////////////////// RÈGLES DE CONTRÔLE //////////////////////////////////////// # | | | | | 5898 5899 5900 5901 5902 5903 5904 5905 5906 5907 5908 5909 5910 5911 5912 5913 5914 5915 5916 5917 5918 5919 5920 5921 5922 5923 5924 5925 5926 5927 5928 5929 | # # //////////////////////////////////////// RÈGLES DE CONTRÔLE //////////////////////////////////////// # !!!! Redondances dans la phrase __[i]/redon2(redondances_phrase)__ ({w_4})[ ,].* (\1) @@0,$ <<- not morph(\1, ":(?:G|V0)|>même ", False) -2>> _ # Dans cette phrase, répétition de « \1 » (à gauche). <<- __also__ -1>> _ # Dans cette phrase, répétition de « \1 » (à droite). TEST: __redon2__ Quelle {{imposture}}, c’est d’un ennui, c’est une {{imposture}}. TEST: __redon2__ ils sont là côte à côte. TEST: __redon2__ Tu avances petit à petit, et tu réussis. TEST: __redon2__ De loin en loin, elle passe. TEST: __redon2__ Les mêmes causes produisent/produisant les mêmes effets. (répétition) !! !! !!!! Groupe nominal (1) !! !! #### 1 mot ## Usage impropre |
︙ | ︙ | |||
6492 6493 6494 6495 6496 6497 6498 | TEST: ils trouvent ça de plus en plus {{idiots}} ->> idiot !! !! | | | 6495 6496 6497 6498 6499 6500 6501 6502 6503 6504 6505 6506 6507 6508 6509 | TEST: ils trouvent ça de plus en plus {{idiots}} ->> idiot !! !! !!!! Groupe nominal (2) !! !! ## Sans article __[i]/gn(gn_2m_accord)__ ^ *({w_2}) +({w_2}) @@*,$ |
︙ | ︙ | |||
6597 6598 6599 6600 6601 6602 6603 | and not apposition(\1, \2) and not morph(word(-1), ":[NAQ]", False, False) -2>> =switchGender(@, False) # Accord de genre erroné entre « \1 » et « \2 ». <<- __also__ and hasFemForm(\1) -1>> =switchGender(@) # Accord de genre erroné avec « \2 ». <<- not re.search("(?i)^air$", \1) and not \2.startswith("seul") and morph(\1, ":[si]") and morph(\2, ":[NAQ].*:p") and not apposition(\1, \2) and not morph(word(-1), ":[NAQ]", False, False) -2>> =suggSing(@) # Accord de nombre erroné avec « \1 » : « \2 » devrait être au singulier. | | | 6600 6601 6602 6603 6604 6605 6606 6607 6608 6609 6610 6611 6612 6613 6614 | and not apposition(\1, \2) and not morph(word(-1), ":[NAQ]", False, False) -2>> =switchGender(@, False) # Accord de genre erroné entre « \1 » et « \2 ». <<- __also__ and hasFemForm(\1) -1>> =switchGender(@) # Accord de genre erroné avec « \2 ». <<- not re.search("(?i)^air$", \1) and not \2.startswith("seul") and morph(\1, ":[si]") and morph(\2, ":[NAQ].*:p") and not apposition(\1, \2) and not morph(word(-1), ":[NAQ]", False, False) -2>> =suggSing(@) # Accord de nombre erroné avec « \1 » : « \2 » devrait être au singulier. TEST: L’{{amande}} {{amer}} TEST: l’{{amicale}} {{animal}} TEST: du chien et de l’{{excellente}} {{collier}} qu’il avait autour du cou. TEST: du chien et de l’{{étonnante}} {{collier}} qu’il avait autour du cou. ## un / une |
︙ | ︙ | |||
6672 6673 6674 6675 6676 6677 6678 | __[i]/gn(gn_2m_le)__ (?<!et |ou )(le) +({w_2}) +({w_2}) @@0,w,$ <<- morph(\1, ":D", False) >>> <<- not \3.startswith("seul") and morphex(\2, ":[NAQ].*:[me]", ":(?:B|G|V0)") and morph(\3, ":[NAQ].*:f") and not apposition(\2, \3) and not before(r"\b(?:et|ou|de) +$") -3>> =suggMasSing(@, True) # Accord de genre erroné : « \2 » est masculin, « \3 » est féminin. | | | | | | | | | 6675 6676 6677 6678 6679 6680 6681 6682 6683 6684 6685 6686 6687 6688 6689 6690 6691 6692 6693 6694 6695 6696 6697 6698 6699 6700 6701 6702 6703 6704 6705 6706 6707 6708 6709 6710 6711 6712 6713 6714 6715 6716 6717 6718 6719 6720 6721 6722 6723 6724 6725 6726 6727 6728 6729 6730 6731 6732 6733 6734 6735 6736 6737 6738 6739 6740 6741 6742 6743 6744 6745 6746 6747 6748 6749 6750 6751 6752 6753 6754 6755 6756 6757 6758 6759 6760 6761 6762 6763 6764 6765 6766 6767 6768 | __[i]/gn(gn_2m_le)__ (?<!et |ou )(le) +({w_2}) +({w_2}) @@0,w,$ <<- morph(\1, ":D", False) >>> <<- not \3.startswith("seul") and morphex(\2, ":[NAQ].*:[me]", ":(?:B|G|V0)") and morph(\3, ":[NAQ].*:f") and not apposition(\2, \3) and not before(r"\b(?:et|ou|de) +$") -3>> =suggMasSing(@, True) # Accord de genre erroné : « \2 » est masculin, « \3 » est féminin. <<- not \3.startswith("seul") and morphex(\2, ":[NAQ].*:[si]", ":G") and morphex(\3, ":[NAQ].*:p", ":[GWsi]") and not apposition(\2, \3) and not before(r"\b(?:et|ou|de) +$") -3>> =suggMasSing(@) # Accord de nombre erroné avec « \2 » : « \3 » devrait être au singulier. __[i]/gn(gn_2m_le_après_et_ou_de)__ (?:et|ou) +(le) +({w_2}) +({w_2}) @@w,w,$ <<- morph(\1, ":D", False) >>> <<- not \3.startswith("seul") and morphex(\2, ":[NAQ].*:[me]", ":(?:B|G|V0|f)") and morph(\3, ":[NAQ].*:f") and not apposition(\2, \3) and not morph(word(-1), ":[NAQ]|>(?:et|ou) ", False, False) -3>> =suggMasSing(@, True) # Accord de genre erroné : « \2 » est masculin, « \3 » est féminin. <<- not \3.startswith("seul") and morphex(\2, ":[NAQ].*:[si]", ":G") and morphex(\3, ":[NAQ].*:p", ":[GWsi]") and not apposition(\2, \3) and not morph(word(-1), ":[NAQ]|>(?:et|ou) ", False, False) -3>> =suggMasSing(@) # Accord de nombre erroné avec « \2 » : « \3 » devrait être au singulier. TEST: le test très {{cons}} qu’on a passé hier. TEST: c’était le chien {{perdue}} des voisins. TEST: viens vite ou le pari {{imperdables}} sera moins facile… __[i]/gn(gn_2m_det_mas_sing)__ (?<!et |ou |de )(?:cet?|quel|au|ledit) +({w_2}) +({w_2}) @@w,$ <<- not \2.startswith("seul") and morphex(\1, ":[NAQ].*:[me]", ":(?:B|G|V0)") and morph(\2, ":[NAQ].*:f") and not apposition(\1, \2) and not before(r"\b(?:et|ou|de) +$") -2>> =suggMasSing(@, True) # Accord de genre erroné : « \1 » est masculin, « \2 » est féminin. <<- not \2.startswith("seul") and morphex(\1, ":[NAQ].*:[si]", ":G") and morphex(\2, ":[NAQ].*:p", ":[GWsi]") and not apposition(\1, \2) and not before(r"\b(?:et|ou|de) +$") -2>> =suggMasSing(@) # Accord de nombre erroné avec « \1 » : « \2 » devrait être au singulier. __[i]/gn(gn_2m_det_mas_sing_après_et_ou_de)__ (?:et|ou|de) +(?:cet?|quel|au|ledit) +({w_2}) +({w_2}) @@w,$ <<- not \2.startswith("seul") and morphex(\1, ":[NAQ].*:[me]", ":(?:B|G|V0|f)") and morph(\2, ":[NAQ].*:f") and not apposition(\1, \2) and not morph(word(-1), ":[NAQ]|>(?:et|ou) ", False, False) -2>> =suggMasSing(@, True) # Accord de genre erroné : « \1 » est masculin, « \2 » est féminin. <<- not \2.startswith("seul") and morphex(\1, ":[NAQ].*:[si]", ":G") and morphex(\2, ":[NAQ].*:p", ":[GWsi]") and not apposition(\1, \2) and not morph(word(-1), ":[NAQ]|>(?:et|ou) ", False, False) -2>> =suggMasSing(@) # Accord de nombre erroné avec « \1 » : « \2 » devrait être au singulier. TEST: cet outil {{terribles}} qu’il a dans les mains TEST: J’aimerais connaître de quel parti {{gauchistes}} on parle. __[i]/gn(gn_2m_mon_ton_son)__ (?<!et |ou |de )[mts]on +({w_2}) +({w_2}) @@w,$ <<- not \2.startswith("seul") and morphex(\1, ":[NAQ].*:m", ":(?:B|G|e|V0|f)") and morph(\2, ":[NAQ].*:f") and not apposition(\1, \2) and not before(r"\b(?:et|ou|de) +$") -2>> =suggMasSing(@, True) # Accord de genre erroné : « \1 » est masculin, « \2 » est féminin. <<- not \2.startswith("seul") and morphex(\1, ":[NAQ].*:[si]", ":G") and morphex(\2, ":[NAQ].*:p", ":[GWsi]") and not apposition(\1, \2) and not before(r"\b(?:et|ou|de) +$") -2>> =suggMasSing(@) # Accord de nombre erroné avec « \1 » : « \2 » devrait être au singulier. __[i]/gn(gn_2m_mon_ton_son_après_et_ou_de)__ (?:et|ou|de) +[mts]on +({w_2}) +({w_2}) @@w,$ <<- not \2.startswith("seul") and morphex(\1, ":[NAQ].*:m", ":(?:B|G|e|V0|f)") and morph(\2, ":[NAQ].*:f") and not apposition(\1, \2) and not morph(word(-1), ":[NAQ]|>(?:et|ou) ", False, False) -2>> =suggMasSing(@, True) # Accord de genre erroné : « \1 » est masculin, « \2 » est féminin. <<- not \2.startswith("seul") and morphex(\1, ":[NAQ].*:[si]", ":G") and morphex(\2, ":[NAQ].*:p", ":[GWsi]") and not apposition(\1, \2) and not morph(word(-1), ":[NAQ]|>(?:et|ou) ", False, False) -2>> =suggMasSing(@) # Accord de nombre erroné avec « \1 » : « \2 » devrait être au singulier. TEST: il brandissait avec fougue son drapeau {{déchirés}} TEST: comment osez-vous médire de mon héritage {{glorieuse}} __[i]/gn(gn_2m_la)__ (?<!et |ou |de )(la) +({w_2}) +({w_2}) @@0,w,$ <<- morph(\1, ":D", False) >>> <<- \2 != "fois" and not \3.startswith("seul") and morphex(\2, ":[NAQ].*:[fe]", ":(?:B|G|V0)") and morph(\3, ":[NAQ].*:m") and not apposition(\2, \3) and not before(r"\b(?:et|ou|de) +$") -3>> =suggFemSing(@, True) # Accord de genre erroné : « \2 » est féminin, « \3 » est masculin. <<- not \3.startswith("seul") and morphex(\2, ":[NAQ].*:[si]", ":G") and morphex(\3, ":[NAQ].*:p", ":[GWsi]") and not apposition(\2, \3) and not before(r"\b(?:et|ou|de) +$") -3>> =suggFemSing(@) # Accord de nombre erroné avec « \2 » : « \3 » devrait être au singulier. __[i]/gn(gn_2m_la_après_et_ou_de)__ (?:et|ou|de) +(la) +({w_2}) +({w_2}) @@w,w,$ <<- morph(\1, ":D", False) >>> <<- \2 != "fois" and not \3.startswith("seul") |
︙ | ︙ | |||
7009 7010 7011 7012 7013 7014 7015 | TEST: Les couleurs rouge, jaune et verte ne doivent pas être utilisées TEST: des passeports américain, canadien, néerlandais, allemand et britannique. !! !! | | | 7012 7013 7014 7015 7016 7017 7018 7019 7020 7021 7022 7023 7024 7025 7026 | TEST: Les couleurs rouge, jaune et verte ne doivent pas être utilisées TEST: des passeports américain, canadien, néerlandais, allemand et britannique. !! !! !!!! Groupe nominal (3) !! !! ## nombre __[i]/gn(gn_3m)__ ^ *({w_2}) +({w_2}) +({w_3}) @@*,w,$ |
︙ | ︙ | |||
7063 7064 7065 7066 7067 7068 7069 | TEST: ces petites sottes {{déjantée}} !! !! | | | 7066 7067 7068 7069 7070 7071 7072 7073 7074 7075 7076 7077 7078 7079 7080 | TEST: ces petites sottes {{déjantée}} !! !! !!!! Groupe nominal: Accords avec de / des / du !! !! __[i]/gn(gn_devinette1)__ (?:[lmts]a|une|cette) +{w_2} +d(?:e (?:[lmts]a|cette)|’une) +(?!des )({w_2}) +({w_2}) @@w,$ <<- morphex(\2, ":[NAQ].*:(?:m|f:p)", ":(?:G|P|[fe]:[is]|V0|3[sp])") and not apposition(\1, \2) -2>> =suggFemSing(@, True) # Accord erroné : « \2 » devrait être au féminin singulier. |
︙ | ︙ | |||
7125 7126 7127 7128 7129 7130 7131 | TEST: {{de telles sorte}} !! !! | | | 7128 7129 7130 7131 7132 7133 7134 7135 7136 7137 7138 7139 7140 7141 7142 | TEST: {{de telles sorte}} !! !! !!!! Singuliers & Pluriels !! !! #### Prépositions # Similaires à prépositions : http://www.synapse-fr.com/manuels/PP_ATTENDU.htm # attendu, compris, non-compris, y compris, entendu, excepté, ôté, ouï, passé, supposé, vu |
︙ | ︙ | |||
7523 7524 7525 7526 7527 7528 7529 | TEST: Son point de {{vus}} prévaudra toujours, faites-vous à cette idée ou dégagez. TEST: de mon point de {{vues}} !! !! | | | 7526 7527 7528 7529 7530 7531 7532 7533 7534 7535 7536 7537 7538 7539 7540 | TEST: Son point de {{vus}} prévaudra toujours, faites-vous à cette idée ou dégagez. TEST: de mon point de {{vues}} !! !! !!!! Confusions !! !! # à / a __[i]/conf(conf_suite_à)__ suite (a) ({w1}) @@w,$ <<- morph(\2, ":D|>[ld] ", False) and isStart() -1>> à # Confusion : “a” est une forme conjuguée du verbe “avoir”. Pour la préposition, écrivez “à”. |
︙ | ︙ | |||
7580 7581 7582 7583 7584 7585 7586 | __[i]/conf(conf_âcre)__ acres? <<- morph(word(-1), ">(?:être|go[ûu]t|humeur|odeur|parole|parfum|remarque|reproche|réponse|saveur|senteur|sensation|vin)", False, False) ->> =\0.replace("a", "â").replace("A", "Â") # Confusion probable : “acre” est une unité de surface agraire. Pour l’adjectif signifiant “irritant”, écrivez :|https://fr.wiktionary.org/wiki/%C3%A2cre | | | 7583 7584 7585 7586 7587 7588 7589 7590 7591 7592 7593 7594 7595 7596 7597 | __[i]/conf(conf_âcre)__ acres? <<- morph(word(-1), ">(?:être|go[ûu]t|humeur|odeur|parole|parfum|remarque|reproche|réponse|saveur|senteur|sensation|vin)", False, False) ->> =\0.replace("a", "â").replace("A", "Â") # Confusion probable : “acre” est une unité de surface agraire. Pour l’adjectif signifiant “irritant”, écrivez :|https://fr.wiktionary.org/wiki/%C3%A2cre TEST: Il avait ce goût {{acre}} dans la bouche qui ne passait pas. # accro / accroc __[i]/conf(conf_être_accro)__ ({etre}|dev\w+|sembl\w+|par\w+|rend\w+) +(accrocs?) @@0,$ <<- morph(\1, ">(?:être|devenir|para[îi]tre|rendre|sembler) ", False) |
︙ | ︙ | |||
7648 7649 7650 7651 7652 7653 7654 | TEST: Nous avons déconné, nous avons été mis à {{l’amande}}. TEST: Ces gens-là ne feront jamais {{amande honorable}}. # annales / anal-e-s __[i]/conf(conf_annales1)__ (anale?s?) (?:littéraires?|politiques?|ecclésiastiques?|du (?:bac(?:calauréat|)|brevet)|de (?:physique|chimie|mathématiques|biologie|géographie)|d’histoire) @@0 | | | 7651 7652 7653 7654 7655 7656 7657 7658 7659 7660 7661 7662 7663 7664 7665 | TEST: Nous avons déconné, nous avons été mis à {{l’amande}}. TEST: Ces gens-là ne feront jamais {{amande honorable}}. # annales / anal-e-s __[i]/conf(conf_annales1)__ (anale?s?) (?:littéraires?|politiques?|ecclésiastiques?|du (?:bac(?:calauréat|)|brevet)|de (?:physique|chimie|mathématiques|biologie|géographie)|d’histoire) @@0 <<- -1>> annales # Confusion : “\1” est l’adjectif relatif à l’anus.|http://fr.wiktionary.org/wiki/annales __[i]/conf(conf_annales2)__ [lcdmts]es (anale?s?) @@4 <<- -1>> annales # Confusion : “\1” est l’adjectif relatif à l’anus.|http://fr.wiktionary.org/wiki/annales TEST: des {{anales}} littéraires TEST: il a bachoté les {{anales}}. |
︙ | ︙ | |||
8078 8079 8080 8081 8082 8083 8084 | TEST: Les pays ibériques et scandinaves ont signé le traité. TEST: Les gouvernements espagnol et mexicain ont signé le traité. TEST: Béatrice Dalle et Claude __[i]/conf(conf_où_est)__ où (et) +({w_1}) @@w,$ | | | 8081 8082 8083 8084 8085 8086 8087 8088 8089 8090 8091 8092 8093 8094 8095 | TEST: Les pays ibériques et scandinaves ont signé le traité. TEST: Les gouvernements espagnol et mexicain ont signé le traité. TEST: Béatrice Dalle et Claude __[i]/conf(conf_où_est)__ où (et) +({w_1}) @@w,$ <<- morphex(\2, ":D", ":R|>(?:quand|pourquoi)") or (\2 == "l" and after("^’")) -1>> est # Confusion probable : “et” est une conjonction de coordination. Pour le verbe être à la 3ᵉ personne du singulier, écrivez : TEST: où {{et}} cet ennemi ? TEST: où {{et}} l’homme qui est passé ce matin ? TEST: Je veux savoir où et quand, où et pouquoi. TEST: où et avec qui ? |
︙ | ︙ | |||
8121 8122 8123 8124 8125 8126 8127 | TEST: j’ai vu un {{flamand}} rose. # foi / fois __[i]/conf(conf_bonne_mauvaise_foi)__ (mauvaise|bonne) (fois) @@0,$ | | | 8124 8125 8126 8127 8128 8129 8130 8131 8132 8133 8134 8135 8136 8137 8138 | TEST: j’ai vu un {{flamand}} rose. # foi / fois __[i]/conf(conf_bonne_mauvaise_foi)__ (mauvaise|bonne) (fois) @@0,$ <<- not ( \1 == "bonne" and before(r"(?i)\bune +$") and after("(?i)^ +pour toute") ) -2>> foi # Confusion probable.|http://fr.wiktionary.org/wiki/foi __[i]/conf(conf_faire_perdre_donner_foi)__ ((?:f[aieî]|perd|donn|[ae])\w*) (fois) @@0,$ <<- morph(\1, ">(?:faire|perdre|donner|avoir) ", False) -2>> foi # Confusion probable.|http://fr.wiktionary.org/wiki/foi TEST: C’est une personne de bonne {{fois}}. TEST: Mais il a perdu {{fois}} en l’avenir. |
︙ | ︙ | |||
8670 8671 8672 8673 8674 8675 8676 | # <<- not morph(word(-1), ":D", False, False) # ->> quelquefois # # Confusion probable : « quelquefois » est un adverbe qui signifie « parfois » ; ne pas confondre avec les quelques fois qu’il est advenu ou qu’il adviendra quelque chose.|http://bdl.oqlf.gouv.qc.ca/bdl/gabarit_bdl.asp?id=4334 __[i]/conf(conf_quelquefois_quelques_fois)__ qu(?: elles? que fois?|elles? que fois?|elque fois) <<- ->> quelquefois|quelques fois | | | 8673 8674 8675 8676 8677 8678 8679 8680 8681 8682 8683 8684 8685 8686 8687 | # <<- not morph(word(-1), ":D", False, False) # ->> quelquefois # # Confusion probable : « quelquefois » est un adverbe qui signifie « parfois » ; ne pas confondre avec les quelques fois qu’il est advenu ou qu’il adviendra quelque chose.|http://bdl.oqlf.gouv.qc.ca/bdl/gabarit_bdl.asp?id=4334 __[i]/conf(conf_quelquefois_quelques_fois)__ qu(?: elles? que fois?|elles? que fois?|elque fois) <<- ->> quelquefois|quelques fois # Confusion. Utilisez « quelquefois » si vous voulez dire « parfois ». Utilisez « quelques fois » pour évoquer ce qui est advenu ou adviendra plusieurs fois.|http://bdl.oqlf.gouv.qc.ca/bdl/gabarit_bdl.asp?id=4334 TEST: {{Quelles que fois}}, on y comprend plus rien. TEST: {{Qu’elle que fois}}, on y comprend plus rien. TEST: Il y va {{quelque fois}} par an. # quoique / quoi que |
︙ | ︙ | |||
8787 8788 8789 8790 8791 8792 8793 | __[i]/conf(conf_prep_soi)__ (?:chez|don de|sur|avec|pour) (soit) @@$ <<- not after(" soit ") -1>> soi # Confusion probable. __[i]/conf(conf_en_soi)__ (?<!’)en (soit) @@3 <<- morph(word(1), ":[GY]", True, True) and not before("(?i)quel(?:s|les?|) qu $|on $|il $") and not after(" soit ") -1>> soi # Confusion probable. __[i]/conf(conf_quel_que_soit2)__ | | | 8790 8791 8792 8793 8794 8795 8796 8797 8798 8799 8800 8801 8802 8803 8804 | __[i]/conf(conf_prep_soi)__ (?:chez|don de|sur|avec|pour) (soit) @@$ <<- not after(" soit ") -1>> soi # Confusion probable. __[i]/conf(conf_en_soi)__ (?<!’)en (soit) @@3 <<- morph(word(1), ":[GY]", True, True) and not before("(?i)quel(?:s|les?|) qu $|on $|il $") and not after(" soit ") -1>> soi # Confusion probable. __[i]/conf(conf_quel_que_soit2)__ quel(?:le|)s? que (soi(?:es?|)) @@$ <<- -1>> soit|soient # Confusion probable. __[i]/conf(conf_soi_même1)__ (soi[tes]s? mêmes?) @@$ <<- morph(word(-1), ":[YQ]|>(?:avec|contre|par|pour|sur) ", False, True) -1>> soi-même # Confusion probable : moi-même, toi-même, lui-même, elle-même, soi-même, elles-mêmes, eux-mêmes. __[i]/conf(conf_soi_même2)__ soi[tes]s?-mêmes? <<- ->> soi-même # Confusion : moi-même, toi-même, lui-même, elle-même, soi-même, elles-mêmes, eux-mêmes. TEST: chez {{soit}}, c’est presque toujours mieux. |
︙ | ︙ | |||
8968 8969 8970 8971 8972 8973 8974 | # nouveau / nouvel # TODO | | | | 8971 8972 8973 8974 8975 8976 8977 8978 8979 8980 8981 8982 8983 8984 8985 8986 8987 8988 8989 8990 8991 8992 8993 8994 8995 8996 8997 8998 8999 9000 9001 9002 9003 | # nouveau / nouvel # TODO !!!! Mots composés __[i]/mc(mc_mot_composé)__ ({w2})-({w2}) @@0,$ <<- not \1.isdigit() and not \2.isdigit() and not morph(\0, ":", False) and not morph(\2, ":G", False) and spell(\1+\2) ->> \1\2 # Vous pouvez ôter le trait d’union. <<- \2 != "là" and not re.search("(?i)^(?:ex|mi|quasi|semi|non|demi|pro|anti|multi|pseudo|proto|extra)$", \1) and not \1.isdigit() and not \2.isdigit() and not morph(\2, ":G", False) and not morph(\0, ":", False) and not spell(\1+\2) ->> _ # Mot inconnu du dictionnaire.|http://www.dicollecte.org/dictionary.php?prj=fr&unknownword=on TEST: __mc__ des {{portes-avions}}. !! !! !!!! Casse: majuscules et minuscules !! !! # Les jours __[s]/maj(maj_jours_semaine)__ (?:Lundi|Mardi|Mercredi|Jeudi|Vendredi|Samedi|Dimanche) <<- before(r"[\w,] +$") ->> =\0.lower() |
︙ | ︙ | |||
9156 9157 9158 9159 9160 9161 9162 | !! !! !! !! !! !! !! | | | | 9159 9160 9161 9162 9163 9164 9165 9166 9167 9168 9169 9170 9171 9172 9173 9174 9175 9176 9177 9178 9179 9180 9181 9182 9183 9184 9185 9186 9187 9188 | !! !! !! !! !! !! !! !!! Conjugaisons !! !! !! !! !! !! !! !! !! !! !! !! !!!! Infinitif !! !! __[i]/infi(infi_à_en)__ à en ({w_2}) @@5 <<- morphex(\1, ":V", ":Y") -1>> =suggVerbInfi(@) # Le verbe devrait être à l’infinitif. |
︙ | ︙ | |||
9316 9317 9318 9319 9320 9321 9322 | -2>> =suggVerbPpas(\2, ":p") # Confusion probable : “\2” est à verbe à l’infinitif. Pour l’adjectif, écrivez : TEST: les documents {{scanner}} ne sont pas lisibles. TEST: tes doutes {{remâcher}} deviennent difficiles à vivre. | | | | 9319 9320 9321 9322 9323 9324 9325 9326 9327 9328 9329 9330 9331 9332 9333 9334 9335 9336 9337 9338 9339 9340 9341 9342 9343 9344 | -2>> =suggVerbPpas(\2, ":p") # Confusion probable : “\2” est à verbe à l’infinitif. Pour l’adjectif, écrivez : TEST: les documents {{scanner}} ne sont pas lisibles. TEST: tes doutes {{remâcher}} deviennent difficiles à vivre. !!!! Participes présents __[i]/conj(conj_participe_présent)__ (?:ne|lui|me|te|se|nous|vous) ({w_2}ants) @@$ <<- morph(\1, ":A", False) -1>> =\1[:-1] # Un participe présent est invariable.|http://fr.wiktionary.org/wiki/participe_pr%C3%A9sent TEST: nous {{épuisants}} à la tâche pour des clopinettes, nous défaillîmes. !!! !!! !!! Processeur: simplification des substantifs !!! !!! ### @ : we remove @ we introduced after le/la/les in some cases __<s>(p_arobase)__ @ <<- ~>> * ### Avant les verbes (ôter seulement les COI!) |
︙ | ︙ | |||
9453 9454 9455 9456 9457 9458 9459 | TEST: Je me doute bien que vous avez trouvé la réponse. TEST: Nous nous doutons bien qu’il y a une entourloupe derrière cette affaire. TEST: Notre but n’était pas de devenir célèbres. TEST: sans qu’on ait à le lui ordonner | | | 9456 9457 9458 9459 9460 9461 9462 9463 9464 9465 9466 9467 9468 9469 9470 | TEST: Je me doute bien que vous avez trouvé la réponse. TEST: Nous nous doutons bien qu’il y a une entourloupe derrière cette affaire. TEST: Notre but n’était pas de devenir célèbres. TEST: sans qu’on ait à le lui ordonner !!!! OCR # Participes passés __[i]/ocr(ocr_être_participes_passés)__ ({etre}) +({w_2}es?) @@0,$ <<- morph(\1, ":V0e", False) >>> <<- \2.endswith("e") and morphex(\2, ":V1.*:Ip.*:[13]s", ":(?:[GM]|A)") and not before(r"(?i)\belle +(?:ne +|n’|)$") -2>> =suggVerbPpas(\2, ":m:s") # Erreur de numérisation ? |
︙ | ︙ | |||
9491 9492 9493 9494 9495 9496 9497 | TEST: __ocr__ elle avait envie de s’en sortir enfin. TEST: __ocr__ la longueur de la circonférence étant égale à… # TEST: __ocr__ vous êtes {{presses}} de monter à bord de ce train-ci. # Fonctionne avec nous serons, mais pas nous sommes (bug de JavaScript?) | | | 9494 9495 9496 9497 9498 9499 9500 9501 9502 9503 9504 9505 9506 9507 9508 | TEST: __ocr__ elle avait envie de s’en sortir enfin. TEST: __ocr__ la longueur de la circonférence étant égale à… # TEST: __ocr__ vous êtes {{presses}} de monter à bord de ce train-ci. # Fonctionne avec nous serons, mais pas nous sommes (bug de JavaScript?) !!!! Confusions ## guerre / guère __[i]/conf(conf_ne_pronom_pronom_verbe_guère)__ ne (?:[mts]e|la|les?|[nv]ous|lui|leur) (?:la |les? |lui |leur |l’|)\w{w_2} (?:plus |)(guerre) @@$ <<- -1>> guère # Confusion. La guerre est conflit. Pour l’adverbe signifiant “peu”, écrivez : TEST: tout ceci ne me rapporte {{guerre}} |
︙ | ︙ | |||
9552 9553 9554 9555 9556 9557 9558 | ({aller}) +de (soi[tes]) @@0,$ <<- morph(\1, ">aller", False) and not after(" soit ") -2>> soi # Confusion.|https://fr.wiktionary.org/wiki/aller_de_soi TEST: cela ne va pas de {{soit}}. | | | 9555 9556 9557 9558 9559 9560 9561 9562 9563 9564 9565 9566 9567 9568 9569 | ({aller}) +de (soi[tes]) @@0,$ <<- morph(\1, ">aller", False) and not after(" soit ") -2>> soi # Confusion.|https://fr.wiktionary.org/wiki/aller_de_soi TEST: cela ne va pas de {{soit}}. !!!! Adverbes après verbe # fort __[i]/sgpl(sgpl_verbe_fort)__ ({w_2}) +(forts) @@0,$ <<- morphex(\1, ":V", ":[AN].*:[me]:[pi]|>(?:être|sembler|devenir|re(?:ster|devenir)|para[îi]tre|appara[îi]tre) .*:(?:[123]p|P|Q)|>(?:affirmer|trouver|croire|désirer|estime|préférer|penser|imaginer|voir|vouloir|aimer|adorer|souhaiter) ") and not morph(word(1), ":A.*:[me]:[pi]", False) -2>> fort # Confusion probable. S’il s’agit ici de l’adverbe “fort” (équivalent de “fortement”), écrivez-le au singulier. |
︙ | ︙ | |||
9586 9587 9588 9589 9590 9591 9592 | TEST: Il a de grands biens. TEST: Ce sont des biens de peu de valeur. !! !! | | | 9589 9590 9591 9592 9593 9594 9595 9596 9597 9598 9599 9600 9601 9602 9603 | TEST: Il a de grands biens. TEST: Ce sont des biens de peu de valeur. !! !! !!!! Infinitif !! !! __[i]/infi(infi_d_en_y)__ d’(?:en|y) +({w_2}) @@$ <<- morphex(\1, ":V", ":Y") -1>> =suggVerbInfi(@) # Le verbe devrait être à l’infinitif. |
︙ | ︙ | |||
9699 9700 9701 9702 9703 9704 9705 | TEST: lui {{mangée}} beaucoup. !! !! | | | 9702 9703 9704 9705 9706 9707 9708 9709 9710 9711 9712 9713 9714 9715 9716 | TEST: lui {{mangée}} beaucoup. !! !! !!!! Usage pronominal avec “avoir” au lieu d’“être” !! !! __[i]/conj(conj_se_conf_être_avoir)__ (s’)(?:en +|y+ |)({avoir}) @@0,$ <<- morph(\2, ">avoir ", False) >>> <<- morph(\2, ":3p", False) -2>> sont|étaient|seront|seraient # Confusion. Sous sa forme pronominale, un verbe s’emploie avec l’auxilaire “être”, non “avoir”. |
︙ | ︙ | |||
9741 9742 9743 9744 9745 9746 9747 | TEST: {{nous}} nous {{avons}} donné le temps TEST: {{vous}} vous {{avez}} perdu toute notion de décence. !! !! | | | 9744 9745 9746 9747 9748 9749 9750 9751 9752 9753 9754 9755 9756 9757 9758 | TEST: {{nous}} nous {{avons}} donné le temps TEST: {{vous}} vous {{avez}} perdu toute notion de décence. !! !! !!!! Participes passés: se +être +verbe !! !! __[i]/ppas(ppas_je_me_être_verbe)__ je +(?:ne +|)m(?:e +|’(?:y +|))(?:s[uo]i[st]|étai[st]|fu(?:sses?|s|t)|serai[st]?) +({w_3}) @@$ <<- morphex(\1, ":Q.*:p", ":(?:G|Q.*:[si])") and ( morph(\1, ":V[123]_.__p_e_") or (isRealEnd() and not before(r"\b[qQ]ue? +$")) ) -1>> =suggVerbPpas(\1, ":m:s") # Si ce participe passé se rapporte bien à “je”, il devrait être au singulier. |
︙ | ︙ | |||
9834 9835 9836 9837 9838 9839 9840 | TEST: des soins que je m’étais donnés. TEST: Si t’es pas contente, t’achètes pas. !! !! | | | 9837 9838 9839 9840 9841 9842 9843 9844 9845 9846 9847 9848 9849 9850 9851 | TEST: des soins que je m’étais donnés. TEST: Si t’es pas contente, t’achètes pas. !! !! !!!! Participes passés: se +laisser +adjectif !! !! __[i]/ppas(ppas_me_te_laisser_adj)__ ([mt]e|l[ae]) +(laiss\w*) +({w_3}) @@0,w,$ <<- morph(\2, ">laisser ", False) and morphex(\3, ":[AQ].*:p", ":(?:[YG]|[AQ].*:[is])") -3>> =suggSing(@) # Accord avec « \1 » : « \3 » devrait être au singulier. |
︙ | ︙ | |||
10030 10031 10032 10033 10034 10035 10036 | __[i]/ppas(ppas_avoir_été)__ (({avoir}) +été) +({w_2}) @@0,0,$ <<- morph(\2, ":V0a", False) >>> <<- morphex(\3, ":[123]s", ":[GNAQWY]") -3>> =suggVerbPpas(@) # Après « avoir été », il faut un participe passé. <<- not before("[çcCÇ]’$|[cC]e n’$|[çÇ]a (?:n’|)$") and not before("(?i)^ *ne pas ") and not morph(word(-1), ":Y", False) >>> <<- morphex(\3, ":Y", ":A") -1>> _ # Tournure familière. Utilisez « être allé » plutôt que « avoir été ». <<- morphex(\3, ":V1..t.*:Y", ":A") -3>> =suggVerbPpas(@) # Incohérence. Après « avoir été », il faut un participe passé (à moins que « avoir été » signifie ici « être allé »). | | | 10033 10034 10035 10036 10037 10038 10039 10040 10041 10042 10043 10044 10045 10046 10047 | __[i]/ppas(ppas_avoir_été)__ (({avoir}) +été) +({w_2}) @@0,0,$ <<- morph(\2, ":V0a", False) >>> <<- morphex(\3, ":[123]s", ":[GNAQWY]") -3>> =suggVerbPpas(@) # Après « avoir été », il faut un participe passé. <<- not before("[çcCÇ]’$|[cC]e n’$|[çÇ]a (?:n’|)$") and not before("(?i)^ *ne pas ") and not morph(word(-1), ":Y", False) >>> <<- morphex(\3, ":Y", ":A") -1>> _ # Tournure familière. Utilisez « être allé » plutôt que « avoir été ». <<- morphex(\3, ":V1..t.*:Y", ":A") -3>> =suggVerbPpas(@) # Incohérence. Après « avoir été », il faut un participe passé (à moins que « avoir été » signifie ici « être allé »). TEST: j’ai été {{instruis}} par elle TEST: avoir été {{prit}} par surprise TEST: Ils {{ont été}} {{réaliser}} à partir d’éléments naturels. TEST: J’{{ai été}} camper dans les Alpes. TEST: Tu {{as été}} prendre du bois. TEST: J’{{ai été}} {{chercher}} du pain. TEST: Mon grand-père aurait été fier. |
︙ | ︙ | |||
10159 10160 10161 10162 10163 10164 10165 | TEST: elles doivent être {{fâché}} TEST: elles doivent avoir été {{attaqué}} TEST: elles peuvent avoir été {{trompé}} TEST: elles souhaitent être plus {{considérée}} | | | | 10162 10163 10164 10165 10166 10167 10168 10169 10170 10171 10172 10173 10174 10175 10176 10177 10178 10179 10180 10181 10182 10183 10184 10185 10186 10187 10188 10189 10190 | TEST: elles doivent être {{fâché}} TEST: elles doivent avoir été {{attaqué}} TEST: elles peuvent avoir été {{trompé}} TEST: elles souhaitent être plus {{considérée}} !!!! Participes passés: accord en nombre avec la conjugaison de « être » ## Contrôle de l’ __[i]/ppas(ppas_être_accord_singulier)__ ({w_2}) +(?:qui +|)(?:ne +|n’|)(?:est|était|f[uû]t|sera(?:it|)|a(?:vait|ura|urait|it|) +été|e[uû]t +été) +({w_2}) @@0,$ <<- morphex(\2, ":[NAQ].*:p", ":[GMWYsi]") and not morph(\1, ":G", False) -2>> =suggSing(@) # Accord avec « être » : « \2 » devrait être au singulier. __[i]/ppas(ppas_être_accord_pluriel)__ ({w_2}) +(?:qui +|)(?:ne +|n’|)(?:sont|étaient|fu(?:r|ss)ent|ser(?:ont|aient)|soient|ont +été|a(?:vaient|uront|uraient|ient) +été|eu(?:r|ss)ent +été) +({w_2}) @@0,$ <<- not re.search("(?i)^légion$", \2) and morphex(\2, ":[NAQ].*:s", ":[GWYpi]") and not morph(\1, ":G", False) -2>> =suggPlur(@) # Accord avec « être » : « \2 » devrait être au pluriel. !!!! Participes passés: accord en genre avec le substantif précédent __[i]/ppas(ppas_sujet_être_accord_genre)__ (?<![dD]’)(une? |les? |la |l’|ce(?:s|t|tte|) |[mts](?:on|a|es) |[nv]os |leurs? ) *({w_2}) +(?:qui +|)(?:ne +|n’|)(?:est|étai(?:en|)t|f[uû]t|sera(?:i(?:en|)t|)|soi(?:en|)t|s(?:er|)ont|fu(?:r|ss)ent) +({w_2}) @@0,w,$ <<- not re.search("(?i)^légion$", \3) and ((morphex(\3, ":[AQ].*:f", ":[GWme]") and morphex(\2, ":m", ":[Gfe]")) or (morphex(\3, ":[AQ].*:m", ":[GWfe]") and morphex(\2, ":f", ":[Gme]"))) and not ( morph(\3, ":p", False) and morph(\2, ":s", False) ) and not morph(word(-1), ":(?:R|P|Q|Y|[123][sp])", False, False) and not before(r"\b(?:et|ou|de) +$") |
︙ | ︙ | |||
10214 10215 10216 10217 10218 10219 10220 | TEST: Martine n’est pas {{marié}}. TEST: Martine est très {{intelligent}}. TEST: Martine n’est pas très {{intelligent}}. TEST: Pierre est {{dominée}} par son adversaire. | | | 10217 10218 10219 10220 10221 10222 10223 10224 10225 10226 10227 10228 10229 10230 10231 | TEST: Martine n’est pas {{marié}}. TEST: Martine est très {{intelligent}}. TEST: Martine n’est pas très {{intelligent}}. TEST: Pierre est {{dominée}} par son adversaire. !!!! Accords avec l’adjectif précédant le pronom __[i]/ppas(ppas_adj_accord_je_tu)__ ^ *({w_2}s),? (je?|tu) @@*,$ <<- morphex(\1, ":A.*:p", ":(?:G|E|M1|W|s|i)") -1>> =suggSing(@) # Si cet adjectif se réfère au pronom « \2 », l’adjectif devrait être au singulier (et accordé en genre). TEST: {{Découragés}}, je suis parti. |
︙ | ︙ | |||
10274 10275 10276 10277 10278 10279 10280 | TEST: Elles se sont {{rendues}} compte TEST: La puissance publique s’en est-elle rendu compte ? !! !! | | | 10277 10278 10279 10280 10281 10282 10283 10284 10285 10286 10287 10288 10289 10290 10291 | TEST: Elles se sont {{rendues}} compte TEST: La puissance publique s’en est-elle rendu compte ? !! !! !!!! Inversion verbe/sujet !! !! __[i]/ppas(ppas_inversion_être_je)__ (?:s[ou]is|étais|fus(?:sé|)|serais?)-je +({w_2}) @@$ <<- morphex(\1, ":(?:[123][sp]|Y|[NAQ].*:p)", ":[GWsi]") -1>> =suggSing(@) # Accord avec le sujet « je » : « \1 » devrait être au singulier. __[i]/ppas(ppas_inversion_être_tu)__ |
︙ | ︙ | |||
10330 10331 10332 10333 10334 10335 10336 | TEST: Ne sommes-nous pas {{aveugle}} TEST: Que se sont-ils dit ? TEST: Est-il question de ceci ou de cela ? TEST: Est-ce former de futurs travailleurs ou bien des citoyens | | | | 10333 10334 10335 10336 10337 10338 10339 10340 10341 10342 10343 10344 10345 10346 10347 10348 10349 10350 10351 10352 10353 10354 10355 10356 10357 10358 10359 10360 10361 | TEST: Ne sommes-nous pas {{aveugle}} TEST: Que se sont-ils dit ? TEST: Est-il question de ceci ou de cela ? TEST: Est-ce former de futurs travailleurs ou bien des citoyens ## Accord et incohérences __[i]/ppas(ppas_sont)__ sont ({w_2}) @@5 <<- morphex(\1, ":[NAQ]", ":[QWGBMpi]") and not re.search("(?i)^(?:légion|nombre|cause)$", \1) and not before(r"(?i)\bce que?\b") -1>> =suggPlur(@) # Incohérence : « \1 » est au singulier. Ou vous confondez « sont » et « son », ou l’accord en nombre est incorrect. <<- __else__ and morphex(\1, ":V", ":(?:N|A|Q|W|G|3p)") and not before(r"(?i)\bce que?\b") -1>> =suggVerbPpas(\1, ":m:p") # Incohérence : « \1 » n’est pas un participe passé. TEST: après avoir mis à jour sont {{profile}}. !! !! !!!! Se croire/considérer/montrer/penser/révéler/savoir/sentir/voir/vouloir + participe passé/adj !! !! __[i]/ppas(ppas_je_me_verbe)__ je +(?:ne +|)me +((?:s[eauû]|montr|pens|rév|v[oiîe])\w+) +({w_2}) @@w,$ <<- morph(\1, ">(?:montrer|penser|révéler|savoir|sentir|voir|vouloir) ", False) and morphex(\2, ":[NAQ].*:p", ":[GWYsi]") -2>> =suggSing(@) # Accord avec le sujet « je » : « \2 » devrait être au singulier. |
︙ | ︙ | |||
10488 10489 10490 10491 10492 10493 10494 | TEST: mais les considérer uniquement ainsi fait perdre la signification politique de leur geste. TEST: nous considérer ainsi fait le lit de la haine… !! !! | | | 10491 10492 10493 10494 10495 10496 10497 10498 10499 10500 10501 10502 10503 10504 10505 | TEST: mais les considérer uniquement ainsi fait perdre la signification politique de leur geste. TEST: nous considérer ainsi fait le lit de la haine… !! !! !!!! Avoir + participes passés !! !! #__[i]/conj__ fait(s|e|es) ({w1}) <<- morph(\2, ":V") and not morph(\2, ":Y") # ->> fait \1 # Le participe passé de faire reste au masculin singulier s’il est suivi par un verbe à l’infinitif. __[i](p_les_avoir_fait_vinfi)__ |
︙ | ︙ | |||
10641 10642 10643 10644 10645 10646 10647 | TEST: c’est vous qui m’avez {{convertit}}. TEST: parce que t’as envie que je le fasse !! !! | | | 10644 10645 10646 10647 10648 10649 10650 10651 10652 10653 10654 10655 10656 10657 10658 | TEST: c’est vous qui m’avez {{convertit}}. TEST: parce que t’as envie que je le fasse !! !! !!!! COD précédant que !! !! __[i]/ppas(ppas_det_plur_COD_que_avoir)__ ([ldmtsc]es) +({w_2}) +que? +(?:j’|tu |ils? |[nv]ous |elles? |on ) *(?:ne +|n’|)({avoir}) +({w_2}[éiust]e?)(?! [mts]’) @@0,w,w,$ <<- morph(\3, ":V0a", False) and not ((re.search("^(?:décidé|essayé|tenté|oublié)$", \4) and after(" +d(?:e |’)")) or (re.search("^réussi$", \4) and after(" +à"))) |
︙ | ︙ | |||
10714 10715 10716 10717 10718 10719 10720 | <<- __also__ and \1 == "a" and \2.endswith("r") and not before(r"(?i)\b(?:[mtn]’|il +|on +|elle +)$") -1>> à # Confusion probable : “a” est une conjugaison du verbe avoir. Pour la préposition, écrivez : TEST: Avoir {{marcher}} toute la journée m’a épuisée. | | | 10717 10718 10719 10720 10721 10722 10723 10724 10725 10726 10727 10728 10729 10730 10731 | <<- __also__ and \1 == "a" and \2.endswith("r") and not before(r"(?i)\b(?:[mtn]’|il +|on +|elle +)$") -1>> à # Confusion probable : “a” est une conjugaison du verbe avoir. Pour la préposition, écrivez : TEST: Avoir {{marcher}} toute la journée m’a épuisée. !!!! du / dû __[i]/ppas(ppas_avoir_dû_vinfi)__ ({avoir}) +(due?s?) +(?:[mts]’|)({w_2}) @@0,w,$ <<- morph(\1, ":V0a", False) and (morph(\3, ":Y") or re.search("^(?:[mtsn]e|[nv]ous|leur|lui)$", \3)) -2>> dû # Participe passé de devoir : « dû ». __[i]/ppas(ppas_avoir_pronom_du_vinfi)__ |
︙ | ︙ | |||
10758 10759 10760 10761 10762 10763 10764 | TEST: Ont-ils {{signer}} le contrat ? TEST: Ai-je déjà {{signez}} le contrat ? TEST: A-t-il déjà {{signer}} le contrat ? !! !! | | | | 10761 10762 10763 10764 10765 10766 10767 10768 10769 10770 10771 10772 10773 10774 10775 10776 10777 10778 10779 10780 10781 10782 10783 10784 10785 10786 10787 10788 10789 10790 10791 10792 10793 10794 10795 | TEST: Ont-ils {{signer}} le contrat ? TEST: Ai-je déjà {{signez}} le contrat ? TEST: A-t-il déjà {{signer}} le contrat ? !! !! !!!! Participes passés avec formes interrogatives !! !! __[i]/ppas(ppas_avoir_pronom1)__ (?<![ltm]’)({avoir})[- ](?:je|tu|ils?|elles?|t-(?:ils?|elles?|on)|on) +({w2}) @@0,$ <<- morph(\1, ":V0a", False) and morphex(\2, ":(?:Y|2p|Q.*:[fp])", ":m:[si]") and \2 != "prise" and not morph(word(-1), ">(?:les|[nv]ous|en)|:[NAQ].*:[fp]", False) and not before(r"(?i)\b(?:quel(?:le|)s?|combien) ") -2>> =suggMasSing(@) # Avec « avoir », il faut un participe passé au masculin singulier. __[i]/ppas(ppas_avoir_pronom2)__ (?<![ltm]’)({avoir})-(?:[nv]ous) +({w2}) @@0,$ <<- morph(\1, ":V0a", False) and morphex(\2, ":(?:Y|2p|Q.*:[fp])", ":m:[si]") and \2 != "prise" and not morph(word(-1), ">(?:les|[nv]ous|en)|:[NAQ].*:[fp]", False) and not before(r"(?i)\b(?:quel(?:le|)s?|combien) ") -2>> =suggMasSing(@) # Avec « avoir », il faut un participe passé au masculin singulier. __[i]/ppas(ppas_l_m_t_avoir_pronom)__ ([ltm]’)({avoir})[- ](?:je|tu|ils?|elles?|t-(?:ils?|elles?|on)|[nv]ous|on) +({w2}s) @@0,2,$ <<- morph(\2, ":V0a", False) and morphex(\3, ":(?:Y|2p|Q.*:p)", ":[si]") -3>> =suggMasSing(@) # Accord avec le COD « \1 » : e participe passé « \2 » devrait être au singulier (et accordé en genre). __[i]/ppas(ppas_les_avoir_pronom)__ les +({avoir})-(?:je|tu|ils?|elles?|t-(?:ils?|elles?|on)|[nv]ous|on) +({w_1}(?:[éiut]e?|is|se)) @@w,$ <<- morph(\1, ":V0a", False) and morphex(\2, ":V[123]..t.*:Q.*:s", ":[GWpi]") -2>> =suggPlur(@) |
︙ | ︙ | |||
10825 10826 10827 10828 10829 10830 10831 | __[i]/conj(conj_vous_verbe2)__ vous [nm](?:e +(?:les? |l’|la |[nv]ous |)|’)({w_3}) @@$ <<- morphex(\1, ":V", ":2p") and isStart() -1>> =suggVerb(@, ":2p") # Conjugaison erronée. Accord avec « vous ». Le verbe devrait être à la 2ᵉ personne du pluriel. TEST: vous ne l’{{avait}} pas vu. | | | | | 10828 10829 10830 10831 10832 10833 10834 10835 10836 10837 10838 10839 10840 10841 10842 10843 10844 10845 10846 10847 10848 10849 10850 10851 10852 10853 10854 10855 10856 10857 10858 10859 10860 10861 10862 10863 10864 10865 10866 10867 10868 10869 10870 10871 10872 10873 | __[i]/conj(conj_vous_verbe2)__ vous [nm](?:e +(?:les? |l’|la |[nv]ous |)|’)({w_3}) @@$ <<- morphex(\1, ":V", ":2p") and isStart() -1>> =suggVerb(@, ":2p") # Conjugaison erronée. Accord avec « vous ». Le verbe devrait être à la 2ᵉ personne du pluriel. TEST: vous ne l’{{avait}} pas vu. TEST: je crois, vous m’{{avais}} trompé… ## se + incohérence __[i]/conj(conj_se_incohérence)__ s(?:e +(?:les? +|la +|)|’(?:en +|y +|))({w_2}(?:e[zs]|ons|is|us)) @@$ <<- morphex(\1, ":2s", ":3[sp]") -1>> =suggVerb(@, ":3s") # Incohérence. Avec le pronom “se”, le verbe ne peut être à la deuxième personne du pluriel. <<- __else__ and morphex(\1, ":1p", ":3[sp]") -1>> =suggVerb(@, ":3p") # Incohérence. Avec le pronom “se”, le verbe ne peut être à la deuxième personne du pluriel. <<- __else__ and morphex(\1, ":2p", ":3[sp]") -1>> =suggVerbInfi(@) # Incohérence. Avec le pronom “se”, le verbe ne peut être à la deuxième personne du pluriel. TEST: se {{considérez}} comme un génie… TEST: se {{rencontrerons}} demain grands et petits. TEST: se {{crois}} élu par Dieu… TEST: avec ceux se trouvant sur leur chemin !!!! Confusions ou/où __[i]/conf(conf_det_nom_où_pronom)__ ^ *(?:l(?:es? +|a +|’)|[nv]o(?:s|tre) +|ce(?:t|tte|s|) +|[mts](?:es|on|a) +|des +)({w_2}) +(ou) +(?:je|tu|ils?|elles? +> +\w+|[nv]ous +> +\w+) @@w,w <<- morphex(\1, ":[NAQ]", ":G") -2>> où # Confusion probable. Pour évoquer un lieu ou un moment, écrivez :|http://fr.wiktionary.org/wiki/o%C3%B9 TEST: L’hôtel {{ou}} ils sont allés l’été dernier. !!! !!! !!! Processeur avant impératif !!! !!! __<i>(p_n_importe_qui_quoi)__ n(’)importe quo?i @@1 <<- ~1>> ` __<i](p_premier_ne_pro_per_obj1)__ |
︙ | ︙ | |||
10901 10902 10903 10904 10905 10906 10907 | TEST: Ne manquer de rien. TEST: Ne jamais miser sur ces tocards. TEST: Ne m’en rien laisser. !! !! | | | 10904 10905 10906 10907 10908 10909 10910 10911 10912 10913 10914 10915 10916 10917 10918 | TEST: Ne manquer de rien. TEST: Ne jamais miser sur ces tocards. TEST: Ne m’en rien laisser. !! !! !!!! Impératif ! !! !! # Confusions __[i]/imp(imp_confusion_2e_pers_pluriel)__ ({w_2}(?:er|ai[st]|ée?s?)) (moi|l(?:es?|a|eur|ui)|nous|vous) @@0,$ <<- morph(\1, ":V", False) and isStart() >>> |
︙ | ︙ | |||
11033 11034 11035 11036 11037 11038 11039 | TEST: {{Vas}} au diable ! TEST: {{Écartes}} de moi cette coupe. TEST: explique-{{leurs}} de quoi il est question. !! !! | | | 11036 11037 11038 11039 11040 11041 11042 11043 11044 11045 11046 11047 11048 11049 11050 | TEST: {{Vas}} au diable ! TEST: {{Écartes}} de moi cette coupe. TEST: explique-{{leurs}} de quoi il est question. !! !! !!!! Impératif: traits d’union manquants !! !! __[i]/imp(imp_union_moi_toi)__ (?<!’)({w_2}) ([mt]oi)(?! même) @@0,$ <<- morphex(\1, ":E", ":[GM]") ->> \1-\2 |
︙ | ︙ | |||
11154 11155 11156 11157 11158 11159 11160 | TEST: {{vas y}}, ce n’est pas dangereux TEST: {{convenez en}}, c’est une belle affaire malgré son prix élevé !!! !!! | | | 11157 11158 11159 11160 11161 11162 11163 11164 11165 11166 11167 11168 11169 11170 11171 | TEST: {{vas y}}, ce n’est pas dangereux TEST: {{convenez en}}, c’est une belle affaire malgré son prix élevé !!! !!! !!! Processeur: destruction des pronoms qui précèdent un verbe et de l’adverbe de négation “ne”. !!! !!! # Brainfuck (ici, prudence !) __[i](p_pro_per_obj01)__ (ne +(?:l(?:ui|eur|a|es?)|[mts]e|[nv]ous) +(?:l(?:a|es?|ui|eur)|en|y)) +({w_1}) @@0,$ <<- morph(\2, ":(?:[123][sp]|P|Y)", False) =>> select(\2, ":(?:[123][sp]|P|Y)") |
︙ | ︙ | |||
11302 11303 11304 11305 11306 11307 11308 | <<- __also__ ~1>> * # Fin du Brainfuck !! !! | | | 11305 11306 11307 11308 11309 11310 11311 11312 11313 11314 11315 11316 11317 11318 11319 | <<- __also__ ~1>> * # Fin du Brainfuck !! !! !!!! Confusions !! !! #### CONFUSION a / à __[i]/conf(conf_pronom_verbe_à)__ ^ *(?:je|tu|ils?|on|elles?) +({w_2}) +(a) @@w,$ <<- morph(\1, ":V", False) and \2 != "A" |
︙ | ︙ | |||
11345 11346 11347 11348 11349 11350 11351 | TEST: La révolution est crainte. TEST: Je n’en ai cure. TEST: Notre communauté vous est redevable. TEST: l’humour est affaire de culture TEST: Aller chercher l’air pur à la campagne est peine perdue. | | | 11348 11349 11350 11351 11352 11353 11354 11355 11356 11357 11358 11359 11360 11361 11362 | TEST: La révolution est crainte. TEST: Je n’en ai cure. TEST: Notre communauté vous est redevable. TEST: l’humour est affaire de culture TEST: Aller chercher l’air pur à la campagne est peine perdue. #### CONFUSION veillez/veuillez __[i]/conf(conf_veillez2)__ (veuillez) +à +(ne|{infi}) @@0,$ <<- isStart() and morph(\2, ":Y|>ne ", False) -1>> veillez # Confusion probable : “veuillez” est une forme conjuguée du verbe “vouloir”.|http://bdl.oqlf.gouv.qc.ca/bdl/gabarit_bdl.asp?id=1939 TEST: {{Veuillez}} à ne pas tomber dans ce piège. TEST: Et {{veuillez}} surtout à ouvrir grand les yeux. |
︙ | ︙ | |||
11378 11379 11380 11381 11382 11383 11384 | TEST: Veillez à éviter de faire des fautes. TEST: Veillez votre mari qui est malade. !! !! | | | 11381 11382 11383 11384 11385 11386 11387 11388 11389 11390 11391 11392 11393 11394 11395 | TEST: Veillez à éviter de faire des fautes. TEST: Veillez votre mari qui est malade. !! !! !!!! Infinitif !! !! __[i]/infi(infi_comment_où)__ (?:comment|où) +({w_2}(?:ée?s?|ez)) @@$ <<- morphex(\1, ":V", ":M") and not (\1.endswith("ez") and after(" +vous")) -1>> =suggVerbInfi(@) # Le verbe devrait être à l’infinitif. |
︙ | ︙ | |||
11482 11483 11484 11485 11486 11487 11488 | TEST: ils sont {{tromper}} par tous ces hypocrites. TEST: Jeûner n’est pas seulement cesser de manger. TEST: Ne pas aimer n’est pas oublier l’autre. !! !! | | | 11485 11486 11487 11488 11489 11490 11491 11492 11493 11494 11495 11496 11497 11498 11499 | TEST: ils sont {{tromper}} par tous ces hypocrites. TEST: Jeûner n’est pas seulement cesser de manger. TEST: Ne pas aimer n’est pas oublier l’autre. !! !! !!!! Conjugaison !! !! ## 1sg __[i]/conj(conj_j)__ j’({w_1}) @@2 <<- morphex(\1, ":V", ":1s|>(?:en|y) ") >>> |
︙ | ︙ | |||
11734 11735 11736 11737 11738 11739 11740 | TEST: un des hommes qui vient. TEST: une des dames qui se sentent mal à l’aise dans cet avion est venue nous trouver. TEST: l’un des chants les plus diffusés pendant la Révolution culturelle __[i]/conj(conj_infi)__ ^ *({infi}) +({w_2}) @@*,$ | | | 11737 11738 11739 11740 11741 11742 11743 11744 11745 11746 11747 11748 11749 11750 11751 | TEST: un des hommes qui vient. TEST: une des dames qui se sentent mal à l’aise dans cet avion est venue nous trouver. TEST: l’un des chants les plus diffusés pendant la Révolution culturelle __[i]/conj(conj_infi)__ ^ *({infi}) +({w_2}) @@*,$ <<- morph(\1, ":Y", False) and morph(\2, ":V.[a-z_!?]+(?!.*:(?:3s|P|Q|Y|3p!))") -2>> =suggVerb(@, ":3s") # Conjugaison erronée. Accord avec « \1… ». Le verbe devrait être à la 3ᵉ personne du singulier. TEST: manger {{fais}} grossir. TEST: boire immodérément {{nuis}} à la santé __[i]/conj(conj_det_sing_nom)__ |
︙ | ︙ | |||
12034 12035 12036 12037 12038 12039 12040 | -2>> =suggVerb(@, ":3p") # Conjugaison erronée. Accord avec « des \1… ». Le verbe devrait être à la 3ᵉ personne du pluriel. TEST: Des hommes {{arrive}}. TEST: Des femmes ne {{demande}} rien. TEST: des femmes qui {{conduise}} la marche du monde. | | | 12037 12038 12039 12040 12041 12042 12043 12044 12045 12046 12047 12048 12049 12050 12051 | -2>> =suggVerb(@, ":3p") # Conjugaison erronée. Accord avec « des \1… ». Le verbe devrait être à la 3ᵉ personne du pluriel. TEST: Des hommes {{arrive}}. TEST: Des femmes ne {{demande}} rien. TEST: des femmes qui {{conduise}} la marche du monde. !!!! Quel(le) que soit / quel(le)s que soient # singulier __[i]/conj(conj_quel_quelle_que_3sg1)__ quel(?:le|)s? que ([sf]\w+) +(?:l[ea]|ce(?:t|tte|)|[mts](?:a|on)|[nv]otre|leur) @@w <<- morphex(\1, ":V0e", ":3s") -1>> =suggVerb(@, ":3s") # Conjugaison erronée. Mettez “être” à la 3ᵉ personne du singulier. |
︙ | ︙ | |||
12111 12112 12113 12114 12115 12116 12117 | TEST: Samantha et Eva {{viennes}} demain. TEST: Samantha et Eva leur {{décrive}} une leçon. !! !! | | | 12114 12115 12116 12117 12118 12119 12120 12121 12122 12123 12124 12125 12126 12127 12128 | TEST: Samantha et Eva {{viennes}} demain. TEST: Samantha et Eva leur {{décrive}} une leçon. !! !! !!!! Inversion verbe sujet !! !! __[i]/conj(conj_que_où_comment_verbe_sujet_sing)__ (?:que?|où|comment|combien|dont|quand|pourquoi) +({w1}) (l(?:e(?:ur | )|a |’)|[mts](?:on|a) |ce(?:t|tte|) |[nv]otre |du ) *(?!plupart|majorité)({w1}) @@w,w,$ <<- morphex(\1, ":(?:[12]s|3p)", ":(?:3s|G|W|3p!)") and not after("^ +(?:et|ou) (?:l(?:es? |a |’|eurs? )|[mts](?:a|on|es) |ce(?:tte|ts|) |[nv]o(?:s|tre) |d(?:u|es) )") -1>> =suggVerb(@, ":3s") # Conjugaison erronée. Accord avec « \2 \3… ». Le verbe devrait être à la 3ᵉ personne du singulier. |
︙ | ︙ | |||
12190 12191 12192 12193 12194 12195 12196 | TEST: {{puisse}} les hommes enfin comprendre leurs erreurs. ->> puissent TEST: {{puisses}} notre ennemi trembler de peur devant notre courage. ->> puisse !! !! | | | 12193 12194 12195 12196 12197 12198 12199 12200 12201 12202 12203 12204 12205 12206 12207 | TEST: {{puisse}} les hommes enfin comprendre leurs erreurs. ->> puissent TEST: {{puisses}} notre ennemi trembler de peur devant notre courage. ->> puisse !! !! !!!! Formes interrogatives ? !! !! __[i]/inte(inte_union_xxxe_je)__ (?<![jJ]’)({w_2}[éèe]) je @@0 <<- morphex(\1, ":V.*:1[sŝś]", ":[GNW]") and not before(r"(?i)\bje +$") and morphex(word(1), ":", ":(?:Oo|X|1s)", True) ->> =\1[:-1]+"é-je" # Forme interrogative ? Mettez un trait d’union. |
︙ | ︙ | |||
12320 12321 12322 12323 12324 12325 12326 | -1>> =suggSimil(\1, ":3p", False) # Forme interrogative : « \1 » n’est pas un verbe à la 3ᵉ personne du pluriel. TEST: {{attaquant}}-ils ->> attaquent TEST: {{prendrons}}-elles un verre avec moi ? | | | | 12323 12324 12325 12326 12327 12328 12329 12330 12331 12332 12333 12334 12335 12336 12337 12338 12339 12340 12341 12342 12343 12344 12345 12346 12347 12348 12349 12350 12351 12352 12353 12354 12355 | -1>> =suggSimil(\1, ":3p", False) # Forme interrogative : « \1 » n’est pas un verbe à la 3ᵉ personne du pluriel. TEST: {{attaquant}}-ils ->> attaquent TEST: {{prendrons}}-elles un verre avec moi ? !!!! Verbe auxiliaire __[i]/conf(conf_avoir_sujet_participe_passé)__ ({avoir})-(?:je|tu|ils?|elles?|on) +({ppas}) @@0,$ <<- morph(\1, ">avoir ", False) and morph(\2, ":V.......e_.*:Q", False) -1>> _ # Incohérence. La forme verbale “\2” ne peut pas être utilisé avec l’auxiliaire “avoir”, seulement avec l’auxiliaire “être”. __[i]/conf(conf_sujet_avoir_participe_passé)__ (?:j’|je |tu |ils? |elles? |on ) *({avoir}) +({ppas}) @@*,$ <<- morph(\1, ">avoir ", False) and morph(\2, ":V.......e_.*:Q", False) -1>> _ # Incohérence. La forme verbale “\2” ne peut pas être utilisé avec l’auxiliaire “avoir”, seulement avec l’auxiliaire “être”. TEST: {{Ait}}-il arrivé à ses fins ? TEST: je n’{{avais}} pas parti avec eux. TEST: Avais-je partie liée avec lui ? TEST: il {{avait}} parti. !! !! !!!! Modes verbaux !! !! # conditionnel / futur __[i]/vmode(vmode_j_aimerais_vinfi)__ j(?:e +|’)(aimerai|préf[éè]rerai|apprécierai|voudrai|souhaiterai|désirerai|adorerai) +({w_1}) @@w,$ |
︙ | ︙ | |||
12440 12441 12442 12443 12444 12445 12446 | # --> pas de règle de contrôle sur ce point. __[i]/vmode(vmode_qqch_que_subjonctif2)__ (?:à condition|pour peu|il +peut) +que? +({w1}) +({w_2}) @@w,$ <<- morph(\1, ":(?:Os|M)", False) and morphex(\2, ":", ":[GYS]") -2>> =suggVerbMode(@, ":S", \1) # Ce verbe devrait être au subjonctif. TEST: à condition qu’il {{finit}} son boulot. | | | | 12443 12444 12445 12446 12447 12448 12449 12450 12451 12452 12453 12454 12455 12456 12457 12458 12459 12460 12461 12462 12463 12464 | # --> pas de règle de contrôle sur ce point. __[i]/vmode(vmode_qqch_que_subjonctif2)__ (?:à condition|pour peu|il +peut) +que? +({w1}) +({w_2}) @@w,$ <<- morph(\1, ":(?:Os|M)", False) and morphex(\2, ":", ":[GYS]") -2>> =suggVerbMode(@, ":S", \1) # Ce verbe devrait être au subjonctif. TEST: à condition qu’il {{finit}} son boulot. TEST: pour peu qu’il {{prend}} son devoir sérieux… TEST: il se peut que nous {{avons}} tort. # indicatif nécessaire __[i]/vmode(vmode_sujet_indicatif)__ ^ *(je|j’(?:en|y)|tu|ils?|elles?|on|nous|vous) +({w_2}) @@*,$ <<- morphex(\2, ":S", ":[GIK]") and not re.search("^e(?:usse|û[mt]es|ût)", \2) -2>> =suggVerbMode(@, ":I", \1) # Ce verbe ne devrait pas être au subjonctif. __[i]/vmode(vmode_j_indicatif)__ ^ *j’({w_2}) @@$ <<- morphex(\1, ":S", ":[GIK]") and \1 != "eusse" -1>> =suggVerbMode(@, ":I", "je") # Ce verbe ne devrait pas être au subjonctif. TEST: Il {{ait}} parti. TEST: Il en {{conclue}} qu’il a eu raison. |
︙ | ︙ | |||
12503 12504 12505 12506 12507 12508 12509 | !! !! !! !! !! !! !! | | | 12506 12507 12508 12509 12510 12511 12512 12513 12514 12515 12516 12517 12518 12519 12520 | !! !! !! !! !! !! !! !! TESTS: Faux positifs potentiels !! !! !! !! !! !! !! |
︙ | ︙ | |||
12526 12527 12528 12529 12530 12531 12532 | !! !! !! !! !! !! | | | 12529 12530 12531 12532 12533 12534 12535 12536 12537 12538 12539 12540 12541 12542 12543 | !! !! !! !! !! !! !!! À trier TEST: L’homme sur le bateau de Patrick {{viens}} de temps en temps {{mangé}} chez moi. TEST: Ces marchands {{passe}} leur temps à se quereller. TEST: Ils jugeront en toute impartialité de ce cas {{délirante}}. TEST: Ils sont de manière si étonnante et si admirable {{arrivé}} à ce résultat… TEST: Les tests grand public de Jean-Paul {{montre}} des résultats surprenants. TEST: Ils ont à plusieurs reprises {{perdus}} leur sang-froid. TEST: Ces attaques à main armée {{donne}} la chair de poule. |
︙ | ︙ | |||
12565 12566 12567 12568 12569 12570 12571 | TODO: Des copains plus vieux que moi qui fumaient. TODO: Des copains plus vieux que toi qui fumaient. TODO: André Juin était un sculpteur français. TODO: La bataille de Monte Cassino révèle le génie militaire du général Juin. TODO: Les côtes sont dans leur ensemble extrêmement découpées. | | | | 12568 12569 12570 12571 12572 12573 12574 12575 12576 12577 12578 12579 12580 12581 12582 12583 12584 12585 12586 | TODO: Des copains plus vieux que moi qui fumaient. TODO: Des copains plus vieux que toi qui fumaient. TODO: André Juin était un sculpteur français. TODO: La bataille de Monte Cassino révèle le génie militaire du général Juin. TODO: Les côtes sont dans leur ensemble extrêmement découpées. !!! Indécidable TEST: Du sable fin grippe les rouages (accord avec ce qui précède). TEST: Du monde noir sortent les envahisseurs (accord avec ce qui suit). !!! Autres tests TEST: Ça a l’air de t’aller. TEST: Et je m’en sors. TEST: C’est à chacun d’entre nous de suivre le modèle d’Amos. TEST: C’est toi qui voulais y aller. TEST: je ne suis qu’une joueuse en robe de soirée. TEST: Tu ne fais qu’aggraver les choses. TEST: Que veut-il ? Vous parler du boulot. |
︙ | ︙ | |||
12634 12635 12636 12637 12638 12639 12640 | TEST: Enfin, les thèmes de la nouvelle réforme ont été longuement débattus. TEST: Le moral des ménages au plus haut depuis 2007 TEST: Ce qu’ils nous ont fait TEST: Comment vous expliquez ça ? TEST: Comment vous expliquer ça ? | | | 12637 12638 12639 12640 12641 12642 12643 12644 12645 12646 12647 12648 12649 12650 12651 | TEST: Enfin, les thèmes de la nouvelle réforme ont été longuement débattus. TEST: Le moral des ménages au plus haut depuis 2007 TEST: Ce qu’ils nous ont fait TEST: Comment vous expliquez ça ? TEST: Comment vous expliquer ça ? !!! Tests historiques ## Version 0.5.14 TEST: par le léger tissu de rayonne qui les protégeait en ce moment. ## Version 0.5.11 TEST: Un moteur à cylindrée fixe |
︙ | ︙ | |||
13410 13411 13412 13413 13414 13415 13416 | TEST: Je soussigné Pierre Dupont déclare avoir pris connaissance des conditions de ce contrat. TEST: J’ai mille cent timbres. TEST: À qui mieux mieux, à qui mieux mieux TEST: L’est est loin, la gare de l’est aussi. | | | 13413 13414 13415 13416 13417 13418 13419 13420 13421 13422 13423 13424 13425 13426 13427 | TEST: Je soussigné Pierre Dupont déclare avoir pris connaissance des conditions de ce contrat. TEST: J’ai mille cent timbres. TEST: À qui mieux mieux, à qui mieux mieux TEST: L’est est loin, la gare de l’est aussi. !!! Tests repris de LanguageTool ## NOTE : ces textes contiennent parfois des erreurs (corrigées quand repérées par le correcteur) TEST: Au voisinage du zéro absolu de température. TEST: La couronne périphérique alterne falaises abruptes et plages. TEST: Henri VIII rencontre François Iᵉʳ. TEST: à ce jour. TEST: avoir un bel avenir |
︙ | ︙ | |||
15475 15476 15477 15478 15479 15480 15481 | TEST: Le 29 février 2008. TEST: Le 29 février 2012. TEST: Le 29 février 2016. TEST: Le 29 février 2020. TEST: Le 29-février-2004 | | | 15478 15479 15480 15481 15482 15483 15484 15485 15486 15487 15488 15489 15490 15491 15492 | TEST: Le 29 février 2008. TEST: Le 29 février 2012. TEST: Le 29 février 2016. TEST: Le 29 février 2020. TEST: Le 29-février-2004 !!! Le Horla, de Guy de Maupassant # Nouvelle intégrale (228 lignes) # Certains points diffèrent du texte original tiré de Wikisource : # — les paragraphes sont souvent scindés pour des raisons pratiques. # — les virgules avant les points de suspension ont été supprimées # — moyen âge -> Moyen Âge TEST: Le Horla — Guy de Maupassant TODO: 8 mai. — Quelle journée admirable ! J’ai passé toute la matinée {{étendu}} sur l’herbe, devant ma maison, sous l’énorme platane qui la couvre, l’abrite et l’ombrage tout entière. |
︙ | ︙ | |||
15847 15848 15849 15850 15851 15852 15853 | TEST: Pourquoi ce corps transparent, ce corps inconnaissable, ce corps d’Esprit, s’il devait craindre, lui aussi, les maux, les blessures, les infirmités, la destruction prématurée ? TEST: La destruction prématurée ? toute l’épouvante humaine vient d’elle ! TEST: Après l’homme le Horla. — Après celui qui peut mourir tous les jours, à toutes les heures, à toutes les minutes, par tous les accidents, est venu celui qui ne doit mourir qu’à son jour, à son heure, à sa minute, parce qu’il a touché la limite de son existence ! TEST: Non… non… sans aucun doute, sans aucun doute… il n’est pas mort… Alors… alors… il va donc falloir que je me tue, moi !… # FIN DU HORLA | | | 15850 15851 15852 15853 15854 15855 15856 15857 15858 15859 15860 15861 15862 15863 15864 | TEST: Pourquoi ce corps transparent, ce corps inconnaissable, ce corps d’Esprit, s’il devait craindre, lui aussi, les maux, les blessures, les infirmités, la destruction prématurée ? TEST: La destruction prématurée ? toute l’épouvante humaine vient d’elle ! TEST: Après l’homme le Horla. — Après celui qui peut mourir tous les jours, à toutes les heures, à toutes les minutes, par tous les accidents, est venu celui qui ne doit mourir qu’à son jour, à son heure, à sa minute, parce qu’il a touché la limite de son existence ! TEST: Non… non… sans aucun doute, sans aucun doute… il n’est pas mort… Alors… alors… il va donc falloir que je me tue, moi !… # FIN DU HORLA !!! Double assassinat dans la rue morgue, d’Edgar Poe # Texte tiré de Wikisource # Les paragraphes ont été découpés pour réduire la longueur des tests. TEST: DOUBLE ASSASSINAT DANS LA RUE MORGUE — Edgar Poe TEST: Quelle chanson chantaient les sirènes ? quel nom Achille avait-il pris, quand il se cachait parmi les femmes ? – Questions embarrassantes, il est vrai, mais qui ne sont pas situées au-delà de toute conjecture. TEST: Sir Thomas Browne. TODO: Les facultés de l’esprit qu’on définit par le terme {{analytiques}} sont en elles-mêmes fort peu susceptibles d’analyse. TEST: Nous ne les apprécions que par leurs résultats. Ce que nous en savons, entre autres choses, c’est qu’elles sont pour celui qui les possède à un degré extraordinaire une source de jouissances des plus vives. |
︙ | ︙ | |||
16391 16392 16393 16394 16395 16396 16397 | TEST: Néanmoins, qu’il n’ait pas pu débrouiller ce mystère, il n’y a nullement lieu de s’en étonner, et cela est moins singulier qu’il ne le croit ; car, en vérité, notre ami le préfet est un peu trop fin pour être profond. Sa science n’a pas de base. TEST: Elle est tout en tête et n’a pas de corps, comme les portraits de la déesse Laverna, – ou, si vous aimez mieux, tout en tête et en épaules, comme une morue. TEST: Mais, après tout, c’est un brave homme. Je l’adore particulièrement pour un merveilleux genre de cant auquel il doit sa réputation de génie. TEST: Je veux parler de sa manie de nier ce qui est, et d’expliquer ce qui n’est pas[2]. # FIN DU DOUBLE ASSASSINAT DANS LA RUE MORGUE | | | 16394 16395 16396 16397 16398 16399 16400 16401 16402 16403 16404 16405 16406 16407 16408 | TEST: Néanmoins, qu’il n’ait pas pu débrouiller ce mystère, il n’y a nullement lieu de s’en étonner, et cela est moins singulier qu’il ne le croit ; car, en vérité, notre ami le préfet est un peu trop fin pour être profond. Sa science n’a pas de base. TEST: Elle est tout en tête et n’a pas de corps, comme les portraits de la déesse Laverna, – ou, si vous aimez mieux, tout en tête et en épaules, comme une morue. TEST: Mais, après tout, c’est un brave homme. Je l’adore particulièrement pour un merveilleux genre de cant auquel il doit sa réputation de génie. TEST: Je veux parler de sa manie de nier ce qui est, et d’expliquer ce qui n’est pas[2]. # FIN DU DOUBLE ASSASSINAT DANS LA RUE MORGUE !!! Vers Dorés, de Pythagore # Origine? TEST: Aux dieux, suivant les lois, rends de justes hommages ; TEST: Respecte le serment, les héros et les sages ; TEST: Honore tes parents, tes rois, tes bienfaiteurs ; TEST: Choisi parmi tes amis les hommes les meilleurs. TEST: Sois obligeant et doux, sois facile en affaires. TEST: Ne hais pas ton ami pour des fautes légères ; |
︙ | ︙ | |||
16491 16492 16493 16494 16495 16496 16497 | TEST: XXX. Mais abstiens-toi des aliments que je t’ai défendus. Apprends à discerner ce qui est nécessaire dans la purification et la délivrance de l’âme. Examine tout ; donne à ta raison la première place et, content de te laisser conduire, abandonne-lui les rênes. TEST: XXXI. Ainsi, quand tu auras quitté les dépouilles mortelles, tu monteras dans l’air libre ; tu deviendras un dieu immortel et la mort n’aura plus d’empire sur toi. TEST: Fin des vers dorés de Pythagore TEST: Note : Chez les Pythagoriciens, la monade ou l’unité représente Dieu-même, parce qu’elle n’est engendrée par aucun nombre, qu’elle les engendre tous, qu’elle est simple et sans aucune composition. La dyade, ou le nombre deux, est l’image de la nature créée, parce qu’elle est le premier produit de l’unité, parce qu’elle est inspirée, parce qu’ayant des parties elle peut se décomposer et se défendre. La monade et la dyade réunies forment le ternaire, et représentent l’immensité de tout ce qui existe, l’être immuable et la matière altérable et changeante. J’ignore par quelle propriété le quaternaire, le nombre quatre, est encore un emblème de la divinité. # FIN DES VERS DORÉS DE PYTHAGORE | | | 16494 16495 16496 16497 16498 16499 16500 16501 16502 16503 16504 16505 16506 16507 16508 | TEST: XXX. Mais abstiens-toi des aliments que je t’ai défendus. Apprends à discerner ce qui est nécessaire dans la purification et la délivrance de l’âme. Examine tout ; donne à ta raison la première place et, content de te laisser conduire, abandonne-lui les rênes. TEST: XXXI. Ainsi, quand tu auras quitté les dépouilles mortelles, tu monteras dans l’air libre ; tu deviendras un dieu immortel et la mort n’aura plus d’empire sur toi. TEST: Fin des vers dorés de Pythagore TEST: Note : Chez les Pythagoriciens, la monade ou l’unité représente Dieu-même, parce qu’elle n’est engendrée par aucun nombre, qu’elle les engendre tous, qu’elle est simple et sans aucune composition. La dyade, ou le nombre deux, est l’image de la nature créée, parce qu’elle est le premier produit de l’unité, parce qu’elle est inspirée, parce qu’ayant des parties elle peut se décomposer et se défendre. La monade et la dyade réunies forment le ternaire, et représentent l’immensité de tout ce qui existe, l’être immuable et la matière altérable et changeante. J’ignore par quelle propriété le quaternaire, le nombre quatre, est encore un emblème de la divinité. # FIN DES VERS DORÉS DE PYTHAGORE !!! Épître du feu philosophique, de Jean Pontanus # Les paragraphes ont été découpés et ne correspondent pas à ceux du texte. TEST: Épître du Feu Philosophique TEST: Lettre concernant la pierre dite philosophale TEST: Jean Pontanus TEST: in Theatrum Chimicum, 1614, t. III TEST: « Nous affirmons, au contraire, — et l’on peut avoir foi en notre sincérité, — qu’il sera impossible d’obtenir le moindre succès dans l’Œuvre si l’on a pas une connaissance parfaite de ce qu’est le Vase des Philosophes ni de quelle manière il faut le fabriquer. Pontanus avoue qu’avant de connaître ce vaisseau secret il avait recommencé, sans succès, plus de deux cents fois le même travail, quoiqu’il besognât sur les matières propres et convenables, et selon la méthode régulière. L’artiste doit faire lui-même son vaisseau ; c’est une maxime de l’art. N’entreprenez rien, en conséquence, tant que vous n’aurez pas reçu toute la lumière sur cette coquille de l’œuf qualifiée secretum secretorum chez les maîtres du Moyen Âge. » TEST: — Fulcanelli, Le Mystère des Cathédrales, p. 204-205 |
︙ | ︙ | |||
16537 16538 16539 16540 16541 16542 16543 | TEST: Et moyennant notre feu, la médecine se multipliera si elle est conjointe à la matière crue, non seulement en quantité mais aussi en vertu. TEST: Recherche donc de toutes les forces de ton esprit ce feu, et tu parviendras au but que tu t’es proposé ; car c’est lui qui fait tout l’œuvre, et il est la clef de tous les Philosophes, laquelle ils n’ont jamais révélée dans leurs livres. TEST: Si tu penses bien profondément aux propriétés du feu ci-dessus, tu la connaîtras, mais non autrement. TEST: Donc, touché d’un mouvement de pitié, j’ai écrit ceci ; mais, et afin que je me satisfasse, le feu n’est point transmué avec la matière, comme je l’ai dit ci-dessus. TEST: J’ai bien voulu le dire et en avertir les prudents de ces choses, pour qu’ils ne dépensent pas inutilement leur argent, mais qu’ils sachent auparavant ce qu’ils doivent chercher, et, par ce moyen, parviendront à la vérité de l’Art ; non pas autrement. À Dieu. # FIN DE L’ÉPÎTRE DU FEU PHILOSOPHIQUE | | | 16540 16541 16542 16543 16544 16545 16546 16547 16548 16549 16550 16551 16552 16553 16554 | TEST: Et moyennant notre feu, la médecine se multipliera si elle est conjointe à la matière crue, non seulement en quantité mais aussi en vertu. TEST: Recherche donc de toutes les forces de ton esprit ce feu, et tu parviendras au but que tu t’es proposé ; car c’est lui qui fait tout l’œuvre, et il est la clef de tous les Philosophes, laquelle ils n’ont jamais révélée dans leurs livres. TEST: Si tu penses bien profondément aux propriétés du feu ci-dessus, tu la connaîtras, mais non autrement. TEST: Donc, touché d’un mouvement de pitié, j’ai écrit ceci ; mais, et afin que je me satisfasse, le feu n’est point transmué avec la matière, comme je l’ai dit ci-dessus. TEST: J’ai bien voulu le dire et en avertir les prudents de ces choses, pour qu’ils ne dépensent pas inutilement leur argent, mais qu’ils sachent auparavant ce qu’ils doivent chercher, et, par ce moyen, parviendront à la vérité de l’Art ; non pas autrement. À Dieu. # FIN DE L’ÉPÎTRE DU FEU PHILOSOPHIQUE !!! Le Misanthrope, de Molière TEST: LE MISANTHROPE (1666) TEST: de Molière TEST: Texte établi par Charles Louandre, Charpentier, 1910 (2, pp. 170-239). TEST: PERSONNAGES TEST: Alceste, amant de Célimène, TEST: Philinte, ami d’Alceste, TEST: Oronte, amant de Célimène, |
︙ | ︙ |