Spaces:
Sleeping
Sleeping
import streamlit as st | |
import spacy | |
from spacytextblob.spacytextblob import SpacyTextBlob | |
st.set_page_config(layout='wide', initial_sidebar_state='expanded') | |
st.title('Super cool NLP things for the whole family!') | |
st.markdown('Type some words in the text box below, and choose a processing option from the side menu.') | |
side = st.sidebar.selectbox("Select an option here", ("Sentiment", "Subjectivity", "NER")) | |
Text = st.text_input("Enter some words!") | |
def sentiment(text): | |
nlp = spacy.load('en_core_web_sm') | |
nlp.add_pipe('spacytextblob') | |
doc = nlp(text) | |
if len(Text) == 0: | |
return "This setting will try to figure out the tone of the provided text." | |
elif doc._.polarity<0: | |
return "The text seems negative" | |
elif doc._.polarity==0: | |
return "The text seems neutral" | |
else: | |
return "The text seems positive" | |
def subjectivity(text): | |
nlp = spacy.load('en_core_web_sm') | |
nlp.add_pipe('spacytextblob') | |
doc = nlp(text) | |
if len(Text) == 0: | |
return "This setting will try to figure out how opionionated the provided text is." | |
if doc._.subjectivity > 0.5: | |
return "This is a highly opinionated sentence" | |
elif doc._.subjectivity < 0.5: | |
return "This is a less opinionated sentence" | |
else: | |
return "This is a neutral sentence" | |
def ner(sentence): | |
nlp = spacy.load("en_core_web_sm") | |
doc = nlp(sentence) | |
ents = [(e.text, e.label_) for e in doc.ents] | |
if len(Text) == 0: | |
return "This setting identifies and extracts named entities." | |
else: | |
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() |