Spaces:
Runtime error
Runtime error
import streamlit as st | |
import pandas as pd | |
import seaborn as sns | |
import matplotlib.pyplot as plt | |
import plotly.express as px | |
from PIL import Image | |
from wordcloud import WordCloud | |
st.set_page_config( | |
page_title = 'Sentiment Analysis', | |
layout = 'wide', | |
initial_sidebar_state='expanded' | |
) | |
def run(): | |
# title | |
st.title( 'Sentiment Prediction') | |
# sub header | |
st.subheader('Positive, Neutral, Negative') | |
# insert image | |
image = Image.open('sensi.jpg') | |
st.image(image, caption='image from AltextSoft, education purpose only') | |
# Deskripsi | |
st.write('Exploratory Data from dataset') | |
# show data frame | |
st.write('The first 10 Data') | |
df = pd.read_csv('https://raw.githubusercontent.com/mukhlishr/rasyidi/main/tripadvisor_hotel_reviews.csv') | |
st.dataframe(df.head(10)) | |
# Barplot target columns | |
st.write('###### Rating ') | |
fig=plt.figure(figsize=(15,5)) | |
sns.countplot(x='Rating', data = df) | |
st.pyplot(fig) | |
def Sentimen(x): | |
if x<= 5 and x>3: | |
return 'positive' | |
if x== 3: | |
return 'neutral' | |
if x< 3 and x>=1: | |
return 'negative' | |
# Create column 'sentimen' | |
df['sentimen'] = df['Rating'].apply(Sentimen) | |
# Barplot Sentiment | |
st.write('###### Sentiment of Review ') | |
fig=plt.figure(figsize=(15,5)) | |
sns.countplot(x='sentimen', data = df) | |
st.pyplot(fig) | |
# Wordcloud | |
st.write('###### Word Cloud ') | |
def show_wordcloud(data, title = None): | |
wordcloud = WordCloud( | |
background_color='black', | |
max_words=200, | |
max_font_size=45, | |
scale=1, | |
random_state=1 | |
).generate(" ".join(data)) | |
fig = plt.figure(1, figsize=(15, 15)) | |
plt.axis('off') | |
if title: | |
fig.suptitle(title, fontsize=20) | |
fig.subplots_adjust(top=2.3) | |
plt.imshow(wordcloud) | |
st.pyplot(fig) | |
# Wordcloud all | |
show_wordcloud(df['Review'].values) | |
if __name__ == '__main__': | |
run() |