Spaces:
Sleeping
Sleeping
File size: 2,974 Bytes
4e31838 8133eba 45df403 8133eba e8d05b7 4e31838 8133eba 1ead3f8 13aebb5 1ead3f8 8133eba 1ead3f8 8133eba e8d05b7 4e31838 304869d ce311a9 4e31838 304869d ce311a9 4e31838 e8d05b7 2537cf0 e8d05b7 4e31838 2f8d9c7 4e31838 e8d05b7 4e31838 c95266e 8133eba |
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 |
import streamlit as st
from transformers import pipeline
# Carga de los dos modelos de an谩lisis de sentimientos
model_1 = pipeline("sentiment-analysis", model="nlptown/bert-base-multilingual-uncased-sentiment")
model_2 = pipeline("sentiment-analysis", model="finiteautomata/beto-sentiment-analysis")
# T铆tulo de la app
st.title("Evaluador de Servicio al Cliente")
# Inicializa el estado para el input_text si no existe
if "input_text" not in st.session_state:
st.session_state["input_text"] = ""
# Funci贸n para mostrar el resultado
def mostrar_resultado(resultado):
if resultado['label'] in ['4 stars','5 stars','POS']:
st.success(f"Sentimiento: {resultado['label']} (Precisi贸n: {resultado['score']:.4f})")
elif resultado['label'] in ['3 stars','NEU']:
st.info(f"Sentimiento: {resultado['label']} (Precisi贸n: {resultado['score']:.4f})")
else:
st.error(f"Sentimiento: {resultado['label']} (Precisi贸n: {resultado['score']:.4f})")
# Funci贸n para analizar el sentimiento
def analizar_sentimiento(texto):
resultado_1 = model_1(texto)[0]
resultado_2 = model_2(texto)[0]
# Mostrar resultados del primer modelo
st.html("""</br>Resultado con <code>nlptown/bert-base-multilingual-uncased-sentiment</code></br>
<small>* <i>Modelo basado en BERT y entrenado para 6 lenguajes con 50k revisiones en espa帽ol</i></small>
""")
mostrar_resultado(resultado_1)
# Mostrar resultados del segundo modelo
st.html("""</br>Resultado con <code>finiteautomata/beto-sentiment-analysis</code></br>
<small>* <i>Modelo basado en BERT y entrenado con 5k tweets espec铆ficamente en espa帽ol</i></small>
""")
mostrar_resultado(resultado_2)
# Funci贸n para actualizar el texto desde la barra lateral
def actualizar_texto(nuevo_texto):
st.session_state["input_text"] = nuevo_texto
# Mostrar el campo de texto principal con el valor desde session_state
input_text = st.text_input(
"Cu茅ntanos tu opini贸n acerca de nuestro servicio:",
value=st.session_state["input_text"]
)
# Bot贸n para ejecutar el an谩lisis
if st.button("Analizar"):
if input_text:
analizar_sentimiento(input_text)
else:
st.warning("Por favor, cu茅ntanos tu opini贸n acerca de nuestro servicio.")
# Barra lateral con sugerencias de texto
st.sidebar.header("Sugerencias de texto")
st.sidebar.button("Estoy muy feliz con el servicio prestado", on_click=actualizar_texto, args=("Estoy muy feliz con el servicio prestado",))
st.sidebar.button("El servicio prestado es un desastre total", on_click=actualizar_texto, args=("El servicio prestado es un desastre total",))
st.sidebar.button("El servicio estuvo m谩s o menos", on_click=actualizar_texto, args=("El servicio estuvo m谩s o menos",))
st.sidebar.button("Soy fan de las sorpresas... m谩s si son facturas inesperadas", on_click=actualizar_texto, args=("Soy fan de las sorpresas... m谩s si son facturas inesperadas",))
|