BERT NER
1.0.0
استخدم Google Bert للقيام conll-2003 ner!
نموذج القطار باستخدام Python والاستدلال باستخدام C ++
Albert-TF2.0
Bert-Ner-Tensorflow-2.0
بيرت سيكاد
python3pip3 install -r requirements.txt python run_ner.py --data_dir=data/ --bert_model=bert-base-cased --task_name=ner --output_dir=out_base --max_seq_length=128 --do_train --num_train_epochs 5 --do_eval --warmup_proportion=0.1
precision recall f1-score support
PER 0.9677 0.9745 0.9711 1842
LOC 0.9654 0.9711 0.9682 1837
MISC 0.8851 0.9111 0.8979 922
ORG 0.9299 0.9292 0.9295 1341
avg / total 0.9456 0.9534 0.9495 5942
precision recall f1-score support
PER 0.9635 0.9629 0.9632 1617
ORG 0.8883 0.9097 0.8989 1661
LOC 0.9272 0.9317 0.9294 1668
MISC 0.7689 0.8248 0.7959 702
avg / total 0.9065 0.9209 0.9135 5648
precision recall f1-score support
ORG 0.9288 0.9441 0.9364 1341
LOC 0.9754 0.9728 0.9741 1837
MISC 0.8976 0.9219 0.9096 922
PER 0.9762 0.9799 0.9781 1842
avg / total 0.9531 0.9606 0.9568 5942
precision recall f1-score support
LOC 0.9366 0.9293 0.9329 1668
ORG 0.8881 0.9175 0.9026 1661
PER 0.9695 0.9623 0.9659 1617
MISC 0.7787 0.8319 0.8044 702
avg / total 0.9121 0.9232 0.9174 5648
from bert import Ner
model = Ner ( "out_base/" )
output = model . predict ( "Steve went to Paris" )
print ( output )
'''
[
{
"confidence": 0.9981840252876282,
"tag": "B-PER",
"word": "Steve"
},
{
"confidence": 0.9998939037322998,
"tag": "O",
"word": "went"
},
{
"confidence": 0.999891996383667,
"tag": "O",
"word": "to"
},
{
"confidence": 0.9991968274116516,
"tag": "B-LOC",
"word": "Paris"
}
]
''' تثبيت cmake ، تم اختباره مع الإصدار cmake 3.10.2
تم تنزيل Unsip Model و libtorch في BERT-NER
ترجمة C ++ التطبيق
cd cpp-app/
cmake -DCMAKE_PREFIX_PATH=../libtorch
make
تطبيق الجري
./app ../base
NB: يتم تقسيم نموذج Bert-Base C ++ إلى جزأين.
jit trace لا يدعم input المعتمد for الحلقة أو if الظروف داخل وظيفة forword من model .تم نشر نموذج Bert NER كأبي راحة
python api.py سيتم بث API عند 0.0.0.0:8000 نقطة نهاية predict
curl -X POST http://0.0.0.0:8000/predict -H 'Content-Type: application/json' -d '{ "text": "Steve went to Paris" }'
الإخراج
{
"result" : [
{
"confidence" : 0.9981840252876282 ,
"tag" : " B-PER " ,
"word" : " Steve "
},
{
"confidence" : 0.9998939037322998 ,
"tag" : " O " ,
"word" : " went "
},
{
"confidence" : 0.999891996383667 ,
"tag" : " O " ,
"word" : " to "
},
{
"confidence" : 0.9991968274116516 ,
"tag" : " B-LOC " ,
"word" : " Paris "
}
]
}
