Overview
Comment: | [core] ibdawg: select entries from dictionary (can uncompress the full dictionary) |
---|---|
Downloads: | Tarball | ZIP archive | SQL archive |
Timelines: | family | ancestors | descendants | both | trunk | core | new_feature |
Files: | files | file ages | folders |
SHA3-256: |
4a53af847f68e7f968b21612d373c758 |
User & Date: | olr on 2017-06-30 19:38:27 |
Other Links: | manifest | tags |
Context
2017-07-01
| ||
03:28 | [core] ibdawg: use regex in select() check-in: ea16ae6a5b user: olr tags: trunk, core | |
2017-06-30
| ||
19:38 | [core] ibdawg: select entries from dictionary (can uncompress the full dictionary) check-in: 4a53af847f user: olr tags: trunk, core, new_feature | |
08:15 | [fx] special message in gc_panel check-in: f1ea6bc055 user: olr tags: trunk, v0.5.17.1, fx | |
Changes
Modified cli.py from [2ae9df701e] to [ed7458a4d3].
︙ | |||
17 18 19 20 21 22 23 24 25 26 27 28 29 30 | 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 | + + | "Je suit sidéré par la brutales arrogance de cette homme-là. Quelle salopard ! Un escrocs de la pire espece. " \ "Quant sera t’il châtiés pour ses mensonge ? Merde ! J’en aie marre." _HELP = """ /help /h show this text ?word1 [word2] ... words analysis !word suggestion >word draw path of word in the word graph =filter show all entries whose morphology fits to filter /lopt /lo list options /+ option1 [option2] ... activate grammar checking options /- option1 [option2] ... deactivate grammar checking options /lrules [pattern] /lr list rules /--rule1 [rule2] ... deactivate grammar checking rule /++rule1 [rule2] ... reactivate grammar checking rule /quit /q exit |
︙ | |||
206 207 208 209 210 211 212 213 214 215 216 217 218 219 | 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 | + + + | echo(" {:<32} {}".format(sMorph, oLexGraphe.formatTags(sMorph))) elif sText.startswith("!"): for sWord in sText[1:].strip().split(): if sWord: echo(" | ".join(oDict.suggest(sWord))) elif sText.startswith(">"): oDict.drawPath(sText[1:].strip()) elif sText.startswith("="): for sRes in oDict.select(sText[1:].strip()): echo(sRes) elif sText.startswith("/+ "): gce.setOptions({ opt:True for opt in sText[3:].strip().split() if opt in gce.getOptions() }) echo("done") elif sText.startswith("/- "): gce.setOptions({ opt:False for opt in sText[3:].strip().split() if opt in gce.getOptions() }) echo("done") elif sText.startswith("/-- "): |
︙ |
Modified gc_core/py/ibdawg.py from [cbe111edf6] to [1de2d3f67f].
︙ | |||
279 280 281 282 283 284 285 286 287 288 289 290 291 292 293 294 295 296 297 | 279 280 281 282 283 284 285 286 287 288 289 290 291 292 293 294 295 296 297 298 299 300 301 302 303 304 305 306 307 308 309 310 311 312 313 314 | + + + + + + + + + + + + + + + + + | n += 1 if not sWord: return if iPos >= 0: print("\n "+ " " * iPos + "|") self.drawPath(sWord[1:], iNextNodeAddr) def select (self, sFilter=""): "generator: returns all entries which morphology fits <sFilter>" print("Filter: " + sFilter) yield from self._select1(sFilter, 0, "") # def morph (self, sWord): # is defined in __init__ # VERSION 1 def _select1 (self, sFilter, iAddr, sWord): # recursive generator for nVal, jAddr in self._getArcs1(iAddr): if nVal < self.nChar: # simple character yield from self._select1(sFilter, jAddr, sWord + self.lArcVal[nVal]) else: sEntry = sWord + "\t" + self.funcStemming(sWord, self.lArcVal[nVal]) for nMorphVal, _ in self._getArcs1(jAddr): if not sFilter or sFilter in self.lArcVal[nMorphVal]: yield sEntry + "\t" + self.lArcVal[nMorphVal] def _morph1 (self, sWord): "returns morphologies of sWord" iAddr = 0 for c in sWord: if c not in self.dChar: return [] iAddr = self._lookupArcNode(self.dChar[c], iAddr) |
︙ |