|
import streamlit as st |
|
import torch |
|
import requests |
|
import time |
|
import numpy as np |
|
import os |
|
from toxic1 import toxicity_page |
|
from strim_nlp import classic_ml_page |
|
from lstm import lstm_model_page |
|
from bert_strim import bert_model_page |
|
import pandas as pd |
|
|
|
|
|
|
|
st.markdown( |
|
""" |
|
<style> |
|
/* Установка фона для всего приложения */ |
|
body { |
|
background-color: #e6fff2; /* Светло-изумрудный фон */ |
|
} |
|
|
|
/* Кастомные стили CSS для боковой панели */ |
|
.sidebar .sidebar-content { |
|
background-color: #00ffcc; /* Изумрудный */ |
|
} |
|
|
|
/* Кастомные стили для кнопок */ |
|
.stButton>button { |
|
color: #303030; /* Темно-серый для чёткости текста на светлом фоне */ |
|
background-color: #6af5c8; /* Менее ярко-зеленая кнопка */ |
|
border-radius: 20px; /* Закругленные углы */ |
|
border: none; |
|
padding: 10px 24px; |
|
font-size: 16px; |
|
font-weight: bold; |
|
transition: all 0.3s; /* Плавное изменение стилей */ |
|
} |
|
.stButton>button:hover { |
|
background-color: #b3f0d4; /* Средний оттенок менее ярко-зеленой кнопки */ |
|
} |
|
</style> |
|
""", |
|
unsafe_allow_html=True |
|
) |
|
|
|
|
|
def app_description_page(): |
|
st.title("Welcome to My App!") |
|
st.markdown("<h3 style='font-size: 18px;'>This is a Streamlit application where you can explore four different models.</h3>", unsafe_allow_html=True) |
|
st.markdown("<h3 style='font-size: 18px;'>About the project:</h3>", unsafe_allow_html=True) |
|
st.markdown("<h3 style='font-size: 18px;'>The task is to train 3 different models on a dataset that contains reviews about the clinic.</h3>", unsafe_allow_html=True) |
|
st.markdown("<h3 style='font-size: 18px;'>You can write text and the model will classify it as “Negative” or “Positive”</h3>", unsafe_allow_html=True) |
|
data = { |
|
"Model": ["CatBoostClassifier", "LSTM", "Rubert-tiny2", "Rubert-tiny-toxicity"], |
|
"F1 metric": [0.87, 0.94, 0.90, 0.84] |
|
} |
|
df = pd.DataFrame(data) |
|
st.markdown("<h3 style='font-size: 18px;'>Models:</h3>", unsafe_allow_html=True) |
|
st.markdown("<h3 style='font-size: 18px;'>1. CatBoostClassifier trained on TF-IDF </h3>", unsafe_allow_html=True) |
|
st.markdown("<h3 style='font-size: 18px;'>2. LSTM with BahdanauAttention </h3>", unsafe_allow_html=True) |
|
st.markdown("<h3 style='font-size: 18px;'>3. Rubert-tiny2 </h3>", unsafe_allow_html=True) |
|
st.markdown("<h3 style='font-size: 18px;'>4. Rubert-tiny-toxicity </h3>", unsafe_allow_html=True) |
|
st.dataframe(df) |
|
st.image('20182704132259.jpg', use_column_width=True) |
|
|
|
def model_selection_page(): |
|
st.sidebar.title("Model Selection") |
|
selected_model = st.sidebar.radio("Select a model", ("Classic ML", "LSTM", "BERT")) |
|
|
|
if selected_model == "Classic ML": |
|
classic_ml_page() |
|
st.write("You selected Classic ML.") |
|
elif selected_model == "LSTM": |
|
lstm_model_page() |
|
st.write("You selected LSTM.") |
|
elif selected_model == "BERT": |
|
bert_model_page() |
|
st.write("You selected BERT.") |
|
|
|
def main(): |
|
page = st.sidebar.radio("Go to", ("App Description", "Model Selection", "Toxicity Model")) |
|
|
|
if page == "App Description": |
|
app_description_page() |
|
elif page == "Model Selection": |
|
model_selection_page() |
|
elif page == "Toxicity Model": |
|
toxicity_page() |
|
|
|
if __name__ == "__main__": |
|
main() |
|
|