AlejandraFlorezM commited on
Commit
8e8e307
·
verified ·
1 Parent(s): becdb4a

Delete app.py

Browse files
Files changed (1) hide show
  1. app.py +0 -61
app.py DELETED
@@ -1,61 +0,0 @@
1
- # Importar librerías necesarias
2
- import streamlit as st
3
- from transformers import AutoTokenizer, AutoModelForSequenceClassification
4
- import torch
5
- import numpy as np
6
-
7
- # Cargar el modelo BERT preentrenado y el tokenizador
8
- # Este modelo está entrenado para analizar sentimientos en textos breves como comentarios o frases
9
- MODEL_NAME = "bert-base-uncased"
10
- tokenizer = AutoTokenizer.from_pretrained(MODEL_NAME)
11
- model = AutoModelForSequenceClassification.from_pretrained(MODEL_NAME, num_labels=3)
12
-
13
- # Función para predecir el sentimiento de un texto
14
- def predecir_sentimiento(texto):
15
- """
16
- Toma un texto de entrada y devuelve la clasificación del sentimiento.
17
- Sentimientos posibles: Negativo, Neutral, Positivo.
18
- """
19
- # Convertir el texto en tokens utilizando el tokenizador de BERT
20
- entradas = tokenizer(texto, return_tensors="pt", truncation=True, padding=True, max_length=128)
21
-
22
- # Hacer la predicción sin calcular gradientes
23
- with torch.no_grad():
24
- salidas = model(**entradas)
25
- # Obtener el índice de la predicción más probable
26
- prediccion = np.argmax(salidas.logits.numpy(), axis=1)
27
-
28
- # Etiquetas de sentimientos
29
- etiquetas = ["Negativo", "Neutral", "Positivo"]
30
- return etiquetas[prediccion[0]]
31
-
32
- # Configuración de la interfaz en Streamlit
33
- # Título y descripción de la aplicación
34
- st.title("Análisis de Sentimientos con BERT")
35
- st.write("Esta aplicación utiliza un modelo preentrenado de BERT para clasificar el sentimiento de un texto en **Negativo**, **Neutral** o **Positivo**.\n\nPuedes escribir cualquier comentario, pensamiento o frase y te ayudaré a entender su tono general. 😊")
36
-
37
- # Entrada del usuario
38
- texto_usuario = st.text_area("¿Qué te gustaría compartir hoy?", "Cuéntame cómo te sientes...")
39
-
40
- # Botón para analizar el sentimiento
41
- if st.button("Analizar Sentimiento"):
42
- if texto_usuario.strip(): # Verificar que la entrada no esté vacía
43
- # Predecir el sentimiento del texto
44
- sentimiento = predecir_sentimiento(texto_usuario)
45
-
46
- # Mostrar el resultado con una respuesta más empática
47
- st.subheader(f"El sentimiento del texto es: {sentimiento}")
48
-
49
- # Personalización de la respuesta según el sentimiento
50
- if sentimiento == "Negativo":
51
- st.write("Parece que no estás del todo contento con esto, y está bien no saber cómo sentirse a veces. 😊")
52
- elif sentimiento == "Neutral":
53
- st.write("Hmm, el tono del texto parece neutro. Si necesitas hablar más sobre esto, ¡aquí estoy para escuchar! 🤗")
54
- elif sentimiento == "Positivo":
55
- st.write("¡Qué bien que te sientes positivo! 🌟 Sigue disfrutando esa energía.")
56
-
57
- # Detección de ambigüedad en el texto
58
- if "no sé" in texto_usuario.lower() or "confundido" in texto_usuario.lower():
59
- st.write("Parece que estás un poco indeciso, ¡y eso está bien! A veces los sentimientos son difíciles de descifrar. 😊")
60
- else:
61
- st.warning("Por favor ingresa un texto válido para analizar.")