[roberta-large-ner-english] 是一个英文命名实体识别模型,它是在conll2003数据集上从roberta-large进行精调的。该模型在电子邮件/聊天数据上进行了验证,并在该类型数据上表现出色。特别是对于不以大写字母开头的实体,该模型似乎效果更好。
训练数据的分类如下:
Abbreviation | Description |
---|---|
O | Outside of a named entity |
MISC | Miscellaneous entity |
PER | Person’s name |
ORG | Organization |
LOC | Location |
为了简化,原始conll2003中的前缀B-或I-被移除。我使用了原始conll2003中的训练和测试数据集进行训练,使用“validation”数据集进行验证。因此得到的数据集大小为:
Train | Validation |
---|---|
17494 | 3250 |
from transformers import AutoTokenizer, AutoModelForTokenClassification tokenizer = AutoTokenizer.from_pretrained("Jean-Baptiste/roberta-large-ner-english") model = AutoModelForTokenClassification.from_pretrained("Jean-Baptiste/roberta-large-ner-english") ##### Process text sample (from wikipedia) from transformers import pipeline nlp = pipeline('ner', model=model, tokenizer=tokenizer, aggregation_strategy="simple") nlp("Apple was founded in 1976 by Steve Jobs, Steve Wozniak and Ronald Wayne to develop and sell Wozniak's Apple I personal computer") [{'entity_group': 'ORG', 'score': 0.99381506, 'word': ' Apple', 'start': 0, 'end': 5}, {'entity_group': 'PER', 'score': 0.99970853, 'word': ' Steve Jobs', 'start': 29, 'end': 39}, {'entity_group': 'PER', 'score': 0.99981767, 'word': ' Steve Wozniak', 'start': 41, 'end': 54}, {'entity_group': 'PER', 'score': 0.99956465, 'word': ' Ronald Wayne', 'start': 59, 'end': 71}, {'entity_group': 'PER', 'score': 0.9997918, 'word': ' Wozniak', 'start': 92, 'end': 99}, {'entity_group': 'MISC', 'score': 0.99956393, 'word': ' Apple I', 'start': 102, 'end': 109}]
在conll2003验证数据集上计算的模型性能(基于标记预测)
entity | precision | recall | f1 |
---|---|---|---|
PER | 0.9914 | 0.9927 | 0.9920 |
ORG | 0.9627 | 0.9661 | 0.9644 |
LOC | 0.9795 | 0.9862 | 0.9828 |
MISC | 0.9292 | 0.9262 | 0.9277 |
Overall | 0.9740 | 0.9766 | 0.9753 |
在私有数据集(电子邮件、聊天、非正式讨论)上,基于词预测计算得到:
entity | precision | recall | f1 |
---|---|---|---|
PER | 0.8823 | 0.9116 | 0.8967 |
ORG | 0.7694 | 0.7292 | 0.7487 |
LOC | 0.8619 | 0.7768 | 0.8171 |
相比之下,Spacy(en_core_web_trf-3.2.0)在相同的私有数据集上给出的结果为:
entity | precision | recall | f1 |
---|---|---|---|
PER | 0.9146 | 0.8287 | 0.8695 |
ORG | 0.7655 | 0.6437 | 0.6993 |
LOC | 0.8727 | 0.6180 | 0.7236 |
对于那些可能感兴趣的人,这里有一篇关于我如何使用该模型的结果来训练一个用于检测电子邮件中签名的LSTM模型的简短文章:
https://medium.com/@jean-baptiste.polle/lstm-model-for-email-signature-detection-8e990384fefa