Spaces:
Sleeping
Sleeping
| import streamlit as st | |
| from transformers import pipeline | |
| # Initialize the sentiment analysis pipeline | |
| sentiment_analyzer = pipeline("sentiment-analysis") | |
| # Streamlit UI | |
| st.title('Sentiment Analysis for Customer Reviews') | |
| # Get input text from the user | |
| reviews_text = st.text_area("Paste customer reviews here (multiple reviews separated by a newline; recommended-upto 15 reviews at a time):", height=200) | |
| # Button to process the sentiment | |
| if st.button("Analyze Sentiment"): | |
| if reviews_text: | |
| # Split the reviews into separate lines (assuming each line is a separate review) | |
| reviews = reviews_text.split("\n") | |
| # Analyze the sentiment of each review | |
| sentiment_scores = [] | |
| for review in reviews: | |
| sentiment = sentiment_analyzer(review)[0] | |
| sentiment_scores.append(sentiment['label']) | |
| # Count sentiment labels | |
| positive_count = sentiment_scores.count('POSITIVE') | |
| negative_count = sentiment_scores.count('NEGATIVE') | |
| neutral_count = sentiment_scores.count('NEUTRAL') | |
| # Determine the overall sentiment | |
| if positive_count > negative_count and positive_count > neutral_count: | |
| overall_sentiment = 'Positive' | |
| elif negative_count > positive_count and negative_count > neutral_count: | |
| overall_sentiment = 'Negative' | |
| else: | |
| overall_sentiment = 'Neutral' | |
| # Display results | |
| st.subheader(f"Overall Sentiment: {overall_sentiment}") | |
| st.write(f"Positive Reviews: {positive_count}") | |
| st.write(f"Negative Reviews: {negative_count}") | |
| st.write(f"Neutral Reviews: {neutral_count}") | |
| else: | |
| st.warning("Please paste some reviews to analyze.") | |