BERT实战:中文命名实体识别

本文通过BERT实现了一个10标签的命名实体识别任务。数据来源于CLUE官网,训练过程仅进行了10次迭代。尽管效果不错,但模型存在标签分类问题,如未细分标签类别,导致边界划分不准确;标签过多使模型难以区分,如混淆人名与公司名;训练不足,损失值未充分降低;且模型结构较简单,未引入LSTM和CRF等复杂组件。
摘要由CSDN通过智能技术生成

使用bert实现的一个NER10标签任务

获取数据:

# 获取数据
import json

train_data = []
dev_data = []
test_data = []

for line in open('train.json','r',encoding='UTF-8'):
    train_data.append(json.loads(line))

for line in open('dev.json','r',encoding='UTF-8'):
    dev_data.append(json.loads(line))

for line in open('test.json','r',encoding='UTF-8'):
    test_data.append(json.loads(line))

print(f'数量:train:{len(train_data)},dev:{len(dev_data)},test:{len(test_data)}')
print(train_data[0])
print(dev_data[0])
print(test_data[0])

标签数据处理:

构建标签字典,字典格式如下:

#上图为标签类别
#需要构建标签
import re

label_type = {'o':0,'address':1,'book':2,'company':3,'game':4,'government':5,'movie':6,'name':7,'organization':8,'position':9,'scene':10}

def decode_label(d):
#解析标签,以列表形式构成
  text_len = len(d['text'])
  label = [0]*text_len
  types = d['label'].keys()
  for t in types
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值