imalexianne's picture
Update app.py
d66b74a
raw
history blame
2.28 kB
import os
import gradio as gr
import numpy as np
from transformers import AutoTokenizer, AutoModel
from scipy.special import softmax
import gradio as gr
import numpy as np
import pandas as pd
import pickle
import transformers
from transformers import AutoTokenizer, AutoConfig,AutoModelForSequenceClassification,TFAutoModelForSequenceClassification, pipeline
from scipy.special import softmax
from dotenv import load_dotenv, dotenv_values
from huggingface_hub import login
load_dotenv()
login(os.getenv("access_token"))
# Requirements
# huggingface_token = "" # Replace with your actual token
model_path = "imalexianne/distilbert-base-uncased"
tokenizer = AutoTokenizer.from_pretrained(model_path)
# tokenizer = AutoTokenizer.from_pretrained("distilbert-base-uncased")
# tokenizer = AutoTokenizer.from_pretrained("distilbert-base-uncased", revision="main")
config = AutoConfig.from_pretrained(model_path)
model = AutoModelForSequenceClassification.from_pretrained(model_path)
# Preprocessessing function
def preprocess(text):
new_text = []
for x in text.split(" "):
x = "@user" if x.startswith("@") and len(x) > 1 else x
x = "http" if x.startswith("http") else x
new_text.append(x)
return " ".join(new_text)
# ---- Function to process the input and return prediction
def sentiment_analysis(text):
text = preprocess(text)
encoded_input = tokenizer(text, return_tensors = "pt") # for PyTorch-based models
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
# ---- Gradio app interface
app = gr.Interface(fn = sentiment_analysis,
inputs = gr.Textbox("Write your text here..."),
outputs = "label",
title = "Sentiment Analysis of Tweets on COVID-19 Vaccines",
description = "Sentiment Analysis of text based on tweets about COVID-19 Vaccines using a fine-tuned 'distilbert-base-uncased' model",
examples = [["Covid vaccination has no positive impact"]]
)
app.launch()