demo_DiagTrast / app.py
Stremie's picture
Update app.py
e9da180
raw
history blame
5.78 kB
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 Trastornos Mentales')
DemoTab, ConclusionTab, AboutTab = st.tabs(["Demo", "Conclusiones", "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")
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!")
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.")
st.markdown("Él siempre se siente incómodo cuando no es el centro de atención. Es una persona muy necesitada de reconocimiento y se siente ansioso cuando no es el foco de atención de los demás. A menudo busca formas de atraer la atención de los demás y siente que su autoestima depende de ello.")
st.markdown("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.")
with ConclusionTab:
st.subheader("Conclusiones")
st.markdown(
"Actualmente el proceso de diagnóstico de enfermedades mentales enfrenta retos importantes de subjetividad que podría llevar a un diagnóstico erróneo en un paciente. Uno de los documentos más avalados como refuerzo de diagnóstico es el DSM-5. Este conjunto de guías de diagnóstico han procedido a ser fundamentales en casos de pacientes difíciles de identificar. Sin embargo, sumergirse en las más de 500 hojas del DSM-5 puede llegar a ser abrumador. El objetivo de este proyecto ha sido tener un modelo que, por medio del lenguaje natural, los especialistas de la salud mental puedan describir el caso de un un paciente en concreto, dando así una sugerencia de diagnóstico para facilitar y concretar de manera más exacta un diagnóstico de salud mental."
)
st.subheader("Recursos")
st.markdown("""
Modelo:
- [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)
""")
with AboutTab:
st.subheader("Motivación")
st.markdown(
"Actualmente el proceso de diagnóstico de enfermedades mentales enfrenta retos importantes de subjetividad que podría llevar a un diagnóstico erróneo en un paciente. Uno de los documentos más avalados como refuerzo de diagnóstico es el DSM-5. Este conjunto de guías de diagnóstico han procedido a ser fundamentales en casos de pacientes difíciles de identificar. Sin embargo, sumergirse en las más de 500 hojas del DSM-5 puede llegar a ser abrumador. El objetivo de este proyecto ha sido tener un modelo que, por medio del lenguaje natural, los especialistas de la salud mental puedan describir el caso de un un paciente en concreto, dando así una sugerencia de diagnóstico para facilitar y concretar de manera más exacta un diagnóstico de salud mental."
)
st.subheader("Recursos")
st.markdown("""
Modelo:
- [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("ODS")
st.markdown("El presente proyecto se engloba en el objetivo número 3, Salud y bienestar, de los Objetivos de Desarrollo Sostenible de la ONU.")
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)
""")