Skip to content

Commit 4c59eaa

Browse files
author
Rachana Sreedhar
committed
Changed the inference calling in ml_app. Adde a check for the output in predict.html
1 parent c40dabb commit 4c59eaa

File tree

3 files changed

+19
-17
lines changed

3 files changed

+19
-17
lines changed

ml_app.py

Lines changed: 9 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
"""Basic app to demonstrate anatomy of flask"""
22

33
from flask import Flask, render_template, request
4-
import sentiment_analysis.api_sentiment_analysis as senti_api
4+
import sentiment_analysis.sentiment_analysis_code as senti_api
55
app = Flask(__name__)
66

77

@@ -13,24 +13,22 @@ def predict():
1313
user_input = accept_user_input()
1414
print('User input = ', user_input)
1515

16-
# Preprocess input - Remember to import the file from sentiment analysis
17-
preprocessed_data = senti_api.preprocess_reviews(user_input)
16+
if user_input:
17+
# Step 3c-2
18+
# Send the preprocessed data to the ML model
19+
sentiment = senti_api.get_model_prediction(user_input)
1820

19-
# Step 3c-2
20-
# Send the preprocessed data to the ML model
21-
sentiment = test.inference(preprocessed_data)
21+
# Send the prediction to the web app
22+
return render_template('predict.html', user_input=user_input, predicted_out=sentiment)
2223

23-
# Send the prediction to the web app
24-
return render_template('predict.html', predicted_out=sentiment)
24+
return render_template('predict.html')
2525

2626

2727
def accept_user_input():
2828
"""Accept user input with forms"""
29-
29+
user_input = ''
3030
if request.args:
3131
user_input = request.args['user_review']
32-
else:
33-
user_input = ''
3432

3533
return user_input
3634

sentiment_analysis/sentiment_analysis_code.py

Lines changed: 7 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@
1111
import re
1212
from sklearn.feature_extraction.text import CountVectorizer
1313
import pickle
14-
14+
import os
1515

1616
from sklearn.linear_model import LogisticRegression
1717
from sklearn.metrics import accuracy_score
@@ -98,14 +98,18 @@ def get_model_prediction(user_input):
9898
user_input_processed = preprocess_reviews(user_input)
9999

100100
# Load saved model - vectorizer
101-
saved_vectorizer = pickle.load(open('./model/vectorizer.pkl', 'rb'))
101+
#saved_vectorizer = pickle.load(open(r'./model/vectorizer.pkl', 'rb'))
102+
saved_vectorizer = pickle.load(open(os.path.join('sentiment_analysis', 'model', 'vectorizer.pkl'), 'rb'))
103+
102104

103105
# Get feature vector
104106
user_data_vector = saved_vectorizer.transform([user_input_processed, ''])[:-1]
105107
# extra string cuz it expects more than one document to transform
106108

107109
# load saved logreg model
108-
saved_model = pickle.load(open('./model/log_reg_model.pkl', 'rb'))
110+
#saved_model = pickle.load(open(r'./model/log_reg_model.pkl', 'rb'))
111+
saved_model = pickle.load(open(os.path.join('sentiment_analysis', 'model', 'log_reg_model.pkl'), 'rb'))
112+
109113

110114
# get prediction from saved model
111115
result = saved_model.predict(user_data_vector)[0]

templates/predict.html

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -10,16 +10,16 @@
1010
<body>
1111
<form>
1212
<p>
13-
Enter your review for Madagascar
13+
Enter your review for the movie
1414
<br>
1515
</p>
1616
<input type="text" name="user_review">
1717
<input type="submit" value="Submit">
1818
</form>
1919

2020
{% if predicted_out %}
21-
<h1>The prediction is {{ predicted_out }}!</h1>
22-
{% endif %}
21+
<h1>The prediction for {{ user_input }} is {{ predicted_out }}!</h1>
22+
{% endif %}
2323

2424
</body>
2525
</html>

0 commit comments

Comments
 (0)