Grammalecte  Check-in [a34af7635d]

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: a34af7635da1b4a9486fc5c58898f02ce817f5fae9f18eeb7f7eb1fb5e5f120f
User & Date: olr on 2018-07-10 18:30:57
Other Links: branch diff | manifest | tags
Context
2018-07-10
18:42
[build] don’t check if there is code in action when action is disambiguation check-in: e293f98eb8 user: olr tags: build, rg
18:30
[fr] conversion: regex rules -> graph rules check-in: a34af7635d user: olr tags: fr, rg
15:41
[fr] Règles pour l’OCR déplacées check-in: dac7c02ab7 user: olr tags: fr, rg
Changes

Modified gc_lang/fr/rules.grx from [a9552aa124] to [8e27cda8dc].

2689
2690
2691
2692
2693
2694
2695
2696
2697
2698
2699
2700
2701
2702
2703
2704
2705
2706
2707
2708
2709
2710
2711
2712
2713
2714
2715
2716
2717
2718
2719
2720
2721
2722
2723
2724
2725
2726
2727
2728
2729
2730
2731
2732
2733
2734
2735
2736
2737
2738
2739
2740
2741
2742
2743
2744
2745
2746
2747
2748
2749
2750
2751
2752
2753
2754
2755
2756
2757
2758
2759
2760
2761
2762
2763
2764
2765
2766
2767
2768
2769
2770
2771
2772
2773
2774
2775
2776
2777


2778
2779
2780
2781
2782
2783
2784
__[i](d_vous)__
    (vous) ({avoir_etre}) @@0,$                 <<- not morph(\2, ":2p", False) =>> exclude(\1, ":Os")
__[i](d_ils_elles_le_la_les)__
    (?:ils|elles) (l(?:e(?:ur|s|)|a)) @@$       <<- not morph(word(-1), ":3p", False, False) =>> select(\1, ":Oo")
__[i](d_ne_me_te_te_le_la_leur)__
    [nmts]e (l(?:e(?:ur|s|)|a)) @@$             <<- =>> =select(\1, ":Oo")


# verbe
__[i](d_ne_verbe)__
    ne +(?:l(?:es? |eurs? |ui |a |’)|[nv]ous |)({w_1}) @@$
    <<- not morph(\1, ":(?:O[sp]|X)", False) =>> select(\1, ":V")
__[i](d_n_m_t_s_verbe)__
    [nmts]’(?:en +|y +|)({w_1}) @@$
    <<- not morph(\1, ":X", False) =>> select(\1, ":V")
__[i](d_me_te_se_verbe)__
    [mts]e +(?:l(?:es? +|a +|’)|)({w_2})  @@$
    <<- =>> select(\1, ":V")
__[i](d_je_verbe)__
    j’(?:en +|y +|)({w_1}) @@$
    <<- =>> select(\1, ":[123][sp]")
__[i](d_je_il_ils_on_verbe)__
    (?:je|ils?|on) +(?:l(?:es? +|la +|’)|[nv]ous +|)({w_1}) @@$
    <<- not morph(\1, ":(?:Oo|X)", False) =>> select(\1, ":[123][sp]")
__[i](d_tu_verbe)__
    tu +(?:l(?:es? +|la +|’)|[nv]ous +|)({w_1}) @@$
    <<- morph(word(-1), ":Cs", False, True) and not morph(\1, ":(?:Oo|X)", False) =>> select(\1, ":[123][sp]")
__[s](d_nom_propre_verbe)__
    ([A-ZÉÈ]{w_1}) +({w_1})  @@0,$
    <<- morph(\1, ":M") and \2.islower() and morphex(\2, ":[123][sg]", ":Q") and morph(\2, ":N", False) and morph(word(-1), ":Cs", False, True)
    =>> select(\2, ":[123][sp]")
    <<- morph(\1, ":M", False) and morphex(\2, ":[123]s|>(?:[nmts]e|nous|vous)/", ":A") and isStart() =>> =select(\1, ":M")
__[i](d_que_combien_pourquoi_en_y_verbe)__
    (?:que?|combien|pourquoi) +(?:en +|y +|)({w_3}) @@$
    <<- =>> exclude(\1, ":E")

# groupe nominal
__[i](d_aucun_non_verbe)__
    aucun +({w_4}) @@$
    <<- morph(\1, ":[NA].*:[me]", False) =>> exclude(\1, ":V")
__[i](d_de_non_verbe)__
    d(?:e +|’)({w_1}) @@$
    <<- not morph(\1, ":[YD]", False) =>> exclude(\1, ":V")
__[i](d_d_un_une_non_verbe)__
    d’une? ({w_1}) @@$
    <<- =>> exclude(\1, ":V")
__[i](d_déterminant_non_verbe)__
    (?:des|chaque|quelques?|cet(?:te|)|m(?:on|a)|[ts]a|aux?) +({w_1}) @@$
    <<- =>> exclude(\1, ":V")
__[i](d_de_la_non_verbe)__
    de l(?:a |’)({w_2}) @@6
    <<- not morph(\1, ":Y", False) =>> exclude(\1, ":V")
__[i](d_de_pronom_non_verbe)__
    de (?:tel(?:le|)s?|ce(?:tte|t|s)|[ts](?:a|es)|m(?:on|a|es)|[nv]o(?:tre|s)|plein) +({w_2})  @@$
    <<- =>> exclude(\1, ":V")
