Grammalecte  Check-in [1c2b72cb21]

Overview
Comment:[fr] faux positifs
Downloads: Tarball | ZIP archive | SQL archive
Timelines: family | ancestors | descendants | both | trunk | fr
Files: files | file ages | folders
SHA3-256: 1c2b72cb21980419cac02bcd79e3c40cc32da79303a388f01ad82eed0472bd16
User & Date: olr on 2018-11-25 20:03:20
Other Links: manifest | tags
Context
2018-11-25
20:04
[core] value function: CAPITAL words also tested as lowercase words check-in: 0afadf325d user: olr tags: trunk, core
20:03
[fr] faux positifs check-in: 1c2b72cb21 user: olr tags: trunk, fr
14:26
[fr] phonet_simil: clore/chlore check-in: 3443bd9b9b user: olr tags: trunk, fr
Changes

Modified gc_lang/fr/rules.grx from [1721cc0f05] to [c72af3045b].

2124
2125
2126
2127
2128
2129
2130
2131
2132
2133
2134
2135
2136
2137
2138
    au  [bas|bras|côté|milieu|sein|sommet|faîte] [duquel|desquels|desquelles]
    au  [bas|bras|côté|milieu|sein|sommet|faîte] de laquelle
    aux [côtés] [duquel|desquels|desquelles]
    aux [côtés] de laquelle
        <<- %3>>

    au sortir [de|des|du|d’]
        <<- ~2>> *

    en tout et pour tout
        <<- %-1>>

    jusqu’ à
        <<- %2>>








|







2124
2125
2126
2127
2128
2129
2130
2131
2132
2133
2134
2135
2136
2137
2138
    au  [bas|bras|côté|milieu|sein|sommet|faîte] [duquel|desquels|desquelles]
    au  [bas|bras|côté|milieu|sein|sommet|faîte] de laquelle
    aux [côtés] [duquel|desquels|desquelles]
    aux [côtés] de laquelle
        <<- %3>>

    au sortir [de|des|du|d’]
        <<- ~2>> _

    en tout et pour tout
        <<- %-1>>

    jusqu’ à
        <<- %2>>

3161
3162
3163
3164
3165
3166
3167
3168
3169
3170
3171
3172




3173
3174
3175
3176
3177
3178
3179

TEST: {{ferro électrique}}                              ->> ferro-électrique
TEST: {{rétro ingénierie}}.                             ->> rétro-ingénierie


__tu_préfixe_divers__
    [anti|auto|arrière|avant|demi|extra|intra|multi|post]  *WORD
        <<- /tu/ analyse_with_next(\1, "-", ":") and (morph(<1, ":D|<start>") or value(<1, "|l’|d’|"))
        ->> \1-\2                                                                                   # Il manque probablement un trait d’union.

    [non|sans|sous]  *WORD
        <<- /tu/ analyse_with_next(\1, "-", ":") and morph(<1, ":D")




        ->> \1-\2                                                                                   # Il manque probablement un trait d’union.

TEST: il a pris une balle dans l’{{arrière train}}.
TEST: Ce {{sans gêne}} mérite une bonne leçon
TEST: Sans gêne, il avança parmi nous.









|


|
|
>
>
>
>







3161
3162
3163
3164
3165
3166
3167
3168
3169
3170
3171
3172
3173
3174
3175
3176
3177
3178
3179
3180
3181
3182
3183

TEST: {{ferro électrique}}                              ->> ferro-électrique
TEST: {{rétro ingénierie}}.                             ->> rétro-ingénierie


__tu_préfixe_divers__
    [anti|auto|arrière|avant|demi|extra|intra|multi|post]  *WORD
        <<- /tu/ (morph(<1, ":D|<start>") or value(<1, "|l’|d’|")) and analyse_with_next(\1, "-", ":")
        ->> \1-\2                                                                                   # Il manque probablement un trait d’union.

    [non|sans]  *WORD
        <<- /tu/ morph(<1, ":D") and analyse_with_next(\1, "-", ":")
        ->> \1-\2                                                                                   # Il manque probablement un trait d’union.

    sous  *WORD
        <<- /tu/ not(\2 == "forme" and value(>1, "|de|d’|")) and morph(<1, ":D") and analyse_with_next(\1, "-", ":")
        ->> \1-\2                                                                                   # Il manque probablement un trait d’union.

TEST: il a pris une balle dans l’{{arrière train}}.
TEST: Ce {{sans gêne}} mérite une bonne leçon
TEST: Sans gêne, il avança parmi nous.


11696
11697
11698
11699
11700
11701
11702

11703
11704
11705
11706
11707
11708
11709
            and not (\1.startswith("de") and value(<1, "|un|une|"))
        -4>> =suggPlur(\4)                                                                          # Accord de nombre erroné avec « \2 \3 » : « \4 » devrait être au pluriel.

TEST: ces {{beaux}} {{institutions}}
TEST: de vos défauts {{terrible}}, je connais presque tout.
TEST: Les éléments caractéristiques liés à ses valeurs historique et architecturale
TEST: Une des pierres veinée de rouge…



