Spaces:
Sleeping
Sleeping
import streamlit as st | |
from transformers import pipeline | |
def main(): | |
st.title("Sentiment analysis") | |
st.header("Add comment") | |
input = st.text_input("Enter a new comment:") | |
if st.button("Add"): | |
add_input_text(input) | |
result_list(input) | |
display_comments() | |
def add_input_text(input): | |
if input: | |
if 'input_text' not in st.session_state: | |
st.session_state.input_text = [] | |
st.session_state.input_text.append(input) | |
def result_list(input): | |
if input: | |
if 'result_list' not in st.session_state: | |
st.session_state.result_list = [] | |
pipe = pipeline("text-classification", model="cardiffnlp/twitter-roberta-base-sentiment-latest") | |
sentiment = pipe(input) | |
result = sentiment[0]['label'] | |
st.session_state.result_list.append(result) | |
def display_comments(): | |
if 'result_list' in st.session_state: | |
st.header("Filter by Type") | |
filter_option = st.selectbox("Select type:", ["All", "Positive", "Negative"]) | |
if filter_option == "All": | |
st.header(f"{len(st.session_state.result_list)} comments") | |
elif filter_option == "Positive": | |
st.header(f"{st.session_state.result_list.count('positive')} comments") | |
elif filter_option == "Negative": | |
st.header(f"{st.session_state.result_list.count('negative')} comments") | |
for id,result in enumerate(st.session_state.result_list): | |
if filter_option == "All": | |
# st.header(f"{len(st.session_state.result_list)} comments") | |
if result == 'positive': | |
st.success(st.session_state.input_text[id]) | |
else: | |
st.error(st.session_state.input_text[id]) | |
elif filter_option == "Positive" and result == 'positive': | |
# st.header(f"{st.session_state.result_list.count('positive')} comments") | |
st.success(st.session_state.input_text[id]) | |
elif filter_option == "Negative" and result == 'negative': | |
st.error(st.session_state.input_text[id]) | |
if __name__ == "__main__": | |
main() | |