Grammalecte  Diff

Differences From Artifact [e1048f56da]:

To Artifact [37c4ffe12e]:


1058
1059
1060
1061
1062
1063
1064
1065


1066
1067
1068
1069




1070
1071
1072
1073
1074
1075
1076
1058
1059
1060
1061
1062
1063
1064

1065
1066
1067



1068
1069
1070
1071
1072
1073
1074
1075
1076
1077
1078







-
+
+

-
-
-
+
+
+
+







        <<- ->> =\0.replace(",", ".").replace("...", "…")                               && Erreur de numérisation ? Virgules au lieu de points ?

TEST: Ah !{{,.,}} et en quoi consistait le festin ?


__<s>/typo(typo_ponctuation_superflue1)__    , ?([.,;:!?]) @@$ <<- ->> =",|" + \1       && Une de ces ponctuations est superflue.
__<s>/typo(typo_ponctuation_superflue2)__    ; ?([.,;:…!?]) @@$ <<- ->> =";|" + \1      && Une de ces ponctuations est superflue.
__<s>/typo(typo_ponctuation_superflue3)__    :[.,;:…!?] <<- ->> =":|" + \0[1]           && Une de ces ponctuations est superflue.
__<s>/typo(typo_ponctuation_superflue3)__    :[.,;:…!?] <<- ->> =":|" + \0[1:2]         && Une de ces ponctuations est superflue.
__<s>/typo(typo_ponctuation_superflue4)__    [?!][.](?![.]) <<- ->> =\0[0:1]            && Ne mettez pas un point après un point d’interrogation ou d’exclamation.

TEST: Mouais{{, ;}}
TEST: Vraiment, bof {{;;}} on ne sait guère qu’en penser.
TEST: Raisons {{:.}} trop, c’est trop.
TEST: Mouais{{, .}}                                                     ->> ,|.
TEST: Vraiment, bof {{;;}} on ne sait guère qu’en penser.               ->> ;|;
TEST: Raisons {{:.}} trop, c’est trop.                                  ->> :|.
TEST: C’est ça {{?.}} tu crois ?                                        ->> ?



!!
!!
!!!! Espaces insécables                                                                           !!
!!
1094
1095
1096
1097
1098
1099
1100

1101
1102
1103
1104
1105
1106
1107
1096
1097
1098
1099
1100
1101
1102
1103
1104
1105
1106
1107
1108
1109
1110







