[发明专利]一种基于CNNFeed网络模型的文本分类方法在审
申请号: | 202211606331.0 | 申请日: | 2022-12-15 |
公开(公告)号: | CN115905539A | 公开(公告)日: | 2023-04-04 |
发明(设计)人: | 曹肖攀;刘磊 | 申请(专利权)人: | 中电万维信息技术有限责任公司 |
主分类号: | G06F16/35 | 分类号: | G06F16/35;G06F40/242;G06N3/0464 |
代理公司: | 兰州嘉诺知识产权代理事务所(普通合伙) 62202 | 代理人: | 张鹏 |
地址: | 730000 甘肃省兰州市城关*** | 国省代码: | 甘肃;62 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 基于 cnnfeed 网络 模型 文本 分类 方法 | ||
1.一种基于CNNFeed网络模型的文本分类方法,包括有如下步骤:
S1.构造训练数据集:办公文件名称进行数据标注, 使用sep为文件名称和文件标签的分隔符,如果一个文件名称有多个标签,标签之间用”|”作为分隔符;
S2.构造字符到字符ID的映射:针对开源BERT模型的词表进行整理,保留特殊字符二个,分别为:补全字符 [PAD],未在词表中出现字符[UNK],将BERT词表中所有长度超过1的词表全部删除,针对办公文件的数据统计其中的字符和上述由BERT获取的字符进行合并去重,然后根据这些字符建立词典Dict_token,Dict_token的前项key为字符索引编号,Dict_token的后项value为具体的单个字符,即Dict_token={0:”[PAD]”,1:”[UNK]“,.......},其中[PAD]代表当文本长度不够最大长度时,采用[PAD]填充到max_len长度,[UNK]为不在词典中的异常符;
S3.构造文件标签到文件标签ID的映射:建立词典Dict_label,Dict_label的前项key为文件标签名称索引编号,Dict_label的后项value为具体的文件标签名称;
S4.标注数据和模型适配:在步骤S1中得到的训练数据集中的文本样本,本条文本不够最大长度100,则将列表通过[PAD]填充到该文本最大长度100,然后通过字典Dict_token,映射成索引编号列表,进而变成输入文本分类模型Tensor张量X;文件标签共有27个,建立长度为27的列表Label_Y,列表中每个元素为零,对应的Y输出通过索引编号列表Dict_label取出的键值为0,则Label_Y的第0个元素置为1,然后将Label_Y变成张量Tensor作为模型输出的优化目标Y,将训练数据集中的其它文本执行同样操作,得到整个输入数据和优化目标,作为后续模型的输入和优化目标;
S5.构建办公文件名称文本分类CNNFeed模型:模型约定文本最大长度为100,嵌入维度为512,针对在步骤S4中模型输入的每条输入文本,先将文本进行嵌入表示,此时文本嵌入表示的矩阵形状为【64,100,512】,64为训练过程中批次batchsize大小,将该文本嵌入表示输入到文件分类模型,即:same卷积CNN模块+前馈全连接神经网络Feed_forward模块,重复6次,即6层相同的网络,得到整体网络模型结构,采用same卷积方式设计成和Transformer一样可伸缩的层状结构,将Transformer中起到拟合数据能力的前馈神经网络迁移到层状结构中,首先针对输入插入一个维度【64,1, 100, 512】记为input,然后经过步幅为1,填充padding(1,0),大小为(3,1)的卷积核Conv2d卷积操作,即same卷积,输出张量大小仍为【64,1, 100, 512】,通过(3,1)卷积核使得每个字符能够感受到左右各一个字符信息,然后在字嵌入维度进行层归一化后经过GELU激活函数,输出张量记为out_conv3,将该张量输入步幅为1,填充padding为(2,0),卷积核大小为(5,1)卷积Conv2d操作,即same卷积;并在嵌入维度进行层归一化后经过GELU激活函数,(5,1)大小的卷积核使得每个字符感受到左右各两个字符的信息,此时输出张量和输入张量维度仍然相同,记为out_conv5,将input+out_conv3+out_conv5进行相加,然后将相加结果去掉维度为1的维度,记为out_conv,形状大小为【64,100,512】,即将输入完成卷积CNN模块的一次操作;然后将out_conv输入到前馈全连接神经网络Feed_forward模块输出为out_feed;每个字符通过卷积神经网络感受到附近的字符信息,通过前馈神经网络提高模型拟合文本数据的能力,形状为【64,100,512】,上述卷积部分和前馈神经部分为一个单元,重复多次,即将输入输入多层的输出记为y_temp,即使得文本中每个字能够感受左右更多字符信息,然后在句子长度100的维度上进行求和,形状为【64,512】,然后将该矩阵输入到【512,27】的全连接输出形状大小为【64,27】,然后在最后一个维度27上取sigmoid函数操作,此时记为y_pred,针对每一个文件名称,预测是哪个标签的概率;
S6.训练模型:根据已设定好的网络结构和交叉熵损失函数,采用Adam优化器进行模型训练,训练过程中,将一个batch批次数据输入到上述模型得到y_pred;计算真实标签Y和y_pred的交叉熵损失函数;直到损失函数收敛稳定,针对模型训练的连续100个反向传播的损失函数loss值取平均,记录为loss1,然后在3小时后记录连续100个反向传播的loss值取平均,记录为loss2;如果模型损失值loss1-loss20.01,即可以停止训练,保存模型;
S7.文件名称标签预测:将已知的用户提供的文本名称通过上述步骤S6中的已经训练完成的模型,最终得到文本类别预测概率列表记为y_pred=[0.02,0.84,0.09,…],取出所有概率大于0.5的索引,然后通过Dict_label取出对应的标签即为文本名称对应的标签,完成文本类别预测。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于中电万维信息技术有限责任公司,未经中电万维信息技术有限责任公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202211606331.0/1.html,转载请声明来源钻瓜专利网。