Overview
Comment: | [core] spellchecker wrapper |
---|---|
Downloads: | Tarball | ZIP archive | SQL archive |
Timelines: | family | ancestors | descendants | both | trunk | core | new_feature |
Files: | files | file ages | folders |
SHA3-256: |
abf7b36236ba0406f5d1709f43dee263 |
User & Date: | olr on 2017-06-26 07:03:15 |
Other Links: | manifest | tags |
Context
2017-06-26
| ||
07:36 | [core] ibdawg: variable renamed check-in: 6d320f3f8d user: olr tags: trunk, core | |
07:03 | [core] spellchecker wrapper check-in: abf7b36236 user: olr tags: trunk, core, new_feature | |
06:54 | [core] comment update check-in: 6288449780 user: olr tags: trunk, core | |
Changes
Added gc_core/py/spellchecker.py version [4ad06f57bc].
> > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 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 49 50 51 52 53 54 55 56 57 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 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 125 126 127 128 129 130 131 132 133 134 | # Spellchecker # Wrapper for the IBDAWG class. # Useful to check several dictionaries at once. import ibdawg dDictionaries = { "fr": "French.bdic", "en": "English.bdic" } class Spellchecker (): def __init__ (self, sLangCode): self.sLangCode = sLangCode self.oMainDic = None if sLangCode in dDictionaries: self.oMainDic = ibdawg.IBDAWG(dDictionaries[sLangCode]) self.lOtherDic = [] return bool(self.oMainDic) def setMainDictionary (self, sDicName): try: self.oMainDic = ibdawg.IBDAWG(sDicName) return True except: print("Error: <" + sDicName + "> not set as main dictionary.") return False def addDictionary (self, sDicName): try: self.lOtherDic.append(ibdawg.IBDAWG(sDicName)) return True except: print("Error: <" + sDicName + "> not added to the list.") return False # Return codes: # 0: invalid # 1: correct in main dictionary # 2+: correct in foreign dictionaries # check in the main dictionary only def isValidToken (self, sToken): "(in main dictionary) checks if sToken is valid (if there is hyphens in sToken, sToken is split, each part is checked)" if self.oMainDic.isValidToken(sToken): return 1 return 0 def isValid (self, sWord): "(in main dictionary) checks if sWord is valid (different casing tested if the first letter is a capital)" if self.oMainDic.isValid(sWord): return 1 return 0 def lookup (self, sWord): "(in main dictionary) checks if sWord is in dictionary as is (strict verification)" if self.oMainDic.lookup(sWord): return 1 return 0 # check in all dictionaries def isValidTokenAll (self, sToken): "(in all dictionaries) checks if sToken is valid (if there is hyphens in sToken, sToken is split, each part is checked)" if self.oMainDic.isValidToken(sToken): return 1 for i, oDic in enumerate(self.lOtherDic, 2): if oDic.isValidToken(sToken): return i return 0 def isValidAll (self, sWord): "(in all dictionaries) checks if sWord is valid (different casing tested if the first letter is a capital)" if self.oMainDic.isValid(sToken): return 1 for i, oDic in enumerate(self.lOtherDic, 2): if oDic.isValid(sToken): return i return 0 def lookupAll (self, sWord): "(in all dictionaries) checks if sWord is in dictionary as is (strict verification)" if self.oMainDic.lookup(sToken): return 1 for i, oDic in enumerate(self.lOtherDic, 2): if oDic.lookup(sToken): return i return 0 # check in dictionaries up to level n def isValidTokenLevel (self, sToken, nLevel): "(in dictionaries up to level n) checks if sToken is valid (if there is hyphens in sToken, sToken is split, each part is checked)" if self.oMainDic.isValidToken(sToken): return 1 if nLevel >= 2: for i, oDic in enumerate(self.lOtherDic, 2): if oDic.isValidToken(sToken): return i if i == nLevel: break return 0 def isValidLevel (self, sWord, nLevel): "(in dictionaries up to level n) checks if sWord is valid (different casing tested if the first letter is a capital)" if self.oMainDic.isValid(sToken): return 1 if nLevel >= 2: for i, oDic in enumerate(self.lOtherDic, 2): if oDic.isValid(sToken): return i if i == nLevel: break return 0 def lookupLevel (self, sWord, nLevel): "(in dictionaries up to level n) checks if sWord is in dictionary as is (strict verification)" if self.oMainDic.lookup(sToken): return 1 if nLevel >= 2: for i, oDic in enumerate(self.lOtherDic, 2): if oDic.lookup(sToken): return i if i == nLevel: break return 0 |