-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathapp.py
84 lines (64 loc) · 2.53 KB
/
app.py
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
# coding=utf-8
# hello world
import json
from flask import Flask, jsonify
from flask import request
from flask_cors import *
from tools.io import read_answer_text
from tools.io import read_answer_boundTopicIDs
from tools.tfidf import TFIDFSimilarity
from classes.user import User
# 创建应用程序
app = Flask(__name__)
cors = CORS(app)
app.config['CORS_HEADERS'] = 'Content-Type'
model_path = "./model/"
tf_simi = TFIDFSimilarity()
tf_simi.load_tfidf(model_path)
@app.route("/fetch_answer_text", methods=['POST'])
def fetch_answer_text():
# 输入answer_ID,(单个回答的字符串或者数组), 检索得到答案文本数组
answer_id = request.get_json().get('answer_ID')
text = read_answer_text(answer_id)
return text
@app.route("/fetch_answer_boundTopicIDs", methods=['POST'])
def fetch_answer_boundTopicIDs():
# 输入answer_ID,获取指定answer id绑定的话题ID列表数组
answer_id = request.get_json().get('answer_ID')
text = read_answer_boundTopicIDs(answer_id)
return text
@app.route("/compare_id", methods=['POST'])
@cross_origin()
def compare_id():
# 输入两个answer_ID,获取两个回答的文本相似度
answer_id_a = request.get_json().get('ID_a')
answer_id_b = request.get_json().get('ID_b')
text_a = read_answer_text(answer_id_a)
text_b = read_answer_text(answer_id_b)
simi = tf_simi.compare_similarity(text_a, text_b, 0.33)
return str(simi)
@app.route("/compare_text", methods=['POST'])
@cross_origin()
def compare_text():
# 输入两个文本,获取相似度
text_a = request.get_json().get('text_a')
text_b = request.get_json().get('text_b')
simi = tf_simi.compare_similarity(text_a, text_b, 0.33)
return str(simi)
@app.route("/get_text_characteristic_value", methods=['POST'])
@cross_origin()
def get_text_characteristic_value():
# 输入原始文本(或者多个文本数组),返回经tfidf处理后按照特征值由高到低排序的列表数组(去重)
original_text = request.get_json().get('text')
result = tf_simi.text_2_tfidf_characteristic_value(original_text)
return result
@app.route("/fetch_user_info_with_answers", methods=['POST'])
@cross_origin()
def fetch_user_info_with_answers():
# 输入用户的ID,返回该用户的基础信息以及该与用户交互的回答信息
user_id = request.get_json().get('user_ID')
result = User(user_id).export_self_to_dict()
# result.print_self()
return jsonify(result)
if __name__ == "__main__":
app.run(port=5050, debug=True) # 启动应用程序