用于中文姓名匹配的方法和系统的制作方法
【专利摘要】本发明涉及一种用于中文姓名匹配的方法和系统。接收中文姓名并将其用罗马字母拼写成汉语拼音表示。将所述中文姓名的所述汉语拼音表示与源自多个不同中文字符姓名的一组用罗马字母拼写的中文姓名相匹配。响应于在所述汉语拼音表示与用罗马字母拼写的中文姓名之间找到潜在匹配,检索所述用罗马字母拼写的中文姓名的原始中文脚本。在所接收的中文姓名与所述用罗马字母拼写的中文姓名的所述原始中文脚本之间应用原生脚本比较以获得匹配得分。所述原生脚本比较包括逐字符比较、字符变体查找和/或有关姓名组成未对齐的考虑。将所获得的匹配得分用作过滤器以便减少在将所述汉语拼音表示与所述一组用罗马字母拼写的中文姓名相匹配中生成的错误肯定。
【专利说明】用于中文姓名匹配的方法和系统
【技术领域】
[0001]本发明涉及姓名匹配,更具体地说,涉及原生脚本和跨脚本中文姓名匹配。
【背景技术】
[0002]中文字符(在中文中称为汉字,在日语中称为日本汉字,在朝鲜语中称为朝鲜汉字)用于在多种语言中表示姓名,每种语言可以针对相同的基本姓名使用不同的字符。即使在中文本身中,也存在区域变体。例如,在中国大陆和新加坡,使用简体字符集,而台湾和香港使用繁体字符。
[0003]在广泛采用统一码(Unicode)之前,针对中文字符使用不同的编码系统,并且一个编码系统支持的字符范围很可能不同于另一个编码系统。将来自一个区域的电子文本呈现为可由来自另一个区域的人们读取的版本时,不仅需要转换编码系统,而且还需要更改区域特定的字符。例如,中华人民共和国建国之父的姓名在中国大陆表示为‘丨*泽东”,在台湾表示为才數翻”,在日本表示为才嬌翻”。
[0004]统一码联盟保留大范围的代码点,以便覆盖几乎所有使用中的中文字符。这具有许多优点,但也产生一些新的挑战。一个此类挑战是使用什么区域变体不再明显,因为只要具有适当的字体支持,区域变体便可以以相同的文本显示。上面提及的变体姓名才泽东”、才數翻”、才嬌翻”以及甚至才嬌东”可以全部存在于单个人名数据库中。如果给出任何一个变体作为查询姓名,则姓名匹配技术必须能够匹配所有其它变体。
[0005]现有姓名搜索系统没有这种能力。尽管谷歌搜索引擎(全球最受欢迎的搜索引擎之一)可让用户指定繁体和简体中文作为两个不同的语言选项,但是当以其它语言选项指定返回结果时,它不会自动将采用繁体中文字符的查询转换为其简体字符等效物,也不会自动将采用简体中文字符的查询转换为其繁体字符等效物。百度搜索引擎(它是中国最受欢迎的搜索引擎之一)也没有这种能力。
[0006]上面描述的问题因跨脚本姓名匹配而加重。已经建议和实现各种技术,特别是在跨语言信息检索和机器翻译方面,包括音译、回音译、并行姓名数据库以及机器学习。但是,此类系统通常忽略一个脚本中的姓名可能在另一个脚本中具有多个表示,这或者是因为源姓名具有几种读法(例如,日本汉字姓名),或者是因为源语言在目标语言中具有多种音译系统(例如,拼音、威妥玛-翟理斯拼音和耶鲁拼音实现用罗马字母拼写汉语)。即使当存在这些音译标准时,某个人也可能选择不同于任何标准惯例的形式。
[0007]汉语中的所有中文字符都是单音节的。在中文计数声调中仅有大约1,350个独特音节,或者当不考虑声调时,具有大约410个独特音节。在具有数万个中文字符的情况下,单个音节因此可以由许多不同的字符表示。因此,可以将可采用一系列不同中文字符写出的姓名音译成相同的用罗马字母拼写的形式。换言之,在汉字姓名及其用罗马字母拼写的形式之间具有多对一关系。因此,有利的是具有一种中文姓名匹配系统,该系统能够使中文字符变体和用罗马字母拼写的变体两者匹配,同时明显减少错误肯定的数量,这些错误肯定可能由于中文字符及其用罗马字母拼写的形式之间的多对一关系所致。
【发明内容】
[0008]根据本发明的一个实施例,描述一种用于中文姓名匹配的技术。接收中文姓名并将其用罗马字母拼写成汉语拼音表示。将所述中文姓名的所述汉语拼音表示与源自多个不同中文字符姓名的一组用罗马字母拼写的中文姓名相匹配。响应于在所述汉语拼音表示与用罗马字母拼写的中文姓名之间找到潜在匹配,检索所述用罗马字母拼写的中文姓名的原始中文脚本。在所接收的中文姓名与所述用罗马字母拼写的中文姓名的所述原始中文脚本之间应用原生脚本比较以获得匹配得分。所述原生脚本比较包括逐字符比较、字符变体查找和/或有关姓名组成未对齐的考虑。将所获得的匹配得分用作过滤器以便减少在将所述汉语拼音表示与所述一组用罗马字母拼写的中文姓名相匹配中生成的错误肯定。
[0009]在以下附图和描述中提供了本发明的一个或多个实施例的细节。从说明书和附图以及权利要求,本发明的其它特性和优点将显而易见。
【专利附图】
【附图说明】
[0010]图1示出根据一个实施例的其中可以实现中文姓名匹配的计算机系统(10);
[0011]图2示出根据一个实施例的用于中文姓名匹配的处理器(200);
[0012]图3示出根据一个实施例的图2的中文字符比较步骤212的详细视图;
[0013]图4示出根据一个实施例的其中可以实现中文人名音译的计算机系统(AlO);
[0014]图5示出根据一个实施例的用于中文人名音译的过程(A200);
[0015]图6是根据一个实施例的图5的姓名模式解析步骤A204的更详细视图;
[0016]图7是根据一个实施例的图5的音译步骤A206的更详细视图。
[0017]不同附图中的相同参考符号指示相同元素。
【具体实施方式】
[0018]在此描述的各实施例涉及用于中文姓名匹配的技术,这些技术能够使中文字符变体和用罗马字母拼写的变体相匹配,同时明显减少由中文字符及其用罗马字母拼写的形式之间的多对一关系导致的错误肯定的数量。根据各实施例,首先通过中文姓名音译算法用罗马字母拼写中文姓名,该算法在本申请说明书的附件中描述。直接使用符合标准汉语拼音表示的用罗马字母拼写的姓名进行跨语言姓名匹配,就像已经采用以罗马字母拼写的形式或者已经从其它受支持脚本(例如阿拉伯语、西里尔文等)用罗马字母拼写的姓名。如果查询姓名和返回姓名都是中文字符,则应用原生脚本比较。这包括逐字符比较、字符变体查找以及考虑姓名组成未对齐。将中文姓名匹配用作过滤器,以便减少从用罗马字母拼写的比较生成的错误肯定。
[0019]所属【技术领域】的技术人员知道,本发明的各个方面可以实现为系统、方法或计算机程序产品。因此,本发明的各个方面可以具体实现为以下形式,即:完全的硬件实施方式、完全的软件实施方式(包括固件、驻留软件、微代码等),或硬件和软件方面结合的实施方式,这里可以统称为“电路”、“模块”或“系统”。此外,本发明的各个方面还可以实现为在一个或多个计算机可读介质中的计算机程序产品的形式,该计算机可读介质中包含计算机可读的程序代码。[0020]可以采用一个或多个计算机可读介质的任意组合。计算机可读介质可以是计算机可读信号介质或者计算机可读存储介质。计算机可读存储介质例如可以是一但不限于一电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者上述的任意合适的组合。计算机可读存储介质的更具体的例子(非穷举的列表)包括:具有一个或多个导线的电连接、便携式计算机盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、光纤、便携式紧凑盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本文件中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。
[0021]计算机可读的信号介质可以包括例如在基带中或者作为载波一部分传播的数据信号,其中承载了计算机可读的程序代码。这种传播的数据信号可以采用多种形式,包括一但不限于一电磁信号、光信号或上述的任意合适的组合。计算机可读的信号介质可以是计算机可读存储介质以外的任何计算机介质,该计算机介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。
[0022]计算机可读介质上包含的程序代码可以用任何适当的介质传输,包括一但不限于一无线、有线、光缆、RF等等,或者上述的任意合适的组合。可以以一种或多种程序设计语言的任意组合来编写用于执行本发明的各个方面的操作的计算机程序代码,所述程序设计语言包括面向对象的程序设计语言一诸如Java、Smalltalk、C++等,还包括常规的过程式程序设计语言一诸如“C”语言或类似的程序设计语言。程序代码可以完全地在用户计算机上执行、部分地在用户计算机上执行、作为一个独立的软件包执行、部分在用户计算机上部分在远程计算机上执行、或者完全在远程计算机或服务器上执行。在涉及远程计算机的情形中,远程计算机可以通过任意种类的网络一包括局域网(LAN)或广域网(WAN) —连接到用户计算机,或者,可以连接到外部计算机(例如利用因特网服务提供商来通过因特网连接)。
[0023]下面将参照根据本发明实施例的方法、装置(系统)和计算机程序产品的流程图和/或框图描述本发明的各个方面。应当理解,流程图和/或框图的每个方框以及流程图和/或框图中各方框的组合,都可以由计算机程序指令实现。这些计算机程序指令可以提供给通用计算机、专用计算机或其它可编程数据处理装置的处理器,从而生产出一种机器,使得这些指令在通过计算机或其它可编程数据处理装置的处理器执行时,产生了实现流程图和/或框图中的一个或多个方框中规定的功能/动作的装置。
[0024]也可以把这些计算机程序指令存储在计算机可读介质中,这些指令使得计算机、其它可编程数据处理装置、或其它设备以特定方式工作,从而,存储在计算机可读介质中的指令就产生出包括实现流程图和/或框图中的一个或多个方框中规定的功能/动作的指令的制造品(article of manufacture)0
[0025]也可以把计算机程序指令加载到计算机、其它可编程数据处理装置、或其它设备上,使得在计算机、其它可编程装置或其它设备上执行一系列操作步骤,以产生计算机实现的过程,从而使得在计算机或其它可编程装置上执行的指令提供实现流程图和/或框图中的一个或多个方框中规定的功能/动作的过程。
[0026]现在参考图1,示出中文姓名匹配系统(10)的一个实例的示意图。应该注意,中文姓名匹配系统(10)仅是合适的中文姓名匹配系统的一个实例,并非旨在建议对在此描述的本发明实施例的使用范围或功能的任何限制。还应该注意,尽管在此使用的实例涉及中文姓名匹配,但同样可以针对任何其它基于字符的语言实现基本原理和技术。
[0027]中文姓名匹配系统(10)包括计算机系统12,其可以使用许多其它通用或专用计算系统环境或配置运行,如上所述。计算机系统(12)可以在由计算机系统执行的计算机系统可执行指令(例如程序模块)的一般上下文中描述。计算机系统(12)可以在通过通信网络链接的远程处理设备执行任务的分布式云计算环境中实施。在分布式云计算环境中,程序模块可以位于包括存储设备的本地或远程计算机系统存储介质中。
[0028]如图1中所示,中文姓名匹配系统(10)中的计算机系统(12)以通用计算设备的形式示出。计算机系统(12)的组件可以包括但不限于:一个或多个处理器或处理单元(16)、系统存储器(28),以及连接不同系统组件(包括系统存储器(28)和处理器(16))的总线(18)。
[0029]如下面进一步示出和描述的,存储器(28)可以包括至少一个程序产品,该程序产品具有一组(例如至少一个)程序模块,这些程序模块被配置为执行本发明实施例的功能。具有一组程序模块(42 )的程序/实用工具(40 ),可以存储在存储器(28 )中,这样的程序模块42包括但不限于操作系统、一个或多个应用程序、其它程序模块以及程序数据,这些实例中的每一个或某种组合中可能包括网络环境的实现。程序模块(42)通常执行在此描述的本发明实施例的功能和/或方法。
[0030]计算机系统(12)也可以与一个或多个外部设备(14)(例如键盘、指向设备、显示器(24)等)通信,还可与一个或多个使得用户能与计算机系统(12)交互的设备通信,和/或与使得计算机系统(12)能与一个或多个其它计算设备进行通信的任何设备(例如网卡,调制解调器等)通信。这种通信可以通过输入/输出(I/O)接口(22)进行。并且,计算机系统(12)可以通过网络适配器(20)与一个或多个网络(例如局域网(LAN)、广域网(WAN)和/或公共网络,例如因特网)通信。
[0031]如上所述,可以根据本发明的不同实施例实现多个优点。例如,支持跨脚本姓名匹配;与常规技术相比,可以减少用罗马字母拼写的中文姓名中的错误肯定匹配的数量,这些错误肯定匹配由于汉字姓名及其用罗马字母拼写的形式之间的多对一关系导致;以及可以解决在来自不同中文区域的中文姓名表示中常见的字符变体导致的匹配问题。
[0032]图2示出根据一个实施例的用于执行中文姓名匹配的过程(200)。如可以在图2中看到的,所述过程首先接收中文姓名(步骤202)。接下来,使用基于标准罗马字母拼写体系的算法(在本申请说明书的附件中描述),用罗马字母拼写姓名(步骤204)。通过以下操作执行用罗马字母拼写:将所接收的中文姓名解析成姓氏和名字;将所标识的姓氏和所标识的名字音译成用罗马字母拼写的表示;以及将姓氏和名字的用罗马字母拼写的表示规范化为与标准的用罗马字母拼写的中文取名惯例一致的表示。其中每个步骤的细节在本申请说明书的附件中描述,但一般地说,用罗马字母拼写步骤204的输出是一组表示中文姓名的罗马字符,并且不包括任何特殊字符。
[0033]然后对照一组现有的用罗马字母拼写的姓名来检查中文姓名的用罗马字母拼写的版本,以便检测用罗马字母拼写的形式中是否具有任何匹配(步骤206)。根据获得的匹配得分是否满足可以由用户设置的预定义阈值,返回用罗马字母拼写的姓名匹配结果(可以将它们视为一组“初始匹配”)。例如,ZHANG DECAI应该以高匹配得分与CHANG TETSAI匹配,因为它们是从两个不同罗马字母拼写体系产生的相同的用罗马字母拼写的姓名。Wu和Ng作为姓氏也获得高匹配得分,因为它们是相同的基本姓氏,在两种方言(在汉语和粤语)中具有两种不同的发音,因此是彼此的变体。在某些实施例中,将发音相似的姓名包括在匹配结果中。例如,某些中文方言没有卷舌,并且说这些方言的说话者可能难以区分汉语中的“C” “CH”。因此,ZHANG DECAI和ZHANG DECHAI听起来非常相似,并且也会产生相对高的得分。
[0034]如果在步骤206没有找到满足阈值的匹配,则过程(200)结束。如果具有满足阈值的匹配,则判定查询和匹配的姓名两者是否包含相同的原始脚本(即,不用罗马字母拼写)(步骤208)。如果姓名均不包含相同的原始脚本,则保留用罗马字母拼写的姓名匹配结果(步骤210),并且所述过程结束。
[0035]如果在步骤208判定查询和匹配的姓名两者包含相同的原始脚本(S卩,中文脚本),则执行原生中文脚本比较(步骤212),该步骤在下面参考图3进一步详细描述。
[0036]步骤212的结果是匹配得分,其指示中文字符的匹配程度。即,它实际上充当过滤器,该过滤器从步骤206的初始的用罗马字母拼写的匹配中消除错误肯定匹配。一旦完成中文字符比较,则计算中文和用罗马字母拼写的匹配的综合匹配得分,其指示匹配的可能性,并且将该得分与阈值相比较(步骤214)。用户可以针对匹配得分设置最小阈值,低于该阈值的姓名被视为不匹配。如果匹配得分低于该阈值,则过程(200)结束。否则,返回中文匹配得分(步骤216)。这将结束过程(200)。
[0037]图3示出原生中文脚本比较步骤212的更详细视图。当在步骤206检测的所接收的中文姓名和匹配的用罗马字母拼写的姓名具有相同脚本(如在图2的步骤210确定的那样)时,执行该过程,以便进一步改进比较结果。如可以在图3中看到的,过程(212)首先将所接收的中文字符与通过用罗马字母拼写匹配步骤找到的中文字符相比较(步骤302),以便查看是否具有精确匹配。如果找到精确匹配,则为对指定匹配得分1.0,并且所述过程结束。
[0038]如果没有找到精确匹配,则所述过程通过使用非罗马(中文)变体表进行逐字符比较,针对变体匹配测试两个字符(步骤304)。将查询姓名中的每个字符与匹配姓名中的每个字符相比较。为匹配的变体赋予指示匹配的接近程度的得分。在一个实施例中,中文变体表包含相关中文字符对和关联的匹配得分。变体对例如包括简体-繁体变体以及在统一码数据中定义的其它变体。在某些实施例中,可以定制中文变体表,即,它是用户可配置的表。中文变体表针对每个变体对包含一个得分,该得分用于指示字符对的密切相关程度。通常为简体和繁体字符对提供高得分。应该注意,在其它基于字符的语言中,可以实现相似的变体表,以便将一组字符映射到另一组具有关联的接近程度得分的变体(例如,采用日语)。
[0039]在一个实施例中,中文变体表可以包含以下变体对和得分:
[0040]0.95財:财[繁体-简体]
[0041]0.80才:财[专用语义变体]
[0042]如果找到变体匹配,则计算变体得分并且将其指定给匹配得分。例如,对于繁体姓名-简体姓名,这将产生以下匹配得分:
[0043]李得財-李得财得分.98
[0044]对于语义变体中的姓名,将获得以下匹配得分:[0045]李得才-李得財得分.93
[0046]如果没有找到变体匹配,则获得为O的匹配得分。不进行进一步的比较,并且不与步骤212的匹配结果一起返回姓名。
[0047]如果查询姓名包含多个字符,则针对姓名的每个字符执行步骤304和306,直到确定已经比较所有的字符(步骤308)。最后,判定变体匹配得分是否足够以便在初始搜索匹配结果中返回(步骤310)。如果匹配得分足够,则使用它计算综合匹配得分,如上面针对步骤214描述的那样。
[0048]应该注意,如果具有多个字符,则可以将个体匹配得分相加并平均,以便针对整个字符组产生匹配得分,从而产生最终的中文姓名匹配得分。还应该注意,这仅是一个实例,并且所属【技术领域】的普通技术人员可以使用许多方式针对字符组产生匹配得分。在某些实施例中,如果所有字符都匹配但采用不同顺序,则向姓名匹配得分应用罚分。
[0049]因此,如前所述,可以将在步骤214计算的中文姓名匹配得分用作“过滤器”,以便丢弃从初始的用罗马字母拼写的姓名匹配中找到的匹配。这有助于缓解由中文字符及其用罗马字母拼写的形式之间的多对一关系导致的“错误肯定”的问题。
[0050]附图中的流程图和框图显示了根据本发明的不同实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段或代码的一部分,所述模块、程序段或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标注的功能可以以不同于附图中所标注的顺序发生。例如,两个连续的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或动作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
[0051]在此使用的术语只是为了描述特定的实施例并且并非旨在作为本发明的限制。如在此使用的,单数形式“一”、“一个”和“该”旨在同样包括复数形式,除非上下文明确地另有所指。还将理解,当在此说明书中使用时,术语“包括”和/或“包含”指定了声明的特性、整数、步骤、操作、元素和/或组件的存在,但是并不排除一个或多个其它特性、整数、步骤、操作、元素、组件和/或其组合的存在或增加。
[0052]下面权利要求中的对应结构、材料、操作以及所有功能性限定的装置或步骤等同替换,旨在包括任何用于与在权利要求中具体指出的其它元件相组合地执行该功能的结构、材料或操作。出于示例和说明目的给出了对本发明的描述,但所述描述并非旨在是穷举的或是将本发明限于所公开的形式。在不偏离本发明的范围和精神的情况下,对于所属【技术领域】的普通技术人员来说许多修改和变化都将是显而易见的。实施例的选择和描述是为了最佳地解释本发明的原理和实际应用,并且当适合于所构想的特定使用时,使得所属【技术领域】的其它普通技术人员能够理解本发明的具有各种修改的各种实施例。
[0053]附件
[0054]【具体实施方式】
[0055]在本附件中描述的各实施例涉及使用具有标准化音译模块的自动中文音译器进行中文音译,该音译器遵守中国官方指南并且准确地将中文姓名音译成用罗马字母拼写的形式,其中正确地解析和表示姓氏(SN)和名字(GN)。更具体地说,涉及帮助姓名匹配系统并且防止在音译过程中丢失正确的SN和GN标识,所述自动中文音译器执行三个基本处理步骤:(I)姓名解析,(2)姓名音译,以及(3)姓名规范化。在音译姓名之前,中文音译器将原始的中文姓名解析成SN和GN字段。然后它利用ICU汉语-拉丁语模块音译SN和GN字段。因为ICU汉语-拉丁语模块未针对音译中文姓名进行优化,所以最后步骤将ICU输出规范化为表示,这些表示更好地反映用罗马字母拼写的实际中文取名惯例。
[0056]现在参考图4,示出中文姓名音译器(AlO)的一个实例的示意图。应该注意,中文姓名音译器(AlO)仅是合适的中文姓名音译器的一个实例,并非旨在建议对在此描述的本发明实施例的使用范围或功能的任何限制。
[0057]中文姓名音译器(AlO)包括计算机系统A12,其可以使用许多其它通用或专用计算系统环境或配置运行,如上所述。计算机系统(A12)可以在由计算机系统执行的计算机系统可执行指令(例如程序模块)的一般上下文中描述。计算机系统(A12)可以在通过通信网络链接的远程处理设备执行任务的分布式云计算环境中实施。在分布式云计算环境中,程序模块可以位于包括存储设备的本地或远程计算机系统存储介质中。
[0058]如图4中所示,中文姓名音译器(AlO)中的计算机系统(A12)以通用计算设备的形式示出。计算机系统(A12)的组件可以包括但不限于:一个或多个处理器或处理单元(A16)、系统存储器(A28),以及连接不同系统组件(包括系统存储器(A28)和处理器(A16))的总线(A18)。
[0059]如下面进一步示出和描述的,存储器(A28)可以包括至少一个程序产品,该程序产品具有一组(例如至少一个)程序模块,这些程序模块被配置为执行本发明实施例的功能。具有一组程序模块(A42a-c)的程序/实用工具(A40),可以存储在存储器(A28)中,这样的程序模块A42a-c包括但不限于操作系统、一个或多个应用程序、其它程序模块以及程序数据,这些实例中的每一个或某种组合中可能包括网络环境的实现。程序模块(A42a-c)通常执行在此描述的本发明实施例中的功能和/或方法。在一个实施例中,程序模块(A42a-c)包括姓名解析模块(A42a)、音译模块(A42b)和规范化模块(A42c),如下面进一步详细描述的那样。
[0060]计算机系统(A12)也可以与一个或多个外部设备(A14)(例如键盘、指向设备、显示器(A24)等)通信,还可与一个或多个使得用户能与计算机系统(A12)交互的设备通信,和/或与使得计算机系统(A12)能与一个或多个其它计算设备进行通信的任何设备(例如网卡,调制解调器等)通信。此类通信可以经由输入/输出(I/O)接口(A22)进行。并且,计算机系统(A12)可以通过网络适配器(A20)与一个或多个网络(例如局域网(LAN)、广域网(WAN)和/或公共网络,例如因特网)通信。
[0061]图5示出根据一个实施例的用于中文人名音译的过程(A200),其可以由图4中所示的中文姓名音译器(AlO)执行。如可以在图5中看到的,所述过程首先例如通过接收用户输入或者从电子文档读取字符,接收要音译的中文人名(步骤A202 )。
[0062]接下来,姓名解析模块(A42a)根据中文姓名解析算法执行姓名模式解析(步骤A204)。在图6中进一步详细示出姓名模式解析。中文姓名解析算法基于常见姓氏集合,并且使用大量合法的可能SN和GN模式。尽管中文姓氏中的字符数量范围可以从一个到四个,但最常见的姓氏具有单个字符,并且仅有小百分比的常用双字符姓氏。中文姓氏字段还可以包含一个或两个姓氏。中文名字可以使用一个或两个字符。在所示实施例中,姓名模式解析按如下方式进行:
[0063]可能的中文全名的长度可以短至两个字符或者长至六个字符。因此,首先检查姓名是否长于六个字符(步骤A302 )。如果姓名长于六个字符,则不解析中文姓名,并且所述过程返回到图5的步骤A206,在该步骤音译姓名,如下面进一步详细描述的那样。如果中文姓名短于六个字符,则姓名模式解析继续。应该注意,在某些实施例中,对不完整的中文姓名(即,仅包含单个字符的那些姓名)仍进行解析过程,以便判定字符是否更可能是SN或GN。
[0064]对于姓名解析,假设中文姓名字符采用“SN GN”顺序。采用中文字符的本国中文姓名几乎普遍以SN GN顺序表示。因此,中文姓名字符的解析通常按照从左到右的顺序进行,以便首先标识SN,然后标识GN。在其中该顺序不适用的罕见情况下,音译姓名而不进行解析,然后通过姓名匹配系统内部的姓名解析算法解析以罗马字母拼写的形式。
[0065]根据中文全名的长度而应用各种解析模式。例如,具有三个到五个字符的姓名可以具有多个可能模式。对多个模式进行排序,以便首先为双字符姓氏提供优先级,然后为双字符名字提供优先级。因此,姓名模式解析按如下方式继续。首先,使用可能姓氏集合,针对一个或多个双字符姓氏测试姓名(步骤A304)。接下来,针对一个或多个单字符姓氏评估未在步骤A304标识为双字符姓氏的任何剩余字符(步骤A306)。在该步骤之后,将不属于姓氏的任何剩余中文字符视为名字(步骤A308)。这将结束姓名模式解析步骤,并且所述过程返回到图5的步骤A206,在该步骤音译所标识的GN (多个)和SN (多个),如下面描述的那样。
[0066]以下实例示出图6的姓名解析算法的一些结果。
[0067]实例1:前仟中国政治家江泽民
[0068]“江”是单字符姓氏。“泽”或“民”都不是姓氏,因此被视为GN字符。SN=[江]GN=[泽民]。
[0069]实例2:王李卓華
[0070]“王”和“李”都是单字符姓氏。SN=[王][李]GN=[卓華]
[0071]实例3:欧阳讲修
[0072]“欧阳”是双字符姓氏。“进”和“修”不是姓氏,因此变成双字符名字。SN=[欧阳]GN=[进修]
[0073]实例4:端木李
[0074]“端木”是双字符姓氏。“李”是单字符姓氏。但是,因为“李”在最后位置,所以将其视为名字。SN=[端木]GN=[李]
[0075]实例5:欧阳诸葛弘前
[0076]“欧阳”和“诸葛”是双字符姓氏。SN=[欧阳][诸葛]GN=[弘茹]
[0077]完成姓名模式解析之后,所述过程继续执行音译(步骤A206)。在图7中进一步详细示出该步骤。如可以在图7中看到的,接收在步骤A204标识的任何SN (多个MPGN (多个),以及无法解析成SN或GN的任何其它字符(步骤A402)。如上所述,在一个实施例中,所述过程利用ICU汉语-拉丁语模块音译姓名。无论姓名模式解析是否成功,都音译姓名。已解析姓名和未解析姓名的不同之处在于可以在音译期间保留SN和GN结构,因此促进姓名匹配。[0078]然后选择字符(步骤A404 ),并且判定字符是否是上下文敏感字符(步骤A406 )。例如,在某些罕见情况下,中文字符的发音对其所在的姓名字段敏感。如果在步骤A406判定字符是上下文敏感的,则将字符设置为绕过ICU汉语-拉丁语模块并且由专用例外规则处理(步骤A408)。例如,姓氏字段中的“仇”将通过上下文敏感规则音译成“QIU”,而不是由ICU汉语-拉丁语模块翻译为“CH0U”。汉语-拉丁语模块尚未支持的字符由新音译规则处理(如果可以确定字符的发音),或者为这些字符指定专用字符串,该字符串指示应该在姓名匹配系统内部处理的未处理音译例外。
[0079]如果在步骤A406判定字符不是上下文敏感的,则使用ICU汉语-拉丁语模块音译字符(步骤A410)。在步骤A410音译字符之后(或者在步骤A408应用例外规则之后),所述过程检查是否具有更多要音译的字符(步骤A412)。如果具有更多的字符,则所述过程返回到步骤A404并且选择另一个字符,如上所述。当没有更多要音译的字符时,所述过程返回到图5的步骤A208,如下面描述的那样。
[0080]音译完成之后,所述过程执行音译后的姓名的规范化(步骤A208)。如所属【技术领域】的普通技术人员公知的,汉语-拉丁语模块支持扩展的拉丁字符集并且使用变音符号(diacritic)指示声调。在规范化步骤A208中,删除此类声调标记。删除或替换在解析和音译阶段中添加的符号,以便最终输出符合使用音译模块(A42b)的应用所规定的格式。最后,输出中文姓名的用罗马字母拼写的版本(步骤A210),这标志过程(A200)的结束。应该注意,尽管通过实例并且参考中文姓名描述了上面的技术,但所属【技术领域】的普通技术人员可以修改这些技术,例如可以将它们应用于除中文以外的语言。
【权利要求】
1.一种用于中文姓名匹配的计算机实现的方法,包括: 由处理器接收中文姓名; 由所述处理器将所接收的中文姓名用罗马字母拼写成汉语拼音表示; 由所述处理器将所述中文姓名的所述汉语拼音表示与一组用罗马字母拼写的中文姓名相匹配,其中所述用罗马字母拼写的中文姓名源自多个不同的中文字符姓名; 响应于在所述汉语拼音表示与用罗马字母拼写的中文姓名之间找到潜在匹配,由所述处理器检索所述用罗马字母拼写的中文姓名的原始中文脚本;以及 由所述处理器在所接收的中文姓名与所述用罗马字母拼写的中文姓名的所述原始中文脚本之间应用原生脚本比较作为过滤器,以便减少在将所述中文姓名的所述汉语拼音表示与所述一组用罗马字母拼写的中文姓名相匹配中生成的错误肯定。
2.根据权利要求1的方法,其中所述原生脚本比较包括以下项中的一个或多个:逐字符比较、字符变体查找以及有关姓名组成未对齐的考虑。
3.根据权利要求1的方法,其中所述原生脚本比较产生匹配得分,其中将所述匹配得分用作过滤器以便减少在将所述中文姓名的所述汉语拼音表示与所述一组用罗马字母拼写的中文姓名相匹配中生成的错误肯定。
4.根据权利要求1的方法,其中用罗马字母拼写所述中文姓名包括: 将所接收的中文姓名解析成姓氏和名字; 将所标识的姓氏和所标识的名字音译成用罗马字母拼写的表示;以及将所述姓氏和所述名字的所述用罗马字母拼写的表示规范化为与标准的用罗马字母拼写的中文取名惯例一致的表示。
5.根据权利要求1的方法,其中仅当所接收的中文姓名和所述用罗马字母拼写的中文姓名的所述原始中文脚本是相同脚本时才执行应用所述原生脚本比较。
6.根据权利要求1的方法,其中在中文变体表中执行字符变体查找,所述中文变体表包含多个字符对和用于每对字符的指示该对字符的密切相关程度的得分。
7.根据权利要求1的方法,还包括: 基于有关姓名组成未对齐的考虑而调整所述匹配得分。
8.一种用于中文姓名匹配的计算机系统,所述系统包括用于实现权利要求1-7的任何方法的任何步骤的装置。
9.一种用于中文姓名匹配的系统,包括: 处理器; 包含指令的存储器,所述指令可由所述处理器执行以便导致所述处理器执行以下操作: 由所述处理器接收中文姓名; 由所述处理器将所接收的中文姓名用罗马字母拼写成汉语拼音表示; 由所述处理器将所述中文姓名的所述汉语拼音表示与一组用罗马字母拼写的中文姓名相匹配,其中所述用罗马字母拼写的中文姓名源自多个不同的中文字符姓名; 响应于在所述汉语拼音表示与用罗马字母拼写的中文姓名之间找到潜在匹配,由所述处理器检索所述用罗马字母拼写的中文姓名的原始中文脚本;以及 由所述处理器在所接收的中文姓名与所述用罗马字母拼写的中文姓名的所述原始中文脚本之间应用原生脚本比较作为过滤器,以便减少在将所述中文姓名的所述汉语拼音表示与所述一组用罗马字母拼写的中文姓名相匹配中生成的错误肯定。
10.根据权利要求9的系统,其中所述原生脚本比较包括以下项中的一个或多个:逐字符比较、字符变体查找以及有关姓名组成未对齐的考虑。
11.根据权利要求9的系统,其中所述原生脚本比较产生匹配得分,其中将所述匹配得分用作过滤器以便减少在将所述中文姓名的所述汉语拼音表示与所述一组用罗马字母拼写的中文姓名相匹配中生成的错误肯定。
12.根据权利要求9的系统,其中用罗马字母拼写所述中文姓名包括: 将所接收的中文姓名解析成姓氏和名字; 将所标识的姓氏和所标识的名字音译成用罗马字母拼写的表示;以及 将所述姓氏和所述名字的所述用罗马字母拼写的表示规范化为与标准的用罗马字母拼写的中文取名惯例一致的表示。
13.根据权利要求9的系统,其中仅当所接收的中文姓名和所述用罗马字母拼写的中文姓名的所述原始中文脚本是相同脚本时才执行应用所述原生脚本比较。
14.根据权利要求9的系统,其中在中文变体表中执行字符变体查找,所述中文变体表包含多个字符对和用于每对字符的指示该对字符的密切相关程度的得分。
15.根据权利要求9的系统,还包括: 基于有关姓名组成未对齐的考虑而调整所述匹配得分。
【文档编号】G06F17/30GK104008123SQ201410060194
【公开日】2014年8月27日 申请日期:2014年2月21日 优先权日:2013年2月26日
【发明者】黄书东, N·C·金 申请人:国际商业机器公司