Upload 5 files
Browse files- .gitattributes +1 -0
- Yelp Restaurant Reviews.csv +3 -0
- inference.py +38 -0
- logistic_classifier.joblib +3 -0
- requirement.txt +3 -0
- vectorizer.joblib +3 -0
.gitattributes
CHANGED
|
@@ -33,3 +33,4 @@ saved_model/**/* filter=lfs diff=lfs merge=lfs -text
|
|
| 33 |
*.zip filter=lfs diff=lfs merge=lfs -text
|
| 34 |
*.zst filter=lfs diff=lfs merge=lfs -text
|
| 35 |
*tfevents* filter=lfs diff=lfs merge=lfs -text
|
|
|
|
|
|
| 33 |
*.zip filter=lfs diff=lfs merge=lfs -text
|
| 34 |
*.zst filter=lfs diff=lfs merge=lfs -text
|
| 35 |
*tfevents* filter=lfs diff=lfs merge=lfs -text
|
| 36 |
+
Yelp[[:space:]]Restaurant[[:space:]]Reviews.csv filter=lfs diff=lfs merge=lfs -text
|
Yelp Restaurant Reviews.csv
ADDED
|
@@ -0,0 +1,3 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
version https://git-lfs.github.com/spec/v1
|
| 2 |
+
oid sha256:46d4a418c5cde221370bffa8d980a10e06fcd29bed19ab808d6a09894638d794
|
| 3 |
+
size 11262738
|
inference.py
ADDED
|
@@ -0,0 +1,38 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
import joblib
|
| 2 |
+
from sklearn.feature_extraction.text import TfidfVectorizer
|
| 3 |
+
from sklearn.linear_model import LogisticRegression
|
| 4 |
+
|
| 5 |
+
# Load the model and vectorizer from the saved files
|
| 6 |
+
logistic_classifier = joblib.load('logistic_classifier.joblib')
|
| 7 |
+
vectorizer = joblib.load('vectorizer.joblib')
|
| 8 |
+
|
| 9 |
+
# Function to predict rating for a new review
|
| 10 |
+
def predict_rating(review):
|
| 11 |
+
review_tfidf = vectorizer.transform([review])
|
| 12 |
+
predicted_rating = logistic_classifier.predict(review_tfidf)[0]
|
| 13 |
+
return predicted_rating
|
| 14 |
+
|
| 15 |
+
# Function to map numerical rating to description
|
| 16 |
+
def map_rating_to_description(rating):
|
| 17 |
+
if rating == 1:
|
| 18 |
+
return "Poor"
|
| 19 |
+
elif rating == 2:
|
| 20 |
+
return "Unsatisfactory"
|
| 21 |
+
elif rating == 3:
|
| 22 |
+
return "Average"
|
| 23 |
+
elif rating == 4:
|
| 24 |
+
return "Satisfactory"
|
| 25 |
+
elif rating == 5:
|
| 26 |
+
return "Outstanding"
|
| 27 |
+
else:
|
| 28 |
+
return "Invalid rating"
|
| 29 |
+
|
| 30 |
+
# Define the inference function
|
| 31 |
+
def inference(request):
|
| 32 |
+
review = request.get("review", "")
|
| 33 |
+
predicted_rating = predict_rating(review)
|
| 34 |
+
predicted_description = map_rating_to_description(predicted_rating)
|
| 35 |
+
return {
|
| 36 |
+
"predicted_rating": int(predicted_rating),
|
| 37 |
+
"predicted_description": predicted_description
|
| 38 |
+
}
|
logistic_classifier.joblib
ADDED
|
@@ -0,0 +1,3 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
version https://git-lfs.github.com/spec/v1
|
| 2 |
+
oid sha256:62378fbef899119b4cecc05d3a98e1c1f1610657959cb90aa89b672a6d49a99d
|
| 3 |
+
size 200927
|
requirement.txt
ADDED
|
@@ -0,0 +1,3 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
joblib
|
| 2 |
+
scikit-learn
|
| 3 |
+
pandas
|
vectorizer.joblib
ADDED
|
@@ -0,0 +1,3 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
version https://git-lfs.github.com/spec/v1
|
| 2 |
+
oid sha256:7b4a4d5e573a7d96883de60593abbeb9c874e70fa118f295796bd09b408724d6
|
| 3 |
+
size 162168
|