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