针对智能船舶近似重复记录的检测方法、消除方法与流程

文档序号:20616989发布日期:2020-05-06 20:16阅读:193来源:国知局
针对智能船舶近似重复记录的检测方法、消除方法与流程

本申请属于智能船舶数据管理领域,具体涉及一种针对智能船舶近似重复记录的检测方法、消除方法。



背景技术:

面对智能船舶海量、复杂、多源的信息资产,如何高效合理的对数据进行管理是提高船舶数据智能化的关键。由于船舶设备功能叠加性以及采集方式的问题,在船舶数据库中存在着很多重复数据、脏数据,这些数据的比重随着时间的增加而不断增加,不仅占用数据库存储空间,降低存储效率,而且也会给数据处理分析等带来负面影响,无法确保结果的可靠性。现有检测方法采用基于近邻排序的算法对近似重复记录进行检测,该方法对数据集创建关键字,根据关键字对数据集进行排序,使用可变大小的滑动窗口顺序扫描排序后的记录集,通过比较当前记录与窗口中记录的相似性来判断是否为相似重复记录。

现有的近似重复记录的检测方法对排序关键字的依赖性大,关键字选取不当会导致漏检相似重复记录;滑动窗口滑动速度固定,导致检测时间长,检测效率低。基于现有检测方法的近似重复记录的消除方法重复数据不能被完全清洗,从而导致数据信息失真。综上所述,现有的方法不能满足船舶智能航行状态下实时性、高可靠性的要求。



技术实现要素:

(一)要解决的技术问题

为了解决现有技术中的智能船舶近似重复记录的检测方法对排序关键字的依赖性大导致漏检率较高及检测效率低的问题,本申请提出了一种针对智能船舶近似重复记录的检测方法和一种针对智能船舶近似重复记录的消除方法。

(二)技术方案

为达到上述目的,本申请采用如下技术方案:

第一方面,本申请提供一种针对智能船舶近似重复记录的检测方法,包括以下步骤:

步骤s10、获取包含待检测记录的数据集作为待检测数据集;

步骤s20、根据预设的属性的重要程度,从所述待检测数据集中提取一个或多个属性作为排序关键字;

步骤s30、基于所述排序关键字,对所述待检测数据集中的各条记录进行排序,将排序后的待检测数据集作为第一数据集;

步骤s40、通过滑动窗口顺序扫描所述第一数据集,将每次窗口滑动时进入滑动窗口的一个或多个记录分别作为目标记录,将当前滑动窗口中与目标记录对应的其他各条记录作为比对记录组;其中,当前滑动窗口的宽度和滑动速度分别基于上一滑动窗口中近似重复记录的数量进行调整;

步骤s50、采用编辑距离算法分别计算目标记录与相应比对记录组中每条记录的第一相似度,将所述第一相似度大于第一阈值的记录作为所述目标记录的近似重复记录;

步骤s60、将每个滑动窗口中得到的近似重复记录作为所述待检测数据集的近似重复记录。

作为本发明方法的一种改进,步骤s40中“当前滑动窗口的宽度和滑动速度分别基于上一滑动窗口中近似重复记录的数量进行调整”的方法为:

其中,wd表示当前滑动窗口的宽度,w1表示滑动窗口宽度的最小值,w2表示滑动窗口宽度的最大值,wd-1表示上一滑动窗口的宽度,md-1表示上一滑动窗口中近似重复记录的数量;

其中,vd表示当前滑动窗口的滑动速度。

作为本发明方法的一种改进,所述第一相似度的计算方法为:

其中,simc(str1,str2)表示第一相似度,str1表示每次窗口滑动时进入滑动窗口的记录字符串,str2表示当前滑动窗口中其他各条记录的字符串,dis(str1,str2)表示字符串str1和str2的编辑距离,len(str1)、len(str2)分别表示字符串str1和str2的长度,max(len(str1),len(str2))表示两个字符串长度的最大值。

作为本发明方法的一种改进,步骤s20包括:

步骤s21、根据预设的属性的重要程度,从所述待检测数据集中提取多个属性作为特征属性组;

步骤s22、对所述待检测数据集每个属性根据重要程度的大小分配相应的属性等级;

步骤s23、用多个评价方法分别对每个属性的属性等级进行评价,将每个属性得到的多个等级评价结果的平均值作为该属性的最终属性等级评价结果,基于所述最终属性等级评价结果确定该属性的权值;

