|
|
from flask import Flask,jsonify,render_template,request |
|
|
import pickle |
|
|
import pandas as pd |
|
|
import pandas as pd |
|
|
import numpy as np |
|
|
|
|
|
|
|
|
with open('popular1.pkl', 'rb') as f: |
|
|
popular_df = pd.read_pickle(f) |
|
|
with open('pt1.pkl', 'rb') as fi: |
|
|
pt = pd.read_pickle(fi) |
|
|
with open('banquet.pkl', 'rb') as fil: |
|
|
banquets = pd.read_pickle(fil) |
|
|
with open('similarity_scores1.pkl', 'rb') as file: |
|
|
similarity_scores = pd.read_pickle(file) |
|
|
|
|
|
|
|
|
app = Flask(__name__) |
|
|
|
|
|
@app.route('/') |
|
|
def index(): |
|
|
return render_template( |
|
|
'index.html', |
|
|
banquet_img=list(popular_df['Jn12ke src'].values), |
|
|
banquet_name=list(popular_df['Hall-Name'].values), |
|
|
banquet_reviews=list(popular_df['num_ratings'].values), |
|
|
banquet_rating=list(popular_df['Rating_x'].values), |
|
|
|
|
|
|
|
|
) |
|
|
@app.route('/recommend') |
|
|
def recommend_ui(): |
|
|
return render_template( |
|
|
|
|
|
'Recommend.html' |
|
|
) |
|
|
|
|
|
@app.route('/banquet',methods=['post']) |
|
|
def recommend(): |
|
|
user_input=request.form.get('user-input') |
|
|
|
|
|
if user_input not in pt.index: |
|
|
return "Banquet not found in the index" |
|
|
|
|
|
index = np.where(pt.index ==user_input)[0][0] |
|
|
similar_items = sorted(enumerate(similarity_scores[index]), key=lambda x: x[1], reverse=True)[1:5] |
|
|
|
|
|
data = [] |
|
|
for i in similar_items: |
|
|
item = [] |
|
|
temp_df = banquets[banquets['Hall-Name'] == pt.index[i[0]]] |
|
|
item.extend(temp_df.drop_duplicates('Hall-Name')['Hall-Name'].values) |
|
|
item.extend(temp_df.drop_duplicates('Hall-Name')['Address'].values) |
|
|
item.extend(temp_df.drop_duplicates('Hall-Name')['Contact'].values) |
|
|
item.extend(temp_df.drop_duplicates('Hall-Name')['Rating'].values) |
|
|
item.extend(temp_df.drop_duplicates('Hall-Name')['Jn12ke src'].values) |
|
|
|
|
|
data.append(item) |
|
|
|
|
|
print(data) |
|
|
|
|
|
return jsonify({'recommendations': data}) |
|
|
|
|
|
|
|
|
if __name__=="__main__": |
|
|
app.run(debug=True) |
|
|
|
|
|
|