Sripadh2009's picture
Create app.py
a1f7b8a verified
import yfinance as yf
from transformers import pipeline
from collections import Counter
import gradio as gr
def search(symbol):
bot=pipeline('sentiment-analysis')
ticker=yf.Ticker(symbol)
pos=0
neg=0
neu=0
news=ticker.news
for item in news[:100]:
content=item['content']['title']
result=bot(content)
sentiment=result[0]['label']
if sentiment=='POSITIVE':
pos+=1
elif sentiment=='NEGATIVE':
neg+=1
else:
neu+=1
print('Positive news: '+str(pos))
print('Negative news: '+str(neg))
print('Neutral news: '+str(neu))
if pos>neg and pos>neu:
overall='BULLISH'
elif neg>pos and neg>neu:
overall='BEARISH'
else:
overall='NEUTRAL'
return 'Out of 10 results'+'\nPositive news: '+str(pos)+'\nNegative news: '+str(neg)+'\nNeutral news: '+str(neu)+'\n'+'Overall Sentiment: '+overall
with gr.Blocks(theme=gr.themes.Soft()) as window:
gr.Markdown('## Market Sentiment Analysis')
inp=gr.Textbox(label='Enter Ticker correctly',placeholder='For example:AAPL')
btn=gr.Button('Search')
display=gr.TextArea(label=' ')
btn.click(fn=search,inputs=inp,outputs=display)
window.launch()