城市直播房产教育博客汽车
快传网
汽车报价
买车新车
博客专栏
专题精品
教育留学
高考读书
房产家居
彩票视频
直播黑猫
投资微博
城市上海
政务旅游

一文详解BERT模型实现NER命名实体抽取王文广

12月16日 飞虹塔投稿
  在自然语言处理和知识图谱中,实体抽取、NER是一个基本任务,也是产业化应用NLP和知识图谱的关键技术之一。BERT是一个大规模预训练模型,它通过精心设计的掩码语言模型(MaskedLanguageModel,MLM)来模拟人类对语言的认知,并对数十亿个词所组成的语料进行预训练而形成强大的基础语义,形成了效果卓绝的模型。通过BERT来进行实体抽取、NER的方法是当前在NLP和知识图谱的产业化应用中最常用的方法,是效果与成本权衡下的最佳选择。本文详细讲解使用BERT来进行实体抽取,看完本文就会用当前工业界最佳的模型了。
  什么是实体抽取?
  实体是一个常见的名词,《知识图谱:认知智能理论与实战》一书将其定义为:
  实体(Entity):是指一种独立的、拥有清晰特征的、能够区别于其他事物的事物。在信息抽取、自然语言处理和知识图谱等领域,用来描述这些事物的信息即实体。实体可以是抽象的或者具体的。
  在实体抽取中,实体也成为命名实体(NamedEntity),是指在实体之上会将其分门别类,用实体类型来框定不同的实体。图1是一些常见的实体的例子,比如城市类型的实体上海,公司类型的实体达观数据等。
  图1实体示例
  实体抽取(EntityExtraction,EE)的目标就是识别一段文本中所包含的实体,在其他语境中,也被称之为实体识别(EntityRecognition,ER)、命名实体识别(NamedEntityRecognition,NER),这些不同的名词在大多数情况下所指代的意思是一样的。
  举例来说,有一段文本:
  达观数据与同济大学联合共建的知识图谱与语义计算联合实验室正式揭牌成立
  识别出其中的蓝色部分,并标记为机构类型的实体,就是实体抽取。实体抽取的过程通常可以分为是两个阶段:
  识别出所有表示实体的词汇
  将这些词汇分类到不同实体类型中
  在传统的命名实体识别任务中,通常有人物、机构、地点等。而在知识图谱中,实体类型可以有数十种,甚至数百种。对于知识图谱来说,将各种文本中的实体抽取出来是最基本的任务,有许多方法都致力于解决这个问题。
  图2实体抽取案例
  众所周知,实体抽取的复杂程度十分之高,这不仅仅有上图中的这样复杂的文档的原因,语言本身的理解也存在重重困难,有些场景下即使是人类也会出现不解之处。比如语言中隐含着专业的背景知识,隐形或显性的上下文语境,同样的文本表达着完全不同的概念,而相同的概念又有多变的语言表达方法等等。这些综合的原因使得理解语言成为了人工智能皇冠上的明珠,而从文本中抽取实体则不可避免地要理解语言,实体抽取的效果则依赖于对语言理解的程度。
  图3语言理解困难重重
  历史上,用来进行实体抽取的方法包括基于规则的方法、机器学习方法、深度学习方法和弱监督学习方法等几大类,每类方法中都有很多种不同的算法,具体的算法内容可以参考《知识图谱:认知智能理论与实战》第三章《实体抽取》(P78136)。
  BERT介绍
  BERT是英文BidirectionalEncoderRepresentationsfromTransformers的缩写,是Google开发的一种基于Transformer的深度学习技术,用于人工智能领域的文本预训练。BERT由JacobDevlin和他在Google的同事于2018年创建,并在论文《BERT:PretrainingofDeepBidirectionalTransformersforLanguageUnderstanding》中发布。在2019年,谷歌宣布已开始在其搜索引擎中使用BERT,到2020年底,它几乎在搜索查询中都使用了BERT。在2020年的一篇论文《APrimerinBERTology:WhatWeKnowAboutHowBERTWorks》中提到Inalittleoverayear,BERThasbecomeaubiquitousbaselineinNLPexperimentsandinspirednumerousstudiesanalyzingthemodelandproposingvariousimprovements。Thestreamofpapersseemstobeacceleratingratherthanslowingdown,andwehopethatthissurveyhelpsthecommunitytofocusonthebiggestunresolvedquestions。自从BERT出来以后,也引导了至今炙手可热的大模型浪潮。其本质就是预训练微调:
  图4BERT模型,来自参考文献〔2〕
  对于普罗大众来说,人工智能的标志性事件当属AlphaGo,号称人类最难的智力游戏败于机器,可是街头巷尾的谈资。
  在自然语言处理领域,BERT在当时的自然语言处理领域可谓掀起轩然大波,总结起来有:
  在机器阅读理解顶级水平测试SQuAD1。1中表现出惊人成绩,首次两个衡量指标上全面超越人类,并且还在11种不同NLP测试中创出最佳成绩。
  关于SQuAD数据集和评测参考https:rajpurkar。github。ioSQuADexplorer,当前是2。0版本。
  谷歌团队成员ThangLuong表示,BERT模型开启了NLP的新时代
  证明了通过大规模语料集预训练的技术,能够大幅度提升各类文本阅读理解的效果,也因此,大模型自此兴起
  MaskedLM(见下图)通过学习masked的词,不仅让模型学会了上下文信息,还学会了语法syntax、语义semantics、语用pragmatics等,并能够很好地学会部分领域知识
  预训练模型越大,效果越好;对应的,成本也会越高。相比于单任务模型来说,无监督的预训练模型成本要大1000倍以上
  学术界传统上认为,在一些很难处理的文字阅读理解任务上,计算机有望能够全面超越人类
  图5掩码语言模型
  掩码语言模型的提出则来自于Google的更早些的一篇论文《AttentionIsAllYouNeed》(下载地址:https:arxiv。orgpdf1706。03762。pdf)所提到的Transformers模型(见下图)。但BERT与Transformers略有区别,使用的是其编码器部分,这点从BERT的论文标题也可以看出来。事实上,当前炙手可热的大模型中(如GPT3等),几乎都依赖于Transformers的模型结构,特别是其中的自注意力机制。《知识图谱:认知智能理论与实战》一书P123130的BERT模型详解一节则对结合代码实现该BERT的模型结构进行详细的解析,通俗易懂,非常适合阅读来深入理解BERT模型。上述两篇论文则提供了更多的实验对比素材,深入阅读有助于了解BERT为何会在当时引起轰动,以至于在NLP领域引领风骚数年。
  图6Transformer模型结构
  此外值得一提的是,Google最初发布的BERT模型有两种配置:
  BERTBASE:12个编码器,带有12个双向自注意力头;
  BERTLARGE:24个编码器,带有16个双向自注意力头。
  这两种配置结构类似,Large版本要比Base版本更大,效果自然更好,同时使用时资源要求也更高。本文以Base版本示例,以使得在一张显卡上即可完成。换成Large版本不用改变任何代码,但因为网络更大,可能需要更高级的显卡或多卡来支持模型的训练。
  语料准备
  本文采用MSRA实体抽取数据集,并使用BIO标记方法来标记,数据集在GitHub上有很多,也可以GitHub官网下载。
  (https:github。comwgwangkgbooktreemaindatasetsNERMSRA)
  MSRA数据集中,实体类型有三种:
  LOC:地点类型
  ORG:机构类型
  PER:人物类型
  一个例子为:
  O
  、O
  中BORG
  国IORG
  作IORG
  协IORG
  和O
  现BLOC
  代ILOC
  文ILOC
  学ILOC
  馆ILOC
  负O
  责O
  人O
  在O
  巴BPER
  金IPER
  家O
  中O
  介O
  绍O
  文BLOC
  学ILOC
  馆ILOC
  新O
  馆O
  设O
  计O
  模O
  型O
  。O
  从上述例子可以看出:1。中国作协是组织机构(ORG)类型:
  BORG标签:因为它是一个机构实体的开始IORG标签:因为它是一个机构实体的延续
  2。现代文学馆和文学馆是地点(LOC)类型:BLOC标签:因为它是地点实体的开始ILOC标签:因为它是地点实体的延续
  3。巴金是任务(PER)类型:BPER标签:因为它是人物实体的开始IPER标签:因为它是人物实体的延续
  4。其他词被分配O标签:因为它们不是任何实体
  使用BERT来进行实体抽取的话,需要将语料进行处理,转化成列表的形式(traindata和testdata,对应于原始的train。txt和test。txt),列表的每一个元素是一个键值对元组,键为文本列表,值为标签列表。如下图所示:
  图7数据样例
  用BERT进行实体抽取这里使用最流行的PyTorch框架来实现。首先是引入相关的库。
  这里选择的是Google发布的模型bertbasechinese(https:huggingface。comodels提供了大量的模型供使用,包括各种专业的预训练模型,比如面向金融领域FinBERT,面向医药领域的MedBERT等等):
  BERTNAMEbertbasechinese
  转化为torch能够使用的数据集
  再用如下代码将torch的dataset转化为按微批提取的dataloader:
  到此,数据准备完成,后面就可以使用数据集来训练模型和测试模型效果了。
  构建模型
  在本文中,我们将使用来自HuggingFace的预训练BERT基础模型。既然我们要在token级别对文本进行分类,那么我们需要使用BertForTokenClassificationclass。
  BertForTokenClassificationclass是一个包装BERT模型并在BERT模型之上添加线性层的模型,将充当token级分类器。基于BertForTokenClassificationclass来创建基于BERT的实体抽取模型非常简单,见下面代码:
  通过如下代码即可实例化一个用BERT进行实体抽取的模型:
  modelBertModel(len(label2id)1)
  训练
  我们的BERT模型的训练循环是标准的PyTorch训练循环。在训练模型中,需要使用GPU,否则会非常耗时。GPU建议使用nvidia的显卡提供,1080ti及其更高版本皆可。modelmodel。cuda()
  由于BERT已经使用了大规模语料训练并得到了通用的语义表示,通常使用的话,仅需要重新微调最上面一层即可。为此,需要冻结其他不需要训练的层的参数。下面代码实现了这个逻辑:
  接下来就是常见的深度学习训练方法了,这里使用AdamW优化器,其他优化器也可以根据需要进行选择,具体的参考PyTorch的官方文档。
  lr0。00005
  optimizertorch。optim。AdamW(optimizergroupedparameters,lrlr)
  下面是具体的训练代码:
  在测试数据上评估模型现在我们已经训练了用于抽取实体的BERT模型。在前面数据集准备中还有测试集,这里可以使用测试集来看效果:
  另外,上述的效果评估是比较简单的,实际应用中还可以使用更为精细的评估方法,比如按所抽取的实体来评估的方法。更多的用于评估实体抽取的方法可参考《实体抽取:如何评估算法的效果?》一文。
  (https:mp。weixin。qq。comsSTS8N1PBML2BvkO5NfiXg)
  结论
  本文介绍了全面介绍了如何使用BERT进行实体抽取,并给出了代码实例。通过本文,读者可以很方便地依瓢画葫芦实现一个基于BERT模型的实体抽取程序,从而学会工业界中最好用的实体抽取模型,并将其应用到学习或工作当中。
  具体来说,本文内容包括:
  介绍了什么是实体抽取
  介绍了什么是BERT
  用代码实例介绍了如何使用BERT进行实体抽取的完整过程,这包括四个内容:
  准备数据
  构建模型
  训练模型
  测试模型效果参考文献
  AshishVaswanietc。,AttentionIsAllYouNeed,arxiv:1706。03762,2017JacobDevlinetc。,BERT:PretrainingofDeepBidirectionalTransformersforLanguageUnderstanding,arxiv:1810。04805,2018AnnaRogersetc。,APrimerinBERTology:WhatWeKnowAboutHowBERTWorks,arxiv:2002。123272020王文广,知识图谱:认知智能理论与实战,电子工业出版社,2022
  作者简介王文广,达观数据副总裁,高级工程师,《知识图谱:认知智能理论与实战》作者,曾获得上海市计算机学会科技进步奖二等奖和上海市浦东新区科技进步奖二等奖,专注于自然语言处理、知识图谱、图像与语音分析、认知智能、大数据和图分析等方向的技术研究和产品开发。现在是上海市人工智能标准化技术委员会委员,上海科委评审专家,中国计算机学会(CCF)高级会员,中文信息学会(CIPS)语言与知识计算专委会委员,中国人工智能学会(CAAI)深度学习专委会委员。申请有数十项人工智能领域的国家发明专利,在国内外知名期刊会议上发表有十多篇学术论文。曾带队获得国内国际顶尖算法竞赛ACMKDDCUP、EMIHackathon、中国法研杯法律智能竞赛、CCKS知识图谱评测的冠亚季军成绩。在达观数据致力于将自然语言处理、知识图谱、计算机视觉和大数据技术产品化,以OCR、文档智能处理、知识图谱、RPA等产品服务于金融、智能制造、贸易、半导体、汽车工业、航空航天、新能源、双碳等领域。
