rajesh1729's picture
Update app.py
1268a0a
import streamlit as st
import spacy
from spacytextblob.spacytextblob import SpacyTextBlob
st.set_page_config(layout='wide', initial_sidebar_state='expanded')
st.title('Text Analysis using Spacy Textblob')
st.markdown('Type a sentence in the below text box and choose the desired option in the adjacent menu.')
side = st.sidebar.selectbox("Select an option below", ("Sentiment", "Subjectivity", "NER"))
Text = st.text_input("Enter the sentence")
@st.cache
def sentiment(text):
nlp = spacy.load('en_core_web_sm')
nlp.add_pipe('spacytextblob')
doc = nlp(text)
if doc._.polarity<0:
return "Negative"
elif doc._.polarity==0:
return "Neutral"
else:
return "Positive"
@st.cache
def subjectivity(text):
nlp = spacy.load('en_core_web_sm')
nlp.add_pipe('spacytextblob')
doc = nlp(text)
if doc._.subjectivity > 0.5:
return "Highly Opinionated sentence"
elif doc._.subjectivity < 0.5:
return "Less Opinionated sentence"
else:
return "Neutral sentence"
@st.cache
def ner(sentence):
nlp = spacy.load("en_core_web_sm")
doc = nlp(sentence)
ents = [(e.text, e.label_) for e in doc.ents]
return ents
def run():
if side == "Sentiment":
st.write(sentiment(Text))
if side == "Subjectivity":
st.write(subjectivity(Text))
if side == "NER":
st.write(ner(Text))
if __name__ == '__main__':
run()