Spaces:
Runtime error
Runtime error
#importing the spacy and bert model | |
from transformers import BertTokenizer, BertForSequenceClassification | |
from transformers import pipeline | |
import gradio as gr | |
from gradio.mix import Parallel | |
import spacy | |
import pandas as pd | |
#Intializing the spacy model for NER and the finbert model for sentiment analysis | |
nlp = spacy.load('spacy/en_core_web_sm') | |
finbert = BertForSequenceClassification.from_pretrained('yiyanghkust/finbert-tone',num_labels=3) | |
tokenizer = BertTokenizer.from_pretrained('yiyanghkust/finbert-tone') | |
sentiment = pipeline("sentiment-analysis", model=finbert, tokenizer=tokenizer) | |
#defining a function to give us the sentiment of the article | |
def return_sentiment(text): | |
results = sentiment(text[:512]) | |
return (f"{results[0]['label']} ---> {results[0]['score']}") | |
#defining a function to return the names of the organization present in the article | |
def show_org(text): | |
org = [] | |
doc = nlp(text) | |
if doc.ents: | |
for ent in doc.ents: | |
if ent.label_ == 'ORG': | |
org.append(ent.text) | |
None | |
df = pd.DataFrame() | |
org = list(set(org)) | |
df['Organization'] = org | |
return df | |
sentiment_analysis = gr.Interface( | |
fn=return_sentiment, | |
inputs = gr.inputs.Textbox(label="Input your news article here", optional=False), | |
outputs=gr.outputs.Textbox(label="Sentiment Analysis"), | |
) | |
named_organization = gr.Interface( | |
fn=show_org, | |
inputs = gr.inputs.Textbox(label="Input your news article here", optional=False), | |
outputs=gr.outputs.Dataframe(label="Named organizations"), | |
) | |
Parallel( | |
sentiment_analysis, | |
named_organization, | |
title="Sentiment Analysis of stock news", | |
inputs=gr.inputs.Textbox( | |
label="Input your article here", | |
), | |
theme="darkhuggingface", | |
).launch(enable_queue=True, debug=True) |