开放代码社区 › Senta
Senta
AI/机器学习PythonEnglish 简体中文 详细使用说明 论文效果复现 情感分析旨在自动识别和提取文本中的倾向、立场、评价、观点等主观信息。它包含各式各样的任务,比如句子级情感分类、评价对象级情感分类、观点抽取、情绪分类等。情感分析是人工智能的重要研究方向,具有很高的学术价值。同时,情感分析在消费决策、舆情分析、个性化推荐等领域均有重要的应用,具有很高的商业价值。 近日,百度正式发布情感预训练模型SKEP(Sentiment Knowledge Enhanced Pre-training for Sentiment Analysis)。
仓库地址
https://gitee.com/baidu/Senta.gitREADME
[English](https://github.com/baidu/Senta/blob/master/README.en.md)|简体中文
# <p align=center>`Senta`</p>
## 目录
- [简介](#简介)
- [SKEP](#SKEP)
- [代码结构](#代码结构)
- [一键化工具](#一键化工具)
- [详细使用说明](#详细使用说明)
- [Demo数据集说明](#Demo数据集说明)
- [论文效果复现](#论文效果复现)
- [文献引用](#文献引用)
## 简介
情感分析旨在自动识别和提取文本中的倾向、立场、评价、观点等主观信息。它包含各式各样的任务,比如句子级情感分类、评价对象级情感分类、观点抽取、情绪分类等。情感分析是人工智能的重要研究方向,具有很高的学术价值。同时,情感分析在消费决策、舆情分析、个性化推荐等领域均有重要的应用,具有很高的商业价值。
近日,百度正式发布情感预训练模型SKEP(Sentiment Knowledge Enhanced Pre-training for Sentiment Analysis)。SKEP利用情感知识增强预训练模型, 在14项中英情感分析典型任务上全面超越SOTA,此工作已经被ACL 2020录用。
论文地址:https://arxiv.org/abs/2005.05635
为了方便研发人员和商业合作伙伴共享效果领先的情感分析技术,本次百度在Senta中开源了基于SKEP的情感预训练代码和中英情感预训练模型。而且,为了进一步降低用户的使用门槛,百度在SKEP开源项目中集成了面向产业化的一键式情感分析预测工具。用户只需要几行代码即可实现基于SKEP的情感预训练以及模型预测功能。
## SKEP
SKEP是百度研究团队提出的基于情感知识增强的情感预训练算法,此算法采用无监督方法自动挖掘情感知识,然后利用情感知识构建预训练目标,从而让机器学会理解情感语义。SKEP为各类情感分析任务提供统一且强大的情感语义表示。
百度研究团队在三个典型情感分析任务,句子级情感分类(Sentence-level Sentiment Classification),评价对象级情感分类(Aspect-level Sentiment Classification)、观点抽取(Opinion Role Labeling),共计14个中英文数据上进一步验证了情感预训练模型SKEP的效果。实验表明,以通用预训练模型ERNIE(内部版本)作为初始化,SKEP相比ERNIE平均提升约1.2%,并且较原SOTA平均提升约2%,具体效果如下表:
<table>
<tr>
<td><strong><center>任务</strong></td>
<td><strong><center>数据集合</strong></td>
<td><strong><center>语言</strong></td>
<td><strong><center>指标</strong></td>
<td><strong><center>原SOTA</strong></td>
<td><strong><center>SKEP</strong></td>
<td><strong><center>数据集地址</strong></td>
</tr>
<tr>
<td rowspan="4"><center>句子级情感<br /><center>分类</td>
<td><center>SST-2</td>
<td><center>英文</td>
<td><center>ACC</td>
<td><center>97.50</td>
<td><center>97.60</td>
<td><center><a href="https://gluebenchmark.com/tasks" >下载地址</a></td>
</tr>
<tr>
<td><center>Amazon-2</td>
<td><center>英文</td>
<td><center>ACC</td>
<td><center>97.37</td>
<td><center>97.61</td>
<td><center><a href="https://www.kaggle.com/bittlingmayer/amazonreviews/data#" >下载地址</a></td>
</tr>
<tr>
<td><center>ChnSentiCorp</td>
<td><center>中文</td>
<td><center>ACC</td>
<td><center>95.80</td>
<td><center>96.50</td>
<td><center><a href="https://ernie.bj.bcebos.com/task_data_zh.tgz" >下载地址</a></td>
</tr>
<tr>
<td><center>NLPCC2014-SC</td>
<td><center>中文</td>
<td><center>ACC</td>
<td><center>78.72</td>
<td><center>83.53</td>
<td><center><a href="https://github.com/qweraqq/NLPCC2014_sentiment" >下载地址</a></td>
</tr>
<tr>
<td rowspan="5"><center>评价对象级的<br /><center>情感分类</td>
<td><center>Sem-L</td>
<td><center>英文</td>
<td><center>ACC</td>
<td><center>81.35</td>
<td><center>81.62</td>
<td><center><a href="http://alt.qcri.org/semeval2014/task4/index.php?id=data-and-tools" >下载地址</a></td>
</tr>
<tr>
<td><center>Sem-R</td>
<td><center>英文</td>
<td><center>ACC</td>
<td><center>87.89</td>
<td><center>88.36</td>
<td><center><a href="http://alt.qcri.org/semeval2014/task4/index.php?id=data-and-tools" >下载地址</a></td>
</tr>
<tr>
<td><center>AI-challenge</td>
<td><center>中文</td>
<td><center>F1</td>
<td><center>72.87</td>
<td><center>72.90</td>
<td><center>暂未开放</td>
</tr>
<tr>
<td><center>SE-ABSA16_PHNS</td>
<td><center>中文</td>
<td><center>ACC</td>
<td><center>79.58</td>
<td><center>82.91</td>
<td><center><a href="http://alt.qcri.org/semeval2016/task5/" >下载地址</a></td>
</tr>
<tr>
<td><center>SE-ABSA16_CAME</td>
<td><center>中文</td>
<td><center>ACC</td>
<td><center>87.11</td>
<td><center>90.06</td>
<td><center><a href="http://alt.qcri.org/semeval2016/task5/" >下载地址</a></td>
</tr>
<tr>
<td rowspan="5"><center>观点<br /><center>抽取</td>
<td><center>MPQA-H</td>
<td><center>英文</td>
<td><center>b-F1/p-F1</td>
<td><center>83.67/77.12</td>
<td><center>86.32/81.11</td>
<td><center><a href="https://mpqa.cs.pitt.edu/corpora/mpqa_corpus/mpqa_corpus_2_0/" >下载地址</a></td>
</tr>
<tr>
<td><center>MPQA-T</td>
<td><center>英文</td>
<td><center>b-F1/p-F1</td>
<td><center>81.59/73.16</td>
<td><center>83.67/77.53</td>
<td><center><a href="https://mpqa.cs.pitt.edu/corpora/mpqa_corpus/mpqa_corpus_2_0/" >下载地址</a></td>
</tr>
<tr>
<td><center>COTE_BD</td>
<td><center>中文</td>
<td><center>F1</td>
<td><center>82.17</td>
<td><center>84.50</td>
<td><center><a href="https://github.com/lsvih/chinese-customer-review" >下载地址</a></td>
</tr>
<tr>
<td><center>COTE_MFW</td>
<td><center>中文</td>
<td><center>F1</td>
<td><center>86.18</td>
<td><center>87.90</td>
<td><center><a href="https://github.com/lsvih/chinese-customer-review" >下载地址</a></td>
</tr>
<tr>
<td><center>COTE_DP</td>
<td><center>中文</td>
<td><center>F1</td>
<td><center>84.33</td>
<td><center>86.30</td>
<td><center><a href="https://github.com/lsvih/chinese-customer-review" >下载地址</a></td>
</tr>
</table>
## 代码结构
```text
.
├── README.md
├── requirements.txt
├── senta # senta核心代码,包括模型、输出reader、分词方法等
├── script # 情感分析各任务入口启动脚本,通过调用配置文件完成模型的训练和预测
├── config # 任务配置文件目录,在配置文件中设定模型的方法、超参数、数据等
```
## 一键化工具
为了降低用户的使用门槛,百度在SKEP开源项目中集成了面向产业化的一键式情感分析预测工具。具体安装和使用方法如下:
### 安装方法
本仓库支持pip安装和源码安装两种方式,使用pip或者源码安装时需要先安装PaddlePaddle,PaddlePaddle安装请参考[安装文档](https://www.paddlepaddle.org.cn/install/quick)。
1. pip安装
```shell
python -m pip install Senta
```
2. 源码安装
```shell
git clone https://github.com/baidu/Senta.git
cd Senta
python -m pip install .
```
### 使用方法
``