def GetASResult(query): start = time.clock() query = query.strip().lower() tokens = nltk.word_tokenize(query) result = [""] for token in tokens: token = token.lower() if token not in stops: data = Trie.GetNearestMatchFromTrie(wnl.lemmatize(token)) if not data[0]: possiblewords = sorted(Trie.GetListofWords(data[4], 0, 3), key=lambda x: len(x[0]))[:5] newresult = [] for item in result: for word in possiblewords: newresult.append(item + " " + word[0]) result = newresult[:] else: for i in range(len(result)): result[i] += " " + token else: for i in range(len(result)): result[i] += " " + token for i in range(len(result)): result[i] = result[i].lstrip() timetaken = time.clock() - start print("Fetched in ", timetaken, " secs") return result[:5]