步骤s24、基于所述特征属性组中每个属性的权值确定一个或多个属性作为排序关键字。

作为本发明方法的一种改进,步骤s50中“采用编辑距离算法分别计算目标记录与相应比对记录组中每条记录的第一相似度”之前还包括:

步骤s51、基于所述目标记录的字符串长度确定长度范围,清除相应比对记录组中记录的字符串长度落入所述长度范围内的记录。

作为本发明方法的一种改进,所述长度范围为:

{lenstr1|lenstr1<0.6lenstr2或lenstr1>1.67lenstr2}

其中,lenstr1表示当前滑动窗口中记录的字符串长度,lenstr2表示每次窗口滑动时进入滑动窗口的记录的字符串长度。

作为本发明方法的一种改进,在步骤s50中,步骤s51之前还包括:

步骤s52、基于步骤s23中得到的最终属性等级,对比对记录组中每条记录的字段进行排序,从每条记录中选取预设数量的字段作为待检测字段;

步骤s53、基于所述待检测字段,分别计算目标记录与相应比对记录组中每条记录的第二相似度,将所述第二相似度大于第二阈值的记录从所述比对记录组中清除。

作为本发明方法的一种改进,所述第二相似度的计算方法为:

其中,simb(r1,r2)表示记录r1和记录r2的第二相似度,wi表示记录中第i个字段的权重,valid[i]表示在记录中的第i个字段同时非空时赋值为1、否则赋值为0,sima(r1i,r2i)表示记录r1和记录r2的第i个字段的相似度。

第二方面,本申请提供一种针对智能船舶近似重复记录的消除方法,包括以下步骤:

通过上述的针对智能船舶近似重复记录的检测方法,分别获取滑动窗口顺序扫描所述第一数据集时当前滑动窗口中的近似重复记录和相应的目标记录;

对每次扫描获取的近似重复记录和相应的目标记录通过条件判断删除一条记录;

其中,通过条件判断删除一条记录的方法包括:

判断两条记录是否包含属性值为空的字段,如果是,则删除包含属性值为空的字段的记录;

否则,判断两条记录的权值之和是否相等,如果是,则删除更新时间最远的记录;

否则,删除权值之和较低的记录。

(三)有益效果

本申请提出一种针对智能船舶近似重复记录的检测方法方法,通过宽度和滑动速度自适应调整的滑动窗口顺序扫描数据集并判断窗口内的记录是否为相似重复记录,可以避免进行过多的无效检索,又可以避免因窗口固定导致相似重复记录被遗漏的可能,在确保精度的同时提高算法执行效率。

在判重检测前,基于多种方法的综合确定权值,可进一步提高记录聚类的效果,增强数据库中数据排序结果的单一性及可靠性,且可为排序以及字段匹配算法提供划分依据,进一步提高检索精度。

在判重检测中,先通过一部分字段的相似度和权值过滤掉不可能的相似重复记录,对相似概率小的记录提前排除,可以大大减少记录匹配次数,提高检测效率;采用长度过滤进一步排除相似概率小的记录,在不影响检测效率的情况下提高了检测速度。

进一步通过本申请的针对智能船舶近似重复记录的消除方法,采用删除重复记录的方式来达到数据清洗的目的,通过关键字属性来区分不同的记录,有效提高了数据处理的速度。

通过上述方法对船舶数据库重复冗余数据进行删减,可以满足数据的实时处理的要求,为船舶分析决策提供高质量的数据。

附图说明

本申请借助于以下附图进行描述:

图1为本申请具体实施方式中的针对智能船舶近似重复记录的检测方法流程示意图;

图2为本申请具体实施方式中的针对智能船舶近似重复记录的检测方法一个实施例的流程示意图。

具体实施方式

为了更好的解释本发明,以便于理解,下面结合附图,通过具体实施方式,对本发明作详细描述。

术语“第一”、“第二”等是用于区别类似的对象,而不是用于描述或表示特定的顺序或先后次序。

请参阅图1,图1为本申请具体实施方式中的针对智能船舶近似重复记录的检测方法流程示意图。本发明通过排序关键字对记录进行排序,通过宽度和滑动速度可变的滑动窗口来扫描窗口内的记录是否为相似重复记录,包括以下步骤:

步骤s10、获取包含待检测记录的数据集作为待检测数据集;

步骤s20、根据预设的属性的重要程度,从待检测数据集中提取一个或多个属性作为排序关键字;

步骤s30、基于排序关键字,对待检测数据集中的各条记录进行排序,将排序后的待检测数据集作为第一数据集;

