基于CNN-LSTM的惠企政策文本多分类研究
作者: 陈林 喻金平
关键词:文本分类;卷积神经网络;长短时记忆网络;惠企政策
中图分类号:TP18 文献标识码:A
文章编号:1009-3044(2024)25-0069-04
0 引言
惠企政策是指国家和地方政府为扶持企业发展、优化营商环境而制定的一系列措施,对于促进经济发展、提升企业竞争力具有重要作用。但随着政策数量的增加,其分布的散乱和分类的不统一给企业和个人带来了困扰。面对杂乱无章的政策文件,企业往往需要耗费大量时间和精力去筛选和解读,这不仅增加了企业的运营成本,还可能导致企业错过重要的政策机遇。因此,如何高效地整理这些惠企政策文本,提高对其分类效率具有重要的现实意义[1]。
近年来,随着自然语言处理和深度学习技术的快速发展,文本分类技术为这一问题提供了新的解决方案。本研究旨在探索一种基于CNN-LSTM模型的惠企政策文本分类方法,以构建高效的分类模型,实现对惠企政策文本的精准分类。此研究有助于企业和个人更加便捷地获取和理解相关政策,提高政策资源的匹配精度,从而降低信息获取成本,促进政府政策的传达效率,加强政府与企业和个人之间的沟通。
1 相关理论与方法
1.1 独热编码
独热编码(One-hot Encoding) 是一种常用的数据预处理技术,用于将分类变量转换为数值向量,解决类别间无序性的问题。这种编码方式确保了每个类别在数值处理层面上都是等价的,从而为后续的机器学习模型提供了无偏见的输入数据。在本研究中,首先将文本类别的标签映射为整数标签,随后采用One-hot编码技术,将每个整数标签转换为一个固定长度的二进制向量,其中仅代表该类别的位被置为1,其余位均为0[2]。
本实验对标签使用独热编码进行数值化是为了满足多分类任务中损失函数的计算需求,将类别标签转换为概率分布形式的二进制向量。独热编码后的标签可以用于计算交叉熵损失,这是多分类任务中常用的损失函数。交叉熵损失需要模型的输出和真实标签都是概率分布形式,而独热编码提供了这种形式的标签。
1.2 文本向量化
文本向量化是自然语言处理中的重要环节,旨在将非结构化的文本数据转换为机器可处理的数值向量[3]。本文采用Tokenizer技术,有效实现了文本数据的向量化。Tokenizer作为一种文本预处理工具,其核心功能是将文本字符串分割成一系列离散的单元(通常是单词或子词),并为这些单元分配唯一的整数索引,从而构建出一个初步的数值化表示。
具体而言,Tokenizer首先遍历整个文本数据集,统计每个词的出现频率,并基于这些统计信息构建一个词汇表。词汇表不仅限定了模型处理的词汇范围,还通过为每个独特词汇分配索引,为后续的文本向量化提供了基础。一旦词汇表构建完成,Tokenizer便能将文本数据中的每个词汇映射为其对应的索引,生成一个整数序列。这一过程实质上实现了文本数据从非数值形式到数值序列的转换,即文本的向量化。
然而,鉴于自然语言的多样性,不同文本的长度往往差异显著。为了确保数据的一致性,便于后续模型处理,本文在文本向量化之后,进一步对生成的整数序列进行了填充和截断操作。具体而言,对于较短的序列,采用特定的填充值(如0) 进行填充,以使其达到预设的统一长度;而对于过长的序列,则进行截断处理,仅保留其前N个元素,以确保所有输入序列具有相同的维度。
值得注意的是,Tokenizer生成的整数序列虽然为文本数据提供了一种初步的数值化表示,但这种表示方式相对较为粗糙,难以直接捕捉到词汇之间的语义关系。因此,在后续的CNN-LSTM模型构建中,本实验利用Embedding层将这些整数索引转换为密集的实值向量。Embedding层通过学习词汇之间的语义相似性,将整数索引映射到高维空间中的向量表示,从而进一步提升模型对文本数据的理解和处理能力。
1.3 CNN-LSTM 混合模型
CNN-LSTM混合模型是一种结合了卷积神经网络(CNN)和长短期记忆网络(LSTM)优势的深度学习模型,能够同时捕捉输入数据的局部特征和时序关系[4]。
在本实验中,首先利用CNN模块提取输入数据的局部特征,然后将这些特征序列输入LSTM模块中,LSTM根据序列的时序关系进行建模和预测,最后通过全连接层对LSTM的输出进行惠企政策文本分类。
本研究中的CNN-LSTM 模型由输入层、Embed⁃ding层、2层卷积层、2层最大池化层、2层dropout层、LSTM层、全连接层、输出层组成,模型整体结构如图1所示。
1.3.1 基于卷积神经网络(CNN) 模块的局部特征提取
卷积神经网络(Convolutional Neural Networks,CNN) 是一种深度学习模型,可用于处理和分析文本数据。CNN的核心部分是卷积层和池化层。卷积层负责提取输入数据的特征,通过滑动卷积核在输入数据上进行操作,从而捕捉局部特征[5]。池化层则对卷积后的特征图进行下采样,以减少参数数量,防止过拟合,并增强模型的鲁棒性。
卷积层计算公式如下:
O = f (WZ + b) (1)
式中,O 表示卷积后提取的特征矩阵,W 表示权重矩阵,Z 表示输入的词向量矩阵,参数b 表示偏置项,f 为ReLU激活函数,其具体公式为max(0,x),x 为上一层神经网络的输出向量[6]。
在本实验模型的CNN模块中,首先通过Embed⁃ding层将惠企政策文本的输入序列转换为嵌入向量。这些嵌入向量捕捉了文本中词汇的语义信息,作为CNN模块的输入,为后续的特征提取奠定了基础。然后,通过卷积层执行一维卷积操作,用于提取惠企政策文本数据中的局部特征,如特定的政策术语、关键词组合等。接着,通过最大池化层对卷积层的输出进行下采样,减少惠企政策数据的维度,同时保留最重要的特征。最后,通过Dropout层随机丢弃部分神经元连接,以防止模型过拟合。
1.3.2 基于长短期记忆网络(LSTM) 模块的时序关系提取
长短期记忆网络(Long Short-Term Memory,LSTM) 是一种特殊的循环神经网络(RNN) ,它解决了RNN在处理长序列时可能出现的梯度消失或梯度爆炸问题[7]。LSTM通过引入门控机制(包括输入门、遗忘门和输出门),能够选择性地记忆或遗忘信息,从而有效地捕捉序列数据中的长期依赖关系,其基本单元结构如图2所示。
在本实验模型的LSTM模块中,将经过CNN模块处理的高级特征序列作为LSTM层的输入。LSTM的基本单元通过其内部的门控机制来控制信息的流动和更新。在每个时间步,LSTM都会根据当前的输入和上一个时间步的隐藏状态来更新其细胞状态和隐藏状态,从而有效地捕捉惠企政策文本中的时间依赖关系和上下文信息。随后,通过一个全连接层进一步处理LSTM层的输出,以便更好地整合和利用提取到的时序特征。接着是一个Dropout层,以减少全连接层中的过拟合。最后,将一个激活函数为softmax的全连接层作为输出层,用于将高级特征映射到惠企政策文本的类别上。
2 实验与结果分析
2.1 数据集与预处理
本实验所采用的数据集为自制数据集,该数据集通过爬虫技术从全国各地相关政府部门网站中爬取获得。随后,通过人工标注将这些数据精细地划分为8个类别,具体为:人才支持、技术发展、知识产权、创新发展、基础设施建设、乡村振兴、金融服务和医疗服务,并将它们整合到Excel文件中以便后续处理。在数据预处理阶段,为了科学地进行模型训练和评估,数据集按照7.5∶1.25∶1.25的比例划分为训练集、验证集和测试集。具体而言,训练集包含6 039条数据,用于模型的训练和学习;验证集1 006条和测试集1 007 条数据,分别用于模型的验证和测试,以确保模型的泛化能力和性能评估的准确性。
在实验过程中,为了便于机器学习模型的处理,首先将数据集中的文本标签(如“人才支持”“技术支持”“乡村振兴”等)映射到整数标签(0,1,2,...) 。接着,对文本内容进行清洗,仅保留中文字符,并利用jieba分词中的精确模式对这些中文字符进行分词处理。随后,利用自定义的停用词表去除停用词,以进一步优化文本数据的质量。处理后的文本内容和对应的整数标签分别被存储到两个列表中,以便后续使用。最后,为了适应模型输入的要求,对标签进行了One-hot编码,利用Tokenizer建立词汇表对文本内容进行了向量化表示。
2.2 实验参数设置
为提升CNN-LSTM混合模型对惠企政策文本分类的精度,经训练和验证,本文实验参数设置如表1所示。模型输入层的长度为200,嵌入层输入维度为10001,嵌入大小为128,输入序列的长度为200,2层卷积层的卷积核数目分别为32和64,卷积核大小均为5×1,采用ReLU激活函数;池化层采用最大池化方式,池化大小为2×1;为了防止过拟合,在卷积层之后和全连接层之后分别添加了丢弃率为0.25和0.5的Dropout 层,用于控制过拟合;LSTM 神经元个数为128;全连接层的神经元个数为128,激活函数为ReLU;输出层是一个神经元数目为8,激活函数为softmax的全连接层;选择了交叉熵作为损失函数,使用Adam优化器并设置学习率为0.001,同时以准确率作为模型的评估指标。在训练过程中,批量大小(batch_size) 设置为32,设定训练轮次(epochs) 为25;设置了早停(EarlyStopping) 策略来防止过拟合,若5轮内验证损失改善小于0.000 1则停止训练。
式中:在本实验中,以“人才支持”类别为例,TP表示实际为正样本且被模型预测为正样本的数量,即模型正确地将属于“人才支持”的文本分类为该类别的数量;TN 表示实际为负样本且被模型预测为负样本的数量,即模型正确地将不属于“人才支持”的文本分类为其他类别的数量;FP 表示实际为负样本但被模型预测为正样本的数量,即模型错误地将不属于“人才支持”的文本分类为“人才支持”的数量;FN 表示实际为正样本但被模型预测为负样本的数量,即模型错误地将属于“人才支持”的文本分类为其他类别的数量。
2.4 结果分析
本实验通过设置训练参数搭建模型环境,使用训练集拟合模型,再使用测试集对模型的分类能力进行评估,最终得到的测试结果如图3所示。由图3可以看出,模型在“知识产权”类别上的分类效果最好,在“技术支持”类别上的分类效果最差,这可能是因为“技术支持”类别的词句相对更加抽象复杂。但模型对惠企政策文本分类的整体准确率约为0.9206,所有类别的平均精确率约为0.9225,平均召回率约为0.9186,平均F1分数为0.9192,表明模型对于惠企政策文本分类有着较好的性能。
为了更加深入、清晰地理解模型的分类性能,本实验采用了混淆矩阵进行直观展示。混淆矩阵,也称为误差矩阵,以表格形式清晰地揭示了模型预测结果与实际类别之间的关系。在本实验所构建的混淆矩阵中,列代表样本的实际类别,行则代表模型的预测类别。矩阵中的每个元素均表示实际类别被预测为某个类别的样本数量。混淆矩阵如图4所示。
从图4可以看出,“创新发展”类别和“技术支持”
类别之间容易混淆,究其原因是这两类政策文本可能同时涉及创新发展的理念和技术支持的措施,导致模型难以明确区分这两个类别。在该混淆矩阵对应的二维数组中,以医疗服务类为例,TP 为111,TN 为884,FP 为4,FN 为8。通过公式(9) (10) (11) 计算可得,医疗服务类的准确率约为0.988 0,精确率约为0.9652,召回率约为0.9328,F1-Score约为0.9487,其他类别可通过相同的方法来计算得出。各个数值都处在较高的水平,表明该模型对于惠企政策的分类效果较好。
为了验证模型的有效性,本文建立CNN模型和LSTM模型进行对比实验。采用相同的数据集对各个模型进行训练、验证和预测,实验结果如表2所示。
由表2可以看出,CNN-LSTM模型在惠企政策文本多分类任务中具有更佳的分类性能,其准确率最高,相对于LSTM 提高了3.58%,相对于CNN 提高了1.10%。这是因为LSTM考虑了惠企政策文本的时序关系,但未考虑其局部特征;CNN只考虑了惠企政策文本的局部特征,但其探究时序关系较弱;本文提出的CNN-LSTM 模型兼顾了二者,具有较好的分类性能。
3 结论
本文针对惠企政策文本分类问题,提出了一种基于CNN-LSTM的混合模型。实验结果表明,该模型在自制的惠企政策文本数据集上取得了良好的分类性能。由于目前对惠企政策进行分类的研究较少,本研究的主要创新点在于:首次将CNN-LSTM混合模型应用于惠企政策文本分类领域,为该领域的进一步研究提供了有益的参考和探索。
本实验初步采用CNN-LSTM模型对惠企政策文本进行分类。在未来研究工作中,将会扩大数据集的数量,提高模型的泛化能力。同时,考虑在CNNLSTM模型中添加注意力机制,通过引入注意力机制,提升模型对关键信息的捕捉能力。最终,将模型应用于实际的惠企政策服务平台中,验证其应用价值。