具体实施方式
本申请实施例提供一种名称匹配方法及装置。
为了使本技术领域的人员更好地理解本申请中的技术方案,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都应当属于本申请保护的范围。
如前所述,实际应用中的待匹配人名可能由于数据录入时的时效性、不确定性以及人名的多变性,导致待匹配人名与实际人名有出入(主要指人名的“形(也即,字符)”发生变化)。为了便于理解,以英文人名为例,英文人名常见变化类型及实例,如下表1所示。
表1
其中,若只采用字符串匹配的方法匹配人名,可能对于个别字母“错拼”的变化类型尚能够尝试匹配(实际上也是靠误打误撞,没有过硬的根据),但是对于其他变化类型,匹配精确度很低。
而本申请的方案针对上述其他变化类型,可以进行诸如缩写检测、称谓词检测、多语言检测、别称检测等特定检测,从而可以比较全面地考虑人名匹配时同义而字符不全相同(也即,同义而不同形)情况,进而可以提高匹配精确度。需要说明的是,“不同形”可以指由于错拼而导致“有误”的不同形,但在下面的实施例中更主要是指由于上述其他变化类型所导致的“合理无误”的不同形。
本申请的方案不仅适用于人名匹配,也适用于人名以外的其他名称的匹配,比如,地名、物名等。
下面对本申请的方案进行详细说明。
图1为本申请实施例提供的一种名称匹配方法的流程示意图。执行该流程的程序可搭载的设备包括但不限于:个人计算机、大中型计算机、计算机集群、手机、平板电脑、智能可穿戴设备、车机,等等。该流程通常可以在风险控制领域使用,具体由风险控制***或相关***执行。
图1中的流程可以包括以下步骤:
S101:获得待匹配名称。
在本申请实施例中,对待匹配名称所属的具体语言并不做限定,可以是英文、俄文、西班牙文等,也可以是中文等。为了便于描述,下面的实施例主要以待匹配名称所属的语言是英文为例进行说明。
S102:确定用于与所述待匹配名称匹配的标准名称集合。
在本申请实施例中,标准名称集合可以是从一个更大的名称集合中筛选出来的子集,也可以直接是所述更大的名称集合本身,为了便于描述,可以将此处的筛选称为“初筛”。比如,在背景技术的场景下,所述更大的名称集合可以是风险控制***所掌握的黑名单。
在前一种情况下,子集可以是只包含与待匹配名称相似的名称的集合,此处的“相似”可以不是那么严格,因为后续还有一系列进一步地确定相似性的操作,相当于后续还要进行“细筛”。通过初筛可以快速缩小匹配范围,进而可以减少后续细筛的工作量,提高细筛的针对性,有利于提高本申请的方案的效率。
S103:对所述待匹配名称进行检测,以判定所述待匹配名称是否与所述标准名称集合中至少一个名称同义而字符不全相同。
在本申请实施例中,所要检测判定的“同义而字符不全相同”主要是由表1中的一种或多种变化类型导致的,所述检测具体可以包括:缩写检测、称谓词检测、多语言检测、别称检测等检测中的至少一种,后面会一一详细说明。
在本申请实施例中,当所述检测包括多种时,可以按照一定的顺序依次执行多种检测,若在检测过程中已经可以确定待匹配名称的匹配结果,也可以不执行剩余的检测。当然,为了提高执行效率,也可以并行地执行多种检测,再汇总检测结果。
S104:根据检测结果,确定所述待匹配名称的匹配结果。
在本申请实施例中,通过执行步骤S103,若判定待匹配名称与标准名称集合中至少一个名称同义而字符不全相同,则根据所述情况可以直接确定待匹配名称的匹配结果,在这种情况下,步骤S103中的检测过程实际上也就是对待匹配名称的整个匹配过程。
而若判定待匹配名称不满足:与所述标准名称集合中至少一个名称同义而字符不全相同;则可以进一步地采用其他匹配方式对待匹配名称进行匹配,以确定待匹配名称的匹配结果。
通过图1的方法,所述名称可以包括人名,实际应用中的待匹配人名可能由于数据录入时的时效性、不确定性以及人名的多变性,导致待匹配人名与实际人名有出入,这也是进行模糊匹配的原因,本申请的方案针对该原因,对待匹配人名进行检测,以判定所述待匹配名称是否与所述标准名称集合中至少一个名称同义而字符不全相同,并根据检测结果确定人名匹配结果,相比于现有技术中仅局限于通过凭经验设定的字符串匹配度阈值控制模糊程度,更有利于提高对模糊程度的控制准确程度,可以提高匹配精确度,降低风险控制***的虚警率,因此,可以部分或全部地减少现有技术中的问题。
基于图1的方法,本申请实施例还提供了该方法的一些具体实施方案,以及扩展方案,下面进行说明。
在本申请实施例中,不同的待匹配名称的复杂程度可能不同,包含的信息也可能不同,对于某些信息量过于小或者信息特征过于简单的待匹配名称,即使对其进行匹配,所获得的匹配结果的价值也难以达到预期。比如,过于简单通用的名称如英文人名“Jim”、“Jimmy”、“David”、“John”、“Mike”等,即使匹配成功也难以特定到一个人。
为了防止这种情况导致用于名称匹配的处理资源白白浪费,可以在获得待匹配名称后先对其进行一次过滤,以判决是否继续匹配。另外,若待匹配名称包含在白名单上,则也存在类似问题,也可以采用这种方式进行处理。
具体地,对于步骤S101和S102,所述获得待匹配名称后,确定用于与所述待匹配名称匹配的标准名称集合前,还可以执行:获得预定的无需匹配名称集合;确定所述待匹配名称是否包含在所述无需匹配名单集合中;若是,则继续执行后续步骤;否则,可以不对所述待匹配名称进行匹配。
在本申请实施例中,以步骤S102的一种具体实施方案(对应于上述“初筛”的情况)为例展开说明。对于步骤S102,所述确定用于与所述待匹配名称匹配的标准名称集合,具体可以包括:确定可用于与所述待匹配名称匹配的第一名称集合;通过将所述待匹配名称包含的各词与所述第一名称集合中名称包含的各词进行相似性匹配,确定用于与所述待匹配名称匹配的标准名称集合。
如何进行相似性匹配也有多种具体实施方案,可以进行对待匹配名称进行分词匹配,也可以对待匹配进行全文本匹配,等等。
以分词匹配为例,所述通过将所述待匹配名称包含的各词与所述第一名称集合中名称包含的各词进行相似性匹配,确定用于与所述待匹配名称匹配的标准名称集合,具体可以包括:获得所述第一名称集合包含的各名称的索引,所述名称的索引为该名称包含的任一词;以及对所述待匹配名称进行分词,获得所述待匹配名称包含的各词;分别将对所述待匹配名称包含的各词,与各所述索引进行相似性匹配,获得由匹配成功的各索引所索引的名称构成的所述第一名称集合的子集;根据各所述子集,确定用于与所述待匹配名称匹配的标准名称集合。
上例中的索引是预先建立的,基于索引进行分词匹配的优点是:可以有效加快在匹配过程中对集合中所需的名称的获取速度。若不基于索引,仍可以实现分词匹配(比如,在存储集合的数据表中直接用Select语句查询所需的名称以用于分词匹配等),只是效率上可能受到影响。
进一步地,所述分别将对所述待匹配名称包含的各词,与各所述索引进行相似性匹配,具体可以包括:采用字符串匹配算法,分别将对所述待匹配名称包含的各词,与各所述索引进行相似性匹配;所述字符串匹配算法可以包括一种或多种,比如,前缀树匹配算法、字典树匹配算法、字符串相似度匹配算法、发音相似匹配算法等。这里,采用字符串匹配算法只是一种较优的方式,也可以采用文本匹配算法等其他可以用于实现相似性匹配的算法。
所述根据各所述子集确定用于与所述待匹配名称匹配的标准名称集合,也可以有多种具体实施方案。比如,若采用N种字符串匹配算法,对于分词得到的M个词中的每个词,分别采用每种字符串匹配算法将该词与各索引进行匹配,对应得到N个子集,然后取N个子集的并集;共得到M个并集,取在M个并集中出现总次数超过设定阈值的各名称,确定为标准名称集合。又比如,得到N个子集,然后取N个子集的交集确定为标准名称集合。
上面对“初筛”过程进行了说明,为了便于理解,本申请实施例还提供了一种实际应用场景下,名称匹配方法中初筛的一种具体实施方案的流程简图,如图2所示。
在该实际应用场景下,假定第一名称集合为某英文人名名单,预先设定了该名单中各名称的索引(通过索引还可以索引得到对应名称以外的相关信息),索引具体为其对应的名称中的词,各索引包含在以索引对应的词为主键建立的索引表中,待匹配名称为英文人名“Kit Wai Jackson Wong”,以空格作为分隔符对该人名进行分词,分词结果如下表2所示。
表2
在图2中,M=4,分词结果具体为{Kit,Wai,Jackson,Wong},采用前缀树匹配算法、字典树匹配算法、字符串相似度匹配算法(比如Simstring算法等)、发音相似匹配算法(比如metaphone算法等)分别对分词得到的每个词与各索引分别进行匹配,输出单个词通过这四种匹配算法得到的索引对应的名称集合,匹配结果1、2、3、4;
将每个词的匹配结果取并集,得到每个词的综合匹配结果;
取至少包含在两个综合匹配结果中的名称构成集合,作为生成的初筛结果。
在本申请实施例中,确定标准名称集合后,可以对待匹配名称进行检测。不过,在检测之前,还可以进行一项或多项预处理,预处理有利于提高后续检测结果的可靠性。所述预处理可以包括对齐处理、大小写统一处理、简繁体处理等。
以对齐处理为例。对于步骤S103,所述对所述待匹配名称进行检测前,还可以执行:根据所述标准名称集合中名称包含的各词与所述待匹配名称包含的各词的相似度,对所述标准名称集合中名称包含的各词与所述待匹配名称包含的各词进行对齐处理。
在实际应用中,基于相似度进行对齐处理的具体原理可以是:基于相似度最大化原则,即将相似度最大的词所在的名称位置对齐。
例如,假定待匹配名称为“Kate Lee Smith”,标准名称集合中的某名称为“SmithCatherine Lee”对齐结果如下表3所示。
表3
进一步地,在进行了对齐处理的情况下,对于步骤S103,所述对所述待匹配名称进行检测,具体可以包括:根据对齐后的所述标准名称集合,对所述待匹配名称进行检测,以判定所述待匹配名称是否与所述标准名称集合中至少一个名称同义而字符不全相同。
在本申请实施例中,步骤S103中的检测是提高人名模糊匹配的匹配准确度的关键部分。具体地,对于步骤S103,所述对所述待匹配名称进行检测,具体包括:
对所述待匹配名称进行缩写检测、称谓词检测、多语言检测、别称检测中的至少一种,以判定所述待匹配名称是否与所述标准名称集合中至少一个名称同义而字符不全相同。下面分别对这几种检测进行说明。
在本申请实施例中,缩写检测中最常见的一种是首字母缩写检测,除此之外还有部分词省略缩写检测等。在一种具体实施方式下,所述对所述待匹配名称进行缩写检测,具体可以包括:获得预定的缩写对照组合数据,每个所述缩写对照组合反映至少一个词与其缩写词的缩写对应关系;根据所述缩写对照组合数据,检测所述待匹配名称包含的词与所述标准名称集合中的名称包含的词是否具有所述缩写对应关系;根据检测结果,判定所述待匹配名称是否与所述标准名称集合中至少一个名称同义而字符不全相同。
例如,若预先确定了英文人名“Ben Williams”可缩写为“B.Williams”,则可以将“Ben Williams”与“B.Williams”作为一个缩写对照组合,若检测出待匹配名称与标准名称集合中的某个名称即为该缩写对照组合,则可以确定存在同义而字符不全相同的情况。
在本申请实施例中,所述对所述待匹配名称进行称谓词检测,具体可以包括:获得预定的称谓词数据;根据所述称谓词数据,检测所述待匹配名称是否包含所述称谓词,所述称谓词被认为不影响包含该称谓词的名称之义;根据检测结果,以判定所述待匹配名称是否与所述标准名称集合中至少一个名称同义而字符不全相同。
就人名而言,称谓词一般是通用尊称(比如,Mr.或Miss.等)、头衔(Dr.、Prof.等)等附加于至少部分原始人名的词。在人名匹配的环境下,称谓词并不会影响其所对应的所述至少部分原始人名之义。因此,若确定待匹配名称中包含有称谓词,且除了称谓词的其他部分与标准名称集合中的某个名称可以匹配,则可以判定待匹配名称与标准名称集合中至少一个名称同义而字符不全相同。
在本申请实施例中,所述对所述待匹配名称进行别称检测,具体可以包括:获得预定的别称对照组合数据,每个所述缩写对照组合反映至少一个词与其别称的别称对应关系;根据所述别称对照组合数据,检测所述待匹配名称包含的词与所述标准名称集合中的名称包含的词是否具有所述别称对应关系;根据检测结果,判定所述待匹配名称是否与所述标准名称集合中至少一个名称同义而字符不全相同。
在实际应用中,别称可以包括其对应的名称的昵称(比如,表1中的Mick是Mikey的昵称等)、或其对应的名称在不同领域下的同义名称。对于后者,不同领域具体可以是不同地域(比如,不同国家、不同省份等)、不同语言(比如,不同国家的语言、不同民族的语言等)、不同的行业等。
相应地,对所述待匹配名称进行昵称检测,和/或,对所述待匹配名称进行不同领域下的同义名称检测。
别称也不会影响其对应的名称之义,因此,若确定待匹配名称为标准名称集合中的某个名称的别称,则可以判定待匹配名称与标准名称集合中至少一个名称同义而字符不全相同。
需要说明的是,本申请对上述的对照组合数据、称谓词数据的具体存储形式并不做限定,常用的一种方式是存储在对应的数据表中,需要使用时从数据库中读取。
在本申请实施例中,所述对所述待匹配名称进行多语言检测,具体可以包括:确定所述待匹配名称对应的语言;获得所述语言和/或其他语言的拼写变形同义规则和/或拼写变形异义规则;根据所述拼写变形同义规则和/或拼写变形异义规则,对所述待匹配名称进行检测,以判定所述待匹配名称是否与所述标准名称集合中至少一个名称同义而字符不全相同。
多语言检测主要是针对诸如以下这种情况:比如,英文“Pooh”在德文中拼写为“puh”,两者在人名中出现是属于同义。
需要说明的是,在前面进行的各项检测中,可能会使用到用于计算字符串匹配度的算法。
在本申请实施例中,所述根据检测结果,确定所述待匹配名称的匹配结果,具体可以包括:若判定所述待匹配名称与所述标准名称集合中至少一个名称同义而字符不全相同,将所述至少一个名称确定为所述待匹配名称的匹配结果;否则(也即,通过上述检测,未能匹配成功时),通过采用一种或多种相似度算法对所述待匹配名称与所述标准名称集合中的名称进行匹配,确定所述待匹配名称的匹配结果。
在本申请实施例中,所述多种相似度算法可以是基于不同维度的,从而有利于提高匹配结果的可靠性。根据这样的思路,相似度算法具体可以是用于计算文本匹配度的算法(比如,n-gram算法等)、用于计算语音匹配度的算法(比如,Phonex算法等)、用于计算字符串匹配度的算法(比如,Jaro-Winkler算法等)等。
在采用了多种相似度算法的情况下,可以通过对各相似度算法对应的匹配结果的综合衡量,得到综合匹配结果,本申请对具体衡量方式并不做限定,常用的一种方式,是加权相加。
例如,采用n-gram算法,算法输入为待匹配名称包含的各词与其对齐位置的各词,算法输出为对齐的每一对词的文本匹配度,记作F1;
采用Jaro-Winkler算法,算法输入为待匹配名称包含的各词与其对齐位置的各词,算法输出为对齐的每一对词的字符串匹配度,记作F2;
采用Phonex算法,算法输入为待匹配名称包含的各词与其对齐位置的各词,算法输出为对齐的每一对词的语音匹配度,记作F3;
通过对文本匹配度、字符串匹配度和语音匹配度加权相加得到对齐的每一对词的综合匹配度F,如下公式所示:
F=w1*F1+w2*F2+w3*F3,其中,w1+w2+w3=1;
根据各对词的综合匹配度F,通过取平均值得到待匹配名称与标准名称集合中的名称之间的匹配结果,比如,对于表3中的名称对,得到的匹配结果如下表4所示。
表4
上面对初筛后的检测以及匹配过程进行了说明,该过程中可能使用到多种匹配相关的算法,本申请的方案在具体实施时,可以对这些可能使用的算法进行集成,则该过程即是一种集成算法模糊匹配的过程。
在本申请实施例中,在进行集成算法模糊匹配后,还可以进一步地进行一些后置规则过滤,比如,将匹配结果中的匹配度映射为文字描述信息,或者根据具体场景对匹配度进行适当补偿或者消减等。
根据上面的说明,更直观地,本申请实施例还提供了一种实际应用场景下,名称匹配方法中集成算法模糊匹配的一种具体实施方案的流程简图,如图3所示。在图3中,各项检测和各种方式的匹配度计算的执行顺序只是示例,并非对本申请的限定。
在图3中,若通过上述任一项检测对待匹配名称匹配成功,则可以直接输出匹配结果,反之,则可以通过一种或多种方式的匹配度计算(比如,文本匹配度计算、语音匹配度计算、字符串匹配度计算等),确定并输出待匹配名称的匹配结果。
当然,也可以完整地执行各项检测和各种方式的匹配度计算,再综合考虑各项检测结果和各种方式的匹配度计算结果,确定待匹配字符串的匹配结果。
进一步地,本申请实施例还提供了一种实际应用场景下,名称匹配方法的一种具体实施方案的流程简图,如图4所示。在图4中,前置规则判决可以包括:判决待匹配名称是否未包含在无需匹配名单集合中等,扫描名单索引即为上述的标准名称集合中名称的索引。
图3、图4中的步骤在上面都进行了详细说明,在此不赘述。
上面对本申请实施例提供的名称匹配方法进行了说明,基于同样的发明思路,本申请实施例还提供了对应的装置,如图5所示。
图5为本申请实施例提供的对应于图1的一种名称匹配装置的结构示意图,虚线表示可选的模块,所述装置包括:
获得模块501,获得待匹配名称;
确定模块502,确定用于与所述待匹配名称匹配的标准名称集合;
检测模块503,对所述待匹配名称进行检测,以判定所述待匹配名称是否与所述标准名称集合中至少一个名称同义而字符不全相同;
匹配模块504,根据检测结果,确定所述待匹配名称的匹配结果。
可选地,所述确定模块502确定用于与所述待匹配名称匹配的标准名称集合前,获得预定的无需匹配名称集合,确定所述待匹配名称未包含在所述无需匹配名单集合中。
可选地,所述确定模块502确定用于与所述待匹配名称匹配的标准名称集合,具体包括:
所述确定模块502获得可用于与所述待匹配名称匹配的第一名称集合,通过将所述待匹配名称包含的各词与所述第一名称集合中名称包含的各词进行相似性匹配,确定用于与所述待匹配名称匹配的标准名称集合。
可选地,所述确定模块502通过将所述待匹配名称包含的各词与所述第一名称集合中名称包含的各词进行相似性匹配,确定用于与所述待匹配名称匹配的标准名称集合,具体包括:
所述确定模块502获得所述第一名称集合包含的各名称的索引,所述名称的索引为该名称包含的任一词,以及对所述待匹配名称进行分词,获得所述待匹配名称包含的各词,分别将对所述待匹配名称包含的各词,与各所述索引进行相似性匹配,获得由匹配成功的各索引所索引的名称构成的所述第一名称集合的子集,根据各所述子集,确定用于与所述待匹配名称匹配的标准名称集合。
可选地,所述确定模块502分别将对所述待匹配名称包含的各词,与各所述索引进行相似性匹配,具体包括:
所述确定模块502采用字符串匹配算法,分别将对所述待匹配名称包含的各词,与各所述索引进行相似性匹配,所述字符串匹配算法包括以下至少一种:前缀树匹配算法、字典树匹配算法、字符串相似度匹配算法、发音相似匹配算法。
可选地,所述装置还包括:
对齐模块505,在所述检测模块503对所述待匹配名称进行检测前,根据所述标准名称集合中名称包含的各词与所述待匹配名称包含的各词的相似度,对所述标准名称集合中名称包含的各词与所述待匹配名称包含的各词进行对齐处理;
所述检测模块503对所述待匹配名称进行检测,具体包括:
所述检测模块503根据对齐后的所述标准名称集合,对所述待匹配名称进行检测,以判定所述待匹配名称是否与所述标准名称集合中至少一个名称同义而字符不全相同。
可选地,所述检测模块503对所述待匹配名称进行检测,具体包括:
所述检测模块503对所述待匹配名称进行缩写检测、称谓词检测、多语言检测、别称检测中的至少一种,以判定所述待匹配名称是否与所述标准名称集合中至少一个名称同义而字符不全相同。
可选地,所述检测模块503对所述待匹配名称进行缩写检测,具体包括:
所述检测模块获得预定的缩写对照组合数据,每个所述缩写对照组合反映至少一个词与其缩写词的缩写对应关系,根据所述缩写对照组合数据,检测所述待匹配名称包含的词与所述标准名称集合中的名称包含的词是否具有所述缩写对应关系,根据检测结果,判定所述待匹配名称是否与所述标准名称集合中至少一个名称同义而字符不全相同。
可选地,所述检测模块503对所述待匹配名称进行称谓词检测,具体包括:
所述检测模块503获得预定的称谓词数据,根据所述称谓词数据,检测所述待匹配名称是否包含所述称谓词,所述称谓词被认为不影响包含该称谓词的名称之义,根据检测结果,判定所述待匹配名称是否与所述标准名称集合中至少一个名称同义而字符不全相同。
可选地,所述别称包括其对应的名称的昵称、或其对应的名称在不同领域下的同义名称;
所述检测模块503对所述待匹配名称进行别称检测,具体包括:
所述检测模块503对所述待匹配名称进行昵称检测,和/或,对所述待匹配名称进行不同领域下的同义名称检测。
可选地,所述检测模块503对所述待匹配名称进行多语言检测,具体包括:
所述检测模块503确定所述待匹配名称对应的语言,获得所述语言的拼写变形同义规则和/或拼写变形异义规则,根据所述拼写变形同义规则和/或拼写变形异义规则,对所述待匹配名称进行检测,以判定所述待匹配名称是否与所述标准名称集合中至少一个名称同义而字符不全相同。
可选地,所述检测模块503对所述待匹配名称进行别称检测,具体包括:
所述检测模块503获得预定的别称对照组合数据,每个所述缩写对照组合反映至少一个词与其别称的别称对应关系,根据所述别称对照组合数据,检测所述待匹配名称包含的词与所述标准名称集合中的名称包含的词是否具有所述别称对应关系,根据检测结果,判定所述待匹配名称是否与所述标准名称集合中至少一个名称同义而字符不全相同。
可选地,所述匹配模块504根据检测结果,确定所述待匹配名称的匹配结果,具体包括:
所述匹配模块504若所述检测模块503判定所述待匹配名称与所述标准名称集合中至少一个名称同义而字符不全相同,将所述至少一个名称确定为所述待匹配名称的匹配结果,否则,通过采用一种或多种相似度算法对所述待匹配名称与所述标准名称集合中的名称进行匹配,确定所述待匹配名称的匹配结果。
可选地,所述相似度算法包括以下至少一种:用于计算文本匹配度的算法、用于计算语音匹配度的算法、用于计算字符串匹配度的算法。
可选地,所述名称为人名。
本申请实施例提供的装置与方法是一一对应的,因此,装置也具有与其对应的方法类似的有益技术效果,由于上面已经对方法的有益技术效果进行了详细说明,因此,这里不再赘述对应装置的有益技术效果。
另外,在本申请对上述装置与方法的具体应用场景并不做限定,除了背景技术中提到的风险控制领域(比如,反洗钱、用户认证等具体领域)以外,其他任何可能需要用到名称匹配技术的领域,本申请的方案均可能适用。
在20世纪90年代,对于一个技术的改进可以很明显地区分是硬件上的改进(例如,对二极管、晶体管、开关等电路结构的改进)还是软件上的改进(对于方法流程的改进)。然而,随着技术的发展,当今的很多方法流程的改进已经可以视为硬件电路结构的直接改进。设计人员几乎都通过将改进的方法流程编程到硬件电路中来得到相应的硬件电路结构。因此,不能说一个方法流程的改进就不能用硬件实体模块来实现。例如,可编程逻辑器件(Programmable Logic Device,PLD)(例如现场可编程门阵列(Field Programmable GateArray,FPGA))就是这样一种集成电路,其逻辑功能由用户对器件编程来确定。由设计人员自行编程来把一个数字***“集成”在一片PLD上,而不需要请芯片制造厂商来设计和制作专用的集成电路芯片。而且,如今,取代手工地制作集成电路芯片,这种编程也多半改用“逻辑编译器(logic compiler)”软件来实现,它与程序开发撰写时所用的软件编译器相类似,而要编译之前的原始代码也得用特定的编程语言来撰写,此称之为硬件描述语言(Hardware Description Language,HDL),而HDL也并非仅有一种,而是有许多种,如ABEL(Advanced Boolean Expression Language)、AHDL(Altera Hardware DescriptionLanguage)、Confluence、CUPL(Cornell University Programming Language)、HDCal、JHDL(Java Hardware Description Language)、Lava、Lola、MyHDL、PALASM、RHDL(RubyHardware Description Language)等,目前最普遍使用的是VHDL(Very-High-SpeedIntegrated Circuit Hardware Description Language)与Verilog。本领域技术人员也应该清楚,只需要将方法流程用上述几种硬件描述语言稍作逻辑编程并编程到集成电路中,就可以很容易得到实现该逻辑方法流程的硬件电路。
控制器可以按任何适当的方式实现,例如,控制器可以采取例如微处理器或处理器以及存储可由该(微)处理器执行的计算机可读程序代码(例如软件或固件)的计算机可读介质、逻辑门、开关、专用集成电路(Application Specific Integrated Circuit,ASIC)、可编程逻辑控制器和嵌入微控制器的形式,控制器的例子包括但不限于以下微控制器:ARC 625D、Atmel AT91SAM、Microchip PIC18F26K20以及Silicone Labs C8051F320,存储器控制器还可以被实现为存储器的控制逻辑的一部分。本领域技术人员也知道,除了以纯计算机可读程序代码方式实现控制器以外,完全可以通过将方法步骤进行逻辑编程来使得控制器以逻辑门、开关、专用集成电路、可编程逻辑控制器和嵌入微控制器等的形式来实现相同功能。因此这种控制器可以被认为是一种硬件部件,而对其内包括的用于实现各种功能的装置也可以视为硬件部件内的结构。或者甚至,可以将用于实现各种功能的装置视为既可以是实现方法的软件模块又可以是硬件部件内的结构。
上述实施例阐明的***、装置、模块或单元,具体可以由计算机芯片或实体实现,或者由具有某种功能的产品来实现。一种典型的实现设备为计算机。具体的,计算机例如可以为个人计算机、膝上型计算机、蜂窝电话、相机电话、智能电话、个人数字助理、媒体播放器、导航设备、电子邮件设备、游戏控制台、平板计算机、可穿戴设备或者这些设备中的任何设备的组合。
为了描述的方便,描述以上装置时以功能分为各种单元分别描述。当然,在实施本申请时可以把各单元的功能在同一个或多个软件和/或硬件中实现。
本领域内的技术人员应明白,本发明的实施例可提供为方法、***、或计算机程序产品。因此,本发明可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本发明是参照根据本发明实施例的方法、设备(***)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
在一个典型的配置中,计算设备包括一个或多个处理器(CPU)、输入/输出接口、网络接口和内存。
内存可能包括计算机可读介质中的非永久性存储器,随机存取存储器(RAM)和/或非易失性内存等形式,如只读存储器(ROM)或闪存(flash RAM)。内存是计算机可读介质的示例。
计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(PRAM)、静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)、其他类型的随机存取存储器(RAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、快闪记忆体或其他内存技术、只读光盘只读存储器(CD-ROM)、数字多功能光盘(DVD)或其他光学存储、磁盒式磁带,磁带磁磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算机可读介质不包括暂存电脑可读媒体(transitory media),如调制的数据信号和载波。
还需要说明的是,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、商品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、商品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、商品或者设备中还存在另外的相同要素。
本领域技术人员应明白,本申请的实施例可提供为方法、***或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本申请可以在由计算机执行的计算机可执行指令的一般上下文中描述,例如程序模块。一般地,程序模块包括执行特定任务或实现特定抽象数据类型的例程、程序、对象、组件、数据结构等等。也可以在分布式计算环境中实践本申请,在这些分布式计算环境中,由通过通信网络而被连接的远程处理设备来执行任务。在分布式计算环境中,程序模块可以位于包括存储设备在内的本地和远程计算机存储介质中。
本说明书中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于***实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
以上所述仅为本申请的实施例而已,并不用于限制本申请。对于本领域技术人员来说,本申请可以有各种更改和变化。凡在本申请的精神和原理之内所作的任何修改、等同替换、改进等,均应包含在本申请的权利要求范围之内。