一种数据清洗方法与流程

文档序号:13164844阅读:360来源:国知局
一种数据清洗方法与流程
本发明涉及企业数据清洗
技术领域
,特别涉及一种数据清洗方法。
背景技术
:现代社会进入了大数据时代,各类信息记录采用电子介质记录,时间一久各类数据体量庞大,想找出自己相关的数据非常费力;传统的数据清洗方式只清洗重复数据而不清洗相似数据的问题,同时数据清洗的广度和深度也非常有限。技术实现要素:本申请实施例的目的在于提供一种数据清洗方法,解决了现有技术中数据清洗不能清晰相思数据问题,具有提高数据清洗的广度和深度以及不仅清洗重复数据,也同样清洗相似数据的技术效果。为解决上述技术问题,本发明提供了一种数据清洗方法,包括:数据导入,将待处理数据经过解析后生成具体的数据存入数据清洗方法;数据预处理,将解析后的数据按照所选处理规则进行数据的提取后生成待清洗的数据;数据清洗,将待清洗数据根据计算相似度公式:映射为多维空间中的向量和并且用这两个向量间的夹角大小来表示向量的相近程度,以此来计算两条文本数据的相似程度;以及:根据上一步得出的向量,运用文本相似度计算公式:得出这两个向量的夹角的cosine值;以及:将高于用户设定的某一相似度阈值的相关数据进行聚类;数据缓存,根据用户的操作命令将数据结果缓存起来;所述命令包括待定、确认、移除;确认数据,对缓存的数据结果进行再次清洗直到确认数据后生成最终所需的数据关系文件并导出文件。进一步地,所述待处理数据格式包括excel。进一步地,所述处理规则包括拼音相同汉字匹配或学名与俗称匹配或大小写匹配或全角半角匹配或连接符号相似匹配或字符串相似匹配。进一步地,所述数据清洗包括:将待清洗数据导入到搜索应用服务中,然后通过相似度服务模块计算相似度并进行后续的操作。进一步地,所述数据缓存通过构造数据存储结构,并结合数据压缩算法,将磁盘里的数据放入内存。本申请实施例中提供的一个或多个技术方案,至少具有如下技术效果或优点:本申请实施例中通过数据导入,将待处理数据经过解析后生成具体的数据存入数据清洗方法;数据预处理,将解析后的数据按照所选处理规则进行数据的提取后生成待清洗的数据;数据清洗,将待清洗数据进行聚类;数据缓存,根据用户的操作命令将数据结果缓存起来;所述命令包括待定、确认、移除;确认数据对缓存的数据结果进行再次清洗直到确认数据后生成最终所需的数据关系文件并导出文件;解决了数据清洗只清洗重复数据而不清洗相似数据的问题,具有提高数据清洗的广度和深度以及不仅清洗重复数据,也同样清洗相似数据的技术效果。附图说明图1是本申请实施例提供的清洗流程框图;图2是本申请实施例提供的存储结构数据索引树示例结构图。具体实施方式本申请实施例的目的在于提供一种数据清洗方法,解决了现有技术中数据清洗不能清晰相思数据问题,具有提高数据清洗的广度和深度以及不仅清洗重复数据,也同样清洗相似数据的技术效果。为解决上述技术问题,本申请实施例提供技术方案的总体思路如下:数据导入,将待处理数据经过解析后生成具体的数据存入数据清洗方法;数据预处理,将解析后的数据按照所选处理规则进行数据的提取后生成待清洗的数据;数据清洗,将待清洗数据进行聚类;数据缓存,根据用户的操作命令将数据结果缓存起来;所述命令包括待定、确认、移除;确认数据对缓存的数据结果进行再次清洗直到确认数据后生成最终所需的数据关系文件并导出文件。为了更好的理解上述技术方案,下面将结合说明书附图以及具体实施方式对上述技术方案进行进行详细说明。实施例1,结合附图1、2描述。一种数据清洗方法,包括:s01.数据导入,将待处理数据经过解析后生成具体的数据存入数据清洗方法;s02.数据预处理,将解析后的数据按照所选处理规则进行数据的提取后生成待清洗的数据;s03.数据清洗,将待清洗数据根据计算相似度公式:映射为多维空间中的向量和并且用这两个向量间的夹角大小来表示向量的相近程度,以此来计算两条文本数据的相似程度;以及:根据上一步得出的向量,运用文本相似度计算公式:得出这两个向量的夹角的cosine值;以及:将高于用户设定的某一相似度阈值的相关数据进行聚类;s04.数据缓存,根据用户的操作命令将数据结果缓存起来;所述命令包括待定、确认、移除;s05.确认数据,对缓存的数据结果进行再次清洗直到确认数据后生成最终所需的数据关系文件并导出文件。本申请实施例中通过对数据的解析、预设规则提取数据、数据聚类、数据缓存、再次清洗的技术手段,解决了数据清洗只清洗重复数据而不清洗相似数据的问题,具有提高数据清洗的广度和深度以及不仅清洗重复数据,也同样清洗相似数据的技术效果。进一步地,所述待处理数据格式包括excel。进一步地,所述处理规则包括拼音相同汉字匹配或学名与俗称匹配或大小写匹配或全角半角匹配或连接符号相似匹配或字符串相似匹配。进一步地,所述数据清洗包括:将待清洗数据导入到搜索应用服务中,然后通过相似度服务模块计算相似度并进行后续的操作。进一步地,所述数据缓存通过构造数据存储结构,并结合数据压缩算法,将磁盘里的数据放入内存。进一步地,数据导入为数据导入模块,将待处理数据经过解析后生成具体的数据存入数据清洗方法;数据预处理为数据处理模块,将解析后的数据按照所选处理规则进行数据的提取后生成待清洗的数据;数据清洗为数据清洗模块,将待清洗数据进行聚类;数据缓存数据缓存模块,根据用户的操作命令将数据结果缓存起来;所述命令包括待定、确认、移除;确认数据为数据确认模块,对缓存的数据结果进行再次清洗直到确认数据后生成最终所需的数据关系文件并导出文件。本申请实施例中的数据清洗方法还将相关的相似数据进行聚合展示,同时在数据预处理阶段,数据清洗方法内置了多种变换规则如拼音相同汉字匹配、学名与俗称匹配、大小写匹配、全角半角匹配、连接符号相似匹配,字符串相似匹配,通过这些规则可以将源数据根据需要进行多种变换,用于提高数据清洗的广度和深度,最后基于词典的分词也将相同的但是词序不同的数据进行了清洗。与其他数据清洗工具相比,本数据清洗方法提高了数据清洗的广度:不仅清洗重复数据,也同样清洗相似数据;本数据清洗方法提高了数据清洗的深度:数据清洗方法内置的多种数据变换规则扩大了数据清洗的适用性范围,同时对于清洗数据的相似度对比是基于词典分词的,并加以相似度计算的检测,能够有效提高数据准确率;本数据清洗方法还提高了数据清洗的效率:对待清洗的数据先进行搜索服务的检索能有效的缩小相似度比对的范围,减小计算规模,缩短清洗时间。实施例2,结合附图1、2描述。在实施例1的基础上,本申请实施例中数据清洗方法可导入excel等格式的数据文件,经过解析生成具体数据存入数据清洗方法;在数据预处理阶段,2.数据清洗方法根据用户所选规则(拼音相同汉字匹配,学名与俗称匹配,大小写匹配,全角半角匹配,连接符号相似匹配,字符串相似匹配等)进行数据的预处理生成待清洗的数据;清洗功能是本数据清洗方法最核心的模块,它将待清洗数据根据特定算法进行相似度检测,并将高于用户设定的某一相似度阈值的相关数据进行聚类;数据清洗方法根据用户的一系列操作(待定,确认,移除等)将结果缓存起来,之后可以进行同一批源数据的重复清洗;直到确认数据后,才会生成最终所需的数据关系文件并导出如excel等格式的文件。本数据清洗方法最核心的功能就是清洗数据阶段。主要目的就是将杂乱无章的数据进行整理聚合,清除出相似或者相同的垃圾数据,提高数据质量。清洗的流程实现如上图所示,首先将待清洗数据导入到搜索应用服务中,然后通过相似度服务模块计算相似度并进行后续的操作。具体的一次实现是,当将数据导入搜索应用服务时,搜索应用服务会对数据进行基于词典的分词并添加数据索引;然后通过搜索应用的搜索服务,找到某一数据相关的全部数据,再将相关的全部数据循环与这一数据进行基于词典分词的相似度计算,将相似度达到阈值的相关数据进行缓存,同时将搜索应用服务中的这些数据去除,防止重复数据的出现。如此往复循环整个待清洗的全部数据,直到所有数据都经过了这样的清洗流程表明本轮清洗结束,可以开始下轮清洗或者确认数据并导出。通过构造数据存储结构,并结合数据压缩算法,将磁盘里的数据放入内存,减少磁盘随机读取次数,提高数据清洗效率。传统关系型数据库的索引储存方式采用b-tree数据结构,能够有效减少磁盘的寻道读取次数和数据查找效率。与传统关系型数据库不同,本数据清洗方法的搜索应用服务采用的是基于″倒排索引″的非关系型搜索服务。倒排索引为每个数据字段都建立基于字段的数据索引(形如key-values),如下例。例如为以下数据建立索引:idnameagesex1kate24female2john24male3bill29male以name字段建立索引:kate1john2bill3以age字段建立索引:24[1,2]293以sex字段建立索引:female1male[2,3]为每个字段都建立一个这样的索引,用来储存针对某一字段的具有相同索引条件(term)的所有文档id。但当数据量提升的时候,一个最重要的问题是如何提高查询速度。这里我们采用了一种基于内存的树形结构来加快搜索速度和一种基于bitmap的索引值存储方式来压缩数据所占用的内存空间。如图2所示,根据索引条件(term)形成一种基于内存的树形结构(如上图),这棵树不会包含所有的完整数据词组,它包含的是数据的一些公共前缀。例如针对某一字段的索引条件terms为(to,tea,ted,ten,a,inn,in),根据每个term来依次的构造整个树。首先存入单词to的路径,发现根节点下没有为t的前缀路径,则在根节点下构造转移条件为t的路径和存储内容为t的节点,然后在t节点下同样没有发现有转移条件为o的路径,则在节点t下构造转移条件为o的路径和节点to,形成单词to路径的存储;当存入单词tea时,发现根节点下已存在转移条件为t的路径,然后根据路径找到节点t并移动到节点t下,在节点t下未发现转移条件为e的路径,则在节点t下构造路径转移条件为e的路径和相应的节点并继续往下执行,数据tea接下来的流程以及之后数据的构造都以此类推,直到所有term都加入到这棵树中方为结束。当进行数据查询时,我们就可以根据待查询数据和这棵树形结构来高效的进行查询,对于待查询数据,我们可以把其前缀依次作为转移条件来进行节点间的搜索,例如查询条件term为单词inn时,我们就可以按照i->n->n这样的转移条件来作为数据的搜索的转移路径(如上图中的黑色连接线所示),首先从根节点出发,根据条件i转移到相应的节点,然后从该节点出发,根据条件n转移到相应的节点,最后从此节点出发,再根据条件n进行转移,如果有该转移条件的路径就可以快速找到该数据对应的节点,反之如果不存在该转移条件的路径就表面该查询term没有对应的文档数据。通过terms的公共前缀,并根据terms的状态转移(例如从t->te就是根据状态e来进行转移的)来构造树形结构存储整个terms,这样使得全部的索引数据都能够加载到内存中,再把数据按转移条件进行查询,比直接存储并逐条查询terms能够极大的减少数据的查询量和查询时间,仅在最后获取具体的数据document时才会去读取磁盘文件信息,从整体上提高数据的搜索速度。同时,当数据量极大的情况下就会发生一个key对应非常多的values(例如以性别进行索引时,如果有上千万条数据,而世界上只有男/女这样两个性别,则每个term对应的全部数据文档id都会有至少百万个文档id)。为了有效的将这些数据都存入内存中,数据清洗方法会将这些文档id进行压缩处理,并采用了一种基于bitmap的索引值存储方式,但与一般的bitmap不同,一般bitmap的存储空间随着文档个数成线性增长。本数据清洗方法将索引值按65535将索引id进行划分,将索引id除以65535得到商和余数,通过构造多个能存储65535的bitmap结构来存储索引id。这样按照65535为界限分块,比如第一块所包含的文档id范围在o~65535之间,第二块的id范围是65536~131071,以此类推。再用<商,余数>的组合表示每一组id,这样每组里的id范围都在0~65535内了,在某一区间中如果不存在要存储的数据,那就不用创建该范围区域的bitmap结构,可以有效的将传统bitmap的存储空间随着文档个数成指数增长进行缩减,能够极大地减少存储空间,并将全部索引id加载到内存中。例如下表格所示是某个指定term的文档id集合:如果采用传统bitmap的存储方式,即每一位上存储0/1表示该位是否存在,则以上需要在第100,62101,131385,132052,191173,196600等位上存储1,因为目前可知最大id为196658,以此采用这种方式最少需要196600bits空间。但是采用本数据清洗方法的存储方式后,只需要建立有数据存储区间的bitmap结构,例如以上表数据需要建立如下数据区间:可以看到只需要建立两个包含65535bits的bitmap空间,即131072bits。远远小于传统的bitmap结构需要占用的内存空间。本数据清洗方法的计算相似度模块是基于词典分词的文本相似度计算。在比较相似度的时候,第一步先做基于词典的分词,以实际数据为例(压盖in50-32-250离心泵in50-32-250)将分为(压盖,in50,32,250,离心泵,in50,32,250),其中″-″为停用词符号不计算在分词中,同样的(砂轮250×32×32)也被分词为(砂轮,250,32,32),其中″×″为停用词符号不计算在分词中;第二步,去除重复单词并列出识别出的所有单词,例如本例中的所有单词为(压盖,in50,32,250,离心泵,砂轮);第三步,计算词频,即计算第二步得到的所有单词在每条数据中出现的次数,在本例中结果如下:压盖in50-32-250;离心泵in50-32-250;砂轮250×32×32第四步,构造词频向量,本例是和这里可以将原始的文本数据映射为多维空间中的向量,并且用这两个向量间的夹角大小来表示向量的相近程度,以此来计算两条文本数据的相似程度.最后所应说明的是,以上具体实施方式仅用以说明本发明的技术方案而非限制,尽管参照实例对本发明进行了详细说明,本领域的普通技术人员应当理解,可以对本发明的技术方案进行修改或者等同替换,而不脱离本发明技术方案的精神和范围,其均应涵盖在本发明的权利要求范围当中。当前第1页12
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1