一种数据相似度分析方法

文档序号:9432653阅读:929来源:国知局
一种数据相似度分析方法
【技术领域】
[0001] 本发明属于计算机商业智能技术领域,具体设及一种数据相似度分析方法的设 计。
【背景技术】
[0002] 随着信息技术的发展,许多IT领域每天都会产生大量的数据,而在许多业务环境 中,存在着不同的数据库,运些数据库中都存储着大量的数据,而运些数据往往都存在着一 定的相似性,比如在某高校的业务数据中,教务系统和学工系统中都保存着大量的与学生 相关的数据。
[0003] 在运样的情况下,我们很多时候都非常关屯、运些不同数据源之间的相似程度,W 便分析运些数据之间的冗余情况。运些不同的数据一般都是W不同的数据格式存储的,一 般有数值型、字符型、日期型等,而众所周知,对计算机而言,运些数据都是W二进制数的形 式存储的,进一步,运些不同数据格式都可W转化为字符串型,因此,数据相似度比较的相 关技术,实际上可W转化为字符串比较的相关技术。字符串比较相关的技术主要包括:
[0004] 1、朴素比较方法 阳〇化]直接比较字符在相应位置是否相同来确定二者的相似程度。由于需要全部遍历, 因此比较过程需要消耗更多的时间。朴素比较方法的优点在于实现简单,可用于数据量较 少的情况,但对于大数据量的场景,一般不使用运种原始的数据比较方法。
[0006] 2、BM方法
[0007]BM方法是精确字符串匹配的Boyer-Moore的简称。运种方法的时间复杂度较低, 是现在用的比较多的一种方法。 阳00引所谓精确字符串匹配问题,是在文本T中找到所有与查询P精确匹配的子串。BM算法主要用了 =种巧妙而有效的方法,即从右到左扫描,坏字符规则和好后缀规则。
[0009] 从右到左扫描的意思是从最后一个字符开始向前匹配,而不是习惯上的从开头向 后匹配。
[0010] 坏字符规则是,从右到左的扫描过程中,发现Ti与門不同,如果P中存在一个字 符化与Ti相同,且k<i,那么就将直接将P向右移使化与Ti对齐,然后再从右到左进行匹 配。如果P中不存在任何与Ti相同的字符,则直接将P的第一个字符与Ti的下一个字符 对齐,再从右到左进行比较。
[0011] 好后缀规则是,从右到左的扫描过程中,发现Ti与門不同,检查一下相同的部分 t是否在P中的其他位置t'出现。
[0012] (1)女日果t与t'的前一个字母不相同,就将P向右移,使t'与T中的t对齐。
[0013] (2)如果t'没有出现,则找到与t的后缀相同的P的最长前缀X,向右移动P,使X 与T中t的后缀相对应。
[0014] 3、KMP方法
[0015] KMP算法是一种改进的字符串匹配算法,由D.E.Knuth,J.H.Morris和V.R.Pratt 同时发现。KMP算法的关键是利用匹配失败后的信息,尽量减少模式串与主串的匹配次数W达到快速匹配的目的。
[0016]KMP方法在执行字符串T和W比较时,对T山和W[j]的匹配检查。若T[i]= W[j],则继续检查T[i+1]和W[j+1]是否匹配。若T[i]声W[j],则分成两种情况:若j= 1, 则模式串右移一位,检查T[i+1]和W[l]是否匹配;若Kj< =m,则模式串右移j-next(j) 位,检查T[i]和W[next(j)]是否匹配。重复此过程直到j=m或i=n结束。
[0017] 除了W上=种方法W外,还有一些字符串比较的方法,运些方法都可W针对数据 的匹配过程进行计算,但它们都有一个共同的缺点,就是只能进行精确的比较,比如比较 AABBCC和BC,可W很容易得到匹配点,但对于非精确匹配,如AABBCC和AACC进行比较时, 运些精确的比较方法就不能得到相似性的结果,而实际上运两个字符串在头和尾都是相同 的,我们完全可W据此得出二者相似的结论。

【发明内容】

[001引本发明的目的是为了解决现有技术中字符串比较方法只能进行精确的比较,对于 非精确匹配不能得到相似性的结果的问题,提出了 一种数据相似度分析方法。
[0019] 本发明的技术方案为:一种数据相似度分析方法,包括W下步骤:
[0020] S1、设置得分策略;
[0021] S2、构建得分矩阵;
[0022] S3、填充得分矩阵;
[0023]S4、对得分矩阵进行回归,得到两组数据的比较结果。
[0024] 进一步地,步骤S1具体为:假设待比较的两组数据为S= 3而…S。和T=t山… tm,长度分别为n和m,通过在S和T中适当位置插入空格得到S'和T',使得Is' =T'I= 1 ;
[00巧]比较S'和T',如果在位置i上的值相等,则得1分,如果在位置i上的值不相等 且都不为空格,则得0分,如果在位置i上的值有空格,则得-1分,即扣分,如公式(1)所 示:
[0026]

[0027] 其中0 (S' [i],T'山)是在位置i上的得分;
[0028] 则数据S和T的最终得分为:
[0029]
(2)
[0030] 进一步地,步骤S2具体为:构建(n+l)X(m+l)阶矩阵V,除V(0,0)夕F,第1列与 数据序列S相对应,第1行与数据序列T相对应;
[0031] 矩阵V初始条件如公式(3)所示: 阳的2] ¥化0)=0 阳的3] V(i,0) =V(i-l,0) + 〇 (S[i],-),1《i《|S| 做。
[0034] V0U) =V〇),j-l) +。(-,T山),1《j《|T
[0035] 进一步地,步骤S3具体为:根据得分策略,利用公式(4)将矩阵V中剩余的空格与 其已知的相邻位置的值进行求和比较,将最大的值填充到单元格中: ㈱6]
(斗)。
[0037] 进一步地,步骤S4具体为:从V(|S|,|T|)出发,回归其来源,并W箭头标记,得到 数据S和T的比较结果。
[0038] 本发明的有益效果是:本发明引入了得分策略,并根据策略计算分值,用于定量判 断数据之间的相似程度,能够针对非精确匹配的情况进行相似度比较。
【附图说明】
[0039] 图1为本发明提供的一种数据相似度分析方法流程图。
【具体实施方式】
[0040] 下面结合附图对本发明的实施例作进一步的说明。
[0041] 本发明提供了一种数据相似度分析方法,如图1所示,包括W下步骤:
[0042] S1、设置得分策略。
[0043] 假设待比较的两组数据为S= 3而…S。和T= 长度分别为n和m,为了 可W定
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1