File size: 1,711 Bytes
28ef461
b3d8755
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
f83c6b6
 
 
 
48400b1
 
 
 
 
012c291
 
 
48400b1
012c291
 
48400b1
012c291
 
b3d8755
 
 
 
28ef461
 
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
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()