文本分类(一)EWECT微博情绪分类大赛第三名Bert-Last_3embedding_concat最优单模型复现

该博客介绍了如何复现 EWECT 微博情绪分类大赛第三名的 Bert-Last_3embedding_concat 单模型,使用 TensorFlow 2.0 和 transformers 3.1.0 库。博主分享了模型结构,训练结果,并提到实际结果与比赛仍有差距,计划通过迭代优化和自学习策略提升模型性能。
摘要由CSDN通过智能技术生成

tensorflow2.0 + transformers EWECT微博情绪分类大赛第三名Bert-Last_3embedding_concat最优单模型复现


前言

最近正在实现网易云评论情绪分类,用于评论社区研究,在搜索相关比赛的实现方法,看到了为数不多的单模型也能达到较好效果的情况,因此拿来复现作为第一版模型。
复现模型:微博情绪分析评测(smp2020-ewect)No.3 拿第一导师请吃肯德基 usual语料部分情绪分类最优单模型。
模型结构:
在这里插入图片描述


代码部分

tensorflow : 2.0
transformers : 3.1.0

话不多说直接上代码

import numpy as np
import pandas as pd
import tensorflow as tf
from sklearn import model_selection
from transformers import *
from tokenizers import BertWordPieceTokenizer, ByteLevelBPETokenizer
from sklearn.metrics import f1_score
from sklearn.model_selection import train_test_split
import os
import tensorflow.keras.backend as K

class BertNerModel(TFBertPreTrainedModel):
    dense_layer = 512
    class_num = 6
    drop_out_rate = 0.5
    def __init__(self, config, *inputs, **kwargs):
        super(BertNerModel,self).__init__(config, *inputs, **kwargs)
        config.output_hidden_states = True
        self.bert_layer = TFBertMainLayer(config, name='bert')
        self.bert_layer.trainable = True
        self.liner_layer = tf.keras.layers.Dense(self.dense_layer,activation='relu')
        self.soft_max = tf.keras.layers.Dense(self.class_num,activation='softmax')
        self.drop_out = tf.keras.layers.Dropout(self.drop_out_rate)
    def call(self, inputs):
        hidden_states = self.bert_layer(inputs)
        tensor = tf.concat((hidden_states[2][-1][:,0],hidden_states[2][-2][:,0],hidden_states[2][-3
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值