步骤s40、通过滑动窗口顺序扫描第一数据集,将每次窗口滑动时进入滑动窗口的一个或多个记录分别作为目标记录,将当前滑动窗口中与目标记录对应的其他各条记录作为比对记录组;其中,当前滑动窗口的宽度和滑动速度分别基于上一滑动窗口中近似重复记录的数量进行调整;

步骤s50、采用编辑距离算法分别计算目标记录与相应比对记录组中每条记录的第一相似度,将第一相似度大于第一阈值的记录作为目标记录的近似重复记录;

步骤s60、将每个滑动窗口中得到的近似重复记录作为所述待检测数据集的近似重复记录。

本申请第二方面提出了一种针对智能船舶近似重复记录的消除方法,该方法包括:

通过针对智能船舶近似重复记录的检测方法,分别获取滑动窗口顺序扫描第一数据集时当前滑动窗口中的近似重复记录和相应的目标记录;

对每次扫描获取的近似重复记录和相应的目标记录通过条件判断删除一条记录;

其中,通过条件判断删除一条记录的方法包括:

判断两条记录是否包含属性值为空的字段,如果是,则删除包含属性值为空的字段的记录;

否则,判断两条记录的权值之和是否相等,如果是,则删除更新时间最远的记录;

否则,删除权值之和较低的记录。

为了便于理解本申请的两个发明方法,提供一个实施例。请参阅图2,图2为针对智能船舶近似重复记录的检测方法一个实施例的流程示意图。以下结合图2对本申请方法中的各步骤进行详细说明。

步骤1:源数据输入。输入要进行数据处理的智能船舶数据集。

步骤2:选取排序关键字。从数据集中提取若干关键属性作为排序关键字。被抽取作为排序关键字的属性通常是对记录具有较强区分度的属性或属性子串。为了提高记录聚类的结果,对排序关键字进行预处理,主要是指数据格式标准化,通过用统一的标准格式对排序关键字的繁杂表示形式实现规格化处理。

步骤3:计算属性权值。对步骤2确定的排序关键字进行属性权值计算,具体方法为:

若步骤2中确定的数据集的记录属性为n个,按照其重要性将属性等级分别划分为1~n,其中1表示该属性重要性最低,n表示该属性重要性最高。用m个方法对每个属性进行等级评价,则第j个属性的最终属性等级评价结果依据公式(1)计算得到。

其中,fij为第i个方法对第j个属性的等级评价。

以船舶数据库中船舶轨迹点为例,待检测记录的属性可以包括航向、航速、位置、时间等。属性的等级,即每个属性在记录集中的重要程度,在对属性进行评价的时候,可以采用最小二乘法、关联隶属矩阵、参数协方差等判断每个属性在记录集中的变化趋势,从而可以确定每个属性的重要程度。

则第j个属性的属性权值依据公式(2)计算得到。

即将每个属性占所有属性等级评价之和的比重作为该属性的权值。

步骤4:关键字排序。根据步骤3得到的属性权值,按权值高的字段或字段组合对数据集进行排序,从而对于特定的记录可以将进行记录匹配的对象限制在一定范围内。

步骤5:自适应滑动窗口。为数据集设定一个可以滑动的窗口,窗口的大小及速度进行自适应的调整,对窗口内的数据记录进行相似性判断。滑动窗口的宽度随着已排序记录聚类规模的大小来进行自适应的调整。具体的,窗口的大小根据公式(3)计算得到的结果进行调整。

其中,wd表示当前滑动窗口的宽度,w1表示滑动窗口宽度的最小值,w2表示滑动窗口宽度的最大值,wd-1表示上一滑动窗口的宽度,md-1表示上一滑动窗口中近似重复记录的数目。

滑动窗口的移动速度随着已排序记录聚类规模的大小来进行自适应的调整。具体的,窗口的移动速度根据公式(4)计算得到的结果进行调整。

其中,vd表示当前滑动窗口的滑动速度。

在公式(3)中,md-1∈[0,wd-1-1],当窗口中没有重复记录的时候,取值为0,此时当前窗口宽度取最小值;当窗口中均为重复记录时,取值为wd-1-1,此时当前窗口宽度取最大值。wd值越大,当前窗口宽度越大,扩大相似重复记录的检索范围,可减少相似重复记录遗漏的可能性。

窗口的移动速度线性变化,当窗口中相似记录多时,移动速度小,如全部相似时,移动速度为1;当相似记录越少时,移动速度越大。