__gn_des_2m__
    des  *WORD  *WORD
        <<- /gn/ (morph(<1, ":[VRBX]|:Cs|>comme/|<start>", "*") or morph(\3, ":N", ":[AQ]")) and not \3.startswith("seul") >>>
        <<- /gn/ ( (morph(\2, ":[NA].*:m", ":[fe]") and morph(\3, ":[NA].*:f", "*")) or (morph(\2, ":[NA].*:f", ":[me]") and morph(\3, ":[NA].*:m", "*")) ) and not apposition(\2, \3)
        -3>> =switchGender(\3, True)                                                                # Accord de genre erroné avec « \2 ».







>







11700
11701
11702
11703
11704
11705
11706
11707
11708
11709
11710
11711
11712
11713
11714
            and not (\1.startswith("de") and value(<1, "|un|une|"))
        -4>> =suggPlur(\4)                                                                          # Accord de nombre erroné avec « \2 \3 » : « \4 » devrait être au pluriel.

TEST: ces {{beaux}} {{institutions}}
TEST: de vos défauts {{terrible}}, je connais presque tout.
TEST: Les éléments caractéristiques liés à ses valeurs historique et architecturale
TEST: Une des pierres veinée de rouge…
TEST: Pour maintenir le potentiel de membrane qui lui permet de communiquer avec ses voisins sous forme d’influx nerveux, un neurone a besoin d’énergie.


__gn_des_2m__
    des  *WORD  *WORD
        <<- /gn/ (morph(<1, ":[VRBX]|:Cs|>comme/|<start>", "*") or morph(\3, ":N", ":[AQ]")) and not \3.startswith("seul") >>>
        <<- /gn/ ( (morph(\2, ":[NA].*:m", ":[fe]") and morph(\3, ":[NA].*:f", "*")) or (morph(\2, ":[NA].*:f", ":[me]") and morph(\3, ":[NA].*:m", "*")) ) and not apposition(\2, \3)
        -3>> =switchGender(\3, True)                                                                # Accord de genre erroné avec « \2 ».
14955
14956
14957
14958
14959
14960
14961
14962
14963
14964
14965
14966





14967
14968
14969
14970
14971
14972
14973
14974
14975

    [à|avec|chez|contre|dans|envers|par|pour|selon|sous|sur] [un|une|le|la|l’|les|leur|leurs|ce|cet|cette|ces|mon|ton|son|ma|ta|sa|mes|tes|ses|notre|votre|nos|vos|quelques|certains|certaines]  @:[NAM]¬:G  <end>
    [à|avec|chez|contre|dans|envers|par|pour|selon|sous|sur] [un|une|le|la|l’|les|leur|leurs|ce|cet|cette|ces|mon|ton|son|ma|ta|sa|mes|tes|ses|notre|votre|nos|vos|quelques|certains|certaines]  @:[NAM]¬:G  ?,¿  [ne|n’|me|m’|te|t’|se|s’|nous|vous|y|c’|ça|ç’|je|j’|tu|il|elle|on|ils|elles|le|la|l’|les|mon|ma|ta|sa|notre|votre|leur|mes|tes|ses|nos|vos|leurs|ce|cet|cette|ces|quel|quels|quelle|quelles]
    [à|avec|chez|contre|dans|envers|par|pour|selon|sous|sur] [un|une|le|la|l’|les|leur|leurs|ce|cet|cette|ces|mon|ton|son|ma|ta|sa|mes|tes|ses|notre|votre|nos|vos|quelques|certains|certaines]  @:[NAM]¬:G  @:[VR]¬:[NAP]
    [à|avec|chez|contre|dans|envers|par|pour|selon|sous|sur] [un|une|le|la|l’|les|leur|leurs|ce|cet|cette|ces|mon|ton|son|ma|ta|sa|mes|tes|ses|notre|votre|nos|vos|quelques|certains|certaines]  @:[NAM]¬:G  , @¬:[NA]
        <<- ~1:3>> *

    [le|la|les|leur|ce|ton|son|certains|certaines] *WORD *WORD
        <<- morph(\2, ":[NA]", ":(?:[123]p|P|X|G)") and morph(\3, ":[NA]", ":(?:G|[123][sp]|P)") >>>
        <<- morph(\3, ":N", ":A") and morph(\2, ":A", ":N") ~2>> *
        <<- __else__ ~3>> *






    l’ *WORD *WORD
        <<- \2 != "air" and morph(\2, ":[NA]", ":(?:[123]p|P|X|G)") and morph(\3, ":[NA]", ":(?:G|[123][sp]|P)") >>>
        <<- morph(\3, ":N", ":A") and morph(\2, ":A", ":N") ~2>> *
        <<- __else__ ~3>> *

    [des|cet|cette|ces|mon|ma|ta|sa|mes|tes|ses|notre|votre|nos|vos|leurs|au|aux] *WORD *WORD
        <<- morph(\3, ":[NA]", ":(?:G|[123][sp]|P)") >>>
        <<- morph(\3, ":N", ":A") and morph(\2, ":A", ":N") ~2>> *
        <<- __else__ ~3>> *







