|
import gradio as gr |
|
from joblib import dump, load |
|
|
|
|
|
input_text = gr.inputs.Textbox(label="Review Comment") |
|
input_dropdown = gr.inputs.Dropdown(choices=['Logistic', 'LDA', 'QDA', 'SVC'], label='Method') |
|
|
|
|
|
output_text = gr.outputs.Textbox(label='Predicted sentiment class') |
|
output_label = gr.outputs.Label(label='Predicted probability') |
|
|
|
def predict(input_text, model): |
|
labels = ['Negative Comment', 'Positive Comment'] |
|
input_text = [input_text] |
|
|
|
vectorizer = load('Vectorizer.joblib') |
|
input_text = vectorizer.transform(input_text).toarray() |
|
|
|
if model == 'Logistic': |
|
log_model = load('NLP_log.joblib') |
|
pred = log_model.predict_proba(input_text) |
|
print(pred) |
|
|
|
if model == 'LDA': |
|
lda_model = load('NLP_lda.joblib') |
|
pred = lda_model.predict_proba(input_text) |
|
print(pred) |
|
|
|
if model == 'QDA': |
|
qda_model = load('NLP_qda.joblib') |
|
pred = qda_model.predict_proba(input_text) |
|
print(pred) |
|
|
|
if model == 'SVC': |
|
svc_model = load('NLP_svc.joblib') |
|
pred = svc_model.predict_proba(input_text) |
|
print(pred) |
|
|
|
return 'model', {label: float(pred) for label, pred in zip(labels, pred[0])} |
|
|
|
|
|
gr.Interface(fn = predict, |
|
inputs = [input_text, input_dropdown], |
|
outputs = [output_text, output_label] |
|
).launch(debug=True) |