独家 | 轻松上手,通过微调Transformers完成命名实体识别任务
作者:Lars Kjeldgaard 翻译:王闯(Chuck)
校对:和中华
本文约2500字,建议阅读7分钟 本文基于丹麦团队研发的Python开源包NERDA演示了如何通过简单微调BERT Transformer来处理NER任务。

照片源自Pixabay,作者vinsky2002
命名实体识别简介
工具箱

“NERDA” Python包的官方徽标,由Ekstra Bladet新闻提供
pip install NERDAfrom NERDA.datasets import get_conll_data, download_conll_data download_conll_data()training = get_conll_data('train')validation = get_conll_data('valid')
Germany [B-LOC]'s [O]representative [O]to [O]the [O]European [B-ORG]Union [I-ORG]'s [O]veterinary [O]committee [O]Werner [B-PER]Zwingmann [I-PER]said [O]on [O]Wednesday [O]...
建模
tag_scheme = ['B-PER','I-PER','B-ORG','I-ORG','B-LOC','I-LOC','B-MISC','I-MISC']
transformer = 'bert-base-multilingual-uncased'# hyperparameters for networkdropout = 0.1# hyperparameters for trainingtraininghyperparameters = {'epochs' : 4,'warmup_steps' : 500,'train_batch_size': 13,'learning_rate': 0.0001}
整合
from NERDA.models import NERDAmodel = NERDA(dataset_training = training,dataset_validation = validation,tag_scheme = tag_scheme,tag_outside = 'O',transformer = transformer,dropout = dropout,hyperparameters = training_hyperparameters)
model.train()>>> test = get_conll_data('test')>>> model.evaluate_performance(test)级别F1-分数B-PER 0.963I-PER 0.987B-ORG 0.887I-ORG 0.866B-LOC 0.922I-LOC 0.817B- MISC 0.823I-MISC 0.680AVG_MICRO 0.907
>>> model.predict_text('Cristiano Ronaldo plays for Juventus FC')([['Cristian', 'Ronaldo', 'plays', 'for', 'Juventus', 'FC']],[['B-PER', 'I-PER', 'O', 'O', 'B-ORG', 'I-ORG']])
微调任意Transformer
model = NERDA(...,transformer = 'google/electra-small-discriminator',...)
微调任意语言
from NERDA.datasets import get_dane_datamodel = NERDA(...,dataset_training = get_dane_data('train'),dataset_validation = get_dane_data('dev'),...)
关于NERDA
原文标题:
Easy Fine-Tuning of Transformers for Named-Entity Recognition
原文链接:
https://towardsdatascience.com/easy-fine-tuning-of-transformers-for-named-entity-recognition-d72f2b5340e3
https://github.com/ebanalyse/NERDA
https://huggingface.co/
https://pytorch.org/
https://github.com/google-research/bert
“DaNE: A Named Entity Ressource for Danish”, Hvingelby et. al (2020):http://www.lrec-conf.org/proceedings/lrec2020/pdf/2020.lrec-1.565.pdf
https://github.com/google-research/electra
https://towardsdatascience.com/what-are-transformers-and-how-can-you-use-them-f7ccd546071a
https://towardsdatascience.com/bert-explained-state-of-the-art-language-model-for-nlp-f8b21a9b6270
https://towardsdatascience.com/understanding-electra-and-training-an-electra-language-model-3d33e3a9660d
译者简介
王闯(Chuck),台湾清华大学资讯工程硕士。曾任奥浦诺管理咨询公司数据分析主管,现任尼尔森市场研究公司数据科学经理。很荣幸有机会通过数据派THU微信公众平台和各位老师、同学以及同行前辈们交流学习。
翻译组招募信息
工作内容:需要一颗细致的心,将选取好的外文文章翻译成流畅的中文。如果你是数据科学/统计学/计算机类的留学生,或在海外从事相关工作,或对自己外语水平有信心的朋友欢迎加入翻译小组。
你能得到:定期的翻译培训提高志愿者的翻译水平,提高对于数据科学前沿的认知,海外的朋友可以和国内技术应用发展保持联系,THU数据派产学研的背景为志愿者带来好的发展机遇。
其他福利:来自于名企的数据科学工作者,北大清华以及海外等名校学生他们都将成为你在翻译小组的伙伴。
点击文末“阅读原文”加入数据派团队~
转载须知
如需转载,请在开篇显著位置注明作者和出处(转自:数据派ID:DatapiTHU),并在文章结尾放置数据派醒目二维码。有原创标识文章,请发送【文章名称-待授权公众号名称及ID】至联系邮箱,申请白名单授权并按要求编辑。
发布后请将链接反馈至联系邮箱(见下方)。未经许可的转载以及改编者,我们将依法追究其法律责任。
点击“阅读原文”拥抱组织


