Spaces:
Runtime error
Runtime error
from transformers import AutoModelForTokenClassification,AutoTokenizer,pipeline | |
import gradio as gr | |
import torch | |
model = AutoModelForTokenClassification.from_pretrained('uer/roberta-base-finetuned-cluener2020-chinese')#,local_files_only=True)#cache_dir="C:\2023\Huggingface_4_12\Gradio Tutorial",force_download=True) | |
# model = AutoModelForTokenClassification.from_pretrained('C:\\2023\Huggingface_4_12\Gradio Tutorial\cache3\Huggingface_4_12\Gradio Tutorial\models--uer--roberta-base-finetuned-cluener2020-chinese\blobs\3d20fdef0b0f04d283e1693ef4c030b133fa7c3c') | |
tokenizer = AutoTokenizer.from_pretrained('uer/roberta-base-finetuned-cluener2020-chinese')#,local_files_only=True) | |
ner_pipeline = pipeline('ner', model=model, tokenizer=tokenizer) | |
examples=["江苏警方通报特斯拉冲进店铺"] | |
def ner(text): | |
output1 = ner_pipeline(text) | |
output = [output1[0]] | |
if output[0]['entity'][1] == '-': | |
output[0]['entity'] = output[0]['entity'][2:len(output[0]['entity'])] | |
# j = 0 | |
for i in range(1,len(output1)): | |
if output1[i]['entity'][1] == '-': | |
output1[i]['entity'] = output1[i]['entity'][2:len(output1[i]['entity'])] | |
dict1 = output1[i] | |
u = len(output) - 1 | |
dict0 = output[u] | |
if (dict0['end'] == dict1['start']) and (dict0['entity'] == dict1['entity']): | |
dict = { | |
'entity':dict0['entity'], | |
'score':min(dict0['score'],dict1['score']), | |
'index':dict1['index'], | |
'word':dict0['word']+dict1['word'], | |
'start':dict0['start'], | |
'end':dict1['end'], | |
} | |
output[len(output) - 1] = dict | |
else: | |
dict = dict1 | |
output.append(dict) | |
# print('output_before',output) | |
# print('output_after',output) | |
return {"text": text, "entities": output} | |
demo = gr.Interface(ner, | |
gr.Textbox(placeholder="Enter sentence here..."), | |
gr.HighlightedText(), | |
examples=examples) | |
demo.launch() | |