Changes In Branch fr_killtricks Through [7bf7fe4aae] Excluding Merge-Ins
This is equivalent to a diff from 3a75d57243 to 7bf7fe4aae
2017-06-20
| ||
16:36 | [fr] màj: conjugaisons, suppression des pronoms et de “ne” check-in: 074825dfe9 user: olr tags: fr, fr_killtricks | |
12:47 | [fr] simplifications du contrôle de l’impératif check-in: 7bf7fe4aae user: olr tags: fr, fr_killtricks | |
09:49 | [fr] màj: conjugaisons check-in: 6eaeac5aca user: olr tags: fr, fr_killtricks | |
2017-06-08
| ||
21:17 | [fr] pt: taux d’absorption check-in: c7f6fd414a user: olr tags: trunk, fr | |
19:38 | merge trunk check-in: ab9feb3d66 user: olr tags: fr_killtricks | |
17:52 | [fr][build] merge genfrdic check-in: 3a75d57243 user: olr tags: trunk, fr | |
17:51 | [fr][bug] calcul des occurrences des flexions existant dans plusieurs lemmes Closed-Leaf check-in: 435b1fde99 user: olr tags: fr, genfrdic | |
05:03 | [fr] correction bug regex sur taux de qqch check-in: 80a7b8c83d user: olr tags: trunk, fr | |
Modified gc_lang/fr/rules.grx from [d879ddfe0a] to [1bbb0a442e].
︙ | ︙ | |||
4913 4914 4915 4916 4917 4918 4919 | vous l(?:es?|a)( ) @@$ <<- not morph(word(-1), ":2p", False, False) ~1>> @ __[i>(p_astuce_ils_elles_le_la_les)__ (?:ils|elles) l(?:es?|a)( ) @@$ <<- not morph(word(-1), ":3p", False, False) ~1>> @ #__[i>__ [nmts]e l(?:es?|a)( ) @@$ <<- ~1>> @ #__[i]__ l(?:es?|a)( )({w_2}) @@*,$ <<- morph(\2, ":[123][sp]") ~1>> @ | < < < < < < < < < < < < < < < < | 4913 4914 4915 4916 4917 4918 4919 4920 4921 4922 4923 4924 4925 4926 | vous l(?:es?|a)( ) @@$ <<- not morph(word(-1), ":2p", False, False) ~1>> @ __[i>(p_astuce_ils_elles_le_la_les)__ (?:ils|elles) l(?:es?|a)( ) @@$ <<- not morph(word(-1), ":3p", False, False) ~1>> @ #__[i>__ [nmts]e l(?:es?|a)( ) @@$ <<- ~1>> @ #__[i]__ l(?:es?|a)( )({w_2}) @@*,$ <<- morph(\2, ":[123][sp]") ~1>> @ TEST: comme le signe évident d’une politique volontaire TEST: c’était le signe évident d’une politique volontaire TEST: ce que c’est : le signe évident d’une politique volontaire # |
︙ | ︙ | |||
5889 5890 5891 5892 5893 5894 5895 5896 5897 5898 5899 5900 5901 5902 | and morph(word(-1), ":[VRBX]|>comme ", True, True) -2>> =switchGender(@, True) # Accord de genre erroné avec « \1 ». <<- __also__ and hasFemForm(\1) -1>> =switchGender(@) # Accord de genre erroné avec « \2 ». <<- morph(\1, ":[NAQ].*:[pi]", False) and morph(\2, ":[NAQ].*:s") and not apposition(\1, \2) and not (after_chk1(r"^ +et +(\w[\w-]+)", ":A") or after_chk1(r"^ *, +(\w[\w-]+)", ":A.*:[si]")) and (morphex(\2, ":N", ":[AQ]") or morph(word(-1), ":[VRBX]|>comme ", True, True)) -2>> =suggPlur(@) # Accord de nombre erroné avec « \1 » : « \2 » devrait être au pluriel. TEST: faire table rase des passions {{inutile}} ->> inutiles TEST: à bonne distance des {{chiens}} {{méchante}} TEST: des hommes {{attaquée}} TEST: des femmes {{agressé}} TEST: des hommes très mal {{renseigné}} ->> renseignés TEST: des dépenses non {{nécessaire}} ->> nécessaires | > | 5873 5874 5875 5876 5877 5878 5879 5880 5881 5882 5883 5884 5885 5886 5887 | and morph(word(-1), ":[VRBX]|>comme ", True, True) -2>> =switchGender(@, True) # Accord de genre erroné avec « \1 ». <<- __also__ and hasFemForm(\1) -1>> =switchGender(@) # Accord de genre erroné avec « \2 ». <<- morph(\1, ":[NAQ].*:[pi]", False) and morph(\2, ":[NAQ].*:s") and not apposition(\1, \2) and not (after_chk1(r"^ +et +(\w[\w-]+)", ":A") or after_chk1(r"^ *, +(\w[\w-]+)", ":A.*:[si]")) and (morphex(\2, ":N", ":[AQ]") or morph(word(-1), ":[VRBX]|>comme ", True, True)) -2>> =suggPlur(@) # Accord de nombre erroné avec « \1 » : « \2 » devrait être au pluriel. <<- checkAgreement(\1, \2) =>> =exclude(\2, ":V") TEST: faire table rase des passions {{inutile}} ->> inutiles TEST: à bonne distance des {{chiens}} {{méchante}} TEST: des hommes {{attaquée}} TEST: des femmes {{agressé}} TEST: des hommes très mal {{renseigné}} ->> renseignés TEST: des dépenses non {{nécessaire}} ->> nécessaires |
︙ | ︙ | |||
6881 6882 6883 6884 6885 6886 6887 | TEST: {{en faite}}, on en voit partout, ça grouille. TEST: Que {{faîtes}}-vous ? Vous {{faîtes}} mal ! TEST: Aujourd’hui, n’en faites pas trop. # flamant rose __[i]/conf(conf_flamant_rose)__ | | | 6866 6867 6868 6869 6870 6871 6872 6873 6874 6875 6876 6877 6878 6879 6880 | TEST: {{en faite}}, on en voit partout, ça grouille. TEST: Que {{faîtes}}-vous ? Vous {{faîtes}} mal ! TEST: Aujourd’hui, n’en faites pas trop. # flamant rose __[i]/conf(conf_flamant_rose)__ (flamands?) +roses? @@0 <<- -1>> =\1.replace("and", "ant") # Confusion. Flamand = habitant des Flandres. Flamant = oiseau. TEST: j’ai vu un {{flamand}} rose. # foi / fois __[i]/conf(conf_bonne_mauvaise_foi)__ (mauvaise|bonne) (fois) @@0,$ |
︙ | ︙ | |||
9142 9143 9144 9145 9146 9147 9148 9149 9150 9151 9152 9153 9154 9155 | TEST: Ils avaient barre sur lui. __[i]/ppas(ppas_det_nom_avoir)__ (l(?:’|es? |a |eurs )|ce(?:s|tte|t|rtaine?s|) |des |quelques |[mts](?:es|on|a) |[nv]o(?:s|tre) ) *({w_2}) +(?:ne +|n’|l(?:ui|eur) +|)({avoir}) +({w_2}) @@0,w,w,$ <<- not re.search("(?i)^(?:barre|confiance|cours|envie|peine|prise|crainte|cure|affaire|hâte|force|recours)$", \4) and morph(word(-1), ">puisque? ", False, True) and morph(\3, ":V0a", False) and not \4.isupper() and morphex(\4, ":(?:[123][sp]|Q.*:[fp])", ":(?:G|W|Q.*:m:[si])") -4>> =suggMasSing(@) # 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: Les femmes lui avait {{conseillées}} de se taire. TEST: le mur avait {{était}} détruit | > | 9127 9128 9129 9130 9131 9132 9133 9134 9135 9136 9137 9138 9139 9140 9141 | TEST: Ils avaient barre sur lui. __[i]/ppas(ppas_det_nom_avoir)__ (l(?:’|es? |a |eurs )|ce(?:s|tte|t|rtaine?s|) |des |quelques |[mts](?:es|on|a) |[nv]o(?:s|tre) ) *({w_2}) +(?:ne +|n’|l(?:ui|eur) +|)({avoir}) +({w_2}) @@0,w,w,$ <<- not re.search("(?i)^(?:barre|confiance|cours|envie|peine|prise|crainte|cure|affaire|hâte|force|recours)$", \4) and morph(word(-1), ">puisque? ", False, True) and morph(\3, ":V0a", False) and not \4.isupper() and morphex(\4, ":(?:[123][sp]|Q.*:[fp])", ":(?:G|W|Q.*:m:[si])") and not (\3 == "avions" and morph(\4, ":3[sp]", False)) -4>> =suggMasSing(@) # 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: Les femmes lui avait {{conseillées}} de se taire. TEST: le mur avait {{était}} détruit |
︙ | ︙ | |||
9469 9470 9471 9472 9473 9474 9475 | !!! !!! !!! Processeur avant impératif !!! !!! __<i>(p_n_importe_qui_quoi)__ n(’)importe quo?i @@1 <<- ~1>> ` | > > | > > > | > > > | > > > | > > > | > > > | > > > | 9455 9456 9457 9458 9459 9460 9461 9462 9463 9464 9465 9466 9467 9468 9469 9470 9471 9472 9473 9474 9475 9476 9477 9478 9479 9480 9481 9482 9483 9484 9485 9486 9487 9488 9489 9490 9491 9492 9493 9494 | !!! !!! !!! Processeur avant impératif !!! !!! __<i>(p_n_importe_qui_quoi)__ n(’)importe quo?i @@1 <<- ~1>> ` __<i](p_premier_ne_pro_per_obj1)__ ^( *ne l(?:es?|a) l(?:ui|eur)) ({w_2}) @@0,$ <<- morph(\2, ":(?:[123][sp]|P)", False) =>> select(\2,":(?:[123][sp]|P)") <<- ~1>> * __<i](p_premier_ne_pro_per_obj2)__ ^( *ne (?:[mt]’|l(?:ui|eur) )en) ({w_2}) @@0,$ <<- morph(\2, ":(?:[123][sp]|P)", False) =>> select(\2,":(?:[123][sp]|P)") <<- ~1>> * __<i](p_premier_ne_pro_per_obj3)__ ^( *ne (?:[mt]e|[nv]ous) (?:les?|la|en)) ({w_2}) @@0,$ <<- morph(\2, ":(?:[123][sp]|P)", False) =>> select(\2,":(?:[123][sp]|P)") <<- ~1>> * __<i](p_premier_ne_pro_per_obj4)__ ^( *ne +(?:en|l(?:es?|a|’(?:en|y))|[mt](?:e|’(?:en|y))|[nv]ous)) ({w_2}) @@0,$ <<- morph(\2, ":(?:[123][sp]|P)", False) =>> select(\2,":(?:[123][sp]|P)") <<- ~1>> * __<i>(p_premier_ne_pro_per_obj5)__ ^( *n’(?:en |y |))({w_2}) @@0,$ <<- morph(\2, ":(?:[123][sp]|P)", False) =>> select(\2,":(?:[123][sp]|P)") <<- ~1>> * __<i>(p_premier_ne_pro_per_obj6)__ ^( *ne (?:l’|))({w_2}) @@0,$ <<- morph(\2, ":(?:[123][sp]|P)", False) =>> select(\2,":(?:[123][sp]|P)") <<- ~1>> * !! !! !!!! Impératif ! !! |
︙ | ︙ | |||
9501 9502 9503 9504 9505 9506 9507 | # verbes du 1er et du 3ᵉ groupe en -e __[i]/imp(imp_vgroupe1)__ ^ *(\w+es)(?![- ](?:je|tu|[nv]ous|ils?|elles?|t-ils?|t-elles?)) @@$ <<- morphex(\1, ":V[13].*:Ip.*:2s", ":[GNAM]") -1>> =\1[:-1] # S’il s’agit d’un impératif, pas de “s”. | < < < < > < < < < < < < < | | < < < | 9507 9508 9509 9510 9511 9512 9513 9514 9515 9516 9517 9518 9519 9520 9521 9522 9523 9524 9525 9526 9527 9528 9529 9530 9531 9532 9533 9534 9535 9536 9537 9538 9539 9540 9541 9542 9543 9544 9545 9546 9547 9548 9549 9550 9551 9552 9553 9554 9555 9556 9557 9558 9559 9560 9561 9562 9563 9564 9565 9566 9567 9568 9569 9570 9571 9572 9573 9574 9575 9576 9577 | # verbes du 1er et du 3ᵉ groupe en -e __[i]/imp(imp_vgroupe1)__ ^ *(\w+es)(?![- ](?:je|tu|[nv]ous|ils?|elles?|t-ils?|t-elles?)) @@$ <<- morphex(\1, ":V[13].*:Ip.*:2s", ":[GNAM]") -1>> =\1[:-1] # S’il s’agit d’un impératif, pas de “s”. TEST: {{Apportes}} ton fric à cet homme. TEST: N’{{abandonnes}} pas si vite. TEST: Ne {{demandes}} rien, tais-toi. TEST: Castres est une belle ville. TEST: Limoges aussi. __<i>/imp(imp_allez1)__ ^ *(allés?), @@* <<- -1>> allez # S’il s’agit d’un impératif, écrivez : __<i>/imp(imp_allez2)__ ^ *(allés?) ({w_2}) @@*,$ <<- morph(\2, ":[MYOs]") -1>> allez # S’il s’agit d’un impératif, écrivez : TEST: {{Allés}}, on y va ! TEST: — {{Allé}} prendre une cuite. # verbes du 2ᵉ et du 3ᵉ groupe en -t __[i]/imp(imp_vgroupe2_vgroupe3_t)__ ^ *(\w+t)(?![- ](?:je|tu|[nv]ous|ils?|elles?|on|t-ils?|t-elles?)) @@$ <<- morphex(\1, ":V[23].*:Ip.*:3s", ":[GNA]|>(?:devoir|suffire)") and analyse(\1[:-1]+"s", ":E:2s", False) and not (re.search("(?i)^vient$", \1) and after("^ +(?:l[ea]|se |s’)")) and not (re.search("(?i)^dit$", \1) and after("^ +[A-ZÉÈÂÎ]")) -1>> =\1[:-1]+"s" # S’il s’agit d’un impératif, la terminaison est “is”, non “it”. TEST: {{Finit}} ton assiette. TEST: Ne {{pourrit}} pas l’ambiance. TEST: Suffit de s’en servir. TEST: Et ne doit pas être rejeté dans les limbes. TEST: Vient s’ajouter à ce contexte la perception, partagée par beaucoup, du caractère fortement menaçant de l’environnement économique et géopolitique. # verbes du 3ᵉ groupe en -d __[i]/imp(imp_vgroupe3_d)__ ^ *(\w+d)(?![- ](?:je|tu|[nv]ous|ils?|elles?|on|t-ils?|t-elles?)) @@$ <<- morphex(\1, ":V3.*:Ip.*:3s", ":[GNA]") and not (re.search("(?i)^répond$", \1) and after("^ +[A-ZÉÈÂÎ]")) -1>> \1s # S’il s’agit d’un impératif, ajoutez un “s”. TEST: {{Prend}} le chemin de droite. TEST: N’{{attend}} pas qu’elle vienne. TEST: — Pour ma part, répond P., je crois que tout va bien. # aller __[i]/imp(imp_va)__ ^ *(vas)(?! (?:tu|ils?|elles?|t-ils?|t-elles?)) @@$ <<- -1>> va # S’il s’agit d’un impératif, pas de “s”. TEST: {{Vas}} lui mettre une branlée. # être __[i]/imp(imp_sois)__ ^ *(soit) +({w_2}) @@*,$ <<- morph(\1, ":V") or (morphex(\2, ":A", ":G") and not after(r"\bsoit\b")) -1>> sois # S’il s’agit d’un impératif, écrivez « sois ». TEST: {{Soit}} cohérent avec toi-même. TEST: Ne {{soit}} pas con. # avoir __[i]/imp(imp_aie)__ |
︙ | ︙ | |||
9626 9627 9628 9629 9630 9631 9632 | !! !! !!!! Impératif: traits d’union manquants !! !! __[i]/imp(imp_union_moi_toi)__ | | | | | | | | | 9618 9619 9620 9621 9622 9623 9624 9625 9626 9627 9628 9629 9630 9631 9632 9633 9634 9635 9636 9637 9638 9639 9640 9641 9642 9643 9644 9645 9646 9647 9648 9649 9650 9651 9652 9653 9654 9655 9656 9657 9658 9659 9660 9661 | !! !! !!!! 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 # S’il s’agit d’un impératif, mettez un trait d’union.|http://66.46.185.79/bdl/gabarit_bdl.asp?id=4206 TEST: {{Apportez moi}} ce dictionnaire __[i]/imp(imp_union_nous_vous_lui_y)__ (?<!’)({w_2}) ([nv]ous|lui|y)(?! en| y| est) @@0,$ <<- morphex(\1, ":E", ":[GM]") and morphex(word(1), ":", ":(?:Y|3[sp])", True) and morph(word(-1), ":Cc", False, True) ->> \1-\2 # S’il s’agit d’un impératif, mettez un trait d’union.|http://66.46.185.79/bdl/gabarit_bdl.asp?id=4206 TEST: {{Donne nous}} du café. __[i]/imp(imp_union_les)__ (?<!’)({w_2}) les(?! plus| moins| mieux| trop| très| en| y) @@0 <<- morphex(\1, ":E", ":[GM]") and morphex(word(1), ":", ":(?:N|A|Q|Y|B|3[sp])", True) and morph(word(-1), ":Cc", False, True) ->> \1-les # S’il s’agit d’un impératif, mettez un trait d’union.|http://66.46.185.79/bdl/gabarit_bdl.asp?id=4206 TEST: {{chante les}} avec conviction TEST: Prenez les 5 ou 6 revues __[i]/imp(imp_union_le_la_leur)__ (?<!’)({w_2}) (l(?:e(?:ur|)|a))(?! plus| moins| mieux| peu| plupart| trop| très| une?) @@0,$ <<- morphex(\1, ":E", ":[GM]") and morphex(word(1), ":", ":(?:N|A|Q|Y|MP|H|T)", True) and morph(word(-1), ":Cc", False, True) ->> \1-\2 # S’il s’agit d’un impératif, mettez un trait d’union.|http://66.46.185.79/bdl/gabarit_bdl.asp?id=4206 TEST: {{Prends le}} avec toi. TEST: {{Dites leur}} que nous sommes là. TEST: un sujet si extrêmement politique et polémique lui a donné un accès TEST: Les États d’ores et déjà très affaiblis le seraient encore plus |
︙ | ︙ | |||
10183 10184 10185 10186 10187 10188 10189 | TEST: nulle n’{{iras}} là-bas TEST: nulle femme ne {{saurais}} le faire TEST: nul homme ne {{sauras}} s’y prendre __[i]/conj(conj_un_une_des)__ (une? des {w_2}) +({w_1}) @@0,$ | | | > > > > | 10175 10176 10177 10178 10179 10180 10181 10182 10183 10184 10185 10186 10187 10188 10189 10190 10191 10192 10193 10194 | TEST: nulle n’{{iras}} là-bas TEST: nulle femme ne {{saurais}} le faire TEST: nul homme ne {{sauras}} s’y prendre __[i]/conj(conj_un_une_des)__ (une? des {w_2}) +({w_1}) @@0,$ <<- morphex(\2, ":V", ":(?:3s|P|G|Q)") and morphex(word(-1), ":C", ":(?:Y|P|Q|[123][sp]|R)", True) and not morph(\2, ":[NA].*:[pi]", False) -2>> =suggVerb(@, ":3s") # Conjugaison erronée. Accord avec « \1… ». Le verbe devrait être à la 3ᵉ personne du singulier. TEST: un des ingénieurs {{vinrent}} nous dire quoi faire. TEST: une des femmes présente ses résultats. __[i]/conj(conj_un_une_des_pronom)__ (une? des {w_2}) +(?:qui +>? *|> +)({w_1}) @@0,$ <<- morphex(\2, ":V", ":(?:3s|P|G)") and morphex(word(-1), ":C", ":(?:Y|P|Q|[123][sp]|R)", True) -2>> =suggVerb(@, ":3s") # Conjugaison erronée. Accord avec « \1… ». Le verbe devrait être à la 3ᵉ personne du singulier. TEST: un des membres présents au conseil {{demandent}} un vote à bulletin secret |
︙ | ︙ | |||
10206 10207 10208 10209 10210 10211 10212 | -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)__ | > > > > > > > > > > > > > > > > > > | | > | | | > | | > < < < < < < < < < < < < < < < < < < < < < > > > > > > | 10202 10203 10204 10205 10206 10207 10208 10209 10210 10211 10212 10213 10214 10215 10216 10217 10218 10219 10220 10221 10222 10223 10224 10225 10226 10227 10228 10229 10230 10231 10232 10233 10234 10235 10236 10237 10238 10239 10240 10241 10242 10243 10244 10245 10246 10247 10248 10249 10250 10251 10252 10253 10254 10255 10256 10257 10258 10259 10260 10261 10262 10263 10264 10265 10266 10267 10268 10269 10270 10271 10272 10273 10274 10275 10276 10277 | -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)__ (?<![dD]’)(une?|[mts](?:on|a)|ce(?:tte|t|)) +({w_2}) +({w_2}) @@0,w,$ <<- not (re.search("(?i)^une? +(?:dizaine|douzaine|quinzaine|vingtaine|trentaine|quarantaine|cinquantaine|soixantaine|centaine|majorité|minorité|millier|partie|poignée|tas|paquet) ", \0) and morph(\3, ":3p", False)) and morphex(\2, ":[NAQ].*:[si]", ":G") and morphex(\3, ":V", ":(?:3s|P|Q|Y|3p!|G)") and morphex(word(-1), ":C", ":(?:Y|P)", True) and not (before(r"(?i)\b(?:et|ou) +$") and morph(\3, ":[123]?p", False)) and not before(r"(?i)\bni .* ni ") >>> <<- not checkAgreement(\2, \3) -3>> =suggVerb(@, ":3s") # Conjugaison erronée. Accord avec « \1 \2… ». Le verbe devrait être à la 3ᵉ personne du singulier. <<- __else__ and isAmbiguousAndWrong(\2, \3, ":s", ":3s") -3>> =suggVerb(@, ":3s", suggSing) # Accord avec « \1 \2… » incorrect. Conjugaison erronée ou accord nom/adjectif incorrect. __[i]/conj(conj_det_sing_nom_confusion)__ (?<![dD]’)(l(?:e(?:ur|) |a |’)) *({w_2}) +({w_2}) @@0,w,$ <<- not (re.search("(?i)^la +moitié ", \0) and morph(\3, ":3p", False)) and morphex(\2, ":[NAQ].*:[si]", ":G") and morphex(\3, ":V", ":(?:3s|P|Q|Y|3p!|G)") and morphex(word(-1), ":C", ":(?:Y|P)", True) and not (before(r"(?i)\b(?:et|ou) +$") and morph(\3, ":[123]?p", False)) and not before(r"(?i)\bni .* ni ") >>> <<- not checkAgreement(\2, \3) -3>> =suggVerb(@, ":3s") # Conjugaison erronée. Accord avec « \1 \2… ». Le verbe devrait être à la 3ᵉ personne du singulier. <<- __else__ and isVeryAmbiguousAndWrong(\2, \3, ":s", ":3s", isStart()) -3>> =suggVerb(@, ":3s", suggSing) # Accord avec « \1 \2… » incorrect. Conjugaison erronée ou accord nom/adjectif incorrect. __[i]/conj(conj_det_sing_nom_qui)__ (?<![dD]’)(l[ea] |une? |l’|[mts](?:on|a) |ce(?:tte|t|) |leur ) *({w_2}) +qui +({w_2}) @@0,w,$ <<- not ( re.search("(?i)^(?:une? +(?:dizaine|douzaine|quinzaine|vingtaine|trentaine|quarantaine|cinquantaine|soixantaine|centaine|majorité|minorité|millier|partie|poignée|tas|paquet) |la +moitié) ", \0) and morph(\3, ":3p", False) ) and morphex(\2, ":[NAQ].*:[si]", ":G") and morphex(\3, ":V", ":(?:3s|P|Q|Y|3p!|G)") and morphex(word(-1), ":C", ":(?:Y|P)", True) and not (before(r"(?i)\b(?:et|ou) +$") and morph(\3, ":[123]p", False)) and not before(r"(?i)\bni .* ni ") -3>> =suggVerb(@, ":3s") # Conjugaison erronée. Accord avec « \1 \2… ». Le verbe devrait être à la 3ᵉ personne du singulier. __[i]/conj(conj_det_sing_nom_pronom)__ (?<![dD]’)(l[ea] |une? |l’|[mts](?:on|a) |ce(?:tte|t|) |leur |nul(?:le|) ) *({w_2}) +(?:qui +|)> +({w_2}) @@0,w,$ <<- not ( re.search("(?i)^(?:une? +(?:dizaine|douzaine|quinzaine|vingtaine|trentaine|quarantaine|cinquantaine|soixantaine|centaine|majorité|minorité|millier|partie|poignée|tas|paquet) |la +moitié) ", \0) and morph(\3, ":3p", False) ) and morphex(\2, ":[NAQ].*:[si]", ":G") and morphex(\3, ":V", ":(?:3s|1p|P|Q|Y|3p!|G)") and morphex(word(-1), ":C", ":(?:Y|P)", True) and not (before(r"(?i)\b(?:et|ou) +$") and morph(\3, ":[123]p", False)) and not before(r"(?i)\bni .* ni ") -3>> =suggVerb(@, ":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: Ce roman-là de Jean-Paul Sartre {{es}} passionnant. TEST: Cette confusion qui {{donnent}} le tournis. TEST: La Corée {{peux}} gagner. TEST: La Corée ne {{pourras}} pas gagner. TEST: une hausse de 2 % {{satisfais}} tout le monde ->> satisfait TEST: L’homme y {{donnes}} 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: J’aimerais aussi que mon problème {{sois}} réglé. ->> soit TEST: La proscription de nager {{pourraient}} nous porter préjudice à long terme ->> pourrait TEST: mon chat {{sautes}} TEST: cette fille {{bouffes}} comme mille TEST: cette marchande {{marchandes}} TEST: la marchande {{marchandes}} TEST: la chatte {{finis}} TEST: le chat {{finis}} TEST: une crise {{violent}} TEST: un cri {{violes}} TEST: L’hypothétique nouveau président 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: La moitié d’entre elles voient leurs loyers diminuer depuis le début de l’année TEST: Une partie de ces propositions étaient naïves ## 1pl __[i]/conj(conj_nous_pronom)__ ^ *nous +> +({w1}) @@$ <<- morphex(\1, ":V", ":(?:1p|3[sp])") and not after("^ +(?:je|tu|ils?|elles?|on|[vn]ous)") -1>> =suggVerb(@, ":1p") # Conjugaison erronée. Accord avec « nous ». Le verbe devrait être à la 1ʳᵉ personne du pluriel. |
︙ | ︙ | |||
10400 10401 10402 10403 10404 10405 10406 | -2>> =suggVerb(@, ":3p") # Conjugaison erronée. Accord avec « \1 ». Le verbe devrait être à la 3ᵉ personne du pluriel. TEST: certains {{prenne}} leur temps TEST: Plusieurs qui {{pense}} que c’est une arnaque se sont quand même trompés. __[i]/conj(conj_det_plur_nom)__ | > > > > > > > > > > > > > > > > > > > > > > > > > > > | > > > > > > > > > > > > | | | | | < < > > > > > > > > > > > > > > > | | > > > > > > < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < | 10402 10403 10404 10405 10406 10407 10408 10409 10410 10411 10412 10413 10414 10415 10416 10417 10418 10419 10420 10421 10422 10423 10424 10425 10426 10427 10428 10429 10430 10431 10432 10433 10434 10435 10436 10437 10438 10439 10440 10441 10442 10443 10444 10445 10446 10447 10448 10449 10450 10451 10452 10453 10454 10455 10456 10457 10458 10459 10460 10461 10462 10463 10464 10465 10466 10467 10468 10469 10470 10471 10472 10473 10474 10475 10476 10477 10478 10479 10480 10481 10482 10483 10484 10485 10486 10487 10488 10489 10490 10491 10492 10493 10494 10495 10496 10497 10498 10499 10500 10501 10502 10503 10504 10505 10506 10507 10508 10509 10510 10511 10512 10513 | -2>> =suggVerb(@, ":3p") # Conjugaison erronée. Accord avec « \1 ». Le verbe devrait être à la 3ᵉ personne du pluriel. TEST: certains {{prenne}} leur temps TEST: Plusieurs qui {{pense}} que c’est une arnaque se sont quand même trompés. __[i]/conj(conj_det_plur_nom)__ ([cmts]es|[nv]os|leurs|quelques) +({w_2}) +({w_2}) @@0,w,$ <<- morph(\2, ":[NAQ].*:[pi]", False) and morphex(\3, ":V", ":(?:[13]p|P|Y|G|A.*:e:[pi])") and morphex(word(-1), ":C", ":[YP]", True) and not( morph(\3, ":3s", False) and before(r"(?i)\b(?:l[ea] |l’|une? |ce(?:tte|t|) |[mts](?:on|a) |[nv]otre ).+ entre .+ et ") ) >>> <<- not checkAgreement(\2, \3) -3>> =suggVerb(@, ":3p") # Conjugaison erronée. Accord avec « \1 \2… ». Le verbe devrait être à la 3ᵉ personne du pluriel. <<- __else__ and isAmbiguousAndWrong(\2, \3, ":p", ":3p") -3>> =suggVerb(@, ":3p", suggPlur) # Accord avec « \1 \2… » incorrect. Conjugaison erronée ou accord nom/adjectif incorrect. __[i]/conj(conj_det_plur_nom_qui)__ ([cmts]es|[nv]os|leurs|quelques) +({w_2}) +qui +({w_2}) @@0,w,$ <<- morph(\2, ":[NAQ].*:[pi]", False) and morphex(\3, ":V", ":(?:[13]p|P|Y|G|A.*:e:[pi])") and morphex(word(-1), ":C", ":[YP]", True) and not( morph(\3, ":3s", False) and before(r"(?i)\b(?:l[ea] |l’|une? |ce(?:tte|t|) |[mts](?:on|a) |[nv]otre ).+ entre .+ et ") ) -3>> =suggVerb(@, ":3p") # Conjugaison erronée. Accord avec « \1 \2… ». Le verbe devrait être à la 3ᵉ personne du pluriel. __[i]/conj(conj_det_plur_nom_pronom)__ ([cmts]es|[nv]os|leurs|quelques) +({w_2}) +(?:qui +|)> +({w_2}) @@0,w,$ <<- morph(\2, ":[NAQ].*:[pi]", False) and morphex(\3, ":V", ":(?:[13]p|P|Y|G)") and morphex(word(-1), ":C", ":[YP]", True) and not( morph(\3, ":3s", False) and before(r"(?i)\b(?:l[ea] |l’|une? |ce(?:tte|t|) |[mts](?:on|a) |[nv]otre ).+ entre .+ et ") ) -3>> =suggVerb(@, ":3p") # Conjugaison erronée. Accord avec « \1 \2… ». Le verbe devrait être à la 3ᵉ personne du pluriel. TEST: Ses « chiens » {{coure}} sur ma pelouse. TEST: mes filles {{passe}} ce matin TEST: vos filles {{passes}} ce matin TEST: ces travaux qui {{demande}} tant d’efforts. TEST: vos questions ne {{réclame}} aucune réflexion. TEST: le lien entre les agences de renseignement et ces mêmes entreprises pouvait reposer sur des activités de surveillance à proprement parler. __[i]/conj(conj_det_plur_nom_confusion)__ (les|certaine?s|plusieurs) +({w_2}) +({w_2}) @@0,w,$ <<- morph(\2, ":[NAQ].*:[pi]", False) and morphex(\3, ":V", ":(?:[13]p|P|Y|G|A.*:e:[pi])") and morphex(word(-1), ":C", ":[YP]", True) and not( morph(\3, ":3s", False) and before(r"(?i)\b(?:l[ea] |l’|une? |ce(?:tte|t|) |[mts](?:on|a) |[nv]otre ).+ entre .+ et ") ) >>> <<- not checkAgreement(\2, \3) -3>> =suggVerb(@, ":3p") # Conjugaison erronée. Accord avec « \1 \2… ». Le verbe devrait être à la 3ᵉ personne du pluriel. <<- __else__ and (\1 == "les" or \1 == "Les") and isVeryAmbiguousAndWrong(\2, \3, ":p", ":3p", isStart()) -3>> =suggVerb(@, ":3p", suggPlur) # Accord avec « les \2… » incorrect. Conjugaison erronée ou accord nom/adjectif incorrect. <<- __else__ and (\1 == "certains" or \1 == "Certains") and isVeryAmbiguousAndWrong(\2, \3, ":m:p", ":3p", isStart()) -3>> =suggVerb(@, ":3p", suggMasPlur) # Accord avec « certains \2… » incorrect. Conjugaison erronée ou accord nom/adjectif incorrect. <<- __else__ and (\1 == "certaines" or \1 == "Certaines") and isVeryAmbiguousAndWrong(\2, \3, ":f:p", ":3p", isStart()) -3>> =suggVerb(@, ":3p", suggFemPlur) # Accord avec « certaines \2… » incorrect. Conjugaison erronée ou accord nom/adjectif incorrect. __[i]/conj(conj_det_plur_nom_qui_confusion)__ (les|certaine?s|plusieurs) +({w_2}) +qui +({w_2}) @@0,w,$ <<- morph(\2, ":[NAQ].*:[pi]", False) and morphex(\3, ":V", ":(?:[13]p|P|Q|Y|G|A.*:e:[pi])") and morphex(word(-1), ":C", ":[YP]", True) and not( morph(\3, ":3s", False) and before(r"(?i)\b(?:l[ea] |l’|une? |ce(?:tte|t|) |[mts](?:on|a) |[nv]otre ).+ entre .+ et ") ) -3>> =suggVerb(@, ":3p") # Conjugaison erronée. Accord avec « \1 \2… ». Le verbe devrait être à la 3ᵉ personne du pluriel. __[i]/conj(conj_det_plur_nom_pronom_confusion)__ (les|certaine?s|plusieurs) +({w_2}) +(?:qui +|)> +({w_2}) @@0,w,$ <<- morph(\2, ":[NAQ].*:[pi]", False) and morphex(\3, ":V", ":(?:[13]p|P|Y|G)") and morphex(word(-1), ":C", ":[YP]", True) and not( morph(\3, ":3s", False) and before(r"(?i)\b(?:l[ea] |l’|une? |ce(?:tte|t|) |[mts](?:on|a) |[nv]otre ).+ entre .+ et ") ) -3>> =suggVerb(@, ":3p") # Conjugaison erronée. Accord avec « \1 \2… ». 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. TEST: Les infirmières à mi-temps ne {{travaille}} pas dans cette aile. TEST: les données, en quantité plus que suffisante, {{indique}} que… TEST: Les hommes comme celui-là {{mange}} comme deux. TEST: les récompenses distribuées à parts égales {{était}}… TEST: Les États-Unis d’Amérique se {{compose}} de 50 états. TEST: Les enfants en {{manges}}. TEST: Les ombres la {{donnes}} TEST: Les grands hommes politiques TEST: les charmantes petites mines de toutes les jeunes filles TEST: Les pauvres petites dames sont folles TEST: Les entrepreneurs ont {{cherchaient}} la reconnaissance sociale TEST: l’écart entre les riches et les pauvres n’était pas si grand. TEST: les grands {{danse}} TEST: les filles {{passes}} ce matin TEST: les marchands {{marche}} TEST: les marchands {{plie}} TEST: certaines demandes qui {{donne}} le tournis. TEST: plusieurs pressions qui ne {{donne}} pas les résultats attendus. 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 chattes {{danse}} TEST: certains hommes {{marchandes}} sans cesse TEST: certaines femmes {{danse}} beaucoup __[i]/conj(conj_des_nom1)__ ^ *des +({w_2}) +({w_2}) @@w,$ <<- morph(\1, ":[NAQ].*:[pi]", False) and morphex(\2, ":V", ":(?:[13]p|P|G|Q|A.*:[pi])") and morph(word(1), ":(?:R|D.*:p)|>au ", False, True) >>> <<- not morph(\2, ":[NA]", False) -2>> =suggVerb(@, ":3p") # Conjugaison erronée. Accord avec « des \1… ». Le verbe devrait être à la 3ᵉ personne du pluriel. <<- __else__ and not checkAgreement(\1, \2) -2>> =suggVerb(@, ":3p", suggPlur) # Conjugaison erronée. Accord avec « des \1… ». Le verbe devrait être à la 3ᵉ personne du pluriel. __[i]/conj(conj_des_nom2)__ ^ *des +({w_2}) +> +({w_2}) @@w,$ <<- morph(\1, ":[NAQ].*:[pi]", False) and morphex(\2, ":V", ":(?:[13]p|P|G|Q)") and morph(word(1), ":(?:R|D.*:p)|>au ", False, True) -2>> =suggVerb(@, ":3p") # Conjugaison erronée. Accord avec « des \1… ». Le verbe devrait être à la 3ᵉ personne du pluriel. __[i]/conj(conj_des_nom_qui)__ ^ *des +({w_2}) +qui +(?:> +|)({w_2}) @@w,$ <<- morph(\1, ":[NAQ].*:[pi]", False) and morphex(\2, ":V", ":(?:[13]p|P|G)") -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 |
︙ | ︙ |