基于Text-CNN模型的中文文本分类实战

xsky 2018-07-11

正文共5260个字,21张图,预计阅读时间2分钟。

基于Text-CNN模型的中文文本分类实战

Text-CNN

基于Text-CNN模型的中文文本分类实战

1、文本分类

转眼学生生涯就结束了,在家待就业期间正好有一段空闲期,可以对曾经感兴趣的一些知识点进行总结。

本文介绍NLP中文本分类任务中核心流程进行了系统的介绍,文末给出一个基于Text-CNN模型在搜狗新闻数据集上二分类的Demo。

文本分类是自然语言处理领域最活跃的研究方向之一,从样本数据的分类标签是否互斥上来说,可以分为文本多分类与文本多标签分类。

基于Text-CNN模型的中文文本分类实战

文本分类

目前文本分类在工业界的应用场景非常普遍,从新闻的分类、商品评论信息的情感分类到微博信息打标签辅助推荐系统,了解文本分类技术是NLP初学者比较好的切入点,较简单且应用场景高频。

基于Text-CNN模型的中文文本分类实战

基于Text-CNN模型的中文文本分类实战

2、 数据准备

在机器学习领域有一句话:数据决定了模型最终的高度,不断优化的模型只不过是为了不断逼近这个高度而已。

文本分类作为一种有监督学习的任务,毫无疑问的需要一个可用于有监督学习的语料集(X,Y)。本文中使用以下标记,X为特征,文本分类中即为文本序列,Y是标签,即文本的分类名称。

机器学习与传统编程技术的明显区别就是:机器学习是以数据为驱动的,传统的编程中,我们核心任务是人工设计分类规则(指令代码),然后实现输入特征X获得分类标签Y。而在机器学习的方式中,我们首要的是获得一个高质量的、大数据量的有监督语料集(X,Y),然后机器学习的方式会自动的从已构建的数据集上归纳出(训练出)一套分类规则(分类模型),最后我们利用获得的分类规则来实现对未标记文本的分类。

基于Text-CNN模型的中文文本分类实战

机器学习VS传统编程

换言之,传统的编程方式输入的是指令代码,而机器学习输入的是结构化数据。

因此,在机器学习任务中,数据的质量与数量对最终模型的预测结果好坏具有决定性的作用。

常言道:Garbage in, garbage out!

在文本分类中,语料集(X,Y)的质量、数量决定了文本分类模型的分类效果。

语料集的质量:即数据集的特征X对应的标签Y是否标记的正确,一般在众包平台中会采用多人重复标记,然后基于投票的机制来控制语料集的标记质量。

语料集的数量:有监督语料集的标注复杂度,想要获得海量的高质量语料集的成本是十分高昂的,这也限制的语料集的数量。

在实际的文本分类任务中,一般通过搜集开源的数据集,或者利用爬虫获取结构化的网页信息来构建特定任务的语料集。不过,我还是更喜欢关注一些公开的竞赛项目,能够获得企业准备的高质量、应对真实业务场景的数据集,例如:kaggle、知乎的看山杯、mrc2018-cipsc等,但大多数情况下企业只给脱敏之后的数据

相关推荐