Overview
Comment: | [fr] ajustements [core][fr] suggestions mechanism update |
---|---|
Downloads: | Tarball | ZIP archive | SQL archive |
Timelines: | family | ancestors | descendants | both | trunk | fr | core |
Files: | files | file ages | folders |
SHA3-256: |
d86a7e72a6c6f6f351d2b2219b1a00f5 |
User & Date: | olr on 2021-02-09 10:09:21 |
Other Links: | manifest | tags |
Context
2021-02-09
| ||
10:17 | [fr] dictionnaire: suppression du drapeau iM. Verbe “s’enquérir” -> iK check-in: 1c781094d2 user: olr tags: trunk, fr | |
10:09 | [fr] ajustements [core][fr] suggestions mechanism update check-in: d86a7e72a6 user: olr tags: trunk, fr, core | |
2021-02-06
| ||
18:17 | [fr] ajustements check-in: 7830f4d1c0 user: olr tags: trunk, fr | |
Changes
Modified gc_lang/fr/modules-js/cregex.js from [af981c2a51] to [c1ba0b4cea].
1 2 3 4 5 6 7 8 9 10 11 | // Grammalecte - Compiled regular expressions /* jshint esversion:6 */ /* jslint esversion:6 */ var cregex = { ///// Lemme _zLemma: new RegExp(">([a-zà-öø-ÿ0-9Ā-ʯ][a-zà-öø-ÿ0-9Ā-ʯ-]+)"), ///// Masculin / féminin / singulier / pluriel | < < | | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 | // Grammalecte - Compiled regular expressions /* jshint esversion:6 */ /* jslint esversion:6 */ var cregex = { ///// Lemme _zLemma: new RegExp(">([a-zà-öø-ÿ0-9Ā-ʯ][a-zà-öø-ÿ0-9Ā-ʯ-]+)"), ///// Masculin / féminin / singulier / pluriel _zGenderNumber: new RegExp(":[mfe]:[spi]"), ///// Nom et adjectif _zNA: new RegExp(":[NA]"), //// nombre _zNAs: new RegExp(":[NA].*:s"), _zNAp: new RegExp(":[NA].*:p"), _zNAi: new RegExp(":[NA].*:i"), _zNAsi: new RegExp(":[NA].*:[si]"), _zNApi: new RegExp(":[NA].*:[pi]"), //// genre _zNAm: new RegExp(":[NA].*:m"), _zNAf: new RegExp(":[NA].*:f"), _zNAe: new RegExp(":[NA].*:e"), _zNAme: new RegExp(":[NA].*:[me]"), _zNAfe: new RegExp(":[NA].*:[fe]"), //// nombre et genre // singulier _zNAms: new RegExp(":[NA].*:m.*:s"), _zNAfs: new RegExp(":[NA].*:f.*:s"), _zNAes: new RegExp(":[NA].*:e.*:s"), _zNAmes: new RegExp(":[NA].*:[me].*:s"), _zNAfes: new RegExp(":[NA].*:[fe].*:s"), // singulier et invariable |
︙ | ︙ | |||
84 85 86 87 88 89 90 | ///// FONCTIONS getLemmaOfMorph: function (sMorph) { return this._zLemma.exec(sMorph)[1]; }, agreement: function (l1, l2) { | | | | | < < < | < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < | 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 | ///// FONCTIONS getLemmaOfMorph: function (sMorph) { return this._zLemma.exec(sMorph)[1]; }, agreement: function (l1, l2) { // returns True if agreement in gender and number is possible between morphologies <l1> and <l2> let [sGender1, sNumber1] = this.getGenderNumber(l1); let [sGender2, sNumber2] = this.getGenderNumber(l2); if (sNumber1 !== ":i" && sNumber2 !== ":i" && sNumber1 !== sNumber2) { return false; } if (sGender1 !== ":e" && sGender2 !== ":e" && sGender1 !== sGender2) { return false; } return true; }, checkConjVerb: function (lMorph, sReqConj) { return lMorph.some(s => s.includes(sReqConj)); }, getGenderNumber: function (lMorph) { // returns tuple (gender, number) of word: (':m', ':f', ':e' or empty string) and (':s', ':p', ':i' or empty string) let sGender = ""; let sNumber = ""; for (let sMorph of lMorph) { let m = this._zGenderNumber.exec(sMorph); if (m) { |
︙ | ︙ | |||
295 296 297 298 299 300 301 | return lMorph.some(s => this._zNPm.test(s)); } }; if (typeof(exports) !== 'undefined') { exports._zLemma = cregex._zLemma; | < < | 251 252 253 254 255 256 257 258 259 260 261 262 263 264 | return lMorph.some(s => this._zNPm.test(s)); } }; if (typeof(exports) !== 'undefined') { exports._zLemma = cregex._zLemma; exports._zNA = cregex._zNA; exports._zNAs = cregex._zNAs; exports._zNAp = cregex._zNAp; exports._zNAi = cregex._zNAi; exports._zNAsi = cregex._zNAsi; exports._zNApi = cregex._zNApi; exports._zNAm = cregex._zNAm; |
︙ | ︙ | |||
340 341 342 343 344 345 346 | exports._zNnotA = cregex._zNnotA; exports._zPNnotA = cregex._zPNnotA; exports._zNP = cregex._zNP; exports._zNPm = cregex._zNPm; exports._zNPf = cregex._zNPf; exports._zNPe = cregex._zNPe; exports.getLemmaOfMorph = cregex.getLemmaOfMorph; | | > < < | 294 295 296 297 298 299 300 301 302 303 304 305 306 307 308 309 310 | exports._zNnotA = cregex._zNnotA; exports._zPNnotA = cregex._zPNnotA; exports._zNP = cregex._zNP; exports._zNPm = cregex._zNPm; exports._zNPf = cregex._zNPf; exports._zNPe = cregex._zNPe; exports.getLemmaOfMorph = cregex.getLemmaOfMorph; exports.agreement = cregex.agreement; exports.getGenderNumber = cregex.getGenderNumber; exports.checkConjVerb = cregex.checkConjVerb; exports.isNom = cregex.isNom; exports.isNomNotAdj = cregex.isNomNotAdj; exports.isAdj = cregex.isAdj; exports.isNomAdj = cregex.isNomAdj; exports.isNomVconj = cregex.isNomVconj; exports.isInv = cregex.isInv; exports.isSg = cregex.isSg; |
︙ | ︙ |
Modified gc_lang/fr/modules-js/gce_analyseur.js from [822c4ce723] to [7da47c7f30].
︙ | ︙ | |||
49 50 51 52 53 54 55 | function queryNamesPOS (sWord1, sWord2) { let lMorph1 = gc_engine.oSpellChecker.getMorph(sWord1); let lMorph2 = gc_engine.oSpellChecker.getMorph(sWord2); if (lMorph1.length == 0 || lMorph2.length == 0) { return ":N:e:p"; } | | | | 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 | function queryNamesPOS (sWord1, sWord2) { let lMorph1 = gc_engine.oSpellChecker.getMorph(sWord1); let lMorph2 = gc_engine.oSpellChecker.getMorph(sWord2); if (lMorph1.length == 0 || lMorph2.length == 0) { return ":N:e:p"; } let [sGender1, ] = cregex.getGenderNumber(lMorph1); let [sGender2, ] = cregex.getGenderNumber(lMorph2); if (sGender1 == ":m" || sGender2 == ":m") { return ":N:m:p"; } if (sGender1 == ":f" || sGender2 == ":f") { return ":N:f:p"; } return ":N:e:p"; |
︙ | ︙ |
Modified gc_lang/fr/modules/cregex.py from [cca55d14bc] to [d34aee52e1].
1 2 3 4 5 6 7 8 9 10 | """ Grammalecte - Compiled regular expressions """ import re #### Lemme Lemma = re.compile(r"^>(\w[\w-]*)") #### Analyses | < < | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 | """ Grammalecte - Compiled regular expressions """ import re #### Lemme Lemma = re.compile(r"^>(\w[\w-]*)") #### Analyses GenderNumber = re.compile(":[mfe]:[spi]") #### Nom et adjectif NA = re.compile(":[NA]") ## nombre NAs = re.compile(":[NA].*:s") |
︙ | ︙ | |||
84 85 86 87 88 89 90 | def getLemmaOfMorph (s): "return lemma in morphology <s>" return Lemma.search(s).group(1) def agreement (l1, l2): "returns True if agreement in gender and number is possible between morphologies <l1> and <l2>" | | | | < < | < < < < < < < < < < < < < < < < < < < < < < < < < < < < < | 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 | def getLemmaOfMorph (s): "return lemma in morphology <s>" return Lemma.search(s).group(1) def agreement (l1, l2): "returns True if agreement in gender and number is possible between morphologies <l1> and <l2>" sGender1, sNumber1 = getGenderNumber(l1) sGender2, sNumber2 = getGenderNumber(l2) if sNumber1 != ":i" and sNumber2 != ":i" and sNumber1 != sNumber2: return False if sGender1 != ":e" and sGender2 != ":e" and sGender1 != sGender2: return False return True def checkConjVerb (lMorph, sReqConj): "returns True if <sReqConj> in <lMorph>" return any(sReqConj in s for s in lMorph) def getGenderNumber (lMorph): "returns tuple (gender, number) of word: (':m', ':f', ':e' or empty string) and (':s', ':p', ':i' or empty string)" sGender = "" sNumber = "" for sMorph in lMorph: m = GenderNumber.search(sMorph) if m: |
︙ | ︙ |
Modified gc_lang/fr/modules/gce_analyseur.py from [6a83d3b431] to [af51223cf8].
︙ | ︙ | |||
40 41 42 43 44 45 46 47 48 49 50 | if _zUnitSpecial.search(s): return True if 1 < len(s) < 16 and s[0:1].islower() and (not s[1:].islower() or _zUnitNumbers.search(s)): return True return False def queryNamesPOS(sWord1, sWord2): lMorph1 = _oSpellChecker.getMorph(sWord1) lMorph2 = _oSpellChecker.getMorph(sWord2) if not lMorph1 or not lMorph2: return ":N:e:p" | > | | | 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 | if _zUnitSpecial.search(s): return True if 1 < len(s) < 16 and s[0:1].islower() and (not s[1:].islower() or _zUnitNumbers.search(s)): return True return False def queryNamesPOS(sWord1, sWord2): "returns POS tag for <sWord1> and <sWord2> as a whole" lMorph1 = _oSpellChecker.getMorph(sWord1) lMorph2 = _oSpellChecker.getMorph(sWord2) if not lMorph1 or not lMorph2: return ":N:e:p" sGender1, _ = cr.getGenderNumber(lMorph1) sGender2, _ = cr.getGenderNumber(lMorph2) if sGender1 == ":m" or sGender2 == ":m": return ":N:m:p" if sGender1 == ":f" or sGender2 == ":f": return ":N:f:p" return ":N:e:p" |
Modified gc_lang/fr/rules.grx from [1293ea0eda] to [5336f0db3c].
︙ | ︙ | |||
3303 3304 3305 3306 3307 3308 3309 | __da_groupe_nominal__ à [la|l’|leur] @:[NA]¬:Y [sans|pour|par] [la|l’|le|les|leur] @:[NA]¬:Y [à|par] @:[NA]¬:Y <<- =>> select(\-1, "", ":V") | < < | | | | < | | > | | > | > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > | > > > > > > > > | 3303 3304 3305 3306 3307 3308 3309 3310 3311 3312 3313 3314 3315 3316 3317 3318 3319 3320 3321 3322 3323 3324 3325 3326 3327 3328 3329 3330 3331 3332 3333 3334 3335 3336 3337 3338 3339 3340 3341 3342 3343 3344 3345 3346 3347 3348 3349 3350 3351 3352 3353 3354 3355 3356 3357 3358 3359 3360 3361 3362 3363 3364 3365 3366 3367 3368 3369 3370 3371 3372 3373 3374 3375 3376 3377 3378 3379 3380 3381 3382 3383 3384 3385 3386 3387 3388 3389 3390 3391 3392 3393 3394 3395 3396 3397 3398 3399 3400 3401 3402 3403 3404 3405 3406 3407 3408 3409 3410 3411 3412 3413 3414 3415 3416 3417 3418 3419 3420 3421 3422 3423 3424 3425 | __da_groupe_nominal__ à [la|l’|leur] @:[NA]¬:Y [sans|pour|par] [la|l’|le|les|leur] @:[NA]¬:Y [à|par] @:[NA]¬:Y <<- =>> select(\-1, "", ":V") aucun @:[NA].*:[me]:s¬:(?:G|V0) aucune @:[NA].*:[fe]:s¬:(?:G|V0) <<- =>> select(\1, ":D") and select(\2, ":N") [au|aux] @:[NA]¬:V0 <<- =>> select(\-1, "", ":V") certains @:[NA].*:[me]:p¬:(?:G|3p|V0) certaines @:[NA].*:[fe]:p¬:(?:G|3p|V0) <<- =>> select(\1, ":D") and select(\2, ":[NA]") d’ [un|une] *WORD <<- =>> select(\2, ":D") and select(\3, "", ":V") [un|quel|cet|l’|notre|votre] été <<- =>> select(\2, ":N") l’ [un|une] *WORD <<- not value(\3, "|plus|") =>> select(\3, ":[123][sp]") chaque @:[NA]¬:V0 chaque [avoir|être] <<- =>> select(\-1, "", ":V") ce @:[NA].*:[me]:[si]¬:(?:3[sp]|V0) <<- not value(<1, "|il|elle|on|iel|ils|elles|iels|ne|n’|") =>> select(\-1, ":[NA]") [cet|cette|ces] @:[NA]¬:V0 [cet|cette|ces] [avoir|être] <<- =>> select(\-1, "", ":V") les ~.es$ <<- not value(<1, "|tu|ne|n’|me|m’|te|t’|se|s’|nous|vous|") and morph(\2, ":V1.*Ip.*:2s") and not tagbefore(\1, "_2s_") and not value(>1, "|tu|pas|jamais|") =>> select(\2, "", ":V") [un|une] *WORD <<- not value(<1, "|l’|quelqu’|quelqu|") and not value(\2, "|a|fut|fût|est|fait|") and not morph(\2, ":P") =>> select(\2, "", ":V") [/_VCint_|/_VCimp_] [le|la|l’|leur|les] $:¬:Y <<- =>> select(\2, ":D") [de|d’] ?[la|l’|leur]¿ @:¬:[YD] <<- not value(<1, "|semblant|") =>> select(\-1, "", ":V") de [>tel|ce|cet|cette|ces|mon|ma|ta|sa|mes|tes|ses|notre|votre|plein|pleine] *WORD <<- =>> select(\3, "", ":V") de [tous|toutes] les *WORD <<- =>> select(\4, ":[NA]") des @:[NA] <<- not \1.isupper() =>> select(\-1, "", ":V") du @:[NA].*:[me]:[si]¬:[GY] <<- =>> select(\2, ":[NA]") en [plein|pleine] *WORD <<- =>> select(\3, ":[NA]") en tant que *WORD <<- =>> select(\4, ":[NA]") la nuit <<- =>> select(\2, ":N") leurs @:[NA]¬:V0 <<- not value(<1, "|je|tu|il|on|elle|iel|nous|vous|ils|elles|iels|") =>> select(\-1, ":[NA]") mon @:[NA]¬:V0 mon [avoir|être] <<- =>> select(\-1, "", ":V") [ma|ta] @:[NA]¬:V0 <<- =>> select(\-1, "", ":V") sa @¬:(?:V0|3s) <<- =>> select(\2, "", ":V") [notre|votre] @:[NA]¬:V0 <<- not value(<1, "|du|le|la|l’|les|des|") =>> select(\-1, "", ":V") [mes|tes|ses|nos|vos] @:[NA]¬:V0 <<- =>> select(\-1, "", ":V") [nos|vos] @:[NA]¬:V0 <<- =>> select(\-1, "", ":V") ni *WORD <<- =>> select(\-1, ":N") nombre [de|d’|des] <<- morph(<1, ":[VR]|<start>|>,") =>> select(\1, ":N") par *WORD <<- =>> select(\2, "", ":[123][sp]") plein [de|d’] @:[NA] <<- not morph(<1, ":(?:D.*:m|V[0-3]e)") =>> =define(\1, ":G") plusieurs @:[NA].*:p¬:(?:G|3p|V0) <<- =>> select(\1, ":D") and select(\2, ":[NA]") [quel|quels|quelle|quelles] @:[NA]¬:V0 [quel|quels|quelle|quelles] [être|avoir] <<- =>> select(\-1, "", ":V") [quelque|quelques] @:[NA]¬:V0 [quelque|quelques] [avoir|être] <<- =>> select(\-1, "", ":V") sans @:[ISKP] <<- =>> select(\2, ":[NA]") source [de|d’] <<- morph(<1, ":V[0-3]e") =>> define(\1, ":ÉV") |
︙ | ︙ | |||
7400 7401 7402 7403 7404 7405 7406 | TEST: La peur irraisonnée de l’autre est le plus grave danger qu’ont à affronter les civilisations. __conf_on_ont__ [<start>|,|/_start_] ?l’¿ (ont) [ne|n’|me|m’|te|se|s’] [<start>|,|/_start_] ?l’¿ (ont) [lui|nous|vous] @:[123][sp]¬:G [<start>|,|/_start_] ?l’¿ (ont) [leur|le|la|l’] @:[123][sp]¬:(?:G|[NA].*:[si]) | | | 7438 7439 7440 7441 7442 7443 7444 7445 7446 7447 7448 7449 7450 7451 7452 | TEST: La peur irraisonnée de l’autre est le plus grave danger qu’ont à affronter les civilisations. __conf_on_ont__ [<start>|,|/_start_] ?l’¿ (ont) [ne|n’|me|m’|te|se|s’] [<start>|,|/_start_] ?l’¿ (ont) [lui|nous|vous] @:[123][sp]¬:G [<start>|,|/_start_] ?l’¿ (ont) [leur|le|la|l’] @:[123][sp]¬:(?:G|[NA].*:[si]) [<start>|,|/_start_] ?l’¿ (ont) @:[123][sp]¬:[GQ]|>(?:envie|charge|peine|marre|affaire|hâte|force|recours|somme)/ <<- /conf/ -1>> on && Confusion probable : le mot “ont” est une conjugaison du verbe avoir. [<start>|,|/_start_] ?l’¿ ont t’ <<- /conf/ not value(>1, "|il|ils|elle|elles|iel|iels|") --2>> on && Confusion probable : le mot “ont” est une conjugaison du verbe avoir. ~-[oO]nt$ <<- /conf/ ->> =\1[:-1] && Incohérence : le mot “ont” est une forme conjuguée du verbe “avoir” (par exemple : “ils ont”). Pour le pronom, écrivez “on”. |
︙ | ︙ | |||
8658 8659 8660 8661 8662 8663 8664 | TEST: elle n’y {{à}} pas droit. ->> a TEST: il y {{à}} des pertes. ->> a TEST: Il les y {{à}}. ->> a TEST: Y {{à}} du poulet ->> a [l’|les] à | | | | 8696 8697 8698 8699 8700 8701 8702 8703 8704 8705 8706 8707 8708 8709 8710 8711 8712 8713 8714 | TEST: elle n’y {{à}} pas droit. ->> a TEST: il y {{à}} des pertes. ->> a TEST: Il les y {{à}}. ->> a TEST: Y {{à}} du poulet ->> a [l’|les] à <<- /conf/ not \1.isupper() and not value(>1, "|côté|coup|pic|peine|marre|peu|plat|propos|valoir|") -2>> a && Confusion : “à” est une préposition. Pour le verbe avoir, écrivez “a”. en à <<- /conf/ not \1.isupper() and not value(>1, "|côté|coup|pic|peine|marre|peu|plat|propos|valoir|") and not morph(<1, ">venir/") -2>> a && Confusion : “à” est une préposition. Pour le verbe avoir, écrivez “a”. TEST: Ce fâcheux, comme à son habitude, les {{à}} ennuyés à mourir. ->> a TEST: Lui l’{{à}} pris par surprise. ->> a TEST: Il y en {{à}}. ->> a TEST: Elle en {{à}} pris. ->> a TEST: Elle l’en {{à}} averti. ->> a |
︙ | ︙ | |||
9349 9350 9351 9352 9353 9354 9355 | ## substantifs __conf_substantif_à_substantif!3__ *WORD a $:N¬* <<- /conf/ \2.islower() | | | 9387 9388 9389 9390 9391 9392 9393 9394 9395 9396 9397 9398 9399 9400 9401 | ## substantifs __conf_substantif_à_substantif!3__ *WORD a $:N¬* <<- /conf/ \2.islower() and not value(\3, "|accès|bon|bonne|beau|besoin|charge|confiance|connaissance|conscience|crainte|droit|envie|été|faim|force|grand|grande|hâte|honte|interdiction|intérêt|lieu|mauvaise|marre|peine|peur|raison|rapport|recours|soif|tendance|terre|tort|trait|vent|vocation|") and morph(\1, ":N", "*") -2>> à && Confusion probable : “a” est une forme conjuguée du verbe “avoir”. Pour la préposition, écrivez “à”.|https://fr.wiktionary.org/wiki/%C3%A0 TEST: les bobos {{a}} trottinette ->> à TEST: la lettre A est la première lettre de l’alphabet TEST: la lettre a est la première lettre de l’alphabet TEST: cette femme a raison |
︙ | ︙ | |||
18659 18660 18661 18662 18663 18664 18665 18666 18667 18668 18669 18670 18671 18672 | >port [de|d’] plaisance >porte [de|d’] [entrée|service|garage|sortie] >porte d’ entrée >pot [de|d’] [chambre|colle|départ|échappement] >poteau d’ exécution >poudre aux yeux >poudre d’ escampette >poule aux œufs d’ or >pouvoir d’ achat >prédication [de|d’] rue >préfecture [de|d’] police >président en exercice >presse à >scandale preuve ?suffisante¿ du contraire | > | 18697 18698 18699 18700 18701 18702 18703 18704 18705 18706 18707 18708 18709 18710 18711 | >port [de|d’] plaisance >porte [de|d’] [entrée|service|garage|sortie] >porte d’ entrée >pot [de|d’] [chambre|colle|départ|échappement] >poteau d’ exécution >poudre aux yeux >poudre d’ escampette >poudre [de|d’] perlimpinpin >poule aux œufs d’ or >pouvoir d’ achat >prédication [de|d’] rue >préfecture [de|d’] police >président en exercice >presse à >scandale preuve ?suffisante¿ du contraire |
︙ | ︙ | |||
18847 18848 18849 18850 18851 18852 18853 18854 18855 18856 18857 18858 18859 18860 | >véhicule [de|d’] location >vente à [découvert|domicile|emporter] >vente aux enchères >ventilateur à merde >vérification [de|d’] routine vernis à ongles >ver [de|d’] terre >verre à pied >vêtement [de|d’] rechange >vidéo X >vie [de|d’] bohème >violence [par|sur] personne dépositaire de l’ autorité publique >violence [par|sur] personnes dépositaires de l’ autorité publique >virage à [*NUM|@:B:.:p] degrés | > | 18886 18887 18888 18889 18890 18891 18892 18893 18894 18895 18896 18897 18898 18899 18900 | >véhicule [de|d’] location >vente à [découvert|domicile|emporter] >vente aux enchères >ventilateur à merde >vérification [de|d’] routine vernis à ongles >ver [de|d’] terre >ver à soie >verre à pied >vêtement [de|d’] rechange >vidéo X >vie [de|d’] bohème >violence [par|sur] personne dépositaire de l’ autorité publique >violence [par|sur] personnes dépositaires de l’ autorité publique >virage à [*NUM|@:B:.:p] degrés |
︙ | ︙ | |||
19246 19247 19248 19249 19250 19251 19252 | >avoir ?[pas|jamais|plus|guère|point]¿ un [moment|instant] >avoir ?[pas|jamais|plus|guère|point]¿ un minimum >avoir ?[pas|jamais|plus|guère|point]¿ un peu >avoir ?[pas|jamais|plus|guère|point]¿ un petit peu >avoir ?[pas|jamais|plus|guère|point]¿ un tout petit peu <<- morph(>1, ":[QY]") ~2:0>> * | | | | | 19286 19287 19288 19289 19290 19291 19292 19293 19294 19295 19296 19297 19298 19299 19300 19301 19302 19303 19304 19305 19306 19307 19308 19309 19310 19311 19312 19313 19314 19315 19316 19317 19318 19319 19320 19321 19322 | >avoir ?[pas|jamais|plus|guère|point]¿ un [moment|instant] >avoir ?[pas|jamais|plus|guère|point]¿ un minimum >avoir ?[pas|jamais|plus|guère|point]¿ un peu >avoir ?[pas|jamais|plus|guère|point]¿ un petit peu >avoir ?[pas|jamais|plus|guère|point]¿ un tout petit peu <<- morph(>1, ":[QY]") ~2:0>> * >avoir [besoin|confiance|connaissance|conscience|crainte|envie|faim|honte|marre|peur|peine|pitié|soif|vent] >avoir bon [dos|fond] >avoir bon pied ?,¿ bon œil >avoir carte blanche >avoir forme [humaine|animale] >avoir partie [gagnée|liée] >avoir voix au chapitre <<- ~2:0>> ␣ <<- =>> define(\2, ":ÉV") >avoir [pas|jamais|plus|guère|point] [besoin|confiance|connaissance|conscience|crainte|envie|faim|honte|marre|peur|peine|pitié|soif|vent] >avoir [pas|jamais|plus|guère|point] bon [dos|fond] >avoir [pas|jamais|plus|guère|point] bon pied ?,¿ bon œil >avoir [pas|jamais|plus|guère|point] carte blanche >avoir [pas|jamais|plus|guère|point] forme [humaine|animale] >avoir [pas|jamais|plus|guère|point] gain de cause >avoir [pas|jamais|plus|guère|point] partie [gagnée|liée] >avoir [pas|jamais|plus|guère|point] quartier libre >avoir [pas|jamais|plus|guère|point] voix au chapitre <<- ~3:0>> ␣ <<- =>> define(\3, ":ÉV") >avoir ?[pas|jamais|plus|guère|point]¿ [tous|toutes] les @:B:.:p [besoin|confiance|connaissance|conscience|crainte|envie|faim|honte|marre|peur|peine|pitié|soif|vent] >avoir ?[pas|jamais|plus|guère|point]¿ [tous|toutes] les @:B:.:p @:(?:Q|V1.*:Y) <<- ~2:-2>> * n’ >avoir que $:Q <<- ~3>> * n’ >avoir que $:W $:Q |
︙ | ︙ | |||
19300 19301 19302 19303 19304 19305 19306 | /_VCint_ ?[pas|jamais|plus|guère|point]¿ un [moment|instant] /_VCint_ ?[pas|jamais|plus|guère|point]¿ un minimum /_VCint_ ?[pas|jamais|plus|guère|point]¿ un peu /_VCint_ ?[pas|jamais|plus|guère|point]¿ un petit peu /_VCint_ ?[pas|jamais|plus|guère|point]¿ un tout petit peu <<- morphVC(\1, ":V0a") and morph(>1, ":[QY]") ~2:0>> * | | | | | 19340 19341 19342 19343 19344 19345 19346 19347 19348 19349 19350 19351 19352 19353 19354 19355 19356 19357 19358 19359 19360 19361 19362 19363 19364 19365 19366 19367 19368 19369 19370 19371 19372 19373 19374 19375 19376 | /_VCint_ ?[pas|jamais|plus|guère|point]¿ un [moment|instant] /_VCint_ ?[pas|jamais|plus|guère|point]¿ un minimum /_VCint_ ?[pas|jamais|plus|guère|point]¿ un peu /_VCint_ ?[pas|jamais|plus|guère|point]¿ un petit peu /_VCint_ ?[pas|jamais|plus|guère|point]¿ un tout petit peu <<- morphVC(\1, ":V0a") and morph(>1, ":[QY]") ~2:0>> * /_VCint_ [besoin|confiance|connaissance|conscience|crainte|envie|faim|honte|marre|peur|peine|pitié|soif|vent] /_VCint_ bon [dos|fond] /_VCint_ bon pied ?,¿ bon œil /_VCint_ carte blanche /_VCint_ forme [humaine|animale] /_VCint_ partie [gagnée|liée] /_VCint_ voix au chapitre <<- morphVC(\1, ":V0a") ~2:0>> ␣ <<- __also__ =>> define(\2, ":ÉV") /_VCint_ [pas|jamais|plus|guère|point] [besoin|confiance|connaissance|conscience|crainte|envie|faim|honte|marre|peur|peine|pitié|soif|vent] /_VCint_ [pas|jamais|plus|guère|point] bon [dos|fond] /_VCint_ [pas|jamais|plus|guère|point] bon pied ?,¿ bon œil /_VCint_ [pas|jamais|plus|guère|point] carte blanche /_VCint_ [pas|jamais|plus|guère|point] forme [humaine|animale] /_VCint_ [pas|jamais|plus|guère|point] gain de cause /_VCint_ [pas|jamais|plus|guère|point] partie [gagnée|liée] /_VCint_ [pas|jamais|plus|guère|point] quartier libre /_VCint_ [pas|jamais|plus|guère|point] voix au chapitre <<- morphVC(\1, ":V0a") ~3:0>> ␣ <<- __also__ =>> define(\3, ":ÉV") /_VCint_ ?[pas|jamais|plus|guère|point]¿ [tous|toutes] les @:B:.:p [besoin|confiance|connaissance|conscience|crainte|envie|faim|honte|marre|peur|peine|pitié|soif|vent] /_VCint_ ?[pas|jamais|plus|guère|point]¿ [tous|toutes] les @:B:.:p @:(?:Q|V1.*:Y) <<- morphVC(\1, ":V0a") ~2:-2>> * __purge_après_verbe__ $:V ?pas¿ jour et nuit $:V ?pas¿ nuit et jour |
︙ | ︙ | |||
22377 22378 22379 22380 22381 22382 22383 | TEST: Cette réunion ayant eu {{lieue}} loin d’ici ->> lieu TEST: ces conneries donneront {{lieux}} à une enquête approfondie. ->> lieu TEST: Tout ce qui a {{lieue}} hors de ce pays est ignoré. ->> lieu TEST: la répression extrêmement violente des diverses manifestations qui ont eu lieu depuis la fin du mois de novembre # mare / marre | | | | 22417 22418 22419 22420 22421 22422 22423 22424 22425 22426 22427 22428 22429 22430 22431 22432 22433 22434 22435 22436 22437 22438 | TEST: Cette réunion ayant eu {{lieue}} loin d’ici ->> lieu TEST: ces conneries donneront {{lieux}} à une enquête approfondie. ->> lieu TEST: Tout ce qui a {{lieue}} hors de ce pays est ignoré. ->> lieu TEST: la répression extrêmement violente des diverses manifestations qui ont eu lieu depuis la fin du mois de novembre # mare / marre __conf_marre_mare!6__ [la|une|cette|quelle|cette|ma|ta|sa] ?petite¿ marre <<- /conf/ --1>> mare && Confusion. Pour parler d’une petite étendue d’eau, écrivez “mare”. En “avoir marre de” = “en avoir assez de”. en >avoir mare <<- /conf/ -3>> marre && Confusion. Une mare est une petite étendue d’eau. TEST: la {{marre}} est presque sèche. ->> mare TEST: j’en ai {{mare}} de tout ça. ->> marre TEST: en avoir vraiment {{mare}} de ces conneries. ->> marre # mâter / mater __conf_mater_mâter__ >mâter $:D [>adversaire|>armée|>cavalier|>cheval|>chien|>con|>connard|>connasse|>cul|>dame|>enfoiré|>emmerdeur|>enfant|>ennemi|>enculé|>femme|>fesse|>fille|fils|>fou|>foule|>gamin|>garçon|>homme|>horde|>incendie|>insurrection|>jument|>lion|>nation|>peuple|>pion|>pute|>rebelle|>rébellion|>reine|>roi|>sein|>salope|>tigre|>tour|>troupe] |
︙ | ︙ | |||
24707 24708 24709 24710 24711 24712 24713 | TEST: une personne ou plusieurs ayant décidé de façon déterminée et coordonnée de faire cuire la grenouille __gn_ces_aux_pluriel_1m__ [ces|aux] *WORD <<- /gn/ morph(\2, ":[NA].*:s", ":[ipGW]") and not (value(>1, "|et|ou|") and morph(>2, ":[NA]")) -2>> =suggPlur(\2) && Accord de nombre erroné : « \2 » devrait être au pluriel. | | | 24747 24748 24749 24750 24751 24752 24753 24754 24755 24756 24757 24758 24759 24760 24761 | TEST: une personne ou plusieurs ayant décidé de façon déterminée et coordonnée de faire cuire la grenouille __gn_ces_aux_pluriel_1m__ [ces|aux] *WORD <<- /gn/ morph(\2, ":[NA].*:s", ":[ipGW]") and not (value(>1, "|et|ou|") and morph(>2, ":[NA]")) -2>> =suggPlur(\2) && Accord de nombre erroné : « \2 » devrait être au pluriel. <<- /gn/ __also__ and morph(\2, ">[bcçdfgjklmnpqrstvwxz].*:m", ":f") >>> <<- /gn/ \1.endswith("x") or \1.endswith("X") -1>> au && Accord de nombre erroné : « \2 » est au singulier. <<- /gn/ __else__ -1>> ce && Accord de nombre erroné : « \2 » est au singulier. TEST: {{ces}} {{détournement}} de fonds et ces vols ->> ce|||détournements TEST: ces {{étudiant}} sont légion. ->> étudiants TEST: je vais {{aux}} {{cinéma}} ->> au|||cinémas TEST: il l’a donné aux {{étudiant}} ->> étudiants |
︙ | ︙ | |||
25919 25920 25921 25922 25923 25924 25925 | TEST: l’école de mon entreprise {{pillé}} ->> pillée TEST: l’école de notre cité {{reconstruites}} ->> reconstruite TEST: l’existence de la foi {{rejeté}} ->> rejetée TEST: son homologue de la ville écarté de l’ordre __gn_det_nom_de_det_nom_adj_sing!3__ | | | > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > | | | | 25959 25960 25961 25962 25963 25964 25965 25966 25967 25968 25969 25970 25971 25972 25973 25974 25975 25976 25977 25978 25979 25980 25981 25982 25983 25984 25985 25986 25987 25988 25989 25990 25991 25992 25993 25994 25995 25996 25997 25998 25999 26000 26001 26002 26003 26004 26005 26006 26007 26008 26009 26010 26011 26012 26013 26014 26015 26016 26017 26018 26019 26020 26021 26022 26023 26024 26025 26026 26027 26028 26029 26030 26031 26032 26033 26034 26035 26036 26037 26038 26039 26040 26041 26042 26043 26044 26045 26046 26047 26048 26049 26050 | TEST: l’école de mon entreprise {{pillé}} ->> pillée TEST: l’école de notre cité {{reconstruites}} ->> reconstruite TEST: l’existence de la foi {{rejeté}} ->> rejetée TEST: son homologue de la ville écarté de l’ordre __gn_det_nom_de_det_nom_adj_sing!3__ [le|la|l’|un|une|ce|cet|cette|mon|ton|son|ma|ta|sa|notre|votre|leur] *WORD [de|d’] [la|l’|un|une|ce|cet|cette|mon|ton|son|ma|ta|sa|notre|votre|leur] *WORD @:[NA].*:p¬:(?:G|P|i|s|V0|3[sp]) [le|la|l’|un|une|ce|cet|cette|mon|ton|son|ma|ta|sa|notre|votre|leur] *WORD du *WORD @:[NA].*:p¬:(?:G|P|i|s|V0|3[sp]) <<- /gn/ morph(\-2, ":[NA].*:[me]") and not apposition(\-2, \-1) --1>> =suggSing(\-1, True) && Accord erroné : “\-1” devrait être au masculin singulier. TEST: la femme de notre homme {{expulsés}} ->> expulsé __gn_det_nom_de_det_nom_adj_sing_plur__ [le|un|ce|cet] *WORD de [ces|mes|tes|ses|nos|vos|leurs|quelques] *WORD @:A¬:(?:G|P|V0|3[sp]) [le|un|ce|cet] *WORD des *WORD @:A¬:(?:G|P|V0|3[sp]) <<- /gn/ morph(\2, ":[NA].*:[me]:[si]", ":[fp]") and morph(\-2, ":[NA].*:[pi]") and not apposition(\-2, \-1) and not agreement(\-2, \-1) and not agreement(\2, \-1) --1>> =suggAgree(\-1, \-2) + "|" + suggMasSing(\-1) && Accord erroné : “\-1” devrait être accordé avec “\-2” ou “\2”. [la|une|cette|ma|ta|sa] *WORD de [ces|mes|tes|ses|nos|vos|leurs|quelques] *WORD @:A¬:(?:G|P|V0|3[sp]) [la|une|cette|ma|ta|sa] *WORD des *WORD @:A¬:(?:G|P|V0|3[sp]) <<- /gn/ morph(\2, ":[NA].*:[fe]:[si]", ":[mp]") and morph(\-2, ":[NA].*:[pi]") and not apposition(\-2, \-1) and not agreement(\-2, \-1) and not agreement(\2, \-1) --1>> =suggAgree(\-1, \-2) + "|" + suggFemSing(\-1) && Accord erroné : “\-1” devrait être accordé avec “\-2” ou “\2”. [l’|notre|votre|leur] *WORD de [ces|mes|tes|ses|nos|vos|leurs|quelques] *WORD @:A¬:(?:G|P|V0|3[sp]) [l’|notre|votre|leur] *WORD des *WORD @:A¬:(?:G|P|V0|3[sp]) <<- /gn/ morph(\2, ":[NA].*:[si]", ":p") and morph(\-2, ":[NA].*:[pi]") and not apposition(\-2, \-1) and not agreement(\-2, \-1) and not agreement(\2, \-1) --1>> =suggAgree(\-1, \-2) + "|" + suggAgree(\-1, \2) && Accord erroné : “\-1” devrait être accordé avec “\-2” ou “\2”. [mon|ton|son] *WORD de [ces|mes|tes|ses|nos|vos|leurs|quelques] *WORD @:A¬:(?:G|P|V0|3[sp]) [mon|ton|son] *WORD des *WORD @:A¬:(?:G|P|V0|3[sp]) <<- /gn/ morph(\2, ":[NA].*:[si]", ":p") and morph(\-2, ":[NA].*:[pi]") and not apposition(\-2, \-1) and not agreement(\-2, \-1) and not agreement(\2, \-1) >>> <<- /gn/ morph(\2, ">[bcçdfgjklmnpqrstvwxz].*:[NA].*:[me]:[si]") --1>> =suggAgree(\-1, \-2) + "|" + suggMasSing(\-1, \2) && Accord erroné : “\-1” devrait être accordé avec “\-2” ou “\2”. <<- /gn/ __else__ and morph(\2, ":[NA].*:[si]") --1>> =suggAgree(\-1, \-2) + "|" + suggAgree(\-1, \2) && Accord erroné : “\-1” devrait être accordé avec “\-2” ou “\2”. [les|ces|mes|tes|ses|nos|vos|leurs|quelques] *WORD [de|d’] [un|ce|cet] *WORD @:A¬:(?:G|P|V0|3[sp]) [les|ces|mes|tes|ses|nos|vos|leurs|quelques] *WORD du *WORD @:A¬:(?:G|P|V0|3[sp]) <<- /gn/ morph(\2, ":[NA].*:[pi]", ":s") and morph(\-2, ":[NA].*:[me]:[si]") and not apposition(\-2, \-1) and not agreement(\-2, \-1) and not agreement(\2, \-1) --1>> =suggMasSing(\-1) + "|" + suggAgree(\-1, \2) && Accord erroné : “\-1” devrait être accordé avec “\-2” ou “\2”. [les|ces|mes|tes|ses|nos|vos|leurs|quelques] *WORD [de|d’] [la|une|cette|ma|ta|sa] *WORD @:A¬:(?:G|P|V0|3[sp]) <<- /gn/ morph(\2, ":[NA].*:[pi]", ":s") and morph(\-2, ":[NA].*:[fe]:[si]") and not apposition(\-2, \-1) and not agreement(\-2, \-1) and not agreement(\2, \-1) --1>> =suggFemSing(\-1) + "|" + suggAgree(\-1, \2) && Accord erroné : “\-1” devrait être accordé avec “\-2” ou “\2”. [les|ces|mes|tes|ses|nos|vos|leurs|quelques] *WORD [de|d’] [l’|notre|votre|leur] *WORD @:A¬:(?:G|P|V0|3[sp]) <<- /gn/ morph(\2, ":[NA].*:[pi]", ":s") and morph(\-2, ":[NA].*:[si]") and not apposition(\-2, \-1) and not agreement(\-2, \-1) and not agreement(\2, \-1) --1>> =suggAgree(\-1, \-2) + "|" + suggAgree(\-1, \2) && Accord erroné : “\-1” devrait être accordé avec “\-2” ou “\2”. [les|ces|mes|tes|ses|nos|vos|leurs|quelques] *WORD [de|d’] [mon|ton|son] *WORD @:A¬:(?:G|P|V0|3[sp]) <<- /gn/ morph(\2, ":[NA].*:[pi]", ":s") and morph(\-2, ":[NA].*:[si]") and not apposition(\-2, \-1) and not agreement(\-2, \-1) and not agreement(\2, \-1) >>> <<- /gn/ morph(\-2, ">[bcçdfgjklmnpqrstvwxz].*:[NA].*:[me]:[si]") --1>> =suggMasSing(\-1, \-2) + "|" + suggAgree(\-1, \2) && Accord erroné : “\-1” devrait être accordé avec “\-2” ou “\2”. <<- /gn/ __else__ and morph(\-2, ":[NA].*:[si]") --1>> =suggAgree(\-1, \-2) + "|" + suggAgree(\-1, \2) && Accord erroné : “\-1” devrait être accordé avec “\-2” ou “\2”. TEST: le pari des fous {{engagées}} dans cette fuite en avant ->> engagé|engagés TEST: la faute de ces idiots {{inconscient}} ->> inconscients|inconsciente TEST: l’erreur de nos dirigeants {{oublié}} par tout le monde ->> oubliés|oubliée TEST: son président de ces jours {{passée}} ->> passés|passé TEST: son élégance de ces jours {{passées}} ->> passés|passée TEST: quelques erreurs du passé {{oubliés}} ->> oublié|oubliées TEST: les errements de la cité {{voisin}} ->> voisine|voisins TEST: vos compatriotes de votre ville {{tenu}} en haleine ->> tenue|tenus TEST: les instructions de mon président {{ignorée}} ->> ignoré|ignorées TEST: quelques consignes de son instructeur {{oubliée}} ->> oublié|oubliées __gn_det_nom_de_det_nom_adj_plur__ [les|ces|mes|tes|ses|nos|vos|leurs|quelques] *WORD de [ces|mes|tes|ses|nos|vos|leurs|quelques] *WORD @:A.*:[pi]¬:(?:G|P|s|V0|3[sp]) [les|ces|mes|tes|ses|nos|vos|leurs|quelques] *WORD des *WORD @:A.*:[pi]¬:(?:G|P|s|V0|3[sp]) <<- /gn/ morph(\2, ":[NA].*:[pi]", ":s") and morph(\-2, ":[NA].*:[pi]") and not apposition(\-2, \-1) and not agreement(\-2, \-1) and not agreement(\2, \-1) --1>> =suggAgree(\-1, \-2) && Accord erroné : “\-1” devrait être accordé avec “\-2” ou “\2”. [les|ces|mes|tes|ses|nos|vos|leurs|quelques] *WORD de [ces|mes|tes|ses|nos|vos|leurs|quelques] *WORD @:[NA].*:s¬:(?:G|P|i|p|V0|3[sp]) [les|ces|mes|tes|ses|nos|vos|leurs|quelques] *WORD des *WORD @:[NA].*:s¬:(?:G|P|i|p|V0|3[sp]) <<- /gn/ morph(\2, ":[NA].*:[pi]", ":s") and morph(\-2, ":[NA].*:[pi]") and not apposition(\-2, \-1) and not (value(>1, "|et|ou|") and morph(>2, ":A.*:[si]")) --1>> =suggPlur(\-1) && Accord erroné : “\-1” devrait être au pluriel. TEST: ces femmes des mines {{voisins}} ->> voisines |
︙ | ︙ | |||
29198 29199 29200 29201 29202 29203 29204 | <<- /ppas/ morph(\-1, ":V[123]_.__p_e_", "*") or (value(>1, "|<end>|") and not morph(<1, ":R|>que/")) --1>> =suggVerbPpas(\-1, ":f:p") && Si ce participe passé se rapporte bien à “elles”, il devrait être au féminin pluriel. TEST: elles ne s’y étaient pas {{donnée}}. ->> données TEST: sans fin elles se sont succédé | | > > > > > | 29302 29303 29304 29305 29306 29307 29308 29309 29310 29311 29312 29313 29314 29315 29316 29317 29318 29319 29320 29321 29322 29323 29324 29325 29326 29327 29328 29329 29330 29331 29332 29333 | <<- /ppas/ morph(\-1, ":V[123]_.__p_e_", "*") or (value(>1, "|<end>|") and not morph(<1, ":R|>que/")) --1>> =suggVerbPpas(\-1, ":f:p") && Si ce participe passé se rapporte bien à “elles”, il devrait être au féminin pluriel. TEST: elles ne s’y étaient pas {{donnée}}. ->> données TEST: sans fin elles se sont succédé __ppas_ne_me_te_se_être__ [ne|n’] ?[y|en]¿ être @:(?:Y|[123][sp])¬:[QAG] <<- /ppas/ --1>> =suggVerbPpas(\-1) && Incohérence. Le verbe devrait être un participe passé. [me|m’|te|se|s’] ?[y|en]¿ >être @:(?:Y|[123][sp])¬:[QAG] <<- /ppas/ morph(\-2, ":[123]s") --1>> =suggVerbPpas(\-1, ":s") && Incohérence. Le verbe devrait être un participe passé. <<- /ppas/ morph(\-2, ":[123]p") --1>> =suggVerbPpas(\-1, ":p") && Incohérence. Le verbe devrait être un participe passé. <<- /ppas/ __else__ --1>> =suggVerbPpas(\-1) && Incohérence. Le verbe devrait être un participe passé. [me|m’|te|se|s’] ?[y|en]¿ >être @:[QA].*:p¬:[GW] <<- /ppas/ morph(\-2, ":[123]s") and not tagbefore(\1, "_que_") and not before("(?i)\\bon (?:ne |)$") --1>> =suggSing(\-1) && Le participe passé devrait être au singulier. tu t’ ?[y|en]¿ [es|étais|seras|serais|fus|fusses] @:(?:Y|[123][sp])¬:[QG] <<- /ppas/ --1>> =suggVerbPpas(\-1, ":s") && Incohérence. Le verbe devrait être un participe passé. TEST: n’y être {{attacher}} que par habitude ->> attaché|attachés|attachée|attachées TEST: n’être {{attacher}} à rien ->> attaché|attachés|attachée|attachées TEST: s’être toujours {{donner}} le mot. ->> donné|donnée|donnés|données TEST: je suis venu et me suis totalement {{donnés}} à cette œuvre ->> donné TEST: c’est de ce qui s’est {{passe}}. ->> passé|passée TEST: s’était toujours {{passe}} comme ça avec elle ->> passé|passée TEST: s’est {{approche}} de la penderie ->> approché|approchée TEST: terrorisant l’animal qui s’était {{cabre}}. ->> cabré|cabrée TEST: ce qui s’est {{passe}}. ->> passé|passée |
︙ | ︙ | |||
30213 30214 30215 30216 30217 30218 30219 | !!!! Participes passés: accord avec le substantif précédent !! __ppas_sujet_être_accord_immunités__ *WORD [que|qu’] [un|le|ce|cet|une|la|ma|ta|sa|cette|l’|mon|ton|son|notre|votre|leur|les|ces|mes|tes|ses|nos|vos|leurs|quelques|plusieurs|$:B] *WORD ?[ne|n’]¿ ?[en|y]¿ | | | | | | | | 30322 30323 30324 30325 30326 30327 30328 30329 30330 30331 30332 30333 30334 30335 30336 30337 30338 30339 30340 30341 30342 30343 30344 30345 30346 30347 30348 30349 30350 30351 30352 30353 | !!!! Participes passés: accord avec le substantif précédent !! __ppas_sujet_être_accord_immunités__ *WORD [que|qu’] [un|le|ce|cet|une|la|ma|ta|sa|cette|l’|mon|ton|son|notre|votre|leur|les|ces|mes|tes|ses|nos|vos|leurs|quelques|plusieurs|$:B] *WORD ?[ne|n’]¿ ?[en|y]¿ || [>affirmer|>croire|>déclarer|>désirer|>détester|>dire|>estimer|>imaginer|>penser|>préférer|>savoir|>souhaiter|>vouloir] || [être|devenir|redevenir|rester|paraître|paraitre|sembler] *WORD *WORD [que|qu’] [un|le|ce|cet|une|la|ma|ta|sa|cette|l’|mon|ton|son|notre|votre|leur|les|ces|mes|tes|ses|nos|vos|leurs|quelques|plusieurs|$:B] *WORD ?[ne|n’]¿ ?[en|y]¿ || [>affirmer|>croire|>déclarer|>désirer|>détester|>dire|>estimer|>imaginer|>penser|>préférer|>savoir|>souhaiter|>vouloir] || être [devenu+e|redevenu+e|resté+e|demeuré+e] *WORD *WORD [que|qu’] [un|le|ce|cet|une|la|ma|ta|sa|cette|l’|mon|ton|son|notre|votre|leur|les|ces|mes|tes|ses|nos|vos|leurs|quelques|plusieurs|$:B] *WORD ?[ne|n’]¿ ?[en|y]¿ || [>affirmer|>croire|>déclarer|>désirer|>détester|>dire|>estimer|>imaginer|>penser|>préférer|>savoir|>souhaiter|>vouloir] || avoir [été|semblé|paru] *WORD <<- /ppas/ agreement(\1, \-1) !-1>> *WORD [que|qu’] $:M ?[ne|n’]¿ || [>affirmer|>croire|>déclarer|>désirer|>détester|>dire|>estimer|>imaginer|>penser|>préférer|>savoir|>souhaiter|>vouloir] || [être|devenir|redevenir|rester|paraître|paraitre|sembler] *WORD *WORD [que|qu’] $:M ?[ne|n’]¿ || [>affirmer|>croire|>déclarer|>désirer|>détester|>dire|>estimer|>imaginer|>penser|>préférer|>savoir|>souhaiter|>vouloir] || être [devenu+e|redevenu+e|resté+e|demeuré+e] *WORD *WORD [que|qu’] $:M ?[ne|n’]¿ || [>affirmer|>croire|>déclarer|>désirer|>détester|>dire|>estimer|>imaginer|>penser|>préférer|>savoir|>souhaiter|>vouloir] || avoir [été|semblé|paru] *WORD <<- /ppas/ agreement(\1, \-1) !-1>> __ppas_sujet_être_accord_singulier__ [<start>|,|(|/_start_] [un|le|ce|cet] (*WORD) ?qui¿ ?[ne|n’]¿ ?[en|y]¿ (/_VE_) @:[AQ]¬:(?:[GWM]|[me]:[si]) [<start>|,|(|/_start_] [un|le|ce|cet] (*WORD) ?qui¿ ?[ne|n’]¿ ?[en|y]¿ (/_LVED_) ?/_LVE_¿ ?/_LVE_¿ ?/_LVE_¿ ?/_LVE_¿ /_LVEF_ @:[AQ]¬:(?:[GWM]|[me]:[si]) |
︙ | ︙ | |||
30725 30726 30727 30728 30729 30730 30731 30732 30733 30734 30735 30736 30737 30738 | TEST: L’affront dont il parle, c’est manquer de respect à ses aînés TEST: Nous nous efforçons de comprendre ce qu’être veut dire, ce qu’être signifie. TEST: ce qu’il avait cru être devenait un rêve lointain et à peine concevable. TEST: la grande crainte du maire est de voir s’effondrer d’autres immeubles TEST: la grande crainte du maire est de voir arriver d’autres immigrés TEST: Ce faisant, la chambre criminelle nous précise que relayer n’est pas forcément diffamer TEST: maintenir en confinement certaines personnes sous prétexte qu’elles sont à risques serait une mesure inconstitutionnelle et discriminatoire. !! !! !!!! Participes passés: avoir l’air !! !! | > | 30834 30835 30836 30837 30838 30839 30840 30841 30842 30843 30844 30845 30846 30847 30848 | TEST: L’affront dont il parle, c’est manquer de respect à ses aînés TEST: Nous nous efforçons de comprendre ce qu’être veut dire, ce qu’être signifie. TEST: ce qu’il avait cru être devenait un rêve lointain et à peine concevable. TEST: la grande crainte du maire est de voir s’effondrer d’autres immeubles TEST: la grande crainte du maire est de voir arriver d’autres immigrés TEST: Ce faisant, la chambre criminelle nous précise que relayer n’est pas forcément diffamer TEST: maintenir en confinement certaines personnes sous prétexte qu’elles sont à risques serait une mesure inconstitutionnelle et discriminatoire. TEST: Nous avons vu cet être donner sa vie pour son enfant. !! !! !!!! Participes passés: avoir l’air !! !! |
︙ | ︙ | |||
30875 30876 30877 30878 30879 30880 30881 | __immu_les_avoir_fait_vinfi__ les >avoir fait ?[me|m’|te|t’|se|s’|nous|vous|leur]¿ $:Y <<- !3>> __ppas_ayant__ ayant @:(?:Q.*:[fp]|[123][sp])¬:(?:G|N|m:[si]) | | | | | | | 30985 30986 30987 30988 30989 30990 30991 30992 30993 30994 30995 30996 30997 30998 30999 31000 31001 31002 31003 31004 31005 31006 31007 31008 31009 31010 31011 31012 31013 31014 31015 31016 31017 31018 31019 31020 31021 31022 31023 31024 31025 31026 31027 31028 31029 31030 31031 31032 | __immu_les_avoir_fait_vinfi__ les >avoir fait ?[me|m’|te|t’|se|s’|nous|vous|leur]¿ $:Y <<- !3>> __ppas_ayant__ ayant @:(?:Q.*:[fp]|[123][sp])¬:(?:G|N|m:[si]) <<- /ppas/ not value(\-1, "|barre|confiance|charge|cours|envie|marre|peine|prise|crainte|cure|affaire|hâte|force|recours|") and not value(<1, "|m’|t’|l’|nous|vous|les|") --1>> =suggMasSing(\-1) && Après avoir, il faut un participe passé au masculin singulier (sauf si le COD se trouve avant le verbe, improbable dans ce cas de figure). TEST: ayant {{marqués}} les esprits, tout le monde se souvenait d’elles. ->> marqué TEST: ayant prise sur les événements, elle ne voyait aucune raison de s’alarmer. TEST: je croyais, vous ayant déjà reçus, que vous n’auriez pas à revenir. TEST: il pensait, nous ayant oubliés, que nous l’aurions oublié, nous aussi. __ppas_pronom_avoir__ il ?[ne|n’]¿ ?[lui|leur]¿ >avoir *WORD <<- /ppas/ not value(\-1, "|barre|confiance|cours|envie|marre|peine|prise|crainte|cure|affaire|hâte|force|recours|") and (value(<1, "|<start>|,|comme|comment|et|lorsque|lorsqu’|mais|où|ou|quand|qui|pourquoi|puisque|puisqu’|quoique|quoiqu’|si|s’|sinon|") or (value(<1, "|que|qu’|") and morph(<2, ":V|<start>", ":[NA]"))) and \-1.islower() and morph(\-1, ":(?:[123][sp]|Q.*:[fp])", ":(?:G|W|Q.*:m:[si])") --1>> =suggVerbPpas(\-1, ":m:s") && Ce verbe devrait être un participe passé au masculin singulier.|http://fr.wikipedia.org/wiki/Accord_du_participe_pass%C3%A9_en_fran%C3%A7ais il ?[ne|n’]¿ y >avoir *WORD <<- /ppas/ not value(\-1, "|barre|confiance|cours|envie|marre|peine|prise|crainte|cure|affaire|hâte|force|recours|") and (value(<1, "|<start>|,|comme|comment|et|lorsque|lorsqu’|mais|où|ou|quand|qui|pourquoi|puisque|puisqu’|quoique|quoiqu’|si|s’|sinon|") or (value(<1, "|que|qu’|") and morph(<2, ":V|<start>", ":[NA]"))) and \-1.islower() and morph(\-1, ":(?:[123][sp]|Q.*:[fp])", ":(?:G|W|N|Q.*:m:[si])") --1>> =suggVerbPpas(\-1, ":m:s") && Ce verbe devrait être un participe passé au masculin singulier.|http://fr.wikipedia.org/wiki/Accord_du_participe_pass%C3%A9_en_fran%C3%A7ais [je|j’|tu|elle|on|ils|elles|iel|iels|et|qui|ça|cela|ceci|celui-ci|celui-là|celle-ci|celle-là|ceux-ci|ceux-là|celles-ci|celles-là] ?[ne|n’]¿ ?[lui|leur|y]¿ >avoir *WORD <<- /ppas/ not value(\-1, "|barre|confiance|cours|envie|marre|peine|prise|crainte|cure|affaire|hâte|force|recours|") and (value(<1, "|<start>|,|comme|comment|et|lorsque|lorsqu’|mais|où|ou|quand|qui|pourquoi|puisque|puisqu’|quoique|quoiqu’|si|s’|sinon|") or (value(<1, "|que|qu’|") and morph(<2, ":V|<start>", ":[NA]"))) and \-1.islower() and morph(\-1, ":(?:[123][sp]|Q.*:[fp])", ":(?:G|W|Q.*:m:[si])") --1>> =suggVerbPpas(\-1, ":m:s") && Ce verbe devrait être un participe passé au masculin singulier.|http://fr.wikipedia.org/wiki/Accord_du_participe_pass%C3%A9_en_fran%C3%A7ais [je|j’|tu|il|elle|on|ils|elles|iel|iels|et|qui|ça|cela|ceci|celui-ci|celui-là|celle-ci|celle-là|ceux-ci|ceux-là|celles-ci|celles-là] ?[ne|n’]¿ en >avoir *WORD <<- /ppas/ not value(\-1, "|barre|confiance|cours|envie|marre|peine|prise|crainte|cure|affaire|hâte|force|recours|") and (value(<1, "|<start>|,|comme|comment|et|lorsque|lorsqu’|mais|où|ou|quand|qui|pourquoi|puisque|puisqu’|quoique|quoiqu’|si|s’|sinon|") or (value(<1, "|que|qu’|") and morph(<2, ":V|<start>", ":[NA]"))) and \-1.islower() and morph(\-1, ":(?:[123][sp])", ":[GWQ]") --1>> =suggVerbPpas(\-1, ":m:s") && Ce verbe devrait être un participe passé au masculin singulier.|http://fr.wikipedia.org/wiki/Accord_du_participe_pass%C3%A9_en_fran%C3%A7ais TEST: ils leur avaient {{donnés}} du fil à retordre. ->> donné TEST: il a {{affronte}} une bande de voleurs de bétail ->> affronté |
︙ | ︙ | |||
31086 31087 31088 31089 31090 31091 31092 | TEST: Je viendrai, après avoir vraiment {{écoutée}} le prof. ->> écouté TEST: Merci de m’avoir {{lus}} ->> lu TEST: Pourquoi m’avoir {{ignorés}} ainsi ? ->> ignoré TEST: sans avoir {{ignorée}} le problème. ->> ignoré ## avoir avec participe passé | | > > > > | > | 31196 31197 31198 31199 31200 31201 31202 31203 31204 31205 31206 31207 31208 31209 31210 31211 31212 31213 31214 31215 31216 31217 31218 31219 31220 31221 31222 | TEST: Je viendrai, après avoir vraiment {{écoutée}} le prof. ->> écouté TEST: Merci de m’avoir {{lus}} ->> lu TEST: Pourquoi m’avoir {{ignorés}} ainsi ? ->> ignoré TEST: sans avoir {{ignorée}} le problème. ->> ignoré ## avoir avec participe passé __ppas_n_m_t_l_avoir__ n’ ?[en|y]¿ >avoir @:(?:Y|[123][sp])¬:[QGWMX] <<- /ppas/ not value(\-1, "|confiance|charge|cours|envie|marre|peine|prise|crainte|cure|affaire|hâte|force|recours|pouvoir|") --1>> =suggVerbPpas(\-1, ":m:s") && Confusion probable : employez un participe passé. [l’|m’] ?[en|y]¿ >avoir @:(?:Y|[123][sp])¬:[QGWMX] <<- /ppas/ --1>> =suggVerbPpas(\-1, ":m:s") && Confusion : employez un participe passé. t’ ?[en|y]¿ >avoir @:(?:Y|[123][sp])¬:[QGWMX] <<- /ppas/ not value(\-1, "|confiance|charge|cours|envie|marre|peine|prise|crainte|cure|affaire|hâte|force|recours|") --1>> =suggVerbPpas(\-1, ":m:s") && Confusion : employez un participe passé. TEST: n’y avoir jamais {{toucher}} ->> touché TEST: m’avoir {{terminer}}. ->> terminé TEST: il m’a {{souffler}} la bonne réponse. ->> soufflé TEST: elle t’en a {{parle}}. ->> parlé TEST: c’est vous qui m’avez {{convertit}}. ->> converti TEST: Mélanie l’a {{transformer}} ->> transformé TEST: parce que t’as envie que je le fasse TEST: t’avais confiance |
︙ | ︙ | |||
31332 31333 31334 31335 31336 31337 31338 | !!!! Participes passés avec “avoir” (formes interrogatives) !! __ppas_avoir_interrogatif__ *WORD /_VCint_ *WORD | | | | 31447 31448 31449 31450 31451 31452 31453 31454 31455 31456 31457 31458 31459 31460 31461 31462 31463 31464 31465 31466 31467 31468 31469 | !!!! Participes passés avec “avoir” (formes interrogatives) !! __ppas_avoir_interrogatif__ *WORD /_VCint_ *WORD <<- /ppas/ morphVC(\2, ":V0a") and not value(\3, "|barre|charge|confiance|cours|envie|peine|marre|prise|crainte|cure|affaire|hâte|force|recours|") >>> <<- /ppas/ morph(\3, ":(?:Y|[123][sp])", ":[QMG]") -3>> =suggVerbPpas(\3, ":m:s") && Incohérence probable avec “\2”. Après “avoir”, ce verbe devrait être un participe passé. <<- /ppas/ __else__ and not value(\1, "|les|l’|m’|t’|nous|vous|en|") and morph(\3, ":Q.*:[fp]", ":m:[si]") and not morph(\1, ":[NA].*:[fp]") and not before("(?i)\\b(?:quel(?:le|)s?|combien) ") -3>> =suggVerbPpas(\3, ":m:s") && Avec “avoir”, il faut un participe passé (au masculin singulier, sauf éventuellement si un COD précède). [<start>|,|(] ?n’¿ /_VCint_ *WORD <<- /ppas/ morphVC(\-2, ":V0a") and not value(\-1, "|barre|charge|confiance|cours|envie|peine|marre|prise|crainte|cure|affaire|hâte|force|recours|") >>> <<- /ppas/ morph(\-1, ":(?:Y|[123][sp])", ":[QMG]") --1>> =suggVerbPpas(\-1, ":m:s") && Incohérence probable avec “\-2”. Après “avoir”, ce verbe devrait être un participe passé. <<- /ppas/ __else__ and morph(\-1, ":Q.*:[fp]", ":m:[si]") --1>> =suggVerbPpas(\-1, ":m:s") && Avec “avoir”, il faut un participe passé (au masculin singulier, sauf éventuellement si un COD précède). TEST: cet été ont-ils {{mentionnés}} la sécheresse ->> mentionné TEST: quand ont-ils {{donner}} satisfaction ->> donné |
︙ | ︙ |