Overview
Comment: | [core] morph and analyse: parameters to check slice instead of the full value |
---|---|
Downloads: | Tarball | ZIP archive | SQL archive |
Timelines: | family | ancestors | descendants | both | core | rg |
Files: | files | file ages | folders |
SHA3-256: |
366a0b99695ce2aaa17b061b4b9828d2 |
User & Date: | olr on 2018-06-27 07:14:23 |
Other Links: | branch diff | manifest | tags |
Context
2018-06-27
| ||
07:35 | [core] morph and analyse: parameters to check slice instead of the full value check-in: 21d482a03e user: olr tags: core, rg | |
07:14 | [core] morph and analyse: parameters to check slice instead of the full value check-in: 366a0b9969 user: olr tags: core, rg | |
2018-06-26
| ||
20:19 | [build] graph rules reader: prepare function for text processor check-in: e9e1583710 user: olr tags: build, rg | |
Changes
Modified gc_core/py/lang_core/gc_engine.py from [f2e9903477] to [c252d197b9].
︙ | ︙ | |||
988 989 990 991 992 993 994 | self.lToken.clear() self.lToken = lNewToken #### Analyse tokens | | > > > > > | | > | | 988 989 990 991 992 993 994 995 996 997 998 999 1000 1001 1002 1003 1004 1005 1006 1007 1008 1009 1010 1011 1012 1013 1014 1015 1016 1017 1018 1019 1020 1021 1022 1023 1024 1025 1026 1027 1028 1029 1030 1031 1032 1033 | self.lToken.clear() self.lToken = lNewToken #### Analyse tokens def g_morph (dToken, sPattern, sNegPattern="", nLeft=None, nRight=None, bMemorizeMorph=True): "analyse a token, return True if <sNegPattern> not in morphologies and <sPattern> in morphologies" if "lMorph" in dToken: lMorph = dToken["lMorph"] else: if nLeft is not None: lMorph = _oSpellChecker.getMorph(dToken["sValue"][slice(nLeft, nRight)]) if bMemorizeMorph: dToken["lMorph"] = lMorph else: lMorph = _oSpellChecker.getMorph(dToken["sValue"]) if not lMorph: return False # check negative condition if sNegPattern: if sNegPattern == "*": # all morph must match sPattern zPattern = re.compile(sPattern) return all(zPattern.search(sMorph) for sMorph in lMorph) else: zNegPattern = re.compile(sNegPattern) if any(zNegPattern.search(sMorph) for sMorph in lMorph): return False # search sPattern zPattern = re.compile(sPattern) return any(zPattern.search(sMorph) for sMorph in lMorph) def g_analyse (dToken, sPattern, sNegPattern="", nLeft=None, nRight=None, bMemorizeMorph=True): "analyse a token, return True if <sNegPattern> not in morphologies and <sPattern> in morphologies (disambiguation off)" sValue = dToken["sValue"] if nLeft is not None else dToken["sValue"][slice(nLeft, nRight)] lMorph = _oSpellChecker.getMorph(sValue) if not lMorph: return False # check negative condition if sNegPattern: if sNegPattern == "*": zPattern = re.compile(sPattern) return all(zPattern.search(sMorph) for sMorph in lMorph) |
︙ | ︙ |