96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
|
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
|
-
+
|
self.bCommunityDic = False
def deactivatePersonalDictionary (self):
"deactivate personal dictionary"
self.bPersonalDic = False
# Default suggestions
# Lexicographer
def loadLexicographer (self, sLangCode):
"load default suggestion module for <sLangCode>"
try:
self.lexicographer = importlib.import_module(".lexgraph_"+sLangCode, "grammalecte.graphspell")
except ImportError:
print("No suggestion module for language <"+sLangCode+">")
|
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
|
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
|
-
+
+
+
+
+
+
+
+
+
+
+
|
for sElem in self.lexicographer.split(sWord):
if sElem:
lMorph = self.getMorph(sElem)
sLex = self.lexicographer.analyze(sElem)
if sLex:
aRes = [ (" | ".join(lMorph), sLex) ]
else:
aRes = [ (sMorph, self.lexicographer.formatTags(sMorph)) for sMorph in lMorph ]
aRes = [ (sMorph, self.lexicographer.readableMorph(sMorph)) for sMorph in lMorph ]
if aRes:
lWordAndMorph.append((sElem, aRes))
return lWordAndMorph
def readableMorph (self, sMorph):
if not self.lexicographer:
return ""
return self.lexicographer.readableMorph(sMorph)
def setLabelsOnToken (dToken):
if not self.lexicographer:
return
self.lexicographer.setLabelsOnToken(dToken)
# Storage
def activateStorage (self):
"store all lemmas and morphologies retrieved from the word graph"
self.bStorage = True
|
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
|
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
|
-
+
|
if sWord not in self._dLemmas:
self.getMorph(sWord)
return self._dLemmas[sWord]
return { s[1:s.find("/")] for s in self.getMorph(sWord) }
def suggest (self, sWord, nSuggLimit=10):
"generator: returns 1, 2 or 3 lists of suggestions"
if self.lexicographer.dSugg:
if self.lexicographer:
if sWord in self.lexicographer.dSugg:
yield self.lexicographer.dSugg[sWord].split("|")
elif sWord.istitle() and sWord.lower() in self.lexicographer.dSugg:
lRes = self.lexicographer.dSugg[sWord.lower()].split("|")
yield list(map(lambda sSugg: sSugg[0:1].upper()+sSugg[1:], lRes))
else:
yield self.oMainDic.suggest(sWord, nSuggLimit, True)
|