一种基于CharacterBert-CRF模型的诈骗词库构建方法
文献发布时间:2023-06-19 19:27:02
技术领域
本发明涉及一种基于CharacterBert-CRF模型的诈骗词库构建技术,属于自然语言处理技术领域。
背景技术
自然语言处理是一个以计算方式处理和分析人类语言数据的技术领域。自然语言处理的最新研究增强了学者对自然语言的理解从而促使学者对该领域的探索,并在文档分类、机器翻译、文本生成和文本摘要等各种任务中有了实质性的突破。NLP领域在深度学习中的原创性方法对整个人工智能和各种应用领域都有重要贡献和影响。
目前还没有一个较为完善的诈骗词库。随着互联网的发展,基于爬取诈骗网站所得到的数据,再利用自然语言处理技术开展诈骗词汇的研究,进而构建一个完善的诈骗词库,诈骗词库对于后续进行诈骗网站的检测有着重要的意义。然而,构建诈骗词库所涉及到的文本挖掘技术、分词技术和构建词库技术都是人工智能领域近年来出现的新技术,这些技术在诈骗词库构建领域还处于探索阶段。
发明内容
技术问题:本发明的目的是提供一种基于CharacterBert-CRF模型的诈骗词库构建方法。使用一种基于CharacterBert-CRF模型的诈骗词库构建方法去构建一个完善的诈骗词库,有助于诈骗网站的检测。
技术方案:
一种基于CharacterBert-CRF模型的诈骗词库构建方法,包括以下步骤:
步骤一、将诈骗文本和源码数据进行预处理,去掉空格、标点符号等,获得合格的输入数据;
步骤二、对诈骗文本和源码数据通过分词模型进行分词,获得诈骗文本语料和源码语料;
步骤三、从诈骗文本语料中提取关键词作为种子词集1,从源码语料中提取关键词作为种子词集2;
步骤四、从种子词集1的近似词方面进行词集的扩展得到更加完善的词集1,利用深度学习模型对种子词集2进行扩展得到词集2,再将词集1与词集2合并得到最终的诈骗词库。
步骤一中,所述诈骗文本包括大量诈骗网站上的文本信息,通过网络爬虫技术从诈骗网站上爬取获得,所述源码语料也是通过网络爬虫技术爬取网站源码获得。
步骤二中,所述分词模型中,诈骗文本利用Jieba分词得到诈骗文本语料,源码数据主要通过“_.:*?/-!”等符号作连接,因此先通过切分符号的方式对源码数据进行切分,再利用NLTK分词对切分的词汇进一步分词得到源码语料。
步骤三中,所述提取关键词,诈骗文本语料通过TF-IDF统计模型、TextRank模型提取关键词得到种子词集1,源码语料通过RAKE算法提取关键词得到种子词集2。
步骤四中,所述近似词扩展,词的语义关系以及上下文之间的关系可以通过词向量Word2Vec计算表示,所以先利用词向量Word2Vec表示每个词汇,再利用聚类算法聚类得到相似词。
步骤四中,所述深度学习模型为CharacterBert-CRF模型,利用训练好的CharacterBert-CRF模型再对源码语料进行提取,得到更加丰富的词集。
有益效果:本发明基于Jieba分词对诈骗文本分词,基于符号切分以及NLTK分词对源码数据进行分词,分词的精度较高,并利用了Word2Vec词向量聚类方法以及CharacterBert-CRF模型对词库进行扩展得到了最终的诈骗词库,解决了诈骗词库不完善的问题,提升检测诈骗网站的精准度,促进互联网安全发展。
附图说明
图1,诈骗词库构建流程示意图;
图2,CharacterBert-CRF模型结构示意图;
图3,CharacterBert模型结构示意图;
图4,CRF模型结构示意图,其中,n为序列的长度,X=(X1,X2,....,Xn)为输入的种子词集2序列,Y=(Y1,Y2,...,Yn)为其对应的位置标签序列。
具体实施方式
下面结合附图和具体实施方式,进一步阐明本发明,应理解下述具体实施方式仅用于说明本发明而不用于限制本发明的范围。
如图1所示,本发明提供了一种基于CharacterBert-CRF模型的诈骗词库构建方法,包括以下步骤:
步骤一、将诈骗文本和源码数据进行预处理,去掉空格、标点符号等,获得合格的输入数据;
步骤二、利用分词模型对诈骗文本和源码数据进行分词,获得诈骗文本语料和源码语料;
步骤三、从诈骗文本语料中提取关键词作为种子词集1,从源码语料中提取关键词作为种子词集2;
步骤四、从种子词集1的近似词方面进行词集的扩展得到更加完善的词集1,利用深度学习模型对种子词集2进行完善得到词集2,再将词集1与词集2合并得到最终的诈骗词库。
步骤一中,所述诈骗文本包括大量诈骗网站上的文本信息,通过网络爬虫技术从诈骗网站上爬取获得,所述源码语料也是通过网络爬虫技术爬取网站源码获得。
步骤二中,所述分词模型中,诈骗文本是基于Jieba分词得到诈骗文本语料,源码数据主要通过“_.:*?/-!”等符号作连接,因此先通过切分符号的方式对源码数据进行切分,再利用NLTK分词对切分的词汇进行进一步切分得到源码语料。
步骤三中,所述提取关键词,诈骗本语料通过TF-IDF统计模型、TextRank算法提取关键词得到种子词集1,源码语料通过RAKE算法提取关键词得到种子词集2。
种子词集1建立过程如下:
(1)利用Jieba分词对诈骗文本语料进行分词;
(2)利用TF-IDF模型提取关键词,主要步骤如下:
1)计算分词的词频(TF):TF词频表示某一个词在该文本中出现的频率。
2)计算分词的逆文档频率(IDF):IDF逆文档频率可以由总文件数目除以包含该词语的文件的数目,再将得到的商取对数得到。如果包含词条t的文档越少,IDF就越大,IDF的的值表示了这个词的一个类别区分能力。
3)计算文档的每个词的TF-IDF值:TF-IDF=词频(TF)×逆文档频率(IDF),TF-IDF与一个词在文档中的出现次数成正比,与该词在整个语言中的出现次数成反比。
4)按TF-IDF值降序排列,取最前面的k个词作为关键词。
(3)利用TextRank算法提取关键词,TextRank算法是利用局部词汇之间关系对后续关键词进行排序,直接从文本本身抽取。其主要步骤如下:
1)对于由Jieba分词后得到的词语进行词性标注,并过滤掉停用词,只保留指定词性的单词,如名词、动词、形容词,构成候选关键词。
2)构建候选关键词图G=(V,E),其中V为节点集,E为相连节点的边集合,由(1)生成的候选关键词组成,然后采用共现关系构造任两点之间的边E,两个节点之间存在边仅当它们对应的词汇在长度为K的窗口中共现,K表示窗口大小,即最多共现K个单词。
3)根据上面公式,迭代传播各节点的权重,直至收敛。
4)对节点权重进行倒序排序,从而得到最重要的T个单词,作为候选关键词。
5)由(4)得到最重要的T个单词,在原始文本中进行标记,若形成相邻词组,则组合成多词关键词。
(4)最后,将步骤(2),(3)提取的关键词合并得到种子词集1。
种子词集2是通过对代码语料库进行分词再提取关键词得到的,种子词集2建立步骤如下:
(1)源码数据主要通过“_.:*?/-!”等符号作连接,因此先通过切分符号的方式对源码数据进行切分,再利用NLTK分词对切分的词汇进一步切分得到源码语料,NLTK分词是一个很好的文本分词工具,能够精确地对切分的数据进行分词。
(2)通过RAKE算法对源码语料进行关键词的提取作为种子词集2,主要步骤如下:
1)计算源码语料中每个单词的词频(freq(w)),即单词出现次数;词组总长(deg(w)),即单词所在词组长度总和;词组总长与词频的比例(deg(w)/freq(w))。
2)计算短语得分:按每个单词的分数相加,得到短语得分。
3)按照得分进行排序,取前1/3的词集作为种子词集2。
步骤四中,所述近似词扩展,词的语义关系以及上下文之间的关系可以通过词向量Word2Vec计算表示,所以先利用词向量Word2Vec表示每个词汇,再利用聚类算法聚类得到相似词。
(1)Word2Vec词向量表示:利用浅层神经网络模型自动学习词语在语料库中的出现情况,把词语嵌入到一个高维的空间中,通常在100-500维,在高维空间中词语被表示为词向量的形式。特征词向量的抽取是基于已经训练好的词向量模型。
(2)K-means聚类算法:聚类算法旨在数据中发现数据对象之间的关系,将数据进行分组,使得组内的相似性尽可能的大,组间的相似性尽可能的小。
算法思想是:首先随机选择K个点作为初始质心,K为用户指定的所期望的簇的个数,通过计算每个点到各个质心的距离,将每个点指派到最近的质心形成K个簇,然后根据指派到簇的点重新计算每个簇的质心,重复指派和更新质心的操作,直到簇不发生变化或达到最大的迭代次数则停止。
(3)基于Word2Vec词向量聚类近似词扩展的实现过程:
主要思路是对于用词向量表示的种子词集1,通过K-Means算法对种子词集1进行聚类,选择种子词集1作为聚类中心,计算其他词与聚类中心的距离,选择K个距离聚类中心较近的词作为扩展的近似词。具体步骤如下:
1)利用Word2Vec对种子词集1进行向量表示,得到词向量文件;
2)将原诈骗文本语料作为候选词,也用Word2Vec进行表示,得到词向量文件;
3)对候选词进行遍历,从词向量文件中提取候选关键词的词向量表示;
4)对候选词和种子词集1进行K-Means聚类,选择种子词集1作为聚类中心;
5)计算各类别下,候选词与聚类中心的欧几里得距离,按聚类大小进行降序排序;
6)将前K个距离聚类中心较近的词挑选出来作为扩展的近似词,与种子词集1合并为更完善的词集1;
步骤四中,所述深度学习模型为,利用训练好的CharacterBert-CRF模型再对源码语料进行提取,得到更加丰富的词集2。
图2为CharacterBert-CRF模型的结构说明图,具体实现步骤如下:
1)搭建CharacterBert网络结构,如图3所示;
2)对CharacterBert在种子词集2中进行训练,训练任务包括:屏蔽训练,随机遮挡输入中的一些单词,并基于上下文预测被遮挡的词汇,使得文本表示当前语境;下一句预测,判断两句话是否连续。预训练的模型不需要改变基础模型架构,只需要在下游任务中对CharacterBert进行微调,减少了使用者的训练时间和硬件要求;
3)建立CRF模型结构,如图4所示,其中,n代表整个序列的长度,X=(X1,X2,....,Xn)为输入的种子词集2序列,Y=(Y1,Y2,...,Yn)为其对应的位置标签序列;A表示位置标签之间的转移概率,P
4)对所有的位置标签序列分数进行归一化,并使得正确序列分数最大,计算方式如下所示:
5)整合CharacterBert结构和CRF结构形成如图2所示的CharacterBert-CRF模型。
6)将种子词集2作为模型输入、对应的分词标签作为模型输出,对CharacterBert-CRF模型进行训练;计算相邻两轮迭代结束后词向量层网络节点数值之差的平方和,达到局部极小值时停止训练。经过若干次迭代后,模型具有良好的区分效果。
7)用训练好的CharacterBert-CRF模型对原源码语料再次进行提取相关词汇,并与种子词集2合并得到更完善的词集2。
最后,将词集1与词集2合并得到最终的诈骗词库。
本发明与现有词库构建方法相比,主要优点如下:
1.针对Jieba分词粒度小,诈骗词汇容易被拆分的缺陷,TextRank算法可以对拆分词汇进行词语组合,可以解决这一问题。
2.利用Word2Vec词聚类近似词扩展词集和利用CharacterBert-CRF模型对词集进行扩展,使诈骗词库更加完善。
3.目前的诈骗词库中还没有一个有关代码层面的词库,代码词库的编码用的是字符级别的深度学习模型,相比单词级的深度学习模型更适用于网页代码这类无实意字符序列。
虽然本发明的具体实施方式如上所示,但所述的内容是为了更好地去理解本发明,并不是为了去限制本发明。任何本发明所属技术领域内的技术人员,在不脱离本发明的技术范围时,可以在实施的形式及细节上做一些修改,但本发明的专利保护范围,仍须以所附的权利要求书所界定的范围为准。
- 一种基于Boosting算法的川崎病风险评估模型的构建方法及构建系统
- 一种基于logistic算法的川崎病风险评估模型的构建方法及构建系统
- 一种基于混合模型和聚类算法的电力专业词库构建方法
- 一种构建用户词库的方法、及用于构建用户词库的装置