8925
8926
8927
8928
8929
8930
8931
8932
8933
8934
8935
8936
8937
8938
8939
8940
8941
8942
8943
8944
8945
8946
8947
8948
8949
8950
8951
8952
8953
8954
8955
8956
8957
8958
8959
8960
8961
8962
8963
8964
8965
8966
8967
8968
8969
8970
8971
8972
8973
8974
8975
8976
8977
8978
8979
8980
8981
8982
8983
8984
8985
8986
8987
8988
8989
8990
8991
8992
8993
8994
8995
8996
8997
8998
8999
9000
9001
9002
9003
9004
9005
9006
9007
9008
|
TEST: {{Le}} démoralisation. ->> La
TEST: {{Le}} Guyane française. ->> La
TEST: avec {{le}} {{pile}}
TEST: {{le}} {{publique}}
TEST: {{Le}} {{pendue}}
__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.
__gn_un_1m__
un *WORD
<<- /gn/ morph(\2, ":[NA].*:f", ":(?:e|m|G|W|V0|3s|Y)") -1>> une # 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.
__gn_un_des_1m__
un des *WORD
<<- /gn/ morph(\3, ":[NA].*:f", ":(?:e|m|G|W|V0|3s)") -1>> une # Accord de genre erroné : « \2 » est féminin.
<<- /gn/ __also__ and hasMasForm(\3) -3>> =suggMasPlur(\3, True) # Accord de genre erroné : « \1 » est un déterminant masculin.
__gn_du_1m__
du *WORD
<<- /gn/ morph(\2, ":[NA].*:f", ":[GWme]") -1>> de la # 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.
__gn_cet_1m__
cet *WORD
<<- /gn/ morph(\2, ":[NA].*:f", ":[GWme]") -1>> cette # 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, ">[bcçdfgjklmnpqrstvwxz].+:[NA].*:m", ":[efGW]") -1>> ce # Accord de genre correct, mais euphonie non respectée.|http://fr.wikipedia.org/wiki/Euphonie
<<- /gn/ morph(\2, ":[NA].*:p", ":[siGW]") -2>> =suggMasSing(\2) # Accord de nombre erroné : « \2 » devrait être au singulier.
__gn_ce_1m__
ce *WORD
<<- /gn/ morph(\2, ":[NA].*:f", ":(?:3s|[GWme])") -1>> cette # 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].*:f", ":[GWme]") and morph(\2, ":3s") -1>> cette|se # Accord de genre erroné : « \2 » est féminin. Ou bien vous confondez le déterminant “ce” avec le pronom “se”.
<<- /gn/ morph(\2, ":[NA].*:p", ":[siGW]") -2>> =suggMasSing(\2) # Accord de nombre erroné : « \2 » devrait être au singulier.
__gn_mon_ton_son_1m__
[mon|ton|son] *WORD
<<- /gn/ morph(\1, ":D") >>>
<<- /gn/ morph(\2, ">[bcdfgjklmnpqrstvwxz].*:[NA].*:f", ":[GWme]") -1>> =\1.replace("on", "a") # 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.
__gn_au_1m__
au *WORD
<<- /gn/ morph(\2, ":[NA].*:f:s", ":[GWme]") -1>> à la # 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.
<<- /gn/ __also__ -1>> aux # Accord de nombre erroné : « \2 » est au pluriel.
TEST: ledit {{accords}} ne vaut rien.
TEST: {{au}} {{États-Unis}}
TEST: {{Un}} {{amie}}
TEST: {{Cet}} {{idiote}}.
TEST: {{cet}} ballon. ->> ce
TEST: {{Ce}} animal. ->> Cet
TEST: {{un}} des {{chattes}}
TEST: {{une}} des {{chats}}
TEST: {{mon}} {{chienne}}
TEST: cet {{oliviers}}
TEST: ce {{claviers}}
TEST: cette bouffe, c’est du {{chiens}}
TEST: le ton monte.
TEST: Ces enfants n’ont jamais vu quelqu’un lire.
TEST: Trente et un hommes sur le pont.
## Singulier féminin
__gn_la_1m__
, la *WORD
<<- /gn/ morph(\3, ":[NA].*:m", ":(?:e|f|P|G|W|[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.
*WORD la *WORD
|
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
|
8925
8926
8927
8928
8929
8930
8931
8932
8933
8934
8935
8936
8937
8938
|
TEST: {{Le}} démoralisation. ->> La
TEST: {{Le}} Guyane française. ->> La
TEST: avec {{le}} {{pile}}
TEST: {{le}} {{publique}}
TEST: {{Le}} {{pendue}}
__gn_la_1m__
, la *WORD
<<- /gn/ morph(\3, ":[NA].*:m", ":(?:e|f|P|G|W|[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.
*WORD la *WORD
|
9027
9028
9029
9030
9031
9032
9033
9034
9035
9036
9037
9038
9039
9040
9041
9042
9043
9044
9045
9046
9047
9048
9049
9050
9051
9052
9053
9054
9055
9056
9057
9058
9059
9060
9061
9062
9063
9064
9065
9066
9067
9068
9069
9070
9071
9072
9073
9074
9075
9076
9077
9078
9079
9080
9081
9082
9083
9084
9085
9086
9087
9088
9089
9090
9091
9092
9093
9094
9095
9096
9097
9098
9099
9100
9101
9102
9103
9104
9105
9106
9107
9108
9109
9110
9111
9112
9113
9114
9115
9116
9117
9118
9119
9120
9121
9122
9123
9124
9125
9126
9127
9128
|
TEST: dans la {{parties}} ->> partie
TEST: de {{la}} vin ->> le
TEST: {{la}} {{véhicule}}
TEST: {{La}} {{pris}}
TEST: la force de la {{formes}} parfaite
__gn_ladite_1m__
ladite *WORD
<<- /gn/ morph(\2, ":[NA].*:m", ":[efGW]") -1>> ledit # Accord de genre erroné : « \2 » est masculin.
<<- /gn/ __also__ and hasFemForm(\2) -2>> =suggFemSing(\2, True) # Accord de genre erroné : « \1 » est un déterminant féminin.
<<- /gn/ morph(\2, ":[NA].*:p", ":[siGW]") -2>> =suggFemSing(\2) # Accord de nombre erroné : « \2 » devrait être au singulier.
TEST: ladite {{passions}} l’avait conduit à sa perte.
__gn_une_1m__
une *WORD
<<- /gn/ morph(\2, ":[NA].*:m", ":(?:e|f|G|W|V0|3s|P)") and not ( \2 == "demi" and morph(>1, ":N.*:f", "*") )
-1>> un # Accord de genre erroné : « \2 » est masculin.
<<- /gn/ __also__ and hasFemForm(\2) -2>> =suggFemSing(\2, True) # Accord de genre erroné : « \1 » est un déterminant féminin.
<<- /gn/ morph(\2, ":[NA].*:p", ":[siGW]") -2>> =suggFemSing(\2) # Accord de nombre erroné : « \2 » devrait être au singulier.
__gn_une_des_1m__
une des *WORD
<<- /gn/ morph(\3, ":[NA].*:m", ":(?:e|f|G|W|V0|3s)") -1>> un # Accord de genre erroné : « \3 » est masculin.
<<- /gn/ __also__ and hasFemForm(\3) -3>> =suggFemPlur(\3, True) # Accord de genre erroné : « \1 » est un déterminant féminin.
TEST: un {{slashs}} ->> slash
TEST: un {{fromages}}. ->> fromage
TEST: Un {{ballons}} ->> ballon
TEST: Une {{cinglées}} ->> cinglée
TEST: {{une}} des {{joueurs}}
TEST: mille et une merveilles
__gn_cette_1m__
cette *WORD
<<- /gn/ morph(\2, ":[NA].*:m", ":[efGW]") -1>> =suggCeOrCet(\2) # Accord de genre erroné : « \2 » est masculin.
<<- /gn/ __also__ and hasFemForm(\2) -2>> =suggFemSing(\2, True) # Accord de genre erroné : « \1 » est un déterminant féminin.
<<- /gn/ morph(\2, ":[NA].*:p", ":[siGW]") -2>> =suggFemSing(\2) # Accord de nombre erroné : « \2 » devrait être au singulier.
__gn_ma_ta_sa_1m__
[ma|ta|sa] *WORD
<<- /gn/ morph(\2, ":[NA].*:m", ":[efGW]") -1>> =\1[:-1]+"on" # Accord de genre erroné : « \2 » est masculin.
<<- /gn/ __also__ and not re.search("(?i)^[aâeéèêiîoôuûyœæ]", \2) and hasFemForm(\2)
-2>> =suggFemSing(\2, True) # Accord de genre erroné : « \1 » est un déterminant féminin.
<<- /gn/ morph(\2, ":[NA].*:p", ":[siGW]") -2>> =suggFemSing(\2) # Accord de nombre erroné : « \2 » devrait être au singulier.
TEST: {{une}} des {{chats}}
TEST: {{ma}} {{parti}}
TEST: {{ma}} amour ->> mon
TEST: {{une}} kyste ->> un
TEST: {{Cette}} {{animal}} mort.
## Singuliers épicènes
__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
<<- /gn/ morph(\3, ":[NA].*:p", "*")
or ( morph(\3, ":[NA].*:p", ":[si]") and morph(\1, ":[RC]|>de/", ">(?:e[tn]|ou)/") and not (morph(\1, ":Rv") and morph(\3, ":Y")) )
-2>> leurs # Accord de nombre erroné avec « \3 ».
<<- /gn/ __also__ -3>> =suggSing(\3) # Accord de nombre erroné : « \3 » devrait être au singulier.
<start> leur *WORD
<<- /gn/ morph(\3, ":[NA].*:p", ":[siGW]") -2>> leurs # Accord de nombre erroné avec « \3 ».
<<- /gn/ __also__ -3>> =suggSing(\3) # Accord de nombre erroné : « \3 » devrait être au singulier.
TEST: Tu sais, {{leur}} {{impatiences}} est notoire.
TEST: J’en ai assez de {{leur}} {{délires}}
TEST: {{Leur}} {{perceptions}} des choses m’exaspère.
TEST: dans {{leur}} {{usines}}
__gn_notre_votre_chaque_1m__
[notre|votre|chaque] *WORD
<<- /gn/ morph(\2, ":[NA].*:p", ":[siGW]") -2>> =suggSing(\2) # Accord de nombre erroné : « \2 » devrait être au singulier.
TEST: Chaque {{chiens}}. ->> chien
__gn_quelque_1m__
quelque *WORD
<<- /gn/ morph(\2, ":[NA].*:p", ":[siG]") and not value(>1, "|que|qu’|qu|")
-1>> quelques # Il manque un “s” à « quelque » ou « \2 » doit être au singulier.
TEST: {{Quelque}} amis
## Pluriels épicènes
__gn_les_1m__
, les *WORD
<<- /gn/ ( morph(\3, ":[NA].*:s", "*") and not (value(>1, "|et|ou|") and morph(>2, ":[NA]")) )
or \3 in aREGULARPLURAL
-3>> =suggPlur(\3) # Accord de nombre erroné : « \3 » devrait être au pluriel.
|
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
|
|
8957
8958
8959
8960
8961
8962
8963
8964
8965
8966
8967
8968
8969
8970
8971
8972
8973
8974
8975
8976
8977
8978
8979
8980
8981
8982
8983
8984
8985
8986
8987
8988
8989
8990
8991
8992
8993
8994
8995
8996
8997
8998
8999
9000
9001
9002
9003
9004
9005
9006
9007
9008
9009
9010
9011
9012
9013
9014
9015
9016
9017
9018
9019
9020
9021
9022
9023
9024
9025
9026
9027
9028
9029
9030
9031
9032
9033
9034
9035
9036
9037
9038
9039
9040
9041
9042
9043
9044
9045
9046
9047
9048
9049
9050
9051
9052
9053
9054
9055
9056
9057
9058
9059
9060
9061
9062
9063
9064
9065
9066
9067
9068
9069
9070
9071
9072
9073
9074
9075
9076
9077
9078
9079
9080
9081
9082
9083
9084
9085
9086
9087
9088
9089
9090
9091
9092
9093
9094
9095
9096
9097
9098
9099
9100
9101
9102
9103
9104
9105
9106
9107
9108
9109
9110
9111
9112
9113
9114
9115
9116
9117
9118
9119
9120
9121
9122
9123
9124
9125
9126
9127
9128
9129
9130
9131
9132
9133
9134
9135
9136
9137
9138
9139
9140
9141
9142
9143
9144
9145
9146
9147
9148
9149
9150
9151
9152
9153
9154
9155
9156
9157
9158
9159
9160
9161
9162
9163
9164
9165
9166
9167
9168
9169
9170
9171
9172
9173
9174
9175
9176
9177
9178
9179
9180
9181
9182
|
TEST: dans la {{parties}} ->> partie
TEST: de {{la}} vin ->> le
TEST: {{la}} {{véhicule}}
TEST: {{La}} {{pris}}
TEST: la force de la {{formes}} parfaite
__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
<<- /gn/ morph(\3, ":[NA].*:p", "*")
or ( morph(\3, ":[NA].*:p", ":[si]") and morph(\1, ":[RC]|>de/", ">(?:e[tn]|ou)/") and not (morph(\1, ":Rv") and morph(\3, ":Y")) )
-2>> leurs # Accord de nombre erroné avec « \3 ».
<<- /gn/ __also__ -3>> =suggSing(\3) # Accord de nombre erroné : « \3 » devrait être au singulier.
<start> leur *WORD
<<- /gn/ morph(\3, ":[NA].*:p", ":[siGW]") -2>> leurs # Accord de nombre erroné avec « \3 ».
<<- /gn/ __also__ -3>> =suggSing(\3) # Accord de nombre erroné : « \3 » devrait être au singulier.
TEST: Tu sais, {{leur}} {{impatiences}} est notoire.
TEST: J’en ai assez de {{leur}} {{délires}}
TEST: {{Leur}} {{perceptions}} des choses m’exaspère.
TEST: dans {{leur}} {{usines}}
__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.
TEST: ledit {{accords}} ne vaut rien.
__gn_ladite_1m__
ladite *WORD
<<- /gn/ morph(\2, ":[NA].*:m", ":[efGW]") -1>> ledit # Accord de genre erroné : « \2 » est masculin.
<<- /gn/ __also__ and hasFemForm(\2) -2>> =suggFemSing(\2, True) # Accord de genre erroné : « \1 » est un déterminant féminin.
<<- /gn/ morph(\2, ":[NA].*:p", ":[siGW]") -2>> =suggFemSing(\2) # Accord de nombre erroné : « \2 » devrait être au singulier.
TEST: ladite {{passions}} l’avait conduit à sa perte.
__gn_un_1m__
un *WORD
<<- /gn/ morph(\2, ":[NA].*:f", ":(?:e|m|G|W|V0|3s|Y)") -1>> une # 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.
__gn_un_des_1m__
un des *WORD
<<- /gn/ morph(\3, ":[NA].*:f", ":(?:e|m|G|W|V0|3s)") -1>> une # Accord de genre erroné : « \2 » est féminin.
<<- /gn/ __also__ and hasMasForm(\3) -3>> =suggMasPlur(\3, True) # Accord de genre erroné : « \1 » est un déterminant masculin.
__gn_une_1m__
une *WORD
<<- /gn/ morph(\2, ":[NA].*:m", ":(?:e|f|G|W|V0|3s|P)") and not ( \2 == "demi" and morph(>1, ":N.*:f", "*") )
-1>> un # Accord de genre erroné : « \2 » est masculin.
<<- /gn/ __also__ and hasFemForm(\2) -2>> =suggFemSing(\2, True) # Accord de genre erroné : « \1 » est un déterminant féminin.
<<- /gn/ morph(\2, ":[NA].*:p", ":[siGW]") -2>> =suggFemSing(\2) # Accord de nombre erroné : « \2 » devrait être au singulier.
__gn_une_des_1m__
une des *WORD
<<- /gn/ morph(\3, ":[NA].*:m", ":(?:e|f|G|W|V0|3s)") -1>> un # Accord de genre erroné : « \3 » est masculin.
<<- /gn/ __also__ and hasFemForm(\3) -3>> =suggFemPlur(\3, True) # Accord de genre erroné : « \1 » est un déterminant féminin.
TEST: {{Un}} {{amie}}
TEST: {{un}} des {{chattes}}
TEST: {{une}} des {{chats}}
TEST: Trente et un hommes sur le pont.
TEST: Ces enfants n’ont jamais vu quelqu’un lire.
TEST: un {{slashs}} ->> slash
TEST: un {{fromages}}. ->> fromage
TEST: Un {{ballons}} ->> ballon
TEST: Une {{cinglées}} ->> cinglée
TEST: {{une}} des {{chats}}
TEST: {{une}} kyste ->> un
TEST: {{une}} des {{joueurs}}
TEST: mille et une merveilles
## un / une
__gn_un_2m__
un *WORD *WORD
<<- /gn/ not value(<1, "|et|ou|d’|") and not \3.startswith("seul") >>>
<<- /gn/ morph(\2, ":[NA].*:[me]", ":(?:B|G|V0)") and morph(\3, ":[NA].*:f", "*") and not apposition(\2, \3)
-3>> =suggMasSing(\3, True) # Accord de genre erroné : « \1 \2 » est masculin, « \3 » est féminin.
<<- /gn/ morph(\2, ":[NA].*:[si]", ":G") and morph(\3, ":[NA].*:p", "*") and not apposition(\2, \3)
-3>> =suggMasSing(\3) # Accord de nombre erroné avec « \2 » : « \3 » devrait être au singulier.
[et|ou|d’] un *WORD *WORD
<<- /gn/ not morph(<1, ":[NA]|>(?:et|ou)/") and not \4.startswith("seul") >>>
<<- /gn/ morph(\3, ":[NA].*:[me]", ":(?:B|G|V0|f)") and morph(\4, ":[NA].*:f", "*") and not apposition(\3, \4)
-4>> =suggMasSing(\4, True) # Accord de genre erroné : « \2 \3 » est masculin, « \4 » est féminin.
<<- /gn/ morph(\3, ":[NA].*:[si]", ":G") and morph(\4, ":[NA].*:p", "*") and not apposition(\3, \4)
-4>> =suggMasSing(\4) # Accord de nombre erroné avec « \2 \3 » : « \4 » devrait être au singulier.
TEST: un exercice pas très {{utiles}}. ->> utile
TEST: un homme {{grands}} ->> grand
TEST: un homme {{futiles}} ->> futile
TEST: Une femme {{laconiques}}. ->> laconique
TEST: je me souviens d’un homme {{arrogants}}
TEST: C’est pas les quelques vues sur Linux qui vont rattraper un scénario {{bancale}}.
__gn_une_2m__
une *WORD *WORD
<<- /gn/ not value(<1, "|et|ou|d’|") and not \3.startswith("seul") >>>
<<- /gn/ morph(\2, ":[NA].*:[fe]", ":(?:B|G|V0)") and morph(\3, ":[NA].*:m", "*") and not apposition(\2, \3)
-3>> =suggFemSing(\3, True) # Accord de genre erroné : « \1 \2 » est féminin, « \3 » est masculin.
<<- /gn/ \2 != "fois" and morph(\2, ":[NA].*:[si]", ":G") and morph(\3, ":[NA].*:p", "*") and not apposition(\2, \3)
-3>> =suggFemSing(\3) # Accord de nombre erroné avec « \1 \2 » : « \3 » devrait être au singulier.
[et|ou|d’] une *WORD *WORD
<<- /gn/ not morph(<1, ":[NA]|>(?:et|ou)/") and not \4.startswith("seul") >>>
<<- /gn/ morph(\3, ":[NA].*:[fe]", ":(?:B|G|V0|m)") and morph(\4, ":[NA].*:m", "*") and not apposition(\3, \4)
-4>> =suggFemSing(\4, True) # Accord de genre erroné : « \2 \3 » est féminin, « \4 » est masculin.
<<- /gn/ \3 != "fois" and morph(\3, ":[NA].*:[si]", ":G") and morph(\4, ":[NA].*:p", "*") and not apposition(\3, \4)
-4>> =suggFemSing(\4) # Accord de nombre erroné avec « \2 \3 » : « \4 » devrait être au singulier.
TEST: Une grande {{homme}}.
TEST: une géologue {{intelligents}}
TEST: Et une femme {{déterminées}}
TEST: on parle là d’une femme {{inconnu}}
TEST: L’or allume le feu d’une cupidité d’une couleur et d’une sorte différentes.
__gn_du_1m__
du *WORD
<<- /gn/ morph(\2, ":[NA].*:f", ":[GWme]") -1>> de la # 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.
__gn_dudit_1m__
dudit *WORD
<<- /gn/ morph(\2, ":[NA].*:f", ":[GWme]") -1>> de 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.
TEST: cette bouffe, c’est du {{chiens}}
TEST: les consignes dudit {{présidents}} étaient contratritoires.
__gn_cet_1m__
cet *WORD
<<- /gn/ morph(\2, ":[NA].*:f", ":[GWme]") -1>> cette # 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, ">[bcçdfgjklmnpqrstvwxz].+:[NA].*:m", ":[efGW]") -1>> ce # Accord de genre correct, mais euphonie non respectée.|http://fr.wikipedia.org/wiki/Euphonie
<<- /gn/ morph(\2, ":[NA].*:p", ":[siGW]") -2>> =suggMasSing(\2) # Accord de nombre erroné : « \2 » devrait être au singulier.
__gn_ce_1m__
ce *WORD
<<- /gn/ morph(\2, ":[NA].*:f", ":(?:3s|[GWme])") -1>> cette # 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].*:f", ":[GWme]") and morph(\2, ":3s") -1>> cette|se # Accord de genre erroné : « \2 » est féminin. Ou bien vous confondez le déterminant “ce” avec le pronom “se”.
<<- /gn/ morph(\2, ":[NA].*:p", ":[siGW]") -2>> =suggMasSing(\2) # Accord de nombre erroné : « \2 » devrait être au singulier.
__gn_cette_1m__
cette *WORD
<<- /gn/ morph(\2, ":[NA].*:m", ":[efGW]") -1>> =suggCeOrCet(\2) # Accord de genre erroné : « \2 » est masculin.
<<- /gn/ __also__ and hasFemForm(\2) -2>> =suggFemSing(\2, True) # Accord de genre erroné : « \1 » est un déterminant féminin.
<<- /gn/ morph(\2, ":[NA].*:p", ":[siGW]") -2>> =suggFemSing(\2) # Accord de nombre erroné : « \2 » devrait être au singulier.
TEST: {{Cet}} {{idiote}}.
TEST: {{cet}} ballon. ->> ce
TEST: {{Ce}} animal. ->> Cet
TEST: cet {{oliviers}}
TEST: ce {{claviers}}
TEST: {{Cette}} {{animal}} mort.
__gn_mon_ton_son_1m__
[mon|ton|son] *WORD
<<- /gn/ morph(\1, ":D") >>>
<<- /gn/ morph(\2, ">[bcdfgjklmnpqrstvwxz].*:[NA].*:f", ":[GWme]") -1>> =\1.replace("on", "a") # 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.
__gn_ma_ta_sa_1m__
[ma|ta|sa] *WORD
<<- /gn/ morph(\2, ":[NA].*:m", ":[efGW]") -1>> =\1[:-1]+"on" # Accord de genre erroné : « \2 » est masculin.
<<- /gn/ __also__ and not re.search("(?i)^[aâeéèêiîoôuûyœæ]", \2) and hasFemForm(\2)
-2>> =suggFemSing(\2, True) # Accord de genre erroné : « \1 » est un déterminant féminin.
<<- /gn/ morph(\2, ":[NA].*:p", ":[siGW]") -2>> =suggFemSing(\2) # Accord de nombre erroné : « \2 » devrait être au singulier.
TEST: {{mon}} {{chienne}}
TEST: le ton monte.
TEST: {{ma}} {{parti}}
TEST: {{ma}} amour ->> mon
__gn_notre_votre_chaque_1m__
[notre|votre|chaque] *WORD
<<- /gn/ morph(\2, ":[NA].*:p", ":[siGW]") -2>> =suggSing(\2) # Accord de nombre erroné : « \2 » devrait être au singulier.
TEST: Chaque {{chiens}}. ->> chien
__gn_au_1m__
au *WORD
<<- /gn/ morph(\2, ":[NA].*:f:s", ":[GWme]") -1>> à la # 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.
<<- /gn/ __also__ -1>> aux # Accord de nombre erroné : « \2 » est au pluriel.
TEST: {{au}} {{États-Unis}}
__gn_quelque_1m__
quelque *WORD
<<- /gn/ morph(\2, ":[NA].*:p", ":[siG]") and not value(>1, "|que|qu’|qu|")
-1>> quelques # Il manque un “s” à « quelque » ou « \2 » doit être au singulier.
TEST: {{Quelque}} amis
## Pluriels
__gn_les_1m__
, les *WORD
<<- /gn/ ( morph(\3, ":[NA].*:s", "*") and not (value(>1, "|et|ou|") and morph(>2, ":[NA]")) )
or \3 in aREGULARPLURAL
-3>> =suggPlur(\3) # Accord de nombre erroné : « \3 » devrait être au pluriel.
|
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
9578
9579
9580
9581
9582
9583
9584
9585
9586
9587
9588
9589
9590
9591
9592
9593
9594
9595
9596
9597
9598
9599
9600
9601
9602
9603
9604
9605
9606
9607
9608
9609
9610
9611
9612
9613
|
TEST: elle s’y prit avec cet individu de façon {{charmant}}.
@@@@
@@@@END_GRAPH _
@@@@
## un / une
__[i]/gn(gn_2m_un)__
(?<!et |ou | d’)un +({w_2}) +({w_2}) @@w,$
<<- not \2.startswith("seul")
and morphex(\1, ":[NAQ].*:[me]", ":(?:B|G|V0)") and morph(\2, ":[NAQ].*:f")
and not apposition(\1, \2) and not before(r"\b(?:et|ou|de) +$")
-2>> =suggMasSing(@, True) # Accord de genre erroné : « \1 » est masculin, « \2 » est féminin.
<<- morphex(\1, ":[NAQ].*:[si]", ":G") and morph(\2, ":[NAQ].*:p") and not \2.startswith("seul")
and not apposition(\1, \2) and not before(r"\b(?:et|ou|d’) *$")
-2>> =suggMasSing(@) # Accord de nombre erroné avec « \1 » : « \2 » devrait être au singulier.
__[i]/gn(gn_2m_un_après_et_ou_de)__
(?:et +|ou +|d’)un +({w_2}) +({w_2}) @@w,$
<<- not \2.startswith("seul")
and morphex(\1, ":[NAQ].*:[me]", ":(?:B|G|V0|f)") and morph(\2, ":[NAQ].*:f")
and not apposition(\1, \2)
and not morph(word(-1), ":[NAQ]|>(?:et|ou)/", False, False)
-2>> =suggMasSing(@, True) # Accord de genre erroné : « \1 » est masculin, « \2 » est féminin.
<<- morphex(\1, ":[NAQ].*:[si]", ":G") and morph(\2, ":[NAQ].*:p") and not \2.startswith("seul")
and not apposition(\1, \2)
and not morph(word(-1), ":[NAQB]|>(?:et|ou)/", False, False)
-2>> =suggMasSing(@) # Accord de nombre erroné avec « \1 » : « \2 » devrait être au singulier.
TEST: un exercice pas très {{utiles}}. ->> utile
TEST: un homme {{grands}} ->> grand
TEST: un homme {{futiles}} ->> futile
TEST: Une femme {{laconiques}}. ->> laconique
TEST: je me souviens d’un homme {{arrogants}}
TEST: C’est pas les quelques vues sur Linux qui vont rattraper un scénario {{bancale}}.
__[i]/gn(gn_2m_une)__
(?<!et |ou | d’)une +({w_2}) +({w_2}) @@w,$
<<- not \2.startswith("seul")
and morphex(\1, ":[NAQ].*:[fe]", ":(?:B|G|V0)") and morph(\2, ":[NAQ].*:m")
and not apposition(\1, \2) and not before(r"\b(?:et|ou|de) +$")
-2>> =suggFemSing(@, True) # Accord de genre erroné : « \1 » est féminin, « \2 » est masculin.
<<- \1 != "fois" and morph(\1, ":[NAQ].*:[si]", False) and morph(\2, ":[NAQ].*:p") and not \2.startswith("seul")
and not apposition(\1, \2) and not before(r"\b(?:et|ou|d’) *$")
-2>> =suggFemSing(@) # Accord de nombre erroné avec « \1 » : « \2 » devrait être au singulier.
__[i]/gn(gn_2m_une_après_et_ou_de)__
(?:et +|ou +|d’)une +({w_2}) +({w_2}) @@w,$
<<- not \2.startswith("seul")
and morphex(\1, ":[NAQ].*:[fe]", ":(?:B|G|V0|m)") and morph(\2, ":[NAQ].*:m")
and not apposition(\1, \2)
and not morph(word(-1), ":[NAQ]|>(?:et|ou)/", False, False)
-2>> =suggFemSing(@, True) # Accord de genre erroné : « \1 » est féminin, « \2 » est masculin.
<<- \1 != "fois" and morph(\1, ":[NAQ].*:[si]", False) and morph(\2, ":[NAQ].*:p") and not \2.startswith("seul")
and not apposition(\1, \2)
and not morph(word(-1), ":[NAQB]|>(?:et|ou)/", False, False)
-2>> =suggFemSing(@) # Accord de nombre erroné avec « \1 » : « \2 » devrait être au singulier.
TEST: Une grande {{homme}}.
TEST: une géologue {{intelligents}}
TEST: Et une femme {{déterminées}}
TEST: on parle là d’une femme {{inconnu}}
TEST: L’or allume le feu d’une cupidité d’une couleur et d’une sorte différentes.
## articles divers
__[i]/gn(gn_2m_le)__
(?<!et |ou )(le) +({w_2}) +({w_2}) @@0,w,$
<<- morph(\1, ":D", False) >>>
<<- not \3.startswith("seul")
|
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
|
9594
9595
9596
9597
9598
9599
9600
9601
9602
9603
9604
9605
9606
9607
|
TEST: elle s’y prit avec cet individu de façon {{charmant}}.
@@@@
@@@@END_GRAPH _
@@@@
## articles divers
__[i]/gn(gn_2m_le)__
(?<!et |ou )(le) +({w_2}) +({w_2}) @@0,w,$
<<- morph(\1, ":D", False) >>>
<<- not \3.startswith("seul")
|