Spaces:
Running
Running
from os import O_ACCMODE | |
import gradio as gr | |
from transformers import pipeline | |
app = gr.Blocks() | |
model_id_1 = "nlptown/bert-base-multilingual-uncased-sentiment" | |
model_id_2 = "microsoft/deberta-base" | |
model_id_3 = "distilbert-base-uncased-finetuned-sst-2-english" | |
model_id_4 = "lordtt13/emo-mobilebert" | |
model_id_5 = "juliensimon/reviews-sentiment-analysis" | |
model_id_6 = "sbcBI/sentiment_analysis_model" | |
def parse_output(output_json): # list of list of dicts | |
list_pred=[] | |
for i in range(len(output_json[0])): | |
label = output_json[0][i]['label'] | |
score = output_json[0][i]['score'] | |
list_pred.append((label, score)) | |
return list_pred | |
def get_prediction(model_id): | |
classifier = pipeline("text-classification", model=model_id, return_all_scores=True) | |
def predict(review): | |
prediction = classifier(review) | |
print(prediction) | |
return parse_output(prediction) | |
return predict | |
with app: | |
gr.Markdown( | |
""" | |
# Compare Sentiment Analysis Models | |
Type text to predict sentiment. | |
""") | |
with gr.Row(): | |
inp_1= gr.Textbox(label="Type text here.",placeholder="The customer service was satisfactory.") | |
gr.Markdown( | |
""" | |
**Model Predictions** | |
""") | |
with gr.Row(): | |
with gr.Column(): | |
gr.Markdown( | |
""" | |
Model 1 = nlptown/bert-base-multilingual-uncased-sentiment | |
""") | |
btn1 = gr.Button("Predict - Model 1") | |
gr.Markdown( | |
""" | |
Model 2 = microsoft/deberta-base | |
""") | |
btn2 = gr.Button("Predict - Model 2") | |
gr.Markdown( | |
""" | |
Model 3 = distilbert-base-uncased-finetuned-sst-2-english" | |
""") | |
btn3 = gr.Button("Predict - Model 3") | |
gr.Markdown( | |
""" | |
Model 4 = lordtt13/emo-mobilebert | |
""") | |
btn4 = gr.Button("Predict - Model 4") | |
gr.Markdown( | |
""" | |
Model 5 = juliensimon/reviews-sentiment-analysis | |
""") | |
btn5 = gr.Button("Predict - Model 5") | |
gr.Markdown( | |
""" | |
Model 6 = sbcBI/sentiment_analysis_model | |
""") | |
btn6 = gr.Button("Predict - Model 6") | |
with gr.Column(): | |
out_1 = gr.Textbox(label="Predictions for Model 1") | |
out_2 = gr.Textbox(label="Predictions for Model 2") | |
out_3 = gr.Textbox(label="Predictions for Model 3") | |
out_4 = gr.Textbox(label="Predictions for Model 4") | |
out_5 = gr.Textbox(label="Predictions for Model 5") | |
out_6 = gr.Textbox(label="Predictions for Model 6") | |
btn1.click(fn=get_prediction(model_id_1), inputs=inp_1, outputs=out_1) | |
btn2.click(fn=get_prediction(model_id_2), inputs=inp_1, outputs=out_2) | |
btn3.click(fn=get_prediction(model_id_3), inputs=inp_1, outputs=out_3) | |
btn4.click(fn=get_prediction(model_id_4), inputs=inp_1, outputs=out_4) | |
btn5.click(fn=get_prediction(model_id_5), inputs=inp_1, outputs=out_5) | |
btn6.click(fn=get_prediction(model_id_5), inputs=inp_1, outputs=out_6) | |
app.launch() |