KrSharangrav
Creating the backup file and changing app.py for DB purpose
af09235
raw
history blame
1.52 kB
from pymongo import MongoClient
import pandas as pd
from transformers import pipeline
import streamlit as st
#### **1. MongoDB Connection**
def get_mongo_client():
client = MongoClient("mongodb+srv://groupA:[email protected]/?retryWrites=true&w=majority&appName=SentimentCluster")
db = client["sentiment_db"]
return db["tweets"]
collection = get_mongo_client()
#### **2. Load Dataset from Hugging Face**
csv_url = "https://huggingface.co/spaces/sharangrav24/SentimentAnalysis/resolve/main/sentiment140.csv"
df = pd.read_csv(csv_url)
#### **3. Sentiment Analysis using BERT-ROBERTA**
sentiment_pipeline = pipeline("sentiment-analysis", model="cardiffnlp/twitter-roberta-base-sentiment")
# Function to analyze sentiment
def analyze_sentiment(text):
return sentiment_pipeline(text)[0]['label']
df["sentiment"] = df["text"].apply(analyze_sentiment)
#### **4. Upload Data to MongoDB**
# Convert DataFrame to dictionary and upload to MongoDB
collection.delete_many({}) # Optional: Clear existing data before inserting
collection.insert_many(df.to_dict("records"))
#### **5. Build Streamlit Dashboard**
st.title("Sentiment Analysis Dashboard")
# Show first 5 rows from MongoDB
st.subheader("First 5 Rows from Database")
data = list(collection.find({}, {"_id": 0}).limit(5))
st.write(pd.DataFrame(data))
if st.button("Show Complete Data"):
st.write(df)
if st.button("Show MongoDB Data"):
data = list(collection.find({}, {"_id": 0}))
st.write(pd.DataFrame(data))