File size: 3,946 Bytes
e717656
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
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(
                    "- ###### Данная модель имеет склоность отдавать предпочтение Положительному классу! Будьте внимательны!")