-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathapplication.py
More file actions
69 lines (62 loc) · 1.75 KB
/
application.py
File metadata and controls
69 lines (62 loc) · 1.75 KB
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
from flask import Flask, request, render_template
from gensim import corpora, similarities, models
app = Flask(__name__)
app.debug = True
f = open('sample_data.tsv')
books = []
summary = []
for lines in f.readlines():
lines = lines.split("\t")
lines[1] = lines[1].replace("\n","")
books.append(lines[1])
summary.append(lines[0])
d = zip(books, summary)
# print d[0][1];
@app.route("/")
def hello():
return render_template('home.html')
@app.route("/query", methods=['POST'])
def query_get():
query = str(request.form['search'])
output = indexing(query)
return render_template('result.html', data=output)
# @app.route("/100YearsofSolitude")
# def YearsofSolitude():
# query = d[0][1]
# output = indexing(query)
# output = output[1:4] # Top 3 recommendations
# return render_template('100YearsofSolitude.html', data=output)
@app.route("/recommendation/<title>")
def recommend(title):
# print d
query = ""
output = ""
for i,j in d:
if i==title:
query = i+j
break
# query = d[0][1]
output = indexing(query)
output = output[1:4] # Top 3 recommendations
return render_template('recommendations.html', data=output)
def indexing(query):
dictionary = corpora.Dictionary.load('books.dict')
# corpus = corpora.MmCorpus('books.mm')
# print books
# lsi = models.LsiModel(corpus, id2word=dictionary, num_topics=2)
lsi = models.LsiModel.load('model.lsi')
index = similarities.MatrixSimilarity.load('sim.index')
vec_bow = dictionary.doc2bow(query.lower().split())
vec_lsi = lsi[vec_bow]
sims = index[vec_lsi]
sims = sorted(enumerate(sims), key=lambda item: -item[1])
name = []
# print len(sims)
for i in range(len(sims)):
# print i
# print sims[i]
name.append(books[sims[i][0]])
# print len(name)
return name
if __name__ == "__main__":
app.run()