|
|
|
import streamlit as st
|
|
import predict
|
|
import logging
|
|
|
|
|
|
logging.basicConfig(level=logging.DEBUG, format='%(asctime)s - %(levelname)s - %(message)s')
|
|
|
|
|
|
df = predict.load_dataset()
|
|
model, tokenizer = predict.load_model_and_tokenizer()
|
|
|
|
if df is not None and model is not None and tokenizer is not None:
|
|
|
|
manual_stopwords = ["di", "ke", "dari", "yang", "dan", "atau", "dengan", "untuk", "ini", "itu", "aja", "saja", "lah", "bri", "brimo", "aplikasi", "rekening", "coba", "yg", "ke", "untuk", "nya", "saya", "dia", "dan", "sangat", "video", "login", "apk", "jadi", "akun", "malah", "uang", "banget", "dalam", "atm", "padahal"]
|
|
stop_words = set(predict.stopwords.words('indonesian'))
|
|
stop_words.update(manual_stopwords)
|
|
factory = predict.StemmerFactory()
|
|
stemmer = factory.create_stemmer()
|
|
df['label'] = df['score'].apply(predict.map_labels)
|
|
|
|
navigation = st.sidebar.selectbox('Choose Page:', ('predictor', 'eda'))
|
|
|
|
if navigation == 'predictor':
|
|
predict.run(model, tokenizer, stop_words, stemmer)
|
|
|
|
|
|
else:
|
|
if df is None:
|
|
logging.error("Failed to load dataset.")
|
|
st.error("Failed to load the dataset. Please check the dataset file.")
|
|
if model is None or tokenizer is None:
|
|
logging.error("Failed to load model or tokenizer.")
|
|
st.error("Failed to load the model or tokenizer. Please check the model file.") |