| 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() |