Overview
| Comment: | [graphspell] default suggestions |
|---|---|
| Downloads: | Tarball | ZIP archive | SQL archive |
| Timelines: | family | ancestors | descendants | both | new_feature | graphspell | rg |
| Files: | files | file ages | folders |
| SHA3-256: |
8974c2f6d0603030da1dfa1899b41041 |
| User & Date: | olr on 2018-06-02 18:58:03 |
| Other Links: | branch diff | manifest | tags |
Context
|
2018-06-02
| ||
| 18:58 | [graphspell] add fr module + [core] code clarification: bShowRuleId check-in: 31ddfb6e1a user: olr tags: core, graphspell, rg | |
| 18:58 | [graphspell] default suggestions check-in: 8974c2f6d0 user: olr tags: new_feature, graphspell, rg | |
| 15:21 | [build][core][bug] generate rules with multiple tokens check-in: 667266b248 user: olr tags: core, build, rg | |
Changes
Modified graphspell/spellchecker.py from [2c7f3d8dbe] to [6e35967f77].
1 2 3 4 5 6 7 8 9 10 | # Spellchecker # Wrapper for the IBDAWG class. # Useful to check several dictionaries at once. # To avoid iterating over a pile of dictionaries, it is assumed that 3 are enough: # - the main dictionary, bundled with the package # - the extended dictionary # - the community dictionary, added by an organization # - the personal dictionary, created by the user for its own convenience | | | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 |
# Spellchecker
# Wrapper for the IBDAWG class.
# Useful to check several dictionaries at once.
# To avoid iterating over a pile of dictionaries, it is assumed that 3 are enough:
# - the main dictionary, bundled with the package
# - the extended dictionary
# - the community dictionary, added by an organization
# - the personal dictionary, created by the user for its own convenience
import importlib
import traceback
from . import ibdawg
from . import tokenizer
dDefaultDictionaries = {
|
| ︙ | ︙ | |||
32 33 34 35 36 37 38 39 40 41 42 43 44 45 |
self.oExtendedDic = self._loadDictionary(sfExtendedDic)
self.oCommunityDic = self._loadDictionary(sfCommunityDic)
self.oPersonalDic = self._loadDictionary(sfPersonalDic)
self.bExtendedDic = bool(self.oExtendedDic)
self.bCommunityDic = bool(self.oCommunityDic)
self.bPersonalDic = bool(self.oPersonalDic)
self.oTokenizer = None
# storage
self.bStorage = False
self._dMorphologies = {} # key: flexion, value: list of morphologies
self._dLemmas = {} # key: flexion, value: list of lemmas
def _loadDictionary (self, source, bNecessary=False):
"returns an IBDAWG object"
| > > > | 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 |
self.oExtendedDic = self._loadDictionary(sfExtendedDic)
self.oCommunityDic = self._loadDictionary(sfCommunityDic)
self.oPersonalDic = self._loadDictionary(sfPersonalDic)
self.bExtendedDic = bool(self.oExtendedDic)
self.bCommunityDic = bool(self.oCommunityDic)
self.bPersonalDic = bool(self.oPersonalDic)
self.oTokenizer = None
# Default suggestions
self.dDefaultSugg = None
self.loadSuggestions(sLangCode)
# storage
self.bStorage = False
self._dMorphologies = {} # key: flexion, value: list of morphologies
self._dLemmas = {} # key: flexion, value: list of lemmas
def _loadDictionary (self, source, bNecessary=False):
"returns an IBDAWG object"
|
| ︙ | ︙ | |||
99 100 101 102 103 104 105 106 107 108 109 110 111 112 |
def deactivateCommunityDictionary (self):
self.bCommunityDic = False
def deactivatePersonalDictionary (self):
self.bPersonalDic = False
# Storage
def activateStorage (self):
self.bStorage = True
def deactivateStorage (self):
| > > > > > > > > > > > | 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 |
def deactivateCommunityDictionary (self):
self.bCommunityDic = False
def deactivatePersonalDictionary (self):
self.bPersonalDic = False
# Default suggestions
def loadSuggestions (self, sLangCode):
try:
suggest_module = importlib.import_module("."+sLangCode, "graphspell")
except:
print("No suggestion module for language <"+sLangCode+">")
return
self.dDefaultSugg = suggest_module.dSugg
# Storage
def activateStorage (self):
self.bStorage = True
def deactivateStorage (self):
|
| ︙ | ︙ | |||
208 209 210 211 212 213 214 |
if sWord not in self._dLemmas:
self.getMorph(sWord)
return self._dLemmas[sWord]
return set([ 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"
| > > > | | 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 |
if sWord not in self._dLemmas:
self.getMorph(sWord)
return self._dLemmas[sWord]
return set([ 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.dDefaultSugg and sWord in self.dDefaultSugg:
yield self.dDefaultSugg[sWord].split("|")
else:
yield self.oMainDic.suggest(sWord, nSuggLimit)
if self.bExtendedDic:
yield self.oExtendedDic.suggest(sWord, nSuggLimit)
if self.bCommunityDic:
yield self.oCommunityDic.suggest(sWord, nSuggLimit)
if self.bPersonalDic:
yield self.oPersonalDic.suggest(sWord, nSuggLimit)
|
| ︙ | ︙ |