4879
4880
4881
4882
4883
4884
4885
4886
4887
4888
4889
4890
4891
4892
4893
4894
4895
4896
4897
4898
4899
4900
4901
4902
4903
4904
|
4879
4880
4881
4882
4883
4884
4885
4886
4887
4888
4889
4890
4891
4892
4893
4894
4895
4896
4897
4898
4899
4900
4901
4902
4903
4904
|
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
|
#__[i>__ [nmts]e l(?:es?|a)( ) @@$ <<- ~1>> @
#__[i]__ l(?:es?|a)( )({w_2}) @@*,$ <<- morph(\2, ":[123][sp]") ~1>> @
### DPP: Désambiguïsation par distinction des mots qui sont à la fois (verbes conjugués ET (noms ET/OU adjectifs))
# Cette distinction est nécessaire seulement pour les mots suivant un groupe nominal.
# Exemples : finis, donne(s), avance(s), bavarde(s)
__[i](p_astuce_désambiguïsation1)__
(?<![lL]’)une? ({w_2})( ) *({w_2}) @@w,**,$
<<- isAmbiguousNAV(\3) and morphex(\1, ":[NAQ]", ">telle ")
~2>> ~
__[i](p_astuce_désambiguïsation2)__
(?:d(?:es? |’)|[mts](?:es|on|a) |ce(?:s|t(?:te|)|rtaine?s|) |[nv](?:otre|os) |leurs |quelques ) *({w_2})( ) *({w_2}) @@w,**,$
<<- isAmbiguousNAV(\3) and morphex(\1, ":[NAQ]", ">telle ") and not re.search("^[dD](?:’une?|e l(?:a|eur)) ", \0)
~2>> ~
__[i](p_astuce_désambiguïsation3)__
l(?:es? |a |’|eur ) *({w_2})( ) *({w_2}) @@w,**,$
<<- isAmbiguousNAV(\3) and ( morphex(\1, ":[NAQ]", ":V0a") or (morphex(\1, ":[NAQ]", ":(?:3[sp]|V0a)") and isStart()) )
~2>> ~
#__[i](p_astuce_désambiguïsation1)__
# (?<![lL]’)une? ({w_2})( ) *({w_2}) @@w,**,$
# <<- isAmbiguousNAV(\3) and morphex(\1, ":[NAQ]", ">telle ")
# ~2>> ~
#__[i](p_astuce_désambiguïsation2)__
# (?:d(?:es? |’)|[mts](?:es|on|a) |ce(?:s|t(?:te|)|rtaine?s|) |[nv](?:otre|os) |leurs |quelques ) *({w_2})( ) *({w_2}) @@w,**,$
# <<- isAmbiguousNAV(\3) and morphex(\1, ":[NAQ]", ">telle ") and not re.search("^[dD](?:’une?|e l(?:a|eur)) ", \0)
# ~2>> ~
#__[i](p_astuce_désambiguïsation3)__
# l(?:es? |a |’|eur ) *({w_2})( ) *({w_2}) @@w,**,$
# <<- isAmbiguousNAV(\3) and ( morphex(\1, ":[NAQ]", ":V0a") or (morphex(\1, ":[NAQ]", ":(?:3[sp]|V0a)") and isStart()) )
# ~2>> ~
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
|
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
9495
9496
9497
9498
9499
9500
9501
9502
9503
9504
9505
9506
9507
|
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
9495
9496
9497
9498
9499
9500
9501
9502
9503
9504
9505
9506
9507
|
-
+
-
+
-
+
-
+
|
TEST: {{Attend}} la correction.
TEST: {{Vas}} au diable !
TEST: {{Écartes}} de moi cette coupe.
## Traits d’union manquants
__[i]/imp(imp_union_moi_toi)__
(?<![’~])({w_2}) ([mt]oi)(?! même) @@0,$
(?<!’)({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,$
(?<!’)({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) and not before("~ +$")
->> \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
(?<!’)({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) and not before("~ +$")
->> \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,$
(?<!’)({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) and not before("~ +$")
->> \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
|
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
10278
10279
10280
10281
10282
10283
10284
10285
10286
10287
10288
10289
10290
10291
10292
10293
10294
10295
10296
10297
10298
10299
10300
10301
10302
10303
10304
10305
10306
10307
10308
10309
10310
10311
10312
10313
10314
10315
10316
10317
10318
10319
10320
10321
10322
10323
10324
10325
|
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
10278
10279
10280
10281
10282
10283
10284
10285
10286
10287
10288
10289
10290
10291
10292
10293
10294
10295
10296
10297
10298
10299
10300
10301
10302
10303
10304
10305
10306
10307
10308
10309
10310
10311
10312
10313
10314
10315
10316
10317
10318
10319
10320
10321
10322
10323
10324
10325
10326
10327
10328
|
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
-
+
-
+
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
|
-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)__
([lcmts]es|[nv]os|leurs|quelques|certaine?s|plusieurs) +({w_2}) +(?:qui +|)(?!j’|c’)({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 checkAgreement(\2, \3)
and not( morph(\3, ":3s", False) and before(r"(?i)\b(?:l[ea] |l’|ce(?:tte|t|) |[mts](?:on|a) ).+ entre .+ et ") )
([cmts]es|[nv]os|leurs|quelques) +({w_2}) +({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 ") ) >>>
<<- 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|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)__
([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: 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|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 ") ) >>>
<<- 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(\1, \2, ":p", ":3p", isStart())
-3>> =suggVerb(@, ":3p", suggPlur) # Accord avec « les \1… » 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)__
([lcmts]es|[nv]os|leurs|quelques|certaine?s|plusieurs) +({w_2}) +(?:qui +|)> +({w_2}) @@0,w,$
(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’|ce(?:tte|t|) |[mts](?:on|a) ).+ entre .+ et ") )
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: Ses « chiens » {{coure}} sur ma pelouse.
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: le lien entre les agences de renseignement et ces mêmes entreprises pouvait reposer sur des activités de surveillance à proprement parler.
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: 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_nom)__
^ *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 qui {{conduise}} la marche du monde.
# confusions noms/adjectifs/verbes (voir règles DPP)
__[i]/conj(conj_det_plur_nom_ambiguïté)__
([cmts]es|[nv]os|leurs|quelques|plusieurs) +({w_2})~ *({w_2}) @@0,w,$
<<- morphex(word(-1), ":C", ":[YP]", True) and isAmbiguousAndWrong(\2, \3, ":p", ":3p")
-3>> =suggVerb(@, ":3p", suggPlur) # Accord avec « \1 \2… » incorrect. Conjugaison erronée ou accord nom/adjectif incorrect.
TEST: mes filles {{passe}} ce matin
TEST: vos filles {{passes}} ce matin
__[i]/conj(conj_les_nom_ambiguïté)__
les +({w_2})~ *({w_2}) @@w,$
<<- morphex(word(-1), ":C", ":[YP]", True) and isVeryAmbiguousAndWrong(\1, \2, ":p", ":3p", isStart())
-2>> =suggVerb(@, ":3p", suggPlur) # Accord avec « les \1… » incorrect. Conjugaison erronée ou accord nom/adjectif incorrect.
TEST: les grands {{danse}}
TEST: les filles {{passes}} ce matin
TEST: les marchands {{marche}}
TEST: les marchands {{plie}}
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}}
__[i]/conj(conj_certains_nom_ambiguïté)__
certains +({w_2})~ *({w_2}) @@w,$
<<- morphex(word(-1), ":C", ":[YP]", True) and isVeryAmbiguousAndWrong(\1, \2, ":m:p", ":3p", isStart())
-2>> =suggVerb(@, ":3p", suggMasPlur) # Accord avec « certains \1… » incorrect. Conjugaison erronée ou accord nom/adjectif incorrect.
TEST: certains hommes {{marchandes}} sans cesse
__[i]/conj(conj_certaines_nom_ambiguïté)__
certaines +({w_2})~ *({w_2}) @@w,$
<<- morphex(word(-1), ":C", ":[YP]", True) and isVeryAmbiguousAndWrong(\1, \2, ":f:p", ":3p", isStart())
-2>> =suggVerb(@, ":3p", suggFemPlur) # Accord avec « certaines \1… » incorrect. Conjugaison erronée ou accord nom/adjectif incorrect.
TEST: certaines femmes {{danse}} beaucoup
## 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
|