文本分类算法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汇总 .


总结

桥洞底下盖小被。

相关文章
|
7月前
|
机器学习/深度学习 算法 TensorFlow
文本分类识别Python+卷积神经网络算法+TensorFlow模型训练+Django可视化界面
文本分类识别Python+卷积神经网络算法+TensorFlow模型训练+Django可视化界面
123 0
文本分类识别Python+卷积神经网络算法+TensorFlow模型训练+Django可视化界面
|
3月前
|
机器学习/深度学习 人工智能 算法
【新闻文本分类识别系统】Python+卷积神经网络算法+人工智能+深度学习+计算机毕设项目+Django网页界面平台
文本分类识别系统。本系统使用Python作为主要开发语言,首先收集了10种中文文本数据集("体育类", "财经类", "房产类", "家居类", "教育类", "科技类", "时尚类", "时政类", "游戏类", "娱乐类"),然后基于TensorFlow搭建CNN卷积神经网络算法模型。通过对数据集进行多轮迭代训练,最后得到一个识别精度较高的模型,并保存为本地的h5格式。然后使用Django开发Web网页端操作界面,实现用户上传一段文本识别其所属的类别。
98 1
【新闻文本分类识别系统】Python+卷积神经网络算法+人工智能+深度学习+计算机毕设项目+Django网页界面平台
|
机器学习/深度学习 数据采集 自然语言处理
文本分类算法的威力:提升企业文档管理软件信息检索的效率和精确性
大家都知道,企业文档管理在这个数字时代扮演着相当关键的角色。但是,随着文档数量的猛增,咱们的信息管理工作逐渐变得越来越复杂。幸运的是,文本分类算法来拯救了我们!接下来就让我们来聊聊如何通过文本分类算法来提升企业文档管理软件的性能——
525 0
|
7月前
|
机器学习/深度学习 数据采集 存储
使用机器学习算法进行文本分类的方法与实践
本文将介绍使用机器学习算法进行文本分类的方法与实践。通过分析文本特征、选择合适的机器学习算法和构建有效的训练模型,可以实现准确和高效的文本分类任务。我们还将探讨如何处理文本数据预处理、特征提取和模型评估等方面的关键问题,以帮助读者更好地应用机器学习技术解决文本分类挑战。
|
7月前
|
机器学习/深度学习 自然语言处理 算法
基于TF-IDF+KMeans聚类算法构建中文文本分类模型(附案例实战)
基于TF-IDF+KMeans聚类算法构建中文文本分类模型(附案例实战)
582 1
|
机器学习/深度学习 自然语言处理 算法
Gzip+ kNN文本分类竟然击败Transformers:无需预训练、14行代码实现
Gzip+ kNN文本分类竟然击败Transformers:无需预训练、14行代码实现
135 0
|
机器学习/深度学习 算法
【文本分类】《融合后验概率校准训练的文本分类算法》
【文本分类】《融合后验概率校准训练的文本分类算法》
【文本分类】《融合后验概率校准训练的文本分类算法》
|
机器学习/深度学习 自然语言处理 算法
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、感知器等算法实现文本分类预测
|
2月前
|
算法 安全 数据安全/隐私保护
基于game-based算法的动态频谱访问matlab仿真
本算法展示了在认知无线电网络中,通过游戏理论优化动态频谱访问,提高频谱利用率和物理层安全性。程序运行效果包括负载因子、传输功率、信噪比对用户效用和保密率的影响分析。软件版本:Matlab 2022a。完整代码包含详细中文注释和操作视频。