Phonalitics / home.py
stanlys96's picture
Upload 2 files
ef922eb verified
import streamlit as st
from wordcloud import WordCloud
import pandas as pd
import matplotlib.pyplot as plt
from PIL import Image
import os
import re
st.header("🔥 Phone Brands Word Clouds")
data = pd.read_csv("final_dataset_text_processed.csv")
data.dropna(inplace=True)
val = st.sidebar.pills("Choose Phone Word Clouds To Show", data["tipe_produk"].unique(), selection_mode="multi", default="Galaxy S24")
for the_value in val:
the_product = data[data["tipe_produk"] == the_value]
if not the_product.empty:
text_data = " ".join(data["text_processed"])
wordcloud = WordCloud(width=800, height=400, background_color='white').generate(text_data)
regex = re.compile(r"^(.*)\.[^.]+$")
col1, col2 = st.columns([2.5, 7.5])
image = None
for item in os.listdir("images"):
item_cleaned = regex.match(item).group(1)
if item_cleaned.lower().strip() == the_value.lower().strip():
image = Image.open(f"./images/{item}")
break
with col1:
if image:
st.markdown(f"### {the_value}")
st.image(image, caption=f"{the_value} Image")
with col2:
st.markdown(f"### Word Cloud for {the_value}")
plt.figure(figsize=(10, 5))
plt.imshow(wordcloud, interpolation='bilinear')
plt.axis("off")
st.pyplot(plt)
st.write('<div style="padding: 10px;"></div>', unsafe_allow_html=True)