System.ArgumentOutOfRangeException: 索引和长度必须引用该字符串内的位置。 参数名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind()
【技术实现步骤摘要】
本专利技术涉及数据重复性检测,具体涉及一种数据重复性检测方法和系统。
技术介绍
1、在交通行业数据中心的日常运维监控工作中,监控系统可以通过各种类型的采集器从不同的采集点采集海量数据。但是由于部分采集器的分布地点较为偏僻,信号传输的稳定性存在一定的问题,使得采集器回传至数据中心的数据存在大量的重复数据,造成了数据的质量问题,影响了监控系统的稳定运转。因此,在数据采集阶段对数据的重复性进行检测十分必要。
2、目前,关于数据重复性检测的技术方案主要采用布隆过滤器,通过获取数据库中预置字段信息对应的哈希值,并将哈希值保存在布隆过滤器中;当布隆过滤器中不存在待插入数据中特征字段信息对应的哈希值时,保存待插入数据。若不然,则说明待插入数据存在重复值,则不保存该数据。但是,数据的重复性主要包括两种情况:1、完全重复,即数据的每一个字段都完全一致。2、近似重复,即数据除了一个或零星几个字段之外都完全一致。该检测方法无法处理近似重复值,当待插入数据为近似重复值时,该数据会对应不同的哈希值,进而顺利插入进数据库中。故该技术无法适应交通行业数据中心的数据的重复性检测的场景。
3、因此,如何解决现有数据重复性检测技术无法处理近似重复值的问题亟待解决。
技术实现思路
1、鉴于上述问题,提出了本专利技术提供一种数据重复性检测方法和系统,以解决现有技术中无法处理近似重复值,当待插入数据为近似重复值时,该数据会对应不同的哈希值,进而顺利插入进数据库中的问题。
2、为了实现上述
3、本专利技术第一目的是提供一种数据重复性检测方法,包括:
4、数据预处理:以历史数据集为基础,生成一部分重复数据作为训练数据,并对训练数据进行标记;
5、模型训练:将所述训练数据按照中文文本、英文文本以及数字的类型分为a、b、c三个子类,分别将三种类型的数据进行向量转化将其转化成对应的向量;采用前馈神经网络对所述向量进行训练;完成训练后,保存与之对应的神经网络的参数,供重复性检测时使用;
6、重复性检测:将待插入的数据转化为向量,并作为输入,输入到训练好的模型中,产生输出;设定阈值,将模型输出值在阈值到1的范围内的数据,判定为重复数据。
7、进一步,所述以历史数据集为基础,生成一部分重复数据作为训练数据具体为:
8、在历史数据中选取一定数量的原始数据,并将所述原始数据以经验比例划分为数据集1、数据集2和数据集3,三者互不交叉;将数据集1完全复制生成训练数据1,将数据集2修改为近似相同的数据后生成训练数据2;五组数据:数据集1、数据集2、数据集3、训练数据1和训练数据2共同组成了未标记的训练数据。
9、进一步,所述对训练数据进行标记具体为:
10、将数据集1、数据集2、训练数据1和训练数据2中的数据标记为1;
11、将数据集3中的数据标记为0。
12、进一步,所述分别将三种类型的数据进行向量转化将其转化成对应的向量具体为:
13、设定子类a有x个字段,子类b有y个字段,子类c有z个字段;对于子类a和子类b采用n-gram模型,将子类a和子类b中的数据从文本转化为可供神经网络进行训练的向量,分别得到一个x*1的向量和一个y*1的向量;对于子类c,由于都是数字,直接转化为一个z*1的向量。
14、进一步,所述将子类a和子类b中中的数据从文本转化为可供神经网络进行训练的向量的具体方法如下:
15、取n=2,即2-gram模型,对于子类a中的任意一条数据,该数据有x个字段,假设对于任意字段,其为一个(w1,w2,w3,...,wn-1,wn)的序列,以整个子类a作为词库,则可得到该任意字段在词库中出现的概率为:
16、
17、其中,c(wi)表示wi在整个词库中出现的次数,c(wi-1wi)表示wi-1wi在整个词库中出现的次数;2-gram模型将该数据的每个字段转化为一个概率,对每个字段依次转化,得到了一个x*1的向量;同理,对于子类b,得到一个y*1的向量。
18、进一步,所述采用前馈神经网络对所述向量进行训练具体为:
19、对子类a、子类b、子类c数据分别通过所述前馈神经网络进行三次独立的训练;前馈神经网络分为输入层、隐藏层和输出层;其中,分别以子类a、子类b、子类c转化的向量作为所述输入层,以子类a、子类b、子类c的标记数据作为所述输出层,以此来确定所述隐藏层中的网络参数;最终得到三个训练好的模型,分别用来判断中文、英文和数字的重复性问题。
20、进一步,所述将待插入的数据转化为向量,并作为输入,输入到训练好的模型中,产生输出具体为:将待插入的数据同样分为三类,并将其分别转化为向量,将向量作为输入,输入到训练好的三个模型中,分别产生输出;将三个模型输出的三个输出取加权平均,即得到最终整体的输出值。
21、进一步,所述阈值为0.9,将最终整体的输出值在区间[0.9,1]的数据视为重复数据;区间[0,0.9)的数据视为不存在重复值。
22、本专利技术另一目的是提供一种数据重复性检测系统,包括:
23、数据预处理模块:用于以历史数据集为基础,生成一部分重复数据作为训练数据,并对训练数据进行标记;
24、模型训练模块:用于将所述训练数据按照中文文本、英文文本以及数字的类型分为a、b、c三个子类,分别将三种类型的数据进行向量转化将其转化成对应的向量;采用前馈神经网络对所述向量进行训练;完成训练后,保存与之对应的神经网络的参数,供重复性检测时使用;
25、重复性检测模块:用于将待插入的数据转化为向量,并作为输入,输入到训练好的模型中,产生输出;设定阈值,将模型输出值在阈值到1的范围内的数据,判定为重复数据。
26、进一步,所述模型训练模块采用n-gram模型将子类a和子类b中的数据从文本转化为可供神经网络进行训练的向量。
27、采用上述技术方案,本专利技术具有如下有益效果:
28、1)在进行数据采集入库时,如果采取本方法进行重复性检测,将会大量节省入库的时间,提高了采集的效率。
29、2)通过重复性校验提升数据中心采集到的数据的质量,从而保证监控系统的有效运行,使数据产生更大的价值。
本文档来自技高网...【技术保护点】
1.数据重复性检测方法,其特征在于,包括:
2.根据权利要求1所述的数据重复性检测方法,其特征在于,所述以历史数据集为基础,生成一部分重复数据作为训练数据具体为:
3.根据权利要求1所述的数据重复性检测方法,其特征在于,所述对训练数据进行标记具体为:
4.根据权利要求1所述的数据重复性检测方法,其特征在于,所述分别将三种类型的数据进行向量转化将其转化成对应的向量具体为:
5.根据权利要求4所述的数据重复性检测方法,其特征在于,所述将子类A和子类B中中的数据从文本转化为可供神经网络进行训练的向量的具体方法如下:
6.根据权利要求1所述的数据重复性检测方法,其特征在于,所述采用前馈神经网络对所述向量进行训练具体为:
7.根据权利要求1所述的数据重复性检测方法,其特征在于,所述将待插入的数据转化为向量,并作为输入,输入到训练好的模型中,产生输出具体为:将待插入的数据同样分为三类,并将其分别转化为向量,将向量作为输入,输入到训练好的三个模型中,分别产生输出;将三个模型输出的三个输出取加权平均,即得到最终整体的输出值。
8.根据权利要求7所述的数据重复性检测方法,其特征在于,所述阈值为0.9,将最终整体的输出值在区间[0.9,1]的数据视为重复数据;区间[0,0.9)的数据视为不存在重复值。
9.一种应用权利要求1-8任一所述数据重复性检测方法的系统,其特征在于,包括:
10.根据权利要求9所述的数据重复性检测系统,其特征在于,所述模型训练模块采用n-gram模型将子类A和子类B中的数据从文本转化为可供神经网络进行训练的向量。
...【技术特征摘要】
1.数据重复性检测方法,其特征在于,包括:
2.根据权利要求1所述的数据重复性检测方法,其特征在于,所述以历史数据集为基础,生成一部分重复数据作为训练数据具体为:
3.根据权利要求1所述的数据重复性检测方法,其特征在于,所述对训练数据进行标记具体为:
4.根据权利要求1所述的数据重复性检测方法,其特征在于,所述分别将三种类型的数据进行向量转化将其转化成对应的向量具体为:
5.根据权利要求4所述的数据重复性检测方法,其特征在于,所述将子类a和子类b中中的数据从文本转化为可供神经网络进行训练的向量的具体方法如下:
6.根据权利要求1所述的数据重复性检测方法,其特征在于,所述采用前馈神经网络对所述向量进行训练具体为:
7.根据权利要求1所述的数据重复...
【专利技术属性】
技术研发人员:王君岚,梁健睿,吴志刚,吴振兴,
申请(专利权)人:中国交通信息科技集团有限公司,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。