186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
|
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:
aSugg.update(self._suggest(sWord[1:]))
if not aSugg:
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()
|
>
>
|
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
|
"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):
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="")
|
>
|
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="")
|