batraccoon's picture
First commit
36ceedd verified
raw
history blame contribute delete
No virus
2.69 kB
#Import library
import pandas as pd
import numpy as np
import streamlit as st
#library for visualization
import matplotlib.pyplot as plt
import seaborn as sns
import plotly.express as px
from wordcloud import WordCloud
st.set_page_config(
page_title="Tweet Sentiment Pilkada 2017 EDA")
#function untuk menjalakan streamlit model predictor
def run():
# Set title
st.title('Tweet Sentiment Pilkada DKI Jakarta 2017 Dataset : Exploratory Data Analysis')
#pemisah(garis2)
st.markdown('----')
#image
st.image('https://images.bisnis.com/posts/2017/02/13/628337/foto.jpg')
st.text('desc : kertas pemilu kepala daerah DKI Jakarta 2017')
st.text('img source : bisnis.com')
#load dataset
df = pd.read_csv('dataset_tweet_sentiment_pilkada_DKI_2017.csv')
#title df
st.subheader('Tweet Sentiment Pilkada DKI Jakarta 2017 Dataframe')
#show dataframe in streamlit
st.dataframe(df.head(20))
st.markdown('----')
st.subheader('Exploratory Data Analysis (EDA)')
#visualisasi interaktif piechart
st.markdown('#### Visualisasi Pie Chart')
opsi2 = st.selectbox(' Choose the feature : ', ('Pasangan Calon', 'Sentiment'))
fig, ax = plt.subplots(figsize=(8, 8))
df[opsi2].value_counts().plot(kind='pie', autopct='%1.1f%%', ax=ax)
ax.set_title(f'{opsi2} Pie Chart')
ax.set_ylabel('')
st.pyplot(fig)
st.text(f'{opsi2} piechart')
if opsi2 == 'Pasangan Calon':
st.write('Dataset ini memiliki perbandingan jumlah tweet untuk setiap pasangan calon yang seimbang yaitu pada 33.3% untuk calon Ahok-Djarot, Agus-Sylvi, dan Anies-Sandi.')
else:
st.write('Dataset ini memiliki perbandingan jumlah sentimen positive dan negative yang seimbang yaitu 50% untuk sentimen positive dan negative. Dataset yang seimbang akan berdampak baik pada proses training data karena model akan mempelajari data dengan baik. ')
#visualisasi kolom kolom martial_status, education level, dan sex terhadap default status next month
# Ambil data teks dari DataFrame (misalnya eda['Text Tweet'])
all_tweets_text = ' '.join(df['Text Tweet'])
# Membuat WordCloud
wordcloud = WordCloud(width=800, height=400, background_color='white', min_font_size=10, max_words=8).generate(all_tweets_text)
# Menampilkan WordCloud menggunakan Streamlit
st.title("WordCloud of Tweets")
st.image(wordcloud.to_array(), use_column_width=True)
st.write('Berdasarkan visualisasi wordcloud diatas, berikut adalah 8 kata yang paling banyak muncul pada tweet di dataset ini seperti pilkadadki2017, yang, AHY, AniesSandi, dan, di, AhokDjarot,dan Ahok.')
if __name__ == "__main__":
run()