全文共3880字,预计学习时长20分钟或更长

bert模型是啥 被封神的多语言BERT模型是如何开启NER新时代的(1)

在世界数据科学界, BERT模型的公布无疑是自然语言处理领域最激动人心的大事件。

鉴于BERT还未广为人知,特此做出以下解释:BERT是一种以转换器为基础,进行上下文词语预测,从而得出最优结果的语言表征模型。计算语言学协会北美分会将BERT论文评为年度最佳长篇论文。谷歌研究发布了经过预训练的BERT模型,包括多语言、中文和英文BERT。

会话人工智能框架Deeppavlov是基于iPavlov开发的,它包含构建对话系统所需的所有组件。BERT发布之后,其处理多种任务的能力令人惊异。

BERT可以集成到三个常用NLP任务的解决方案中:文本分类、标记和问题回答。本文将将详细阐释如何在DeepPavlov中使用基于BERT的命名实体识别(NER)。

bert模型是啥 被封神的多语言BERT模型是如何开启NER新时代的(2)

NER介绍

命名实体识别(NER)是NLP中最常见的任务之一,可以将其表述为:

给定一个标记序列(单词和可能的标点符号),为序列中的每个标记提供一个来自预定义标记集的标记。

下图标示句是NER在演示中的输出,其中蓝色代表人物标签,绿色代表位置,黄色代表地理位置,灰色代表日期时间。

bert模型是啥 被封神的多语言BERT模型是如何开启NER新时代的(3)

Deeppavlov ner模型支持19个标签:org(组织)、gpe(国家、城市、州)、loc(位置)、事件(命名为飓风、战斗、战争、体育活动)、日期、基数、金额、人物等。Deeppavlov的NER模型在命令行中处理的语句如下所示。

>> Amtech , which also provides technical temporary employment services to aerospace , defense , computer and high - tech companies in the Southwest and Baltimore - Washington areas , said its final audited results are due in late November . ['B-ORG', 'O', 'O', 'O', 'O', 'O', 'O', 'O', 'O', 'O', 'O', 'O', 'O', 'O', 'O', 'O', 'O', 'O', 'O', 'O', 'O', 'O', 'B-LOC', 'O', 'B-GPE', 'O', 'B-GPE', 'O', 'O', 'O', 'O', 'O', 'O', 'O', 'O', 'O', 'O', 'B-DATE', 'I-DATE', 'O']

>> Amtech还为西南部和华盛顿巴尔的摩地区的航空航天、国防、计算机和高科技公司提供临时技术就业服务,该公司表示,其最终审计结果将于11月底公布。

BIO标记方案用于区分具有相同标记的相邻实体,其中“B”表示实体的开头,“I”表示“中间”,它用于除第一个实体外的所有组成实体的单词,“O”则表示不是实体。

NER有多种业务应用程序。例如,NER可通过从简历中提取重要信息来帮助人力资源部门简历的评估。此外,NER还可用于识别客户请求中的相关实体——如产品规格、部门或公司分支机构的详细信息,以便对请求进行相应分类并转发给相关部门。

bert模型是啥 被封神的多语言BERT模型是如何开启NER新时代的(4)

如何在Deeppavlov中使用基于Bert的NER模型

任何预处理的模型都可以通过命令行界面和Python进行推理。在使用模型之前,请确保使用以下命令安装了所有必需的软件包:

python -m deeppavlov install ner_ontonotes_bert_mult python -m deeppavlov interact ner_ontonotes_bert_mult [-d]

其中ner_ontonotes_bert_mult表示配置文件的名称。

可以通过Python代码与模型进行交互。

from deeppavlov import configs, build_model ner_model = build_model(configs.ner.ner_ontonotes_bert_mult, download=True) ner_model(['World Curling Championship will be held in Antananarivo'])

此外,DeepPavlov包含一个基于RuBERT的处理俄语数据的模型。

总体而言,比起基于双LSTM-通用报告格式的模型,基于BERT的模型有了实质性的改进。

通过下表可以看到基于英语和俄语的模型的性能。

bert模型是啥 被封神的多语言BERT模型是如何开启NER新时代的(5)

bert模型是啥 被封神的多语言BERT模型是如何开启NER新时代的(6)

多语种Zero-Shot转移

多语言BERT模型支持执行从一种语言到另一种语言的零距离传输。

ner_ontonotes_bert_mult模型是在OntoNotes语料库上训练的,该语料库在标记模式中有19种类型。

你可以在不同的语言上测试模型。

from deeppavlov import configs, build_model ner_model = build_model(configs.ner.ner_ontonotes_bert_mult, download=True) ner_model([ 'Meteorologist Lachlan Stone said the snowfall in Queensland was an unusual occurrence ' 'in a state with a sub-tropical to tropical climate.', 'Церемония награждения пройдет 27 октября в развлекательном комплексе Hollywood and ' 'Highland Center в Лос-Анджелесе (штат Калифорния, США).', 'Das Orchester der Philharmonie Poznań widmet sich jetzt bereits zum zweiten ' 'Mal der Musik dieses aus Deutschland vertriebenen Komponisten. Waghalter ' 'stammte aus einer jüdischen Warschauer Familie.'])

bert模型是啥 被封神的多语言BERT模型是如何开启NER新时代的(7)

在俄语语料库3上对模型性能进行了评价。以下是转移的结果。

bert模型是啥 被封神的多语言BERT模型是如何开启NER新时代的(8)

多语言模型在第3集俄语语料库上的性能

bert模型是啥 被封神的多语言BERT模型是如何开启NER新时代的(9)

如何为NER配置BERT

Config/fag文件夹下单独配置文件对deeppavlov nlp 进行定义。配置文件由四个主要部分组成:dataset_reader、dataset_iterator、chainer和train。

所有基于BERT的模型的公共元素都是配置文件chainer部分中的BERT预处理器(对于NER,是bert_ner_preprocessor类)块。未经加工的文本(即,“Alex goes to Atlanta”)应该传递给bert_ner_preprocessor,以便将记号化为子记号,用它们的索引编码子记号,并创建记号和段掩码。token参数本身包含一个句子标志列表([' Alex ', ' goes ', ' to ', ' Atlanta ']), subword_token带有特殊的标志。([' [CLS], ' Alex ', ' goes ', ' to ', ' Atlanta ', ' [SEP]])。subword_tok_id包含令牌id,而subword_mask是一个列表,其中0表示特殊的令牌,1表示句子的令牌([0 1 1 1 1 1 0])。

{ "class_name": "bert_ner_preprocessor", "vocab_file": "{BERT_PATH}/vocab.txt", "do_lower_case": false, "max_seq_length": 512, "max_subword_length": 15, "token_maksing_prob": 0.0, "in": ["x"], "out": ["x_tokens", "x_subword_tokens", "x_subword_tok_ids", "pred_subword_mask"] }

以上是本文想介绍的关于以多语种BERT模型为基础的NER的全部内容。

bert模型是啥 被封神的多语言BERT模型是如何开启NER新时代的(10)

bert模型是啥 被封神的多语言BERT模型是如何开启NER新时代的(11)

留言 点赞 关注

我们一起分享AI学习与发展的干货

欢迎关注全平台AI垂类自媒体 “读芯术”

,