__[i](d_par_non_verbe)__
    par +({w_3}) @@$
    <<- =>> exclude(\1, ":V[123]")
__[i](d_très_non_verbe)__
    très +({w_2}) @@$
    <<- =>> exclude(\1, ":[123][sp]")
__[i](d_en_tant_que)__
    en tant que +({w_2}) @@$
    <<- =>> exclude(\1, ":[123][sp]")

# divers
__[i](p_bac_plus_nombre)__
    bac ?([+] ?\d\d?) @@$
    <<- ~1>> *
    <<- =>> define(\0, [":N:e:i"])


TEST: il s’agit d’{{un}} {{anagramme}}
TEST: nul ne sait qui arriva à ce pauvre Paul surpris par la pluie.
TEST: elle finit par être très fière de son fils.
TEST: en tant que président du conseil




@@@@
@@@@
@@@@
@@@@
@@@@GRAPH: graphe1                                                                                 _
@@@@
@@@@
@@@@
@@@@



!!
!!
!!!! Incohérences de base                                                                         !!
!!
!!








|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
>
>







2689
2690
2691
2692
2693
2694
2695
2696
2697
2698
2699
2700
2701
2702
2703
2704
2705
2706
2707
2708
2709
2710
2711
2712
2713
2714
2715
2716
2717
2718
2719
2720
2721
2722
2723
2724
2725
2726
2727
2728
2729
2730
2731
2732
2733
2734
2735
2736
2737
2738
2739
2740
2741
2742
2743
2744
2745
2746
2747
2748
2749
2750
2751
2752
2753
2754
2755
2756
2757
2758
2759
2760
2761
2762
2763
2764
2765
2766
2767
2768
2769
2770
2771
2772
2773
2774
2775
2776
2777
2778
2779
2780
2781
2782
2783
2784
2785
2786
__[i](d_vous)__
    (vous) ({avoir_etre}) @@0,$                 <<- not morph(\2, ":2p", False) =>> exclude(\1, ":Os")
__[i](d_ils_elles_le_la_les)__
    (?:ils|elles) (l(?:e(?:ur|s|)|a)) @@$       <<- not morph(word(-1), ":3p", False, False) =>> select(\1, ":Oo")
__[i](d_ne_me_te_te_le_la_leur)__
    [nmts]e (l(?:e(?:ur|s|)|a)) @@$             <<- =>> =select(\1, ":Oo")




@@@@
@@@@
@@@@
@@@@
@@@@GRAPH: graphe1                                                                                 _
@@@@
@@@@
@@@@
@@@@


# verbe
__da_préverbes_verbes__
    ne ?[le|la|l’|les|lui|leur|nous|vous]¿  (@:¬:[OX])
        <<- =>> select(\1, ":V")

    [n’|m’|t’|s’]  ?[en|y]¿  (@:¬:[OX])
        <<- =>> select(\1, ":V")

    [me|te|se]  ?[le|la|l’|les]¿  (*WORD)
        <<- =>> select(\1, ":V")

    j’ ?[en|y]¿  (*WORD)
        <<- =>> select(\1, ":[123][sp]")

    [je|il|ils|on]  ?[le|la|l’|les|lui|leur|nous|vous]¿  (@:¬:[OX])
        <<- =>> select(\1, ":[123][sp]")

    tu  ?[le|la|l’|les|lui|leur|nous|vous]¿  (@:¬:[OX])
        <<- morph(<1, ":Cs|<start>") =>> select(\1, ":[123][sp]")

    @:M  @:[123]s¬:Q
        <<- \2.islower() and morph(<1, ":Cs|<start>") =>> select(\2, ":[123][sp]")

    <start> @:M  @:(?:[123]s|Oo)|>ne/¬:A
        <<- =>> =select(\2, ":M")

    [que|qu’|qu|combien|pourquoi]  ¿[en|y]¿  (*WORD)
        <<- =>> exclude(\1, ":E")


__da_groupe_nominal__
    aucun  @:[NA].*:[me]
        <<- =>> exclude(\2, ":V")

    [de|d’]  @:¬:[YD]
        <<- =>> exclude(\2, ":V")

    d’ [un|une]  *WORD
        <<- =>> exclude(\3, ":V")

    [des|chaque|quelque|quelques|cet|cette|mon|ma|ta|sa|mes|au|aux|nos|vos]  *WORD
        <<- =>> exclude(\2, ":V")

    de  [la|l’]  @:¬:Y
        <<- =>> exclude(\3, ":V")

    de [>telle|ce|cet|cette|ces|mon|ma|ta|sa|mes|tes|ses|notre|votre|plein|pleine]  *WORD
        <<- =>> exclude(\3, ":V")

    par  *WORD
        <<- =>> exclude(\2, ":V[123]")

    très  *WORD
        <<- =>> exclude(\2, ":[123][sp]")

    en tant que  *WORD
        <<- =>> exclude(\4, ":[123][sp]")

    bac + ~^\d\d?$
        <<- ~>> ␣
        <<- =>> define(\1, [":N:e:i"])


TEST: il s’agit d’{{un}} {{anagramme}}
TEST: nul ne sait qui arriva à ce pauvre Paul surpris par la pluie.
TEST: elle finit par être très fière de son fils.
TEST: en tant que président du conseil
TEST: les bac +2 sont trop nombreux.
TEST: c’est à n’y plus rien comprendre.


!!
!!
!!!! Incohérences de base                                                                         !!
!!
!!