emiliol's picture
ChatGPT updates from logs
8c6ebcd verified
from transformers import pipeline
import gradio as gr
# Load the NER pipeline
try:
ner_model = pipeline("ner", model="dslim/bert-base-NER", aggregation_strategy="simple")
print("Model loaded successfully.")
except Exception as e:
ner_model = None
print(f"Error loading model: {e}")
def extract_named_entities(text):
if ner_model is None:
return [["Error", "Model not loaded", 0.0]]
if not text.strip():
return [["Error", "No input provided", 0.0]]
try:
entities = ner_model(text)
# Convert list of dictionaries to list of lists for Gradio compatibility
return [[ent["entity_group"], ent["word"], round(ent["score"], 3)] for ent in entities]
except Exception as e:
return [["Error", str(e), 0.0]]
# Define the Gradio interface
iface = gr.Interface(
fn=extract_named_entities,
inputs=gr.Textbox(lines=5, label="Input Text"),
outputs=gr.Dataframe(headers=["Entity", "Text", "Score"], label="Named Entities"),
title="Named Entity Recognition",
description="Input some text and get the named entities (like names, locations, organizations).",
)
if __name__ == "__main__":
iface.launch()