import os os.system('pip install torch') os.system('pip install transformers') os.system('pip install scipy') os.system('pip install gradio') from transformers import AutoModelForSequenceClassification from transformers import TFAutoModelForSequenceClassification from transformers import AutoTokenizer, AutoConfig from scipy.special import softmax import gradio as gr # Requirements model_path = f"Winnie-Kay/Finetuned_BertModel_SentimentAnalysis" tokenizer = AutoTokenizer.from_pretrained('bert-base-cased') config = AutoConfig.from_pretrained(model_path) model = AutoModelForSequenceClassification.from_pretrained(model_path) # Preprocess text (username and link placeholders) def preprocess(text): new_text = [] for t in text.split(" "): t = '@user' if t.startswith('@') and len(t) > 1 else t t = 'http' if t.startswith('http') else t new_text.append(t) return " ".join(new_text) def sentiment_analysis(text): text = preprocess(text) # PyTorch-based models encoded_input = tokenizer(text, return_tensors='pt') output = model(**encoded_input) scores_ = output[0][0].detach().numpy() scores_ = softmax(scores_) # Format output dict of scores labels = ['Negative', 'Neutral', 'Positive'] scores = {l:float(s) for (l,s) in zip(labels, scores_) } return scores demo = gr.Interface( fn=sentiment_analysis, inputs=gr.Textbox(placeholder="Write your tweet here..."), outputs="label", interpretation="default", examples=[["This is wonderful!"]]) demo.launch()