Nacho86 commited on
Commit
612da4e
1 Parent(s): 61ec18d

Update secciones/procesar_textos.py

Browse files
Files changed (1) hide show
  1. 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 = '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,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": 'suicidio' if pred[0] == 1 else 'no suicidio',
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'] == 'alto':
226
  color = "red"
227
- elif resultado['nivel_riesgo'] == 'moderado':
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>Nivel de Riesgo:</b> <span style='color: {color};'>{resultado['nivel_riesgo']}</span>",
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>Probabilidad de Suicidio:</b> {resultado['probabilidad_suicidio']:.4f}",
240
  unsafe_allow_html=True)
241
- st.markdown(f"<b>Confianza:</b> {resultado['confianza']:.4f}", unsafe_allow_html=True)
242
 
243
- st.markdown(f"<b>Sugerencia de Acción:</b> {resultado['sugerencia_accion']}", unsafe_allow_html=True)
 
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
+