1.本发明涉及数据安全技术领域,具体的说,是一种敏感数据类型识别方法。
背景技术:
2.目前,针对企业的网络攻击事件逐年攀升,并且造成了大量的数据泄漏和数据勒索事件。数据泄漏带来的威胁不容小觑,在工业互联网环境下,对数据的保护更为重要,尤其是对敏感数据的保护。现有技术中与有以预置规则对数据进行扫描,暴力搜索的方式效率较低,且需要人工不断的分析数据来添加新规则以提高系统效果;也有的通过实用crf模型检索系统中日志中的命名实体,但不是针对敏感数据类型识别任务,且检测的数据类型为系统日志。因此,现有技术中没有可以针对文件中存在的敏感数据进行识别的高效方法。
技术实现要素:
3.本发明的目的在于提供一种敏感数据类型识别方法,用于解决现有技术中没有可以针对文件中存在的敏感数据进行识别的高效方法的问题。
4.本发明通过下述技术方案解决上述问题:
5.一种敏感数据类型识别方法,包括:
6.步骤s100、训练bilstm-crf模型,包括:
7.步骤s110、对训练样本进行预处理,预处理包括文本特征提取、构建核心词典、数据向量化和固定数据长度,文本特征包括单字、词性和词边界;核心词典包括单字的核心词典、词性的核心词典、词边界的核心词典和单字对应的标签的核心词典;标签与单字一一对应,且标识该单字的敏感实体类型;数据向量化指将提取的单字、词性和词边界分别通过各自的核心词典映射得到向量矩阵;固定数据长度指对向量矩阵的数据长度进行截取或填补;
8.步骤s120、采用预处理后的每条数据的向量矩阵和每条数据对应的标签序列训练bilstm-crf模型;
9.步骤s200、采用训练后的bilstm-crf模型识别文件的敏感数据类型:
10.步骤s210、对接收文件进行文本特征提取和数据清洗后,并通过创建的核心词典映射成向量矩阵,发送至训练后的bilstm-crf模型进行敏感数据识别,并对识别结果与标签的核心词典反映射成标签,再通过标签定位到文本,将定位和敏感实体类型整合返回。
11.步骤s220、对bilstm-crf模型返回的结果进行数据后处理后反馈最终的结果,数据后处理包括数据反映射和敏感数据提取。
12.优选地,所述bilstm-crf模型包括嵌入层、bilstm层和crf层,预处理还包括对训练样本的文本数据分别采用预训练词向量工具word2vec、fasttext、glove训练,得到字符嵌入特征矩阵、词性嵌入特征矩阵和词边界嵌入特征矩阵,从字符嵌入特征矩阵读取词嵌入特征矩阵,加载到bilstm-crf模型的三个嵌入层,再通过拼接的方式三个嵌入层拼接成一组词嵌入层;
13.bilstm层接收每条数据的嵌入层,并预测每个字符对每种标签的概率,并输入到crf层,crf层输出最有可能的标注序列。
14.优选地,训练bilstm-crf模型过程中,定义输入序列为x=(x1,...,xi,...,xn),输出序列定义为y=(y1,...,yi,...,yn);bilstm层的输出矩阵为p,代表词xi映射到标签yi的非归一化概率;p的维度为n
×
k,k为标签的类别数;crf层的转移矩阵为a,代表标签yi到y
i+1
的转移概率,a的维度为(k+2)
×
(k+2);定义得分函数为:
[0015][0016]
其中,yn为结束符;i=0时,yi为起始符,为所有可能预测的标签序列,n为输入序列的词数量;
[0017]
接着,利用softmax函数,为每一个可能预测的标签序列定义一个概率值;
[0018][0019]
从上面函数又得到模型损失函数为:
[0020][0021]
得到损失值后,通过使用adam优化器进行梯度下降计算,对模型的所有参数进行优化,直到损失值降到最低。
[0022]
优选地,还包括采用以下参数对训练后的bilstm-crf模型进行评估:
[0023][0024][0025][0026]
其中,precision为准确度;recall为召回率;模型正确识别i类敏感实体指预测结果与标签内容完全一致;
[0027]
保存评估结果最优的模型作为最终的bilstm-crf模型。
[0028]
优选地,步骤s210中的数据清洗包括文本去噪、全角转半角和分句分词。
[0029]
优选地,文本去噪包括清除文本中多余的换行符、空格符和乱码;全角转半角包括将英文字母、标点符号转换成半角格式;分句分词包括将读取的长文本以句为单位拆分,再对每句文本使用hanlp进行拆分和长度补全,得到词序列、词性序列和词边界序列。
[0030]
本发明与现有技术相比,具有以下优点及有益效果:
[0031]
本发明基于有监督的双向长段记忆网络+条件随机场的敏感数据识别,对工业互联网中的数据进行实时或离线的数据扫描,从文件里的文本内容中定位并识别出多种敏感数据类型。通过人工智能的方式,自动学习文本的模式,来识别其中的敏感数据;可针多种类型的文件数据,进行敏感数据类型识别,且结合深度神经网络和crf模型进一步提升模型的性能。
附图说明
[0032]
图1为本发明的流程;
[0033]
图2为模型训练阶段样本数据预处理示意图;
[0034]
图3为模型识别阶段文本数据处理示意图;
[0035]
图4为标签格式示意图;
[0036]
图5为bilstm-crf模型结构示意图。
具体实施方式
[0037]
下面结合实施例对本发明作进一步地详细说明,但本发明的实施方式不限于此。
[0038]
在对本发明的具体实施例介绍之前,首先描述本发明涉及的技术术语:
[0039]
sensitive data identification:敏感数据识别;
[0040]
industrial internet of things:工业互联网;
[0041]
ocr(optical character recognition):光学字符识别;
[0042]
named entity recognition:命名实体识别;
[0043]
nerual network:神经网络;
[0044]
bilstm(bidirectional long short-term memeory):双向长短期记忆网络
[0045]
crf(conditional random field:条件随机场;
[0046]
embedding layer:嵌入层。
[0047]
实施例:
[0048]
结合附图1所示,一种敏感数据类型识别方法,包括:
[0049]
步骤s100、训练bilstm-crf模型,包括:
[0050]
步骤s110、对训练样本进行预处理,预处理包括文本特征提取、构建核心词典、数据向量化和固定数据长度,文本特征包括单字、词性和词边界;核心词典包括单字的核心词典、词性的核心词典、词边界的核心词典和单字对应的标签的核心词典;标签与单字一一对应,且标识该单字的敏感实体类型;数据向量化指将提取的单字、词性和词边界分别通过各自的核心词典映射得到向量矩阵;固定数据长度指对向量矩阵的数据长度进行截取或填补;
[0051]
如图2所示,文本特征提取为将文本数据通过hanlp分词工具得到其分词信息和词性信息,对分词信息,采用bmeso格式的进行转换得到词边界信息:其中,b为beginning,表示一个词语的开始处;m为middle,表示该词语的中间处;e为end,表示该词语的结束处;s为single,表示该词为单个字;o表示outside,表示非实体词。如,“北京大学”通过分词和bmes格式转换后,可表示为“bmme”。同时,赋予每一种词边界标记以对应的数字编号,构成词边界核心词典并保存。例如,{"e":1,"b":2,"m":3
…
}。
[0052]
词性信息,例如,“小明”通过hanlp工具得到的词性标注为“/nz”,意为“其他专名”;“上学”被标注为“/vi”,意为“不及物动词”。同样的,构建词性核心词典并保存。例如,{"n":1,"w":2,"nnt":3
…
}。
[0053]
将文本数据拆成单个字,统计每个字的出现频率并删除出现频率低于100的字。通过赋予每个字一个数字编号,构成单字的核心词典并保存。例如,{",":1,"。":2,"1":3,"0":4
…
}。
[0054]
标签的处理为对文本数据的每个字对应的标签进行标准化,标签标识了文字的敏感实体类型。定义的部分敏感实体类型和对应标签如下表所示:
[0055]
[0056]
[0057][0058]
将标签处理成“词边界_实体类型”的格式如图4所示,同时,将赋予所有处理后的新类型一个索引编号,构成标签的核心词典并保存下来,例如,{"b_per":0,"m_per":1,"e_per":2,
…
}。
[0059]
文本映射:将训练文本的拆成单字序列和使用hanlp得到的词性和词边界的序列,分别将单字序列、词性序列和词边界序列通过单字的核心词典、词性的核心词典和词边界的核心词典映射得到三组id映射向量矩阵:如图2中的id映射部分,自上而下分别是“小明在北京市北京大学上学”映射后得到的词向量矩阵、词性向量矩阵和词边界向量矩阵。
[0060]
固定数据长度:模型训练在训练时,输入的每一批数据中每条的长度必须相同,因此,我们对每组向量矩阵进行截断或填补。例如,当前一批数据的最长数据长度为150,该批向量矩阵组中,任意一行向量长度短于150,需要通过在数据尾部填补0补全到长度150。
[0061]
步骤s120、采用预处理后的每条数据的向量矩阵和每条数据对应的标签序列训练bilstm-crf模型,bilstm-crf模型结构如图5所示,
[0062]
通过数据处理后得到数据样本,每条数据的向量矩阵为x∈{x1,x2,x3,
…
,xn}和每条数据的标签序列为y∈{y1,y2,y3,
…
,yn},模型通过优化算法和训练数据标签对模型参数进行优化。最终训练完成的模型能够根据输入的文字内容,识别出敏感实体类型。使用的bilstm-crf模型的结构如下所示:对于词边界词嵌入特征矩阵和词边界嵌入特征矩阵,使用随机初始化的方法构成。
[0063]
(1)embedding层(嵌入层):从保存的字符嵌入特征矩阵(word2vec、fasttext、glove)文件中读取词嵌入特征矩阵,并加载到三个嵌入层中。词性和词边界的嵌入特征矩阵则需要构建两个随机初始化的嵌入层。其中,字符嵌入层层为分别300,词性嵌入维度为150,词边界嵌入维度为50。通过拼接的方式将这几组词嵌入拼接成一组词嵌入层。该层目的是对输入数据进行降维并保证数据信息不会过分丢失。
[0064]
(2)bilstm-crf层:bilstm接受每条数据的嵌入层,并预测每个字符对每种训练标签的概率(emission score),并输入到crf层中,输出最有可能的标注序列。其中bilstm的隐藏维度参数设置为250。
[0065]
(3)损失函数:
[0066]
训练bilstm-crf模型过程中,定义输入序列为x=(x1,...,xi,...,xn),输出序列定义为y=(y1,...,yi,...,yn);bilstm层的输出矩阵为p,代表词xi映射到标签yi的非归一化概率;p的维度为n
×
k,k为标签的类别数;crf层的转移矩阵为a,代表标签yi到y
i+1
的转移概率,a的维度为(k+2)
×
(k+2);定义得分函数为:
[0067]
[0068]
其中,yn为结束符;i=0时,yi为起始符,为所有可能预测的标签序列,n为输入序列的词数量;
[0069]
接着,利用softmax函数,为每一个可能预测的标签序列定义一个概率值;
[0070][0071]
从上面函数又得到模型损失函数为:
[0072][0073]
得到损失值后,通过使用adam优化器进行梯度下降计算,对模型的所有参数进行优化,直到损失值降到最低。
[0074]
还包括采用以下参数对训练后的bilstm-crf模型进行评估:
[0075][0076][0077][0078]
其中,precision为准确度;recall为召回率;模型正确识别i类敏感实体指预测结果与标签内容完全一致;
[0079]
保存评估结果最优的模型作为最终的bilstm-crf模型。
[0080]
步骤s200、采用训练后的bilstm-crf模型识别文件的敏感数据类型:
[0081]
步骤s210、对从客户端接收的文件进行文本特征提取和数据清洗后,并通过创建的核心词典映射成向量矩阵,发送至训练后的bilstm-crf模型进行敏感数据识别,并对识别结果与标签的核心词典反映射成标签,再通过标签定位到文本,将定位和敏感实体类型整合返回。数据清洗包括文本去噪、全角转半角和分句分词。文本去噪包括清除文本中多余的换行符、空格符和乱码;全角转半角包括将英文字母、标点符号转换成半角格式;分句分词包括将读取的长文本以句为单位拆分,再对每句文本使用hanlp进行拆分和长度补全,得到词序列、词性序列和词边界序列,如图3所示。
[0082]
步骤s220、对bilstm-crf模型返回的结果进行数据后处理后反馈最终的结果,数据后处理包括数据反映射和敏感数据提取。
[0083]
尽管这里参照本发明的解释性实施例对本发明进行了描述,上述实施例仅为本发明较佳的实施方式,本发明的实施方式并不受上述实施例的限制,应该理解,本领域技术人员可以设计出很多其他的修改和实施方式,这些修改和实施方式将落在本技术公开的原则范围和精神之内。
技术特征:
1.一种敏感数据类型识别方法,其特征在于,包括:步骤s100、训练bilstm-crf模型,包括:步骤s110、对训练样本进行预处理,预处理包括文本特征提取、构建核心词典、数据向量化和固定数据长度,文本特征包括单字、词性和词边界;核心词典包括单字的核心词典、词性的核心词典、词边界的核心词典和单字对应的标签的核心词典;标签与单字一一对应,且标识该单字的敏感实体类型;数据向量化指将提取的单字、词性和词边界分别通过各自的核心词典映射得到向量矩阵;固定数据长度指对向量矩阵的数据长度进行截取或填补;步骤s120、采用预处理后的每条数据的向量矩阵和每条数据对应的标签序列训练bilstm-crf模型;步骤s200、采用训练后的bilstm-crf模型识别文件的敏感数据类型:步骤s210、对接收文件进行文本特征提取和数据清洗后,并通过创建的核心词典映射成向量矩阵,发送至训练后的bilstm-crf模型进行敏感数据识别,并对识别结果与标签的核心词典反映射成标签,再通过标签定位到文本,将定位和敏感实体类型整合返回。步骤s220、对bilstm-crf模型返回的结果进行数据后处理后反馈最终的结果,数据后处理包括数据反映射和敏感数据提取。2.根据权利要求1所述的一种敏感数据类型识别方法,其特征在于,所述bilstm-crf模型包括嵌入层、bilstm层和crf层,预处理还包括对训练样本的文本数据分别采用预训练词向量工具word2vec、fasttext、glove训练,得到字符嵌入特征矩阵、词性嵌入特征矩阵和词边界嵌入特征矩阵,从字符嵌入特征矩阵读取词嵌入特征矩阵,加载到bilstm-crf模型的三个嵌入层,再通过拼接的方式三个嵌入层拼接成一组词嵌入层;bilstm层接收每条数据的嵌入层,并预测每个字符对每种标签的概率,并输入到crf层,crf层输出最有可能的标注序列。3.根据权利要求2所述的一种敏感数据类型识别方法,其特征在于,训练bilstm-crf模型过程中,定义输入序列为x=(x1,...,x
i
,...,x
n
),输出序列定义为y=(y1,...,y
i
,...,y
n
);bilstm层的输出矩阵为p,p
i,yi
代表词x
i
映射到标签y
i
的非归一化概率;p的维度为n
×
k,k为标签的类别数;crf层的转移矩阵为a,a
yi,yi+1
代表标签y
i
到y
i+1
的转移概率,a的维度为(k+2)
×
(k+2);定义得分函数为:其中,y
n
为结束符;i=0时,y
i
为起始符,为所有可能预测的标签序列,n为输入序列的词数量;接着,利用softmax函数,为每一个可能预测的标签序列定义一个概率值;从上面函数又得到模型损失函数为:
得到损失值后,通过使用adam优化器进行梯度下降计算,对模型的所有参数进行优化,直到损失值降到最低。4.根据权利要求3所述的一种敏感数据类型识别方法,其特征在于,还包括采用以下参数对训练后的bilstm-crf模型进行评估:crf模型进行评估:crf模型进行评估:其中,precision为准确度;recall为召回率;模型正确识别i类敏感实体指预测结果与标签内容完全一致;保存评估结果最优的模型作为最终的bilstm-crf模型。5.根据权利要求1所述的一种敏感数据类型识别方法,其特征在于,步骤s210中的数据清洗包括文本去噪、全角转半角和分句分词。6.根据权利要求5所述的一种敏感数据类型识别方法,其特征在于,文本去噪包括清除文本中多余的换行符、空格符和乱码;全角转半角包括将英文字母、标点符号转换成半角格式;分句分词包括将读取的长文本以句为单位拆分,再对每句文本使用hanlp进行拆分和长度补全,得到词序列、词性序列和词边界序列。
技术总结
本发明公开了一种敏感数据类型识别方法,对训练样本进行预处理,采用预处理后的每条数据的向量矩阵和每条数据对应的标签序列训练BiLSTM-CRF模型;采用训练后的BiLSTM-CRF模型识别文件的敏感数据类型;对BiLSTM-CRF模型返回的结果进行数据后处理后反馈最终的结果,数据后处理包括数据反映射和敏感数据提取。基于有监督的双向长段记忆网络+条件随机场的敏感数据识别,对工业互联网中的数据进行实时或离线的数据扫描,从文件里的文本内容中定位并识别出多种敏感数据类型,可针多种类型的文件数据,进行敏感数据类型识别,且结合深度神经网络和CRF模型进一步提升模型的性能。络和CRF模型进一步提升模型的性能。络和CRF模型进一步提升模型的性能。
技术研发人员:徐小雄 魏华强 彭曦 杨洋
受保护的技术使用者:四川启睿克科技有限公司
技术研发日:2021.12.02
技术公布日:2022/3/8