当前位置:   article > 正文

入自然语言处理的门实践中文版的情感分析_dev.tsv

dev.tsv

自然语言处理的门实践中文版的情感分析

flyfish

需要训练的数据集

我们现有的数据集是
weibo_senti_100k 10 万多条,带情感标注 新浪微博,正负向评论约各 5 万条。
数据格式如下
在这里插入图片描述

下载地址是
https://github.com/SophonPlus/ChineseNlpCorpus
我们通过huggingface中的使用方法使用微博数据集对模型bert-base-chinese进行微调。

原数据集格式参考

下载glue_data.zip(可以不下载,只是用来做我们自己数据集的格式参考)
下载地址在文章末尾
GLUE(General Language Understanding Evaluation)是一个多任务的自然语言理解基准和分析平台。

GLUE包含九项NLU任务,语言均为英语。GLUE九项任务涉及到自然语言推断、文本蕴含、情感分析、语义相似等多个任务。
GLUE的论文为:GLUE: A Multi-Task Benchmark and Analysis Platform for Natural Language Understanding
GLUE的官网为:https://gluebenchmark.com/
在这里插入图片描述
我们参考的是SST-2文件夹
SST-2(The Stanford Sentiment Treebank,斯坦福情感树库),单句子分类任务,包含电影评论中的句子和它们情感的人类注释。这项任务是给定句子的情感,类别分为两类正面情感(positive,样本标签对应为1)和负面情感(negative,样本标签对应为0),并且只用句子级别的标签。也就是,本任务也是一个二分类任务,针对句子级别,分为正面和负面情感。
主要参考三个文件的内容格式
dev.tsv test.tsv train.tsv
在这里插入图片描述

总体的格式

train.tsv: (标签 + ‘\t’ + 句子)
dev.tsv:(标签 + ‘\t’ + 句子)
test.tsv:(索引 + ‘\t’ + 句子)
train.tsv和dev.tsv的标题是sentence、label
test.tsv的标题是 index、sentence

代码实现把微博数据格式变成SST-2格式

import pandas as pd
import math

path = '/media/weibo_senti_100k/'

pd_all = pd.read_csv(path + 'weibo_senti_100k.csv')
pd_all.replace(',', '\t')
print('评论数目(总体):%d' % pd_all.shape[0])
print('评论数目(正向):%d' % pd_all[pd_all.label==1].shape[0])
print('评论数目(负向):%d' % pd_all[pd_all.label==0].shape[0])

pd_all.columns = ["lablel","sentence"]
print(pd_all.sample(7))
pd_all=pd_all.loc[:,["sentence","lablel"]]#按照cols列表来依次取原pd_all的列

#划分数据
a=math.floor(pd_all.shape[0]*0.6)
b=math.floor(pd_all.shape[0]*0.8)
print(a)
print(b)
train = pd_all.loc[0:a]#切分操作
train.to_csv('train.tsv',sep='\t', header=True, index=False)#Dataframe写入到csv文件
#参数sep表示字段之间用tab键分隔,header表示是否需要标题,index表示是否需要索引。
dev=pd_all.loc[a+1:b]#切分操作
dev.to_csv('dev.tsv',sep='\t', header=True, index=False)
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25

weibo微博文件里有dev.tsv , train.tsv 这里没做 test.tsv

查看命令行

在这里插入图片描述

命令执行

  python run_glue.py  --model_name_or_path '/media/huggingface/bert-base-chinese/'  \
    --task_name sst-2 \
    --data_dir './weibo' \
    --output_dir result \
    --do_train \
    --do_eval
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6

在这里插入图片描述
模型生成在result文件夹中

使用我们自己的模型进行推理

import torch
import pandas as pd
from transformers import AutoModel, AutoTokenizer, BertTokenizer
from transformers import pipeline
torch.set_grad_enabled(False)
pipe = '/media/transformers/examples/text-classification/result'
sentence = '我很高兴'#[{'label': 'LABEL_1', 'score': 0.9987839460372925}]
#sentence = '我很悲伤'#[{'label': 'LABEL_0', 'score': 0.9982221722602844}]
nlp = pipeline('sentiment-analysis', model=pipe, tokenizer=pipe)
print(nlp(sentence))
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10

结果是

[{'label': 'LABEL_1', 'score': 0.9987839460372925}]
  • 1
声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/羊村懒王/article/detail/522075
推荐阅读
相关标签
  

闽ICP备14008679号