+







    ([:;!?]) (?=[\w«“"])  @@0 <<- ->> "\1 "                 && Pas d’espace insécable après le signe “\1”.

TEST: {{«}}Il manque deux espaces insécables. »                             ->> "« "
TEST: « Il manque deux espaces insécables{{.»}}                             ->> ". »"
TEST: « Il manque deux espaces insécables{{ »}}                             ->> " »"
TEST: Et encore{{!}}?                                                       ->> " !"
TEST: Quoi{{?}}                                                             ->> " ?"
TEST: Qui{{ ?}}                                                             ->> " ?"
TEST: Voici{{:}} les deux points.                                           ->> " :"
TEST: Voyelles:{{a}}.                                                       ->> " a"
TEST: Succession : a{{;}} b.                                                ->> " ;"
TEST: C’est assez {{: }}parlez !                                            ->> ": "
TEST: {{» }}C’est ce qu’on croit savoir.                                    ->> "» |« "


16828
16829
16830
16831
16832
16833
16834

16835
16836
16837
16838
16839
16840
16841
16831
16832
16833
16834
16835
16836
16837
16838
16839
16840
16841
16842
16843
16844
16845







+







    >seuil [de|d’] tolérance
    >seuil [de|d’] tolérance à la douleur
    >signal d’ alarme
    >silo à [>grains|blé]
    >site [de|d’] lancement
    >soldat d’ élite
    >solution [de|d’] [rechange|repli]
    >sommier à lattes
    >sonnette d’ alarme
    >sortie [de|d’] secours
    >soue à >cochon
    >sourate [*NUM|$:B] ?,¿ verset [*NUM|$:B]
    >souvenir d’ enfance
    >sujet [de|d’] [prédilection|préoccupation]
    >suspension [de|d’] séance
21156
21157
21158
21159
21160
21161
21162















21163
21164
21165
21166
21167
21168
21169
21160
21161
21162
21163
21164
21165
21166
21167
21168
21169
21170
21171
21172
21173
21174
21175
21176
21177
21178
21179
21180
21181
21182
21183
21184
21185
21186
21187
21188







+
+
+
+
+
+
+
+
+
+
+
+
+
+
+







TEST: L’{{amande}} {{amer}}
TEST: l’{{amicale}} {{animal}}
TEST: l’amour {{immortels}}
TEST: du chien et de l’{{excellente}} {{collier}} qu’il avait autour du cou.
TEST: du chien et de l’étonnant {{colliers}} qu’il avait autour du cou.
TEST: elle prendra l’{{avions}} dès que possible


__gn_l_3m__
    l’  *WORD  *WORD  *WORD
        <<- /gn/ morph(\1, ":D") and morph(<1, "<start>|:V", "*") and \4.islower() >>>
        <<- /gn/ morph(\2, ":[NA].*:m:[si]", "*") and morph(\3, ":[NA].*:[me]:[si]", ":(?:[123][sp]|G|P|B)|;C") and morph(\4, ":[NA].*:f", "*")
        -4>> =suggMasSing(\4)                                                               && Accord de nombre erroné avec « \1 \2 \3 » : « \4 » devrait être au masculin singulier.
        <<- /gn/ __else__ and morph(\2, ":[NA].*:f:[si]", "*") and morph(\3, ":[NA].*:[fe]:[si]", ":(?:[123][sp]|G|P|B)|;C") and morph(\4, ":[NA].*:m", "*")
        -4>> =suggFemSing(\4)                                                               && Accord de nombre erroné avec « \1 \2 \3 » : « \4 » devrait être au féminin singulier.
        <<- /gn/ __else__ and morph(\2, ":[NA].*:[si]", "*") and morph(\3, ":[NA].*:[si]", ":(?:[123][sp]|G|P|B)|;C") and morph(\4, ":[NA].*:p", "*")
        -4>> =suggSing(\4)                                                                  && Accord de nombre erroné avec « \1 \2 \3 » : « \4 » devrait être au singulier.

TEST: l’horreur obscure {{répandu}} dans les ténèbres                               ->> répandue
TEST: l’honneur français {{bafouée}}                                                ->> bafoué
TEST: l’ignoble ignorance si {{répandues}}                                          ->> répandue


__gn_le_1m__
    ,  le  *WORD
        <<- /gn/ morph(\3, ":[NA].*:f", ":(?:e|m|P|G|W|[123][sp]|Y)") -2>> =suggLesLa(\3)           && Accord de genre erroné : « \3 » est féminin.
        <<- /gn/ __also__ and hasMasForm(\3) -3>> =suggMasSing(\3, True)                            && Accord de genre erroné : « \2 » est un déterminant masculin.
        <<- /gn/ __else__ and morph(\3, ":[NA].*:p", ":[siGW]") -3>> =suggMasSing(\3)               && Accord de nombre erroné : « \3 » devrait être au singulier.
        <<- /gn/ __also__ -2>> les                                                                  && Accord de nombre erroné : « \3 » est au pluriel.
21218
21219
21220
21221
21222
21223
21224













21225
21226
21227
21228
21229
21230
21231
21237
21238
21239
21240
21241
21242
21243
21244
21245
21246
21247
21248
21249
21250
21251
21252
21253
21254
21255
21256
21257
21258
21259
21260
21261
21262
21263







+
+
+
+
+
+
+
+
+
+
+
+
+







TEST: c’était le chien {{perdue}} des voisins.
TEST: viens vite ou le pari {{imperdables}} sera moins facile…
TEST: connaître et le grand {{perdante}}
TEST: Le bruit {{perçus}} par les voisins.
TEST: si le premier film est un triomphe, le deuxième est un demi-succès, et le troisième une déception.
TEST: Cela aboutira sur une contractualisation coûteuse pour organiser cette divergence d’intérêts, et le gestionnaire aura le dernier mot.


__gn_le_3m__
    le  *WORD  *WORD  *WORD
        <<- /gn/ not value(<1, "|et|ou|") and morph(\1, ":D")
            and morph(\2, ":[NA].*:[me]:[si]", ":(?:[123][sp]|G)") and morph(\3, ":[NA].*:[me]:[si]", ":(?:[123][sp]|G|P)") and morph(\4, ":[NA].*:[fp]", "*") and \4.islower()
        -4>> =suggMasSing(\4)                                                               && Accord de nombre erroné avec « \1 \2 \3 » : « \4 » devrait être au masculin singulier.

TEST: le roi chrétien {{tyranniques}} tout pétri de son prétendu droit divin                    ->> tyrannique
TEST: le petit chien {{bruns}}                                                                  ->> brun
TEST: elles furent le jour venu prises par surprise, et elles durent s’enfuir.
TEST: qu’ils fassent tourner le système économique, assez concrètement, mais sans faire chier avec leurs petits problèmes de gens de rien.
TEST: avec le peuple, contre le capitalisme mortifère sous tous ses visages.


__gn_la_1m__
    ,  la  *WORD
        <<- /gn/ morph(\3, ":[NA].*:m", ":(?:e|f|P|G|W|M|[1-3][sp]|Y)") -2>> le             && Accord de genre erroné : « \3 » est masculin.
        <<- /gn/ __also__ and hasFemForm(\3) -3>> =suggFemSing(\3, True)                    && Accord de genre erroné : « \2 » est un déterminant féminin.
        <<- /gn/ __else__ and morph(\3, ":[NA].*:p") -3>> =suggFemSing(\3)                  && Accord de nombre erroné : « \3 » devrait être au singulier.

21283
21284
21285
21286
21287
21288
21289












21290
21291
21292
21293
21294
21295
21296
21315
21316
21317
21318
21319
21320
21321
21322
21323
21324
21325
21326
21327
21328
21329
21330
21331
21332
21333
21334
21335
21336
21337
21338
21339
21340







+
+
+
+
+
+
+
+
+
+
+
+







TEST: il imaginait de la pluie {{noir}} tombant sur une terre dévastée.
TEST: je voyais de la pluie {{noires}}
TEST: Il faut donc examiner ensemble le panneau et la paroi latérale.
TEST: Il faut donc examiner ensemble le panneau et la paroi latéraux.
TEST: Il faut donc examiner ensemble les panneaux et la paroi latéraux.
TEST: Il faut donc examiner ensemble les panneaux et la paroi latérale.


__gn_la_3m__
    la  *WORD  *WORD  *WORD
        <<- /gn/ not value(<1, "|et|ou|") and morph(\1, ":D")
            and morph(\2, ":[NA].*:[fe]:[si]", ":(?:[123][sp]|G)") and morph(\3, ":[NA].*:[fe]:[si]", ":(?:[123][sp]|G|P)|;C") and morph(\4, ":[NA].*:[mp]", "*") and \4.islower()
        -4>> =suggFemSing(\4)                                                               && Accord de nombre erroné avec « \1 \2 \3 » : « \4 » devrait être au féminin singulier.

TEST: la seule solution {{trouvé}} consistait à déléguer                                        ->> trouvée
TEST: La petite fille {{devenues}} infirmière.                                                  ->> devenue
TEST: sous la forme d’un baromètre comparant différents moyens pour alléger ses émissions
TEST: non seulement met en péril la logique industrielle mais contribue à détruire peu à peu le substrat sur lequel repose le marché lui-même, à savoir la société des hommes.


__gn_leur_1m__
    ,  leur  *WORD
        <<- /gn/ morph(\3, ":[NA].*:p", "*") -2>> leurs                                     && Accord de nombre erroné avec « \3 ».
        <<- /gn/ __also__ -3>> =suggSing(\3)                                                && Accord de nombre erroné : « \3 » devrait être au singulier.

    *WORD  leur  *WORD
21336
21337
21338
21339
21340
21341
21342
21343
21344
21345








21346
21347
21348
21349
21350


21351
21352
21353
21354

21355
21356
21357
21358
21359
21360
21361
21380
21381
21382
21383
21384
21385
21386



21387
21388
21389
21390
21391
21392
21393
21394
21395
21396



21397
21398




21399
21400
21401
21402
21403
21404
21405
21406







-
-
-
+
+
+
+
+
+
+
+


-
-
-
+
+
-
-
-
-
+







TEST: elle se souvenait de leur {{grande}} {{sot}}
TEST: je me souviens de leur verve {{décalé}}
TEST: ils arrivent et leur arrogance {{insupportables}} nous fatigue tous.
TEST: {{leur}} gros {{grains}}
TEST: Que ferons-nous de {{leur}} gros {{grains}}


__gn_le_la_leur_3m__
    [le|la|leur|l’]  *WORD  *WORD  *WORD
        <<- /gn/ not value(<1, "|et|ou|") and morph(\1, ":D") and morph(\2, ":[NA].*:[si]", ":(?:[123][sp]|G)") and morph(\3, ":[NA].*:[si]", ":(?:[123][sp]|G|P)") and morph(\4, ":[NA].*:p", "*") and \4.islower()
__gn_leur_3m__
    leur  *WORD  *WORD  *WORD
        <<- /gn/ morph(\1, ":D") and morph(<1, "<start>|:V", "*") and \4.islower() >>>
        <<- /gn/ morph(\2, ":[NA].*:m:[si]", "*") and morph(\3, ":[NA].*:[me]:[si]", ":(?:[123][sp]|G|P|B)|;C") and morph(\4, ":[NA].*:f", "*")
        -4>> =suggMasSing(\4)                                                               && Accord de nombre erroné avec « \1 \2 \3 » : « \4 » devrait être au masculin singulier.
        <<- /gn/ __else__ and morph(\2, ":[NA].*:f:[si]", "*") and morph(\3, ":[NA].*:[fe]:[si]", ":(?:[123][sp]|G|P|B)|;C") and morph(\4, ":[NA].*:m", "*")
        -4>> =suggFemSing(\4)                                                               && Accord de nombre erroné avec « \1 \2 \3 » : « \4 » devrait être au féminin singulier.
        <<- /gn/ __else__ and morph(\2, ":[NA].*:[si]", "*") and morph(\3, ":[NA].*:[si]", ":(?:[123][sp]|G|P|B)|;C") and morph(\4, ":[NA].*:p", "*")
        -4>> =suggSing(\4)                                                                  && Accord de nombre erroné avec « \1 \2 \3 » : « \4 » devrait être au singulier.

TEST: La petite fille {{devenues}} infirmière.
TEST: leur grande passion {{délirantes}} pour le cosplay.
TEST: le jour venu prises par surprise elles durent s’enfuir.
TEST: leur grande passion {{délirants}} pour le cosplay.                            ->> délirante
TEST: leur noir projet {{ignorées}} du peuple                                       ->> ignoré
TEST: sous la forme d’un baromètre comparant différents moyens pour alléger ses émissions
TEST: non seulement met en péril la logique industrielle mais contribue à détruire peu à peu le substrat sur lequel repose le marché lui-même, à savoir la société des hommes.
TEST: qu’ils fassent tourner le système économique, assez concrètement, mais sans faire chier avec leurs petits problèmes de gens de rien.
TEST: avec le peuple, contre le capitalisme mortifère sous tous ses visages.
TEST: leur psychologue altruiste {{détestés}} par ses voisins                       ->> détesté


__gn_ledit_1m__
    ledit  *WORD
        <<- /gn/ morph(\2, ":[NA].*:f", ":[GWme]") -1>> ladite                              && Accord de genre erroné : « \2 » est féminin.
        <<- /gn/ __also__ and hasMasForm(\2) -2>> =suggMasSing(\2, True)                    && Accord de genre erroné : « \1 » est un déterminant masculin.
        <<- /gn/ morph(\2, ":[NA].*:p", ":[siGW]") -2>> =suggMasSing(\2)                    && Accord de nombre erroné : « \2 » devrait être au singulier.
29574
29575
29576
29577
29578
29579
29580
29581

29582
29583
29584
29585
29586
29587
29588
29619
29620
29621
29622
29623
29624
29625

29626
29627
29628
29629
29630
29631
29632
29633







-
+







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)
    [le|la|l’|leur]  *WORD  @:V¬:(?:3s|P|Q|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/ not tag(\-1, "_ngn_") and 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.
31001
31002
31003
31004
31005
31006
31007

31008
31009
31010
31011
31012
31013
31014
31046
31047
31048
31049
31050
31051
31052
31053
31054
31055
31056
31057
31058
31059
31060







+







TEST: les plus grièvement atteints ne vont pas se signaler
TEST: les plus grands font aussi des erreurs
TEST: à pied ou à cheval
TEST: tout ça pour prouver qu’il va bien
TEST: c’étaient bien les Français qui avaient procédé ainsi
TEST: les hommes haut placés
TEST: Votre père est on ne peut plus aimable
TEST: Qu’ont fait les sénateurs ?



!!! Tests historiques                                                                             !!

## Version 0.5.14
TEST: par le léger tissu de rayonne qui les protégeait en ce moment.