文本情感分类

最近更新时间:2019-08-23 15:25:45

场景背景

文本分类是自然语言处理中一项基础且重要的任务,其应用场景非常广泛,涵盖金融、商业、军事、政治等多个领域,例如:舆情监测,新闻分类、新闻极性分析、垃圾邮件识别、用户情感分析等等。文本分类模型具有重要的应用价值与商业价值,例如,商家可以通过判断用户对商品的情感态度,调整进货策略以提升销售额。

现有的文本分类算法主要包括两大类,分别是基于传统机器学习的方法和基于深度学习的方法。基于传统机器学习的方法通过预处理、特征提取、向量化以及常见的机器学习分类算法对文本进行分类,常用的算法包括 LR、SVM 等,模型效果受到特征提取质量的影响。基于深度学习的方法则是通过深度学习模型对数据进行训练,常用的算法包括 FastText、LSTM 等,模型效果主要受数据量以及迭代次数的影响。

本文通过智能钛机器学习平台,利用 FastText 算法搭建深度学习文本分类模型。用户无须编写代码,只要拖动相应的组件搭建模型架构,便可以在二十分钟以内快速上手,解决文本分类场景下的实际问题。

数据集介绍

在本次文本分类任务中,采用情感分类数据集 rt_polarity(二分类数据集)。我们已为您准备好数据集,但如果您想要详细了解该数据可参考 源下载地址

源公开数据中包含两个数据集文件:rt-polarity.neg 和 rt-polarity.pos,它们分别收集了表征消极(neg)情感的句子和表征积极(pos)情感的句子,文件中的每一行为一个句子,如下图:

本次工作流中我们将 neg 和 pos 两个文件合并,通过标签分隔符 _label_0和_label_1 为句子打标(0表示消极情感,1表示积极情感),作为本次模型的数据集,如下图:

我们将数据集预先分为训练集,验证集,测试集三部分。训练集用来训练模型, 验证集用于调节模型参数,测试集用来整体评估模型的性能。 本模型通过对测试集的分类准确率展示分类器对无标签数据良好的预测性能。

整体流程

工作流整体流程如下:

工作流主要包括以下步骤:

  1. 数据准备:上传训练集,验证集,测试集。
  2. 利用【FastText】搭建文本情感分类模型。
  3. 使用【深度学习分类任务评估】评估模型效果。
说明:

工作流搭建过程中若连线有误可通过右键单击删除连线。

详细流程

一. 数据准备
本步骤中需要上传三个数据源:训练集,验证集,测试集。

  1. 在智能钛控制台的左侧导航栏,选择【输入】>【数据源】>【 COS 数据集】,并拖入画布中,右键单击该组件【 重命名】为:训练集。
  2. 填写 COS 路径地址:${ai_dataset_lib}/demo/nlp/rt_polarity/train.txt
注意:

${ai_dataset_lib}是地址前缀,请全部复制输入。务必关闭【是否检查数据】。


至此,我们将训练数集成功导入工作流,同样的操作我们将验证集、测试集拖拽入工作流,修改各自对应的 COS 路径地址:
验证集:${ai_dataset_lib}/demo/nlp/rt_polarity/eval.txt
测试集:${ai_dataset_lib}/demo/nlp/rt_polarity/predict.txt
将组件对应重命名为:验证集和测试集。上传完成后如下图:


二. 利用 FastText 算法搭建文本情感分类模型
FastText 是一种简单有效的句子分类算法, 通过词向量以及 N-Gram 向量的平均值计算出句子的向量表示,再通过全连接层网络对句子进行分类。

  1. 在控制台的左侧导航栏,选择【算法】>【深度学习算法】>【自然语言处理】>【FastText】,并将该组件拖入画布。
  2. 将【训练集】的输出桩连接到【FastText】左侧的输入桩上,将【验证集】的输出桩连接到【FastText】右侧的输入桩上。左侧小烧杯代表完成训练的模型,将【测试集】的输出桩链接到小烧杯处。至此,训练数据输入、验证数据输入、测试数据输入和模型目录的路径已根据连线自动生成。
  3. 单击【FastText】,在右侧弹框中设置相关算法参数
    • 训练数据输入、验证数据输入和模型目录的路径已根据连线自动生成。
    • 分隔符: _label_
    • 词向量维度: 300。
    • 批处理大小:32。
    • 训练 epoch 数:5。
    • 学习率:0.001。
    • 是否使用预训练好的词向量:False。
    • GPUs:深度学习网络用到了 GPU 资源,可以极大地提高训练速度。单击该选项,在对话框中选择合适的显卡型号和数量。默认0。
    • CPUs:宿主机 CPU 核数(建议设置成 GPU 卡数的三倍),默认1。
    • 其余参数可默认。
  4. 单击【FastText】组件左边的小烧杯模型,将【模型运行方式】设置为自动运行。

三. 模型评估
我们已经使用FastText算法搭建了文本情感分类的模型,现在我们通过智能钛的【深度学习分类任务评估】算子,评估此模型的预测效果,评估指标包括accuracy,precision, recall,F1等。

在控制台的左侧导航栏,选择【输出】>【模型评估】>【深度学习分类任务评估】并拖入画布。将小烧杯模型的输出桩连接至【深度学习分类任务评估】,单击该组件设置算法参数:

  • 标签列的序号:2
  • 预测列序号:1
  • 其余参数可默认


四. 运行调度及模型评估
单击画布上方运行按钮可运行工作流,详情请参考 运行工作流
运行成功后,右键单击【深度学习分类任务评估】>【查看数据】,即可查看模型效果。