Grammalecte  Check-in [d05dab5b5a]

Overview
Comment:[fr] conversion: regex rules -> graph rules
Downloads: Tarball | ZIP archive | SQL archive
Timelines: family | ancestors | descendants | both | fr | rg
Files: files | file ages | folders
SHA3-256: d05dab5b5a5f86670d1291869fdd310036c34508c9636bbb4815a8f2f63cdb29
User & Date: olr on 2018-07-09 15:01:56
Other Links: branch diff | manifest | tags
Context
2018-07-09
15:43
[fr] conversion: regex rules -> graph rules check-in: f7ea386d70 user: olr tags: fr, rg
15:01
[fr] conversion: regex rules -> graph rules check-in: d05dab5b5a user: olr tags: fr, rg
13:49
[core] better communication between graph rules and regex rules (still a mess for the transition) check-in: c55bec5997 user: olr tags: core, rg
Changes

Modified gc_lang/fr/rules.grx from [496bb98f36] to [7895fa2436].

692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
__[i>/virg(virgule_manquante_avant_mais)__
    ({w_1})( mais)(?= (?:j[e’]|tu|ils?|nous|vous|elles?|on)\b)  @@0,$
    <<- not morph(\1, ">(?:[mtscl]es|[nv]os|quels)/", False) -2>> , mais
    # Si « mais » est la conjonction de coordination, une virgule est souhaitable si elle introduit une nouvelle proposition.|http://bdl.oqlf.gouv.qc.ca/bdl/gabarit_bdl.asp?id=3445
__[i>/virg(virgule_manquante_avant_donc)__
    ({w_1})( donc)(?= (?:j[e’]|tu|ils?|elles?|on)\b)  @@0,$
    <<- not morph(\1, ":V", False) -2>> , donc
    # Si « mais » est la conjonction de coordination, une virgule est souhaitable si elle introduit une nouvelle proposition.|http://bdl.oqlf.gouv.qc.ca/bdl/gabarit_bdl.asp?id=3448

TEST: Un chien, un chat{{ etc.}}                                            ->> , etc.
TEST: Je suis fatigué{{ car}} ils ont joué toute la nuit.                   ->> , car
TEST: Je suis fatigué{{ mais}} il a joué toute la nuit.                     ->> , mais
TEST: il l’a vu de ses propres yeux{{ donc}} il faut y croire.              ->> , donc
TEST: il s’est donc tu








|







692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
__[i>/virg(virgule_manquante_avant_mais)__
    ({w_1})( mais)(?= (?:j[e’]|tu|ils?|nous|vous|elles?|on)\b)  @@0,$
    <<- not morph(\1, ">(?:[mtscl]es|[nv]os|quels)/", False) -2>> , mais
    # Si « mais » est la conjonction de coordination, une virgule est souhaitable si elle introduit une nouvelle proposition.|http://bdl.oqlf.gouv.qc.ca/bdl/gabarit_bdl.asp?id=3445
__[i>/virg(virgule_manquante_avant_donc)__
    ({w_1})( donc)(?= (?:j[e’]|tu|ils?|elles?|on)\b)  @@0,$
    <<- not morph(\1, ":V", False) -2>> , donc
    # Si « donc » est la conjonction de coordination, une virgule est souhaitable si elle introduit une nouvelle proposition.|http://bdl.oqlf.gouv.qc.ca/bdl/gabarit_bdl.asp?id=3448

TEST: Un chien, un chat{{ etc.}}                                            ->> , etc.
TEST: Je suis fatigué{{ car}} ils ont joué toute la nuit.                   ->> , car
TEST: Je suis fatigué{{ mais}} il a joué toute la nuit.                     ->> , mais
TEST: il l’a vu de ses propres yeux{{ donc}} il faut y croire.              ->> , donc
TEST: il s’est donc tu

3238
3239
3240
3241
3242
3243
3244
3245
3246
3247
3248
3249
3250
3251
3252
3253
3254
3255
3256
3257
3258
3259
3260
3261
3262
3263
3264
3265
3266
3267
3268
3269
3270
3271
3272
3273
3274
3275
3276
3277
3278
3279
3280
3281
3282
3283
3284
3285
3286
3287
3288
3289
3290
3291
3292
3293
3294
3295
3296
3297
3298
3299
3300
3301
3302
3303
    (auxdites) +({w_2})  @@0,$
    <<- morphex(\2, ":V.*:(?:Y|[123][sp])", ":[NAQ]") and \2[0].islower()
    -2>> =suggSimil(\2, ":[NA]:[fe]:[pi]", True)                                                    # Incohérence avec « \1 » : « \2 » est un verbe.

TEST: auxdites {{scelles}}, il ne prêta pas attention.


__[i]/conf(conf_de_la_vconj)__  de la +({w_2})  @@6
    <<- morphex(\1, ":[123][sp]", ":[NAQ]") >>>
    <<- morphex(\1, ":V1.*:(?:Iq|Ip:2p)", ":1p") -1>> =suggVerbInfi(@)                              # Incohérence : mettez le verbe à l’infinitif (à moins qu’il y ait confusion avec un nom féminin).
    <<- __else__ -1>> =suggSimil(\1, ":(?:[NA]:[fe]:[si])", False)                                  # Incohérence : « \1 » est un verbe.

TEST: les petits esprits de la {{pensait}} religieuse


TEST: pour les insulter au sortir du seul troquet dispensateur d’oubli liquide du coin
TEST: ce peut être un matériau à part entière pour alimenter discussions et délibérations.


__[i]/conf(conf_de_le_nom_ou_vconj)__
    (de le) ({w_2})  @@0,6
    <<- morphex(\2, ":[NAQ].*:[me]", ":[YG]") and \2[0].islower() -1>> du                           # Incohérence : « \2 » est un nom ou un adjectif.
    <<- morph(\2, ":[123][sp]", False) -2>> =suggVerbInfi(\2)                                       # Incohérence : « \2 » est une forme verbale conjuguée.

TEST: {{de le}} vin                                           ->> du
TEST: il n’est pas interdit de le {{pensait}}


__[i]/conf(conf_de_l_vconj)__
    de l’({w_2})  @@5
    <<- morphex(\1, ":[123][sp]", ":[NAQ]") -1>> =suggSimil(\1, ":[NA]:.:[si]", True)               # Incohérence : « \1 » est une forme verbale conjuguée.

TEST: de l’{{entra}}


__[i]/conf(conf_un_verbe)__
    (?<!’)un ({w_2})  @@3
    <<- morph(\1, ":(?:Y|[123][sp])") and not before("(?i)(?:dont|sauf|un à) +$")
    -1>> =suggSimil(\1, ":[NAQ]:[me]:[si]", True)                                                   # Incohérence : « \1 » est une forme verbale conjuguée.

TEST: un {{maintient}} difficile.


__[i]/conf(conf_de_dès_par_vconj)__
    (?:d(?:e|ès)|par) ({w_2})  @@$
    <<- \1[0].islower() and morph(\1, ":V.*:[123][sp]") -1>> =suggSimil(\1, ":[NA]", True)          # Incohérence : « \1 » est une forme verbale conjuguée.

TEST: par {{bloque}} de données
TEST: il s’agit de {{mette}} en évidence.


__[i]/conf(conf_d_une_vconj)__
    d’(?:une? +|)({w_2})  @@$
    <<- \1[0].islower() and morphex(\1, ":V.*:[123][sp]", ":[GNA]") and not before(r"(?i)\b(?:plus|moins) +$")
    -1>> =suggSimil(\1, ":[NA]", True)                                                              # Incohérence : « \1 » est une forme verbale conjuguée.

TEST: d’une {{habille}} femme
TEST: plus d’un ont été traumatisés
TEST: plus d’une sont parties aussi vite qu’elles étaient venues














<
<
<
<

<


<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<







3238
3239
3240
3241
3242
3243
3244




3245

3246
3247












































3248
3249
3250
3251
3252
3253
3254
    (auxdites) +({w_2})  @@0,$
    <<- morphex(\2, ":V.*:(?:Y|[123][sp])", ":[NAQ]") and \2[0].islower()
    -2>> =suggSimil(\2, ":[NA]:[fe]:[pi]", True)                                                    # Incohérence avec « \1 » : « \2 » est un verbe.

TEST: auxdites {{scelles}}, il ne prêta pas attention.





























































3337
3338
3339
3340
3341
3342
3343




3344





































3345
3346
3347
3348
3349
3350
3351
3352
3353
3354
3355
3356
3357
3358
3359
3360
3361
3362
3363
3364
3365
3366
3367
3368
3369
3370
3371
3372
3373
3374
3375
3376
3377
3378
3379
3380
3381
3382
3383
3384
3385
3386
3387
3388
3389
3390
3391
3392
3393

!!
!!
!!!! Confusions générales                                                                         !!
!!
!!











































__conf_je_non_verbe__
    je  @:¬:(?:[123][sp]|O[onw]|X)
        <<- /conf/ not value(\2, "|soussigné|soussignée|") and not morph(<1, ":1s")
        -2>> =suggSimil(\2, ":(?:1s|Oo)", False)                                                    # Incohérence avec « je » : « \2 » devrait être un verbe, un pronom objet, un adverbe de négation, etc.

    je  [le|la|l’|les|leur|lui|nous|vous]  @:¬:(?:[123][sp]|O[onw]|X)
        <<- /conf/ not morph(<1, ":1s") -3>> =suggSimil(\3, ":(?:1s|Oo)", False)                    # Incohérence avec « je » : « \3 » devrait être un verbe, un pronom objet, un adverbe de négation, etc.

TEST: Je {{travail}}.
TEST: Je soussigné, M. X., déclare que…


__conf_tu_non_verbe__
    tu  ?[le|la|l’|les|leur|lui|nous|vous]¿  (@:¬:(?:[123][sp]|O[onw]|X))
        <<- /conf/ not morph(<1, ":(?:2s|V0|R)") -1>> =suggSimil(\1, ":(?:2s|Oo)", False)           # Incohérence avec « tu » : « \1 » devrait être un verbe, un pronom objet, un adverbe de négation, etc.

TEST: tu {{croix}} que tu sais quelque chose, mais tu ne sais rien.
TEST: tu la {{croix}} idiote ?
TEST: Elles sont à tu et à toi.


__conf_il_on_non_verbe__
    [il|on]  @:¬:(?:[123][sp]|O[onw]|X)|>ou/
        <<- /conf/ not morph(<1, ":3s") and not value(<1, "|t’|")
        -2>> =suggSimil(\2, ":(?:3s|Oo)", False)                                                    # Incohérence avec « \1 » : « \2 » devrait être un verbe, un pronom objet, un adverbe de négation, etc.

    [il|on]  [le|la|l’|les|leur|lui|nous|vous]  @:¬:(?:[123][sp]|O[onw]|X)
        <<- /conf/ not morph(<1, ":3s") and not value(<1, "|t’|")
        -3>> =suggSimil(\3, ":(?:3s|Oo)", False)                                                    # Incohérence avec « \1 » : « \3 » devrait être un verbe, un pronom objet, un adverbe de négation, etc.

TEST: il {{et}} parti.
TEST: il nous {{et}} indispensable.


__conf_ils_non_verbe__
    ils  @:¬:(?:[123][sp]|O[onw]|X)|>ou/
        <<- /conf/ not morph(<1, ":3p") and not value(<1, "|t’|")
        -2>> =suggSimil(\2, ":(?:3p|Oo)", False)                                                    # Incohérence avec « ils » : « \2 » devrait être un verbe, un pronom objet, un adverbe de négation, etc.

    ils  [le|la|l’|les|leur|lui|nous|vous]  @:¬:(?:[123][sp]|O[onw]|X)
        <<- /conf/ not morph(<1, ":3p") and not value(<1, "|t’|")
        -3>> =suggSimil(\3, ":(?:3p|Oo)", False)                                                    # Incohérence avec « ils » : « \3 » devrait être un verbe, un pronom objet, un adverbe de négation, etc.

TEST: ils {{son}} du même bois.
TEST: Ils {{étai}} partie au {{restaurent}}
TEST: ils leur {{étai}} indifférent


__conf_chez_vconj__







>
>
>
>

>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>



|


|







|









|



|








|



|







3288
3289
3290
3291
3292
3293
3294
3295
3296
3297
3298
3299
3300
3301
3302
3303
3304
3305
3306
3307
3308
3309
3310
3311
3312
3313
3314
3315
3316
3317
3318
3319
3320
3321
3322
3323
3324
3325
3326
3327
3328
3329
3330
3331
3332
3333
3334
3335
3336
3337
3338
3339
3340
3341
3342
3343
3344
3345
3346
3347
3348
3349
3350
3351
3352
3353
3354
3355
3356
3357
3358
3359
3360
3361
3362
3363
3364
3365
3366
3367
3368
3369
3370
3371
3372
3373
3374
3375
3376
3377
3378
3379
3380
3381
3382
3383
3384
3385

!!
!!
!!!! Confusions générales                                                                         !!
!!
!!

__conf_un_verbe__
    un  @:(?:Y|[123][sp])¬:[GNA]
        <<- /conf/ not value(<1, "|dont|l’|d’|sauf|") and not before(r"(?i)\bun à +$")
        -2>> =suggSimil(\2, ":[NAQ]:[me]:[si]", True)                                               # Incohérence avec “\1” : “\2” est une forme verbale conjuguée.

TEST: un {{maintient}} difficile.
TEST: quelqu’un arrive.


__conf_de_dès_par_vconj__
    [de|d’|dès|par]  @:V.*:[123][sp]¬:[GNA]
        <<- /conf/ not \2.istitle() -2>> =suggSimil(\2, ":[NA]", True)                              # Incohérence avec “\1” : “\2” est une forme verbale conjuguée.

    [d’|par]  [un|une]  @:V.*:[123][sp]¬:[GNA]
        <<- /conf/ not \3.istitle() and not value(<1, "|plus|moins|")
        -3>> =suggSimil(\3, ":[NA]", True)                                                          # Incohérence avec “\1\2” : “\3” est une forme verbale conjuguée.

    de l’ @:[123][sp]¬:[NAQ]
        <<- /conf/ not \3.istitle() -3>> =suggSimil(\3, ":[NA]:.:[si]", True)                       # Incohérence avec “\1 \2” : “\3” est une forme verbale conjuguée.

    de  le  *WORD
        <<- /conf/ morph(\3, ":[NAQ].*:[me]", ":[YG]") and not \3.istitle() -1:2>> du               # Incohérence avec “\1 \2” : “\3” est un nom ou un adjectif.
        <<- /conf/ morph(\3, ":[123][sp]") -3>> =suggVerbInfi(\3)                                   # Incohérence avec “\1 \2” : “\3” est une forme verbale conjuguée.

    de  la  *WORD
        <<- /conf/ morph(\3, ":[123][sp]", ":[NAQ]") and not \3.istitle() >>>
        <<- morph(\3, ":V1.*:(?:Iq|Ip:2p)", ":1p") -3>> =suggVerbInfi(\3)               # Incohérence avec “\1 \2” : mettez le verbe à l’infinitif (à moins qu’il y ait confusion avec un nom féminin).
        <<- __else__ -3>> =suggSimil(\3, ":(?:[NA]:[fe]:[si])", False)                  # Incohérence avec “\1 \2” : “\3” est un verbe.

TEST: les petits esprits de la {{pensait}} religieuse
TEST: {{de le}} vin                                           ->> du
TEST: il n’est pas interdit de le {{pensait}}
TEST: de l’{{entra}}
TEST: par {{bloque}} de données
TEST: il s’agit de {{mette}} en évidence.
TEST: d’une {{habille}} femme
TEST: plus d’un ont été traumatisés
TEST: Plus d’une sont parties aussi vite qu’elles étaient venues
TEST: pour les insulter au sortir du seul troquet dispensateur d’oubli liquide du coin
TEST: ce peut être un matériau à part entière pour alimenter discussions et délibérations.


__conf_je_non_verbe__
    je  @:¬:(?:[123][sp]|O[onw]|X)
        <<- /conf/ not value(\2, "|soussigné|soussignée|") and not morph(<1, ":1s")
        -2>> =suggSimil(\2, ":(?:1s|Oo)", False)                                                    # Incohérence avec je : \2 devrait être un verbe, un pronom objet, un adverbe de négation, etc.

    je  [le|la|l’|les|leur|lui|nous|vous]  @:¬:(?:[123][sp]|O[onw]|X)
        <<- /conf/ not morph(<1, ":1s") -3>> =suggSimil(\3, ":(?:1s|Oo)", False)                    # Incohérence avec je : \3 devrait être un verbe, un pronom objet, un adverbe de négation, etc.

TEST: Je {{travail}}.
TEST: Je soussigné, M. X., déclare que…


__conf_tu_non_verbe__
    tu  ?[le|la|l’|les|leur|lui|nous|vous]¿  (@:¬:(?:[123][sp]|O[onw]|X))
        <<- /conf/ not morph(<1, ":(?:2s|V0|R)") -1>> =suggSimil(\1, ":(?:2s|Oo)", False)           # Incohérence avec tu : \1 devrait être un verbe, un pronom objet, un adverbe de négation, etc.

TEST: tu {{croix}} que tu sais quelque chose, mais tu ne sais rien.
TEST: tu la {{croix}} idiote ?
TEST: Elles sont à tu et à toi.


__conf_il_on_non_verbe__
    [il|on]  @:¬:(?:[123][sp]|O[onw]|X)|>ou/
        <<- /conf/ not morph(<1, ":3s") and not value(<1, "|t’|")
        -2>> =suggSimil(\2, ":(?:3s|Oo)", False)                                                    # Incohérence avec \1 : \2 devrait être un verbe, un pronom objet, un adverbe de négation, etc.

    [il|on]  [le|la|l’|les|leur|lui|nous|vous]  @:¬:(?:[123][sp]|O[onw]|X)
        <<- /conf/ not morph(<1, ":3s") and not value(<1, "|t’|")
        -3>> =suggSimil(\3, ":(?:3s|Oo)", False)                                                    # Incohérence avec \1 : \3 devrait être un verbe, un pronom objet, un adverbe de négation, etc.

TEST: il {{et}} parti.
TEST: il nous {{et}} indispensable.


__conf_ils_non_verbe__
    ils  @:¬:(?:[123][sp]|O[onw]|X)|>ou/
        <<- /conf/ not morph(<1, ":3p") and not value(<1, "|t’|")
        -2>> =suggSimil(\2, ":(?:3p|Oo)", False)                                                    # Incohérence avec ils : \2 devrait être un verbe, un pronom objet, un adverbe de négation, etc.

    ils  [le|la|l’|les|leur|lui|nous|vous]  @:¬:(?:[123][sp]|O[onw]|X)
        <<- /conf/ not morph(<1, ":3p") and not value(<1, "|t’|")
        -3>> =suggSimil(\3, ":(?:3p|Oo)", False)                                                    # Incohérence avec ils : \3 devrait être un verbe, un pronom objet, un adverbe de négation, etc.

TEST: ils {{son}} du même bois.
TEST: Ils {{étai}} partie au {{restaurent}}
TEST: ils leur {{étai}} indifférent


__conf_chez_vconj__