Ejemplo n.º 1
0
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]