|




>
>
>
>
>

|







14960
14961
14962
14963
14964
14965
14966
14967
14968
14969
14970
14971
14972
14973
14974
14975
14976
14977
14978
14979
14980
14981
14982
14983
14984
14985

    [à|avec|chez|contre|dans|envers|par|pour|selon|sous|sur] [un|une|le|la|l’|les|leur|leurs|ce|cet|cette|ces|mon|ton|son|ma|ta|sa|mes|tes|ses|notre|votre|nos|vos|quelques|certains|certaines]  @:[NAM]¬:G  <end>
    [à|avec|chez|contre|dans|envers|par|pour|selon|sous|sur] [un|une|le|la|l’|les|leur|leurs|ce|cet|cette|ces|mon|ton|son|ma|ta|sa|mes|tes|ses|notre|votre|nos|vos|quelques|certains|certaines]  @:[NAM]¬:G  ?,¿  [ne|n’|me|m’|te|t’|se|s’|nous|vous|y|c’|ça|ç’|je|j’|tu|il|elle|on|ils|elles|le|la|l’|les|mon|ma|ta|sa|notre|votre|leur|mes|tes|ses|nos|vos|leurs|ce|cet|cette|ces|quel|quels|quelle|quelles]
    [à|avec|chez|contre|dans|envers|par|pour|selon|sous|sur] [un|une|le|la|l’|les|leur|leurs|ce|cet|cette|ces|mon|ton|son|ma|ta|sa|mes|tes|ses|notre|votre|nos|vos|quelques|certains|certaines]  @:[NAM]¬:G  @:[VR]¬:[NAP]
    [à|avec|chez|contre|dans|envers|par|pour|selon|sous|sur] [un|une|le|la|l’|les|leur|leurs|ce|cet|cette|ces|mon|ton|son|ma|ta|sa|mes|tes|ses|notre|votre|nos|vos|quelques|certains|certaines]  @:[NAM]¬:G  , @¬:[NA]
        <<- ~1:3>> *

    [ce|ton|son] *WORD *WORD
        <<- morph(\2, ":[NA]", ":(?:[123]p|P|X|G)") and morph(\3, ":[NA]", ":(?:G|[123][sp]|P)") >>>
        <<- morph(\3, ":N", ":A") and morph(\2, ":A", ":N") ~2>> *
        <<- __else__ ~3>> *

    [le|la|les|leur|certains|certaines] *WORD *WORD
        <<- morph(\2, ":[NA]", ":(?:[123]p|P|X|G|Y)") and morph(\3, ":[NA]", ":(?:G|[123][sp]|P)") >>>
        <<- morph(\3, ":N", ":A") and morph(\2, ":A", ":N") ~2>> *
        <<- __else__ ~3>> *

    l’ *WORD *WORD
        <<- morph(\2, ":[NA]", ":(?:[123][sp]|P|X|G|Y)|>air") and morph(\3, ":[NA]", ":(?:G|[123][sp]|P)") >>>
        <<- morph(\3, ":N", ":A") and morph(\2, ":A", ":N") ~2>> *
        <<- __else__ ~3>> *

    [des|cet|cette|ces|mon|ma|ta|sa|mes|tes|ses|notre|votre|nos|vos|leurs|au|aux] *WORD *WORD
        <<- morph(\3, ":[NA]", ":(?:G|[123][sp]|P)") >>>
        <<- morph(\3, ":N", ":A") and morph(\2, ":A", ":N") ~2>> *
        <<- __else__ ~3>> *
19245
19246
19247
19248
19249
19250
19251



19252
19253
19254
19255
19256
19257
19258
TEST: Comment vous expliquez ça ?
TEST: Comment vous expliquer ça ?
TEST: le général n’en aura cure
TEST: n’en avoir cure et faire comme si de rien n’était.
TEST: Comme d’habitude, ils ont tout fait à l’arrache.
TEST: tout un système pour justifier que “nous” avons toujours raison et que nous ne pouvons jamais avoir tort.
TEST: Daignez le lui permettre.





!!! Tests historiques                                                                             !!

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








>
>
>







19255
19256
19257
19258
19259
19260
19261
19262
19263
19264
19265
19266
19267
19268
19269
19270
19271
TEST: Comment vous expliquez ça ?
TEST: Comment vous expliquer ça ?
TEST: le général n’en aura cure
TEST: n’en avoir cure et faire comme si de rien n’était.
TEST: Comme d’habitude, ils ont tout fait à l’arrache.
TEST: tout un système pour justifier que “nous” avons toujours raison et que nous ne pouvons jamais avoir tort.
TEST: Daignez le lui permettre.
TEST: Renvoyer quelqu’un sans l’avoir examiné peut être un grand danger.
TEST: En 1944, au sortir des deux guerres ayant ravagé l’Europe, le CNR (conseil national de la résistance) avait bien mesuré les tenants et les aboutissants, c’est-à-dire les causes et les conséquences du ravage des inégalités et du jusqu’au boutisme de l’auto-défense d’une caste pour préserver ses acquis.



!!! Tests historiques                                                                             !!

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