Overview
Comment: | merge trunk |
---|---|
Downloads: | Tarball | ZIP archive | SQL archive |
Timelines: | family | ancestors | descendants | both | tbme |
Files: | files | file ages | folders |
SHA3-256: |
247bdef4738c5581291ba4d5a32a989b |
User & Date: | olr on 2019-09-01 08:33:02 |
Other Links: | branch diff | manifest | tags |
Context
2019-09-01
| ||
12:27 | [build][tb][js] update builder for Thunderbird 68+ check-in: 8c9d754624 user: olr tags: build, tb, tbme | |
08:33 | merge trunk check-in: 247bdef473 user: olr tags: tbme | |
08:22 | [graphspell] tokenizer: handles all kinds of apostrophes check-in: 1bdedd3133 user: olr tags: trunk, graphspell | |
2019-08-29
| ||
09:19 | merge trunk check-in: 44de2cad94 user: olr tags: tbme | |
Changes
Modified gc_lang/fr/data/phonet_simil.txt from [97dfbe93ea] to [40f7cdee3f].
︙ | ︙ | |||
744 745 746 747 748 749 750 751 752 753 754 755 756 757 | survie survies survis survit survol survols survole survoles survolent suspens suspends suspend syndic syndics syndique syndiques syndiquent syndicat syndicats syndiqua syndiquas ta tas tache taches tâche tâches tâchent taie taies tes thé thés tais tait tain teint teints thym thyms tin tins tint teins taira tairas terra terras taire ter terre terres terrent taise taises taisent thèse thèses tant temps tends tend taon taons tante tantes tente tentes tentent | > | 744 745 746 747 748 749 750 751 752 753 754 755 756 757 758 | survie survies survis survit survol survols survole survoles survolent suspens suspends suspend syndic syndics syndique syndiques syndiquent syndicat syndicats syndiqua syndiquas ta tas tache taches tâche tâches tâchent taf tafs taffe taffes taffent taie taies tes thé thés tais tait tain teint teints thym thyms tin tins tint teins taira tairas terra terras taire ter terre terres terrent taise taises taisent thèse thèses tant temps tends tend taon taons tante tantes tente tentes tentent |
︙ | ︙ |
Modified gc_lang/fr/rules.grx from [9706201699] to [619cef6b2c].
︙ | ︙ | |||
1206 1207 1208 1209 1210 1211 1212 | [nN][fF][ -]?(?:c|C|e|E|p|P|q|Q|s|S|x|X|z|Z|[eE][nN](?:[ -][iI][sS][oO]|))[ -]?[0-9]+(?:[/ ‑-][0-9]+|) <<- not re.search("^NF (?:C|E|P|Q|S|X|Z|EN(?: ISO|)) [0-9]+(?:‑[0-9]+|)", \0) ->> =formatNF(\0) # Norme française. Utilisez les espaces et tirets insécables.|http://fr.wikipedia.org/wiki/Liste_de_normes_NF TEST: __nf__ Norme française : {{Nf-EN ISO 3892-23}} | < < < < < < < | 1206 1207 1208 1209 1210 1211 1212 1213 1214 1215 1216 1217 1218 1219 | [nN][fF][ -]?(?:c|C|e|E|p|P|q|Q|s|S|x|X|z|Z|[eE][nN](?:[ -][iI][sS][oO]|))[ -]?[0-9]+(?:[/ ‑-][0-9]+|) <<- not re.search("^NF (?:C|E|P|Q|S|X|Z|EN(?: ISO|)) [0-9]+(?:‑[0-9]+|)", \0) ->> =formatNF(\0) # Norme française. Utilisez les espaces et tirets insécables.|http://fr.wikipedia.org/wiki/Liste_de_normes_NF TEST: __nf__ Norme française : {{Nf-EN ISO 3892-23}} !! !! !!!! Cohérence des guillemets !! !! !! |
︙ | ︙ | |||
1706 1707 1708 1709 1710 1711 1712 | TEST: Assis, gronde{{-t -}}elle ->> -t- TEST: vient-il demain ? TEST: prend-elle l’avantage ? TEST: saura-t-on jamais la vérité ? TEST: arrive-t-elle ce matin ? TEST: y aura-t-il du poulet au dîner ? | < < < < < < < < < < < < < < < < < < < < < < | 1699 1700 1701 1702 1703 1704 1705 1706 1707 1708 1709 1710 1711 1712 | TEST: Assis, gronde{{-t -}}elle ->> -t- TEST: vient-il demain ? TEST: prend-elle l’avantage ? TEST: saura-t-on jamais la vérité ? TEST: arrive-t-elle ce matin ? TEST: y aura-t-il du poulet au dîner ? @@@@ @@@@ @@@@ @@@@ @@@@GRAPH: purge_tag_disambiguate _ |
︙ | ︙ | |||
1913 1914 1915 1916 1917 1918 1919 | [le|la|l’|les] [lui|leur|en] @:¬:[OXW] leur en @:¬:[OXW] <<- =>> select(\2, ":(?:[123][sp]|P|Y)") $:M @:[123]s¬:[QW] <<- \2.islower() and morph(<1, ":Cs|<start>") =>> select(\2, ":[123][sp]") | | | | | 1884 1885 1886 1887 1888 1889 1890 1891 1892 1893 1894 1895 1896 1897 1898 1899 1900 1901 1902 1903 1904 1905 | [le|la|l’|les] [lui|leur|en] @:¬:[OXW] leur en @:¬:[OXW] <<- =>> select(\2, ":(?:[123][sp]|P|Y)") $:M @:[123]s¬:[QW] <<- \2.islower() and morph(<1, ":Cs|<start>") =>> select(\2, ":[123][sp]") <start> $:M @:(?:[123]s|Ov)¬:A <<- =>> =select(\2, ":M") [que|qu’|combien|pourquoi|qui|quand|où] ?[en|y]¿ *WORD <<- =>> exclude(\-1, ":E") [<start>|,] quelqu’ un *WORD <<- =>> exclude(\4, ":N") >falloir [>pouvoir|>savoir|>vouloir|>manger|>conseiller] <<- =>> exclude(\2, ":N") __da_été__ >avoir été |
︙ | ︙ | |||
1978 1979 1980 1981 1982 1983 1984 | l’ [un|une] *WORD <<- not value(\3, "|plus|") =>> select(\3, ":[123][sp]") [des|chaque|quelque|quelques|cet|cette|ces|mon|ma|ta|sa|mes|tes|ses|au|aux|notre|votre|nos|vos|leurs|aucun|aucune] *WORD <<- =>> exclude(\2, ":V") [un|une] *WORD | | | 1949 1950 1951 1952 1953 1954 1955 1956 1957 1958 1959 1960 1961 1962 1963 | l’ [un|une] *WORD <<- not value(\3, "|plus|") =>> select(\3, ":[123][sp]") [des|chaque|quelque|quelques|cet|cette|ces|mon|ma|ta|sa|mes|tes|ses|au|aux|notre|votre|nos|vos|leurs|aucun|aucune] *WORD <<- =>> exclude(\2, ":V") [un|une] *WORD <<- not value(<1, "|l’|quelqu’|quelqu|") and not value(\2, "|a|fut|fût|est|") and not morph(\2, ":P") =>> exclude(\2, ":V") [une|le|la|les|des|chaque|quelque|quelques|cet|cette|ces|ma|ta|sa|mes|tes|ses|au|aux|notre|votre|nos|vos|leurs] personne <<- =>> select(\-1, ":N") de [la|l’] $:¬:Y <<- not value(<1, "|semblant|") =>> exclude(\3, ":V") |
︙ | ︙ | |||
2127 2128 2129 2130 2131 2132 2133 2134 2135 2136 2137 2138 2139 2140 2141 2142 2143 2144 2145 2146 2147 2148 2149 2150 2151 2152 2153 2154 2155 2156 2157 2158 2159 2160 | <<- morph(\-1, ":[NA]") ~1:3>> ␣ alors [que|qu’] dès lors [que|qu’] <<- ~>> ␣ <<- =>> define(\1, [":Cs"]) __fusions_noms_communs__ au revoir <<- ~>> ␣ <<- =>> define(\1, [":N:m:i"]) n’ importe [qui|quoi|quel|quelle|quels|quelles|où] <<- ~1:2>> ␣ [cultural|gender] studies <<- ~>> ␣ <<- =>> define(\1, [":N:f:p"]) black [>bloc|>block] machine [learning+s] nec plus ultra standing >ovation star [system+s] <<- ~>> ␣ *NUM : *NUM <<- space_after(\1, 0, 0) and space_after(\1, 0, 0) ~>> ␣ *NUM ~^h[0-9][0-9]$ <<- space_after(\1, 0, 0) ~>> ␣ | > > > > > > > > | 2098 2099 2100 2101 2102 2103 2104 2105 2106 2107 2108 2109 2110 2111 2112 2113 2114 2115 2116 2117 2118 2119 2120 2121 2122 2123 2124 2125 2126 2127 2128 2129 2130 2131 2132 2133 2134 2135 2136 2137 2138 2139 | <<- morph(\-1, ":[NA]") ~1:3>> ␣ alors [que|qu’] dès lors [que|qu’] <<- ~>> ␣ <<- =>> define(\1, [":Cs"]) quelqu’ [un|une] <<- ~>> ␣ <<- =>> change_meta(\1, "WORD") __fusions_noms_communs__ au revoir <<- ~>> ␣ <<- =>> define(\1, [":N:m:i"]) n’ importe [qui|quoi|quel|quelle|quels|quelles|où] <<- ~1:2>> ␣ [cultural|gender] studies <<- ~>> ␣ <<- =>> define(\1, [":N:f:p"]) black [>bloc|>block] machine [learning+s] nec plus ultra standing >ovation star [system+s] <<- ~>> ␣ presqu’ [>ile|>île] <<- ~>> ␣ <<- =>> change_meta(\1, "WORD") *NUM : *NUM <<- space_after(\1, 0, 0) and space_after(\1, 0, 0) ~>> ␣ *NUM ~^h[0-9][0-9]$ <<- space_after(\1, 0, 0) ~>> ␣ |
︙ | ︙ | |||
2234 2235 2236 2237 2238 2239 2240 2241 2242 2243 2244 2245 2246 2247 | !!!! Noms composés !! __tag_noms__ ~\w-là$ <<- />> -là <<- =>> =define_from(\1, 0, -3) !! !! !!!! Verbes composés !! !! !! | > > > > > > > > > > > > > > > > > > > > > > | 2213 2214 2215 2216 2217 2218 2219 2220 2221 2222 2223 2224 2225 2226 2227 2228 2229 2230 2231 2232 2233 2234 2235 2236 2237 2238 2239 2240 2241 2242 2243 2244 2245 2246 2247 2248 | !!!! Noms composés !! __tag_noms__ ~\w-là$ <<- />> -là <<- =>> =define_from(\1, 0, -3) !!!! Élisions !! # presque : élision __typo_presque__ presqu’ *WORD <<- /typo/ not morph(\2, ">[iî]le/") -1>> "presque " # Pas d’élision autorisée sur “presque”, sauf avec “presqu’île”.|http://bdl.oqlf.gouv.qc.ca/bdl/gabarit_bdl.asp?id=1745 TEST: {{Presqu’}}exclusivement bâtie en pierre. TEST: C’est une presqu’île. TEST: Cette presqu’ile est particulièrement venteuse. # quelque : élision __typo_quelque__ quelqu’ *WORD <<- /typo/ not value(\2, "|un|une|") -1>> "quelque " # Pas d’élision autorisée sur “quelque”, sauf avec “quelqu’un” ou “quelqu’une”.|http://bdl.oqlf.gouv.qc.ca/bdl/gabarit_bdl.asp?id=1745 TEST: {{Quelqu’}}absurde que ce soit, il faut y céder. TEST: quelqu’un vient. TEST: elle s’en est allée avec quelqu’une… !! !! !!!! Verbes composés !! !! !! |
︙ | ︙ | |||
3613 3614 3615 3616 3617 3618 3619 3620 3621 3622 3623 3624 3625 3626 | TEST: le {{VIième}} siècle ->> VIᵉ TEST: Le {{XX ème}} siècle. ->> XXᵉ TEST: Le {{XXIème}} siècle. ->> XXIᵉ TEST: le {{XXè}} siècle. ->> XXᵉ TEST: les {{CXIèmes}} ->> CXIᵉˢ !!!! Dates !! __fusion_date__ *NUM - ~^\d\d?$ - ~^\d{2,5}$ <<- \1.isdigit() ~>> ␣ <<- =>> change_meta(\1, "DATE") | > > > > > > > > > > > > > > > > > > > > | 3614 3615 3616 3617 3618 3619 3620 3621 3622 3623 3624 3625 3626 3627 3628 3629 3630 3631 3632 3633 3634 3635 3636 3637 3638 3639 3640 3641 3642 3643 3644 3645 3646 3647 | TEST: le {{VIième}} siècle ->> VIᵉ TEST: Le {{XX ème}} siècle. ->> XXᵉ TEST: Le {{XXIème}} siècle. ->> XXIᵉ TEST: le {{XXè}} siècle. ->> XXᵉ TEST: les {{CXIèmes}} ->> CXIᵉˢ !!!! Chimie !! __chim_molécules__ [CaCO3|CaSO4] CO2 [H2CO3|H2O|H2SO4] [Na2CO3|Na2O|Na2SO4] H2 HNO3 Fe2O3 KMnO4 NO2 N2 O2 SiO2 [SO2|SO3] <<- /chim/ ->> =\1.replace("2", "₂").replace("3", "₃").replace("4", "₄") # Typographie des composés chimiques. [!] TEST: __chim__ les molécules {{CaCO3}} et {{H2O}}… !!!! Dates !! __fusion_date__ *NUM - ~^\d\d?$ - ~^\d{2,5}$ <<- \1.isdigit() ~>> ␣ <<- =>> change_meta(\1, "DATE") |
︙ | ︙ | |||
3666 3667 3668 3669 3670 3671 3672 | !!!! Traits d’union !! !! !! ### ce / cet / cette / ces + nom + là __tu_ce_cette_ces_nom_là_ci__ [ce|cet|cette|ces] *WORD [là|ci] | | > | 3687 3688 3689 3690 3691 3692 3693 3694 3695 3696 3697 3698 3699 3700 3701 3702 3703 3704 3705 3706 3707 3708 3709 3710 3711 3712 3713 3714 3715 3716 | !!!! Traits d’union !! !! !! ### ce / cet / cette / ces + nom + là __tu_ce_cette_ces_nom_là_ci__ [ce|cet|cette|ces] *WORD [là|ci] <<- /tu/ morph(\2, ":[NB]", ":V0e") and not value(>1, "|où|") -2:3>> \2-là # Il manque probablement un trait d’union. [ce|cet|cette|ces] *WORD la [<end>|,] <<- /tu/ morph(\2, ":[NB]") -2:3>> \2-là # Il manque probablement un trait d’union. [ce|cet|cette|ces] *WORD si [<end>|,] <<- /tu/ morph(\2, ":[NB]") -2:3>> \2-ci # Il manque probablement un trait d’union. TEST: à ce {{moment là}} ->> moment-là TEST: Il faisait froid cet {{hiver la}}. ->> hiver-là TEST: Ces {{trois là}} sont incollables. TEST: Je connais bien cette {{sensation là}}. TEST: Cette {{voiture si}}, c’est celle-là que je veux. TEST: ce que je veux c’est ce {{véhicule ci}} TEST: Laisse ce chiot là où il est ! TEST: Ce fut là en fait une appellation fautive ### Préfixes __tu_préfixe_ex__ ex $:N¬* <<- /tu/ not value(\2, "|aequo|nihilo|cathedra|absurdo|abrupto|") ->> ex-\2 # S’il s’agit d’un seul mot, il manque un trait d’union. |
︙ | ︙ | |||
5881 5882 5883 5884 5885 5886 5887 | <<- /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. TEST: d’une {{habille}} de femme TEST: plus d’un ont été traumatisés TEST: Plus d’une sont parties aussi vite qu’elles étaient venues | < < < < < < < < | 5903 5904 5905 5906 5907 5908 5909 5910 5911 5912 5913 5914 5915 5916 | <<- /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. TEST: d’une {{habille}} de femme TEST: plus d’un ont été traumatisés TEST: Plus d’une sont parties aussi vite qu’elles étaient venues __conf_par_vconj__ par ?[le|la|l’|les]¿ @:[123][sp]¬:[GNA] <<- /conf/ not \-1.istitle() --1>> =suggSimil(\-1, ":[NA]", True) # Incohérence avec “\1” : “\-1” est une forme verbale conjuguée. par [un|une] @:[123][sp]¬:[GNA] <<- /conf/ not \3.istitle() and not value(<1, "|plus|moins|un|une|") |
︙ | ︙ | |||
5915 5916 5917 5918 5919 5920 5921 | TEST: à leur {{profile}} TEST: une référence à l’astuce de base qui permet d’outrepasser ses droits. TEST: Le mari répète à l’envi qu’il a découvert la France à travers les mots de sa femme. TEST: Il reste de nombreux militants sincères à la FI. [malgré|dès] [le|la|l’|les|leur|leurs] @:V¬:[GNAWMB] | | > | 5929 5930 5931 5932 5933 5934 5935 5936 5937 5938 5939 5940 5941 5942 5943 5944 5945 5946 | TEST: à leur {{profile}} TEST: une référence à l’astuce de base qui permet d’outrepasser ses droits. TEST: Le mari répète à l’envi qu’il a découvert la France à travers les mots de sa femme. TEST: Il reste de nombreux militants sincères à la FI. [malgré|dès] [le|la|l’|les|leur|leurs] @:V¬:[GNAWMB] <<- /conf/ not \-1.istitle() -3>> =suggSimil(\3, ":[NA]", True) # Incohérence : après “\1 \2”, on devrait trouver un groupe nominal. TEST: malgré l’{{arrête}} qui interdisait le port TEST: dès le {{commencent}}, j’ai vu le problème. TEST: malgré les deux précédentes erreurs __conf_préverbes__ ne n’ <<- /conf/ not \1.isupper() ->> ne m’|n’ # Incohérence. Double négation. |
︙ | ︙ | |||
9175 9176 9177 9178 9179 9180 9181 | TEST: Qu’elle avait été accueillie avec joie. __conf_quelle_qu_elle__ quelle [ne|n’|me|m’|te|t’|se|s’|nous|vous|le|la|l’|les|lui|leur|en|y] <<- /conf/ not (value(\2, "|en|ne|") and morph(>1, ":V0e")) -1>> qu’elle # Confusion. Le sujet “elle” doit être séparée de la conjonction “que”. | | | | 9190 9191 9192 9193 9194 9195 9196 9197 9198 9199 9200 9201 9202 9203 9204 9205 9206 9207 9208 9209 9210 9211 9212 9213 9214 9215 9216 9217 9218 9219 | TEST: Qu’elle avait été accueillie avec joie. __conf_quelle_qu_elle__ quelle [ne|n’|me|m’|te|t’|se|s’|nous|vous|le|la|l’|les|lui|leur|en|y] <<- /conf/ not (value(\2, "|en|ne|") and morph(>1, ":V0e")) -1>> qu’elle # Confusion. Le sujet “elle” doit être séparée de la conjonction “que”. quelle @:V¬:[NA].*:[fe]|>(?:être|plus|point)/ <<- /conf/ \2.islower() and not (morph(\2, ">(?:pouvoir|devoir|aller)/") and (morph(>1, ":V0e") or morph(>2, ":V0e"))) and not (morph(\2, ":V0a") and value(>1, "|été|")) -1>> qu’elle # Confusion. Le sujet “elle” doit être séparée de la conjonction “que”. TEST: {{Quelle}} y vienne, on verra ce qu’elle vaut. TEST: {{Quelle}} a du répondant, cette gamine ! TEST: {{Quelle}} partit prendre son repas à la cantine, je n’en avais cure. TEST: Il se plaint {{quelle}} ne nous dit rien. TEST: {{Quelle}} l’apprenne un jour, on n’y peut rien. TEST: Je crois {{quelle}} n’en sait pas assez pour nous nuire. quelles [ne|n’|me|m’|te|t’|se|s’|nous|vous|le|la|l’|les|lui|leur|en|y] <<- /conf/ not (value(\2, "|en|ne|") and morph(>1, ":V0e")) -1>> qu’elles # Confusion. Le sujet “elles” doit être séparée de la conjonction “que”. quelles @:V¬:[NA].*:[fe]|>(?:être|plus|point)/ <<- /conf/ \2.islower() and not (morph(\2, ">(?:pouvoir|devoir|aller)/") and (morph(>1, ":V0e") or morph(>2, ":V0e"))) and not (morph(\2, ":V0a") and value(>1, "|été|")) -1>> qu’elles # Confusion. Le sujet “elles” doit être séparée de la conjonction “que”. TEST: Je veux {{quelles}} s’efforcent à y parvenir. TEST: {{Quelles}} t’arrivent seulement à la cheville, voilà qui serait étonnant. TEST: {{Quelles}} m’engueulent encore une seule fois et elles vont le regretter. TEST: {{Quelles}} viennent et qu’on en finisse. |
︙ | ︙ | |||
10832 10833 10834 10835 10836 10837 10838 10839 10840 10841 10842 10843 10844 10845 | à l’ occasion à l’ ordre du jour à l’ un d’ entre eux à l’ unanimité à l’ unisson à l’ une d’ entre elles à l’ échelle [nationale|mondiale|régionale|départementale|cantonale|locale|galactique|universelle] à l’ évidence à l’ œil nu à l’ [un|une] des leurs à la [bourre|con|coule|dérobée|diable|fois|leur|manque|mords-moi-le-nœud|papa|ramasse|renverse|redresse|rescousse|sauvette|volée] à la bonne franquette à la limite du supportable à la lumière de tout [ceci|cela|ça] | > | 10847 10848 10849 10850 10851 10852 10853 10854 10855 10856 10857 10858 10859 10860 10861 | à l’ occasion à l’ ordre du jour à l’ un d’ entre eux à l’ unanimité à l’ unisson à l’ une d’ entre elles à l’ échelle [nationale|mondiale|régionale|départementale|cantonale|locale|galactique|universelle] à l’ étouffée à l’ évidence à l’ œil nu à l’ [un|une] des leurs à la [bourre|con|coule|dérobée|diable|fois|leur|manque|mords-moi-le-nœud|papa|ramasse|renverse|redresse|rescousse|sauvette|volée] à la bonne franquette à la limite du supportable à la lumière de tout [ceci|cela|ça] |
︙ | ︙ | |||
11098 11099 11100 11101 11102 11103 11104 11105 11106 11107 11108 11109 11110 11111 | comme bon [me|te|lui|leur|nous|vous] semble comme au bon vieux temps comme cul et chemise comme [frappé|frappée|frappés|frappées] par la foudre comme n’ importe où ?ailleurs¿ comme par [enchantement|magie] comme par un fait exprès comme peau de chagrin comme promis comme qui dirait comme si [de|d’] rien n’ était contrairement aux apparences contre mauvaise fortune ?,¿ bon cœur contre nature | > | 11114 11115 11116 11117 11118 11119 11120 11121 11122 11123 11124 11125 11126 11127 11128 | comme bon [me|te|lui|leur|nous|vous] semble comme au bon vieux temps comme cul et chemise comme [frappé|frappée|frappés|frappées] par la foudre comme n’ importe où ?ailleurs¿ comme par [enchantement|magie] comme par un fait exprès comme pas deux comme peau de chagrin comme promis comme qui dirait comme si [de|d’] rien n’ était contrairement aux apparences contre mauvaise fortune ?,¿ bon cœur contre nature |
︙ | ︙ | |||
12395 12396 12397 12398 12399 12400 12401 12402 12403 12404 12405 12406 12407 12408 | >chasse à l’ homme >chasse d’ eau >chasseuse [de|d’] primes >chemin [de|d’] [traverse|fer] >chemise sans >manche >chèque sans provision >chili con carne >claire comme [de|d’] l’ eau [de|d’] [boudin|roche|source] >claire comme du cristal >claire comme jus [de|d’] [boudin|>chaussette|chique] [>clé|>clef] à molette >clin d’ œil >code [de|d’] bonne conduite >commise d’ office | > | 12412 12413 12414 12415 12416 12417 12418 12419 12420 12421 12422 12423 12424 12425 12426 | >chasse à l’ homme >chasse d’ eau >chasseuse [de|d’] primes >chemin [de|d’] [traverse|fer] >chemise sans >manche >chèque sans provision >chili con carne >chou à la crème ?[fouettée|diplomate|mousseline|patissière|pralinée]¿ >claire comme [de|d’] l’ eau [de|d’] [boudin|roche|source] >claire comme du cristal >claire comme jus [de|d’] [boudin|>chaussette|chique] [>clé|>clef] à molette >clin d’ œil >code [de|d’] bonne conduite >commise d’ office |
︙ | ︙ | |||
12701 12702 12703 12704 12705 12706 12707 | blond [argenté|platine] gris [acier|anthracite|argenté|fer|perle|souris] jaune [canari|citron|doré|maïs|paille|sable] noir [de|d’] [encre|jais] noir et blanc noir sur blanc rose [bonbon|chair|corail] | | | 12719 12720 12721 12722 12723 12724 12725 12726 12727 12728 12729 12730 12731 12732 12733 | blond [argenté|platine] gris [acier|anthracite|argenté|fer|perle|souris] jaune [canari|citron|doré|maïs|paille|sable] noir [de|d’] [encre|jais] noir et blanc noir sur blanc rose [bonbon|chair|corail] rouge [anglais|brique|cardinal|carmin|cerise|cochenille|coquelicot|écarlate|feu|fraise|grenat|groseille|incarnat|indien|rubis|sang|sanguin|tomate|vermeille|vermillon] vert [bouteille|céladon|émeraude|épinard|impérial|lichen|olive|perroquet|pistache|poireau|pomme|prairie|printemps|sapin|sauge|tilleul] couleur sable <<- morph(<1, ":[NA]", ":D") ~>> * <<- __else__ and morph(<1, ":D|>(?:être|devenir|redevenir|rester|sembler|demeurer|para[îi]tre)") ~>> ␣ <<- __also__ =>> define(\1, [":A:e:i"]) |
︙ | ︙ | |||
13391 13392 13393 13394 13395 13396 13397 13398 13399 13400 13401 13402 13403 13404 | >faire amende honorable >faire bande à part >faire bon accueil >faire bonne figure >faire chou blanc >faire copain copain >faire de [mon|ton|son|notre|votre|leur] mieux >faire front commun >faire grise mine >faire grand [bruit|cas] >faire ?[bonne|excellente|grande|mauvaise]¿ impression >faire long feu >faire [machine|marche] arrière >faire main basse | > | 13409 13410 13411 13412 13413 13414 13415 13416 13417 13418 13419 13420 13421 13422 13423 | >faire amende honorable >faire bande à part >faire bon accueil >faire bonne figure >faire chou blanc >faire copain copain >faire de [mon|ton|son|notre|votre|leur] mieux >faire figure d’ exception >faire front commun >faire grise mine >faire grand [bruit|cas] >faire ?[bonne|excellente|grande|mauvaise]¿ impression >faire long feu >faire [machine|marche] arrière >faire main basse |
︙ | ︙ | |||
13428 13429 13430 13431 13432 13433 13434 13435 13436 13437 13438 13439 13440 13441 | [>mettre|>remettre] l’ [écart|épreuve] [>mettre|>remettre] au [point|pas] [>mettre|>remettre] en [avant|branle|bouche|demeure|garde|jeu|lumière|mouvement|œuvre|place|scène|terre] [>mettre|>remettre] de côté >mourir jeune [>naître|>naitre] de la dernière pluie [>naître|>naitre] sous x >partir en vrille >percer à jour >perdre [connaissance|conscience|patience|raison] >perdre d’ avance >piquer au vif >porter [assistance|atteinte|bonheur|caution|chance|malheur|plainte|préjudice|secours] >poser problème | > | 13447 13448 13449 13450 13451 13452 13453 13454 13455 13456 13457 13458 13459 13460 13461 | [>mettre|>remettre] l’ [écart|épreuve] [>mettre|>remettre] au [point|pas] [>mettre|>remettre] en [avant|branle|bouche|demeure|garde|jeu|lumière|mouvement|œuvre|place|scène|terre] [>mettre|>remettre] de côté >mourir jeune [>naître|>naitre] de la dernière pluie [>naître|>naitre] sous x >parler affaires >partir en vrille >percer à jour >perdre [connaissance|conscience|patience|raison] >perdre d’ avance >piquer au vif >porter [assistance|atteinte|bonheur|caution|chance|malheur|plainte|préjudice|secours] >poser problème |
︙ | ︙ | |||
13695 13696 13697 13698 13699 13700 13701 13702 13703 13704 13705 13706 13707 13708 | TEST: Ce qui rend les pompes à chaleur moins rentables. TEST: l’accusation de lynchage médiatique proférée par François de Clermont à l’encontre de “Marianne” ne tient pas. TEST: La poïesis, en grec, est ce qui permet de faire passer n’importe quoi du non-être à l’être TEST: un moteur nouvelle génération TEST: La première est la critique dite artiste TEST: la critique conduit nombre de protestataires à se replier sur des modalités de défense efficaces dans le passé mais désormais largement inadaptées TEST: Tu crois que Microsoft peut contraindre les projets libres à quoi que ce soit ? @@@@ @@@@ @@@@ @@@@ @@@@END_GRAPH _ | > > > | 13715 13716 13717 13718 13719 13720 13721 13722 13723 13724 13725 13726 13727 13728 13729 13730 13731 | TEST: Ce qui rend les pompes à chaleur moins rentables. TEST: l’accusation de lynchage médiatique proférée par François de Clermont à l’encontre de “Marianne” ne tient pas. TEST: La poïesis, en grec, est ce qui permet de faire passer n’importe quoi du non-être à l’être TEST: un moteur nouvelle génération TEST: La première est la critique dite artiste TEST: la critique conduit nombre de protestataires à se replier sur des modalités de défense efficaces dans le passé mais désormais largement inadaptées TEST: Tu crois que Microsoft peut contraindre les projets libres à quoi que ce soit ? TEST: « L’école produit la norme en matière de langage » TEST: Parler affaires. @@@@ @@@@ @@@@ @@@@ @@@@END_GRAPH _ |
︙ | ︙ | |||
14629 14630 14631 14632 14633 14634 14635 | <<- /gn/ __also__ and hasFemForm(\2) -2>> =suggFemSing(\2, True) # Accord de genre erroné : « \1 » est féminin. TEST: {{Quelle}} homme. ->> Quel TEST: {{Quelle}} {{folles}} TEST: {{Quelle}} {{chien}} TEST: {{Quelle}} {{chats}} TEST: Quelle sale journée… | | | 14652 14653 14654 14655 14656 14657 14658 14659 14660 14661 14662 14663 14664 14665 14666 | <<- /gn/ __also__ and hasFemForm(\2) -2>> =suggFemSing(\2, True) # Accord de genre erroné : « \1 » est féminin. TEST: {{Quelle}} homme. ->> Quel TEST: {{Quelle}} {{folles}} TEST: {{Quelle}} {{chien}} TEST: {{Quelle}} {{chats}} TEST: Quelle sale journée… TEST: On pourrait également rappeler à quel point l’Église catholique fut hostile à la laïcité et la combattit violemment. __gn_quelles_1m!8__ quelles *WORD <<- /gn/ morph(\2, ":[NA].*:m:s", ":(?:V0|Oo|[NA].*:[fe]:[pi])") -1>> quel # Accord de genre et de nombre erroné. « \2 » est masculin et au singulier. <<- /gn/ __also__ and hasFemForm(\2) -2>> =suggFemPlur(\2, True) # Accord de genre et de nombre erroné : « \1 » est féminin et au pluriel. <<- /gn/ morph(\2, ":[NA].*:f:s", ":(?:V0|Oo|[NA].*:[fe]:[pi])") -1>> quelle # Accord de nombre erroné : « \2 » est au singulier. <<- /gn/ __also__ -2>> =suggPlur(\2) # Accord de nombre erroné : « \1 » est au pluriel. |
︙ | ︙ | |||
14823 14824 14825 14826 14827 14828 14829 | TEST: les quelque 2,5 millions d’habitants TEST: les quelque 12 000 stations-service ## Nombres __gn_nombre_lettres_1m__ $:B:e:p *WORD | | | | > | 14846 14847 14848 14849 14850 14851 14852 14853 14854 14855 14856 14857 14858 14859 14860 14861 14862 14863 14864 14865 14866 14867 14868 14869 14870 14871 14872 14873 14874 14875 14876 14877 14878 14879 14880 14881 14882 14883 14884 | TEST: les quelque 2,5 millions d’habitants TEST: les quelque 12 000 stations-service ## Nombres __gn_nombre_lettres_1m__ $:B:e:p *WORD <<- /gn/ not value(\1, "|neuf|mille|") and ( (morph(\2, ":[NA].*:s", "*") and not value(\2, "|multiplié|divisé|janvier|février|mars|avril|mai|juin|juillet|août|aout|septembre|octobre|novembre|décembre|rue|route|ruelle|place|boulevard|avenue|allée|chemin|sentier|square|impasse|cour|quai|chaussée|côte|vendémiaire|brumaire|frimaire|nivôse|pluviôse|ventôse|germinal|floréal|prairial|messidor|thermidor|fructidor|") ) or \2 in aREGULARPLURAL) and not re.search("^[IVXLDM]+$", \1) -2>> =suggPlur(\2) # Accord de nombre erroné avec « \1 » : « \2 » devrait être au pluriel. neuf *WORD <<- /gn/ ( morph(\2, ":[NA].*:s", "*") and not morph(<1, ":N.*:m:[is]") and not value(\2, "|multiplié|divisé|janvier|février|mars|avril|mai|juin|juillet|août|aout|septembre|octobre|novembre|décembre|rue|route|ruelle|place|boulevard|avenue|allée|chemin|sentier|square|impasse|cour|quai|chaussée|côte|vendémiaire|brumaire|frimaire|nivôse|pluviôse|ventôse|germinal|floréal|prairial|messidor|thermidor|fructidor|") ) or \2 in aREGULARPLURAL -2>> =suggPlur(\2) # Accord de nombre erroné avec « \1 » : « \2 » devrait être au pluriel. mille *WORD <<- /gn/ not value(\2, "|multiplié|divisé|") and (morph(\2, ":[NA].*:s", "*") or \1 in aREGULARPLURAL) and not value(<1, "|le|un|ce|du|") -2>> =suggPlur(\2) # Accord de nombre erroné avec « \1 » : « \2 » devrait être au pluriel. TEST: ce sont trois {{idiot}} pas foutus de trouver leur chemin avec un GPS. ->> idiots TEST: Il a abandonné neuf {{enfant}}. ->> enfants TEST: On peut trouver mille {{travailleur}} d’un claquement de doigts. ->> travailleurs TEST: Il y a quatre cents {{mot}} dans la phrase. ->> mots TEST: cent {{mot}} ->> mots TEST: cinquante {{mot}} ->> mots TEST: mille cinquante {{mot}} ->> mots TEST: deux {{tête}} ->> têtes TEST: un logement neuf bâti par des professionnels. TEST: un mille marin. TEST: L’article VII mentionné dans la revue TEST: Le produit de cinq multiplié par trois. __gn_nombre_chiffres_1m__ [0|1|01] @:[NAQ].*:p¬* <<- /gn/ space_after(\1, 1, 1) and not value(\2, "|Rois|Corinthiens|Thessaloniciens|") -2>> =suggSing(\2) # Accord de nombre erroné : « \1 » devrait être au singulier. |
︙ | ︙ | |||
17920 17921 17922 17923 17924 17925 17926 17927 17928 17929 17930 17931 17932 17933 | TEST: l’idée consiste à la lui donner sans contrepartie et voir ce qu’il en fera. TEST: à leur plus grand fils, ils ont offert une voiture. TEST: ça va d’autonome à hautement dépendant TEST: à lui donner trop d’importance, on façonne notre ennemi TEST: la pression entre les membres à un moment devient trop importante TEST: Macron saisit la discorde avec le Brésil pour s’opposer à l’embarrassant accord TEST: Je vous renvoie pour cela à l’excellent documentaire __infi_loc_à_verbe__ de manière à ~..(?:ée?s?|ez)$ du mal à ~..(?:ée?s?|ez)$ intérêt à ~..(?:ée?s?|ez)$ <<- /infi/ morph(\-1, ":V", ":M") and not (\-1.endswith("ez") and value(>1, "|vous|")) | > | 17944 17945 17946 17947 17948 17949 17950 17951 17952 17953 17954 17955 17956 17957 17958 | TEST: l’idée consiste à la lui donner sans contrepartie et voir ce qu’il en fera. TEST: à leur plus grand fils, ils ont offert une voiture. TEST: ça va d’autonome à hautement dépendant TEST: à lui donner trop d’importance, on façonne notre ennemi TEST: la pression entre les membres à un moment devient trop importante TEST: Macron saisit la discorde avec le Brésil pour s’opposer à l’embarrassant accord TEST: Je vous renvoie pour cela à l’excellent documentaire TEST: cuisiner à l’étouffée __infi_loc_à_verbe__ de manière à ~..(?:ée?s?|ez)$ du mal à ~..(?:ée?s?|ez)$ intérêt à ~..(?:ée?s?|ez)$ <<- /infi/ morph(\-1, ":V", ":M") and not (\-1.endswith("ez") and value(>1, "|vous|")) |
︙ | ︙ | |||
17948 17949 17950 17951 17952 17953 17954 | TEST: Le commandant de zone… TEST: À quoi rime de décider de mesures écologiques d’en haut TEST: L’accès au cannabis thérapeutique où à ses dérivés permettrait de plus aux autorités de santé d’apporter aux malades les garanties nécessaires quant à la qualité, aux concentrations, ainsi qu’aux modalités d’obtention et d’utilisation optimale. TEST: l’industrie est également touchée, avec « des pertes de commandes de véhicules chez Renault et chez Peugeot » __infi_qqch_de__ | | < | > > > > | | > | < < | | > > > | > > | > | > | > < | 17973 17974 17975 17976 17977 17978 17979 17980 17981 17982 17983 17984 17985 17986 17987 17988 17989 17990 17991 17992 17993 17994 17995 17996 17997 17998 17999 18000 18001 18002 18003 18004 18005 18006 18007 18008 18009 18010 18011 18012 18013 18014 18015 18016 18017 18018 18019 | TEST: Le commandant de zone… TEST: À quoi rime de décider de mesures écologiques d’en haut TEST: L’accès au cannabis thérapeutique où à ses dérivés permettrait de plus aux autorités de santé d’apporter aux malades les garanties nécessaires quant à la qualité, aux concentrations, ainsi qu’aux modalités d’obtention et d’utilisation optimale. TEST: l’industrie est également touchée, avec « des pertes de commandes de véhicules chez Renault et chez Peugeot » __infi_qqch_de__ [afin|avant] [de|d’] ?[le|l’|la|leur|les|nous|vous|lui]¿ ~..ée?s?$ avant ?même¿ [de|d’] ?[le|l’|la|leur|les|nous|vous|lui]¿ ~..ée?s?$ marre [de|d’] ?[le|l’|la|leur|les|nous|vous|lui]¿ ~..ée?s?$ <<- /infi/ analyse(\-1, ":Q", ":M") --1>> =suggVerbInfi(\-1) # Après “\1 de”, le verbe devrait être à l’infinitif. à même [de|d’] ?[le|l’|la|leur|les|nous|vous|lui]¿ ~..ée?s?$ en train [de|d’] ?[le|l’|la|leur|les|nous|vous|lui]¿ ~..ée?s?$ en vue [de|d’] ?[le|l’|la|leur|les|nous|vous|lui]¿ ~..ée?s?$ <<- /infi/ analyse(\-1, ":Q", ":M") --1>> =suggVerbInfi(\-1) # Après “\1 \2 de”, le verbe devrait être à l’infinitif. [>façon|>manière] [de|d’] ?[le|l’|la|leur|les|nous|vous|lui]¿ ~..ée?s?$ [>intention|>volonté] [de|d’] ?[le|l’|la|leur|les|nous|vous|lui]¿ ~..ée?s?$ <<- /infi/ analyse(\-1, ":Q", ":M") --1>> =suggVerbInfi(\-1) # Après “\1 de”, le verbe devrait être à l’infinitif s’il s’agit bien de décrire une action. il >être [temps|impossible|indispensable|nécessaire|utile] [de|d’] ?[le|l’|la|leur|les|nous|vous|lui]¿ ~..ée?s?$ <<- /infi/ analyse(\-1, ":Q", ":M") --1>> =suggVerbInfi(\-1) # Après “il est \3 de”, le verbe devrait être à l’infinitif. [<start>|,] impossible [de|d’] ?[le|l’|la|leur|les|nous|vous|lui]¿ ~..ée?s?$ <<- /infi/ analyse(\-1, ":Q", ":M") --1>> =suggVerbInfi(\-1) # Après “impossible de”, le verbe devrait être à l’infinitif. force [est|était] [de|d’] ?[le|l’|la|leur|les|nous|vous|lui]¿ ~..ée?s?$ <<- /infi/ not value(<1, "|une|la|cette|ma|ta|sa|notre|votre|leur|quelle|de|d’|") and analyse(\-1, ":Q", ":M") --1>> =suggVerbInfi(\-1) # Après “force est de”, le verbe devrait être à l’infinitif. TEST: afin de leur {{percée}} une ouverture TEST: en train de {{percées}} TEST: ils sont à même de {{trouvé}} la bonne réponse TEST: Nous étions en train de {{trouvé}} une solution à ces soucis récurrents. TEST: elle est en train de {{mangée}} TEST: je déteste sa manière de la {{rabaissée}} en permanence. TEST: il serait temps de {{poussée}} la logique jusqu’au bout TEST: impossible d’{{échappée}} à cette horreur. TEST: Force est d’{{pensée}} que nous allons y arriver avec seulement nos bonnes intentions. __infi_de_verbe__ [de|d’] [le|l’|leur|les] @:V¬:[YNAM]|>(?:lui|plus)/ [<start>|,] [de|d’] [nous|vous|lui] @:V¬:[YE]|>(?:lui|plus)/ <<- /infi/ \-1.islower() --1>> =suggVerbInfi(\-1) # Erreur probable. Après “de”, le verbe devrait être à l’infinitif. |
︙ | ︙ | |||
17997 17998 17999 18000 18001 18002 18003 | <<- /infi/ --1>> =suggVerbInfi(\-1) # Après “\1 \2 \3”, le verbe devrait être à l’infinitif. >faire ?[pas|jamais|guère]¿ semblant [de|d’] ?[nous|vous|le|la|l’|les|leur]¿ @:V1.*:Q <<- /infi/ --1>> =suggVerbInfi(\-1) # Après “faire semblant de”, le verbe devrait être à l’infinitif. [de|d’] @:V1.*:Q¬:N <<- /infi/ not \2[0:1].isupper() and not morph(<1, ">(?:en|passer)/") | | | 18031 18032 18033 18034 18035 18036 18037 18038 18039 18040 18041 18042 18043 18044 18045 | <<- /infi/ --1>> =suggVerbInfi(\-1) # Après “\1 \2 \3”, le verbe devrait être à l’infinitif. >faire ?[pas|jamais|guère]¿ semblant [de|d’] ?[nous|vous|le|la|l’|les|leur]¿ @:V1.*:Q <<- /infi/ --1>> =suggVerbInfi(\-1) # Après “faire semblant de”, le verbe devrait être à l’infinitif. [de|d’] @:V1.*:Q¬:N <<- /infi/ not \2[0:1].isupper() and not morph(<1, ">(?:en|passer)/") and not before("(?i)\\b(?:quelqu(?:e chose|’une?)|qu’y a-t-il |(?:l(es?|a)|nous|vous|me|te|se) trait|personne|points? +$|autant +$|ça +|rien d(?:e |’)|rien(?: +[a-zéèêâîûù]+|) +$)") and not tag_before(\1, "ce_que") -2>> =suggVerbInfi(\2) # Le verbe devrait être à l’infinitif. TEST: d’en {{parlé}} sans cesse TEST: cela suffit de les {{aimait}} TEST: de ne leur en {{avancé}} que le nécessaire. TEST: de l’y {{poussé}} |
︙ | ︙ | |||
18035 18036 18037 18038 18039 18040 18041 18042 18043 18044 18045 18046 18047 18048 | TEST: Il n’y a rien de mécanique, ni de prédestiné. TEST: il convient donc de ne point les négliger. TEST: Il se moque de nous en fournissant de pareilles marchandises frelatées. TEST: qu’y a-t-il de changé, de perturbé, de modifié ? TEST: ce qu’ils ont d’obscur, d’exagéré et parfois de sec et de figé TEST: ce qu’il y a de compliqué dans ces affaires. TEST: Un patient peut avoir autant de satanées maladies qui lui chante. __infi_y_verbe!3__ y ~ée?s?$ <<- /infi/ morph(\2, ":V", ":[123][sp]") -2>> _ # Le verbe ne devrait pas être un participe passé. TEST: y {{mangée}} était un supplice | > | 18069 18070 18071 18072 18073 18074 18075 18076 18077 18078 18079 18080 18081 18082 18083 | TEST: Il n’y a rien de mécanique, ni de prédestiné. TEST: il convient donc de ne point les négliger. TEST: Il se moque de nous en fournissant de pareilles marchandises frelatées. TEST: qu’y a-t-il de changé, de perturbé, de modifié ? TEST: ce qu’ils ont d’obscur, d’exagéré et parfois de sec et de figé TEST: ce qu’il y a de compliqué dans ces affaires. TEST: Un patient peut avoir autant de satanées maladies qui lui chante. TEST: C’est toujours ça de gagné. __infi_y_verbe!3__ y ~ée?s?$ <<- /infi/ morph(\2, ":V", ":[123][sp]") -2>> _ # Le verbe ne devrait pas être un participe passé. TEST: y {{mangée}} était un supplice |
︙ | ︙ | |||
18948 18949 18950 18951 18952 18953 18954 | TEST: elles ne s’y étaient pas {{donnée}}. TEST: sans fin elles se sont succédé __ppas_se_être__ [me|m’|te|se|s’] ?[y|en]¿ >être *WORD <<- /ppas/ morph(\-1, ":(?:Y|[123][sp])", ":[QA]") --1>> =suggVerbPpas(\-1) # Incohérence. Après « s’être », le verbe doit être un participe passé. | | > | 18983 18984 18985 18986 18987 18988 18989 18990 18991 18992 18993 18994 18995 18996 18997 18998 18999 19000 19001 19002 19003 19004 19005 19006 19007 19008 19009 19010 19011 19012 19013 19014 19015 19016 19017 19018 | TEST: elles ne s’y étaient pas {{donnée}}. TEST: sans fin elles se sont succédé __ppas_se_être__ [me|m’|te|se|s’] ?[y|en]¿ >être *WORD <<- /ppas/ morph(\-1, ":(?:Y|[123][sp])", ":[QA]") --1>> =suggVerbPpas(\-1) # Incohérence. Après « s’être », le verbe doit être un participe passé. <<- /ppas/ __else__ and morph(\-2, ":[123]s") and morph(\-1, ":Q.*:p") and not tag_before(\1, "que") and not before("(?i)\\bon (?:ne |)$") --1>> =suggSing(\-1) # Le participe passé devrait être au singulier. tu t’ ?[y|en]¿ [es|étais|seras|serais|fus|fusses] *WORD <<- /ppas/ morph(\-1, ":(?:Y|[123][sp])", ":[QA]") --1>> =suggVerbPpas(\-1) # Incohérence. Après « s’être », le verbe doit être un participe passé. TEST: s’être toujours {{donner}} le mot. TEST: je suis venu et me suis totalement {{donnés}} à cette œuvre TEST: c’est de ce qui s’est {{passe}}. TEST: s’était toujours {{passe}} comme ça avec elle TEST: s’est {{approche}} de la penderie TEST: terrorisant l’animal qui s’était {{cabre}}. TEST: ce qui s’est {{passe}}. TEST: s’y était de plus en plus {{consacrer}} avec enthousiasme. TEST: tu t’en es {{foutait}} autant que possible. TEST: elles se sont dit : « Allons-y ». TEST: On s’est rencontrées lorsqu’on travaillait là-bas. TEST: des soins que je m’étais donnés. TEST: Si t’es pas contente, t’achètes pas. TEST: t’étais vraiment cinglé à cette époque. TEST: il m’était évident que cette mission était à durée déterminée TEST: Cela fait un petit temps qu’on ne s’est plus vus. ## se rendre compte __ppas_s_être_rendu_compte__ >être rendu compte <<- !2:3>> <<- ~2:3>> _ |
︙ | ︙ | |||
19596 19597 19598 19599 19600 19601 19602 | || [être|devenir|redevenir|rester|paraître|paraitre|sembler] *WORD [<start>|,|$:Cs] [un|le|ce|cet] (*WORD) ?qui¿ ?[ne|n’]¿ || ([>adorer|>affirmer|>aimer|>croire|>déclarer|>désirer|>détester|>devoir|>dire|>estimer|>imaginer|>paraître|>paraitre|>penser|>pouvoir|>préférer|>risquer|>savoir|>sembler|>souhaiter|>vouloir]) || être [devenu+e|redevenu+e|resté+e|demeuré+e] *WORD [<start>|,|$:Cs] [un|le|ce|cet] (*WORD) ?qui¿ ?[ne|n’]¿ || ([>adorer|>affirmer|>aimer|>croire|>déclarer|>désirer|>détester|>devoir|>dire|>estimer|>imaginer|>paraître|>paraitre|>penser|>pouvoir|>préférer|>risquer|>savoir|>sembler|>souhaiter|>vouloir]) || avoir [été|semblé|paru] *WORD | | | | | | 19632 19633 19634 19635 19636 19637 19638 19639 19640 19641 19642 19643 19644 19645 19646 19647 19648 19649 19650 19651 19652 19653 19654 19655 19656 19657 19658 19659 19660 19661 19662 19663 19664 19665 19666 19667 19668 19669 19670 19671 19672 19673 19674 19675 19676 19677 19678 19679 19680 19681 19682 19683 19684 19685 19686 19687 19688 19689 19690 19691 19692 | || [être|devenir|redevenir|rester|paraître|paraitre|sembler] *WORD [<start>|,|$:Cs] [un|le|ce|cet] (*WORD) ?qui¿ ?[ne|n’]¿ || ([>adorer|>affirmer|>aimer|>croire|>déclarer|>désirer|>détester|>devoir|>dire|>estimer|>imaginer|>paraître|>paraitre|>penser|>pouvoir|>préférer|>risquer|>savoir|>sembler|>souhaiter|>vouloir]) || être [devenu+e|redevenu+e|resté+e|demeuré+e] *WORD [<start>|,|$:Cs] [un|le|ce|cet] (*WORD) ?qui¿ ?[ne|n’]¿ || ([>adorer|>affirmer|>aimer|>croire|>déclarer|>désirer|>détester|>devoir|>dire|>estimer|>imaginer|>paraître|>paraitre|>penser|>pouvoir|>préférer|>risquer|>savoir|>sembler|>souhaiter|>vouloir]) || avoir [été|semblé|paru] *WORD <<- /ppas/ morph(\1, ":[NA].*:[me]", ":[GWf]") and morph(\-1, ":A.*:f", ":[GWMme]") and (morph(\2, ":[123]s") or (not tag(\1, "enum") and morph(\2, ":P"))) --1>> =switchGender(\-1) # Accord erroné : “\1” et “\-1” ne sont pas accordés en genre. [<start>|,|$:Cs] [une|la|ma|ta|sa|cette] (*WORD) ?qui¿ ?[ne|n’]¿ ([>être|>sembler|>devenir|>rester|>demeurer|>redevenir|>paraître|>paraitre]) *WORD [<start>|,|$:Cs] [une|la|ma|ta|sa|cette] (*WORD) ?qui¿ ?[ne|n’]¿ (>avoir) [été|semblé|paru] *WORD [<start>|,|$:Cs] [une|la|ma|ta|sa|cette] (*WORD) ?qui¿ ?[ne|n’]¿ ([>être|>sembler]) [devenu+e|redevenu+e|resté+e|demeuré+e] *WORD [<start>|,|$:Cs] [une|la|ma|ta|sa|cette] (*WORD) ?qui¿ ?[ne|n’]¿ || ([>aller|>adorer|>affirmer|>aimer|>croire|>déclarer|>désirer|>détester|>devoir|>dire|>estimer|>imaginer|>paraître|>paraitre|>penser|>pouvoir|>préférer|>risquer|>savoir|>sembler|>souhaiter|>vouloir]) || [être|devenir|redevenir|rester|paraître|paraitre|sembler] *WORD [<start>|,|$:Cs] [une|la|ma|ta|sa|cette] (*WORD) ?qui¿ ?[ne|n’]¿ || ([>adorer|>affirmer|>aimer|>croire|>déclarer|>désirer|>détester|>devoir|>dire|>estimer|>imaginer|>paraître|>paraitre|>penser|>pouvoir|>préférer|>risquer|>savoir|>sembler|>souhaiter|>vouloir]) || être [devenu+e|redevenu+e|resté+e|demeuré+e] *WORD [<start>|,|$:Cs] [une|la|ma|ta|sa|cette] (*WORD) ?qui¿ ?[ne|n’]¿ || ([>adorer|>affirmer|>aimer|>croire|>déclarer|>désirer|>détester|>devoir|>dire|>estimer|>imaginer|>paraître|>paraitre|>penser|>pouvoir|>préférer|>risquer|>savoir|>sembler|>souhaiter|>vouloir]) || avoir [été|semblé|paru] *WORD <<- /ppas/ morph(\1, ":[NA].*:[fe]", ":[GWm]") and morph(\-1, ":A.*:m", ":[GWMfe]") and (morph(\2, ":[123]s") or (not tag(\1, "enum") and morph(\2, ":P"))) --1>> =switchGender(\-1) # Accord erroné : “\1” et “\-1” ne sont pas accordés en genre. [<start>|,|$:Cs] [l’|mon|ton|son|notre|votre|leur] (*WORD) ?qui¿ ?[ne|n’]¿ ([>être|>sembler|>devenir|>rester|>demeurer|>redevenir|>paraître|>paraitre]) *WORD [<start>|,|$:Cs] [l’|mon|ton|son|notre|votre|leur] (*WORD) ?qui¿ ?[ne|n’]¿ (>avoir) [été|semblé|paru] *WORD [<start>|,|$:Cs] [l’|mon|ton|son|notre|votre|leur] (*WORD) ?qui¿ ?[ne|n’]¿ ([>être|>sembler]) [devenu+e|redevenu+e|resté+e|demeuré+e] *WORD [<start>|,|$:Cs] [l’|mon|ton|son|notre|votre|leur] (*WORD) ?qui¿ ?[ne|n’]¿ || ([>aller|>adorer|>affirmer|>aimer|>croire|>déclarer|>désirer|>détester|>devoir|>dire|>estimer|>imaginer|>paraître|>paraitre|>penser|>pouvoir|>préférer|>risquer|>savoir|>sembler|>souhaiter|>vouloir]) || [être|devenir|redevenir|rester|paraître|paraitre|sembler] *WORD [<start>|,|$:Cs] [l’|mon|ton|son|notre|votre|leur] (*WORD) ?qui¿ ?[ne|n’]¿ || ([>adorer|>affirmer|>aimer|>croire|>déclarer|>désirer|>détester|>devoir|>dire|>estimer|>imaginer|>paraître|>paraitre|>penser|>pouvoir|>préférer|>risquer|>savoir|>sembler|>souhaiter|>vouloir]) || être [devenu+e|redevenu+e|resté+e|demeuré+e] *WORD [<start>|,|$:Cs] [l’|mon|ton|son|notre|votre|leur] (*WORD) ?qui¿ ?[ne|n’]¿ || ([>adorer|>affirmer|>aimer|>croire|>déclarer|>désirer|>détester|>devoir|>dire|>estimer|>imaginer|>paraître|>paraitre|>penser|>pouvoir|>préférer|>risquer|>savoir|>sembler|>souhaiter|>vouloir]) || avoir [été|semblé|paru] *WORD <<- /ppas/ ((morph(\1, ":[NA].*:f", ":[GWme]") and morph(\-1, ":A.*:m", ":[GWMfe]")) or (morph(\1, ":[NA].*:m", ":[GWfe]") and morph(\-1, ":A.*:f", ":[GWme]"))) and (morph(\2, ":[123]s") or (not tag(\1, "enum") and morph(\2, ":P"))) --1>> =switchGender(\-1) # Accord erroné : “\1” et “\-1” ne sont pas accordés en genre. [<start>|,|$:Cs] [les|ces|mes|tes|ses|nos|vos|leurs|quelques|plusieurs] (*WORD) ?qui¿ ?[ne|n’]¿ ([>être|>sembler|>devenir|>rester|>demeurer|>redevenir|>paraître|>paraitre]) *WORD [<start>|,|$:Cs] [les|ces|mes|tes|ses|nos|vos|leurs|quelques|plusieurs] (*WORD) ?qui¿ ?[ne|n’]¿ (>avoir) [été|semblé|paru] *WORD [<start>|,|$:Cs] [les|ces|mes|tes|ses|nos|vos|leurs|quelques|plusieurs] (*WORD) ?qui¿ ?[ne|n’]¿ ([>être|>sembler]) [devenus|redevenus|restés|demeurés|devenues|redevenues|restées|demeurées] *WORD [<start>|,|$:Cs] [les|ces|mes|tes|ses|nos|vos|leurs|quelques|plusieurs] (*WORD) ?qui¿ ?[ne|n’]¿ || ([>aller|>adorer|>affirmer|>aimer|>croire|>déclarer|>désirer|>détester|>devoir|>dire|>estimer|>imaginer|>paraître|>paraitre|>penser|>pouvoir|>préférer|>risquer|>savoir|>sembler|>souhaiter|>vouloir]) || [être|devenir|redevenir|rester|paraître|paraitre|sembler] *WORD [<start>|,|$:Cs] [les|ces|mes|tes|ses|nos|vos|leurs|quelques|plusieurs] (*WORD) ?qui¿ ?[ne|n’]¿ || ([>adorer|>affirmer|>aimer|>croire|>déclarer|>désirer|>détester|>devoir|>dire|>estimer|>imaginer|>paraître|>paraitre|>penser|>pouvoir|>préférer|>risquer|>savoir|>sembler|>souhaiter|>vouloir]) || être [devenus|redevenus|restés|demeurés|devenues|redevenues|restées|demeurées] *WORD [<start>|,|$:Cs] [les|ces|mes|tes|ses|nos|vos|leurs|quelques|plusieurs] (*WORD) ?qui¿ ?[ne|n’]¿ || ([>adorer|>affirmer|>aimer|>croire|>déclarer|>désirer|>détester|>devoir|>dire|>estimer|>imaginer|>paraître|>paraitre|>penser|>pouvoir|>préférer|>risquer|>savoir|>sembler|>souhaiter|>vouloir]) || avoir [été|semblé|paru] *WORD <<- /ppas/ ((morph(\1, ":[NA].*:f", ":[GWme]") and morph(\-1, ":A.*:m", ":[GWMfe]")) or (morph(\1, ":[NA].*:m", ":[GWfe]") and morph(\-1, ":A.*:f", ":[GWme]"))) and morph(\2, ":(?:[123]p|P)") --1>> =switchGender(\-1) # Accord erroné : “\1” et “\-1” ne sont pas accordés en genre. *WORD [que|qu’] [un|le|ce|cet|une|la|ma|ta|sa|cette|l’|mon|ton|son|notre|votre|leur|les|ces|mes|tes|ses|nos|vos|leurs|quelques|plusieurs] *WORD ?[ne|n’]¿ || ([>affirmer|>croire|>déclarer|>désirer|>détester|>dire|>estimer|>imaginer|>penser|>préférer|>savoir|>souhaiter|>vouloir]) || [être|devenir|redevenir|rester|paraître|paraitre|sembler] *WORD *WORD [que|qu’] [un|le|ce|cet|une|la|ma|ta|sa|cette|l’|mon|ton|son|notre|votre|leur|les|ces|mes|tes|ses|nos|vos|leurs|quelques|plusieurs] *WORD ?[ne|n’]¿ || ([>affirmer|>croire|>déclarer|>désirer|>détester|>dire|>estimer|>imaginer|>penser|>préférer|>savoir|>souhaiter|>vouloir]) |
︙ | ︙ | |||
19676 19677 19678 19679 19680 19681 19682 19683 19684 19685 19686 19687 19688 19689 | TEST: l’écolier qui ne croyait pas avoir été {{brillante}} TEST: les femmes sont vraiment {{partis}} ->> parties TEST: les hommes ne sont pas tout à fait {{fâchées}} ->> fâchés TEST: plusieurs invités qui ne sont pas {{contentes}} TEST: les réunions sans cesse reportées qui sont {{annulés}} TEST: les hommes croyant être {{instruites}} TEST: Les tortures que ce journaliste pense être “normales”. __ppas_nom_propre_être_accord_genre__ [<start>|,|$:Cs] ($:M) ?qui¿ ?[ne|n’]¿ ([>être|>sembler|>devenir|>rester|>demeurer|>redevenir|>paraître|>paraitre]) *WORD [<start>|,|$:Cs] ($:M) ?qui¿ ?[ne|n’]¿ (>avoir) [été|semblé|paru] *WORD [<start>|,|$:Cs] ($:M) ?qui¿ ?[ne|n’]¿ ([>être|>sembler]) [devenu+e|redevenu+e|resté+e|demeuré+e] *WORD [<start>|,|$:Cs] ($:M) ?qui¿ ?[ne|n’]¿ | > | 19712 19713 19714 19715 19716 19717 19718 19719 19720 19721 19722 19723 19724 19725 19726 | TEST: l’écolier qui ne croyait pas avoir été {{brillante}} TEST: les femmes sont vraiment {{partis}} ->> parties TEST: les hommes ne sont pas tout à fait {{fâchées}} ->> fâchés TEST: plusieurs invités qui ne sont pas {{contentes}} TEST: les réunions sans cesse reportées qui sont {{annulés}} TEST: les hommes croyant être {{instruites}} TEST: Les tortures que ce journaliste pense être “normales”. TEST: La première était René, le parfumeur, qui s’approcha de Catherine __ppas_nom_propre_être_accord_genre__ [<start>|,|$:Cs] ($:M) ?qui¿ ?[ne|n’]¿ ([>être|>sembler|>devenir|>rester|>demeurer|>redevenir|>paraître|>paraitre]) *WORD [<start>|,|$:Cs] ($:M) ?qui¿ ?[ne|n’]¿ (>avoir) [été|semblé|paru] *WORD [<start>|,|$:Cs] ($:M) ?qui¿ ?[ne|n’]¿ ([>être|>sembler]) [devenu+e|redevenu+e|resté+e|demeuré+e] *WORD [<start>|,|$:Cs] ($:M) ?qui¿ ?[ne|n’]¿ |
︙ | ︙ | |||
23400 23401 23402 23403 23404 23405 23406 23407 23408 23409 23410 23411 23412 23413 | TEST: Quel est le problème ? Je ne fais que ramener Paul à la raison. TEST: La voir se fêler ainsi lui noua la gorge. TEST: Quoi de neuf, mec ? TEST: T’as enfin trouvé des gens avec qui t’entendre ? TEST: ça fait du bien de se l’entendre dire TEST: Laisse tomber, mec ! Pour qui tu te prends ? TEST: il y avait souvent foule !!! Tests historiques !! ## Version 0.5.14 TEST: par le léger tissu de rayonne qui les protégeait en ce moment. | > | 23437 23438 23439 23440 23441 23442 23443 23444 23445 23446 23447 23448 23449 23450 23451 | TEST: Quel est le problème ? Je ne fais que ramener Paul à la raison. TEST: La voir se fêler ainsi lui noua la gorge. TEST: Quoi de neuf, mec ? TEST: T’as enfin trouvé des gens avec qui t’entendre ? TEST: ça fait du bien de se l’entendre dire TEST: Laisse tomber, mec ! Pour qui tu te prends ? TEST: il y avait souvent foule TEST: Cette fille a plus d’un tour dans son sac. !!! Tests historiques !! ## Version 0.5.14 TEST: par le léger tissu de rayonne qui les protégeait en ce moment. |
︙ | ︙ |
Modified graphspell-js/char_player.js from [ac09087eb7] to [53774aa734].
︙ | ︙ | |||
376 377 378 379 380 381 382 | ]), cut: function (sWord) { // returns an arry of strings (prefix, trimed_word, suffix) let sPrefix = ""; let sSuffix = ""; | | | 376 377 378 379 380 381 382 383 384 385 386 387 388 389 390 | ]), cut: function (sWord) { // returns an arry of strings (prefix, trimed_word, suffix) let sPrefix = ""; let sSuffix = ""; let m = /^([ldmtsnjcç]|lorsqu|presqu|jusqu|puisqu|quoiqu|quelqu|qu)[’'‘`ʼ]([a-zA-Zà-öÀ-Ö0-9_ø-ÿØ-ßĀ-ʯfi-st-]+)/i.exec(sWord); if (m) { sPrefix = m[1] + "’"; sWord = m[2]; } m = /^([a-zA-Zà-öÀ-Ö0-9_ø-ÿØ-ßĀ-ʯfi-st]+)(-(?:t-|)(?:ils?|elles?|on|je|tu|nous|vous|ce)$)/i.exec(sWord); if (m) { sWord = m[1]; |
︙ | ︙ |
Modified graphspell-js/tokenizer.js from [2f6a31a87a] to [5a3085a08e].
︙ | ︙ | |||
35 36 37 38 39 40 41 | [/^[,.;:!?…«»“”‘’"(){}\[\]·–—¿¡]/, 'PUNC'], [/^[A-Z][.][A-Z][.](?:[A-Z][.])*/, 'WORD_ACRONYM'], [/^(?:https?:\/\/|www[.]|[a-zA-Zà-öÀ-Ö0-9ø-ÿØ-ßĀ-ʯff-st_-]+[@.][a-zA-Zà-öÀ-Ö0-9ø-ÿØ-ßĀ-ʯff-st_-]{2,}[@.])[a-zA-Z0-9][a-zA-Zà-öÀ-Ö0-9ø-ÿØ-ßĀ-ʯff-st_.\/?&!%=+*"'@$#-]+/, 'LINK'], [/^[#@][a-zA-Zà-öÀ-Ö0-9ø-ÿØ-ßĀ-ʯff-st_-]+/, 'TAG'], [/^<[a-zA-Zà-öÀ-Ö0-9ø-ÿØ-ßĀ-ʯff-st]+.*?>|<\/[a-zA-Zà-öÀ-Ö0-9ø-ÿØ-ßĀ-ʯff-st]+ *>/, 'HTML'], [/^\[\/?[a-zA-Zà-öÀ-Ö0-9ø-ÿØ-ßĀ-ʯff-st]+\]/, 'PSEUDOHTML'], [/^&\w+;(?:\w+;|)/, 'HTMLENTITY'], | | | 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 | [/^[,.;:!?…«»“”‘’"(){}\[\]·–—¿¡]/, 'PUNC'], [/^[A-Z][.][A-Z][.](?:[A-Z][.])*/, 'WORD_ACRONYM'], [/^(?:https?:\/\/|www[.]|[a-zA-Zà-öÀ-Ö0-9ø-ÿØ-ßĀ-ʯff-st_-]+[@.][a-zA-Zà-öÀ-Ö0-9ø-ÿØ-ßĀ-ʯff-st_-]{2,}[@.])[a-zA-Z0-9][a-zA-Zà-öÀ-Ö0-9ø-ÿØ-ßĀ-ʯff-st_.\/?&!%=+*"'@$#-]+/, 'LINK'], [/^[#@][a-zA-Zà-öÀ-Ö0-9ø-ÿØ-ßĀ-ʯff-st_-]+/, 'TAG'], [/^<[a-zA-Zà-öÀ-Ö0-9ø-ÿØ-ßĀ-ʯff-st]+.*?>|<\/[a-zA-Zà-öÀ-Ö0-9ø-ÿØ-ßĀ-ʯff-st]+ *>/, 'HTML'], [/^\[\/?[a-zA-Zà-öÀ-Ö0-9ø-ÿØ-ßĀ-ʯff-st]+\]/, 'PSEUDOHTML'], [/^&\w+;(?:\w+;|)/, 'HTMLENTITY'], [/^(?:l|d|n|m|t|s|j|c|ç|lorsqu|puisqu|jusqu|quoiqu|qu|presqu|quelqu)['’´‘′`ʼ]/i, 'WORD_ELIDED'], [/^\d\d?[h:]\d\d(?:[m:]\d\ds?|)\b/, 'HOUR'], [/^\d+(?:ers?\b|res?\b|è[rm]es?\b|i[èe][mr]es?\b|de?s?\b|nde?s?\b|ès?\b|es?\b|ᵉʳˢ?|ʳᵉˢ?|ᵈᵉ?ˢ?|ⁿᵈᵉ?ˢ?|ᵉˢ?)/, 'WORD_ORDINAL'], [/^\d+(?:[.,]\d+|)/, 'NUM'], [/^[&%‰€$+±=*/<>⩾⩽#|×¥£§¢¬÷@-]/, 'SIGN'], [/^[a-zA-Zà-öÀ-Ö0-9ø-ÿØ-ßĀ-ʯff-stᴀ-ᶿᵉʳˢⁿᵈ_]+(?:[’'`-][a-zA-Zà-öÀ-Ö0-9ø-ÿØ-ßĀ-ʯff-stᴀ-ᶿᵉʳˢⁿᵈ_]+)*/, 'WORD'] ] }; |
︙ | ︙ |
Modified graphspell/char_player.py from [112cceef9c] to [820a4d128a].
︙ | ︙ | |||
362 363 364 365 366 367 368 | "pseudo", "pré", "re", "ré", "sans", "sous", "supra", "sur", "ultra" ]) aPfx2 = frozenset([ "belgo", "franco", "génito", "gynéco", "médico", "russo" ]) | | | 362 363 364 365 366 367 368 369 370 371 372 373 374 375 376 | "pseudo", "pré", "re", "ré", "sans", "sous", "supra", "sur", "ultra" ]) aPfx2 = frozenset([ "belgo", "franco", "génito", "gynéco", "médico", "russo" ]) _zWordPrefixes = re.compile("(?i)^([ldmtsnjcç]|lorsqu|presqu|jusqu|puisqu|quoiqu|quelqu|qu)[’'‘`ʼ]([\\w-]+)") _zWordSuffixes = re.compile("(?i)^(\\w+)(-(?:t-|)(?:ils?|elles?|on|je|tu|nous|vous|ce))$") def cut (sWord): "returns a tuple of strings (prefix, trimed_word, suffix)" sPrefix = "" sSuffix = "" m = _zWordPrefixes.search(sWord) |
︙ | ︙ |
Modified graphspell/tokenizer.py from [af7051a739] to [a2c42f5f3e].
︙ | ︙ | |||
27 28 29 30 31 32 33 | r'(?P<FOLDERWIN>[a-zA-Z]:\\(?:Program Files(?: [(]x86[)]|)|[\w.()]+)(?:\\[\w.()-]+)*)', r'(?P<PUNC>[][,.;:!?…«»“”‘’"(){}·–—¿¡])', r'(?P<WORD_ACRONYM>[A-Z][.][A-Z][.](?:[A-Z][.])*)', r'(?P<LINK>(?:https?://|www[.]|\w+[@.]\w\w+[@.])\w[\w./?&!%=+*"\'@$#-]+)', r'(?P<HASHTAG>[#@][\w-]+)', r'(?P<HTML><\w+.*?>|</\w+ *>)', r'(?P<PSEUDOHTML>\[/?\w+\])', | | | 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 | r'(?P<FOLDERWIN>[a-zA-Z]:\\(?:Program Files(?: [(]x86[)]|)|[\w.()]+)(?:\\[\w.()-]+)*)', r'(?P<PUNC>[][,.;:!?…«»“”‘’"(){}·–—¿¡])', r'(?P<WORD_ACRONYM>[A-Z][.][A-Z][.](?:[A-Z][.])*)', r'(?P<LINK>(?:https?://|www[.]|\w+[@.]\w\w+[@.])\w[\w./?&!%=+*"\'@$#-]+)', r'(?P<HASHTAG>[#@][\w-]+)', r'(?P<HTML><\w+.*?>|</\w+ *>)', r'(?P<PSEUDOHTML>\[/?\w+\])', r"(?P<WORD_ELIDED>(?:l|d|n|m|t|s|j|c|ç|lorsqu|puisqu|jusqu|quoiqu|qu|presqu|quelqu)['’´‘′`ʼ])", r'(?P<WORD_ORDINAL>\d+(?:ers?|res?|è[rm]es?|i[èe][mr]es?|de?s?|nde?s?|ès?|es?|ᵉʳˢ?|ʳᵉˢ?|ᵈᵉ?ˢ?|ⁿᵈᵉ?ˢ?|ᵉˢ?)\b)', r'(?P<HOUR>\d\d?[h:]\d\d(?:[m:]\d\ds?|)\b)', r'(?P<NUM>\d+(?:[.,]\d+|))', r'(?P<SIGN>[&%‰€$+±=*/<>⩾⩽#|×¥£¢§¬÷@-])', r"(?P<WORD>\w+(?:[’'`-]\w+)*)" ) } |
︙ | ︙ |