ShadowDominator's picture
Upload 2 files
8c5cc7e
import gradio as gr
from transformers import AutoTokenizer, AutoModelForSequenceClassification, pipeline
import torch
tokenizer_review_feedback_sentiment = AutoTokenizer.from_pretrained('nlptown/bert-base-multilingual-uncased-sentiment')
model_review_feedback_sentiment = AutoModelForSequenceClassification.from_pretrained('nlptown/bert-base-multilingual-uncased-sentiment')
def review_feedback_sentiment(text, tokenizer, model):
inputs = tokenizer.encode_plus(text, padding='max_length', max_length=512, return_tensors="pt")
with torch.no_grad():
result = model(inputs['input_ids'], attention_mask=inputs['attention_mask'])
logits = result.logits.detach()
probs = torch.softmax(logits, dim=1).detach().numpy()[0]
categories = ['Terrible', 'Poor', 'Average', 'Good', 'Excellent']
output_dict = {}
for i in range(len(categories)):
output_dict[categories[i]] = [round(float(probs[i]), 2)]
return output_dict
def review_feed_back(text):
result = review_feedback_sentiment(text,tokenizer_review_feedback_sentiment,model_review_feedback_sentiment)
return result
with gr.Blocks(title="Feedback",css="footer {visibility: hidden}") as demo:
with gr.Row():
with gr.Column():
gr.Markdown("## Review Feedback sentiment")
with gr.Row():
with gr.Column():
inputs = gr.TextArea(label="sentence",value="I'm so impressed with your product! It's exactly what I needed and it's working great.",interactive=True)
btn = gr.Button(value="RUN")
with gr.Column():
output = gr.Label(label="output")
btn.click(fn=review_feed_back,inputs=[inputs],outputs=[output])
demo.launch()