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: |
e9720b3b87a51228aeb40be2e44f0004 |
User & Date: | olr on 2018-07-11 09:27:01 |
Other Links: | branch diff | manifest | tags |
Context
2018-07-11
| ||
09:41 | [build][core] function to calculate spaces between tokens check-in: 74ea483d59 user: olr tags: core, build, rg | |
09:27 | [fr] conversion: regex rules -> graph rules check-in: e9720b3b87 user: olr tags: fr, rg | |
06:57 | [build][py] tests: don’t show wrong suggestions when detection don’t match what is expected check-in: ce35c1e40c user: olr tags: build, rg | |
Changes
Modified gc_lang/fr/rules.grx from [c08dcda4ac] to [30d0ce5f1b].
︙ | ︙ | |||
2611 2612 2613 2614 2615 2616 2617 | TEST: Tu vas les {{donner}} Rachel. TEST: Il va la {{tuer}} Paul. TEST: Cependant les promesses n’engagent que ceux qui les croient, comme aimait à le dire Jacques Chirac. | < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < > | > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > | > > > | | | | | > > > > > > > > > > > > > | 2611 2612 2613 2614 2615 2616 2617 2618 2619 2620 2621 2622 2623 2624 2625 2626 2627 2628 2629 2630 2631 2632 2633 2634 2635 2636 2637 2638 2639 2640 2641 2642 2643 2644 2645 2646 2647 2648 2649 2650 2651 2652 2653 2654 2655 2656 2657 2658 2659 2660 2661 2662 2663 2664 2665 2666 2667 2668 2669 2670 2671 2672 2673 2674 2675 2676 2677 2678 2679 2680 2681 2682 2683 2684 2685 2686 2687 2688 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 | TEST: Tu vas les {{donner}} Rachel. TEST: Il va la {{tuer}} Paul. TEST: Cependant les promesses n’engagent que ceux qui les croient, comme aimait à le dire Jacques Chirac. @@@@ @@@@ @@@@ @@@@ @@@@GRAPH: graphe1 _ @@@@ @@@@ @@@@ @@@@ !!!! Apostrophe manquante (2) !! __typo_apostrophe_manquante_audace__ <start> [L|D|S|N|C|J|M|T|Ç] ~^[aeéiouhAEÉIOUHyîèêôûYÎÈÊÔÛ] <<- option("mapos") -2>> =\1+"’" # Il manque peut-être une apostrophe. TEST: __mapos__ {{L }}opinion des gens, elle s’en moquait. !!!! A / À: accentuation la préposition en début de phrase !! __typo_À_début_phrase__ <start> A @:[GNAY]¬:(?:Q|3s)|>(?:priori|post[eé]riori|contrario|capella|fortiori)/ <start> A bientôt [<end>|,] <start> A [l’|d’|n’|m’|s’] <<- /typo/ -2>> À # S’il s’agit de la préposition « à », il faut accentuer la majuscule. <start> A t’ *WORD <<- /typo/ not value(\3, "|il|ils|elle|elles|on|ont|") -2>> À # S’il s’agit de la préposition « à », il faut accentuer la majuscule. TEST: {{A}} vaincre sans péril, on triomphe sans gloire. TEST: « {{A}} partir de maintenant, ce ne sera plus comme avant. TEST: — {{A}} n’en plus pouvoir TEST: — {{A}} t’emmener loin de tout ceci. TEST: {{A}} bientôt, mon ami. TEST: A bientôt fini son devoir. TEST: A priori, nul ne peut y parvenir sans une aide extérieure. TEST: A devient notre meilleure chance d’y parvenir. !!!! Accentuation des majuscules !! __maj_accents__ [Etat|Etats|Eglise|Eglises|Ecole|Ecoles|Economie|Equipe|Equipes|Electricité|Electrique|Egalité|Element|Eté|Epouse|Epouses] <<- ->> ="É"+\1[1:] # Accentuez les majuscules. <<- ~>> ="É"+\1[1:] TEST: Le budget de l’{{Etat}}. !!! !!! !!! Désambiguïsation !! !!! !!! __da_le_la_les_leur__ je [le|la|les|leur] <<- not morph(<1, ":1s") =>> select(\2, ":Oo") tu [le|la|les|leur] <<- not morph(<1, ":(?:2s|V0)") =>> select(\2, ":Oo") [il|on] [le|la|les|leur] <<- not morph(<1, ":3s") =>> select(\2, ":Oo") elle [le|la|les|leur] <<- not morph(<1, ":(?:3s|R)") =>> select(\2, ":Oo") nous [le|la|les|leur] <<- not morph(<1, ":(?:1p|R)") =>> select(\2, ":Oo") vous [le|la|les|leur] <<- not morph(<1, ":(?:2p|R)") =>> select(\2, ":Oo") ils [le|la|les|leur] <<- not morph(<1, ":3p") =>> select(\2, ":Oo") elles [le|la|les|leur] <<- not morph(<1, ":(?:3p|R)") =>> select(\2, ":Oo") [ne|n’|me|m’|te|t’|se|s’] [le|la|les|leur] <<- =>> =select(\2, ":Oo") __da_nous_vous__ nous [>avoir|>être] <<- not morph(\2, ":1p") =>> exclude(\1, ":Os") vous [>avoir|>être] <<- not morph(\2, ":2p") =>> exclude(\1, ":Os") __da_préverbes_verbes__ ne ?[le|la|l’|les|nous|vous|lui|leur]¿ (@:¬:[OX]) ne [nous|vous] [le|la|l’|les|en|y] (@:¬:[OX]) ne [le|la|l’|les] [lui|leur|en|y] (@:¬:[OX]) ne [lui|leur] en (@:¬:[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") [je|j’|il|ils|on] ?[le|la|l’|les|en|nous|vous|lui|leur|y]¿ (@:¬:[OX]) [je|j’|il|ils|on] [nous|vous] [le|la|l’|les|en|y] (@:¬:[OX]) [je|j’|il|ils|on] [le|la|l’|les] [lui|leur|en|y] (@:¬:[OX]) [je|j’|il|ils|on] [lui|leur] en (@:¬:[OX]) <<- =>> select(\1, ":[123][sp]") tu ?[le|la|l’|les|en|nous|vous|lui|leur|y]¿ (@:¬:[OX]) tu [nous|vous] [le|la|l’|les|en|y] (@:¬:[OX]) tu [le|la|l’|les] [lui|leur|en|y] (@:¬:[OX]) tu [lui|leur] en (@:¬:[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_dans__ dans <<- not morph(<1, ":D.*:p|>[a-z]+ième/") =>> select(\1, ":R") __da_son_ton__ [le|ce|cet|ces|mon|ton|son|quel|quelque|quelques|notre|votre|un|leur|ledit|dudit] [son|ton] <<- =>> exclude(\2, ":D") __da_groupe_nominal__ aucun @:[NA].*:[me] <<- =>> exclude(\2, ":V") [de|d’] @:¬:[YD] <<- =>> exclude(\2, ":V") |
︙ | ︙ | |||
2815 2816 2817 2818 2819 2820 2821 2822 2823 2824 2825 2826 2827 2828 | <<- /conf/ not \1.isupper() -2>> =suggSimil(\2, ":[NA].*:[pi]", True) # Incohérence : les mots “\1” et “\2” ne devraient pas se succéder. <<- /conf/ __also__ -1>> de # Incohérence : les mots “\1” et “\2” ne devraient pas se succéder. TEST: {{Ces}} {{cette}} canaille qui nous a donné tant de fil à retordre. TEST: Mon {{il}} est une merveille. TEST: je ne sais {{des}} {{ses}} choses. __incohérence_au_qqch__ au [ces|des|les|mes|ses|tes|nos|vos|ce|cet|cette|ma|ta|sa|mon|je|tu|il|ils|elle|elles|nous|vous|on|parce] <<- /conf/ not \1.isupper() and not \2.isupper() -2>> =suggSimil(\2, ":[NA].*:[si]", True) # Incohérence : les mots “\1” et “\2” ne devraient pas se succéder. aux [ces|des|les|mes|ses|tes|nos|vos|ce|cet|cette|ma|ta|sa|mon|je|tu|il|ils|elle|elles|nous|vous|on|parce] | > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > | 2840 2841 2842 2843 2844 2845 2846 2847 2848 2849 2850 2851 2852 2853 2854 2855 2856 2857 2858 2859 2860 2861 2862 2863 2864 2865 2866 2867 2868 2869 2870 2871 2872 2873 2874 2875 2876 2877 2878 2879 2880 2881 2882 2883 | <<- /conf/ not \1.isupper() -2>> =suggSimil(\2, ":[NA].*:[pi]", True) # Incohérence : les mots “\1” et “\2” ne devraient pas se succéder. <<- /conf/ __also__ -1>> de # Incohérence : les mots “\1” et “\2” ne devraient pas se succéder. TEST: {{Ces}} {{cette}} canaille qui nous a donné tant de fil à retordre. TEST: Mon {{il}} est une merveille. TEST: je ne sais {{des}} {{ses}} choses. __fusion_le_la_les_quels__ le quel <<- /conf/ ->> lequel # Incohérence. Soudez les deux mots.|https://fr.wiktionary.org/wiki/lesquels le quels <<- /conf/ ->> lequel|lesquels # Incohérence. Soudez les deux mots.|https://fr.wiktionary.org/wiki/lesquels le quelle <<- /conf/ ->> lequel|laquelle # Incohérence. Soudez les deux mots.|https://fr.wiktionary.org/wiki/lesquels le quelles <<- /conf/ ->> lequel|laquelle|lesquelles # Incohérence. Soudez les deux mots.|https://fr.wiktionary.org/wiki/lesquels les [quel|quels] <<- /conf/ ->> lesquels # Incohérence. Soudez les deux mots.|https://fr.wiktionary.org/wiki/lesquels les [quelle|quelles] <<- /conf/ ->> lesquelles # Incohérence. Soudez les deux mots.|https://fr.wiktionary.org/wiki/lesquelles la [quelle|quelles|quel|quels] <<- /conf/ ->> laquelle|là \2 # Confusion. Soudez les deux mots ou écrivez “là” si vous voulez dire “ici”. TEST: {{les quels}} sont partis TEST: avec {{les quelles}} viennent-elles TEST: {{la quelle}} trouveron-nous TEST: {{la quels}} sont vos intentions TEST: et {{la quel}} ordinateur fonctionne encore ? TEST: {{la quelles}} sont nos options ? __incohérence_au_qqch__ au [ces|des|les|mes|ses|tes|nos|vos|ce|cet|cette|ma|ta|sa|mon|je|tu|il|ils|elle|elles|nous|vous|on|parce] <<- /conf/ not \1.isupper() and not \2.isupper() -2>> =suggSimil(\2, ":[NA].*:[si]", True) # Incohérence : les mots “\1” et “\2” ne devraient pas se succéder. aux [ces|des|les|mes|ses|tes|nos|vos|ce|cet|cette|ma|ta|sa|mon|je|tu|il|ils|elle|elles|nous|vous|on|parce] |
︙ | ︙ | |||
4644 4645 4646 4647 4648 4649 4650 | TEST: Très {{jeûne}}, elle a su qu’elle ne voulait pas d’une vie ordinaire. # la / là __conf_la_là!7__ la [l’|d’|n’|m’|t’|s’|c’|ç’|j’|qu’|lorsqu’|puisqu’|quoiqu’] | | | | 4699 4700 4701 4702 4703 4704 4705 4706 4707 4708 4709 4710 4711 4712 4713 4714 | TEST: Très {{jeûne}}, elle a su qu’elle ne voulait pas d’une vie ordinaire. # la / là __conf_la_là!7__ la [l’|d’|n’|m’|t’|s’|c’|ç’|j’|qu’|lorsqu’|puisqu’|quoiqu’] la @:G¬:(?:[NA]:[ef]|W)|>(?:lui|leur|votre|notre|voilà|voici|plupart|quell?e?s?)/ <<- /conf/ not \1.isupper() and not \2.isupper() and not morph(<1, ":E|>le/") -1>> là # Confusion probable. Écrivez “là” si vous voulez dire “ici”. [ce|cet|cette|ces] ~-(la) <<- /conf/ -2>> =\2.replace("-la", "-là") # Confusion. Écrivez “là” soudé au nom pour désigner un objet précis. TEST: nous serions encore {{la}} l’année prochaine TEST: en reprenant le chandail de John {{la}} où elle l’avait abandonné. TEST: Ce {{fait}}-{{la}} ne peut être ignoré. |
︙ | ︙ | |||
13949 13950 13951 13952 13953 13954 13955 | mieux (va(?:ux|lais|udrais)) @@$ <<- -1>> =\1[:-1]+"t" # Conjugaison erronée. Accord avec “mieux” : utilisez la 3ᵉ personne du singulier. TEST: avec toi qui ne sais rien de rien, mieux {{vaux}} ne rien dire. TEST: Mais là-bas mieux {{valais}} ouvrir sa gueule que se taire. | | | > > > > > > > > > | 14004 14005 14006 14007 14008 14009 14010 14011 14012 14013 14014 14015 14016 14017 14018 14019 14020 14021 14022 14023 14024 14025 14026 14027 14028 14029 14030 14031 14032 14033 14034 14035 14036 14037 14038 14039 14040 14041 14042 14043 | mieux (va(?:ux|lais|udrais)) @@$ <<- -1>> =\1[:-1]+"t" # Conjugaison erronée. Accord avec “mieux” : utilisez la 3ᵉ personne du singulier. TEST: avec toi qui ne sais rien de rien, mieux {{vaux}} ne rien dire. TEST: Mais là-bas mieux {{valais}} ouvrir sa gueule que se taire. __[i]/conj(conj_personne_aucun_rien)__ (personne|aucun|rien) +(?:qui +|)({w_1}) @@0,$ <<- morphex(\2, ":V", ":(?:3s|P|G)") and morphex(word(-1), ":C", ":(?:Y|P|Q|[123][sp]|R)", True) and not( \1.endswith("ien") and before("> +$") and morph(\2, ":Y", False) ) -2>> =suggVerb(@, ":3s") # Conjugaison erronée. Accord avec « \1… ». Le verbe devrait être à la 3ᵉ personne du singulier. TEST: Personne ne {{peux}} me le dire. TEST: Rien ne {{sers}} de courir TEST: Rien n’{{arrives}} sans raison TEST: Rien, en ce qui le concernait, ne {{pouvais}} le ramener à la raison. TEST: personne n’en {{parlent}} TEST: aucun d’entre nous n’{{as}} donné TEST: aucun ne {{vas}} là-bas __[i]/conj(conj_nul_nulle)__ (nul(?:le|)) +(?:qui +|)({w_1}) @@0,$ <<- morphex(\2, ":V", ":(?:3s|P|G|N.*:[si])") and morphex(word(-1), ":C", ":(?:Y|P|Q|[123][sp]|R)", True) and not( \1.endswith("ien") and before("> +$") and morph(\2, ":Y", False) ) -2>> =suggVerb(@, ":3s") # Conjugaison erronée. Accord avec « \1… ». Le verbe devrait être à la 3ᵉ personne du singulier. TEST: nul ne {{sais}} que faire TEST: nulle n’{{iras}} là-bas TEST: nulle femme ne {{saurais}} le faire TEST: nul homme ne {{sauras}} s’y prendre TEST: nulle partie du corps ne peut être considérée comme le siège de l’âme. __[i]/conj(conj_un_une_des)__ (?<!d’)(une? des {w_2}) +({w_1}) @@0,$ <<- morphex(\2, ":V", ":(?:3s|P|G|Q)") and morphex(word(-1), ":C", ":(?:Y|P|Q|[123][sp]|R)", True) and not morph(\2, ":[NA].*:[pi]", False) -2>> =suggVerb(@, ":3s") # Conjugaison erronée. Accord avec « \1… ». Le verbe devrait être à la 3ᵉ personne du singulier. |
︙ | ︙ |