Spaces:
Running
Running
Commit
·
b3e279f
1
Parent(s):
2880a51
fix: the cahnges
Browse files- .gitattributes +0 -35
- README.md +0 -12
- app.py +76 -0
.gitattributes
DELETED
@@ -1,35 +0,0 @@
|
|
1 |
-
*.7z filter=lfs diff=lfs merge=lfs -text
|
2 |
-
*.arrow filter=lfs diff=lfs merge=lfs -text
|
3 |
-
*.bin filter=lfs diff=lfs merge=lfs -text
|
4 |
-
*.bz2 filter=lfs diff=lfs merge=lfs -text
|
5 |
-
*.ckpt filter=lfs diff=lfs merge=lfs -text
|
6 |
-
*.ftz filter=lfs diff=lfs merge=lfs -text
|
7 |
-
*.gz filter=lfs diff=lfs merge=lfs -text
|
8 |
-
*.h5 filter=lfs diff=lfs merge=lfs -text
|
9 |
-
*.joblib filter=lfs diff=lfs merge=lfs -text
|
10 |
-
*.lfs.* filter=lfs diff=lfs merge=lfs -text
|
11 |
-
*.mlmodel filter=lfs diff=lfs merge=lfs -text
|
12 |
-
*.model filter=lfs diff=lfs merge=lfs -text
|
13 |
-
*.msgpack filter=lfs diff=lfs merge=lfs -text
|
14 |
-
*.npy filter=lfs diff=lfs merge=lfs -text
|
15 |
-
*.npz filter=lfs diff=lfs merge=lfs -text
|
16 |
-
*.onnx filter=lfs diff=lfs merge=lfs -text
|
17 |
-
*.ot filter=lfs diff=lfs merge=lfs -text
|
18 |
-
*.parquet filter=lfs diff=lfs merge=lfs -text
|
19 |
-
*.pb filter=lfs diff=lfs merge=lfs -text
|
20 |
-
*.pickle filter=lfs diff=lfs merge=lfs -text
|
21 |
-
*.pkl filter=lfs diff=lfs merge=lfs -text
|
22 |
-
*.pt filter=lfs diff=lfs merge=lfs -text
|
23 |
-
*.pth filter=lfs diff=lfs merge=lfs -text
|
24 |
-
*.rar filter=lfs diff=lfs merge=lfs -text
|
25 |
-
*.safetensors filter=lfs diff=lfs merge=lfs -text
|
26 |
-
saved_model/**/* filter=lfs diff=lfs merge=lfs -text
|
27 |
-
*.tar.* filter=lfs diff=lfs merge=lfs -text
|
28 |
-
*.tar filter=lfs diff=lfs merge=lfs -text
|
29 |
-
*.tflite filter=lfs diff=lfs merge=lfs -text
|
30 |
-
*.tgz filter=lfs diff=lfs merge=lfs -text
|
31 |
-
*.wasm filter=lfs diff=lfs merge=lfs -text
|
32 |
-
*.xz filter=lfs diff=lfs merge=lfs -text
|
33 |
-
*.zip filter=lfs diff=lfs merge=lfs -text
|
34 |
-
*.zst filter=lfs diff=lfs merge=lfs -text
|
35 |
-
*tfevents* filter=lfs diff=lfs merge=lfs -text
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
README.md
DELETED
@@ -1,12 +0,0 @@
|
|
1 |
-
---
|
2 |
-
title: Streamlit
|
3 |
-
emoji: 🏆
|
4 |
-
colorFrom: indigo
|
5 |
-
colorTo: indigo
|
6 |
-
sdk: streamlit
|
7 |
-
sdk_version: 1.42.1
|
8 |
-
app_file: app.py
|
9 |
-
pinned: false
|
10 |
-
---
|
11 |
-
|
12 |
-
Check out the configuration reference at https://huggingface.co/docs/hub/spaces-config-reference
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
app.py
ADDED
@@ -0,0 +1,76 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
import streamlit as st
|
2 |
+
import pandas as pd
|
3 |
+
from transformers import pipeline, AutoModelForSequenceClassification, AutoTokenizer
|
4 |
+
import time
|
5 |
+
import matplotlib.pyplot as plt
|
6 |
+
import os
|
7 |
+
|
8 |
+
st.title("Sentiment Analysis App")
|
9 |
+
st.write("Upload a CSV or Excel file containing text data for sentiment analysis.")
|
10 |
+
|
11 |
+
# File uploader
|
12 |
+
uploaded_file = st.file_uploader("Upload a CSV or Excel file", type=["csv", "xlsx"])
|
13 |
+
|
14 |
+
# Load sentiment analysis model
|
15 |
+
try:
|
16 |
+
sentiment_pipeline = pipeline(
|
17 |
+
"sentiment-analysis",
|
18 |
+
model="distilbert-base-uncased-finetuned-sst-2-english"
|
19 |
+
)
|
20 |
+
st.success("Sentiment analysis model loaded successfully!")
|
21 |
+
except Exception as e:
|
22 |
+
st.error(f"Error loading model: {e}")
|
23 |
+
st.stop()
|
24 |
+
|
25 |
+
if uploaded_file:
|
26 |
+
# Check file type
|
27 |
+
if uploaded_file.name.endswith('.csv'):
|
28 |
+
df = pd.read_csv(uploaded_file)
|
29 |
+
elif uploaded_file.name.endswith('.xlsx'):
|
30 |
+
df = pd.read_excel(uploaded_file)
|
31 |
+
else:
|
32 |
+
st.error("Unsupported file format.")
|
33 |
+
st.stop()
|
34 |
+
|
35 |
+
st.write("Data Preview:", df.head())
|
36 |
+
|
37 |
+
# Check for 'text' column
|
38 |
+
if 'text' not in df.columns:
|
39 |
+
text_column = st.text_input("Enter the name of the column containing text values:")
|
40 |
+
if text_column not in df.columns:
|
41 |
+
st.error(f"Column '{text_column}' not found in the file.")
|
42 |
+
st.stop()
|
43 |
+
else:
|
44 |
+
df.rename(columns={text_column: 'text'}, inplace=True)
|
45 |
+
else:
|
46 |
+
text_column = 'text'
|
47 |
+
|
48 |
+
if st.button("Run Sentiment Analysis"):
|
49 |
+
# Progress bar
|
50 |
+
progress_bar = st.progress(0)
|
51 |
+
|
52 |
+
sentiments = []
|
53 |
+
for i, text in enumerate(df[text_column]):
|
54 |
+
try:
|
55 |
+
result = sentiment_pipeline(text)[0]
|
56 |
+
sentiments.append(result['label'])
|
57 |
+
except Exception as e:
|
58 |
+
sentiments.append("Error")
|
59 |
+
st.error(f"Error processing text at row {i + 1}: {e}")
|
60 |
+
|
61 |
+
progress_bar.progress((i + 1) / len(df))
|
62 |
+
time.sleep(0.1) # Simulating processing time
|
63 |
+
|
64 |
+
df['Sentiment'] = sentiments
|
65 |
+
st.write("Sentiment Analysis Output:", df[['text', 'Sentiment']])
|
66 |
+
|
67 |
+
# Pie chart
|
68 |
+
sentiment_counts = df['Sentiment'].value_counts()
|
69 |
+
fig, ax = plt.subplots()
|
70 |
+
ax.pie(sentiment_counts, labels=sentiment_counts.index, autopct='%1.1f%%', startangle=90)
|
71 |
+
ax.axis('equal')
|
72 |
+
st.pyplot(fig)
|
73 |
+
|
74 |
+
# Clear progress bar
|
75 |
+
progress_bar.empty()
|
76 |
+
|