Spaces:
Sleeping
Sleeping
File size: 2,457 Bytes
eedc2ca faff5a6 300defb eedc2ca 931664f faff5a6 931664f faff5a6 931664f eedc2ca 931664f faff5a6 931664f eedc2ca |
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 65 66 67 68 69 70 |
import gradio as gr
from transformers import pipeline
from PyPDF2 import PdfReader
import logging
# Imprimir la versi贸n de Gradio en los logs
logging.info(f"Versi贸n de Gradio instalada: {gr.__version__}")
# 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() |