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 # Crear la interfaz usando gr.Blocks with gr.Blocks() as demo: with gr.Row(): with gr.Column(): input_review = gr.Textbox(lines=2, placeholder="Ingrese una reseña de Amazon Fashion aquí...") analyze_button = gr.Button("Analizar") output_label = gr.Label() output_score = gr.Textbox() with gr.Column(): show_button = gr.Button("Mostrar Ejemplos") output_df = gr.Dataframe() analyze_button.click(analyze_sentiment, inputs=input_review, outputs=[output_label, output_score]) show_button.click(show_sample, inputs=None, outputs=output_df) # Lanza la interfaz if __name__ == "__main__": iface.launch()