| import torch | |
| from transformers import AutoModelForSequenceClassification, AutoTokenizer, AutoConfig | |
| import numpy as np | |
| from scipy.special import softmax | |
| import gradio as gr | |
| torch.cuda.is_available() | |
| model_path = "cardiffnlp/twitter-roberta-base-sentiment-latest" | |
| tokenizer = AutoTokenizer.from_pretrained(model_path) | |
| config = AutoConfig.from_pretrained(model_path) | |
| model = AutoModelForSequenceClassification.from_pretrained(model_path) | |
| def sentiment_analysis(text): | |
| encoded_input = tokenizer(text, return_tensors='pt') | |
| output = model(**encoded_input) | |
| scores_ = output[0][0].detach().numpy() | |
| scores_ = softmax(scores_) | |
| labels = ['Negative', 'Neutral', 'Positive'] | |
| scores = {l: float(s) for (l, s) in zip(labels, scores_)} | |
| return scores | |
| demo = gr.Interface( | |
| theme=gr.themes.Base(), | |
| fn=sentiment_analysis, | |
| inputs=gr.Textbox(placeholder="Write your text here..."), | |
| outputs="label", | |
| examples=[ | |
| ["I'm thrilled about the job offer!"], | |
| ["The weather today is absolutely beautiful."], | |
| ["I had a fantastic time at the concert last night."], | |
| ["I'm so frustrated with this software glitch."], | |
| ["The customer service was terrible at the store."], | |
| ["I'm really disappointed with the quality of this product."] | |
| ], | |
| title='Sentiment Analysis App', | |
| description='This app classifies a positive, neutral, or negative sentiment.' | |
| ) | |
| demo.launch() | |