技术领域
[0001] 本
发明涉及一种基于多通道深度学习模型的文本分类方法及其装置。
背景技术
[0002] 随着计算机技术高速发展、互联网产生
大数据和神经网络训练方法改进,深度学习技术得到了快速发展。深度学习是一种特殊的
机器学习,通过学习将世界使用嵌套的概念层次来表示并实现巨大的功能和灵活性,其中每个概念都定义为与简单概念相关联,而更为抽象的表示则以较不抽象的方式来计算。
[0003] 近年来
自然语言处理(NLP)技术已经不断渗透并应用于互联网垂直领域,在诸如文本分类、实体识别、问答系统、翻译系统中扮演着重要
角色。深度学习处理自然语言任务可以避免传统
算法对特征是重度依赖性,准确度也更高,近来颇受重视。作为深度学习领域两大阵营的CNN和RNN各具特色,一般来说CNN适用于空间任务(如图像),RNN适用于时序任务(如语音),自然语言处理任务一般以文本的形式出现,所以使用RNN较为自然,但经对比发现CNN在文本分类上表现良好,又因为RNN模型的训练时间普遍较长,所以使用CNN做文本分类是更明智的选择。
[0004]
卷积神经网络是一种前馈型神经网络,受
生物自然视觉认知机制启发而来的。现在,CNN已经成为众多科学领域的研究热点之一。本文提供一种新的卷积神经网络模型,对文本数据分别基于字和词进行两次提取特征,从而提高分类效果。
[0005] 贾丹丹等人(参考文献1:文本分类方法及装置,
申请号2017111200630)提出了一种文本分类方法,同样是基于卷积神经网络。该方法在分词的
基础上以词向量确定句子向量,以句子向量确定每个句子的重要性评价参数,并以所述参数确定文本
摘要信息,以实现分类。该方法过于依赖文本内容与摘要信息的相关性,对于相对不太规整的文本数据可能分类效果不太理想。而本方法中有一次特征提取是基于字的(参考文献2:Xiang Zhang,Junbo Zhao,et al.Character-level Convolutional Networks for Text Classification.arXiv:1509.01626v3[cs.LG]4 Apr 2016),对摘要信息的依赖性较弱,在大量数据集的训练下准确度较高;李钊等人(参考文献3:基于卷积循环神经网络的文本分类方法,申请号2019100251750)公开了一种基于卷积循环神经网络的文本分类方法,该方法先利用卷积神经网络提取文本特征,然后将提取到的特征放入长短期记忆网络处理序列信息,最后由全连接层处理得出分类结果。该方法虽然不是传统的循环神经网络(RNN),但还是未能避免RNN带来的模型训练时间较长的硬伤。
发明内容
[0006] 本发明要解决
现有技术的上述缺点,提供一种基于多通道深度模型的文本分类方法及其装置。
[0007] 本发明首先对输入的文本信息进行分词操作并分别建立基于该文本的字库与词库,然后由训练好的word2vec模型得到对应字向量与词向量,将其作为两个通道放入卷积神经网络进行卷积、
池化以提取文本中的特征,然后通过全连接层将两个通道提取到的特征进行拼接,最后由softmax函数实现预测分类。
[0008] 本发明解决其技术问题所采用的技术方案是:
[0009] 一种基于多通道深度模型的文本分类方法,包括以下步骤:
[0010] 1)根据数据集中划分出来的训练集建立字库,该字库包含训练集中出现的所有的字;
[0011] 具体包括:先根据所建立字库获取每个字的one-hot编码,然后再通过训练好的word2vec模型获取对应字向量。
[0012] 2)根据数据集中划分出来的训练集建立词库,该词库包含训练集中出现的所有的词;
[0013] 具体包括:建立词库前应对数据集进行分词操作,分词工具采用jieba分词并根据分词结果建立词库,并根据所建立的词库获取每个词的one-hot编码,然后通过训练好的word2vec模型获取对应词向量。
[0014] 3)文本数据通过上述建立字库的和词库分别获得该文本的字向量和词向量,并将其视作两个通道放入卷积神经网络进行卷积获取特征。
[0015] 具体包括:使用一维卷积对输入进行卷积操作,卷积核高度取3,卷积核数目为256,卷积后特征图的高度计算公式为 其中W为原始输入的高度,H为卷积核的高度,S表示步长。假设Xi:i+j表示Xi到Xi+j个词,使用一个宽度为d,高度为h的卷积核W与Xi:i+j(h个词)进行卷积操作得到特征Ci,Ci=f(w*xi:i+h-1+b)。因此经过卷积操作后可以得到一个n-h+1维的向量c=[c1,c2,...,cn-h+1]。
[0016] 4)卷积后通过池化层,在保留显著特征的同时降低输出结果的维度,池化层采用最大池化;
[0017] 5)池化后为全连接层,本层全连接层神经元个数设置为350个,并后接dropout以及relu激活,以防止过拟合及去线性化;
[0018] 6)之后再接一层全连接层,本层全连接层神经元个数为训练集中的类别数目,并通过softmax函数实现预测类别,对每个样本,它属于类别i的概率为yi,有
[0019] 7)经过softmax处理后通过损失函数来刻画实际输出(概率)与期望输出(概率)的距离,也就是损失函数的值越小,两个概率分布就越接近。损失函数采用交叉熵,对于多分类问题,交叉熵损失函数 其中M为类别数;yc为指示变量(0或1),如果该类别与样本类别相同就是1,否则0;pc为观测样本属于类别c的预测概率。
[0020] 实施如基于多通道深度模型的文本分类方法的装置,包括依次连接的建立字库模
块、建立词库模块、卷积模块、池化模块、第一全连接模块、第二全连接模块、输出模块;
[0021] 建立字库模块,根据数据集中划分出来的训练集建立字库,该字库包含训练集中出现的所有的字;
[0022] 具体包括:先根据所建立字库获取每个字的one-hot编码,然后再通过训练好的word2vec模型获取对应字向量;
[0023] 建立词库模块,根据数据集中划分出来的训练集建立词库,该词库包含训练集中出现的所有的词;
[0024] 具体包括:建立词库前应对数据集进行分词操作,分词工具采用jieba分词并根据分词结果建立词库,并根据所建立的词库获取每个词的one-hot编码,然后通过训练好的word2vec模型获取对应词向量;
[0025] 卷积模块,文本数据通过上述建立字库的和词库分别获得该文本的字向量和词向量,并将其视作两个通道放入卷积神经网络进行卷积获取特征;
[0026] 具体包括:使用一维卷积对输入进行卷积操作,卷积核高度取3,卷积核数目为256,卷积后特征图的高度计算公式为 其中W为原始输入的高度,H为卷积核的高度,S表示步长;假设Xi:i+j表示Xi到Xi+j个词,使用一个宽度为d,高度为h的卷积核W与Xi:i+j(h个词)进行卷积操作得到特征Ci,Ci=f(w*xi:i+h-1+b);因此经过卷积操作后可以得到一个n-h+1维的向量c=[c1,c2,...,cn-h+1];
[0027] 池化模块,卷积后通过池化层,在保留显著特征的同时降低输出结果的维度,池化层采用最大池化;
[0028] 第一全连接模块,池化后为全连接层,本层全连接层神经元个数设置为350个,并后接dropout以及relu激活,以防止过拟合及去线性化;
[0029] 第二全连接模块,再接一层全连接层,本层全连接层神经元个数为训练集中的类别数目,并通过softmax函数实现预测类别,对每个样本,它属于类别i的概率为yi,有[0030] 输出模块,经过softmax处理后通过损失函数来刻画实际输出概率与期望输出概率的距离;损失函数采用交叉熵,对于多分类问题,交叉熵损失函数 其中M为类别数;yc为指示变量(0或1),如果该类别与样本类别相同就是1,否则0;pc为观测样本属于类别c的预测概率。
[0031] 本发明的优点是:完全基于卷积神经网络模型(CNN),训练时间短:多通道提取特征,使得分类效果不过分依赖文本数据本身,即对于不同的文本数据都能有比较好且稳定的分类效果。
附图说明
[0032] 图1是本发明的多通道深度模型结构示意图。
[0033] 图2是本发明的word2vec模型结构示意图。
具体实施方式
[0034] 下面结合附图和具体
实施例对本发明作进一步描述。
[0035] 实施例1
[0036] 本实施例公开一种基于多通道深度模型的文本分类方法,本方法基于卷积神经网络模型,如图1所示,该模型包含embedding层(通过word2vec实现)、卷积层、最大池化层、全连接层、全连接层以及softmax。由文本数据中提出来的字向量与词向量首先分别作为两个通道通过卷积层和池化层得到文本特征,再由全连接层以及softmax函数得到分类结果。
[0037] 一种基于多通道深度模型的文本分类方法,包括以下步骤:
[0038] 1)根据数据集中划分出来的训练集建立字库,该字库包含训练集中出现的所有的字;
[0039] 本实施例中,先根据所建立字库获取每个字的one-hot编码,然后再通过训练好的word2vec模型获取对应字向量。
[0040] 2)根据数据集中划分出来的训练集建立词库,该词库包含训练集中出现的所有的词;
[0041] 本实施例中,建立词库前应对数据集进行分词操作,分词工具采用jieba分词并根据分词结果建立词库,并根据所建立的词库获取每个词的one-hot编码,然后通过训练好的word2vec模型获取对应词向量。
[0042] 3)文本数据通过上述建立字库的和词库分别获得该文本的字向量和词向量,并将其视作两个通道放入卷积神经网络进行卷积获取特征。
[0043] 本实施例中,采用训练好的word2vec获得相应的字向量与词向量。word2vec是一个仅有3层的浅层神经网络,
输入层和
输出层都可以看做词汇表的one-hot表示,通过语料的训练,可以获得词汇的向量表示。在将文本送入word2vec之前需要预先建立文本的字库与词库,并基于字库词库分别获得每个字和词的one-hot表示,然后再放入训练好的word2vec模型得到相应的字向量和词向量。
[0044] 由于数据集中每个样本的长度不一致,因此在词嵌入前需要将样本处理成统一的长度,样本长度根据实际情况而定。若将样本长度记为L,词向量维度记为M,则每个样本可表示为L*M的词向量矩阵,并以此作为卷积层的输入(字向量同理)。
[0045] 本实施例中,使用一维卷积对输入进行卷积操作,卷积核高度取3,卷积核数目为256,卷积后特征图的高度计算公式为 其中W为原始输入的高度,H为卷积核的高度,S表示步长。假设Xi:i+j表示Xi到Xi+j个词,使用一个宽度为d,高度为h的卷积核W与Xi:i+j(h个词)进行卷积操作得到特征Ci,Ci=f(w*xi:i+h-1+b)。因此经过卷积操作后可以得到一个n-h+1维的向量c=[c1,c2,...,cn-h+1]。
[0046] 4)卷积后通过池化层,在保留显著特征的同时降低输出结果的维度,池化层采用最大池化;
[0047] 5)池化后为全连接层,本实施例中,本层全连接层神经元个数设置为350个,并后接dropout以及relu激活,以防止过拟合及去线性化;
[0048] 6)之后再接一层全连接层,本层全连接层神经元个数为训练集中的类别数目,并通过softmax函数实现预测类别,对每个样本,它属于类别i的概率为yi,有
[0049] 7)经过softmax处理后通过损失函数来刻画实际输出(概率)与期望输出(概率)的距离,也就是损失函数的值越小,两个概率分布就越接近。损失函数采用交叉熵,对于多分类问题,交叉熵损失函数 其中M为类别数;yc为指示变量(0或1),如果该类别与样本类别相同就是1,否则0;pc为观测样本属于类别c的预测概率。
[0050] 实施例2
[0051] 1.数据集:使用运营商提供的数据进行训练与测试,数据集分为原因类数据和现象类数据,其中原因类数据共308类,现象类数据403类,类标分别为0~307和0~402,每个类的样本分别存在独立的TXT文件中,并以类标命名文件(n.txt)。
[0052] 每个类的样本数量不一,数据集的80%划为训练集,10%验证集,10%测试集。
[0053] 2.参数配置
[0054]
[0055] 3.训练与验证
[0056] Training and evaluating...
[0057] .
[0058] .
[0059] Epoch:9
[0060] Iter: 22000,Train Loss: 1.5,Train Acc: 54.69%,Val Loss: 3.1,Val Acc: 38.22%,Time:0:31:36
[0061] Iter: 22100,Train Loss: 1.3,Train Acc: 65.62%,Val Loss: 3.1,Val Acc: 38.11%,Time:0:31:45
[0062] Iter: 22200,Train Loss: 1.4,Train Acc: 67.19%,Val Loss: 3.2,Val Acc: 38.04%,Time:0:31:56
[0063] Iter: 22300,Train Loss: 1.4,Train Acc: 56.25%,Val Loss: 2.9,Val Acc: 39.54%,Time:0:32:05
[0064] Iter: 22400,Train Loss: 0.94,Train Acc: 70.31%,Val Loss: 3.0,Val Acc: 38.63%,Time:0:32:14
[0065] Iter: 22500,Train Loss: 1.5,Train Acc: 53.12%,Val Loss: 3.0,Val Acc: 38.74%,Time:0:32:22
[0066] Iter: 22600,Train Loss: 1.6,Train Acc: 59.38%,Val Loss: 2.9,Val Acc: 39.15%,Time:0:32:31
[0067] Iter: 22700,Train Loss: 1.8,Train Acc: 50.00%,Val Loss: 2.9,Val Acc: 39.60%,Time:0:32:40
[0068] Iter: 22800,Train Loss: 1.6,Train Acc: 53.12%,Val Loss: 3.0,Val Acc: 39.05%,Time:0:32:50
[0069] Iter: 22900,Train Loss: 1.3,Train Acc: 60.94%,Val Loss: 3.0,Val Acc: 38.91%,Time:0:32:58
[0070] Iter: 23000,Train Loss: 1.3,Train Acc: 60.94%,Val Loss: 3.0,Val Acc: 39.36%,Time:0:33:08
[0071] Iter: 23100,Train Loss: 1.6,Train Acc: 56.25%,Val Loss: 2.9,Val Acc: 40.06%,Time:0:33:17
[0072] Iter: 23200,Train Loss: 1.5,Train Acc: 57.81%,Val Loss: 3.0,Val Acc: 39.42%,Time:0:33:27
[0073] Iter: 23300,Train Loss: 1.5,Train Acc: 62.50%,Val Loss: 3.0,Val Acc: 39.41%,Time:0:33:37
[0074] Iter: 23400,Train Loss: 1.5,Train Acc: 53.12%,Val Loss: 3.0,Val Acc: 39.39%,Time:0:33:46
[0075] Iter: 23500,Train Loss: 1.4,Train Acc: 57.81%,Val Loss: 3.0,Val Acc: 38.67%,Time:0:33:55
[0076] No optimization for a long time,auto-stopping...
[0077] 在验证集上的最佳效果为40.55%,经过了9轮
迭代停止。
[0078] ②测试结果
[0079] Testing...
[0080] Test Loss:2.5,Test Acc:41.87%
[0081] Confusion Matrix...
[0082] [[0 0 0 ... 0 0 0]
[0083] [0 0 0 ... 0 0 0]
[0084] [0 0 8 ... 0 0 0]
[0085] ...
[0086] [0 0 0 ... 0 0 0]
[0087] [0 0 0 ... 1 4 1]
[0088] [0 0 0 ... 0 0 0]]
[0089] Time usage:0:00:30
[0090] 在测试集上的准确率为41.87%。
[0091] 以上为原因类数据的实验结果,现象类在测试集上的准确率为58.66%。
[0092] 实施例3
[0093] 实施实施例1的基于多通道深度模型的文本分类方法的装置,包括依次连接的建立字库模块、建立词库模块、卷积模块、池化模块、第一全连接模块、第二全连接模块、输出模块;
[0094] 建立字库模块,根据数据集中划分出来的训练集建立字库,该字库包含训练集中出现的所有的字;
[0095] 具体包括:先根据所建立字库获取每个字的one-hot编码,然后再通过训练好的word2vec模型获取对应字向量;
[0096] 建立词库模块,根据数据集中划分出来的训练集建立词库,该词库包含训练集中出现的所有的词;
[0097] 具体包括:建立词库前应对数据集进行分词操作,分词工具采用jieba分词并根据分词结果建立词库,并根据所建立的词库获取每个词的one-hot编码,然后通过训练好的word2vec模型获取对应词向量;
[0098] 卷积模块,文本数据通过上述建立字库的和词库分别获得该文本的字向量和词向量,并将其视作两个通道放入卷积神经网络进行卷积获取特征;
[0099] 具体包括:使用一维卷积对输入进行卷积操作,卷积核高度取3,卷积核数目为256,卷积后特征图的高度计算公式为 其中W为原始输入的高度,H为卷积核的高度,S表示步长;假设Xi:i+j表示Xi到Xi+j个词,使用一个宽度为d,高度为h的卷积核W与Xi:i+j(h个词)进行卷积操作得到特征Ci,Ci=f(w*xi:i+h-1+b);因此经过卷积操作后可以得到一个n-h+1维的向量c=[c1,c2,...,cn-h+1];
[0100] 池化模块,卷积后通过池化层,在保留显著特征的同时降低输出结果的维度,池化层采用最大池化;
[0101] 第一全连接模块,池化后为全连接层,本层全连接层神经元个数设置为350个,并后接dropout以及relu激活,以防止过拟合及去线性化;
[0102] 第二全连接模块,再接一层全连接层,本层全连接层神经元个数为训练集中的类别数目,并通过softmax函数实现预测类别,对每个样本,它属于类别i的概率为yi,有[0103] 输出模块,经过softmax处理后通过损失函数来刻画实际输出概率与期望输出概率的距离;损失函数采用交叉熵,对于多分类问题,交叉熵损失函数 其中M为类别数;yc为指示变量(0或1),如果该类别与样本类别相同就是1,否则0;pc为观测样本属于类别c的预测概率。
[0104] 本
说明书实施例所述的内容仅仅是对发明构思的实现形式的列举,本发明的保护范围不应当被视为仅限于实施例所陈述的具体形式,本发明的保护范围也及于本领域技术人员根据本发明构思所能够想到的等同技术手段。