Spaces:
Sleeping
Sleeping
Update secciones/procesar_textos.py
Browse files- secciones/procesar_textos.py +14 -15
secciones/procesar_textos.py
CHANGED
|
@@ -155,10 +155,10 @@ def predecir_suicidio_con_info(texto, modelo, tfidf_vectorizador):
|
|
| 155 |
|
| 156 |
# Confianza y nivel de riesgo
|
| 157 |
confianza = abs(pred_proba[1] - pred_proba[0])
|
| 158 |
-
nivel_riesgo = '
|
| 159 |
-
accion = 'Se recomienda buscar ayuda profesional inmediatamente.' if nivel_riesgo == '
|
| 160 |
else 'Se sugiere monitorear los sentimientos y considerar hablar con un profesional.' \
|
| 161 |
-
if nivel_riesgo == '
|
| 162 |
else 'Probablemente no hay riesgo inmediato, pero mant茅n una actitud positiva.'
|
| 163 |
|
| 164 |
# Traducciones de las etiquetas de polaridad y emociones al espa帽ol
|
|
@@ -180,7 +180,7 @@ def predecir_suicidio_con_info(texto, modelo, tfidf_vectorizador):
|
|
| 180 |
emocion_traducida = traducciones_emociones.get(emocion, emocion)
|
| 181 |
|
| 182 |
return {
|
| 183 |
-
"clasificacion": '
|
| 184 |
"probabilidad_suicidio": pred_proba[1],
|
| 185 |
"confianza": confianza,
|
| 186 |
"nivel_riesgo": nivel_riesgo,
|
|
@@ -195,9 +195,6 @@ def procesar_textos():
|
|
| 195 |
"""
|
| 196 |
Funci贸n principal para procesar textos en la aplicaci贸n Streamlit. Permite al usuario
|
| 197 |
ingresar o subir un texto, y luego utiliza el modelo y el vectorizador para analizarlo.
|
| 198 |
-
|
| 199 |
-
:param modelo: Modelo de machine learning para la predicci贸n.
|
| 200 |
-
:param tfidf_vectorizador: Vectorizador TF-IDF utilizado en el modelo.
|
| 201 |
"""
|
| 202 |
st.title("Analizar Texto")
|
| 203 |
modelo, tfidf_vectorizador = cargar_modelo_y_vectorizador()
|
|
@@ -222,24 +219,26 @@ def procesar_textos():
|
|
| 222 |
resultado = predecir_suicidio_con_info(text_to_process, modelo, tfidf_vectorizador)
|
| 223 |
|
| 224 |
# Estilos personalizados seg煤n el nivel de riesgo
|
| 225 |
-
if resultado['nivel_riesgo'] == '
|
| 226 |
color = "red"
|
| 227 |
-
elif resultado['nivel_riesgo'] == '
|
| 228 |
color = "orange"
|
| 229 |
else:
|
| 230 |
color = "green"
|
| 231 |
|
| 232 |
# Mostrar los resultados con estilos
|
| 233 |
st.markdown(f"<h2 style='color: {color};'>Resultado del An谩lisis:</h2>", unsafe_allow_html=True)
|
| 234 |
-
st.markdown(f"<b>
|
| 235 |
unsafe_allow_html=True)
|
| 236 |
st.markdown(f"<b>Polaridad:</b> {resultado['polaridad']}", unsafe_allow_html=True)
|
| 237 |
-
st.markdown(f"<b>Emoci贸n:</b> {resultado['emocion']}", unsafe_allow_html=True)
|
| 238 |
-
st.markdown(f"<b>Clasificaci贸n:</b> {resultado['clasificacion']}", unsafe_allow_html=True)
|
| 239 |
-
st.markdown(f"<b>
|
| 240 |
unsafe_allow_html=True)
|
| 241 |
-
st.markdown(f"<b>
|
| 242 |
|
| 243 |
-
st.markdown(f"<b>
|
|
|
|
| 244 |
else:
|
| 245 |
st.warning("Por favor, ingrese texto o suba un archivo.")
|
|
|
|
|
|
| 155 |
|
| 156 |
# Confianza y nivel de riesgo
|
| 157 |
confianza = abs(pred_proba[1] - pred_proba[0])
|
| 158 |
+
nivel_riesgo = 'ALTO' if pred_proba[1] > 0.75 else 'MODERADO' if pred_proba[1] > 0.5 else 'BAJO'
|
| 159 |
+
accion = 'Se recomienda buscar ayuda profesional inmediatamente.' if nivel_riesgo == 'ALTO' \
|
| 160 |
else 'Se sugiere monitorear los sentimientos y considerar hablar con un profesional.' \
|
| 161 |
+
if nivel_riesgo == 'MODERADO' \
|
| 162 |
else 'Probablemente no hay riesgo inmediato, pero mant茅n una actitud positiva.'
|
| 163 |
|
| 164 |
# Traducciones de las etiquetas de polaridad y emociones al espa帽ol
|
|
|
|
| 180 |
emocion_traducida = traducciones_emociones.get(emocion, emocion)
|
| 181 |
|
| 182 |
return {
|
| 183 |
+
"clasificacion": 'Alerta de riego suicida' if pred[0] == 1 else 'Ausencia de riego de suicidio',
|
| 184 |
"probabilidad_suicidio": pred_proba[1],
|
| 185 |
"confianza": confianza,
|
| 186 |
"nivel_riesgo": nivel_riesgo,
|
|
|
|
| 195 |
"""
|
| 196 |
Funci贸n principal para procesar textos en la aplicaci贸n Streamlit. Permite al usuario
|
| 197 |
ingresar o subir un texto, y luego utiliza el modelo y el vectorizador para analizarlo.
|
|
|
|
|
|
|
|
|
|
| 198 |
"""
|
| 199 |
st.title("Analizar Texto")
|
| 200 |
modelo, tfidf_vectorizador = cargar_modelo_y_vectorizador()
|
|
|
|
| 219 |
resultado = predecir_suicidio_con_info(text_to_process, modelo, tfidf_vectorizador)
|
| 220 |
|
| 221 |
# Estilos personalizados seg煤n el nivel de riesgo
|
| 222 |
+
if resultado['nivel_riesgo'] == 'ALTO':
|
| 223 |
color = "red"
|
| 224 |
+
elif resultado['nivel_riesgo'] == 'MODERADO':
|
| 225 |
color = "orange"
|
| 226 |
else:
|
| 227 |
color = "green"
|
| 228 |
|
| 229 |
# Mostrar los resultados con estilos
|
| 230 |
st.markdown(f"<h2 style='color: {color};'>Resultado del An谩lisis:</h2>", unsafe_allow_html=True)
|
| 231 |
+
st.markdown(f"<b>Grado de Riesgo:</b> <span style='color: {color};'>{resultado['nivel_riesgo']}</span>",
|
| 232 |
unsafe_allow_html=True)
|
| 233 |
st.markdown(f"<b>Polaridad:</b> {resultado['polaridad']}", unsafe_allow_html=True)
|
| 234 |
+
st.markdown(f"<b>Emoci贸n dominante:</b> {resultado['emocion']}", unsafe_allow_html=True)
|
| 235 |
+
st.markdown(f"<b>Clasificaci贸n de riesgo:</b> {resultado['clasificacion']}", unsafe_allow_html=True)
|
| 236 |
+
st.markdown(f"<b>Indice de riesgo de suicidio:</b> {resultado['probabilidad_suicidio']:.4f}",
|
| 237 |
unsafe_allow_html=True)
|
| 238 |
+
st.markdown(f"<b>Fiabilidad del an谩lisis:</b> {resultado['confianza']:.4f}", unsafe_allow_html=True)
|
| 239 |
|
| 240 |
+
st.markdown(f"<b>Recomendaciones de seguimiento:</b> {resultado['sugerencia_accion']}",
|
| 241 |
+
unsafe_allow_html=True)
|
| 242 |
else:
|
| 243 |
st.warning("Por favor, ingrese texto o suba un archivo.")
|
| 244 |
+
|