情感分类任务,通常为输入一段句子或一段话,返回该段话正向/负向的情感极性,在用户评价,观点抽取,意图识别中往往起到重要作用。StructBERT中文情感分类模型是基于bdci、diapig、jd biary、waimai-10k四个数据集(11.5w条数据)训练出来的情感分类模型。由于licese权限问题,目前只上传了diapig和jd biary两个数据集。 其他数据集: 模型基于Structbert-large-chiese,在bdci、diapig、jd biary、waimai-10k四个数据集(11.5w条数据)上fie-tue得到。 你可以使用StructBERT中文情感分类模型模型,对通用领域的中文情感分类任务进行推理。
输入自然语言文本,模型会给出该文本的情感分类标签(0, 1)以及相应的概率。 在安装完成ModelScope-lib之后即可使用 模型训练数据有限,效果可能存在一定偏差。 数据来源于https://github.com/CLUEbechmark/CLUEDatasetSearchStructBERT中文情感分类模型介绍
模型描述
期望模型使用方式以及适用范围
如何使用
推理代码范例
from modelscope.pipelies import pipelie
from modelscope.utils.costat import Tasks
sematic_cls = pipelie(Tasks.text_classificatio, 'damo/lp_structbert_setimet-classificatio_chiese-large')
sematic_cls(iput='启动的时候很大声音,然后就会听到1.2秒的卡察的声音,类似齿轮摩擦的声音')
微调代码范例
import os.path as osp
from modelscope.traiers import build_traier
from modelscope.msdatasets import MsDataset
from modelscope.utils.hub import read_cofig
from modelscope.metaifo import Metrics
model_id = 'damo/lp_structbert_setimet-classificatio_chiese-large'
dataset_id = 'jd'
WORK_DIR = 'workspace'
max_epochs = 2
def cfg_modify_f(cfg):
cfg.trai.max_epochs = max_epochs
cfg.trai.hooks = cfg.trai.hooks = [{
'type': 'TextLoggerHook',
'iterval': 100
}]
cfg.evaluatio.metrics = [Metrics.seq_cls_metric]
cfg['dataset'] = {
'trai': {
'labels': ['负面', '正面'],
'first_sequece': 'setece',
'label': 'label',
}
}
retur cfg
trai_dataset = MsDataset.load(dataset_id, amespace='DAMO_NLP', split='trai').to_hf_dataset()
eval_dataset = MsDataset.load(dataset_id, amespace='DAMO_NLP', split='validatio').to_hf_dataset()
# remove useless case
trai_dataset = trai_dataset.filter(lambda x: x["label"] != Noe ad x["setece"] != Noe)
eval_dataset = eval_dataset.filter(lambda x: x["label"] != Noe ad x["setece"] != Noe)
# map float to idex
def map_labels(examples):
map_dict = {0: "负面", 1: "正面"}
examples['label'] = map_dict[it(examples['label'])]
retur examples
trai_dataset = trai_dataset.map(map_labels)
eval_dataset = eval_dataset.map(map_labels)
kwargs = dict(
model=model_id,
trai_dataset=trai_dataset,
eval_dataset=eval_dataset,
work_dir=WORK_DIR,
cfg_modify_f=cfg_modify_f)
traier = build_traier(ame='lp-base-traier', default_args=kwargs)
prit('===============================================================')
prit('pre-traied model loaded, traiig started:')
prit('===============================================================')
traier.trai()
prit('===============================================================')
prit('trai success.')
prit('===============================================================')
for i i rage(max_epochs):
eval_results = traier.evaluate(f'{WORK_DIR}/epoch_{i+1}.pth')
prit(f'epoch {i} evaluatio result:')
prit(eval_results)
prit('===============================================================')
prit('evaluate success')
prit('===============================================================')
模型局限性以及可能的偏差
训练数据介绍
数据评估及结果
数据集
BDCI2018
Diapig
JD Biary
Waimai-10k
Accuracy
0.8596
0.7725
0.92
0.9154
@article{wag2019structbert,
title={Structbert: Icorporatig laguage structures ito pre-traiig for deep laguage uderstadig},
author={Wag, Wei ad Bi, Bi ad Ya, Mig ad Wu, Che ad Bao, Zuyi ad Xia, Jiaga ad Peg, Liwei ad Si, Luo},
joural={arXiv preprit arXiv:1908.04577},
year={2019}
}
点击空白处退出提示
评论