littlebot
Published on 2025-04-08 / 0 Visits
0

【源码】基于MindSpore框架的情感分析系统

项目简介

本项目借助MindSpore框架,利用百度开源的基于SKEP的情感预训练代码和中英情感预训练模型,实现文本情感分析功能。情感分析包含句子级情感分类、评价对象级情感分类等多种任务,在消费决策、舆情分析、个性化推荐等领域有重要应用价值。

项目的主要特性和功能

  1. 支持百度发布的SKEP情感预训练模型,在多项情感分析任务上超越SOTA。
  2. 适配SST - 2句子级情感分类数据集和Sem - L评价对象级情感分类数据集。
  3. 提供训练和评估脚本,可在Ascend处理器上进行单机或分布式训练,并对训练后的模型进行评估。
  4. 支持将训练好的模型导出为mindir格式。
  5. 可进行推理操作,推理结果保存在当前路径的acc.log文件中。

安装使用步骤

1. 环境准备

2. 数据集下载

运行以下命令下载英文测试数据: shell sh download_en_data.sh

3. 训练模型

  • 准备Roberta权重文件(ckpt),通过设置环境变量DEVICE_ID和RANK_SIZE决定是否使用分布式运行。
  • 在Ascend处理器上运行单机训练: bash bash scripts/train.sh 若数据集较大,建议添加外部环境变量确保HCCL不超时: bash export HCCL_CONNECT_TIMEOUT=600 若使用较大的BERT模型,保存检查点时可能出现protobuf错误,可尝试设置: bash export PROTOCOL_BUFFERS_PYTHON_IMPLEMENTATION=python
  • 分布式训练:无需修改配置,可直接在ModelArts上进行分布式训练,同样执行: bash bash scripts/train.sh

4. 评估模型

评估SST数据集

运行以下命令前,确保已设置加载与训练检查点路径(绝对全路径): bash python eval.py --data_url ./data/ --ckpt /username/pretrain/checkpoint_100_300.ckpt --job SST-2

评估Sem - L数据集

bash python eval.py --data_url ./data/ --ckpt /username/pretrain/checkpoint_100_300.ckpt --job Sem-L

5. 导出模型

shell python export.py --ckpt_file [CKPT_PATH] --file_name [FILE_NAME] --file_format [FILE_FORMAT] 参数ckpt_file是必需的,EXPORT_FORMAT必须在 ["AIR", "MINDIR"]中选择。

6. 推理过程

在执行推理之前,需要通过export.py导出mindir文件,输入数据文件为bin格式。 shell bash run_infer_310.sh [MINDIR_PATH] [DATA_FILE_PATH] [NEED_PREPROCESS] [DEVICE_ID] NEED_PREPROCESS为必选项,在[y|n]中取值,表示数据是否预处理为bin格式;DEVICE_ID可选,默认值为 0。推理结果保存在当前路径的acc.log中。

下载地址

点击下载 【提取码: 4003】【解压密码: www.makuang.net】