利用Bert模型进行命名实体识别

2020-07-08  本文已影响0人  刘单纯

之前两天也写了word2vec和Transformer,其实都是在为今天的内容做铺垫。最近正好使用bert做了命名实体识别项目,借这个契机分享出来,希望能帮到有需要的人。

自然语言的表示

之所以之前自然语言处理的发展没有达到CV领域,很大一部分原因是很难把抽象的语言用准确的数学方式表示。

张三说的【川普】真可爱
【川普】在地球和太阳之间反复横跳

BERT的paper标题叫Pre-training of Deep Bidirectional Transformers for Language Understanding,人工发动self-attention,这个模型的重点在“Deep”,“Bidirectional”。没错!就是深层双向Transformer。这个模型真的是一个很大很重的模型,base版本的参数里有1.1亿,Large版本的有3.4亿(突然想起最近的GPT3的1700亿参数,可怕!!!)

image.png

其实这些模型都是为了能获得更好的语言表示,有了好的原材料,才能应用到下游的各项工作中发挥出好的效果。

简述BERT原理

BERT是一个两阶段模型,包括pre-training(预训练)和Fine-tuning(微调)。

预训练阶段BERT模型有两个任务

BERT模型在微调阶段也要按照BERT要求的形式进行输入,包括Token Embeddings,Segment Embeddings Position Embeddings


image.png

对于下游的任务,只需要按照论文中的方式进行改造即可。对于我项目中的命名实体识别属于文本分类任务,按照第四种方式进行改造即可。


image.png

项目背景

简单聊下我们的项目,通过爬虫将一批非结构化的房源文本数据抓取下来,然后将其解析成的结构化数据方便下游业务线使用。


image.png

项目实战总结

网上已经有很多教程了,我就不在代码层面写太多了,主要把开发流程中的经验梳理一下供大家参考

将example转为feature然后存入到tf-record落地,后续训练和预测都是用tf-record作为输入

image.png

参考

上一篇下一篇

猜你喜欢

热点阅读