nlp-project / pages /classification_reviews.py
Ruslan-DS's picture
Update pages/classification_reviews.py
e717656
import streamlit as st
import numpy as np
import time
from models.LogReg import predict_1
from models.BertTunning import predict_2
from models.LSTM import predict_3
push_button = None
REVIEW = {0: 'Отрицательный отзыв', 1: 'Положительный отзыв'}
st.write("""
# Модели для предсказания положительных/отрицательных отзывов📝
""")
st.info("##### 🤖На данной странице приведены 3 различные модели, способные выполнять, поставленную задачу:"
"\n- RuBERT + LogisticRegression"
"\n- Fine Tinnig RuBERT with 2 Fully Connected Layers"
"\n- Fast Text Vectorizer + LSTM with Attention")
st.info('###### 📈Процесс обучения моделей, описание Датасета и визуализация метрик вы сможете изучить на странице "Итоги".')
with st.sidebar:
st.warning("📍Выберите любую модель, с помощью которой хотите определить вид отзыва:")
users_choice = st.radio('Выберите модель:', options=['BERT + LogReg', 'BERT with Tunnig', 'LSTM'], index=None)
if users_choice is not None:
review_users = st.text_input('**Пожалуйста, введите свой отзыв:**')
if review_users is not None and review_users != '':
with st.sidebar:
st.warning('📍Нажмите на кнопку, чтобы получить тип отзыва:')
push_button = st.button('Получить тип отзыва >>>')
start_time = time.time()
if users_choice is not None:
if users_choice == 'BERT + LogReg':
if push_button:
predict = predict_1(review_users)
st.write(f'🦾**Модель «LogReg» предсказала Вашему отзыву следующий класс:** «{REVIEW[predict]}»')
st.write(f'🕔**Работа модели «LogReg» и процесс предсказания занял:** {round(time.time() - start_time, 2)} **сек.**')
st.warning("- ###### Данная модель имеет склоность отдавать предпочтение Положительному классу! Будьте внимательны!")
elif users_choice == 'BERT with Tunnig':
if push_button:
predict = predict_2(review_users)
st.write(f'🦾**Модель «BERT with Tunnig» предсказала Вашему отзыву следующий класс:** «{REVIEW[predict]}»')
st.write(
f'🕔**Работа модели «BERT with Tunnig» и процесс предсказания занял:** {round(time.time() - start_time, 2)} **сек.**')
st.warning(
"- ###### Данная модель имеет склоность отдавать предпочтение Положительному классу! Будьте внимательны!")
elif users_choice == 'LSTM':
if push_button:
predict = predict_3(review_users)
st.write(f'🦾**Модель «LSTM» предсказала Вашему отзыву следующий класс:** «{REVIEW[predict]}»')
st.write(
f'🕔**Работа модели «LSTM» и процесс предсказания занял:** {round(time.time() - start_time, 2)} **сек.**')
st.warning(
"- ###### Данная модель имеет склоность отдавать предпочтение Положительному классу! Будьте внимательны!")