|
import streamlit as st |
|
import pandas as pd |
|
import utils |
|
import time |
|
|
|
from transformers import pipeline |
|
from transformers import AutoTokenizer |
|
from transformers import AutoModelForSequenceClassification |
|
|
|
|
|
|
|
model_berto='hackathon-somos-nlp-2023/DiagTrast-Berto' |
|
tokenizer_berto = AutoTokenizer.from_pretrained(model_berto) |
|
classifier_berto = pipeline("text-classification", model=model_berto) |
|
|
|
|
|
|
|
st.title('🏥 Diagnóstico de Trastornos Mentales') |
|
|
|
DemoTab, AboutTab = st.tabs(["Demo", "Acerca de"]) |
|
|
|
with DemoTab: |
|
with st.form(key="diagtrast_form"): |
|
sintomas = st.text_input(label = 'Introduce texto:', |
|
value = 'El paciente tiene problemas con el alohol. Normalmente toma decisiones importantes sin pensarlo profundamente. Tiene una idea pesimista de su persona y acude a sus familiares para sentirse mejor. No tiene la capacidad de controlar sus sentimientos, la mayoría de las veces los reprime.') |
|
|
|
submit_button = st.form_submit_button(label="Clasificar") |
|
|
|
st.markdown("##### Ejemplos") |
|
st.markdown("Se muestra impasivo emocionalmente.") |
|
st.markdown("Irresponsable en su trabajo, suele saltarse las normas. No le importa la opinión de los demás.") |
|
st.markdown("No puede controlar su ira.") |
|
|
|
if submit_button and not sintomas: |
|
st.warning("⚠️ Debe introducir los síntomas.") |
|
|
|
elif submit_button: |
|
with st.spinner('Clasificando...'): |
|
pred_berto = classifier_berto.predict(utils.clean_text(sintomas)) |
|
|
|
df = pd.DataFrame({ |
|
'Modelo': ["DiagTrast-Berto"], |
|
'Diagnóstico': [pred_berto[0]['label']] |
|
}) |
|
|
|
st.markdown("### Resultados:") |
|
st.caption("") |
|
|
|
st.dataframe(df, use_container_width=True) |
|
st.caption("") |
|
alert = st.success("✅ ¡Hecho!") |
|
|
|
with AboutTab: |
|
st.subheader("Motivación") |
|
st.markdown( |
|
"[Colocar aquí la motivación]." |
|
) |
|
|
|
st.subheader("Recursos") |
|
st.markdown(""" |
|
Modelos usados: |
|
- [hackathon-somos-nlp-2023/DiagTrast-Berto](https://huggingface.co/hackathon-somos-nlp-2023/DiagTrast-Berto) |
|
|
|
Dataset: |
|
- [hackathon-somos-nlp-2023/DiagTrast](https://huggingface.co/datasets/hackathon-somos-nlp-2023/DiagTrast) |
|
""") |
|
|
|
st.subheader("Equipo") |
|
st.markdown(""" |
|
- [Alberto Martín Garrido](https://huggingface.co/Stremie) |
|
- [Edgar Mencia](https://huggingface.co/edmenciab) |
|
- [Miguel Ángel Solís Orozco](https://huggingface.co/homosapienssapiens) |
|
- [Jose Carlos Vílchez Villegas](https://huggingface.co/JCarlos) |
|
""") |
|
|