合并对称实体组的方法及装置与流程

文档序号:12464747阅读:177来源:国知局
合并对称实体组的方法及装置与流程
本发明涉及互联网
技术领域
,尤其涉及一种合并对称实体组的方法及装置。
背景技术
:目前,在大数据应用系统中,越来越多的使用关联分析工具从海量数据中挖掘出不同实体(或项,商品等)之间的联系。在实际的数据挖掘中会出现一些关联关系,比如:“啤酒-尿布”,关联度为10;“尿布-啤酒”,关联度为13,其中“啤酒-尿布”,就是一个由关联的实体组成的实体组,“尿布-啤酒”是另一个由关联的实体组成的实体组。从业务上讲这两个实体组属于对称关系,是可以进行合并的。比如可以将其合并为一个实体组“啤酒-尿布”,关联度为23。关于合并对称实体组,现有的方法是通过将所有的实体组进行逐对比较,当发现有对称的实体组时将其进行合并。在现有的合并对称实体组的方法中,发明人发现,逐对比较实体组的方法开销非常大,每增加一个实体组就需要多进行n-1次的比较,在大数据量环境下,这种比较方式效率极低。技术实现要素:鉴于上述问题,提出了本发明以便提供一种克服上述问题或者至少部分地解决上述问题的一种合并对称实体组的方法及装置。为解决上述技术问题,一方面,本发明提供了一种合并对称实体组的方法,该方法包括:计算数据库实体表里各实体组中实体的校验值,所述数据库实体表记录有多个实体组以及对应每个实体组的关联度,所述关联度用于表征实体组中各个实体之间的关联程度;将所述各实体组中各个实体的校验值相加,获得对应所述各实体组的校验值之和;将所述校验值之和相等的实体组的关联度相加,获得新的关联度,并将所述校验值之和相等的实体组的关联度分别赋值为所述新的关联度;对所述校验值之和相等的实体组进行去除重复项的操作,在所述数据库实体表中保留剩余的实体组。另一方面,本发明还提供了一种合并对称实体组的装置,该装置包括:计算单元,用于计算数据库实体表里各实体组中实体的校验值,所述数据库实体表记录有多个实体组以及对应每个实体组的关联度,所述关联度用于表征实体组中各个实体之间的关联程度;第一相加单元,用于将所述各实体组中各个实体的校验值相加,获得对应所述各实体组的校验值之和;第二相加单元,用于将所述校验值之和相等的实体组的关联度相加,获得新的关联度,并将所述校验值之和相等的实体组的关联度分别赋值为所述新的关联度;去重单元,用于对所述校验值之和相等的实体组进行去除重复项的操作,在所述数据库实体表中保留剩余的实体组。借由上述技术方案,本发明提供的合并对称实体组的方法及装置,能够通过计算实体组中各实体的校验值,并得到各实体组中实体的校验值之和,将校验值之和相等的实体组的关联度相加,得到新的关联度,并将新的关联度分别赋值于校验值之和相等的实体组,最后对校验值之和相等的实体组进行去重处理,保留剩余的实体组。与现有技术相比,本发明能够通过计算校验值之和的方法对对称实体组进行去重,无需对实体组中的实体内容进行比对,因此可以减少处理资源的开销,提高合并对称实体组的效率。上述说明仅是本发明技术方案的概述,为了能够更清楚了解本发明的技术手段,而可依照说明书的内容予以实施,并且为了让本发明的上述和其它目的、特征和优点能够更明显易懂,以下特举本发明的具体实施方式。附图说明通过阅读下文优选实施方式的详细描述,各种其他的优点和益处对于本领域普通技术人员将变得清楚明了。附图仅用于示出优选实施方式的目 的,而并不认为是对本发明的限制。而且在整个附图中,用相同的参考符号表示相同的部件。在附图中:图1示出了本发明实施例提供的一种合并对称实体组的方法流程图;图2示出了本发明实施例提供的另一种合并对称实体组的方法流程图;图3示出了本发明实施例提供的一种合并对称实体组的装置的组成框图;图4示出了本发明实施例提供的另一种合并对称实体组的装置的组成框图。具体实施方式下面将参照附图更详细地描述本公开的示例性实施例。虽然附图中显示了本公开的示例性实施例,然而应当理解,可以以各种形式实现本公开而不应被这里阐述的实施例所限制。相反,提供这些实施例是为了能够更透彻地理解本公开,并且能够将本公开的范围完整的传达给本领域的技术人员。为解决现有合并对称实体组的方法效率极低的问题,本发明实施例提供了一种合并对称实体组的方法,如图1所示,该方法包括:101、计算数据库实体表里各实体组中实体的校验值。本实施例中的实体组是指在进行数据挖掘的过程中,得到的具有某种关联关系的实体组,这种关联关系的关联程度通过关联度来描述。在数据库实体表中记录有多个实体组以及对应每个实体组的关联度。对于实体组中的不同的实体都可以得到一个唯一的校验值,利用校验值的唯一性可以代替实体进行一些计算。本步骤中的计算各实体组中实体的校验值是要将实体转换为可以进行计算的校验值,然后为后面的实体组的去重分析和计算做准备。102、将实体组中各个实体的校验值相加,获得对应实体组的校验值之和。对实体组中的各实体的校验值进行求和运算,每个实体组经过运算得到一个对应的校验值之和。103、将校验值之和相等的实体组的关联度相加,获得新的关联度。对校验值之和相等的实体组的关联度进行相加,得到新的关联度,并将新的关联度分别赋值于校验值之和相等的实体组。给出示例进行说明:假设两个校验值之和相等的实体组为A和B,实体组A中对应的实体的关联度为10,实体组B中对应的实体的关联度为13,那么新的关联度为23,然后将实体组A实体组B的关联度都赋值为23。104、对校验值之和相等的实体组进行去重,保留剩余的实体组。本实施例中的去重是指对对称的实体组进行合并,对称的实体组是指实体组的实体是相同的,而他们的表示是不同的,比如:“啤酒-尿布”和“尿布-啤酒”,又由于每个实体的校验值是唯一的,所以相同的实体的校验值得到的校验值之和也是相同的。因此可以根据校验值之和去进行实体组的去重。即将校验值之和相等的实体组合并为一个实体组,最终实现去重,去重之后剩余的实体组就是没有对称实体组的实体组集合。其中剩余的实体组中包括校验值之和互不相等的实体组以及将校验值之和相等的实体组合并得到的实体组。需要说明的是本步骤是对经过关联度相加处理之后的实体组进行的去重处理。本实施例提供的合并对称实体组的方法,能够通过计算实体组中各实体的校验值,并得到各实体组中实体的校验值之和,将校验值之和相等的实体组的关联度相加,得到新的关联度,并将新的关联度分别赋值于校验值之和相等的实体组,最后对校验值之和相等的实体组进行去重处理,保留剩余的实体组。与现有技术相比,本实施例能够通过计算校验值之和的方法对对称实体组进行去重,无需对实体组中的实体内容进行比对,因此可以减少处理资源的开销,提高合并对称实体组的效率。进一步的,作为对图1所示实施例的细化及扩展,本发明还提供了另一实施例。如图2所示,该实施例中合并对称实体组的方法包括:201、提取各实体组中的实体,调用校验值函数对提取的实体分别计算校验值。从数据库中提取得到各实体组中的实体,并通过校验值函数计算实体的校验值。具体的校验值函数是指由关系型数据库管理系统SQLServer (StructuredQueryLanguageServer,简称SQLServer)提供的二进制校验和函数Binary_checkSum()计算实体组中实体的校验值。不同实体计算得到的的校验值是各不相同的。需要说明的是通过Binary_checkSum()计算得到的实体的校验值是二进制的数据,为了计算的方便一般会选择将二进制的数据转化为别的数据形式,比如十进制数据等。202、将实体组中各个实体的校验值相加,获得对应实体组的校验值之和。该步骤的实现方式与图1步骤102的实现方式相同,此处不再赘述。203、对于校验值之和相等的实体组,提取其中各实体的校验值,比较不同实体组中对应实体的校验值是否相等。从由步骤202得到的校验值之和中选出校验值之和相等的实体组,并提取出校验值之和相等的实体组对应的各实体的校验值。然后对应比较校验值之和相等的不同实体组中对应实体的校验值是否相等,若对应的实体的校验值也相等,则将校验值之和相等并且对应的实体组中的实体的校验值也相等的实体组作为后面需要进行关联度相加的实体组。本步骤是为了避免存在两个实体组中各实体的校验值分别不相等,但是计算得到的校验值之和是相等的情况。204、将校验值之和相等的实体组的关联度相加,获得新的关联度。该步骤的实现方式与图1步骤103的实现方式相同,此处不再赘述。205、对校验值之和相等的实体组进行去重,保留剩余的实体组。对校验值之和相等的实体组进行去重,保留剩余的实体组,包括以下几个步骤:首先,根据校验值之和以及关联度将实体组分配到对应的集合中,集合中的校验值之和相等并且关联度也相等。对于校验值之和都不相等的实体组,各自组成集合。需要说明的是对于步骤203中可能出现的两个实体组中各实体的校验值分别不相等,但是计算得到的校验值之和相等的情况时,将这两个实体组分到两个集合中。其次,对集合中的实体组进行排序,按统一规则分配序号。对每个集合中的实体组分别进行集合内的排序。排序可以按照实体的校验值的大小 进行排序或者别的排序原理。然后将各集合中的实体组按照统一的规则进行编号,比如都用数字进行编号,从“1”开始依次编号,或者使用字母进行编号,从“a”开始依次编号。具体的在实现对集合中的实体组进行排序时需要用到排序函数Row_number()和开窗函数OVER()。因为OVER()函数可以为行定义一个窗口,其中窗口是指运算将要操作的行的集合,然后对一组值进行操作。本实施例就是在OVER()函数定义的窗口中结合Row_number()函数为每个集合中的实体组进行排序。最后,从各集合中提取预设序号对应的实体组,预设序号为在所有集合中对应实体组数量最多的序号。这样就保证每个集合中都被提取到一个实体组,因为不同的集合中的实体组是不同的,所以最终得到的就是没有对称实体组的实体组集合。进一步的,为了对图2所示的实施例方法的详细说明,给出具体的实例进行说明,如下所示。假设一个数据库实体表中的记录的实体组为,如下表所示。其中每一个序号对应一个实体组,每个实体组中包括两个实体,实体一和实体二,关联度是实体一和实体二之间的关联度。从表中可以看到存在两对对称实体组:“啤酒-尿布”和“尿布-啤酒”、“尿布-奶粉”和“奶粉-尿布”。那么对该数据库实体表进行合并对称实体组的方法为:序号实体一实体二关联度1啤酒尿布132尿布啤酒103啤酒牛奶184尿布童装295尿布奶粉506啤酒奶粉67奶粉尿布10首先,计算各实体组中的实体的校验值,并将各实体校验值相加,得到如下表所示的结果。其中校验值之和是由实体一校验值和实体二校验值相加得到的。序号实体一实体二关联度实体一校验值实体二校验值校验值之和1啤酒尿布133786423681157467572尿布啤酒103681153786427467573啤酒牛奶183786424906948693364尿布童装293681154686298367445尿布奶粉503681153880737561886啤酒奶粉63786423880737667157奶粉尿布10388073368115756188其次,对于校验值之和相等的实体组,提取其中各实体的校验值,比较不同实体组中对应实体的校验值是否相等。然后将校验值之和相等实体组的关联度进行相加,获得新的关联度,并将新的关联度分别赋值于校验值之和相等的实体组。其中校验值之和相等的两组的序号分别为“1”和“2”、“5”和“7”,因此需要分别提取两组实体组中对应的实体的校验值。对于“1”和“2”两个实体组来说,他们对应的实体的校验值分别为“378642”和“368115”、“368115”和“378642”,可以判断得出两个实体组对应的校验值是相等的,因此可以将他们进行关联度的相加。同样的对于“5”和“7”两个实体组来说,也可以将他们进行关联度的相加。得到如下表所示的结果:序号实体一实体二关联度实体一校验值实体二校验值校验值之和1啤酒尿布233786423681157467572尿布啤酒233681153786427467573啤酒牛奶183786424906948693364尿布童装293681154686298367445尿布奶粉603681153880737561886啤酒奶粉63786423880737667157奶粉尿布60388073368115756188最后,对校验值之和相等的实体组进行去重,保留剩余的实体组。其中校验值之和相等并且关联度也相等的两组的序号分别为“1”和“2”、“5”和“7”。因此将序号“1”和“2”两个实体组分配到一个集合中,将序号“5”和“7”的两个实体组分配到一个集合中。其他的校验值之和都各不相 同,因此各自为一个集合。最终可以将该实体表中的实体组分为六个集合。然后分别对每个集合中的实体组从数字“1”开始排序。如下表所示。序号实体一实体二关联度实体一校验值实体二校验值校验值之和编号1啤酒尿布2337864236811574675712尿布啤酒2336811537864274675725尿布奶粉6036811538807375618817奶粉尿布6038807336811575618826啤酒奶粉637864238807376671514尿布童装2936811546862983674413啤酒牛奶183786424906948693361再将编号对应的实体组数量最多的序号对应的实体组提取出来,在该实例中编号为“1”的实体组数量最多,因此需要提取编号为“1”的实体组。最终结果如下表所示。序号实体一实体二关联度实体一校验值实体二校验值校验值之和编号1啤酒尿布2337864236811574675715尿布奶粉6036811538807375618816啤酒奶粉637864238807376671514尿布童装2936811546862983674413啤酒牛奶183786424906948693361可以看到最后得到的结果中不存在对称的实体组,实现了对称实体组的合并。进一步的,作为对上述图1和图2所示方法的实现,本发明实施例另一实施例还提供了一种合并对称实体组的装置,用于对上述图1和图2所示的方法进行实现。该装置实施例与前述方法实施例对应,为便于阅读,本装置实施例不再对前述方法实施例中的细节内容进行逐一赘述,但应当明确,本实施例中的装置能够对应实现前述方法实施例中的全部内容。如图3所示,该装置包括:计算单元31、第一相加单元32、第二相加单元33及去重单元34。计算单元31,用于计算数据库实体表里各实体组中实体的校验值,数据库实体表记录有多个实体组以及对应每个实体组的关联度,关联度用于表征实体组中各个实体之间的关联程度;第一相加单元32,用于将各实体组中各个实体的校验值相加,获得对应各实体组的校验值之和;第二相加单元33,用于将校验值之和相等的实体组的关联度相加,获得新的关联度,并将校验值之和相等的实体组的关联度分别赋值为新的关联度;去重单元34,用于对校验值之和相等的实体组进行去除重复项的操作,在所述数据库实体表中保留剩余的实体组。进一步的,如图4所示,计算单元31,包括:第一提取模块311,用于提取各实体组中的实体;调用模块312,用于调用校验值函数对提取的实体分别计算校验值。进一步的,如图4所示,装置进一步包括:提取单元35,用于在将校验值之和相等的实体组的关联度相加之前,对于校验值之和相等的实体组,提取其中各实体的校验值;比较单元36,用于比较校验值之和相等的实体组中对应实体的校验值是否相等。进一步的,第二相加单元33用于:如果比较结果为相等,则将所述校验值之和相等的实体组的关联度相加。进一步的,如图4所示,去重单元34,包括:分配模块341,用于根据校验值之和以及关联度将实体组分配到对应的集合中,集合中的校验值之和相等,并且集合中的关联度也相等;排序模块342,用于对集合中的实体组进行排序,并按统一规则分配序号;第二提取模块343,用于从各个集合中提取预设序号对应的实体组,得到去重之后剩余的实体组,预设序号为在所有集合中对应实体组数量最多的序号。本实施例提供的合并对称实体组的装置,能够通过计算实体组中各实体的校验值,并得到各实体组中实体的校验值之和,将校验值之和相等的实体组的关联度相加,得到新的关联度,并将新的关联度分别赋值于校验值之和相等的实体组,最后对校验值之和相等的实体组进行去重处理,保留剩余的实体组。与现有技术相比,本实施例能够通过计算校验值之和的方法对对称实体组进行去重,无需对实体组中的实体内容进行比对,因此可以减少处理资源的开销,提高合并对称实体组的效率。所述合并对称实体组的装置包括处理器和存储器,上述计算单元31、第一相加单元32、第二相加单元33和去重单元34等均作为程序单元存储在存储器中,由处理器执行存储在存储器中的上述程序单元来实现相应的功能。本申请还提供了一种计算机程序产品,当在数据处理设备上执行时,适于执行初始化有如下方法步骤的程序代码:计算数据库实体表里各实体组中实体的校验值,数据库实体表记录有多个实体组以及对应每个实体组的关联度,关联度用于表征实体组中各个实体之间的关联程度;将各实体组中各个实体的校验值相加,获得对应各实体组的校验值之和;将校验值之和相等的实体组的关联度相加,获得新的关联度,并将校验值之和相等的实体组的关联度分别赋值为新的关联度;对校验值之和相等的实体组进行去除重复项的操作,在数据库实体表中保留剩余的实体组。本领域内的技术人员应明白,本申请的实施例可提供为方法、系统、或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。本申请是参照根据本申请实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专 用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。在一个典型的配置中,计算设备包括一个或多个处理器(CPU)、输入/输出接口、网络接口和内存。存储器可能包括计算机可读介质中的非永久性存储器,随机存取存储器(RAM)和/或非易失性内存等形式,如只读存储器(ROM)或闪存(flashRAM)。存储器是计算机可读介质的示例。计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(PRAM)、静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)、其他类型的随机存取存储器(RAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、快闪记忆体或其他内存技术、只读光盘只读存储器(CD-ROM)、数字多功能光盘(DVD)或其他光学存储、磁盒式磁带,磁带磁磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算机可读介质不包括暂存电脑可读媒体(transitorymedia),如调制的数据信号和载波。以上仅为本申请的实施例而已,并不用于限制本申请。对于本领域技术人员来说,本申请可以有各种更改和变化。凡在本申请的精神和原理之内所作的任何修改、等同替换、改进等,均应包含在本申请的权利要求范围之内。当前第1页1 2 3 
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1