NewsMTSC:新闻文章中的(多)目标依赖情感分类
NewsMTSC是一个针对报道政策问题的新闻文章进行目标依赖情感分类(TSC)的数据集。该数据集包含超过11,000个标注句子,我们从美国在线新闻媒体的新闻文章中抽样得到。更多信息可以在我们发表于EACL 2021的论文中找到。
本仓库包含用于报道政策问题的新闻文章中进行目标依赖情感分类的数据集。此外,仓库还包含我们名为GRU-TSC的模型,该模型在NewsMTSC上实现了最先进的TSC分类性能。快来试试吧 - 它开箱即用 :-)
快速开始
- 我想进行情感分类:查看我们在PyPI上易于使用、高质量的情感分类器
- 我需要数据集:您可以在此下载或在此查看。我们还在Huggingface Hub和Kaggle上提供NewsMTSC数据集。
- 我想训练自己的模型:请阅读本文件的其余部分。
提醒:以下描述仅在您确实想要训练自己的模型时才相关。如果不是这种情况,请查看上面的数据集链接和我们易于使用的Python包。
安装
我们保证非常简单!请注意,只有在您计划使用我们的工具训练模型时,才需要遵循这些说明。如果您只想预测句子的情感,请使用我们的Python包,它更容易安装和使用 :-)
NewsMTSC已在MacOS和Ubuntu上测试过;其他操作系统也可能可以使用。请告诉我们 :-)
1. 设置环境:
如果您已经安装了Python 3.8(python --version
),可以跳过此步骤。如果您没有Python 3.8,我们建议使用Anaconda来设置要求。如果您还没有安装Anaconda,请按照Anaconda的安装说明进行操作。
要设置Python 3.8环境(如果您还没有的话),您可以使用以下命令:
conda create --yes -n newsmtsc python=3.8
conda activate newsmtsc
对于virtualenv用户,等效命令为:
virtualenv -ppython3.8 --setuptools 45 venv
source venv/bin/activate
注意:我们推荐Python 3.8,但我们已经成功测试了Python版本>=3.8, <3.12的NewsMTSC。
2. 设置NewsMTSC:
git clone git@github.com:fhamborg/NewsMTSC.git
之后,例如,在您的IDE中打开项目,并按照"训练"部分描述的说明进行操作。
请注意,如果您只想使用我们的模型进行情感分类,我们建议您使用我们的PyPI包NewsSentiment。获取它就像pip install NewsSentiment
一样简单,使用它只需四行代码 :-)
训练
如果您想训练我们的模型之一或您自己的模型,请先克隆仓库。
系统有两个入口点。train.py
用于在特定数据集上使用特定超参数训练和评估特定模型。我们将单次运行称为_实验_。controller.py
用于自动运行多个实验。这对于模型选择和评估数百或数千种模型、超参数和数据集的组合非常有用。
运行单个实验
目标:使用用户定义的(超)参数组合训练模型。
train.py
允许对训练和评估过程进行精细控制,但对于大多数命令行参数,我们提供了有用的默认值。需要两个参数:
--own_model_name
(使用哪个模型,例如grutsc
),--dataset_name
(使用哪个数据集,例如newsmtsc-rw
)。
有关更多信息,请参考train.py
和combinations_absadata_0.py
。如果您只想快速入门,以下命令应该可以开箱即用。
python train.py --own_model_name grutsc --dataset_name newsmtsc-rw
运行多个实验
目标:找到(超)参数组合以训练达到最佳性能的模型。
controller.py
接受每个参数的一组值,创建参数组合,应用条件以删除不必要的组合(例如,某些参数可能仅用于特定模型),并创建多进程池以并行运行这些参数组合的实验。完成后,controller.py
创建一个摘要,其中包含所有实验的详细结果,包括评估性能。通过使用createoverview.py
,您可以将此摘要导出为Excel电子表格。
支持
如果您对如何使用NewsMTSC或其库有疑问,请在GitHub上创建新的issue。请理解,我们无法通过电子邮件提供个人支持。我们认为,如果帮助公开共享,更多人可以从中受益,那么帮助就更有价值。
致谢
这个仓库部分基于ABSA-PyTorch。 我们感谢Song等人开源他们优秀的仓库。
如何引用
@InProceedings{Hamborg2021b,
author = {Hamborg, Felix and Donnay, Karsten},
title = {NewsMTSC: (Multi-)Target-dependent Sentiment Classification in News Articles},
booktitle = {Proceedings of the 16th Conference of the European Chapter of the Association for Computational Linguistics (EACL 2021)},
year = {2021},
month = {Apr.},
location = {Virtual Event},
}