-
Notifications
You must be signed in to change notification settings - Fork 0
/
interface.py
49 lines (37 loc) · 1.36 KB
/
interface.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
from flask import Flask, render_template, request, jsonify
from vector_search import read_documents_tf_idf, convert_documents_to_vectors, query_to_vector, find_relevant_documents
app = Flask(__name__)
@app.route('/')
def index():
return render_template('index.html')
@app.route('/search', methods=['POST'])
def search():
query = request.form['query']
query_vector = query_to_vector(query, unique_lemmas_idf)
relevant_documents = find_relevant_documents(query_vector, documents_vectors)
result = []
for doc in relevant_documents[:10]:
result.append((doc[0], documents_links[str(doc[0])]))
return jsonify({
'status': 'success',
'query': query,
'results': result
})
@app.route('/file/<file_path>', methods=['GET'])
def get_page(file_path):
return render_template(f'dir/file-{file_path}.html')
def get_links():
file_path = "res.txt"
dict = {}
with open(file_path, 'r', encoding='utf-8') as file:
data = file.read()
lines = data.splitlines()
for line in lines:
temp = line.split()
dict[temp[0]] = temp[1]
return dict
if __name__ == '__main__':
documents_tf_idf, unique_lemmas_idf = read_documents_tf_idf()
documents_vectors = convert_documents_to_vectors(documents_tf_idf, unique_lemmas_idf)
documents_links = get_links()
app.run(debug=True)