Overview
| Comment: | [core][py] comments for spell suggestion engine |
|---|---|
| Downloads: | Tarball | ZIP archive | SQL archive |
| Timelines: | family | ancestors | descendants | both | trunk | core |
| Files: | files | file ages | folders |
| SHA3-256: |
6edb221239a6d579aa8857c46ef396eb |
| User & Date: | olr on 2017-09-13 09:55:34 |
| Other Links: | manifest | tags |
Context
|
2017-09-13
| ||
| 12:56 | [core] ibdawg: suggest() try by removing chars check-in: 0346ff5361 user: olr tags: trunk, core | |
| 09:55 | [core][py] comments for spell suggestion engine check-in: 6edb221239 user: olr tags: trunk, core | |
|
2017-09-12
| ||
| 21:17 | [fr] màj: locutions considérées comme prépositions check-in: ba9c538626 user: olr tags: trunk, fr | |
Changes
Modified gc_core/py/ibdawg.py from [9237f7174c] to [a443118d5b].
| ︙ | |||
186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 | 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 | + + |
def suggest (self, sWord, nMaxSugg=10):
"returns a set of suggestions for <sWord>"
# first, we check for similar words
#return self._suggestWithCrushedUselessChars(cp.clearWord(sWord))
aSugg = self._suggest(sWord)
if not aSugg:
print("try without first char")
aSugg.update(self._suggest(sWord[1:]))
if not aSugg:
print("crush useless chars")
aSugg.update(self._suggestWithCrushedUselessChars(cp.clearWord(sWord)))
return sorted(aSugg, key=lambda sSugg: cp.distanceBetweenWords(sWord, sSugg))
def _suggest (self, sRemain, nDeep=0, iAddr=0, sNewWord="", bAvoidLoop=False):
"returns a set of suggestions"
# recursive function
aSugg = set()
|
| ︙ | |||
274 275 276 277 278 279 280 281 282 283 284 285 286 287 | 276 277 278 279 280 281 282 283 284 285 286 287 288 289 290 | + |
"generator: yield similar char of <cChar> and address of the following node"
for nVal, jAddr in self._getArcs(iAddr):
if self.dCharVal.get(nVal, None) in cp.aVovels:
yield (self.dCharVal[nVal], jAddr)
yield from self._getSimilarArcs(cChar, iAddr)
def drawPath (self, sWord, iAddr=0):
"show the path taken by <sWord> in the graph"
cChar = sWord[0:1] if sWord else " "
iPos = -1
n = 0
print(cChar + ": ", end="")
for nVal, jAddr in self._getArcs(iAddr):
if nVal in self.dCharVal:
print(self.dCharVal[nVal], end="")
|
| ︙ |