15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
|
dDefaultDictionaries = {
"fr": "fr.bdic",
"en": "en.bdic"
}
class Spellchecker ():
def __init__ (self, sLangCode, sfMainDic="", sfExtendedDic="", sfPersonalDic=""):
"returns True if the main dictionary is loaded"
self.sLangCode = sLangCode
if not sfMainDic:
sfMainDic = dDefaultDictionaries.get(sLangCode, "")
self.oMainDic = self._loadDictionary(sfMainDic)
self.oExtendedDic = self._loadDictionary(sfExtendedDic)
self.oPersonalDic = self._loadDictionary(sfPersonalDic)
return bool(self.oMainDic)
def _loadDictionary (self, sfDictionary):
"returns an IBDAWG object"
if not sfDictionary:
return None
try:
return ibdawg.IBDAWG(sfDictionary)
except:
print("Error: <" + sDicName + "> not loaded.")
traceback.print_exc()
return None
def setMainDictionary (self, sfDictionary):
"returns True if the dictionary is loaded"
self.oMainDic = self._loadDictionary(sfDictionary)
return bool(self.oMainDic)
|
|
<
|
|
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
|
dDefaultDictionaries = {
"fr": "fr.bdic",
"en": "en.bdic"
}
class SpellChecker ():
def __init__ (self, sLangCode, sfMainDic="", sfExtendedDic="", sfPersonalDic=""):
"returns True if the main dictionary is loaded"
self.sLangCode = sLangCode
if not sfMainDic:
sfMainDic = dDefaultDictionaries.get(sLangCode, "")
self.oMainDic = self._loadDictionary(sfMainDic)
self.oExtendedDic = self._loadDictionary(sfExtendedDic)
self.oPersonalDic = self._loadDictionary(sfPersonalDic)
def _loadDictionary (self, sfDictionary):
"returns an IBDAWG object"
if not sfDictionary:
return None
try:
return ibdawg.IBDAWG(sfDictionary)
except:
print("Error: <" + sfDictionary + "> not loaded.")
traceback.print_exc()
return None
def setMainDictionary (self, sfDictionary):
"returns True if the dictionary is loaded"
self.oMainDic = self._loadDictionary(sfDictionary)
return bool(self.oMainDic)
|
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
|
return True
if self.oPersonalDic and self.oPersonalDic.isValidToken(sToken):
return True
return False
def isValid (self, sWord):
"checks if sWord is valid (different casing tested if the first letter is a capital)"
if self.oMainDic.isValid(sToken):
return True
if self.oExtendedDic and self.oExtendedDic.isValid(sToken):
return True
if self.oPersonalDic and self.oPersonalDic.isValid(sToken):
return True
return False
def lookup (self, sWord):
"checks if sWord is in dictionary as is (strict verification)"
if self.oMainDic.lookup(sToken):
return True
if self.oExtendedDic and self.oExtendedDic.lookup(sToken):
return True
if self.oPersonalDic and self.oPersonalDic.lookup(sToken):
return True
return False
def getMorph (self, sWord):
"retrieves morphologies list, different casing allowed"
lResult = self.oMainDic.getMorph(sToken)
if self.oExtendedDic:
lResult.extends(self.oExtendedDic.getMorph(sToken))
if self.oPersonalDic:
lResult.extends(self.oPersonalDic.getMorph(sToken))
return lResult
def suggest (self, sWord, nSuggLimit=10):
"generator: returns 1,2 or 3 lists of suggestions"
yield self.oMainDic.suggest(sWord, nSuggLimit)
if self.oExtendedDic:
yield self.oExtendedDic.suggest(sWord, nSuggLimit)
if self.oPersonalDic:
yield self.oPersonalDic.suggest(sWord, nSuggLimit)
def select (self, sPattern=""):
"generator: returns all entries which morphology fits <sPattern>"
yield from self.oMainDic.select(sPattern)
if self.oExtendedDic:
yield from self.oExtendedDic.select(sPattern)
if self.oPersonalDic:
yield from self.oPersonalDic.select(sPattern)
|
|
|
|
|
|
|
|
|
|
|
>
>
>
>
>
>
>
>
>
|
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
|
return True
if self.oPersonalDic and self.oPersonalDic.isValidToken(sToken):
return True
return False
def isValid (self, sWord):
"checks if sWord is valid (different casing tested if the first letter is a capital)"
if self.oMainDic.isValid(sWord):
return True
if self.oExtendedDic and self.oExtendedDic.isValid(sWord):
return True
if self.oPersonalDic and self.oPersonalDic.isValid(sWord):
return True
return False
def lookup (self, sWord):
"checks if sWord is in dictionary as is (strict verification)"
if self.oMainDic.lookup(sWord):
return True
if self.oExtendedDic and self.oExtendedDic.lookup(sWord):
return True
if self.oPersonalDic and self.oPersonalDic.lookup(sWord):
return True
return False
def getMorph (self, sWord):
"retrieves morphologies list, different casing allowed"
lResult = self.oMainDic.getMorph(sWord)
if self.oExtendedDic:
lResult.extend(self.oExtendedDic.getMorph(sWord))
if self.oPersonalDic:
lResult.extend(self.oPersonalDic.getMorph(sWord))
return lResult
def suggest (self, sWord, nSuggLimit=10):
"generator: returns 1, 2 or 3 lists of suggestions"
yield self.oMainDic.suggest(sWord, nSuggLimit)
if self.oExtendedDic:
yield self.oExtendedDic.suggest(sWord, nSuggLimit)
if self.oPersonalDic:
yield self.oPersonalDic.suggest(sWord, nSuggLimit)
def select (self, sPattern=""):
"generator: returns all entries which morphology fits <sPattern>"
yield from self.oMainDic.select(sPattern)
if self.oExtendedDic:
yield from self.oExtendedDic.select(sPattern)
if self.oPersonalDic:
yield from self.oPersonalDic.select(sPattern)
def drawPath (self, sWord):
self.oMainDic.drawPath(sWord)
if self.oExtendedDic:
print("-----")
self.oExtendedDic.drawPath(sWord)
if self.oPersonalDic:
print("-----")
self.oPersonalDic.drawPath(sWord)
|