lockermanwxlf's picture
Add files
4fc5a61 verified
import joblib
import pandas as pd
import gradio as gr
vec = joblib.load('vectorizer.joblib')
feature_names = vec.get_feature_names_out()
knn = joblib.load('best_knn.joblib')
lreg = joblib.load('best_lreg.joblib')
svm = joblib.load('best_svm.joblib')
forest = joblib.load('best_forest.joblib')
knn_label = "KNN Classifier"
lreg_label = "Logistic Regression"
svm_label = "Support Vector Machine"
forest_label = "Random Forest"
str_to_model = {
knn_label: knn,
lreg_label: lreg,
svm_label: svm,
forest_label: forest
}
review_input = gr.Textbox(label = 'Review Comment')
dropdown_input = gr.Dropdown([knn_label, lreg_label, svm_label, forest_label], label='Method')
def multi_inputs(review, model_label):
model = str_to_model[model_label]
mat = vec.transform([review])
bow = pd.DataFrame(mat.toarray(), columns=feature_names)
a = model.predict(bow)[0]
b = model.predict_proba(bow)[0]
out1 = 'Negative comment' if a == 0 else 'Positive comment'
out2 = f'{b[0]*100:.0f}%'
out3 = f'{b[1]*100:.0f}%'
return out1, out2, out3