投诉 评论 转载

如何停止精神内耗?【过度内耗怎么办?】一件事情想好多遍,检查很多遍,好痛苦呀,觉得生活真的没有意思。一直在精神内耗,不断的回忆过去,越来越敏感,越来越在意别人,越来越自卑,感觉自己一……又一巨头倒下?国内最早的海淘平台人去楼空又一行业巨头倒下?随着近几年全球化步伐的加快,及全球贸易机制、全球物流的完善,越来越多消费者已经实现买全球,卖全球的消费需求,这也让跨境电商这个行业已经成为了全新的风口行……法国公布世界杯大名单,透露德尚的野心,回归4231梦回201尽管德尚之前宣称只会带上足够健康的球员参加世界杯,但是德尚还是带上了瓦拉内、金彭贝、本泽马等多名刚刚伤愈、尚未完全康复的球员,在法国刚刚公布的25人世界杯大名单中,人才辈出的法……这才是白萝卜最营养的吃法,比大鱼大肉还香,开胃下饭又解馋生活没有彩排,美食没有美颜。大家好,今天用萝卜给大家分享一道美食。萝卜,日常生活中非常常见的一种食材,可以用来做成各种各样好吃的美食。特别是在冬天,萝卜丰收的季节,萝卜更是特别……角球直接破门被判无效!徐正源直面谢晖压着打,成都蓉城客场惜败10月9日,成都蓉城在中超第22轮中客场0比2不敌大连人。上半场,成都蓉城在压着打的情况下,却因为后防的疏漏和门将的判断失误在客场落后。下半场,罗慕洛的角球直接破门因为队友冲撞……斯里兰卡宣告破产,欠中国的65亿美元怎么办?近年来,疫情的反复爆发给人们的生活带来了轻微或严重的影响,各国经济也受到了严重打击。美国是世界上最大的经济体系。作为仅次于美国的第二大经济体,我国的综合国力和经济也受到了……Meta二季度营收首次出现下滑,元宇宙业务毫无起色图片来源:视觉中国当地时间7月27日,Facebook母公司Meta公布了截至2022年6月30日的第二季度财务。Meta当季营收首次出现同比下滑,净收入也同比下降了36……一文详解BERT模型实现NER命名实体抽取王文广在自然语言处理和知识图谱中,实体抽取、NER是一个基本任务,也是产业化应用NLP和知识图谱的关键技术之一。BERT是一个大规模预训练模型,它通过精心设计的掩码语言模型(Mask……Huobi易主,百域接盘图片来源视觉中国文陀螺财经加密交易平台HuobiGlobal宣布HuobiGlobal控股股东公司已向百域资本旗下基金转让所持有的全部HuobiGlobal股份,百……NASA发布本次绕月首张太空拍地球影像距上次拍摄已过50年来源:海外网猎户座无人宇宙飞船拍摄的地球影象。(NASA发布)海外网11月17日电据美媒今日佛罗里达新闻网16日报道,美国国家航空航天局(NASA)登月火箭阿尔忒弥斯1号……马刺双加时战胜奇才!这要进季后赛的节奏,穆雷三双311314今天马刺在客场经过双加时157153战胜奇才,排名西部第十一个第十二差一个胜场,马刺要加油啦。看看今天的数据:穆雷311314约翰逊3272玻尔特尔281182沃克234……烟台经典的海滨美景都在哪?这八个必去的地方,你去对了吗?烟台市因境内烟台山得名。明洪武三十一年(1398年),为预防倭寇,曾在今烟台山设狼烟墩台。(一)长岛海上大花园观两海交界推荐理由:长岛上险峻的悬崖,可以再此垂……
走过沧桑,别来无恙国家电影局电影剧本(梗概)备案立项公示183部,北京备案43高人气爆款发型17款,百变时尚有特色,美到让人看不够中国女排天才少女猛如虎安装系统时到错误?别怕!三种方法教你解决问题收藏!十堰这些景区春节期间有优惠火箭探花贾巴里史密斯就你叫字母哥啊?昙花一现,只为韦陀昙花就在身边你却没有看见有数说2022年12月固收类理财产品收益榜出炉股份制银行稳坐英飞拓两年亏损21亿,可股价大涨300,这是什么情况?论网络顺风车平台监管华为冬季全场景新品发布会,多款新品集中亮相
一份超全面的英语学习指南快速提高英语口语热文女人泡脚有什么好处勤泡脚这5个好处找上门网络贷款寒冷突然消失了博君一肖CP粉神操作惹怒众人,王一博街舞战队选手遭遇困扰河南21高考一本投档线公布,报考两极分化,学生嫌弃本地上学鲁班出什么装备(鲁班后期出什么装备最厉害)白山又怎么储存时间长白山药怎么储存时间长阿克塞石油小镇传说阿克塞石油小镇一夜失踪了吗感恩朋友的一封信历史上青龙偃月刀到底有多重呢?青龙偃月刀出土照片教育工作计划

友情链接:中准网聚热点快百科快传网快生活快软网快好知文好找江西南阳嘉兴昆明铜陵滨州广东西昌常德梅州兰州阳江运城金华广西萍乡大理重庆诸暨泉州安庆南充武汉辽宁