Nlp_ / app.py
osheina's picture
Update app.py
e55ebc3 verified
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()