RepiuBOSS / app.py
kaz9112's picture
fix add nltk download
2cc611e
import streamlit as st
import pandas as pd
import gensim
import joblib
import numpy as np
import tensorflow as tf
from tensorflow.keras.models import Sequential, Model
from tensorflow.keras.layers import Embedding, TextVectorization, GlobalAveragePooling1D, Input, LSTM, GRU, Dropout, Dense
import nltk
import func
nltk.download('wordnet')
nltk.download('punkt')
from func import TextProcess, Label, TextProcess2
lda_model_inf = gensim.models.LdaModel.load('lda.model')
model = tf.keras.models.load_model('model_imp')
# with open('model_imp.pkl', 'rb') as file_1:
# model = joblib.load(file_1)
with open('dictionary.pkl', 'rb') as file_4:
dictionary_inf = joblib.load(file_4)
def run():
# Membuat Title
st.title('Negative Review clustering insights')
# membuat form
with st.form(key='form_parameters'):
text_input = st.text_input('Reviews', 'Barangnya tidak sesuai gambar')
submitted_text = st.form_submit_button('Show topic')
data_inf = {
'text': text_input
}
data_inf = pd.DataFrame([data_inf])
if submitted_text:
data_inf['text_processed'] = data_inf['text'].apply(lambda x: TextProcess(x))
Message_body_inf = data_inf['text_processed']
data_inf['text_processed_2'] = data_inf['text'].apply(lambda x: TextProcess2(x))
Message_body_inf_2 = data_inf['text_processed_2']
y_pred_inf = model.predict(Message_body_inf_2)
y_pred_inf = np.where(y_pred_inf >= 0.5, 1, 0)
if y_pred_inf == 0:
st.write('Negative sentiment')
for i in range(len(Message_body_inf)):
bow_vector = dictionary_inf.doc2bow(Message_body_inf[i])
for index, score in sorted(lda_model_inf[bow_vector], key=lambda tup: -1*tup[1]):
# st.write(f"Score: {round(score*100)}%")
st.write(f"Complaint: {Label(index)}")
# st.write("Complaint: {}".format(Label(index)))
break
st.write('------------------------------------')
else:
st.write('Positive sentiment')
if __name__ == '__main__':
run()