一种对象匹配方法及装置
技术领域
本申请涉及计算机技术领域,尤其涉及一种对象匹配方法及装置。
背景技术
现实世界中的实体在互联网世界中的不同平台可能会同时存在着多个索引(也可称为对象)。例如:一家商家会在不同的外卖平台都设有店铺,因为不同平台的数据管理规范、流程、展示格式的不同,这些店铺的店铺名、地址会有一定的差异。通过计算不同来源的各个店铺之间的匹配关系,能够确定这些店铺是否属于同一商家,从而便于外卖平台上店铺的管理。
为了解决不同来源的对象的匹配问题,可以对多个对象中任意两个对象进行匹配度的计算,但是该匹配计算方案的难度在于:计算量太大,其时间和空间复杂度的基数都是O(N2),O表示空间复杂度。当对象的数量级太大时,这种匹配计算方法在时间和空间上都是很难做到的。
每一个对象都具备一些属性,目前已知的对象匹配问题的解决方案主要通过以下步骤实现:
步骤1,建立各个对象与其属性的索引关系。假设现有三个对象:甲、乙、丙,对象甲具备属性a、b,对象乙具备属性b、c,对象丙具备属性a、b、c。各个对象与其属性的索引关系如表1所示。
表1
对象 |
属性 |
甲 |
a、b |
乙 |
b、c |
丙 |
a、b、c |
步骤2,建立各个属性与其对应的对象的索引关系。即属性a对应对象甲、丙;属性b对应对象甲、乙、丙;属性c对应对象乙、丙。各个属性与其对应的对象的索引关系如表2所示。
表2
属性 |
对象 |
a |
甲、丙 |
b |
甲、乙、丙 |
c |
乙、丙 |
步骤3,针对每一个属性所对应的所有对象,进行两两匹配度的计算,从而得到任意两个对象之间的匹配关系,可以较大程度地减少计算量。
上述解决方案与前面介绍的匹配计算方案相比,虽然在很大程度上减少了计算量,但实际上还是会出现很大的数据冗余。例如:对象甲和对象丙同时在属性a和属性b中出现,会导致重复的计算;或者,如果有一个通用的属性(例如极端情况下每个对象都有一个相同的属性),则导致计算量非常大,当然,一般计算过程中会人为过滤掉这样的属性,但其过滤阈值是非常难以拿捏的。
针对传统对象匹配计算方法中复杂度过高的问题,目前尚未提出有效的解决方案。
发明内容
本申请目的在于提供一种对象匹配方法及装置,可以减小对象匹配的计算量,提高对象匹配的计算精度。
本申请提供一种对象匹配方法及装置是这样实现的:
一种对象匹配方法,所述方法包括:
获取多个对象中各个对象的属性;
对所述多个对象及所述属性进行整合,建立对象与属性的对应关系;其中,每个属性对应至少一个对象;
基于所述对应关系确定所述多个对象中各个对象相互之间的相似度;
根据所述相似度确定所述多个对象中各个对象相互之间的匹配关系。
一种对象匹配装置,所述装置包括:
属性获取单元,用于获取多个对象中各个对象的属性;
关系建立单元,用于对所述多个对象及所述属性进行整合,建立对象与属性的对应关系;其中,每个属性对应至少一个对象;
相似度确定单元,用于基于所述对应关系确定所述多个对象中各个对象相互之间的相似度;
匹配确定单元,用于根据所述相似度确定所述多个对象中各个对象相互之间的匹配关系。
本申请提供的对象匹配方法及装置,基于对象的属性进行对象之间相似度的计算,从而确定对象之间的匹配关系。具体实施过程中可以基于对象的属性建立对象与属性之间的对应关系(即每个属性与其所对应的至少一个对象之间的关系),再基于图计算模型计算对象之间的相似度,从而大大减少计算量,提高对象匹配的计算精度。
附图说明
此处所说明的附图用来提供对本申请的进一步理解,构成本申请的一部分,本申请的示意性实施例及其说明用于解释本申请,并不构成对本申请的限定。在附图中:
图1是本申请所述对象匹配方法一种实施例的方法流程图;
图2是本申请一实施例的对象与其属性的对应关系示意图;
图3是本申请一实施例的属性与其对应的对象的对应关系示意图;
图4是本申请一实施例的BSP架构示意图;
图5是本申请一实施例的BSP程序垂直结构示意图;
图6是本申请一实施例的BSP程序水平结构示意图;
图7是本申请一实施例的属性权重计算示意图;
图8是本申请一实施例的消息汇总示意图;
图9是本申请一实施例的各个对象的消息精简示意图;
图10是本申请一实施例的各个对象的消息精简优化示意图;
图11是本申请所述对象匹配装置一种实施例的结构示意图;
图12是本申请提供的所述属性获取单元一种实施例的结构示意图;
图13是本申请提供的所述相似度确定单元一种实施例的结构示意图;
图14是本申请提供的所述运算模块一种实施例的结构示意图。
具体实施方式
为了使本技术领域的人员更好地理解本申请中的技术方案,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都应当属于本申请保护的范围。
下面结合附图对本申请所述的对象匹配方法及装置进行详细的说明。图1是本申请所述对象匹配方法一种实施例的方法流程图。虽然本申请提供了如下述实施例或附图所示的方法操作步骤或装置结构,但基于常规或者无需创造性的劳动在所述方法或装置中可以包括更多或者更少的操作步骤或模块结构。在逻辑性上不存在必要因果关系的步骤或结构中,这些步骤的执行顺序或装置的模块结构不限于本申请实施例提供的执行顺序或模块结构。所述的方法或模块结构在实际中的装置或终端产品执行时,可以按照实施例或者附图所示的方法或模块结构连接进行顺序执行或者并行执行(例如并行处理器或者多线程处理的环境)。
在本申请中,对象主要是指现实世界中的实体在互联网世界的不同地方所对应存在的客体,本申请通过对不同对象之间匹配关系的计算,可以获知互联网世界中多个客体是否属于现实世界中的同一个实体,并且能保证较小的计算量和较高的计算精度。本申请可以以外卖平台上的外卖商家为例进行对象匹配方案的具体说明,具体的如图1所示,本申请提供的对象匹配方法的一种实施例可以包括:
步骤S101,获取多个对象中各个对象的属性。
本申请为了准确获取每个对象的属性,可以采取以下实施方式:首先,提取多个对象中各个对象的特征信息;然后,将每个对象的特征信息作为属性,和/或,将每个对象的特征信息分解为多个特征信息,将分解后的特征信息作为属性。例如:在外卖商家的应用场景中,每个外卖商家(对象)的特征信息主要包括:店铺名、店铺地址、店铺电话、菜品名等。其中,店铺电话和简单菜品名等这些数字或文字的数目较少的特征信息可直接作为外卖商家的属性,店铺名、店铺地址和复杂菜品名等这些数字或文字的数目较多的特征信息,需要分解为数字或文字的数目较少的特征信息。为了避免关键属性的遗漏,一般可采用二元语法Bigram或者三元语法Trigram进行特征信息的分解,对于上述二元语法,具体地,是依次将一个词组中的连续两个字作为一个词语,例如某个外卖商家有一个菜品名是“黄焖鸡米饭”,基于二元语法将特征信息“黄焖鸡米饭”分解为多个特征信息:“黄焖”、“焖鸡”、“鸡米”和“米饭”。同理,三元语法是依次将一个词组中的连续三个字作为一个词语,例如将特征信息“黄焖鸡米饭”分解为多个特征信息:“黄焖鸡”、“焖鸡米”和“鸡米饭”。通过上述分解方法,可以将数字或文字的数目较多的特征信息分解为多个特征信息,便于确定更为有效的属性,提高计算精度。当然本申请也可以采用其他分解方法,只要能够将特征信息分解为多个特征信息,并保证不遗漏特征信息即可,本申请对此不做限制。
步骤S102,对多个对象及属性进行整合,建立对象与属性的对应关系;其中,每个属性对应至少一个对象。
需要说明的是,在前述步骤S101中可以确定每个对象与其属性的对应关系,本步骤是将所有对象与其属性进行整合,建立每个属性与其对应对象的对应关系,从而可以获知哪几个对象具有相同的属性。假设现有三个对象:甲、乙、丙,对象与其属性的对应关系如图2所示,对象甲具备属性a、b,对象乙具备属性b、c,对象丙具备属性a、b、c。对这三个对象与其属性进行整合,就可以建立属性与其对应的对象的对应关系,图3是本申请一实施例的属性与其对应的对象的对应关系示意图,如图3所示,属性a对应的对象有甲、丙,属性b对应的对象有甲、乙、丙,属性c对应的对象有乙、丙。根据图3所示的对应关系,可清晰明了的获知每个对象的属性,以及每个属性所对应的对象。
步骤S103,基于上述对应关系确定多个对象中各个对象相互之间的相似度。
本申请为了降低计算量,引入了图计算模型进行各个对象相互之间相似度的计算,其中,图计算模型至少包括以下之一:开源图计算模型Graph Lab、分布式图处理模型Graph X、整体同步并行计算模型(Bulk Synchronous Parallel,简称BSP)。下面分别介绍各个图计算模型。
Graph Lab是由CMU(卡内基梅隆大学)的Select实验室在2010年提出的一个基于图像处理模型的开源图计算框架,框架使用C++语言开发实现。该框架是面向机器学习的流处理并行计算框架,可以运行在多处理机的单机系统、集群或是亚马逊的EC2等多种环境下。框架的设计目标是,可以高效执行与机器学习相关的、具有稀疏的计算依赖特性的迭代性算法,并且保证计算过程中数据的高度一致性和高效的并行计算性能。
GraphX是Spark中用于图和图并行计算的API(Application ProgrammingInterface,应用程序编程接口)。跟其他分布式图计算框架相比,Graph X最大的贡献是,在Spark之上提供一栈式数据解决方案,可以方便且高效地完成图计算的一整套流水作业。
BSP是英国计算机科学家Viliant在上世纪80年代提出的一种并行计算模型,该模型基于一个master协调,所有worker同步执行,数据从输入的队列中读取,下面对BSP架构进行简单的介绍。
图4是本申请一实施例的BSP架构示意图,如图4所示,BSP架构包括Client(客户端)、Master(主进程)和Worker(工作进程),Client的主要工作包括:1、将数据输入Worker,2、通知Master开始工作,3、等待Master完成工作,4、从Worker提取处理结束的数据。Master的主要工作包括:1、从Client接收到“启动”的消息,2、如下动作不断迭代直至所有没有active的Worker:启动所有active的节点进行工作、等待所有Worker完成工作、更新active的Worker数量。Worker的主要工作包括:1、将Worker本身设置为active状态,2、如下动作不断迭代直至该Worker本身至inactive状态:等待Master“启动”的消息、从数据库中读取消息、在该Worker中进行消息处理等工作、发送消息、更新是否是active的状态、通知Master已经完成该轮迭代的工作,3、当有消息发送给该Worker时,将该Worker设置为active状态。
BSP程序设计准则是bulk同步,其独特之处在于超步(super step)概念的引入。一个BSP程序同时具有水平和垂直两个方面的结构。图5是本申请一实施例的BSP程序垂直结构示意图,如图5所示,在垂直结构上,一个BSP程序由一系列串行的超步(super step)组成,这种垂直结构类似于一个串行程序结构。图6是本申请一实施例的BSP程序水平结构示意图,如图6所示,在水平结构上,在一个超步中,所有的进程并行执行局部计算。一个超步可分为三个阶段:
1)本地计算阶段,每个处理器只对存储本地内存中的数据进行本地计算。
2)全局通信阶段,对任何非本地数据进行操作。
3)栅栏同步阶段,等待所有通信行为的结束。
本申请以BSP为例介绍各个对象相互之间相似度的计算过程。首先,将步骤S102中建立的对应关系输入图计算模型(BSP)中,然后,基于图计算模型执行多个超步运算,得到多个对象中各个对象相互之间的相似度。上述多个超步运算主要包括以下步骤:
步骤S103a,基于对应关系确定每个属性所对应的对象。在图计算模型中,各个对象和各个属性均处于图计算框架的各个节点处,各个节点之间可进行消息交互。在确定每个属性对应的对象时,是通过每个对象向其属性发送消息来实现的,其中,发送的消息中携带有对象自身的标识符,从而使得每个属性在接收到消息后,可以获知其对应的是哪个对象。
步骤S103b,根据每个属性所对应的对象计算每个属性的权重;其中,权重是每个属性所对应对象个数的倒数。
图7是本申请一实施例的属性权重计算示意图,如图7所示,属性a所对应的对象有甲和丙,即属性a对应的对象个数为2,则属性a的权重是0.5;属性b所对应的对象有甲、乙和丙,即属性b对应的对象个数为3,则属性b的权重是
近似为0.3333;属性c所对应的对象有乙和丙,即属性c对应的对象个数为2,则属性c的权重是0.5。
步骤S103c,根据每个属性的权重及对应关系,确定各个对象的属性的权重与该属性对应的对象。
该步骤是通过各个属性向其所对应的对象发送消息来实现的,图8是本申请一实施例的消息汇总示意图,如图8所示,属性a将其自身的消息(属性a的权重0.5以及属性a对应的对象有甲、丙)发送至其所对应的对象甲和丙;属性b将其自身的消息(属性b的权重0.3333以及属性b对应的对象有甲、乙、丙)发送至其所对应的对象甲、乙和丙;属性c将其自身的消息(属性c的权重0.5以及属性c对应的对象有乙、丙)发送至其所对应的对象乙和丙。
基于此,对象甲汇总的消息包括:属性a的权重0.5以及与属性a对应的对象甲、丙,属性b的权重0.3333以及与属性b对应的对象甲、乙、丙;
对象乙汇总的消息包括:属性b的权重0.3333以及与属性b对应的对象甲、乙、丙,属性c的权重0.5以及与属性c对应的对象乙、丙;
对象丙汇总的消息包括:属性a的权重0.5以及与属性a对应的对象甲、丙,属性b的权重0.3333以及与属性b对应的对象甲、乙、丙,属性c的权重0.5以及与属性c对应的对象乙、丙。
步骤S103d,根据各个对象的属性的权重与该属性对应的对象,利用相似度公式确定各个对象与其他对象之间的相似度。
在本申请中,任意两个对象之间的相似度的计算,可以通过以下公式实现:
其中,Ei表示对象i,Ej表示对象j,A[i]是对象i的属性的集合,A[j]是对象j的属性的集合,Wt表示对象i与对象j的共有属性的权重,Wk表示对象i的属性的权重。也就是说,对象i与对象j之间的相似度计算中,被除数是两个对象共有的一个或多个属性的权重和,除数是对象i的属性的权重和。
其中,被除数的相关信息可以从图8所示的消息汇总示意图中得知,在对象甲的汇总消息中可以看出,对象甲与对象乙的共有属性是属性b,属性b的权重是0.3333,对象甲与对象丙的共有属性是属性a和属性b,属性a的权重是0.5,属性b的权重是0.3333。
基于上述公式,可以精确的计算出两个对象之间的相似度,为后续根据相似度确定匹配关系提供较佳的参考依据。当然,本申请也可以通过其他相似度计算公式来计算两个对象之间的相似度,无论采用何种计算方法,只要能够准确获得两个对象之间的相似度即可。
为了更加精简计算量,本申请还提供了一种优选实施方式,即在图8所示的各个对象汇总的消息的基础上,排除各个对象的属性所对应的对象中的各个对象自身,和/或,对多个对象进行排序,在各个对象的属性所对应的对象中,排除顺序比自身靠前的对象或者排除顺序比自身靠后的对象。下面结合附图介绍上述优选实施方式的具体实现过程。
图9是本申请一实施例的各个对象的消息精简示意图,如图9所示,将每个对象汇总的消息中排除对象自身。例如,在对象甲汇总的消息中,删除掉对象甲;在对象乙汇总的消息中,删除掉对象乙;在对象丙汇总的消息中,删除掉对象丙。在后续的相似度计算过程中,由于无需计算各个对象与其自身之间的相似度,因此这些消息均是无用消息,将这些无用消息删除掉,可以更利于消息的梳理,并节省内存。
进一步地,将多个对象进行排序,排序规则不限,只要将所有对象排出一个顺序即可。例如可以根据对象的ID值进行排序,将每个对象汇总的消息中排除顺序比自身靠前的对象或者排除顺序比自身靠后的对象。图10是本申请一实施例的各个对象的消息精简优化示意图,如图10所示,假设将对象甲、乙和丙排成甲>乙>丙的顺序,将每个对象汇总的消息中排除顺序比自身靠前的对象,即在对象甲汇总的消息中,没有需要删除的对象;在对象乙汇总的消息中,删除掉对象甲;在对象丙汇总的消息中,删除掉对象甲和对象乙。通过上述精简操作,可以减少一半的重复计算量。在图10中可以清晰明了的看出,对象甲与对象乙的共有属性是属性b,属性b的权重是0.3333,对象甲与对象丙的共有属性是属性a和属性b,属性a的权重是0.5,属性b的权重是0.3333。从而只保留了计算相似度所需要的必要消息,减少了内存。
步骤S104,根据相似度确定多个对象中各个对象相互之间的匹配关系。
在本申请中,相似度与匹配关系正相关,两个对象之间相似度的数值越大,表示这两个对象越相似。在实际应用中,可以设置第一阈值和第二阈值,第一阈值大于第二阈值,具体的数值大小可以根据需求进行设置。当任意两个对象之间的相似度高于第一阈值时,可以确定两个对象之间的匹配关系为模糊相同,当任意两个对象之间的相似度低于第二阈值时,可以确定两个对象之间的匹配关系为模糊不同。基于此,可以确定外卖平台上的任意两个店铺是否属于同一个商家,便于外卖平台的管理。
基于与上述对象匹配方法相同的发明构思,本申请提供一种对象匹配装置,如下面实施例所述。由于该对象匹配装置解决问题的原理与对象匹配方法相似,因此该对象匹配装置的实施可以参见对象匹配方法的实施,重复之处不再赘述。
图11是本申请所述对象匹配装置一种实施例的结构示意图,如图11所示,所述装置可以包括:
属性获取单元10,可以用于获取多个对象中各个对象的属性。属性获取单元10是对象匹配装置中获取多个对象中各个对象的属性的部分,可以是软件、硬件或二者的结合,例如可以是完成对象属性采集功能的输入输出接口、处理芯片等元器件。
关系建立单元20,连接至属性获取单元10,可以用于对多个对象及属性进行整合,建立对象与属性的对应关系;其中,每个属性对应至少一个对象。关系建立单元20是对象匹配装置中建立对象与属性的对应关系的部分,可以是软件、硬件或二者的结合,例如可以是完成对象及属性整合功能的输入输出接口、处理芯片等元器件。
相似度确定单元30,连接至关系建立单元20,可以用于基于对应关系确定多个对象中各个对象相互之间的相似度。相似度确定单元30是对象匹配装置中确定各个对象相互之间相似度的部分,可以是软件、硬件或二者的结合,例如可以是完成相似度计算功能的输入输出接口、处理芯片等元器件。
匹配确定单元40,连接至相似度确定单元30,可以用于根据相似度确定多个对象中各个对象相互之间的匹配关系。匹配确定单元40是对象匹配装置中确定各个对象相互之间匹配关系的部分,可以是软件、硬件或二者的结合,例如可以是完成结果导入导出功能的输入输出接口、处理芯片等元器件。
本申请提供的对象匹配装置,基于对象的属性进行对象之间相似度的计算,从而确定对象之间的匹配关系。具体实施过程中可以基于对象的属性建立对象与属性之间的对应关系(即每个属性与其所对应的至少一个对象之间的关系),再基于图计算模型计算对象之间的相似度,从而大大减少计算量,提高对象匹配的计算精度。
图12是本申请提供的所述属性获取单元一种实施例的结构示意图,如图12所示,为了准确提取各个对象的属性,属性获取单元10可以包括:提取模块101,用于提取多个对象中各个对象的特征信息;属性确定模块102,用于将每个对象的特征信息作为属性;和/或,将每个对象的特征信息分解为多个特征信息,将分解后的特征信息作为属性。具体地址,一般可采用二元语法Bigram或者三元语法Trigram进行特征信息的分解,从而确定更为有效的属性,提高计算精度。当然本申请也可以采用其他分解方法,只要能够将特征信息分解为多个特征信息,并保证不遗漏特征信息即可,本申请对此不做限制。
图13是本申请提供的所述相似度确定单元一种实施例的结构示意图,如图13所示,相似度确定单元30可以包括:输入模块301,用于将对应关系输入图计算模型;运算模块302,用于基于图计算模型执行多个超步运算,得到多个对象中各个对象相互之间的相似度。图计算模型至少可以包括以下之一:BSP、Graph Lab、Graph X。
图14是本申请提供的所述运算模块一种实施例的结构示意图,如图14所示,运算模块302可以包括:
第一运算子模块312,用于基于对应关系确定每个属性所对应的对象;
第二运算子模块322,用于根据每个属性所对应的对象计算每个属性的权重;其中,权重是每个属性所对应对象个数的倒数;
第三运算子模块332,用于根据每个属性的权重及对应关系,确定各个对象的属性的权重与该属性对应的对象;
第四运算子模块342,用于根据各个对象的属性的权重与该属性对应的对象,利用相似度公式确定各个对象与其他对象之间的相似度。其中,相似度公式是:
其中,E
i表示对象i,E
j表示对象j,A[i]是对象i的属性的集合,A[j]是对象j的属性的集合,W
t表示对象i与对象j的共有属性的权重,W
k表示对象i的属性的权重。
基于上述公式,运算模块302可以精确的计算出两个对象之间的相似度,为后续匹配确定单元40根据相似度确定匹配关系提供较佳的参考依据。当然,本申请也可以通过其他相似度计算公式来计算两个对象之间的相似度,无论采用何种计算方法,只要能够准确获得两个对象之间的相似度即可。
为了精简计算量,运算模块302还可以包括:简化子模块,用于在第三运算子模块确定各个对象的属性的权重与该属性对应的对象之后,排除各个对象的属性所对应的对象中的各个对象自身;和/或,对多个对象进行排序,在各个对象的属性所对应的对象中,排除顺序比自身靠前的对象;或者,排除顺序比自身靠后的对象。从而减少了计算量,节省内存。
在本申请中,相似度与匹配关系正相关,两个对象之间相似度的数值越大,表示这两个对象越相似。在实际应用中,可以设置第一阈值和第二阈值,第一阈值大于第二阈值,具体的数值大小可以根据需求进行设置。基于此,本申请提供了一种优选实施方式,即上述匹配确定单元40可以包括:第一匹配模块,用于当多个对象中任意两个对象之间的相似度高于第一阈值时,确定两个对象之间的匹配关系为相同;第二匹配模块,用于当多个对象中任意两个对象之间的相似度低于第二阈值时,确定两个对象之间的匹配关系为不同。基于此,可以确定外卖平台上的任意两个店铺是否属于同一个商家,便于外卖平台的管理。
本申请提供的对象匹配方法及装置,基于图计算模型的天然优势,很好地解决了传统对象匹配计算方法中复杂度过高的问题,并且能自动根据属性的通用程度调整其权重,计算出合理的相似度。从而大大减少计算量,提高对象匹配的计算精度。
尽管本申请内容中提到对象及属性的整合、确定对象之间的相似度、图计算模型的描述,但是,本申请并不局限于必须是完全标准或者所提及的方式的计算处理情况。本申请中各个实施例所涉及的上述描述仅是本申请中的一些实施例中的应用,在某些标准、模型、方法的基础上略加修改后的实施方式也可以实行上述本申请各实施例的方案。当然,在符合本申请上述各实施例的中所述的计算方法步骤的其他无创造性的变形,仍然可以实现相同的申请,在此不再赘述。
虽然本申请提供了如实施例或流程图所述的方法操作步骤,但基于常规或者无创造性的劳动可以包括更多或者更少的操作步骤。实施例中列举的步骤顺序仅仅为众多步骤执行顺序中的一种方式,不代表唯一的执行顺序。在实际中的装置或客户端产品执行时,可以按照实施例或者附图所示的方法顺序执行或者并行执行(例如并行处理器或者多线程处理的环境)。
上述实施例阐明的装置或模块,具体可以由计算机芯片或实体实现,或者由具有某种功能的产品来实现。为了描述的方便,描述以上装置时以功能分为各种模块分别描述。在实施本申请时可以把各模块的功能在同一个或多个软件和/或硬件中实现。当然,也可以将实现某功能的模块由多个子模块或子单元组合实现。
本申请中所述的方法、装置或模块可以以计算机可读程序代码方式实现控制器按任何适当的方式实现,例如,控制器可以采取例如微处理器或处理器以及存储可由该(微)处理器执行的计算机可读程序代码(例如软件或固件)的计算机可读介质、逻辑门、开关、专用集成电路(Application Specific Integrated Circuit,ASIC)、可编程逻辑控制器和嵌入微控制器的形式,控制器的例子包括但不限于以下微控制器:ARC625D、Atmel AT91SAM、Microchip PIC18F26K20以及Silicone Labs C8051F320,存储器控制器还可以被实现为存储器的控制逻辑的一部分。本领域技术人员也知道,除了以纯计算机可读程序代码方式实现控制器以外,完全可以通过将方法步骤进行逻辑编程来使得控制器以逻辑门、开关、专用集成电路、可编程逻辑控制器和嵌入微控制器等的形式来实现相同功能。因此这种控制器可以被认为是一种硬件部件,而对其内部包括的用于实现各种功能的装置也可以视为硬件部件内的结构。或者甚至,可以将用于实现各种功能的装置视为既可以是实现方法的软件模块又可以是硬件部件内的结构。
本申请所述装置中的部分模块可以在由计算机执行的计算机可执行指令的一般上下文中描述,例如程序模块。一般地,程序模块包括执行特定任务或实现特定抽象数据类型的例程、程序、对象、组件、数据结构、类等等。也可以在分布式计算环境中实践本申请,在这些分布式计算环境中,由通过通信网络而被连接的远程处理设备来执行任务。在分布式计算环境中,程序模块可以位于包括存储设备在内的本地和远程计算机存储介质中。
通过以上的实施方式的描述可知,本领域的技术人员可以清楚地了解到本申请可借助软件加必需的硬件的方式来实现。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,也可以通过数据迁移的实施过程中体现出来。该计算机软件产品可以存储在存储介质中,如ROM/RAM、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,移动终端,服务器,或者网络设备等)执行本申请各个实施例或者实施例的某些部分所述的方法。
本说明书中的各个实施例采用递进的方式描述,各个实施例之间相同或相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。本申请的全部或者部分可用于众多通用或专用的计算机系统环境或配置中。例如:个人计算机、服务器计算机、手持设备或便携式设备、平板型设备、移动通信终端、多处理器系统、基于微处理器的系统、可编程的电子设备、网络PC、小型计算机、大型计算机、包括以上任何系统或设备的分布式计算环境等等。
虽然通过实施例描绘了本申请,本领域普通技术人员知道,本申请有许多变形和变化而不脱离本申请的精神,希望所附的权利要求包括这些变形和变化而不脱离本申请的精神。