Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- from flask import jsonify, Flask, request
- import pickle,operator
- import nltk
- # from main_api import *
- application = Flask(__name__)
- def get_all_subString(word):
- word_len = len(word)
- list_subs = [word[:i].lower() for i in range(word_len + 1) if i > 2]
- return list_subs
- def get_search_list(text):
- words = nltk.word_tokenize(text)
- search_list = []
- for w in words:
- if len(w) >= 3:
- search_list.extend(get_all_subString(w))
- return search_list
- def get_seach_words_score(search_list, text):
- score = 0
- for w in search_list:
- if w in text:
- score += 1
- return score
- def get_all_api_data(user_search_list):
- a2_v = pickle.load(open("a2_v.p", "rb"))
- b2_v = pickle.load(open("b2_v.p", "rb"))
- c2_v = pickle.load(open("c2_v.p", "rb"))
- others = [a2_v, b2_v, c2_v]
- wiki_data = pickle.load(open("wiki_data.p", "rb"))
- master_map = pickle.load(open("master_map.p", "rb"))
- Matched_Item = {}
- Other_info = ""
- scores = {}
- for idx, mm in enumerate(master_map):
- scores[idx] = get_seach_words_score(user_search_list, mm)
- sorted_x = sorted(scores.items(), key=operator.itemgetter(1), reverse=True)
- sorted_x = sorted_x[:3]
- for s in sorted_x:
- master_text = master_map[s[0]]
- Matched_Item[master_text] = wiki_data[master_text]
- sorted_x.clear()
- scores = {}
- for o in others:
- for idx, mm in enumerate(o):
- scores[idx] = get_seach_words_score(user_search_list, mm)
- sorted_x = sorted(scores.items(), key=operator.itemgetter(1), reverse=True)
- try:
- sorted_x = sorted_x[:1]
- for s in sorted_x:
- Other_info += o[s[0]] + "n"
- except:
- pass
- sorted_x.clear()
- return jsonify({"Matched Item": Matched_Item, "Other Infos": Other_info})
- @application.route('/', methods=['GET'])
- def return_home():
- return jsonify({"Message": "please use /query to get the data"})
- @application.route('/<string:text>', methods=['GET'])
- def return_result(text):
- search_list = get_search_list(text)
- # print(search_list)
- # get_all_infos(search_list)
- return get_all_api_data(search_list)
- #return text
- if __name__ == '__main__':
- application.run()
Add Comment
Please, Sign In to add comment