文本分类算法TextCNN

简介: 文本分类算法TextCNN

前言


TextCNN是在2014年,由韩国人Yoon Kim于2014年在“Convolutional Neural Networks for Sentence Classification”一文中提出的算法。


一、TextCNN


1-1、TextCNN结构图以及介绍:


99d28be704aa4b18b0b3144f141d8070.png

整体结构:一层卷积,一层最大值池化,最后将输出外接softmax来进行n分类。因为网络结构简单所以参数数目较少,计算量少,训练速度快。这是TextCNN的优势。


第一层(Word Embedding构建词向量):首先需要将输入语句进行分词,之后将每个词都映射成相应词向量。即词语数值化,方便后续处理。(图中是一个7行五列的向量矩阵,7代表的是一个句子中的单词个数,而5代表的是每个词对应的词向量的维度)。


第二层(卷积层):使用不同规格(45,35, 25)的卷积核对输入的词向量矩阵提取特征(使用点积,即相乘的结果再进行依次相加),一般情况下下滑步长为1,得到(41, 51, 61)的输出,一般称输出为feature_map。(即卷积层输出的别名)

注意:颜色不同的卷积核(eg:上图的深红色卷积核和浅红色卷积核),虽然它们的size是相同的,即形状都是4*5,但是它们的内部是不一样的,称之为不同的channel(通道)。

为什么使用不同规格的卷积核?(因为可以获取到不同范围内词的关系,类似于N-gram,一般情况下使用2、3、4、5个次数作为卷积核的大小)

为什么每种规格还使用不一样的卷积核?(因为不一样的卷积核有不一样的关注点,这样多个卷积核就能学习到不同的信息)


第三层(最大值池化): 第二层输出的feature_map,假设其中一个feamap = [1,1,2,1],从中选取一个最大值2作为输出。这样的处理方法即为最大值池化。

第四层(使用softmax进行N分类):我们将第三层的结果拼接起来,送入到softmax中,得到最终的分类结果。


1-2、与CNN相比,textCNN的不同之处


1、 图像数据的特征提取一般是从左到右,从上到下滑动来进行特征提取的。

2、 自然语言的特征提取只是从上到下的,因为在输入到模型之前,自然语言首先会做Embedding处理,即生成词嵌入向量,在一句话表示的向量矩阵中,每一行都代表了不同的词,从左到右的特征提取是没有意义的,所以只会从上到下进行特征提取。


1-3、TextCNN的超参数调参


输入词向量:词向量表示的选取,选择一个适合的词嵌入表示模型(word2vec还是GloVe)

filter大小: 卷积核的大小。随着语料中句子的增加而增加,一般设置为(3,4,5)

每个size下的filter个数:增加特征图的时候,训练时间也会变得很长,要注意权衡。

激活函数: 一般选择Relu作为激活函数。

池化策略:1-max pooling

droupout rate:0.5

L2正则化: 相比于其他参数来说,影响比较小。


参考文章:

【深度学习】详解TextCNN.

【原创】文本分类算法TextCNN原理详解(一).

自然语言处理之TextCNN 原理及文本分类.

深入TextCNN(一)详述CNN及TextCNN原理.

重要:听说你不会调参?TextCNN的优化经验Tricks汇总 .


总结

桥洞底下盖小被。

