demo_DiagTrast / app.py
JCarlos's picture
Update app.py
5672138
raw
history blame
No virus
2.74 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)
model_xml='hackathon-somos-nlp-2023/DiagTrast-xlm-roberta-base'
tokenizer_xml = AutoTokenizer.from_pretrained(model_xml)
classifier_xml = pipeline("text-classification", model=model_xml)
#####################
st.title('🏥 Diagnóstico de Trastornos Mentales')
DemoTab, AboutTab = st.tabs(["Demo", "Acerca de"])
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)
- [hackathon-somos-nlp-2023/DiagTrast-xlm-roberta-base](https://huggingface.co/hackathon-somos-nlp-2023/DiagTrast-xlm-roberta-base)
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]()
- [Miguel Ángel Solís Orozco](https://huggingface.co/homosapienssapiens)
- [Jose Carlos Vílchez Villegas](https://huggingface.co/JCarlos)
""")
with DemoTab:
with st.form(key="diagtrast_form"):
sintomas = st.text_input(label = 'Introduce síntomas:',
value = 'La gente cuando me ve por la calle me mira y halagan mi belleza')
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))
pred_xml = classifier_xml.predict(utils.clean_text(sintomas))
df = pd.DataFrame({
'Modelo': ["DiagTrast-Berto", "DiagTrast-xlm-roberta-base"],
'Diagnóstico': [pred_berto[0]['label'], pred_xml[0]['label']],
'Score': [f"{pred_berto[0]['score']:.2%}", f"{pred_xml[0]['score']:.2%}"]
})
st.markdown("### Resultados:")
st.caption("")
st.dataframe(df, use_container_width=True)
st.caption("")
alert = st.success("✅ ¡Hecho!")