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( "- ###### Данная модель имеет склоность отдавать предпочтение Положительному классу! Будьте внимательны!")