Index: gc_lang/fr/rules.grx ================================================================== --- gc_lang/fr/rules.grx +++ gc_lang/fr/rules.grx @@ -4881,22 +4881,22 @@ ### 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)__ - (?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)__ +# (?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 @@ -6805,11 +6805,11 @@ 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. + (flamands?) +roses? @@0 <<- -1>> =\1.replace("and", "ant") # Confusion. Flamand = habitant des Flandres. Flamant = oiseau. TEST: j’ai vu un {{flamand}} rose. # foi / fois @@ -9467,39 +9467,39 @@ TEST: {{Écartes}} de moi cette coupe. ## Traits d’union manquants __[i]/imp(imp_union_moi_toi)__ - (?> \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)__ - (?> \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)__ - (?> \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)__ - (?> \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. @@ -10229,18 +10229,37 @@ 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. + <<- 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)__ - ([lcmts]es|[nv]os|leurs|quelques|certaine?s|plusieurs) +({w_2}) +(?:qui +|)> +({w_2}) @@0,w,$ + ([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. + +__[i]/conj(conj_det_plur_nom_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 checkAgreement(\2, \3) + 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’|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. @@ -10250,10 +10269,12 @@ 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: mes filles {{passe}} ce matin +TEST: vos filles {{passes}} ce matin 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. @@ -10272,19 +10293,10 @@ 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.