sentiment_pubg / app.py
noranisa's picture
Update app.py
891b381 verified
from flask import Flask, render_template
import pandas as pd
import os
app = Flask(__name__)
# --- Baca data CSV ---
CSV_PATH = "hasil komentar canva Data.csv"
def analyze_sentiment():
df = pd.read_csv(CSV_PATH)
# Pastikan kolom teks ada
text_col = df.columns[0] # asumsikan kolom pertama berisi teks komentar
texts = df[text_col].astype(str)
# Kamus sentimen sederhana
lexicon = {
"bagus": 1, "hebat": 1, "baik": 1, "keren": 1, "mantap": 1,
"buruk": -1, "jelek": -1, "tidak": -1, "parah": -1, "kurang": -1
}
results = []
for text in texts:
score = sum(lexicon.get(word.lower(), 0) for word in text.split())
if score > 0:
sentiment = "Positif"
elif score < 0:
sentiment = "Negatif"
else:
sentiment = "Netral"
results.append(sentiment)
df["Sentimen"] = results
# Hitung jumlah tiap kategori
summary = df["Sentimen"].value_counts().to_dict()
total = len(df)
pos = summary.get("Positif", 0)
neg = summary.get("Negatif", 0)
neu = summary.get("Netral", 0)
return {
"total": total,
"positive": pos,
"negative": neg,
"neutral": neu,
"data": df.to_dict(orient="records")
}
@app.route('/')
def dashboard():
sentiment_data = analyze_sentiment()
return render_template('dashboard.html', sentiment_data=sentiment_data)
@app.route('/health')
def health():
return {"status": "ok"}
if __name__ == '__main__':
app.run(host="0.0.0.0", port=7860)