Spaces:
Running
Running
# import sklearn | |
from os import O_ACCMODE | |
import gradio as gr | |
import joblib | |
from transformers import pipeline | |
import requests.exceptions | |
from huggingface_hub import HfApi, hf_hub_download | |
from huggingface_hub.repocard import metadata_load | |
app = gr.Blocks() | |
model_id_1 = "nlptown/bert-base-multilingual-uncased-sentiment" | |
model_id_2 = "juliensimon/distilbert-amazon-shoe-reviews" | |
def load_agent(model_id): | |
""" | |
This function load the agent's results | |
""" | |
# Load the metrics | |
metadata = get_metadata(model_id) | |
# get predictions | |
predictions = predict(model_id) | |
return model_id, predictions | |
def get_metadata(model_id): | |
""" | |
Get the metadata of the model repo | |
:param model_id: | |
:return: metadata | |
""" | |
try: | |
readme_path = hf_hub_download(model_id, filename="README.md") | |
metadata = metadata_load(readme_path) | |
print(metadata) | |
return metadata | |
except requests.exceptions.HTTPError: | |
return None | |
def get_prediction(model_id): | |
classifier = pipeline("text-classification", model=model_id) | |
def predict(review): | |
prediction = classifier(review) | |
print(prediction) | |
stars = prediction[0]['label'] | |
stars = (int)(stars.split('_')[1])+1 | |
score = 100*prediction[0]['score'] | |
return "{} {:.0f}%".format("\U00002B50"*stars, score) | |
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** | |
""") | |
gr.Markdown( | |
""" | |
Model 1 = nlptown/bert-base-multilingual-uncased-sentiment | |
""") | |
with gr.Row(): | |
btn1 = gr.Button("Predict for Model 1") | |
with gr.Row(): | |
out_1 = gr.Textbox(label="Prediction for Model 1") | |
# classifier = pipeline("text-classification", model) | |
btn1.click(fn=get_prediction(model_id_1), inputs=inp_1, outputs=out_1) | |
gr.Markdown( | |
""" | |
Model 2 = juliensimon/distilbert-amazon-shoe-reviews | |
""") | |
with gr.Row(): | |
btn2 = gr.Button("Predict for Model 2") | |
with gr.Row(): | |
out_2 = gr.Textbox(label="Prediction for Model 2") | |
classifier = pipeline("text-classification", model=model_id_2) | |
btn2.click(fn=get_prediction(model_id_2), inputs=inp_1, outputs=out_2) | |
app.launch() |