Spaces:
Build error
Build error
| import streamlit as st | |
| import pandas as pd | |
| from sentiment_analysis.vader_analyzer import analyze_sentiment_vader | |
| from sentiment_analysis.transformers_analyzer import analyze_sentiment_transformers | |
| st.title("Bulk Sentiment Analysis for Reviews") | |
| # Step 1: File Upload | |
| uploaded_file = st.file_uploader("Upload your review file", type=["csv", "xlsx"]) | |
| if uploaded_file is not None: | |
| # Read the file into a DataFrame | |
| if uploaded_file.name.endswith('.csv'): | |
| df = pd.read_csv(uploaded_file) | |
| else: | |
| df = pd.read_excel(uploaded_file) | |
| # Check the number of entries and truncate if needed | |
| if len(df) > 1000: | |
| df = df.head(1000) | |
| st.error("The file contains more than 1,000 entries. Only the first 1,000 reviews are processed.") | |
| st.write("Data Preview:", df.head()) | |
| # Step 2: Model Selection | |
| st.write("Select sentiment analysis models:") | |
| use_vader = st.checkbox("Vader") | |
| use_transformers = st.checkbox("Transformers") | |
| # Ensure "review" column exists | |
| df.columns = df.columns.str.lower() | |
| if 'review' in df.columns: | |
| # Step 3: Process reviews with Selected Models | |
| if use_vader: | |
| vader_results = analyze_sentiment_vader(df["review"]) | |
| df = pd.concat([df, vader_results], axis=1) | |
| st.write("Vader Analysis Results", df.head()) | |
| if use_transformers: | |
| transformers_results = analyze_sentiment_transformers(df["review"]) | |
| df = pd.concat([df, transformers_results], axis=1) | |
| st.write("Transformers Analysis Results", df.head()) | |
| # Step 4: Download Results | |
| csv = df.to_csv(index=False) | |
| st.download_button("Download CSV", csv, "sentiment_analysis_results.csv", "text/csv") | |
| else: | |
| st.error("Please make sure the file has a 'review' column with review text.") | |