步骤6:判断记录相似度,当步骤5窗口滑动后,新纪录进入窗口,首先要检测该记录是否为肯定不重复相似记录,如果是的话,则过滤掉该记录,继续滑动窗口或判断下一记录是否为不重复相似记录,否则,则需要对该记录继续执行字段匹配操作,执行步骤7。判断是否为不重复相似记录的方法具体为:

在对两条记录中各字段进行匹配时,首先根据权重大小对字段进行排序,选前k个字段进行相似度计算,将其结果结合权重叠加的结果与事先设定的阈值进行比较,若结果大于阈值,则可以直接判定该记录为非相似重复记录,否则继续对该记录的剩余字段进行比较。

判断两条记录r1和r2的相似度公式如公式(5)所示。

其中,simb(r1,r2)表示记录r1和记录r2的相似度,wi表示记录中第i个字段的权重,sima(r1i,r2i)表示记录r1和记录r2中第i个字段的相似度,valid[i]表示记录r1和记录r2中第i个字段同时非空时赋值为1,否则赋值为0。

计算两个字段的相似度可以采用距离相似度、余弦相似度、名称相似度等方法来计算,本实施例中采用余弦相似度,把两个字段看成两个向量,计算两个向量的余弦值,余弦值越接近1,则两个余弦值的相似度越大。

步骤7:字段匹配。对步骤6过滤后的数据集进行比较,判断是否为重复数据。判重选用的方法是编辑距离算法,在两个字串之间,统计有一个字串转成另一个所需的最少编辑操作次数,编辑操作包括一个字符替换成另一个字符、插入一个字符、删除一个字符。如果两个字符串之间的距离越大即所需的最少编辑操作次数越多,则说明这两个字符串越是不同。计算两个字符串相似度的公式如公式(6)所示。

其中,simc(str1,str2)表示字符串str1和str2的相似度,dis(str1,str2)表示字符串str1和str2的距离(即由str1转换到str2所需的最少编辑次数),len(str1)、len(str2)分别表示字符串str1和str2的长度,max(len(str1),len(str2))表示两个字符串长度的最大值。

当得到的两个字符串的相似度大于一定阈值时,则认为是重复相似记录。

为了提高字段匹配的执行效率,在进行编辑距离算法操作之前,先执行一步长度过滤算法,因为两个字符串的编辑距离介于最大字符串长度与两字符串长度差之间,则若两个字符串长度相差越大,则构成相似重复的可能性就越小,综合考虑算法应用实际情况,当两字符串长度满足式(7)时,认为两字符串不构成相似重复记录,则不需执行编辑距离算法。

{lenstr1|lenstr1<0.6lenstr2或lenstr1>1.67lenstr2}(7)

其中,lenstr1表示当前滑动窗口中记录的字符串长度,lenstr2表示每次窗口滑动时进入滑动窗口的记录的字符串长度。

若对两个记录执行上述操作之后,若认为两记录不构成相似重复记录,则保留两记录,继续执行下一步,否则执行记录删除操作。

删除操作具体方法为:若两条记录为相似重复记录,则首先判断两条记录的属性值及权值,若属性值均不为空,则保留权值较高的记录,若权值相等,则保留时间最新的属性值;若两条记录其中一条属性值为空,则保留不为空的记录。

步骤8:是否比较结束。判断滑动窗口内的需要检测的数据记录是否全部字段匹配结束,如果是则继续执行步骤9,否则执行步骤7。

步骤9:窗口第一条记录移出。窗口第一条记录即为重复数据删除后或经判定的不相似重复数据,将其移出到一个新的数据集里。

步骤10:是否最后一条记录。判断步骤9移出的记录是否为原数据集最后一条记录,如果是,说明数据集清洗完毕,结束,将新的数据集输出,否则,则继续执行步骤5。

相较于现有的数据清洗算法,本发明方法时间复杂度及计算复杂度均得到了大幅度降低,算法执行效率大幅度提高且算法执行精度更优,适用于智能船舶航行中的数据实时处理,为船舶的执行决策系统提供高质的实时数据支撑。

需要理解的是,以上对本发明的具体实施例进行的描述只是为了说明本发明的技术路线和特点,其目的在于让本领域内的技术人员能够了解本发明的内容并据以实施,但本发明并不限于上述特定实施方式。凡是在本发明权利要求的范围内做出的各种变化或修饰,都应涵盖在本发明的保护范围内。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1