import streamlit as st from transformers import pipeline import time # Set page configuration st.set_page_config(page_title="Sentiment Analysis App", page_icon="😊") @st.cache_resource def load_sentiment_model(): """Load the sentiment analysis model.""" return pipeline('sentiment-analysis') def analyze_sentiment(text, model): """Analyze the sentiment of the given text.""" try: return model(text) except Exception as e: st.error(f"An error occurred during sentiment analysis: {str(e)}") return None def main(): # Page header st.title("📊 Sentiment Analysis Tool") st.write("Enter your text below to analyze its sentiment.") # Load the model with st.spinner("Loading sentiment analysis model..."): sentiment_model = load_sentiment_model() # Text input text = st.text_area("Enter some text:", height=150) if st.button("Analyze Sentiment"): if not text: st.warning("Please enter some text to analyze.") else: with st.spinner("Analyzing sentiment..."): result = analyze_sentiment(text, sentiment_model) if result: # Display results sentiment = result[0]['label'] score = result[0]['score'] st.subheader("Analysis Result:") col1, col2 = st.columns(2) with col1: st.metric("Sentiment", sentiment) with col2: st.metric("Confidence", f"{score:.2%}") # Visualize the sentiment if sentiment == "POSITIVE": st.success("😃 The text expresses a positive sentiment.") elif sentiment == "NEGATIVE": st.error("😞 The text expresses a negative sentiment.") else: st.info("😐 The text expresses a neutral sentiment.") # Display raw JSON output with st.expander("See raw output"): st.json(result) # Add a footer st.markdown("---") st.markdown("Created with ❤️ by Ali Nasri") if __name__ == "__main__": main() #pipe = pipeline('sentiment-analysis') #text = st.text_area('Enter some text') #if text: # out = pipe(text) # st.json(out)