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: |
11e28f20e021e126fc5664f90e7a0a16 |
User & Date: | olr on 2018-07-25 15:06:08 |
Other Links: | branch diff | manifest | tags |
Context
2018-07-26
| ||
08:13 | [core] gc engine: define_from() update check-in: 86ac7fe88a user: olr tags: core, rg | |
2018-07-25
| ||
15:06 | [fr] conversion: regex rules -> graph rules check-in: 11e28f20e0 user: olr tags: fr, rg | |
15:05 | [core] get token outside secure scope check-in: bc13d3f8bb user: olr tags: core, rg | |
Changes
Modified gc_lang/fr/rules.grx from [d42fea4f5c] to [95ebaaa4fc].
︙ | ︙ | |||
7894 7895 7896 7897 7898 7899 7900 | ~-[lL][àÀ]$ <<- morph(\1, ":[NAQ]", ":G", 0, -3) ~>> =\1[:-3] TEST: cette femme-là {{étaient}} partout. __simplification_des_nombres__ | | | 7894 7895 7896 7897 7898 7899 7900 7901 7902 7903 7904 7905 7906 7907 7908 | ~-[lL][àÀ]$ <<- morph(\1, ":[NAQ]", ":G", 0, -3) ~>> =\1[:-3] TEST: cette femme-là {{étaient}} partout. __simplification_des_nombres__ [vingt|trente|quarante|cinquante|soixante|soixante-dix|septante|quatre-vingt|octante|huitante|quatre-vingt-dix|nonante|mille] et [un|une|onze] <<- ~>> \1-et-\3|| <<- ~2:3>> * [deux|trois|quatre|cinq|six|sept|huit|neuf|onze|douze|treize|quatorze|quinze|seize|dix-sept|dix-huit|dix-neuf] cents @:[NAQ].*:[pi]¬:(?:G|3p) <<- ~1:2>> ␣ [deux|trois|quatre|cinq|six|sept|huit|neuf] ?cent¿ mille |
︙ | ︙ | |||
8486 8487 8488 8489 8490 8491 8492 | quelque peu @:[AW] pas très @:[AW] <<- ~1:2>> * un ?petit¿ peu ?[plus|moins]¿ <<- morph(>1, ":[AW]") ~>> * | | | 8486 8487 8488 8489 8490 8491 8492 8493 8494 8495 8496 8497 8498 8499 8500 | quelque peu @:[AW] pas très @:[AW] <<- ~1:2>> * un ?petit¿ peu ?[plus|moins]¿ <<- morph(>1, ":[AW]") ~>> * [bien|mal|fort|plus|moins|peu] @:[AW] <<- ~1>> * si @:[AW] <<- not (\2 == "bien" and value(>1, "|que|")) ~1>> * un [brin|chouia|chouïa|rien|minimum|soupçon|tantinet] ?trop¿ <<- morph(>1, ":A", ":G") ~>> * |
︙ | ︙ | |||
8525 8526 8527 8528 8529 8530 8531 | <<- ~1>> * @@@@ @@@@ @@@@ @@@@ | | > > > > > > > | > > | > > | > > > > > > > > > > > > | > > > > > > > > > > > < < < < < | < < < | | < < < < | > | < < < < < < < < < < | > | | > | | > | | > | | > > > > > > > > > > > > > > > > > > > > > | | | < < < | > > > | | > | < | | | | | | | | < < | | > > > > | | < | < < | < < < | < < | > | < < | > | | > > > > > | | | > > > > | | | < < | | < < < | < < < < < | | | > > > > > > > > | > > | > > | > > | > > | | | | < < < | < < | < < < < < < < | 8525 8526 8527 8528 8529 8530 8531 8532 8533 8534 8535 8536 8537 8538 8539 8540 8541 8542 8543 8544 8545 8546 8547 8548 8549 8550 8551 8552 8553 8554 8555 8556 8557 8558 8559 8560 8561 8562 8563 8564 8565 8566 8567 8568 8569 8570 8571 8572 8573 8574 8575 8576 8577 8578 8579 8580 8581 8582 8583 8584 8585 8586 8587 8588 8589 8590 8591 8592 8593 8594 8595 8596 8597 8598 8599 8600 8601 8602 8603 8604 8605 8606 8607 8608 8609 8610 8611 8612 8613 8614 8615 8616 8617 8618 8619 8620 8621 8622 8623 8624 8625 8626 8627 8628 8629 8630 8631 8632 8633 8634 8635 8636 8637 8638 8639 8640 8641 8642 8643 8644 8645 8646 8647 8648 8649 8650 8651 8652 8653 8654 8655 8656 8657 8658 8659 8660 8661 8662 8663 8664 8665 8666 8667 8668 8669 8670 8671 8672 8673 8674 8675 8676 8677 8678 8679 8680 8681 8682 8683 8684 8685 8686 8687 8688 8689 8690 8691 8692 8693 8694 8695 8696 8697 8698 8699 8700 8701 8702 8703 8704 8705 8706 8707 8708 8709 8710 8711 8712 8713 8714 8715 8716 8717 8718 8719 8720 8721 8722 8723 8724 8725 8726 8727 8728 8729 8730 | <<- ~1>> * @@@@ @@@@ @@@@ @@@@ @@@@GRAPH: purge_passe2 _ @@@@ @@@@ @@@@ @@@@ ## Seconde passe (il faut réorganiser tout le cycle de simplification) __purge_ponctuations__ , , ( ) [ ] < > [-|–|—] [-|–|—] <<- ~>> * <start> , <<- ~2>> * , <end> <<- ~1>> * __purge_locutions_potentielles__ à [mes|tes|ses|nos|vos|leurs] yeux @¬:A.*:[me]:[pi] <<- ~1:3>> * à la dernière [minute|seconde] @¬:A.*:[fe]:[si] <<- ~1:4>> * à l’ époque @¬:A.*:[fe]:[si] <<- ~1:3>> * au pire @:A¬:N:[me]:[si] <<- ~1:2>> * [<start>|,] ben voyons <<- ~2:3>> * chaque [année|semaine|journée|décennie] @¬:(?:A.*:[fe]:[si]|Oo|[123][sp]) <<- ~1:2>> * chaque [an|jour|mois] @¬:(?:A.*:[me]:[si]|Oo|[123][sp]) <<- ~1:2>> * d’ évidence @¬:A.*:[fe]:[si] <<- ~1:2>> * dans l’ ensemble @¬:A.*:[me]:[si] <<- ~1:3>> * de ce fait @¬:A.*:[me]:[si] <<- ~1:3>> * de ce seul fait @¬:A.*:[me]:[si] <<- ~1:4>> * dès le départ @¬:A.*:[me]:[si] <<- ~1:3>> * dès les premiers [jours|mois|ans|siècles|trimestres|semestres] @¬:A.*:[me]:[pi] <<- ~1:4>> * dès les premières [années|semaines|minutes|secondes|heures|décennies] @¬:A.*:[fe]:[pi] <<- ~1:4>> * en [certaines|quelques|plusieurs] occasions @¬:A.*:[fe]:[pi] <<- ~1:3>> * en de multiples occasions @¬:A.*:[fe]:[pi] <<- ~1:4>> * entre autres choses @¬:A.*:[fe]:[pi] <<- ~1:3>> * [quelques|plusieurs] [secondes|minutes|heures|journées|semaines|années|décennies] @¬:A.*:[fe]:[pi] <<- ~1:2>> * de nombreuses [secondes|minutes|heures|journées|semaines|années|décennies] @¬:A.*:[fe]:[pi] <<- ~1:3>> * [quelques|plusieurs] [instants|moments|jours|mois|ans|siècles] @¬:A.*:[me]:[pi] <<- ~1:2>> * de nombreux [instants|moments|jours|mois|ans|siècles] @¬:A.*:[me]:[pi] <<- ~1:3>> * un [instant|moment|jour] @¬:A.*:[me]:[si] <<- ~1:2>> * __purge_tous_deux_trois__ >faire tous [deux|trois] <<- ~2:0>> * >faire tous <<- morph(\1, ":[123]p") or (\1 == "fait" and before(r"(?i)\bon ")) ~2>> * @@@@ @@@@ @@@@ @@@@ @@@@GRAPH: purge_passe3 _ @@@@ @@@@ @@@@ @@@@ __purge_locutions_verbales__ >arriver à échéance >arriver à point nommé [>donner|>redonner] sens >faire [allusion|assaut|chaud|confiance|compliqué|copain-copain|débat|défaut|demi-tour|envie|figure|froid|halte|honte|illusion|mouche|office|part|peur|plaisir|rage|scandale|sens|signe|volte-face] >faire amende honorable >faire bande à part >faire bonne figure >faire copain copain >faire de [mon|ton|son|notre|votre|leur] mieux >faire long feu >faire [machine|marche] arrière >faire main basse >faire partie ?intégrante¿ >faire fausse route >faire front commun >faire grise mine >faire grand [bruit|cas] >faire profil bas >faire salle comble >faire table rase >faire ce que bon [me|te|lui|nous|vous|leur] semble >laisser pour compte >mettre à [bas|jour|niveau|plat|terre] >mettre l’ [écart|épreuve] >mettre au [point|pas] >mettre en [avant|bouche|demeure|garde|jeu|lumière|œuvre|place|scène|terre] >mourir jeune [>paraître|>paraitre] jeune >porte [atteinte|bonheur|caution|chance|malheur|plainte|préjudice|secours] >prendre ?[ça|cela|ceci]¿ à la légère >prendre [congé|conscience|contact|ombrage|racine|soin|vie] >prendre ?[ça|cela|ceci]¿ au [dépourvu|sérieux] >prendre de court >prendre ?[ça|cela|ceci]¿ en charge >prendre ?[ça|cela|ceci]¿ pour argent comptant >prendre par surprise >prêter main-forte >rester lettre morte >rester lettres mortes >suivre ?[ça|cela|ceci]¿ de près >tenir ?[ça|cela|ceci]¿ à distance ?respectable¿ >tenir compte >tenir au courant >trier sur le volet >tirer [avantage|profit] >tourner court >venir je ne sais ?pas¿ ?trop¿ d’ où >venir on ne sait ?pas¿ ?trop¿ d’ où <<- ~2:0>> * [>sembler|>paraître|>paraitre] être @:A¬:G <<- ~2>> * [>sembler|>paraître|>paraitre] avoir été @:A¬:G <<- ~2:3>> * __conf_locutions_verbales__ >arriver a échéance >arriver a point nommé >mettre a [bas|jour|niveau|plat|terre] >mettre a l’ [écart|épreuve] >prendre a la légère >tenir a distance <<- /conf/ -2>> à # Confusion : “a” est une conjugaison du verbe “avoir”. Pour la préposition, écrivez “à”. >laisser pour [comte|comtes|>conte] <<- /conf/ -3>> compte # Confusion. Locution “laisser pour compte”.|https://fr.wiktionary.org/wiki/laisser_pour_compte [>mourir|>paraître|>paraitre|>rester|>sembler] >jeûne <<- /conf/ -2>> jeune # Confusion. Le jeûne est une privation de nourriture.|https://fr.wiktionary.org/wiki/jeune >rendre ?bon¿ ([comte|comtes|>conte|comptes]) <<- /conf/ -1>> compte # Confusion. Locution “rendre compte”.|https://fr.wiktionary.org/wiki/rendre_compte >suivre ?[ça|cela|ceci]¿ de ([>prêt|>pré]) <<- /conf/ -1>> près # Confusion : écrivez “près” pour dire “proche de quelque chose”.|https://fr.wiktionary.org/wiki/pr%C3%A8s >tenir [comte|comtes|>conte|comptes] <<- /conf/ -2>> compte # Confusion. Locution “tenir compte”.|https://fr.wiktionary.org/wiki/tenir_compte >tourner [coure|courre|cour|cours] <<- /conf/ -2>> court # Confusion. Locution “tourner court”.|https://fr.wiktionary.org/wiki/tourner_court TEST: ce contrat arrive {{a}} échéance. TEST: il faut tenir {{contes}} des faits au lieu de nos impressions. TEST: prendre {{a}} la légère ce test serait une erreur. TEST: on va suivre ça de {{prêt}}. TEST: il faut se tenir {{a}} distance de ces gens-là. TEST: cette expérience ne va pas tarder à tourner {{cours}}. |
︙ | ︙ | |||
8781 8782 8783 8784 8785 8786 8787 8788 8789 8790 8791 8792 8793 8794 8795 8796 8797 8798 8799 8800 8801 8802 8803 8804 8805 8806 8807 8808 8809 8810 8811 8812 8813 8814 8815 8816 | TEST: c’est une vache à lait TEST: Ses talons aiguille étaient à la denière mode. TEST: elles seules peuvent s’en sortir. TEST: elle seule peut y arriver TEST: elle seules les femmes la font craquer # # //////////////////////////////////////// RÈGLES DE CONTRÔLE //////////////////////////////////////// # !!!! Redondances dans la phrase !! __[i]/redon2(redondances_phrase)__ ({w_4})[ ,].* (\1) @@0,$ <<- not morph(\1, ":(?:G|V0)|>même/", False) -2>> _ # Dans cette phrase, répétition de « \1 » (à gauche). <<- __also__ -1>> _ # Dans cette phrase, répétition de « \1 » (à droite). TEST: __redon2__ Quelle {{imposture}}, c’est d’un ennui, c’est une {{imposture}}. TEST: __redon2__ ils sont là côte à côte. TEST: __redon2__ Tu avances petit à petit, et tu réussis. TEST: __redon2__ De loin en loin, elle passe. TEST: __redon2__ Les mêmes causes produisent/produisant les mêmes effets. (répétition) !! !! !!!! Groupe nominal (1) !! !! !! #### 1 mot | > > > > > > > > > > > > > > > > | < | | | | < < | | | | | < > | | | | | | | | | | | | | | | | | | | | > | | | | | > | | | | > | | | | | > | | | | | | > | | | | | | > | < > | | | | > | | | | | | > > > | | | | | | < > | | | | | | | | | | | | | | | | | | | | | | | | > | | | | > > | | | | | > | | | | | | > | > | | > | > | > > > | > > > | > > > > | | > > > | > | | > > > > > > > > > > > > > > > > > > > > > > > > > | | | | | < | | > | | | | < | < < < < < < < < | < < < < < | < < < < < < < < < < < < < < | 8816 8817 8818 8819 8820 8821 8822 8823 8824 8825 8826 8827 8828 8829 8830 8831 8832 8833 8834 8835 8836 8837 8838 8839 8840 8841 8842 8843 8844 8845 8846 8847 8848 8849 8850 8851 8852 8853 8854 8855 8856 8857 8858 8859 8860 8861 8862 8863 8864 8865 8866 8867 8868 8869 8870 8871 8872 8873 8874 8875 8876 8877 8878 8879 8880 8881 8882 8883 8884 8885 8886 8887 8888 8889 8890 8891 8892 8893 8894 8895 8896 8897 8898 8899 8900 8901 8902 8903 8904 8905 8906 8907 8908 8909 8910 8911 8912 8913 8914 8915 8916 8917 8918 8919 8920 8921 8922 8923 8924 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 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 | TEST: c’est une vache à lait TEST: Ses talons aiguille étaient à la denière mode. TEST: elles seules peuvent s’en sortir. TEST: elle seule peut y arriver TEST: elle seules les femmes la font craquer @@@@ @@@@END_GRAPH _ @@@@ # # //////////////////////////////////////// RÈGLES DE CONTRÔLE //////////////////////////////////////// # !!!! Redondances dans la phrase !! __[i]/redon2(redondances_phrase)__ ({w_4})[ ,].* (\1) @@0,$ <<- not morph(\1, ":(?:G|V0)|>même/", False) -2>> _ # Dans cette phrase, répétition de « \1 » (à gauche). <<- __also__ -1>> _ # Dans cette phrase, répétition de « \1 » (à droite). TEST: __redon2__ Quelle {{imposture}}, c’est d’un ennui, c’est une {{imposture}}. TEST: __redon2__ ils sont là côte à côte. TEST: __redon2__ Tu avances petit à petit, et tu réussis. TEST: __redon2__ De loin en loin, elle passe. TEST: __redon2__ Les mêmes causes produisent/produisant les mêmes effets. (répétition) @@@@ @@@@ @@@@ @@@@ @@@@GRAPH: après_purge_locutions _ @@@@ @@@@ @@@@ @@@@ !! !! !!!! Groupe nominal (1) !! !! !! #### 1 mot ## Singulier masculin __gn_l_accord__ l’ @:[NAQ].*:p¬:[123][sp]|:[si] <<- /gn/ -2>> =suggSing(\2) # Accord de nombre erroné : « \1 » devrait être au singulier. TEST: toute l’importance de l’{{accords}} musical. __gn_le_accord__ , le *WORD <<- /gn/ morph(\3, "@:[NAQ].*:f", ":(?:e|m|P|G|W|[123][sp]|Y)") -2>> =suggLesLa(\2) # Accord de genre erroné : « \3 » est féminin. <<- /gn/ __also__ and hasMasForm(\3) -3>> =suggMasSing(\3, True) # Accord de genre erroné : « \2 » est un déterminant masculin. <<- /gn/ __else__ and morph(\3, ":[NAQ].*:p") -3>> =suggMasSing(\3) # Accord de nombre erroné : « \3 » devrait être au singulier. <<- /gn/ __also__ -2>> les # Accord de nombre erroné : « \3 » est au pluriel. *WORD le *WORD <<- /gn/ morph(\2, ":D") >>> <<- morph(\3, ":[NAQ].*:f", ":(?:e|m|P|G|W|[123][sp]|Y)") or ( morph(\3, ":[NAQ].*:f", ":[me]") and morph(\1, ":R", ">(?:e[tn]|ou)/") and not (morph(\1, ":Rv") and morph(\3, ":Y")) ) -2>> =suggLesLa(\2) # Accord de genre erroné : « \3 » est féminin. <<- __also__ and hasMasForm(\3) -3>> =suggMasSing(\3, True) # Accord de genre erroné : « \2 » est un déterminant masculin. <<- __else__ and morph(\3, ":[NAQ].*:p", "*") or ( morph(\3, ":[NAQ].*:p", ":[si]") and morph(\1, ":[RC]", ">(?:e[tn]|ou)/") and not (morph(\1, ":Rv") and morph(\3, ":Y")) ) -3>> =suggMasSing(\3) # Accord de nombre erroné : « \3 » devrait être au singulier. <<- __also__ -2>> les # Accord de nombre erroné : « \3 » est au pluriel. <start> le *WORD <<- /gn/ morph(\3, ":[NAQ].*:f", ":(?:e|m|P|G|W|Y)") -2>> =suggLesLa(\2) # Accord de genre erroné : « \3 » est féminin. <<- /gn/ __also__ and hasMasForm(\3) -3>> =suggMasSing(\3, True) # Accord de genre erroné : « \2 » est un déterminant masculin. <<- /gn/ __else__ and morph(\3, ":[NAQ].*:p", ":[siGW]") -3>> =suggMasSing(\3) # Accord de nombre erroné : « \3 » devrait être au singulier. <<- /gn/ __also__ -2>> les # Accord de nombre erroné : « \3 » est au pluriel. TEST: c’est une catastrophe, {{le}} {{profits}} a baissé ces deux derniers trimestres TEST: {{Le}} démoralisation. ->> La TEST: {{Le}} Guyane française. ->> La TEST: avec {{le}} {{pile}} TEST: {{le}} {{publique}} TEST: {{Le}} {{pendue}} __gn_ledit_accord__ ledit *WORD <<- /gn/ morph(\2, ":[NAQ].*: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, ":[NAQ].*:p", ":[siGW]") -2>> =suggMasSing(\2) # Accord de nombre erroné : « \2 » devrait être au singulier. __gn_un_accord__ un *WORD <<- /gn/ morph(\2, ":[NAQ].*: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, ":[NAQ].*:p", ":[siGW]") -2>> =suggMasSing(\2) # Accord de nombre erroné : « \2 » devrait être au singulier. __gn_un_des_accord__ un des *WORD <<- /gn/ morph(\3, ":[NAQ].*: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_accord__ du *WORD <<- /gn/ morph(\2, ":[NAQ].*: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, ":[NAQ].*:p", ":[siGW]") -2>> =suggMasSing(\2) # Accord de nombre erroné : « \2 » devrait être au singulier. __gn_cet_accord__ cet *WORD <<- /gn/ morph(\2, ":[NAQ].*: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].+:[NAQ].*:m", ":[efGW]") -1>> ce # Accord de genre correct, mais euphonie non respectée.|http://fr.wikipedia.org/wiki/Euphonie <<- /gn/ morph(\2, ":[NAQ].*:p", ":[siGW]") -2>> =suggMasSing(\2) # Accord de nombre erroné : « \2 » devrait être au singulier. __gn_ce_accord__ ce *WORD <<- /gn/ morph(\2, ":[NAQ].*: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, ":[NAQ].*: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, ":[NAQ].*:p", ":[siGW]") -2>> =suggMasSing(\2) # Accord de nombre erroné : « \2 » devrait être au singulier. __gn_mon_ton_son_accord__ [mon|ton|son] *WORD <<- /gn/ morph(\1, ":D") >>> <<- /gn/ morph(\2, ">[bcdfgjklmnpqrstvwxz].*:[NAQ].*: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, ":[NAQ].*:p", ":[siGW]") -2>> =suggMasSing(\2) # Accord de nombre erroné : « \2 » devrait être au singulier. __gn_au_accord__ au *WORD <<- /gn/ morph(\2, ":[NAQ].*: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, ":[NAQ].*: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_accord__ , la *WORD <<- /gn/ morph(\3, ":[NAQ].*: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, ":[NAQ].*:p") -3>> =suggFemSing(\3) # Accord de nombre erroné : « \3 » devrait être au singulier. *WORD la *WORD <<- /gn/ morph(\2, ":D") >>> <<- morph(\3, ":[NAQ].*:m", ":(?:e|f|P|G|W|[1-3][sp]|Y)") or ( morph(\3, ":[NAQ].*:m", ":[fe]") and morph(\1, ":[RC]", ">(?:e[tn]|ou)/") and not (morph(\1, ":(?:Rv|C)") and morph(\3, ":Y")) ) -2>> le # Accord de genre erroné : « \3 » est masculin. <<- __also__ and hasFemForm(\3) -3>> =suggFemSing(\3, True) # Accord de genre erroné : « \2 » est un déterminant féminin. <<- __else__ and morph(\3, ":[NAQ].*:p") or ( morph(\3, ":[NAQ].*:p", ":[si]") and morph(\1, ":[RC]", ">(?:e[tn]|ou)/") and not (morph(\1, ":Rv") and morph(\3, ":Y")) ) -3>> =suggFemSing(\3) # Accord de nombre erroné : « \3 » devrait être au singulier. <start> la *WORD <<- /gn/ morph(\3, ":[NAQ].*:m", ":[efPGWY]") -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, ":[NAQ].*:p", ":[siGW]") -3>> =suggFemSing(\3) # Accord de nombre erroné : « \3 » devrait être au singulier. TEST: c’est ennuyeux, la {{parties}} deux est ratée. TEST: {{La}} Cameroun ->> Le TEST: {{La}} mustang est un cheval sauvage. ->> Le TEST: {{La}} tableau. ->> Le 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_accord__ ladite *WORD <<- /gn/ morph(\2, ":[NAQ].*: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, ":[NAQ].*:p", ":[siGW]") -2>> =suggFemSing(\2) # Accord de nombre erroné : « \2 » devrait être au singulier. TEST: ladite {{passions}} l’avait conduit à sa perte. __gn_une_accord__ une *WORD <<- /gn/ morph(\2, ":[NAQ].*: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, ":[NAQ].*:p", ":[siGW]") -2>> =suggFemSing(\2) # Accord de nombre erroné : « \2 » devrait être au singulier. __gn_une_des_accord__ une des *WORD <<- /gn/ morph(\3, ":[NAQ].*: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_accord__ cette *WORD <<- /gn/ morph(\2, ":[NAQ].*: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, ":[NAQ].*:p", ":[siGW]") -2>> =suggFemSing(\2) # Accord de nombre erroné : « \2 » devrait être au singulier. __gn_ma_ta_sa_accord__ [ma|ta|sa] *WORD <<- /gn/ morph(\2, ":[NAQ].*: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, ":[NAQ].*: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_accord__ , leur *WORD <<- /gn/ morph(\3, ":[NAQ].*: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, ":[NAQ].*:p", "*") or ( morph(\3, ":[NAQ].*: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, ":[NAQ].*: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_accord__ [notre|votre|chaque] *WORD <<- /gn/ morph(\2, ":[NAQ].*:p", ":[siGW]") -2>> =suggSing(\2) # Accord de nombre erroné : « \2 » devrait être au singulier. TEST: Chaque {{chiens}}. ->> chien __gn_quelque_accord__ quelque *WORD <<- /gn/ morph(\2, ":[NAQ].*: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 ## Autres pluriels __gn_certains_accord__ certains *WORD <<- /gn/ morph(\2, ":[NAQ].*:f", ":[emGWP]") -1>> certaines # Accord de genre erroné : « \2 » est féminin. <<- /gn/ __also__ and hasMasForm(\2) -2>> =suggMasPlur(\2, True) # Accord de genre erroné : « \1 » est un déterminant masculin. <<- /gn/ ( morph(\2, ":[NAQ].*:s", ":(?:[ipGWP]|V0)") and not (value(>1, "|et|ou|") and morph(>2, ":[NAQ]")) ) or \1 in aREGULARPLURAL -2>> =suggPlur(\2) # Accord de nombre erroné : « \2 » devrait être au pluriel. __gn_certains_des_accord__ certains des *WORD <<- /gn/ morph(\3, ":[NAQ].*:f", ":[emGW]") -1>> certaines # Accord de genre erroné : « \3 » est féminin. <<- /gn/ __also__ and hasMasForm(\3) -3>> =suggMasPlur(\3, True) # Accord de genre erroné : « \1 » est un déterminant masculin. __gn_certaines_accord__ certaines *WORD <<- /gn/ morph(\2, ":[NAQ].*:m", ":[efGWP]") -1>> certains # Accord de genre erroné : « \2 » est masculin. <<- /gn/ __also__ and hasFemForm(\2) -2>> =suggFemPlur(\2, True) # Accord de genre erroné : « \1 » est un déterminant féminin. <<- /gn/ ( morph(\2, ":[NAQ].*:s", ":[ipGWP]") and not (value(>1, "|et|ou|") and morph(>2, ":[NAQ]")) ) or \2 in aREGULARPLURAL -2>> =suggPlur(\2) # Accord de nombre erroné : « \2 » devrait être au pluriel. __gn_certaines_des_accord__ certaines des *WORD <<- /gn/ morph(\3, ":[NAQ].*:m", ":[efGW]") -1>> certains # 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: Certaines {{danse}} TEST: Certains {{chien}} TEST: {{certains}} des {{nouvelles}} sont à côté de la plaque. TEST: {{certaines}} des hommes TEST: Un problème rapporté par certains est l’incapacité à trouver un partenaire @@@@ @@@@END_GRAPH _ @@@@ ## Pluriels épicènes __<i]/gn(gn_les_accord1)__ , (les) +({w_2}) @@w,$ <<- ( morph(\2, ":[NAQ].*:s") and not (after("^ +(?:et|ou) ") and morph(word(2), ":[NAQ]", True, False)) ) |
︙ | ︙ | |||
12151 12152 12153 12154 12155 12156 12157 | !!! !!! !!! Processeur: simplification des substantifs !! !!! !!! ### @ : we remove @ we introduced after le/la/les in some cases | | < < < < | 12228 12229 12230 12231 12232 12233 12234 12235 12236 12237 12238 12239 12240 12241 12242 12243 12244 12245 12246 12247 12248 12249 12250 12251 12252 12253 12254 12255 12256 12257 12258 12259 | !!! !!! !!! Processeur: simplification des substantifs !! !!! !!! ### @ : we remove @ we introduced after le/la/les in some cases #__<s>(p_arobase)__ @ <<- ~>> * ### Avant les verbes (ôter seulement les COI!) __[i](p_ne_leur_lui)__ ne (leur|lui)(?! en) @@3 <<- ~1>> * ### Après les verbes __[i](p_jamais2)__ jamais <<- ~>> * #__[i](p_guère)__ guère <<- ~>> * __[i](p_pas_point_rien_bien_ensemble1)__ ({w1}) (pas|point|rien|bien|ensemble) @@0,$ <<- morph(\1, ":V", False) ~2>> * __[i](p_pas_point_rien_bien_ensemble2)__ \w+-(?:je|tu|ils?|elles?|on|[nv]ous) (pas|point|rien|bien|ensemble) @@$ <<- ~1>> * # sembler le croire/penser/présumer/supposer/envisager/imaginer __[i](p_que_semble_le_penser)__ que +(sembl\w+) +(l(?:e (?:penser|croire|présumer|supposer)|’(?:envisager|imaginer))) @@w,$ <<- morph(\1, ">sembler/", False) ~2>> * ### Simplification des groupes nominaux # désambiguïsation - pour contrer le faux positif qui veut accorder fois avec le participe passé de la proposition suivante __[s](p_fois_que)__ (fois )que? @@0 <<- ~1>> fois= __[i](p_que_l_on)__ que (l’)on @@4 <<- ~1>> * |
︙ | ︙ |