import gradio as gr | |
from transformers import AutoTokenizer, AutoModelForTokenClassification | |
from transformers import pipeline | |
import re | |
description = "Named Entity Recognition Using BERT" | |
title = "NERBERT" | |
examples = [["Hey, Alex here from London!"], ["My name is Wolfgang and I live in Berlin"]] | |
def findNER(example): | |
tokenizer = AutoTokenizer.from_pretrained("dslim/bert-base-NER") | |
model = AutoModelForTokenClassification.from_pretrained("dslim/bert-base-NER") | |
ner_pipeline = pipeline("ner", model=model, tokenizer=tokenizer) | |
pipeline_output = ner_pipeline(example) | |
final_output = [] | |
# all_words = re.split(r'[^a-zA-Z0-9\s]', example) | |
for _ in pipeline_output: | |
final_output.extend([(_['word'], _['entity'])]) | |
return final_output | |
interface = gr.Interface(fn=findNER, inputs='text', outputs=['highlight'], examples=examples, description=description, title=title, interpretation='default') | |
interface.launch() |