File size: 2,209 Bytes
eedc2ca e6e702e 300defb 6ad0d2b e6e702e eedc2ca e6e702e 931664f e6e702e 931664f e6e702e 931664f e6e702e 931664f e6e702e 931664f e6e702e 931664f e6e702e 931664f e6e702e faff5a6 931664f e6e702e eedc2ca 931664f e6e702e 2839f8d e6e702e 2839f8d 3dbe115 931664f e6e702e 931664f 2839f8d e6e702e 6ad0d2b 2839f8d 931664f e6e702e eedc2ca e6e702e |
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 |
import gradio as gr
from transformers import pipeline
import PyPDF2
# Mostrar versión de Gradio
print(f"Versión de Gradio instalada: {gr.__version__}")
# Cargar el modelo de análisis de sentimientos
sentiment_analysis = pipeline("sentiment-analysis", model="nlptown/bert-base-multilingual-uncased-sentiment")
def analyze_text(input_text):
result = sentiment_analysis(input_text)[0]
label = result['label']
score = round(result['score'] * 100, 2) # Convertir a porcentaje
# Definir la categoría de sentimiento según la etiqueta
if label == "1 star":
sentiment_label = "Muy negativo"
elif label == "2 stars":
sentiment_label = "Negativo"
elif label == "3 stars":
sentiment_label = "Neutro"
elif label == "4 stars":
sentiment_label = "Positivo"
else:
sentiment_label = "Muy positivo"
return f"{sentiment_label} ({score}%)", score
def analyze_pdf(pdf_file):
pdf_reader = PyPDF2.PdfReader(pdf_file)
text = ""
for page in pdf_reader.pages:
text += page.extract_text()
return analyze_text(text)
# Interfaz de Gradio
def text_analysis(input_text):
sentiment, score = analyze_text(input_text)
return sentiment, score
def pdf_analysis(pdf_file):
sentiment, score = analyze_pdf(pdf_file)
return sentiment, score
with gr.Blocks() as app:
gr.Markdown("## Análisis de Sentimientos con DistilBETO")
with gr.Column():
gr.Markdown("### Análisis de Texto")
text_input = gr.Textbox(label="Ingrese texto para análisis")
text_button = gr.Button("Analizar texto")
text_output = gr.Label(label="Resultado del análisis")
slider_output = gr.Slider(label="Nivel de confianza en el resultado", minimum=0, maximum=100, interactive=False)
text_button.click(text_analysis, inputs=text_input, outputs=[text_output, slider_output])
with gr.Column():
gr.Markdown("### Análisis de PDF")
pdf_input = gr.File(label="Subir PDF para análisis")
pdf_button = gr.Button("Analizar PDF")
pdf_button.click(pdf_analysis, inputs=pdf_input, outputs=[text_output, slider_output])
# Ejecutar la aplicación
app.launch() |