ellyothim's picture
Update app.py
5d61fc5
raw
history blame
No virus
2.1 kB
import gradio as gr
from transformers import AutoModelForSequenceClassification
from transformers import TFAutoModelForSequenceClassification
from transformers import AutoTokenizer, AutoConfig
import numpy as np
from scipy.special import softmax
# setting up the requiremnts
model_path = f"mrm8488/distilroberta-finetuned-financial-news-sentiment-analysis"
tokenizer = AutoTokenizer.from_pretrained('mrm8488/distilroberta-finetuned-financial-news-sentiment-analysis')
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)
# Defining the main function
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
welcome_message = "Welcome to Team Paris tweets first shot Sentimental Analysis App ๐Ÿ˜ƒ ๐Ÿ˜ƒ ๐Ÿ˜ƒ ๐Ÿ˜ƒ "
demo = gr.Interface(
fn=sentiment_analysis,
inputs=gr.Textbox(placeholder="Write your tweet here..."),
outputs="label",
interpretation="default",
examples=[["This is wonderful!"]],
title=welcome_message,
description=("This is a sentimental analysis app built by fine tuning a model trained on financial news sentiment, we leverage what the model has learnt, /n, and fine tune it on twitter comments . The eval_loss of our model is 0.785")
)
demo.launch()
# def greet(name):
# return "Hello " + name + "!!"
# iface = gr.Interface(fn=greet, inputs="text", outputs="text")
# iface.launch(inline = False)