CCKS2019—面向金融的事件主题识别思路分享

本文分享了在CCKS2019数据比赛中,使用BERT模型进行金融事件主题识别的方法,包括模型微调、答案规则设计和模型融合,最终达到较好的比赛成绩。探讨了预训练模型选择、答案提取策略以及模型训练与调优的重要性。
摘要由CSDN通过智能技术生成

1.题目概述

本次赛题的本质是nlp的阅读理解,由于本次比赛可以使用预训练模型和外部语料库,因此如何选择预训练模型以及如何对模型输出的概率进行答案提取就成为了比赛的关键,本文针对预训练模型的选择和使用以及提取规则的使用进行说明。

本次题目每个训练集样本由四部分组成“样本id”,“文本句子”,“事件类型”以及“事件主体”作为标签,事件主题就是从文本句子中筛选出来的。比赛的评分指标是F1,就是一个样本你可以预测多个事件主体,和真实的事件主体比较,考虑召回率和准确率的协调。这个F1应该是以词作为对应指标的,而不是字;

2.方法探索

在不借助任何语料库和预训练模型,自己搭一个带多头注意力机制的w2v,然后靠这1.4w的数据集去训练,结果很一般,因为数据太少了,a榜只有83.4左右;然后思考自己找语料库(搜狗新闻)去训练词向量,由于机器和时间因素本人没有尝试;最后就是使用预训练模型进行迁移学习,这里选取的是谷歌提供的bert模型进行微调,用的是其官方训练的中文词向量;然后根据规则过滤一些答案,大致成绩是a榜单模89.8,b榜78.3;经过和其他模型的融合,最佳成绩为榜92.6和b榜82.8左右,最终rank17.

3.用bert模型进行迁移学习

本赛题属于nlp任务中的阅读理解,bert在其相关的领域表现出色,这里就使用迁移学习的思想对bert预训练进行微调,为了代码简介,这里使用keras来表现:

bert_model = load_trained_model_from_checkpoint(config_path, checkpoint_path, seq_len=None)
j = 0
for l in bert_model.layers:
     l.trainable = True
  

x1_in = Input(shape=(None,)) # 待识别句子输入
x2_in = Input(shape=(None,)) # 待识别句子输入
s1_in = Input(shape=(None,)) # 实体左边界(标签)
s2_in = Input(shape=(None,)) # 实体右边界(标签)

x1, x2, s1, s2 = x1_in, x2_in, s1_in, s2_in
x_mask = Lambda(lambda x: K.cast(K.greater(K
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值