Spaces:
Sleeping
Sleeping
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() |