︙ | | |
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.
|
︙ | | |