Overview
Comment: | [core] darg: anti-patterns for morphologies |
---|---|
Downloads: | Tarball | ZIP archive | SQL archive |
Timelines: | family | ancestors | descendants | both | core | rg |
Files: | files | file ages | folders |
SHA3-256: |
47ae72e7f9584b42b16f79b8513182fa |
User & Date: | olr on 2018-06-06 07:47:32 |
Other Links: | branch diff | manifest | tags |
Context
2018-06-06
| ||
09:30 | [core] darg: merge morph and morphex functions check-in: 4134a01a49 user: olr tags: core, rg | |
07:47 | [core] darg: anti-patterns for morphologies check-in: 47ae72e7f9 user: olr tags: core, rg | |
06:00 | [build][core] DARG: syntax change: ~~ replaced by @ check-in: 2fd61da75f user: olr tags: core, build, rg | |
Changes
Modified gc_core/py/lang_core/gc_engine.py from [dbebb9c217] to [5975c86814].
︙ | ︙ | |||
693 694 695 696 697 698 699 | for sRegex in dNode["<re_value>"]: if re.search(sRegex, dToken["sValue"]): #print("value regex matching: ", sRegex) yield dGraph[dNode["<re_value>"][sRegex]] # regex morph arcs if "<re_morph>" in dNode: for sRegex in dNode["<re_morph>"]: | > > | > > > > > > | | > > > > | > | 693 694 695 696 697 698 699 700 701 702 703 704 705 706 707 708 709 710 711 712 713 714 715 716 717 718 719 720 721 722 723 | for sRegex in dNode["<re_value>"]: if re.search(sRegex, dToken["sValue"]): #print("value regex matching: ", sRegex) yield dGraph[dNode["<re_value>"][sRegex]] # regex morph arcs if "<re_morph>" in dNode: for sRegex in dNode["<re_morph>"]: if "¬" not in sRegex: # no anti-pattern if any(re.search(sRegex, sMorph) for sMorph in _oSpellChecker.getMorph(dToken["sValue"])): yield dGraph[dNode["<re_morph>"][sRegex]] else: # there is an anti-pattern sPattern, sNegPattern = sRegex.split("¬", 1) if sNegPattern == "*": # all morphologies must match with <sPattern> if all(re.search(sPattern, sMorph) for sMorph in _oSpellChecker.getMorph(dToken["sValue"])): yield dGraph[dNode["<re_morph>"][sRegex]] else: if sNegPattern and any(re.search(sNegPattern, sMorph) for sMorph in _oSpellChecker.getMorph(dToken["sValue"])): continue if any(re.search(sPattern, sMorph) for sMorph in _oSpellChecker.getMorph(dToken["sValue"])): yield dGraph[dNode["<re_morph>"][sRegex]] def parse (self, dPriority, sCountry="${country_default}", dOptions=None, bShowRuleId=False, bDebug=False, bContext=False): dErr = {} dPriority = {} # Key = position; value = priority dOpt = _dOptions if not dOptions else dOptions lPointer = [] bChange = False |
︙ | ︙ |
Modified gc_lang/fr/rules_graph.grx from [1d983c8b66] to [1dc1051949].
︙ | ︙ | |||
66 67 68 69 70 71 72 | >faire plaisirs <<- -2>> plaisir # Faire plaisir : dans cette locution, “plaisir” doit être au singulier. TEST: Ça me fait {{plaisirs}}. __test__ | | | 66 67 68 69 70 71 72 73 74 75 76 | >faire plaisirs <<- -2>> plaisir # Faire plaisir : dans cette locution, “plaisir” doit être au singulier. TEST: Ça me fait {{plaisirs}}. __test__ je ~préf[éè]r [que|qu’] @(?::Os|:M)¬:X @:I <<- morph(\1, ":V", False) and morphex(\4, ":Os|:M", ":X") -5>> SUBJONCTIF # SUBJONCTIF. TEST: je préférerais qu’Isabelle {{est}} partie. |