salsabilapl's picture
Update app.py
2a935dd
raw
history blame contribute delete
No virus
1.75 kB
import streamlit as st
import pandas as pd
import joblib
from gensim import corpora, models
from PIL import Image
# Load the saved models and data
dictionary = joblib.load('doc2bowa.sav')
lda_model = joblib.load('ldamodela.sav')
# Function to preprocess input text and get topic distribution
def get_topics(text):
bow_vector = dictionary(text.split())
topics = lda_model[bow_vector]
return topics
# Function to get top keywords for a topic
def get_top_keywords(topic, num_keywords=10):
topic = lda_model.show_topic(topic, topn=num_keywords)
keywords = [f"{word} ({weight:.3f})" for word, weight in topic]
return keywords
# Streamlit app
def main():
st.title("Aplikasi Diskusi Topic Produk Menggunakan Latent Dirichlet Allocation pada Komentar Youtube📰")
# Sidebar with title and description
st.sidebar.title("Aplikasi Diskusi Topic Produk")
st.sidebar.write("Menemukan topik di Komentar Youtube.")
# Input text area for user to enter their text
user_input = st.text_area("Masukkan Komentar Youtube:")
# Submit button
if st.button("Kirim"):
if user_input:
# Process the user's input and get topic distribution
topics = get_topics(user_input)
# Display the top topics
st.subheader("🔥Top Topik🔥")
for topic in topics:
st.write(f"**📍Topik {topic[0] + 1}** (Skor: {topic[1]:.4f})")
top_keywords = get_top_keywords(topic[0])
st.markdown(", ".join(top_keywords))
st.write("---")
# Add a footer
st.sidebar.markdown("---")
st.sidebar.write("© 2023 Aplikasi Diskusi Topic Produk")
if __name__ == "__main__":
main()