BetoBiobert / app.py
AleMarroquin18's picture
Rename app.js to app.py
da1b191 verified
# INTERFAZ USANDO GRADIO
from transformers import pipeline
import gradio as gr
import pandas as pd
# Cargar el modelo entrenado
model_path = "AleMarroquin18/beto-finetuned-ner"
nlp_ner = pipeline("token-classification", model=model_path, tokenizer=model_path)
# Función para predecir y estructurar los resultados
def predict_entities(text):
results = nlp_ner(text)
if not results: # Si no hay entidades detectadas
return "No se detectaron entidades."
# Crear un DataFrame para estructurar los resultados
data = {
"Token": [result["word"] for result in results],
"Etiqueta": [result["entity"] for result in results],
"Confianza (%)": [f'{result["score"]*100:.2f}' for result in results],
"Inicio": [result["start"] for result in results],
"Fin": [result["end"] for result in results]
}
df = pd.DataFrame(data)
return df
# Interfaz con una tabla como salida
interface_beto = gr.Interface(
fn=predict_entities,
inputs=gr.Textbox(lines=2, placeholder="Escribe un texto para analizar entidades"),
outputs=gr.Dataframe(headers=["Token", "entity", "Confianza (%)", "Inicio", "Fin"]),
title="BETO NER",
description="Prueba el modelo fine-tuneado de BETO en BioBERT para NER."
)
# Lanzar la interfaz
interface_beto.launch()