| import gradio as gr |
| import pickle |
| import numpy as np |
|
|
| |
| with open("random_forest_model.pkl", "rb") as f: |
| random_forest_model = pickle.load(f) |
|
|
| with open("logistic_model.pkl", "rb") as f: |
| logistic_model = pickle.load(f) |
|
|
| with open("knn_yelp_model.pkl", "rb") as f: |
| knn_yelp_model = pickle.load(f) |
|
|
| with open("svm_linear.pkl", "rb") as f: |
| svm_linear = pickle.load(f) |
|
|
| with open("svm_poly.pkl", "rb") as f: |
| svm_poly = pickle.load(f) |
|
|
| with open("svm_rbf.pkl", "rb") as f: |
| svm_rbf = pickle.load(f) |
|
|
| with open("vectorizer.pkl", "rb") as f: |
| vectorizer = pickle.load(f) |
|
|
| |
| def predict_sentiment(review, model_name): |
| |
| review_vec = vectorizer.transform([review]) |
| |
| |
| if model_name == 'Random Forest': |
| model = random_forest_model |
| elif model_name == 'Logistic Regression': |
| model = logistic_model |
| elif model_name == 'KNN': |
| model = knn_yelp_model |
| elif model_name == 'SVM Linear': |
| model = svm_linear |
| elif model_name == 'SVM Poly': |
| model = svm_poly |
| elif model_name == 'SVM RBF': |
| model = svm_rbf |
| |
| |
| probabilities = model.predict_proba(review_vec)[0] |
| return {"Negative": probabilities[0], "Positive": probabilities[1]} |
|
|
| |
| iface = gr.Interface( |
| fn=predict_sentiment, |
| inputs=[ |
| gr.Textbox(label="Enter Your Review"), |
| gr.Dropdown( |
| choices=["Random Forest", "Logistic Regression", "KNN", "SVM Linear", "SVM Poly", "SVM RBF"], |
| label="Select Model" |
| ), |
| ], |
| outputs=gr.Label(num_top_classes=2), |
| live=True |
| ) |
|
|
| |
| iface.launch() |
|
|