相关文章
|
3月前
|
机器学习/深度学习 算法 TensorFlow
文本分类识别Python+卷积神经网络算法+TensorFlow模型训练+Django可视化界面
文本分类识别Python+卷积神经网络算法+TensorFlow模型训练+Django可视化界面
65 0
文本分类识别Python+卷积神经网络算法+TensorFlow模型训练+Django可视化界面
|
1月前
|
机器学习/深度学习 数据采集 存储
使用机器学习算法进行文本分类的方法与实践
本文将介绍使用机器学习算法进行文本分类的方法与实践。通过分析文本特征、选择合适的机器学习算法和构建有效的训练模型,可以实现准确和高效的文本分类任务。我们还将探讨如何处理文本数据预处理、特征提取和模型评估等方面的关键问题,以帮助读者更好地应用机器学习技术解决文本分类挑战。
|
2月前
|
机器学习/深度学习 自然语言处理 算法
基于TF-IDF+KMeans聚类算法构建中文文本分类模型(附案例实战)
基于TF-IDF+KMeans聚类算法构建中文文本分类模型(附案例实战)
142 1
|
7月前
|
机器学习/深度学习 数据采集 自然语言处理
文本分类算法的威力:提升企业文档管理软件信息检索的效率和精确性
大家都知道,企业文档管理在这个数字时代扮演着相当关键的角色。但是,随着文档数量的猛增,咱们的信息管理工作逐渐变得越来越复杂。幸运的是,文本分类算法来拯救了我们!接下来就让我们来聊聊如何通过文本分类算法来提升企业文档管理软件的性能——
325 1
|
机器学习/深度学习 算法
【文本分类】《融合后验概率校准训练的文本分类算法》
【文本分类】《融合后验概率校准训练的文本分类算法》
【文本分类】《融合后验概率校准训练的文本分类算法》
|
机器学习/深度学习 自然语言处理 算法
ML之NB:基于news新闻文本数据集利用纯统计法、kNN、朴素贝叶斯(高斯/多元伯努利/多项式)、线性判别分析LDA、感知器等算法实现文本分类预测daiding
ML之NB:基于news新闻文本数据集利用纯统计法、kNN、朴素贝叶斯(高斯/多元伯努利/多项式)、线性判别分析LDA、感知器等算法实现文本分类预测daiding
ML之NB:基于news新闻文本数据集利用纯统计法、kNN、朴素贝叶斯(高斯/多元伯努利/多项式)、线性判别分析LDA、感知器等算法实现文本分类预测daiding
ML之NB:基于news新闻文本数据集利用纯统计法、kNN、朴素贝叶斯(高斯/多元伯努利/多项式)、线性判别分析LDA、感知器等算法实现文本分类预测
ML之NB:基于news新闻文本数据集利用纯统计法、kNN、朴素贝叶斯(高斯/多元伯努利/多项式)、线性判别分析LDA、感知器等算法实现文本分类预测
ML之NB:基于news新闻文本数据集利用纯统计法、kNN、朴素贝叶斯(高斯/多元伯努利/多项式)、线性判别分析LDA、感知器等算法实现文本分类预测
|
人工智能 算法 固态存储
ML之NB:基于news新闻文本数据集利用纯统计法、kNN、朴素贝叶斯(高斯/多元伯努利/多项式)、线性判别分析LDA、感知器等算法实现文本分类预测daiding(二)
ML之NB:基于news新闻文本数据集利用纯统计法、kNN、朴素贝叶斯(高斯/多元伯努利/多项式)、线性判别分析LDA、感知器等算法实现文本分类预测daiding
|
算法 新能源 vr&ar
ML之NB:基于news新闻文本数据集利用纯统计法、kNN、朴素贝叶斯(高斯/多元伯努利/多项式)、线性判别分析LDA、感知器等算法实现文本分类预测daiding
ML之NB:基于news新闻文本数据集利用纯统计法、kNN、朴素贝叶斯(高斯/多元伯努利/多项式)、线性判别分析LDA、感知器等算法实现文本分类预测daiding
ML之NB:基于news新闻文本数据集利用纯统计法、kNN、朴素贝叶斯(高斯/多元伯努利/多项式)、线性判别分析LDA、感知器等算法实现文本分类预测daiding
|
人工智能 算法 固态存储
ML之NB:基于news新闻文本数据集利用纯统计法、kNN、朴素贝叶斯(高斯/多元伯努利/多项式)、线性判别分析LDA、感知器等算法实现文本分类预测
ML之NB:基于news新闻文本数据集利用纯统计法、kNN、朴素贝叶斯(高斯/多元伯努利/多项式)、线性判别分析LDA、感知器等算法实现文本分类预测