def match(self,word): if word in self.commands[self.scope] or len(word)==1: return [("None",10)] if self.matchHist(word) != None: return[(self.matchHist(word),0)] hashtable = self.hashtable();results={} wordc=collections.Counter(dict(collections.Counter(word.lower()).most_common())) ab = alphabet(self.lang[self.langsel]);abcd = ab.retstr() for i in wordc: for j in hashtable: if j[0] in results and results[j[0]] >= 4: continue if i in j[1]: if j[0] in results: results[j[0]]+=abs(int(wordc[i])-int(j[1][i])) else: results[j[0]]=abs(int(wordc[i])-int(j[1][i])) else: if j[0] in results: results[j[0]]+=int(wordc[i]) else: results[j[0]]=int(wordc[i]) rem = [] for i in results: results[i]+=abs(1.0-((len(word)*1.2)/len(i))) for i in results: if results[i] >= 3.33: rem.append(i) else: for j in hashtable: if j[0] == i: for z in j[1]: if z in wordc: continue else: results[i]+=int(j[1][z]) for i in results: for k in range(len(i)): try: if i[k] != word[k]: results[i]+=1 except: pass if results[i] >= 6 and (i in rem)==False: rem.append(i) for i in rem: del results[i] resultsorted = sorted(results.items(),key=operator.itemgetter(1)) if len(resultsorted)==0: return [("None",10)] else: return resultsorted
def add_Option(self,content,title=""): ab = alphabet(self.lang);alpha= ab.retstr() letter = alpha[len(self)] line = [letter,title,content.decode('utf-8')] self.append(line)