Overview
Comment: | [fr] suggestion des graphies similaires mieux contrôlée |
---|---|
Downloads: | Tarball | ZIP archive | SQL archive |
Timelines: | family | ancestors | descendants | both | trunk | fr |
Files: | files | file ages | folders |
SHA3-256: |
8a4cad3f05d73ec222d6a8853529c018 |
User & Date: | olr on 2017-09-25 10:04:49 |
Other Links: | manifest | tags |
Context
2017-09-26
| ||
08:25 | [fx] WebExt: adaptation to Chrome (manifest.json) check-in: 4048828d5e user: olr tags: trunk, fx | |
2017-09-25
| ||
10:04 | [fr] suggestion des graphies similaires mieux contrôlée check-in: 8a4cad3f05 user: olr tags: trunk, fr | |
2017-09-22
| ||
09:44 | [fr] phonet_simil: remord remords check-in: 82b92a6d17 user: olr tags: trunk, fr | |
Changes
Modified gc_lang/fr/modules/conj.py from [ec8e754549] to [99ba236032].
︙ | ︙ | |||
51 52 53 54 55 56 57 | def getVtyp (sVerb): "returns raw informations about sVerb" if sVerb not in _dVerb: return None return _lVtyp[_dVerb[sVerb][0]] | | | > | 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 | def getVtyp (sVerb): "returns raw informations about sVerb" if sVerb not in _dVerb: return None return _lVtyp[_dVerb[sVerb][0]] def getSimil (sWord, sMorph, bSubst=False): if ":V" not in sMorph: return set() sInfi = sMorph[1:sMorph.find(" ")] tTags = _getTags(sInfi) aSugg = set() #if ":Q" in sMorph or ":Y" in sMorph: if not bSubst: # we suggest conjugated forms if ":V1" in sMorph: aSugg.add(sInfi) aSugg.add(_getConjWithTags(sInfi, tTags, ":Ip", ":3s")) aSugg.add(_getConjWithTags(sInfi, tTags, ":Ip", ":2p")) aSugg.add(_getConjWithTags(sInfi, tTags, ":Iq", ":1s")) aSugg.add(_getConjWithTags(sInfi, tTags, ":Iq", ":3s")) |
︙ | ︙ | |||
91 92 93 94 95 96 97 | aSugg.add(_getConjWithTags(sInfi, tTags, ":PQ", ":Q2")) aSugg.add(_getConjWithTags(sInfi, tTags, ":PQ", ":Q3")) aSugg.add(_getConjWithTags(sInfi, tTags, ":PQ", ":Q4")) aSugg.discard("") # if there is only one past participle (epi inv), unreliable. if len(aSugg) == 1: aSugg.clear() | < < | 92 93 94 95 96 97 98 99 100 101 102 103 104 105 | aSugg.add(_getConjWithTags(sInfi, tTags, ":PQ", ":Q2")) aSugg.add(_getConjWithTags(sInfi, tTags, ":PQ", ":Q3")) aSugg.add(_getConjWithTags(sInfi, tTags, ":PQ", ":Q4")) aSugg.discard("") # if there is only one past participle (epi inv), unreliable. if len(aSugg) == 1: aSugg.clear() return aSugg def getConjSimilInfiV1 (sInfi): if sInfi not in _dVerb: return set() tTags = _getTags(sInfi) |
︙ | ︙ |
Modified gc_lang/fr/modules/gce_suggestions.py from [e839f7efe5] to [37d0c398ac].
︙ | ︙ | |||
369 370 371 372 373 374 375 | return "" def hasSimil (sWord, sPattern=None): return phonet.hasSimil(sWord, sPattern) | | | | < | 369 370 371 372 373 374 375 376 377 378 379 380 381 382 383 384 385 386 387 388 389 | return "" def hasSimil (sWord, sPattern=None): return phonet.hasSimil(sWord, sPattern) def suggSimil (sWord, sPattern=None, bSubst=False): "return list of words phonetically similar to sWord and whom POS is matching sPattern" # we don’t check if word exists in _dAnalyses, for it is assumed it has been done before aSugg = phonet.selectSimil(sWord, sPattern) for sMorph in _dAnalyses.get(sWord, []): aSugg.update(conj.getSimil(sWord, sMorph, bSubst)) break if aSugg: return "|".join(aSugg) return "" def suggCeOrCet (sWord): if re.match("(?i)[aeéèêiouyâîï]", sWord): |
︙ | ︙ |
Modified gc_lang/fr/modules/phonet.py from [d03956eafb] to [cc107e0763].
︙ | ︙ | |||
35 36 37 38 39 40 41 | sWord = sWord.lower() if sWord in _dWord: return _lSet[_dWord[sWord]] return [] def selectSimil (sWord, sPattern): | | | 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 | sWord = sWord.lower() if sWord in _dWord: return _lSet[_dWord[sWord]] return [] def selectSimil (sWord, sPattern): "return a set of words phonetically similar to sWord and whom POS is matching sPattern" if not sPattern: return set(getSimil(sWord)) aSelect = set() for sSimil in getSimil(sWord): for sMorph in _dMorph.get(sSimil, []): if re.search(sPattern, sMorph): aSelect.add(sSimil) |
︙ | ︙ |
Modified gc_lang/fr/rules.grx from [27c994bd63] to [b1937a9818].
︙ | ︙ | |||
2501 2502 2503 2504 2505 2506 2507 | TEST: Ce que tu ne fais {{pas jamais}}. ### incohérences globales (attention à la casse du 2e mot, car beaucoup de sigles peuvent tromper) __[s](incohérences_globales1)__ ([clmtsCLMTS]es|[nvNV]os) ([cdlmst]es|[nv]os|cettes?|[mts]a|mon|je|tu|ils?|elle?|[vn]ous|on) @@0,$ | | | | | | | | 2501 2502 2503 2504 2505 2506 2507 2508 2509 2510 2511 2512 2513 2514 2515 2516 2517 2518 2519 2520 2521 2522 2523 2524 2525 2526 2527 2528 2529 2530 2531 2532 2533 2534 2535 2536 2537 2538 2539 2540 2541 2542 2543 2544 2545 2546 2547 2548 2549 2550 2551 2552 2553 | TEST: Ce que tu ne fais {{pas jamais}}. ### incohérences globales (attention à la casse du 2e mot, car beaucoup de sigles peuvent tromper) __[s](incohérences_globales1)__ ([clmtsCLMTS]es|[nvNV]os) ([cdlmst]es|[nv]os|cettes?|[mts]a|mon|je|tu|ils?|elle?|[vn]ous|on) @@0,$ <<- -2>> =suggSimil(\2, ":[NA].*:[pi]", True) # Incohérence : les mots “\1” et “\2” ne devraient pas se succéder. __[s](incohérences_globales2)__ ([cC]e(?:tte|t|)|[mtsMTS]a|[mM]on) ([cdlmst]es|[nv]os|cettes?|[mts]a|mon|je|tu|ils?|elle?|[vn]ous|on) @@0,$ <<- -2>> =suggSimil(\2, ":[NA].*:[si]", True) # 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. __[s](incohérence_globale_au_qqch)__ ([aA]u) ({w2}) @@0,$ <<- not \2.isupper() >>> <<- morph(\2, ">(?:[cdlmst]es|[nv]os|cettes?|[mts]a|mon|je|tu|ils?|elle?|[vn]ous|on|parce) ", False) -2>> =suggSimil(\2, ":[NA].*:[si]", True) # Incohérence : les mots “\1” et “\2” ne devraient pas se succéder. <<- __else__ and morph(\2, ">quelle ", False) ->> auquel|auxquels|auxquelles # Incohérence. Soudez les deux mots.|https://fr.wiktionary.org/wiki/auquel <<- __else__ and \2 == "combien" and morph(word(1), ":[AY]", False) -1>> ô # Incohérence probable.|https://fr.wiktionary.org/wiki/%C3%B4_combien TEST: au {{nos}} enfants. TEST: {{Au quel}} faut-il s’adresser ? TEST: Au MES, rien de nouveau. __[s](incohérence_globale_aux_qqch)__ ([aA]ux) ({w2}) @@0,$ <<- not \2.isupper() >>> <<- morph(\2, ">(?:[cdlmst]es|[nv]os|cettes?|[mts]a|mon|je|tu|ils?|elle?|[vn]ous|on|parce) ", False) -2>> =suggSimil(\2, ":[NA].*:[pi]", True) # Incohérence : les mots “\1” et “\2” ne devraient pas se succéder. <<- __else__ and morph(\2, ">quelle ", False) ->> auxquels|auxquelles # Incohérence. Soudez les deux mots.|https://fr.wiktionary.org/wiki/auquel <<- __else__ and \2 == "combien" and morph(word(1), ":[AY]", False) -1>> ô # Incohérence probable.|https://fr.wiktionary.org/wiki/%C3%B4_combien TEST: ils jouent aux {{des}}. TEST: {{Aux quels}} a-t-il adressé sa requête. ? TEST: Des individus {{aux}} combien sensibles aux usages. __[s](incohérences_globales3)__ ([dD]es) ([cdlmst]es|[nv]os|cettes?|[mts]a|mon|je|tu|ils?|elle?|[vn]ous|on) @@0,$ <<- -2>> =suggSimil(\2, ":[NA].*:[pi]", True) # Incohérence : les mots “\1” et “\2” ne devraient pas se succéder. <<- -1>> de # Incohérence : les mots “\1” et “\2” ne devraient pas se succéder. TEST: je ne sais {{des}} {{ses}} choses. !! !! |
︙ | ︙ | |||
2863 2864 2865 2866 2867 2868 2869 | TEST: {{en t’}}ait donné tant. ->> "t’en " TEST: {{en n’}}{{envoient}} que peu. __[i]/conf(conf_malgré_le_la_les)__ malgré l(?:es? +|a +|’)({w_3}) @@$ | | | | | | | | | | | | | | | | | | | | | | 2863 2864 2865 2866 2867 2868 2869 2870 2871 2872 2873 2874 2875 2876 2877 2878 2879 2880 2881 2882 2883 2884 2885 2886 2887 2888 2889 2890 2891 2892 2893 2894 2895 2896 2897 2898 2899 2900 2901 2902 2903 2904 2905 2906 2907 2908 2909 2910 2911 2912 2913 2914 2915 2916 2917 2918 2919 2920 2921 2922 2923 2924 2925 2926 2927 2928 2929 2930 2931 2932 2933 2934 2935 2936 2937 2938 2939 2940 2941 2942 2943 2944 2945 2946 2947 2948 2949 2950 2951 2952 2953 2954 2955 2956 2957 2958 2959 2960 2961 2962 2963 2964 2965 2966 2967 2968 2969 2970 2971 2972 2973 2974 2975 2976 2977 2978 2979 2980 2981 2982 2983 2984 2985 2986 2987 2988 2989 2990 2991 2992 2993 2994 2995 2996 2997 2998 2999 3000 3001 3002 3003 3004 3005 3006 3007 3008 3009 3010 3011 3012 3013 3014 3015 3016 3017 3018 3019 3020 3021 3022 3023 3024 3025 3026 3027 3028 3029 3030 3031 3032 3033 3034 3035 3036 3037 3038 3039 3040 3041 3042 3043 3044 3045 | TEST: {{en t’}}ait donné tant. ->> "t’en " TEST: {{en n’}}{{envoient}} que peu. __[i]/conf(conf_malgré_le_la_les)__ malgré l(?:es? +|a +|’)({w_3}) @@$ <<- morphex(\1, ":", ":[GNAWM]") -1>> =suggSimil(\1, ":[NA]", True) # Incohérence : après “malgré”, on devrait trouver un groupe nominal. TEST: malgré l’{{arrête}} qui interdisait le port __[i]/conf(conf_ma_ta_cette_verbe)__ ([mt]a|cette) +({w_2}) @@0,$ <<- morphex(\2, ":V.*:(?:Y|[123][sp])", ":[NAQ]") and \2[0].islower() -2>> =suggSimil(\2, ":[NA]:[fe]:[si]", True) # Incohérence avec « \1 » : « \2 » est un verbe. TEST: Cette {{pèle}} est trop fragile. __[i]/conf(conf_sa_verbe)__ (sa) ({w_2}) @@0,3 <<- morphex(\2, ":V.*:(?:Y|[123][sp])", ":N.*:[fe]|:[AW]") and \2[0].islower() or \2 == "va" -1>> ça # Confusion : « \2 » est un verbe. Exemples : sa jambe, ça vient. <<- morphex(\2, ":V.*:(?:Y|[123][sp])", ":[NAQ]") and \2[0].islower() and hasSimil(\2) -2>> =suggSimil(\2, ":[NA]:[fe]:[si]", True) # Incohérence avec « \1 » : « \2 » est un verbe. TEST: {{sa}} devient difficile. TEST: il me tendit {{sa}} {{pèche}}. __[s]/conf(conf_sa_fin)__ (sa) *$ @@0 <<- -1>> ça # Confusion probable : “sa” est un déterminant féminin singulier. Pour l’équivalent de “cela” ou “ceci”, écrivez : TEST: Je prends {{sa}}… __[i]/conf(conf_du_cet_au_verbe)__ (du|cet|au) +({w_2}) @@0,$ <<- morphex(\2, ":V.*:(?:Y|[123][sp])", ":[NAQ]") and \2[0].islower() and not (\2 == "sortir" and re.search(r"(?i)au", \1)) -2>> =suggSimil(\2, ":[NA]:[me]:[si]", True) # Incohérence avec « \1 » : « \2 » est un verbe. TEST: cet {{plaît}} est infectée. __[i]/conf(conf_ce_verbe)__ (ce) +(?!faire|peut)({w_2}) @@0,$ <<- morphex(\2, ":V.*:(?:Y|[123][sp])", ":[NAQ]:.:[si]|:V0e.*:3[sp]|>devoir") and \2[0].islower() and hasSimil(\2) -2>> =suggSimil(\2, ":[NA]:[me]:[si]", True) # Incohérence avec « \1 » : « \2 » est un verbe. TEST: {{ce}} {{rappelle}} n’en finit pas. __[i]/conf(conf_mon_verbe)__ (mon) +({w_2}) @@0,$ <<- morphex(\2, ":V.*:(?:Y|[123][sp])", ":[NAQ]") and \2[0].islower() -2>> =suggSimil(\2, ":[NA]:.:[si]", True) # Incohérence avec « \1 » : « \2 » est un verbe. TEST: mon {{rackette}} n’a pas porté les fruits espérés. TEST: Belle qui tient mon vit captif entre tes doigts. __[i]/conf(conf_ton_son_verbe)__ [st]on ({w_2}) @@4 <<- morph(\1, ":V.*:(?:Y|[123][sp])") and \1[0].islower() and isStart() -1>> =suggSimil(\1, ":[NA]:[me]:[si]", True) # Incohérence : « \1 » est un verbe. TEST: ton {{recèle}} a été dévoilé __[i]/conf(conf_det_plur_verbe)__ ([dcmts]es|quelques|aux|[nv]os) +({w_2}) @@0,$ <<- morphex(\2, ":V.*:(?:Y|[123][sp])", ":[NAQ]") and \2[0].islower() and not re.search(r"(?i)^quelques? soi(?:ent|t|s)\b", \0) -2>> =suggSimil(\2, ":[NA]:.:[pi]", True) # Incohérence avec « \1 » : « \2 » est un verbe. TEST: la crainte des {{attentas}} fait feu de tout bois. __[i]/conf(conf_auxdits_verbe)__ (auxdits) +({w_2}) @@0,$ <<- morphex(\2, ":V.*:(?:Y|[123][sp])", ":[NAQ]") and \2[0].islower() -2>> =suggSimil(\2, ":[NA]:[me]:[pi]", True) # Incohérence avec « \1 » : « \2 » est un verbe. TEST: elle se rendit auxdits {{jardinais}} __[i]/conf(conf_auxdites_verbe)__ (auxdites) +({w_2}) @@0,$ <<- morphex(\2, ":V.*:(?:Y|[123][sp])", ":[NAQ]") and \2[0].islower() -2>> =suggSimil(\2, ":[NA]:[fe]:[pi]", True) # Incohérence avec « \1 » : « \2 » est un verbe. TEST: auxdites {{scelles}}, il ne prêta pas attention. __[i]/conf(conf_de_la_vconj)__ de la ({w_2}) @@6 <<- morphex(\1, ":[123][sp]", ":[NAQ]") -1>> =suggSimil(\1, ":(?:[NA]:[fe]:[si])", True) # Incohérence : « \1 » est un verbe. TEST: les petits esprits de la {{pensait}} religieuse TEST: pour les insulter au sortir du seul troquet dispensateur d’oubli liquide du coin TEST: ce peut être un matériau à part entière pour alimenter discussions et délibérations. __[i]/conf(conf_de_le_nom_ou_vconj)__ (de le) ({w_2}) @@0,6 <<- morphex(\2, ":[NAQ].*:[me]", ":[YG]") and \2[0].islower() -1>> du # Incohérence : « \2 » est un nom ou un adjectif. <<- morph(\2, ":[123][sp]", False) -2>> =suggVerbInfi(\2) # Incohérence : « \2 » est une forme verbale conjuguée. TEST: {{de le}} vin ->> du TEST: il n’est pas interdit de le {{pensait}} __[i]/conf(conf_de_l_vconj)__ de l’({w_2}) @@5 <<- morphex(\1, ":[123][sp]", ":[NAQ]") -1>> =suggSimil(\1, ":[NA]:.:[si]", True) # Incohérence : « \1 » est une forme verbale conjuguée. TEST: de l’{{entra}} __[i]/conf(conf_un_verbe)__ (?<!’)un ({w_2}) @@3 <<- morph(\1, ":(?:Y|[123][sp])") and not before("(?i)(?:dont|sauf|un à) +$") -1>> =suggSimil(\1, ":[NAQ]:[me]:[si]", True) # Incohérence : « \1 » est une forme verbale conjuguée. TEST: un {{maintient}} difficile. __[i]/conf(conf_de_dès_par_vconj)__ (?:d(?:e|ès)|par) ({w_2}) @@$ <<- \1[0].islower() and morph(\1, ":V.*:[123][sp]") -1>> =suggSimil(\1, ":[NA]", True) # Incohérence : « \1 » est une forme verbale conjuguée. TEST: par {{bloque}} de données TEST: il s’agit de {{mette}} en évidence. __[i]/conf(conf_d_une_vconj)__ d’(?:une? +|)({w_2}) @@$ <<- \1[0].islower() and morphex(\1, ":V.*:[123][sp]", ":[GNA]") and not before(r"(?i)\b(?:plus|moins) +$") -1>> =suggSimil(\1, ":[NA]", True) # Incohérence : « \1 » est une forme verbale conjuguée. TEST: d’une {{habille}} femme TEST: plus d’un ont été traumatisés TEST: plus d’une sont parties aussi vite qu’elles étaient venues __[i]/conf(conf_il_on_pas_verbe)__ (?<!t’)(?:il|on) (?:l’|l(?:es?|a|eur|ui) +|[nv]ous +|)({w_2}) @@$ <<- morphex(\1, ":", ":(?:[123][sp]|O[onw]|X)|ou ") and morphex(word(-1), ":", ":3s", True) -1>> =suggSimil(\1, ":(?:3s|Oo)", False) # Incohérence : « \1 » devrait être un verbe, un pronom objet, un adverbe de négation, etc. TEST: il {{et}} parti. __[i]/conf(conf_ils_pas_verbe)__ (?<!t’)ils (?:l’|l(?:es?|a|eur|ui) +|[nv]ous +|)({w_2}) @@$ <<- morphex(\1, ":", ":(?:[123][sp]|O[onw]|X)|ou ") and morphex(word(-1), ":", ":3p", True) -1>> =suggSimil(\1, ":(?:3p|Oo)", False) # Incohérence avec « ils » : « \1 » devrait être un verbe, un pronom objet, un adverbe de négation, etc. TEST: ils {{son}} du même bois. TEST: Ils {{étai}} partie au {{restaurent}} __[i]/conf(conf_je_pas_verbe)__ je (?!soussigné)(?:l’|l(?:es?|a|eur|ui) +|[nv]ous +|)({w_2}) @@$ <<- morphex(\1, ":", ":(?:[123][sp]|O[onw]|X)") and morphex(word(-1), ":", ":1s", True) -1>> =suggSimil(\1, ":(?:1s|Oo)", False) # Incohérence avec « je » : « \1 » devrait être un verbe, un pronom objet, un adverbe de négation, etc. TEST: Je {{travail}}. __[i]/conf(conf_tu_pas_verbe)__ tu (?:l’|l(?:es?|a|eur|ui) +|[nv]ous +|)({w_2}) @@$ <<- morphex(\1, ":", ":(?:[123][sp]|O[onw]|X)") and morphex(word(-1), ":", ":(?:2s|V0e)", True) -1>> =suggSimil(\1, ":(?:2s|Oo)", False) # Incohérence avec « tu » : « \1 » devrait être un verbe, un pronom objet, un adverbe de négation, etc. TEST: tu {{croix}} que tu sais quelque chose, mais tu ne sais rien. TEST: elles seules peuvent s’en sortir. TEST: elle seule peut y arriver TEST: elle seules les femmes la font craquer |
︙ | ︙ | |||
3062 3063 3064 3065 3066 3067 3068 | # très +(bien|\w+ent) +({w2}) @@w,$ # <<- morph(\1, ":W", False) and morphex(\2, ":[123][sp]", ":[GAQW]") -2>> _ # # Incohérence avec « très » : « \2 » n’est ni un adjectif, ni un participe passé, ni un adverbe. __[i]/conf(conf_très_verbe)__ très +(?!envie)({w_2}) @@$ | | | 3062 3063 3064 3065 3066 3067 3068 3069 3070 3071 3072 3073 3074 3075 3076 | # très +(bien|\w+ent) +({w2}) @@w,$ # <<- morph(\1, ":W", False) and morphex(\2, ":[123][sp]", ":[GAQW]") -2>> _ # # Incohérence avec « très » : « \2 » n’est ni un adjectif, ni un participe passé, ni un adverbe. __[i]/conf(conf_très_verbe)__ très +(?!envie)({w_2}) @@$ <<- morphex(\1, ":(?:Y|[123][sp])", ":[AQW]") -1>> =suggSimil(\1, ":[AW]", True) # Incohérence avec « très » : « \1 » n’est ni un adjectif, ni un participe passé, ni un adverbe. TEST: Il est très {{cite}}. TEST: très {{suivit}} par ce détective TEST: il était très {{habille}} __[i]/conf(conf_trop_vconj)__ |
︙ | ︙ | |||
3107 3108 3109 3110 3111 3112 3113 | TEST: Toutes les blagues qu’on fera sur {{entreront}} dans l’histoire ! __[i]/conf(conf_si_vconj)__ si +({w2}) @@$ <<- morphex(\1, ":[123][sp]", ":[GNAQWMT]") and morphex(word(1), ":", ":D", True) | | | 3107 3108 3109 3110 3111 3112 3113 3114 3115 3116 3117 3118 3119 3120 3121 | TEST: Toutes les blagues qu’on fera sur {{entreront}} dans l’histoire ! __[i]/conf(conf_si_vconj)__ si +({w2}) @@$ <<- morphex(\1, ":[123][sp]", ":[GNAQWMT]") and morphex(word(1), ":", ":D", True) -1>> =suggSimil(\1, ":[AWGT]", True) # Incohérence avec « si » : « \1 » ne devrait pas être une forme verbale conjuguée. TEST: Ces gens sont si {{prit}} par leur travail qu’ils en oublient de vivre. TEST: Ça ira mieux demain, surtout si émerge une demande forte de la part des consommateurs. __[i]/conf(conf_de_plus_en_plus_verbe)__ de plus en plus +({w_2}) @@$ |
︙ | ︙ | |||
4043 4044 4045 4046 4047 4048 4049 | !! !! __[i](p_m_enfin)__ m’enfin <<- ~>> * __[i]/conf(conf_j_y_en_qqch)__ (j’(?:en +|y +|))({w_1}) @@0,$ <<- morphex(\2, ":", ":(?:[123][sp]|O[onw])") | | | | | | | | | | | 4043 4044 4045 4046 4047 4048 4049 4050 4051 4052 4053 4054 4055 4056 4057 4058 4059 4060 4061 4062 4063 4064 4065 4066 4067 4068 4069 4070 4071 4072 4073 4074 4075 4076 4077 4078 4079 4080 4081 4082 4083 4084 4085 4086 4087 4088 4089 4090 | !! !! __[i](p_m_enfin)__ m’enfin <<- ~>> * __[i]/conf(conf_j_y_en_qqch)__ (j’(?:en +|y +|))({w_1}) @@0,$ <<- morphex(\2, ":", ":(?:[123][sp]|O[onw])") -2>> =suggSimil(\2, ":1s", False) # Incohérence avec « \1 » : « \2 » devrait être un verbe. __[i]/conf(conf_ne_qqch)__ (n(?:e +|’))({w_1}) @@0,$ <<- morphex(\2, ":", ":(?:[123][sp]|Y|P|O[onw]|X)|>(?:[lmtsn]|surtout|guère|presque|même|tout|parfois|vraiment|réellement) ") and not re.search("(?i)-(?:ils?|elles?|[nv]ous|je|tu|on|ce)$", \2) -2>> =suggSimil(\2, ":(?:[123][sp]|Oo|Y)", False) # Incohérence avec « \1 » : « \2 » devrait être un verbe ou un pronom personnel objet. __[i]/conf(conf_n_y_en_qqch)__ (n’(?:en|y)) ({w_1}) @@0,$ <<- morphex(\2, ":", ":(?:[123][sp]|Y|P|O[onw]|X)") and not re.search("(?i)-(?:ils?|elles?|[nv]ous|je|tu|on|ce)$", \2) -2>> =suggSimil(\2, ":(?:[123][sp]|Y)", False) # Incohérence avec « \1 » : « \2 » devrait être un verbe. __[i]/conf(conf_ne_pronom_qqch)__ (ne (?:l(?:es? +|eur +|a +|’)|[nv]ous))({w_1}) @@0,$ <<- morphex(\2, ":", ":(?:[123][sp]|Y|P|O[onw]|X)") and not re.search("(?i)-(?:ils?|elles?|[nv]ous|je|tu|on|ce)$", \2) -2>> =suggSimil(\2, ":(?:[123][sp]|Y)", False) # Incohérence avec « \1 » : « \2 » devrait être un verbe. __[i]/conf(conf_me_te_se_qqch)__ ([mts]e +(?:les? |la |l’|))(?!voi(?:là|ci))({w_1}) @@0,$ <<- not re.search("(?i)^se que?", \0) and morphex(\2, ":", ":(?:[123][sp]|Y|P|Oo)|>[lmts] ") and not re.search("(?i)-(?:ils?|elles?|[nv]ous|je|tu|on|ce)$", \2) -2>> =suggSimil(\2, ":(?:[123][sp]|Oo|Y)", False) # Incohérence avec « \1 » : « \2 » devrait être un verbe ou un pronom personnel objet. __[i]/conf(conf_m_t_s_y_en_qqch)__ ([mts]’(?:en|y)) (?!voilà)({w_1}) @@0,$ <<- morphex(\2, ":", ":(?:[123][sp]|Y|P|Oo)") and not re.search("(?i)-(?:ils?|elles?|[nv]ous|je|tu|on|ce)$", \2) -2>> =suggSimil(\2, ":(?:[123][sp]|Y)", False) # Incohérence avec « \1 » : « \2 » devrait être un verbe. __[i]/conf(conf_m_s_qqch)__ ([ms]’)({w_1}) @@0,2 <<- morphex(\2, ":", ":(?:[123][sp]|Y|P)|>(?:en|y|ils?) ") and not re.search("(?i)-(?:ils?|elles?|[nv]ous|je|tu|on|ce)$", \2) -2>> =suggSimil(\2, ":(?:[123][sp]|Y)", False) # Incohérence avec « \1 » : « \2 » devrait être un verbe. __[i]/conf(conf_t_qqch)__ (t’)({w_1}) @@0,2 <<- morphex(\2, ":", ":(?:[123][sp]|Y|P)|>(?:en|y|ils?|elles?) ") and not re.search("(?i)-(?:ils?|elles?|[nv]ous|je|tu|on|ce)$", \2) -2>> =suggSimil(\2, ":(?:[123][sp]|Y)", False) # Incohérence avec « \1 » : « \2 » devrait être un verbe. __[i]/conf(conf_c_ç_qqch)__ ([cç]’)({w_1}) @@0,2 <<- morphex(\2, ":", ":[123][sp]|>(?:en|y|que?) ") and not re.search("(?i)-(?:ils?|elles?|[nv]ous|je|tu|on|dire)$", \2) -2>> =suggSimil(\2, ":3s", False) # Incohérence avec « \1 » : « \2 » devrait être un verbe. TEST: ne l’{{oubli}} pas TEST: elle ne la {{croix}} pas TEST: ils me les {{laissés}}. TEST: ne {{pensée}} rien, jamais TEST: n’en {{laissée}} que des miettes TEST: s’y {{intéressé}} |
︙ | ︙ | |||
5307 5308 5309 5310 5311 5312 5313 | TEST: comme le signe évident d’une politique volontaire TEST: c’était le signe évident d’une politique volontaire TEST: ce que c’est : le signe évident d’une politique volontaire TEST: On aura carte blanche. TEST: La seule façon de redonner sens à des notions… TEST: Les longues tresses que j’ai pris l’habitude de porter depuis quelque temps et qu’il faut cinq heures pour parfaire. TEST: Il est pieds nus. | | | 5307 5308 5309 5310 5311 5312 5313 5314 5315 5316 5317 5318 5319 5320 5321 | TEST: comme le signe évident d’une politique volontaire TEST: c’était le signe évident d’une politique volontaire TEST: ce que c’est : le signe évident d’une politique volontaire TEST: On aura carte blanche. TEST: La seule façon de redonner sens à des notions… TEST: Les longues tresses que j’ai pris l’habitude de porter depuis quelque temps et qu’il faut cinq heures pour parfaire. TEST: Il est pieds nus. TEST: des dossiers secrets défense # # //////////////////////////////////////// RÈGLES DE CONTRÔLE //////////////////////////////////////// # |
︙ | ︙ | |||
11460 11461 11462 11463 11464 11465 11466 | TEST: Veuillez vous instruire avant de contester ces mesures. TEST: C’était elle qui avait pris le contrôle. __[i]/inte(inte_je)__ ({w1})-je @@0 <<- morphex(\1, ":V", ":1[sśŝ]") -1>> =suggVerb(@, ":1ś") # Forme interrogative : « \1 » n’est pas un verbe à la 1ʳᵉ personne du singulier. | | | | | | | | | 11460 11461 11462 11463 11464 11465 11466 11467 11468 11469 11470 11471 11472 11473 11474 11475 11476 11477 11478 11479 11480 11481 11482 11483 11484 11485 11486 11487 11488 11489 11490 11491 11492 11493 11494 11495 11496 11497 11498 11499 11500 11501 11502 11503 11504 11505 11506 11507 11508 11509 11510 11511 11512 11513 11514 11515 11516 11517 11518 11519 11520 11521 11522 11523 11524 11525 11526 11527 11528 11529 11530 11531 11532 11533 11534 11535 11536 11537 11538 11539 11540 11541 11542 | TEST: Veuillez vous instruire avant de contester ces mesures. TEST: C’était elle qui avait pris le contrôle. __[i]/inte(inte_je)__ ({w1})-je @@0 <<- morphex(\1, ":V", ":1[sśŝ]") -1>> =suggVerb(@, ":1ś") # Forme interrogative : « \1 » n’est pas un verbe à la 1ʳᵉ personne du singulier. <<- not morph(\1, ":V", False) -1>> =suggSimil(\1, ":1[sśŝ]", False) # Forme interrogative : « \1 » n’est pas un verbe à la 1ʳᵉ personne du singulier. TEST: {{Vas}}-je ->> Vais TEST: {{Prit}}-je ->> Pris TEST: {{prix}}-je le temps d’y parvenir ? Oui. __[i]/inte(inte_tu)__ ({w1})-tu @@0 <<- morphex(\1, ":V", ":[ISK].*:2s") -1>> =suggVerb(@, ":2s") # Forme interrogative. « \1 » n’est pas un verbe à la 2ᵉ personne du singulier. <<- not morph(\1, ":V", False) -1>> =suggSimil(\1, ":2s", False) # Forme interrogative : « \1 » n’est pas un verbe à la 2ᵉ personne du singulier. TEST: {{Peut}}-tu ->> Peux TEST: {{peu}}-tu revenir chez moi ? __[i]/inte(inte_il_elle_on)__ ({w1})-(?:t-|)(il|elle|on) @@0,$ <<- morphex(\1, ":V", ":3s") -1>> =suggVerb(@, ":3s") # Forme interrogative : « \1 » n’est pas un verbe à la 3ᵉ personne du singulier. <<- \1 != "t" and (not \1.endswith("oilà") or \2 != "il") and morphex(\1, ":", ":V") -1>> =suggSimil(\1, ":3s", False) # Forme interrogative : « \1 » n’est pas un verbe à la 3ᵉ personne du singulier. <<- not \2.endswith(("n", "N")) and morphex(\1, ":3p", ":3s") -2>> \2s # Forme interrogative : accordez “\2” avec le verbe à la 3ᵉ personne du pluriel. TEST: {{Peux}}-il ->> Peut TEST: {{Attaques}}-t-on ->> Attaque TEST: {{Prends}}-elle ->> Prend TEST: {{Menthe}}-t-elle souvent ? TEST: {{viennent}}-{{il}} demain ? TEST: Le moteur choisi convient-il ? __[s]/inte(inte_ce)__ ({w_2})-([cs]e) @@0,$ <<- morphex(\1, ":V", ":(?:3s|V0e.*:3p)") -1>> =suggVerb(@, ":3s") # Forme interrogative : « \1 » n’est pas un verbe à la 3ᵉ personne du singulier.|http://bdl.oqlf.gouv.qc.ca/bdl/gabarit_bdl.asp?id=4132 <<- morphex(\1, ":", ":V") -1>> =suggSimil(\1, ":3s", False) # Forme interrogative : « \1 » n’est pas un verbe à la 3ᵉ personne du singulier.|http://bdl.oqlf.gouv.qc.ca/bdl/gabarit_bdl.asp?id=4132 <<- \2 == "se" -2>> ce # Forme interrogative. Confusion.|http://bdl.oqlf.gouv.qc.ca/bdl/gabarit_bdl.asp?id=4132 TEST: était-{{se}} cela, la vérité ineffable ? TEST: {{étai}}-ce notre destinée de souffrir ? TEST: étaient-{{se}} ces hommes-là qui allaient nous guider dans les montagnes ? TEST: Était-ce des femmes de ce pays ? TEST: Eh ! dit Athos, ne sont-ce pas des braconniers qu’on arrête là-bas ? __[i]/inte(inte_nous)__ ({w1})-nous @@0 <<- morphex(\1, ":V", ":(?:1p|E:2[sp])") -1>> =suggVerb(@, ":1p") # Forme interrogative ou impérative incorrecte. <<- morphex(\1, ":", ":V|>chez ") -1>> =suggSimil(\1, ":1p", False) # Forme interrogative ou impérative incorrecte. TEST: {{Prendront}}-nous ->> Prendrons TEST: {{Attendront}}-nous le train ->> Attendrons __[i]/inte(inte_vous)__ ({w1})-vous @@0 <<- morphex(\1, ":V", ":2p") -1>> =suggVerb(@, ":2p") # Forme interrogative ou impérative incorrecte. <<- not morph(\1, ":V|>chez ", False) -1>> =suggSimil(\1, ":2p", False) # Forme interrogative ou impérative incorrecte. TEST: {{Attaquait}}-vous ->> Attaquiez TEST: Elle a de nombreux rendez-vous ce matin. TEST: êtes-vous là ? __[i]/inte(inte_ils_elles)__ ({w1})-(?:ils|elles) @@0 <<- morphex(\1, ":V", ":3p") and spell(\1) -1>> =suggVerb(@, ":3p") # Forme interrogative : « \1 » n’est pas un verbe à la 3ᵉ personne du pluriel. <<- \1 != "t" and not morph(\1, ":V", False) and spell(\1) -1>> =suggSimil(\1, ":3p", False) # Forme interrogative : « \1 » n’est pas un verbe à la 3ᵉ personne du pluriel. TEST: {{attaquant}}-ils ->> attaquent TEST: {{prendrons}}-elles un verre avec moi ? !!!! Verbe auxiliaire |
︙ | ︙ |