Grammalecte  Diff

Differences From Artifact [a6af4bb96b]:

To Artifact [b0bfbd049d]:


58
59
60
61
62
63
64
65

66
67
68

69
70
71
72
73
74
75
76
77

78
79
80
81
82
83
84
58
59
60
61
62
63
64

65
66
67

68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85







-
+


-
+









+







            return
        self.aAllSugg.add(sSugg)
        nSimDist = st.distanceSift4(self.sSimplifiedWord, st.simplifyWord(sSugg))
        #st.showDistance(self.sSimplifiedWord, st.simplifyWord(sSugg))
        if nSimDist < self.nMinDist:
            self.nMinDist = nSimDist
        if nSimDist <= (self.nMinDist + 1):
            nDist = min(st.distanceDamerauLevenshtein(self.sWord, sSugg), st.distanceDamerauLevenshtein(self.sSimplifiedWord, st.simplifyWord(sSugg)))
            nDist = min(st.distanceDamerauLevenshteinX(self.sWord, sSugg), st.distanceDamerauLevenshteinX(self.sSimplifiedWord, st.simplifyWord(sSugg)))
            #print(">", end="")
            #st.showDistance(self.sWord, sSugg)
            self.dAccSugg[sSugg] = min(nDist, nSimDist+1)
            self.dAccSugg[sSugg] = nDist  if " " not in sSugg  else nDist+1
            if len(self.dAccSugg) > self.nTempSuggLimit:
                self.nDistLimit = -1  # suggest() ends searching when this variable = -1
        self.nDistLimit = min(self.nDistLimit, self.nMinDist+1)

    def getSuggestions (self):
        "return a list of suggestions"
        # sort according to distance
        lRes = []
        lResTmp = sorted(self.dAccSugg.items(), key=lambda x: (x[1], x[0]))
        #print("\n>", lResTmp)
        for i in range(min(self.nSuggLimit, len(lResTmp))):
            lRes.append(lResTmp[i][0])
            #st.showDistance(self.sWord, lResTmp[i][0])
        # casing
        if self.sWord.isupper():
            lRes = list(dict.fromkeys(map(lambda sSugg: sSugg.upper(), lRes)))
        elif self.sWord[0:1].isupper():