自然语言处理任务之文本分类入门详解(未完待续)



参考链接: https://developers.google.com/machine-learning/guides/text-classification

0. 文本分类简介

文本分类在很多软件产品中都占据重要位置,很多智能应用都用到了文本分类模型。有的是将文本分类的结果作为输入以便进行后续其他任务,例如对话系统中的意图识别;有的是直接将文本分类结果最为任务的输出,例如垃圾邮件过滤、评论情感分类等等。无论何种场景,文本分类的准确程度都是一个很关键的指标。

1. 数据集介绍

Internet Movie Database (IMDb) movie reviews dataset
该数据集搜集了人们的影评数据,包含正面和负面两类,是情感分类的常用数据集。
数据集的主要信息如下:

  • 样本数量(训练集25000条,测试集25000条)
  • 类别数量(2)
  • 每一类的样本数量(12500)
  • 每条样本的单词个数(中位数174)
  • 每个单词在数据集中的频率
  • 每条样本的长度的分布

2. 模型选择

模型选择包含一下几方面的考虑:

  1. 选择何种文本表示方法?(将文本数值化的方法)
  2. 选择何种分类模型?
  3. 模型参数如何确定?

根据google的实验,我们可以参考他们总结出的以下几条经验:

  1. 计算(样本个数)/(每个样本内的单词数),简记为S/W,其中分母一般取所有样本里面的单词书的中位数。
  2. 如果上述比例小于1500,则采用bag-of-words(词袋)特征(n-grams+tf-idf),然后利用传统的分类模型(SVM,MLP,LR等)即可,具体见后文
  3. 如果上述比例大于1500,则采用神经网络(CNN,RNN),将文本序列作为输入特征,它们可以学习到词与词之间的前后关系。

本文涉及的数据集,S/W=144,因此我们可以采用n-gram+MLP作为数据预处理和分类模型的选择方案。

3. 数据预处理

  1. 随机打乱数据。主要是为了划分训练集和测试集的时候,能够保证训练集和测试集中各类别的样本分布比较均匀。当然,更严谨的一种做法是对label分层抽样。
  2. 将数据划分为80%的训练集和20%的验证集。有时还要再划分出一个测试集。
  3. Tokenization:把训练样本切分为一些更小的文本,它们是组成词袋(或者叫词表、词库)的元素,称之为“词”。这样能够泛化样本和label之间的关系,也即更利于模型去学习到样本与label之间的对应关系。
  4. Vectorization:对词的数值化表示

3.1. n-gram特征构造

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值