#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()