sunny-annie's picture
Rename main.py to app.py
707768a
import streamlit as st
import torch
import time
from models.model_rnn import func
from models.model_ml import final
from models.LSTM_model import data_preprocessing, padding, preprocess_single_string, sentimentLSTM, load_model, predict_sentiment
from models.bert_func import load_bert_lr_model, prediction
import numpy as np
device = 'cuda' if torch.cuda.is_available() else 'cpu'
txt_label = 'Enter review text'
txt = st.text_area(label=txt_label, height=200)
with st.form('button'):
button_click = st.form_submit_button("Get result")
col1, col2, col3, col4 = st.columns(4)
with col1: # ML
st.write('ML model')
if button_click:
t = time.process_time()
output = final(txt)
elapsed_time = time.process_time() - t
st.write('`Negative review`' if np.around(output, 0) == 0 else '`Positive review`')
st.write('`Time elapsed :`', round(elapsed_time, 3))
with col2: # RNN
st.write('RNN model')
if button_click:
t = time.process_time()
output = func(txt)
elapsed_time = time.process_time() - t
st.write('`Negative review`' if np.around(output, 0) == 0 else '`Positive review`')
st.write('`Time elapsed :`', round(elapsed_time, 3))
with col3: # LSTM
st.write('LSTM model')
if button_click:
st.write(f'`{predict_sentiment(txt)}`')
t = time.process_time()
elapsed_time = time.process_time() - t
st.write('`Time elapsed :`', round(elapsed_time, 3))
model, tokenizer, lr = load_bert_lr_model('models/bert_lr.joblib')
with col4: # BERT
st.write('BERT')
if button_click:
t = time.process_time()
st.write(f'`{prediction(txt, model, tokenizer, lr)}`')
elapsed_time = time.process_time() - t
st.write('`Time elapsed :`', round(elapsed_time, 3))