[0065] 当文本字数大于500×2N‑1时,将文本划分为第N等级的文本。
[0066] 本实施例中将最大文本等级设置为N=10,实施者可根据实际情况自行设定最大文本等级。
[0067] 在本实施例中,根据每种文本等级中分词的出现次数,计算每种文本等级的文本等级权重。具体为:
[0068] 进一步,获得语料库中第n文本等级下的所有文本,假设第n文本等级的第m个文本有S种分词,对其中的第s种分词统计其在第m个文本中的出现次数记为Nums。
[0069] 对于每种文本等级下的每个文本,统计每个文本内每种分词的出现次数;统计每个文本中每种出现次数的数量,作为排列结果向量中对应位次的元素数值;所述对应位次为对应每种出现次数的数值。
[0070] 在本实施例中,具体为:将第m个文本的S种分词的出现次数进行统计排列,统计排列的具体方法为:生成一个长度为R的全部元素为0的向量,记为排列记录向量,遍历第m个文本中S种分词的出现次数,假设第s种分词的出现次数为Nums,则对排列记录向量的第r个元素加1;遍历完后得到排列结果向量。
[0071] 例如:一个文本中有14种分词,出现次数分别为2,3,3,3,4,4,4,5,5,5,8,8,9,10,则其对应的排列结果向量为(0,1,3,3,3,0,0,2,1,1),其中元素位置r代表了分词的出现次数,元素值代表了出现次数为r的分词有几种。
[0072] 最终得到一个长度为R的排列结果向量,该向量的数据变化越平滑,代表该向量在统计上越符合大数定理,其对应的第m个文本越属于最够长的长文本。
[0073] 因此,以第m个文本的排列结果向量为输入,采用Higuchi算法计算,输出为第m个排列结果向量的分形维数Fdm,n,分形维数越大,第m个文本的记录向量越不平滑,第m个文本在统计上越不符合大数定律,越是短文本。其中,Higuchi算法为公知技术不再赘述。
[0074] 基于每种文本等级下所有文本的排列结果向量的分形维数,确定每种文本等级的M文本等级权重,表达式为:Tln=∑m=1(Fdm,n‑1);其中,Tln是第n个文本等级的文本等级权重,M是第n个文本等级的文本数量,Fdm,n是第n个文本等级下第m个文本的排列结果向量的分形维数。
[0075] 其中,由于排列结果向量是一维向量,因此其分形维数取值在1到2之间,对其减去1将其数值控制在0到1的范围内。两个不同的文本等级,其文本等级权重差异越大,两个文本等级在统计意义上的文本字数差异越大,两种文本采用Simhash算法进行匹配时越应该采用不同的分词权重,避免对短文本的文本局部敏感特征表达错误。
[0076] 在本申请的一个实施例中,每种文本等级的文本等级权重的确定方法流程图如附图2所示。
[0077] 第三个步骤,结合每种文本等级的文本等级权重,以及每种文本等级下每种分词与其相似分词之间的字符数差异,确定每种文本等级下每种分词与其相似分词之间的相似统计权重;
[0078] 对于文本等级权重较小的文本等级,其在统计意义上的分词重复性差,导致在采用TF‑IDF权重作为权重时,文本的局部敏感特征提取误差较大,因此本实施例对分词的重复统计方式进行改变,对第s种分词,将与其相似的其它分词也算作第s种分词的重复,减小因统计数量不足导致的短文本局部敏感特征提取误差较大的问题。
[0079] 在将其它分词算作第s种分词的重复时,根据两种分词的相似度进行比较,两种分词越相似,两种分词自身重复时,越应该算作另一种分词也在重复。
[0080] 因此对第s种分词,获得所有与其存在着相同字符的T种分词,将其记为第s种分词的相似分词,假设第s种分词的第t种相似分词的字符数为Cnt,第s种分词的字符数为Cns,第s种分词与其第t种相似分词之间相同的字符数为Sns,t,计算第t种分词与其第s种相似分词之间的字符相似度,表达式为: 式中,sms,t是第s种分词与其第t种相似分词之间的字符相似度,Sns,t是第s种分词与其第t种相似分词之间相同的字符数,Cnt是第s种分词的第t种相似分词的字符数,Cns是第s种分词的字符数,min是最小值函数,max是最大值函数。
[0081] 其中,相同字符数占两种分词字符数量之和的占比越大,两个分词越相似,字符相似度越高;两种分词的字符数之比越接近于1,两种分词在字符长度上越接近,字符相似度越高。
[0082] 进一步,对于文本等级权重越小的文本,其因为文本长度导致的文本局部敏感特征统计误差越严重,其越应该将相似分词的重复互相统计,其对应的相似统计权重应该越大。因此,结合每种文本等级的文本等级权重,以及每种文本等级下的每种分词与其每种相似分词之间的字符相似度,确定每种文本等级下每种分词与其每种相似分词之间的相似统计权重,具体表达式为:βs,t,n=smn,s,t×(1‑Tln);其中,βs,t,n是第n文本等级下第s种分词与其第t种相似分词之间的相似统计权重,smn,s,t是第n文本等级下第s种分词与其第t种相似分词之间的字符相似度,Tln是第n文本等级的文本等级权重。
[0083] 应当理解的是,字符相似度越大,两种分词越相似,相似统计权重应该越大;文本等级权重越小,文本越短,越容易因样本不足产生统计误差,相似统计权重应该越大;相似统计权重越大,两种分词在自身重复时,越应该算作另一种分词也在重复。
[0084] 在本申请的一个实施例中,每种文本等级下每种分词与其每种相似分词之间的相似统计权重的确定方法流程图如附图3所示。
[0085] 第四个步骤,将每种文本等级下每个文本按照字数均匀划分为若干段;基于每种文本等级下的所有文本内,每段中每种分词与其所有相似分词的出现数量以及其之间的相似统计权重,构建每种文本等级下的每种分词的分布特征向量。
[0086] 传统的Simhash算法采用TF‑IDF权重作为分词权重,TF‑IDF只考虑到了分词的重复特征,认为分词的重复数量少,分词越是区分不同文本的特征词,而并没有考虑到分词在不同文本中的位置差异。
[0087] 例如,如果一个分词在大部分文本中处于文本前端,而在本文本中该分词处在文本后端,那么在本文本中,该分词也可以被视为文本特征词。
[0088] 在面对短文本时,由于文本数量较少,更难统计出分词的数量差异,因此本实施例采取分词在文本中的分布位置代替分词的数量特征作为分词的权重特征进行提取;由于分词分布特征是归一化特征,与文本中分词的数量总量的多少没有关系,可以避免因为文本长度不一导致的短文本特征词出现频率小、长文本特征词出现频率大,忽略短文本特征而重视长文本特征的情况,有助于解决传统Simhash算法在面对短文本查重时出现的查重误差大的情况。
[0089] 在本实施例中,每种文本等级下的每种分词的分布特征向量的构建过程具体为:
[0090] 首先对一个文本中的一种分词获得分布统计向量,获得方法为:
[0091] 对第n个文本等级下第m个文本的第s种分词,生成一个长度为K的向量记为分布统计向量,本实施例中K取10。
[0092] 将第m个文本按照字数均匀划分为K段,统计第n个文本等级下第m个文本中第k段第s种分词的数量记为NCs,k,统计第n个文本等级下第m个文本中第k段第s种分词的第t中相似分词的数量记为NCt,k,结合每段中每种分词与其所有相似分词的出现数量以及其之间的相似统计权重,确定每段中每种分词的重复数量,具体表达式为:
[0093]
[0094] 其中,Rnn,m,s,k是第n个文本等级下第m个文本中第k段第s种分词的重复数量,βs,t,n是第n个文本等级下第s种分词与其第t种相似分词之间的相似统计权重;NCs,k是第n个文本等级下第m个文本中第k段第s种分词的数量。
[0095] 应当理解的是,在第n个文本等级下第m个文本中第k段中,当第s种分词的出现数量越多,且其相似分词的出现数量也越多,同时与其相似分词之间的相似统计权重越大,说明其之间越相似,其相似分词出现数量的权重也越大,说明在第n个文本等级下第m个文本中第k段中,出现第s种分词与其相似分词的数量越多,即第n个文本等级下第m个文本中第k段中第s种分词的重复数量也越多。
[0096] 进一步,将分布统计向量中的第k个元素位置设置为第k段第s种分词的重复数量,重复上述操作,将分布统计向量中的每个元素位置按照对应段中的第s种分词的重复数量进行填充。
[0097] 然后对分布统计向量进行归一化处理,得到第m个文本中第s种分词的分布特征向量。
[0098] 进一步,对语料库中第n个文本等级下的所有文本计算第s种分词的分布特征向量,对第n个文本等级的第s种分词所有分布特征向量求均值向量,作为第n个文本等级的第s种分词的分布特征向量。
[0099] 第五个步骤,结合文本等级之间的文本等级权重差异,以及交互文本中每种分词与所有文本等级中对应分词的分布特征向量之间的差异,确定交互文本中每种分词的分布散度。
[0100] 最后,在对一个交互文本查重时,先获得其文本等级h,同时获得交互文本所在文本等级的第s种分词分布特征向量,对交互文本所在文本等级的第s种分词的分布特征向量与第n个文本等级的对应分词的分布特征向量之间的差异,记为交互文本中第s种分词与语料库中第n个文本等级中对应分词之间的分词分布差异DSn,s,DSn,s值越大,说明交互文本与语料库中第n个文本等级的文本在第s种分词上的位置分布差异越明显。其中,在计算差异时,采用JS散度计算两个分布特征向量之间的差异,JS散度的计算是机器学习领域常用技术,本实施例不再赘述。
[0101] 在本实施例中,交互文本中每种分词的分布散度的具体计算表达式为:
[0102]
[0103] 其中,FSs是交互文本中第s种分词的分布散度, 是对括号中的数向上取整操作,N是最大文本等级,DSn,s是交互文本中第s种分词与语料库中第n个文本等级中对应分词的分布特征向量之间的差异,norm是归一化函数,Tln是第n个文本等级的文本等级权重,Tlh是交互文本所在文本等级的文本等级权重,μ是预设修正参数,防止分母为0,本实施例设置预设修正参数μ为1,实施者可根据实际情况自行设定。
[0104] 应当理解的是,交互文本的文本等级与语料库中第n个文本等级的文本在文本等级特征权重上差距越大,两种文本在统计特征上表现出的长度差异越明显,第n个文本等级的分布特征向量在判断交互文本的特征词时权重应该越小;分词分布差异越大,交互文本中第s种分词越是交互文本的特征文本,其分词分布散度越大。分词分布散度越大,第s种分词越是交互文本的特征词语,交互文本中第s种分词在使用Simhash算法查重时权重应该越大。
[0105] 第六个步骤,基于分布散度改进语料库中每个语料文本以及交互文本生成的Simhash码,基于改进后的Simhash码之间的相似性训练数据纪检行业大语言模型。
[0106] 本实施例使用分词的分布散度替代传统Simhash算法中的TF‑IDF权重,以提高Simhash算法对短文本的查重效果。
[0107] 对一个文本生成改进Simhash特征码的具体改进方法,如附图4所示。
[0108] 在图4中的改进方法步骤具体为:
[0109] 步骤1:一个文本生成Simhash特征码,首先生成一个长度为Q的全部元素为0的向量,记为哈希记录向量。本实施例中哈希码长度Q=64。
[0110] 步骤2:对目标文本中的每一个分词计算分布散度,其中第s种分词的分布散度记为FSs。
[0111] 步骤3:以分词为单位遍历目标文本,当被遍历的文本是第s种分词时,以第s种分词为输入,采用哈希值生成算法生成一个长度为Q的哈希值,所生成的哈希值为一个二进制数;将所生成哈希值中为0的数字替换为‑1,再将哈希值中的每一个数乘以分布散度FSs,记为哈希码;最后将哈希记录向量加上哈希码,完成对该分词的记录。哈希值生成算法为数据处理领域常用技术。
[0112] 步骤4:遍历完文本后,获得最终的哈希记录向量,将其中为负值的数值位置设置为0,为正值的数值位置设置为1,记为目标文本的改进Simhash码。
[0113] 对语料库中每个语料文本生成一个改进Simhash码,对交互文本生成一个改进Simhash码,将交互文本的Simhash与语料文本的Simhash进行一一对比,本实施例中,当两个文本的Simhash码有W位相同时,认为两个文本相似。本实施例中W取50。
[0114] 对交互人员提交的交互文本进行查重,当存在与交互文本相似的语料文本,对交互人员提交的交互文本不做处理,否则将交互文本加入语料库作为新的语料文本,进而得到低重复读的语料库。
[0115] 如此,完成了对交互文本的查重,构建了低重复度的语料库,进一步将低重复度的语料库作为输入,由现有的大语言模型进行训练,本实施例中采用ChatGLM‑6B作为训练的大语言模型,输出为更新后的数字纪检行业大语言模型,完成数字纪检行业大语言模型的自然语言交互学习。其中语言模型训练是自然语言处理领域常用技术。
[0116] 由于本实施例通过对文本分级,用相似统计权重提高短文本的分词样本统计能力,用分词分布散度替代TF‑IDF权重,避免文本长度对分词统计特征的统计失误,提高了Simhash算法对短文本的查重能力,避免查重失误影响数字纪检行业大语言模型的学习质量。
[0117] 本申请中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。
[0118] 需要说明的是,除非另有规定和限定,诸如术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的电路结构、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种物品或者设备所固有的要素。在没有更多限制的情况下,有语句“包括一个……”限定的要素,并不排除在包括所述要素的物品或者设备中还存在另外的相同要素。另外,本文使用的术语“和\或”包括一个或多个相关的所列项目的任一的和所有的组合。
[0119] 本领域技术人员在考虑说明书及实践这里的发明后,将容易想到本申请的其它实施方案。本申请旨在涵盖本申请的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本申请的一般性原理并包括本申请未发明的本技术领域中的公知常识或惯用技术手段。
[0120] 应当理解的是,本申请并不局限于上面已经描述并在附图中示出的精确结构,并且可以在不脱离其范围进行各种修改和改变。