Spaces:
Build error
Build error
File size: 1,895 Bytes
1572793 | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 | 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.")
|