carlesabarca's picture
Cambio a slider
931664f
raw
history blame
2.33 kB
import gradio as gr
from transformers import pipeline
from PyPDF2 import PdfReader
# Cargar el modelo de DistilBETO
sentiment_analysis = pipeline("sentiment-analysis",
model="nlptown/bert-base-multilingual-uncased-sentiment")
# Funci贸n para analizar texto
def analyze_text_sentiment(text):
result = sentiment_analysis(text)[0]
score = result['score']
label = result['label']
# Convertir la etiqueta de sentimiento en un valor para el slider y su literal
if label == "1 star":
slider_value = 0
literal = "Muy negativo"
elif label == "2 stars":
slider_value = 25
literal = "Negativo"
elif label == "3 stars":
slider_value = 50
literal = "Neutro"
elif label == "4 stars":
slider_value = 75
literal = "Positivo"
elif label == "5 stars":
slider_value = 100
literal = "Muy positivo"
# A帽adir el nivel de confianza al literal
confidence = round(score * 100, 2)
literal_with_confidence = f"{literal} (Confianza: {confidence}%)"
return slider_value, literal_with_confidence
# Funci贸n para extraer texto de PDF y analizar
def analyze_pdf_sentiment(pdf_file):
pdf_reader = PdfReader(pdf_file.name)
text = ""
for page in pdf_reader.pages:
text += page.extract_text()
return analyze_text_sentiment(text)
# Interfaz de Gradio
with gr.Blocks() as demo:
with gr.Tabs():
with gr.Tab("Texto"):
text_input = gr.Textbox(label="Ingrese su texto aqu铆", lines=5)
analyze_button = gr.Button("Analizar")
slider_output = gr.Slider(label="Nivel de Sentimiento", minimum=0, maximum=100, step=1, interactive=False)
label_output = gr.Label()
analyze_button.click(analyze_text_sentiment, inputs=text_input, outputs=[slider_output, label_output])
with gr.Tab("PDF"):
pdf_input = gr.File(label="Subir PDF", file_types=[".pdf"])
analyze_button = gr.Button("Analizar")
slider_output = gr.Slider(label="Nivel de Sentimiento", minimum=0, maximum=100, step=1, interactive=False)
label_output = gr.Label()
analyze_button.click(analyze_pdf_sentiment, inputs=pdf_input, outputs=[slider_output, label_output])
demo.launch()