基于Bert的中文情感分析代码及分析

基于Bert的中文情感分析代码及分析

众所周知,Google 前段时间开源了他们的 BERT – BidirectionalEncoderRepresentations fromTransformers 模型,使用多头注意力和位置嵌入,一举打破自然语言处理领域11个不同问题的最好记录。NLP界开启一个全新的时代,利用Bert做NLP的任务也是取得很好的效果,本文利用微调Bert模型做中文情感分析,实验效果也算不错。本文参考[博文链接]。(https://blog.csdn.net/renxingkai/article/details/87605693)

数据准备

中文语料库获取:Github别人分享的各种语料库,这里有很多不同的中文语料库。
在这里插入图片描述
当然也可以从别的地方获取语料库。本文主要是通过SMP2019评测比赛获取的数据集。情感类标签是0,1,2,数据如下:
在这里插入图片描述

Bert预训练

拥有了数据集之后,需要下载Bert模型,Bert模型下载
下载完之后在data文件夹里放入训练集,验证集和测试集数据。
在这里插入图片描述
在开源的代码中,预训练的入口是在run_pretraining.py而fine-tune的入口针对不同的任务分别在run_classifier.py和run_squad.py。其中run_classifier.py适用的任务为分类任务。如CoLA、MRPC、MultiNLI这些数据集。而run_squad.py适用的是阅读理解(MRC)任务,如squad2.0和squad1.1。本文是做情感分类任务,因此主要修改run_classifier.py里的一些代码。下载的代码要是想运行,需要安装Tensorflow和pandas,直接pip install 就行。
在这里插入图片描述

本实验中增加的Processor代码为:

如果读取文件格式为csv格式

class SentenceProcessor(DataProcessor):
    """Processor for the Sentiment Analysis task"""
    #读取训练集
    def get_train_examples(self, data_dir):
      file_path = os.path.join(data_dir, 'train.csv')
      train_df = pd.read_csv(file_path, encoding='utf-8')
      train_data = []
      for index, train in enumerate(train_df.values):
          guid = 'train-%d' % index
          text_a = tokenization.convert_to_unicode(str(train[0]))
          # text_b = tokenization.convert_to_unicode(str(train[1]))
          label = str(train[1])
          train_data.append(InputExample(guid=guid, text_a=text_a, text_b=None, label=label))
      return train_data
    #读取验证集
    def get_dev_examples(self, data_dir):
      file_path = os.path.join(data_dir, 'dev.csv')
      dev_df = pd.read_csv(file_path, encoding='utf-8')
      dev_data = []
      for index, dev 
  • 31
    点赞
  • 314
    收藏
    觉得还不错? 一键收藏
  • 31
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 31
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值