Overview
Comment: | [fr] ajustements pour conjugaisons [core] remove legacy code |
---|---|
Downloads: | Tarball | ZIP archive | SQL archive |
Timelines: | family | ancestors | descendants | both | trunk | fr | core |
Files: | files | file ages | folders |
SHA3-256: |
d85831992722c08b358504eb6f2b703c |
User & Date: | olr on 2020-05-09 07:33:36 |
Other Links: | manifest | tags |
Context
2020-05-09
| ||
07:51 | [core][fr] fix syntax bug check-in: b75424b663 user: olr tags: trunk, fr, core | |
07:33 | [fr] ajustements pour conjugaisons [core] remove legacy code check-in: d858319927 user: olr tags: trunk, fr, core | |
2020-05-08
| ||
19:18 | [build] new checkAgreement function, [core] remove legacy code, [fr] clarification conj 3pl check-in: 967fb3887c user: olr tags: trunk, fr, core, build | |
Changes
Modified gc_lang/fr/modules-js/gce_analyseur.js from [9617baecc3] to [34026241d7].
︙ | ︙ | |||
47 48 49 50 51 52 53 | } function apposition (sWord1, sWord2) { // returns true if nom + nom (no agreement required) return sWord2.length < 2 || (cregex.mbNomNotAdj(_oSpellChecker.getMorph(sWord2)) && cregex.mbPpasNomNotAdj(_oSpellChecker.getMorph(sWord1))); } | < < < < < < < < < < < < < < < < < < < < < < < < < < < < | > > > | 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 | } function apposition (sWord1, sWord2) { // returns true if nom + nom (no agreement required) return sWord2.length < 2 || (cregex.mbNomNotAdj(_oSpellChecker.getMorph(sWord2)) && cregex.mbPpasNomNotAdj(_oSpellChecker.getMorph(sWord1))); } function g_checkAgreement (oToken1, oToken2, bNotOnlyNames=true) { // check agreement between <oToken1> and <oToken2> let lMorph1 = oToken1.hasOwnProperty("lMorph") ? oToken1["lMorph"] : _oSpellChecker.getMorph(oToken1["sValue"]); if (lMorph1.length === 0) { return true; } let lMorph2 = oToken2.hasOwnProperty("lMorph") ? oToken2["lMorph"] : _oSpellChecker.getMorph(oToken2["sValue"]); if (lMorph2.length === 0) { return true; } if (bNotOnlyNames && not (cregex.mbAdj(lMorph2) || cregex.mbAdjNb(lMorph1))) { return false; } return cregex.checkAgreement(lMorph1, lMorph2); } function checkAgreement (sWord1, sWord2) { let lMorph2 = _oSpellChecker.getMorph(sWord2); if (lMorph2.length === 0) { |
︙ | ︙ | |||
116 117 118 119 120 121 122 | // Exceptions const aREGULARPLURAL = new Set(["abricot", "amarante", "aubergine", "acajou", "anthracite", "brique", "caca", "café", "carotte", "cerise", "chataigne", "corail", "citron", "crème", "grave", "groseille", "jonquille", "marron", "olive", "pervenche", "prune", "sable"]); | < | 91 92 93 94 95 96 97 | // Exceptions const aREGULARPLURAL = new Set(["abricot", "amarante", "aubergine", "acajou", "anthracite", "brique", "caca", "café", "carotte", "cerise", "chataigne", "corail", "citron", "crème", "grave", "groseille", "jonquille", "marron", "olive", "pervenche", "prune", "sable"]); |
Modified gc_lang/fr/modules/gce_analyseur.py from [8df2416282] to [8b59546a79].
︙ | ︙ | |||
37 38 39 40 41 42 43 | def apposition (sWord1, sWord2): "returns True if nom + nom (no agreement required)" return len(sWord2) < 2 or (cr.mbNomNotAdj(_oSpellChecker.getMorph(sWord2)) and cr.mbPpasNomNotAdj(_oSpellChecker.getMorph(sWord1))) | < < < < < < < < < < < < < < < < < < < < < < | > > | 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 | def apposition (sWord1, sWord2): "returns True if nom + nom (no agreement required)" return len(sWord2) < 2 or (cr.mbNomNotAdj(_oSpellChecker.getMorph(sWord2)) and cr.mbPpasNomNotAdj(_oSpellChecker.getMorph(sWord1))) def g_checkAgreement (dToken1, dToken2, bNotOnlyNames=True): "check agreement between <dToken1> and <dToken2>" lMorph1 = dToken1["lMorph"] if "lMorph" in dToken1 else _oSpellChecker.getMorph(dToken1["sValue"]) if not lMorph1: return True lMorph2 = dToken2["lMorph"] if "lMorph" in dToken2 else _oSpellChecker.getMorph(dToken2["sValue"]) if not lMorph2: return True if bNotOnlyNames and not (cr.mbAdj(lMorph2) or cr.mbAdjNb(lMorph1)): return False return cr.checkAgreement(lMorph1, lMorph2) def checkAgreement (sWord1, sWord2): "check agreement between <sWord1> and <sWord1>" lMorph2 = _oSpellChecker.getMorph(sWord2) if not lMorph2: |
︙ | ︙ | |||
98 99 100 101 102 103 104 | #### Exceptions aREGULARPLURAL = frozenset(["abricot", "amarante", "aubergine", "acajou", "anthracite", "brique", "caca", "café", \ "carotte", "cerise", "chataigne", "corail", "citron", "crème", "grave", "groseille", \ "jonquille", "marron", "olive", "pervenche", "prune", "sable"]) | < | 78 79 80 81 82 83 84 | #### Exceptions aREGULARPLURAL = frozenset(["abricot", "amarante", "aubergine", "acajou", "anthracite", "brique", "caca", "café", \ "carotte", "cerise", "chataigne", "corail", "citron", "crème", "grave", "groseille", \ "jonquille", "marron", "olive", "pervenche", "prune", "sable"]) |
Modified gc_lang/fr/rules.grx from [43d6b2bea4] to [ab9e97d5ae].
︙ | ︙ | |||
25495 25496 25497 25498 25499 25500 25501 | ne [pas|jamais] être @:(?:V(?:1.*:Y|2.*:Ip.*:3s|3.*:Is.*:3s)|2p) <<- /ppas/ --1>> =suggVerbPpas(\-1) && Après “ne \2 être”, il faut un participe passé. avoir [pu|cru|pensé|imaginé] être @:(?:V(?:1.*:Y|2.*:Ip.*:3s|3.*:Is.*:3s)|2p) <<- /ppas/ not value(<1, "|l’|") and not tag_before(\1, "_que_") --1>> =suggVerbPpas(\-1) && Après le verbe “être”, il faut un participe passé. >être ~..er$ | | | 25495 25496 25497 25498 25499 25500 25501 25502 25503 25504 25505 25506 25507 25508 25509 | ne [pas|jamais] être @:(?:V(?:1.*:Y|2.*:Ip.*:3s|3.*:Is.*:3s)|2p) <<- /ppas/ --1>> =suggVerbPpas(\-1) && Après “ne \2 être”, il faut un participe passé. avoir [pu|cru|pensé|imaginé] être @:(?:V(?:1.*:Y|2.*:Ip.*:3s|3.*:Is.*:3s)|2p) <<- /ppas/ not value(<1, "|l’|") and not tag_before(\1, "_que_") --1>> =suggVerbPpas(\-1) && Après le verbe “être”, il faut un participe passé. >être ~..er$ <<- /ppas/ not tag(\2, "_upron_") and morph(\1, ":V", ":Q|>soit/") and (morph(\2, ":Y", ":[NAQ]") or morph(\2, ">(?:aller|manger)/")) and not morph(<1, ":Y|>ce/") and not value(<1, "|c’|") and not value(<2, "|ce|") and not tag_before(\1, "_ceque_") and not tag_before(\1, "_sujinfi_") -2>> =suggVerbPpas(\2) && Après “être”, le verbe ne devrait pas être à l’infinitif. >être ~..ez$ <<- /ppas/ morph(\1, ":V", ":Q|>soit/") and morph(\2, ":2p", ":[NAQ]") -2>> =suggVerbPpas(\2) && Après “être”, le verbe ne devrait pas être conjugué à la 2ᵉ personne du pluriel. |
︙ | ︙ | |||
26639 26640 26641 26642 26643 26644 26645 | TEST: les avoir consultées grâce à une personne y ayant accès sur le plan juridique. TEST: Être président d’une association demande beaucoup de temps. TEST: Venir vaincue ne lui épargna aucune indignité. TEST: Mais migrer un site et ses contenus prend du temps… TEST: y être sans ma femme ni les enfants fait monter en moi une certaine nervosité. | | | | < < | | > | | < < < > > < < < < < < | | > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > < < < < < < | 26639 26640 26641 26642 26643 26644 26645 26646 26647 26648 26649 26650 26651 26652 26653 26654 26655 26656 26657 26658 26659 26660 26661 26662 26663 26664 26665 26666 26667 26668 26669 26670 26671 26672 26673 26674 26675 26676 26677 26678 26679 26680 26681 26682 26683 26684 26685 26686 26687 26688 26689 26690 26691 26692 26693 26694 26695 26696 26697 26698 26699 26700 26701 26702 26703 26704 26705 26706 26707 26708 26709 26710 26711 26712 26713 26714 26715 26716 26717 26718 26719 26720 26721 26722 26723 26724 26725 26726 26727 26728 26729 26730 26731 26732 26733 26734 26735 26736 26737 26738 26739 26740 | TEST: les avoir consultées grâce à une personne y ayant accès sur le plan juridique. TEST: Être président d’une association demande beaucoup de temps. TEST: Venir vaincue ne lui épargna aucune indignité. TEST: Mais migrer un site et ses contenus prend du temps… TEST: y être sans ma femme ni les enfants fait monter en moi une certaine nervosité. __conj_le_la_leur_nom__ [le|la|l’|leur] *WORD @:V¬:(?:3s|P|Y|3p!|G|M) <<- /conj/ not tag(\2, "_enum_") and morph(<1, ":C|<start>|>,", ":[YP]") and morph(\2, ":[NA].*:[si]", ":G") and not ( (value(\2, "|dizaine|douzaine|quinzaine|vingtaine|trentaine|quarantaine|cinquantaine|soixantaine|centaine|majorité|minorité|millier|partie|poignée|tas|paquet|moitié|") or tag_before(\1, "_ni_") or value(<1, "|et|ou|")) and morph(\3, ":3?p") ) and not checkAgreement(\2, \3) and not ( morph(\2, "(?:[123][sp]|P)") and not value(<1, "|<start>|,|") ) >>> <<- /conj/ morph(\3, ":A.*:p") or (morph(\3, ":N.*:p") and morph(\2, ":A")) -3>> =suggVerb(\3, ":3s", suggSing) && Accord avec “\1 \2…” incorrect. Conjugaison erronée ou accord nom/adjectif incorrect. <<- /conj/ __else__ -3>> =suggVerb(\3, ":3s") && Conjugaison erronée. Accord avec “\1 \2…”. Le verbe devrait être à la 3ᵉ personne du singulier. [le|la|l’|leur] *WORD qui @:V¬:(?:3s|P|3p!|G|M) <<- /conj/ not tag(\2, "_enum_") and morph(<1, ":C|<start>|>,", ":[YP]") and morph(\2, ":[NA].*:[si]", ":G") and not ( (value(\2, "|dizaine|douzaine|quinzaine|vingtaine|trentaine|quarantaine|cinquantaine|soixantaine|centaine|majorité|minorité|millier|partie|poignée|tas|paquet|moitié|") or tag_before(\1, "_ni_") or value(<1, "|et|ou|")) and morph(\4, ":3p") ) -4>> =suggVerb(\4, ":3s") && Conjugaison erronée. Accord avec “\1 \2…”. Le verbe devrait être à la 3ᵉ personne du singulier. TEST: La {{N.S.A.}} {{espionneras}} toujours tout le monde TEST: La suspicion envers les élus {{accroissaient}}… ->> accroissait TEST: Le chien n’{{es}} pas mort. TEST: Le damné {{donnes}} TEST: La Corée {{peux}} gagner. TEST: La Corée ne {{pourras}} pas gagner. TEST: L’homme y {{donnes}} TEST: la femme {{pensent}} à ses filles TEST: Le carré {{reviens}} à la mode TEST: Le chien y {{viens}} ->> vient TEST: L’homme le {{deviens}} ->> devient TEST: La femme la {{prends}} ->> prend TEST: Le feu nous {{donnes}} chaud. TEST: tout le monde {{prends}} ses aises ->> prend TEST: La proscription de nager {{pourraient}} nous porter préjudice à long terme ->> pourrait TEST: la marchande {{marchandes}} TEST: la chatte {{finis}} TEST: le chat {{finis}} TEST: leur chat qui {{torturent}} une souris TEST: leur homme à tout faire {{oublient}} toujours tout TEST: tu vois, leur donne {{donnes}} du fil à retordre TEST: L’homme sur le bateau de Patrick {{viens}} de temps en temps {{mangé}} chez moi. TEST: L’hypothétique nouveau président TEST: La moitié d’entre elles voient leurs loyers diminuer depuis le début de l’année TEST: le loquet d’une des petites portes. TEST: L’électricité, l’hydrogène, l’air comprimé n’existent pas… TEST: la Syrie, l’Irak, la Mésopotamie tombaient. TEST: Le sentiment d’humiliation, la colère nous indiquent que… TEST: la majorité survenaient sous la contrainte __conj_det_sing_nom__ [un|ce|cet|mon|ton|son|notre|votre] *WORD @:V¬:(?:3s|P|Y|3p!|G|M) <<- /conj/ not tag(\2, "_enum_") and morph(<1, ":C|<start>|>,", ":[YP]") and morph(\2, ":[NA].*:[me]:[si]", ":G") and not ( (value(\2, "|dizaine|douzaine|quinzaine|vingtaine|trentaine|quarantaine|cinquantaine|soixantaine|centaine|majorité|minorité|millier|partie|poignée|tas|paquet|moitié|") or tag_before(\1, "_ni_") or value(<1, "|et|ou|")) and morph(\3, ":3?p") ) and not checkAgreement(\2, \3) >>> <<- /conj/ morph(\3, ":A.*:p") or (morph(\3, ":N.*:p") and morph(\2, ":A")) -3>> =suggVerb(\3, ":3s", suggSing) && Accord avec “\1 \2…” incorrect. Conjugaison erronée ou accord nom/adjectif incorrect. <<- /conj/ __else__ -3>> =suggVerb(\3, ":3s") && Conjugaison erronée. Accord avec “\1 \2…”. Le verbe devrait être à la 3ᵉ personne du singulier. [une|cette|mon|ton|son|ma|ta|sa|notre|votre] *WORD @:V¬:(?:3s|P|Y|3p!|G|M) <<- /conj/ not tag(\2, "_enum_") and morph(<1, ":C|<start>|>,", ":[YP]") and morph(\2, ":[NA].*:[fe]:[si]", ":G") and not ( (value(\2, "|dizaine|douzaine|quinzaine|vingtaine|trentaine|quarantaine|cinquantaine|soixantaine|centaine|majorité|minorité|millier|partie|poignée|tas|paquet|moitié|") or tag_before(\1, "_ni_") or value(<1, "|et|ou|")) and morph(\3, ":3?p") ) and not checkAgreement(\2, \3) >>> <<- /conj/ morph(\3, ":A.*:p") or (morph(\3, ":N.*:p") and morph(\2, ":A")) -3>> =suggVerb(\3, ":3s", suggSing) && Accord avec “\1 \2…” incorrect. Conjugaison erronée ou accord nom/adjectif incorrect. <<- /conj/ __else__ -3>> =suggVerb(\3, ":3s") && Conjugaison erronée. Accord avec “\1 \2…”. Le verbe devrait être à la 3ᵉ personne du singulier. [un|une|ce|cet|cette|mon|ton|son|ma|ta|sa|notre|votre] *WORD qui @:V¬:(?:3s|P|3p!|G|M) <<- /conj/ not tag(\2, "_enum_") and morph(<1, ":C|<start>|>,", ":[YP]") and morph(\2, ":[NA].*:[si]", ":G") and not ( (value(\2, "|dizaine|douzaine|quinzaine|vingtaine|trentaine|quarantaine|cinquantaine|soixantaine|centaine|majorité|minorité|millier|partie|poignée|tas|paquet|moitié|") or tag_before(\1, "_ni_") or value(<1, "|et|ou|")) and morph(\4, ":3p") ) -4>> =suggVerb(\4, ":3s") && Conjugaison erronée. Accord avec “\1 \2…”. Le verbe devrait être à la 3ᵉ personne du singulier. TEST: Tu devrais le savoir, ce roman-là de Jean-Paul Sartre {{es}} passionnant. TEST: Cette confusion qui {{donnent}} le tournis. TEST: tu sais, une hausse de 2 % {{satisfais}} tout le monde ->> satisfait TEST: tu sais, une petite {{donnes}} satisfaction TEST: tu penses mal, cet homme {{mens}} TEST: J’aimerais aussi que mon problème {{sois}} réglé. ->> soit TEST: un grand {{ravis}} tous les prix TEST: mon chat {{sautes}} TEST: cette fille {{bouffes}} comme mille TEST: cette marchande {{marchandes}} TEST: une crise {{violent}} TEST: un cri {{violes}} TEST: ton chien {{bouffent}} sans arrêt TEST: une majorité de garçons voient mal comment faire TEST: un tas de choses pouvaient aller de travers. TEST: un paquet de gens futés n’y ont vu que du feu. TEST: Une partie de ces propositions étaient naïves TEST: tu n’acceptais jamais de danser avec quelqu’un si tu avais refusé à quelqu’un d’autre au début TEST: des ruisselets, des arbres, une tonnelle qui rappelaient le temps. TEST: son assurance, sa grâce, son sex-appeal nous permettent de passer sans encombre liquides et rasoirs. TEST: Son courage, son ardeur étaient immenses, __conj_un_une__ [un|une] @:V¬:(?:3s|P|G|Q|M|[NA].*:[si]) <<- /conj/ morph(<1, ":C|<start>|>(?:,|dont)", ":(?:Y|P|Q|[123][sp]|R)̉|>(?:sauf|excepté|et|ou)/") --1>> =suggVerb(\-1, ":3s") && Conjugaison erronée. Accord avec “\1…”. Le verbe devrait être à la 3ᵉ personne du singulier. |
︙ | ︙ | |||
26944 26945 26946 26947 26948 26949 26950 | TEST: elles vont toutes aller faire un tour __conj_det_plur_nom__ [ces|mes|tes|ses|nos|vos|leurs|quelques|maints] @:[NA].*:[pi]¬:V0 @:V¬:(?:3p|P|Y|G|M|A.*:[pi]) <<- /conj/ morph(<1, ":Cs|<start>|>,") and not( morph(\3, ":3s") and before("(?i)\\b(?:l[ea] |l’|une? |ce(?:tte|t|) |[mts](?:on|a) |[nv]otre ).+ entre .+ et ") ) >>> | | | 26973 26974 26975 26976 26977 26978 26979 26980 26981 26982 26983 26984 26985 26986 26987 | TEST: elles vont toutes aller faire un tour __conj_det_plur_nom__ [ces|mes|tes|ses|nos|vos|leurs|quelques|maints] @:[NA].*:[pi]¬:V0 @:V¬:(?:3p|P|Y|G|M|A.*:[pi]) <<- /conj/ morph(<1, ":Cs|<start>|>,") and not( morph(\3, ":3s") and before("(?i)\\b(?:l[ea] |l’|une? |ce(?:tte|t|) |[mts](?:on|a) |[nv]otre ).+ entre .+ et ") ) >>> <<- /conj/ morph(\3, ":A.*:s") or (morph(\3, ":N.*:s") and morph(\2, ":A")) -3>> =suggVerb(\3, ":3p", suggPlur) && Accord avec « \1 \2… » incorrect. Conjugaison erronée ou accord nom/adjectif incorrect. <<- /conj/ __else__ -3>> =suggVerb(\3, ":3p") && Conjugaison erronée. Accord avec “\1 \2…”. Le verbe devrait être à la 3ᵉ personne du pluriel. [ces|mes|tes|ses|nos|vos|leurs|quelques|maints] @:[NA].*:[pi]¬:V0 qui @:V¬:(?:3p|P|Y|G|M|A.*:e:[pi]) <<- /conj/ morph(<1, ":Cs|<start>|>,") and not( morph(\4, ":3s") and before("(?i)\\b(?:l[ea] |l’|une? |ce(?:tte|t|) |[mts](?:on|a) |[nv]otre ).+ entre .+ et ") ) -4>> =suggVerb(\4, ":3p") && Conjugaison erronée. Accord avec “\1 \2 \3…”. Le verbe devrait être à la 3ᵉ personne du pluriel. |
︙ | ︙ | |||
26966 26967 26968 26969 26970 26971 26972 | TEST: maints hommes {{oublie}} leurs origines pour mieux se construire un passé glorieux TEST: nos hommes qui {{repartirons}} demain TEST: le lien entre les agences de renseignement et ces mêmes entreprises pouvait reposer sur des activités de surveillance à proprement parler. TEST: trier les cons et les connes expose à un violent coup de boomerang TEST: Tu penses que quelqu’un qui frappe sa femme et ses enfants est un bon père ? | | | | | < < < | < < < < < < | < < < < < < < | | | 26995 26996 26997 26998 26999 27000 27001 27002 27003 27004 27005 27006 27007 27008 27009 27010 27011 27012 27013 27014 27015 27016 27017 27018 | TEST: maints hommes {{oublie}} leurs origines pour mieux se construire un passé glorieux TEST: nos hommes qui {{repartirons}} demain TEST: le lien entre les agences de renseignement et ces mêmes entreprises pouvait reposer sur des activités de surveillance à proprement parler. TEST: trier les cons et les connes expose à un violent coup de boomerang TEST: Tu penses que quelqu’un qui frappe sa femme et ses enfants est un bon père ? __conj_les_nom__ les @:[NA].*:[pi]¬:V0 @:V¬:(?:3p|P|Y|G|M) <<- /conj/ morph(<1, ":Cs|<start>|>,") and not ( morph(\3, ":3s") and before("(?i)\\b(?:l[ea] |l’|une? |ce(?:tte|t|) |[mts](?:on|a) |[nv]otre ).+ entre .+ et ") ) and not checkAgreement(\2, \3) and not ( morph(\2, "(?:[123][sp]|P)") and not value(<1, "|<start>|,|") ) >>> <<- /conj/ morph(\3, ":A.*:s") or (morph(\3, ":N.*:s") and morph(\2, ":A")) -3>> =suggVerb(\3, ":3p", suggPlur) && Accord avec “\1 \2…” incorrect. Conjugaison erronée ou accord nom/adjectif incorrect. <<- /conj/ __else__ -3>> =suggVerb(\3, ":3p") && Conjugaison erronée. Accord avec “\1 \2…”. Le verbe devrait être à la 3ᵉ personne du pluriel. les @:[NA].*:[pi] qui @:V¬:(?:3p|P|Y|G|M) <<- /conj/ morph(<1, ":Cs|<start>|>,") and not( morph(\4, ":3s") and before("(?i)\\b(?:l[ea] |l’|une? |ce(?:tte|t|) |[mts](?:on|a) |[nv]otre ).+ entre .+ et ") ) -4>> =suggVerb(\4, ":3p") && Conjugaison erronée. Accord avec “\1 \2 \3…”. Le verbe devrait être à la 3ᵉ personne du pluriel. TEST: Les abstentions {{est}} présumée manifester un défaut d’opinion marquée TEST: Les cours de culture générale nous {{apporte}} de l’ouverture d’esprit. TEST: Les hommes ne le lui {{pardonnes}} pas. |
︙ | ︙ | |||
27018 27019 27020 27021 27022 27023 27024 | TEST: il prétendait que les banques universelles « à la française » s’{{était}} très honorablement comportées TEST: les marchands {{paye}} TEST: les marchands {{marchande}} TEST: les marchandes {{paie}} TEST: les marchandes {{marchande}} TEST: les chattes {{finis}} TEST: les chattes {{manges}} | > | < < < < < < < < > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > | 27031 27032 27033 27034 27035 27036 27037 27038 27039 27040 27041 27042 27043 27044 27045 27046 27047 27048 27049 27050 27051 27052 27053 27054 27055 27056 27057 27058 27059 27060 27061 27062 27063 27064 27065 27066 27067 27068 27069 27070 27071 27072 27073 27074 27075 27076 27077 27078 27079 27080 27081 27082 27083 27084 27085 27086 27087 27088 27089 27090 27091 27092 27093 27094 27095 27096 27097 27098 27099 27100 27101 27102 27103 27104 | TEST: il prétendait que les banques universelles « à la française » s’{{était}} très honorablement comportées TEST: les marchands {{paye}} TEST: les marchands {{marchande}} TEST: les marchandes {{paie}} TEST: les marchandes {{marchande}} TEST: les chattes {{finis}} TEST: les chattes {{manges}} TEST: les religieux qui n’en {{finisse}} pas de mentir. TEST: Les tests grand public de Jean-Paul {{montre}} des résultats surprenants.I TEST: les malades que tu as servis {{outrepasse}} leur droit TEST: l’écart entre les riches et les pauvres n’était pas si grand. TEST: Les grands hommes politiques TEST: les charmantes petites mines de toutes les jeunes filles TEST: Les pauvres petites dames sont folles TEST: Sauf que l’un comme l’autre avaient dû y renoncer. TEST: L’un comme l’autre devaient y renoncer. TEST: Les écrivaines Marie Darrieussecq et Annie Ernaux TEST: Les femmes candidates à ce poste doivent se présenter cet après-midi. TEST: Toutes les personnes candidates seront évaluées plusieurs fois. TEST: il les a sélectionnés, les a améliorées pour accroître leur rendement __conj_certains_certaines_plusieurs_nom__ certains @:[NA].*:[pi] @:V¬:(?:3p|P|Y|G|M) <<- /conj/ morph(<1, ":Cs|<start>|>,") and not( morph(\3, ":3s") and before("(?i)\\b(?:l[ea] |l’|une? |ce(?:tte|t|) |[mts](?:on|a) |[nv]otre ).+ entre .+ et ") ) and not checkAgreement(\2, \3) and not ( morph(\2, "(?:[123][sp]|P)") and not value(<1, "|<start>|,|") ) >>> <<- /conj/ morph(\3, ":A.*:s") or (morph(\3, ":N.*:s") and morph(\2, ":A")) -3>> =suggVerb(\3, ":3p", suggMasPlur) && Accord avec “\1 \2…” incorrect. Conjugaison erronée ou accord nom/adjectif incorrect. <<- /conj/ __else__ -3>> =suggVerb(\3, ":3p") && Conjugaison erronée. Accord avec “\1 \2…”. Le verbe devrait être à la 3ᵉ personne du pluriel. certaines @:[NA].*:[pi] @:V¬:(?:3p|P|Y|G|M) <<- /conj/ morph(<1, ":Cs|<start>|>,") and not( morph(\3, ":3s") and before("(?i)\\b(?:l[ea] |l’|une? |ce(?:tte|t|) |[mts](?:on|a) |[nv]otre ).+ entre .+ et ") ) and not checkAgreement(\2, \3) and not ( morph(\2, "(?:[123][sp]|P)") and not value(<1, "|<start>|,|") ) >>> <<- /conj/ morph(\3, ":A.*:s") or (morph(\3, ":N.*:s") and morph(\2, ":A")) -3>> =suggVerb(\3, ":3p", suggFemPlur) && Accord avec “\1 \2…” incorrect. Conjugaison erronée ou accord nom/adjectif incorrect. <<- /conj/ __else__ -3>> =suggVerb(\3, ":3p") && Conjugaison erronée. Accord avec “\1 \2…”. Le verbe devrait être à la 3ᵉ personne du pluriel. plusieurs @:[NA].*:[pi] @:V¬:(?:3p|P|Y|G|M) <<- /conj/ morph(<1, ":Cs|<start>|>,") and not( morph(\3, ":3s") and before("(?i)\\b(?:l[ea] |l’|une? |ce(?:tte|t|) |[mts](?:on|a) |[nv]otre ).+ entre .+ et ") ) and not checkAgreement(\2, \3) and not ( morph(\2, "(?:[123][sp]|P)") and not value(<1, "|<start>|,|") ) >>> <<- /conj/ morph(\3, ":A.*:s") or (morph(\3, ":N.*:s") and morph(\2, ":A")) -3>> =suggVerb(\3, ":3p", suggPlur) && Accord avec “\1 \2…” incorrect. Conjugaison erronée ou accord nom/adjectif incorrect. <<- /conj/ __else__ -3>> =suggVerb(\3, ":3p") && Conjugaison erronée. Accord avec “\1 \2…”. Le verbe devrait être à la 3ᵉ personne du pluriel. [certains|certaines|plusieurs] @:[NA].*:[pi] qui @:V¬:(?:3p|P|Y|G|M) <<- /conj/ morph(<1, ":Cs|<start>|>,") and not( morph(\4, ":3s") and before("(?i)\\b(?:l[ea] |l’|une? |ce(?:tte|t|) |[mts](?:on|a) |[nv]otre ).+ entre .+ et ") ) -4>> =suggVerb(\4, ":3p") && Conjugaison erronée. Accord avec “\1 \2 \3…”. Le verbe devrait être à la 3ᵉ personne du pluriel. TEST: les chattes {{danse}} TEST: certains hommes {{marchande}} sans cesse TEST: tu sais, certains filtres {{donnes}} de mauvais résultats TEST: certaines femmes {{danse}} beaucoup TEST: tu sais, certaines danses {{dérive}} d’autres TEST: certaines demandes qui {{donne}} le tournis. TEST: certaines petites {{fatigue}} TEST: plusieurs personnes {{devienne}} des robots TEST: plusieurs pressions qui ne {{donne}} pas les résultats attendus. TEST: plusieurs petites {{actionne}} le levier ensemble. TEST: plusieurs femmes {{marchande}} TEST: j’en connais plusieurs soumises à de très fortes pressions TEST: certaines femmes prises par leur travail n’ont plus le temps pour rien d’autre. TEST: certains imbéciles passés à l’ennemi feraient mieux de se taire. __conj_des_nom__ [<start>|,|(] des @:[NA].*:[pi] @:V¬:(?:3p|P|G|Q|Y|A.*:[pi]|V[23].*:Y) <<- /conj/ morph(>1, ":(?:R|D.*:p)|>au/|<end>|>,") >>> <<- /conj/ not morph(\4, ":[NA]") -4>> =suggVerb(\4, ":3p") && Conjugaison erronée. Accord avec “\2 \3…”. Le verbe devrait être à la 3ᵉ personne du pluriel. <<- /conj/ __else__ and not checkAgreement(\3, \4) -4>> =suggVerb(\4, ":3p", suggPlur) && Conjugaison erronée. Accord avec “\2 \3…”. Le verbe devrait être à la 3ᵉ personne du pluriel. |
︙ | ︙ |