Overview
Comment: | [core][py] ibdawg: debugging |
---|---|
Downloads: | Tarball | ZIP archive | SQL archive |
Timelines: | family | ancestors | descendants | both | trunk | core |
Files: | files | file ages | folders |
SHA3-256: |
cbe1422160e68702fd792c2cc8edd0e9 |
User & Date: | olr on 2017-11-06 14:21:13 |
Other Links: | manifest | tags |
Context
2017-11-06
| ||
17:21 | [core][py] timer for testing check-in: 8ddc15536e user: olr tags: trunk, core | |
14:21 | [core][py] ibdawg: debugging check-in: cbe1422160 user: olr tags: trunk, core | |
11:31 | [fr] faux positif: se dire (part. passé) check-in: 57d0adc08a user: olr tags: trunk, fr | |
Changes
Modified gc_core/py/ibdawg.py from [816500e455] to [08bbb9ff98].
1 2 3 4 5 6 7 8 9 10 11 12 | #!python3 import os import traceback import pkgutil import re from itertools import chain from . import str_transform as st from . import char_player as cp from .echo import echo | > > > < < < < | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 | #!python3 import os import traceback import pkgutil import re from itertools import chain #import logging #logging.basicConfig(filename="suggestions.log", level=logging.DEBUG) from . import str_transform as st from . import char_player as cp from .echo import echo class IBDAWG: """INDEXABLE BINARY DIRECT ACYCLIC WORD GRAPH""" def __init__ (self, sDicName): self.by = pkgutil.get_data(__package__, "_dictionaries/" + sDicName) if not self.by: |
︙ | ︙ | |||
205 206 207 208 209 210 211 | # we add what we removed return list(map(lambda sSug: sPfx + sSug + sSfx, aSugg)) return aSugg def _suggest (self, sRemain, nMaxDel=0, nMaxHardRepl=0, nDeep=0, iAddr=0, sNewWord="", bAvoidLoop=False): "returns a set of suggestions" # recursive function | | | > | 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 | # we add what we removed return list(map(lambda sSug: sPfx + sSug + sSfx, aSugg)) return aSugg def _suggest (self, sRemain, nMaxDel=0, nMaxHardRepl=0, nDeep=0, iAddr=0, sNewWord="", bAvoidLoop=False): "returns a set of suggestions" # recursive function #logging.info((nDeep * " ") + sNewWord + ":" + sRemain) aSugg = set() if not sRemain: if int.from_bytes(self.byDic[iAddr:iAddr+self.nBytesArc], byteorder='big') & self._finalNodeMask: #logging.info((nDeep * " ") + "__" + sNewWord + "__") aSugg.add(sNewWord) for sTail in self._getTails(iAddr): #logging.info((nDeep * " ") + "__" + sNewWord+sTail + "__") aSugg.add(sNewWord+sTail) return aSugg cCurrent = sRemain[0:1] for cChar, jAddr in self._getSimilarArcs(cCurrent, iAddr): aSugg.update(self._suggest(sRemain[1:], nMaxDel, nMaxHardRepl, nDeep+1, jAddr, sNewWord+cChar)) if not bAvoidLoop: # avoid infinite loop if cCurrent == sRemain[1:2]: |
︙ | ︙ |