import gradio as gr | |
import pandas as pd | |
from transformers import pipeline | |
# Inicializa la pipeline de análisis de sentimientos | |
sentiment_pipeline = pipeline("sentiment-analysis") | |
# Función para cargar los datos | |
def load_reviews(): | |
# Asegúrate de usar la ruta correcta al archivo .json.gz en tu espacio de Hugging Face | |
df = pd.read_json('AMAZON_FASHION_5.json.gz', lines=True, compression='gzip') | |
return df | |
# Función para analizar el sentimiento de una reseña | |
def analyze_sentiment(review): | |
# Usa la pipeline de transformers para analizar el sentimiento | |
result = sentiment_pipeline(review) | |
# Devuelve solo la etiqueta ('LABEL_0' o 'LABEL_1') y el puntaje | |
return result[0]['label'], round(result[0]['score'], 4) | |
# Carga los datos (esto puede tardar un poco dependiendo del tamaño del archivo) | |
df_reviews = load_reviews() | |
# Función para mostrar una muestra del DataFrame | |
def show_sample(): | |
return df_reviews.sample(5) # Muestra 5 filas aleatorias del DataFrame | |
# Gradio interface | |
iface = gr.Interface( | |
fn=analyze_sentiment, | |
inputs=gr.Textbox(lines=2, placeholder="Ingrese una reseña de Amazon Fashion aquí..."), | |
outputs=[gr.Label(), gr.Textbox()] | |
) | |
# Añade un bloque para mostrar una muestra del DataFrame | |
iface.add_component(gr.components.Dataframe(), function=show_sample) | |
# Lanza la interfaz | |
if __name__ == "__main__": | |
iface.launch() | |