File size: 2,739 Bytes
ad75dbd
5672138
3be88b5
5672138
ad75dbd
3be88b5
 
 
a460ebb
3be88b5
a460ebb
2919eda
 
 
3be88b5
5672138
2919eda
 
3be88b5
 
 
5672138
3be88b5
5672138
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
603a2e2
3be88b5
5672138
 
 
 
 
 
 
 
 
 
 
 
 
 
 
5ec754d
5672138
 
603a2e2
5672138
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
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!")