Nlp_ / app.py
osheina's picture
Update app.py
2a7c985 verified
raw
history blame
4.14 kB
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>
/* Основные цвета */
:root {
--primaryColor: #00ffcc; /* Изумрудный */
--backgroundColor: #e6fff2; /* Светло-изумрудный фон */
--secondaryBackgroundColor: #80ffea; /* Средний оттенок изумрудного */
--textColor: #303030; /* Темно-серый для чёткости текста на светлом фоне */
--font: sans-serif; /* Шрифт без засечек для чистого и современного вида */
}
/* Кастомные стили CSS для боковой панели */
.css-1aumxhk {
background-color: #007a66; /* Слегка отличающийся фон для боковой панели */
border-right: 2px solid #ff6666; /* Добавляем границу с основным цветом */
}
/* Кастомные стили для кнопок */
.stButton>button {
color: #FAFAFA;
border: 2px solid #ff6666;
border-radius: 20px; /* Закругленные углы */
padding: 10px 24px;
font-size: 16px;
font-weight: bold;
background-color: transparent;
transition: all 0.3s; /* Плавное изменение стилей */
}
.stButton>button:hover {
background-color: #ff6666;
color: #2E2E2E;
}
</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()