CN101939741A - Cjk姓名检测 - Google Patents
Cjk姓名检测 Download PDFInfo
- Publication number
- CN101939741A CN101939741A CN2007801022966A CN200780102296A CN101939741A CN 101939741 A CN101939741 A CN 101939741A CN 2007801022966 A CN2007801022966 A CN 2007801022966A CN 200780102296 A CN200780102296 A CN 200780102296A CN 101939741 A CN101939741 A CN 101939741A
- Authority
- CN
- China
- Prior art keywords
- name
- note
- gram
- corpus
- identify
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F40/00—Handling natural language data
- G06F40/20—Natural language analysis
- G06F40/279—Recognition of textual entities
- G06F40/289—Phrasal analysis, e.g. finite state techniques or chunking
- G06F40/295—Named entity recognition
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Health & Medical Sciences (AREA)
- Artificial Intelligence (AREA)
- Audiology, Speech & Language Pathology (AREA)
- Computational Linguistics (AREA)
- General Health & Medical Sciences (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Machine Translation (AREA)
- Document Processing Apparatus (AREA)
Abstract
提供了涉及姓名检测的方面。方法包括使用姓氏集合和包括n-gram集合的注释的语料库来生成原始姓名检测模型,每一个n-gram具有相应的出现概率。该方法包括将原始姓名检测模型应用于半结构化数据集合以形成对标识姓名的n-gram和不标识姓名的n-gram进行标识的注释的半结构化数据,以及将原始姓名检测模型应用于大型未注释的语料库以形成对标识姓名的大型未注释的语料库的n-gram和不标识姓名的n-gram进行标识的大型注释的语料库数据。该方法包括生成姓名检测模型,包括使用标识姓名的注释的半结构化数据和标识姓名的大型注释的语料库数据来导出姓名模型、使用不标识姓名的半结构化数据来导出非姓名模型以及使用大型注释的语料库来导出语言模型。
Description
技术领域
本说明书涉及姓名检测,具体地涉及用于中文、日语以及韩语(“CJK”)的姓名检测。
背景技术
典型地在例如自动语音识别(ASR)、机器翻译(MT)、光学字符识别(OCR)、句子解析、非罗马字符输入法编辑器(IME)以及web搜索应用的自然语言处理中使用姓名检测。
可以使用朴素贝叶斯分类方法来基于“X”相对于其上下文(context)(例如,在“X”之前或在“X”之后出现的字符)标识(identify)姓名的概率与“X”相对于其上下文不标识姓名的概率的比率,检测字符序列“X”是否标识姓名。使用语言模型来计算这些条件概率。典型的统计语言模型是词或字符序列相对于其历史(例如,在数据集合中先前词或字符序列的出现)的概率测量。具体地,使用基于马尔可夫假设的常规n-gram语言模型来预测词或字符序列。
n-gram是n个连续符号—例如词或字符—的序列。n-gram具有级(order),其为在n-gram中的符号的数量。例如,1-gram(或者单gram)包括一个符号;2-gram(或者二gram)包括两个符号。
给定n-gram可以根据该n-gram的不同部分来描述。n-gram可以被描述为上下文(context)和未来符号(context,c),其中context(上下文)具有长度n-1并且c表示未来符号。例如,3-gram“x y z”可以按照n-gram上下文和未来符号来描述。n-gram上下文包括在n-gram的最末符号之前的n-gram的所有符号。在给出的示例中,“x y”为上下文。在上下文中的最左部符号被称为左部符号。未来符号为n-gram的最末符号,其在该示例中为“z”。n-gram还可以关于右部上下文和回退上下文来描述。右部上下文包括在n-gram的第一符号之后的n-gram的所有符号,被表示为(n-1)-gram。在上面的示例中,“yz”为右部上下文。此外,回退上下文为n-gram的上下文除去上下文中的最左部符号。在上面的示例中,“y”为回退上下文。
其中该逼近基于在预测字符串中的下一符号时只有最近的(n-1)个符号是相关的马尔可夫假设,并且用于P的“^”标记指示其为概率函数的逼近。
在CJK语言中,句子没有词界。结果,在检测人名之前需要自动分割句子。因此,分割错误将被传导到姓名检测。
CJK姓名具有可以从大量统计数据中获取的语形规律。例如,300个常见中国姓氏覆盖99%或更多的人口。女性姓名常常包含诸如“娜、红、冰、丽”(na,hong,bing,li)的字符。通常,常见名字独立于姓氏。例如,如果存在有关姓氏“张”和名字“娜”的组合的统计数据,则可以使用标识另一个姓氏“李”的统计数据和标识名字“娜”的统计数据来预测标识姓名的姓氏“李”和名字“娜”的组合。此外,中文中的一些词可以为人名或固定词,例如黎明可以是中国著名歌手的姓名或意为拂晓的常见词。对这样的姓名的检测在很大程度上取决于上下文。
另外,通常使用2-gram(二gram)或3-gram(三gram)来标识CJK姓名。假设从左到右读取CJK文本的横向惯例,上下文中的最左部字符为姓氏。右部上下文为名字。例如,如果“x y z”为CJK姓名,则“x”为姓氏并且“y z”为名字。作为进一步的示例,如果“x y”为CJK姓名,则“x”为姓氏并且“y”为名字。
发明内容
提供了对于检测由例如中文字符的表意文字组成的姓名尤其有用的用于姓名检测的系统、方法和计算机程序产品。总的来说,在一个方面中,提供了一种方法。该方法包括使用姓氏集合和包括n-gram集合的注释的语料库来生成原始姓名检测模型,每一个n-gram具有相应的在注释的语料库中作为姓名出现的概率。该方法还包括将原始姓名检测模型应用于半结构化数据集合以形成注释的半结构化数据,所述注释的半结构化数据对标识姓名的n-gram和不标识姓名的n-gram进行标识(identify)。该方法还包括将原始姓名检测模型应用于大型未注释的语料库以形成大型注释的语料库数据,所述大型注释的语料库数据对标识姓名的大型未注释的语料库的n-gram和不标识姓名的n-gram进行标识。该方法还包括生成姓名检测模型,包括使用标识姓名的注释的半结构化数据和标识姓名的大型注释的语料库数据来导出姓名模型、使用不标识姓名的半结构化数据来导出非姓名模型以及使用大型注释的语料库来导出语言模型。本方面的其它实施例包括系统和计算机程序产品。
本方面的实施方式可以包括以下特征的一个或多个。该方面可以进一步包括将姓名检测模型应用于半结构化数据集合以形成注释的半结构化数据,所述注释的半结构化数据对标识姓名的n-gram和不标识姓名的n-gram进行标识,将姓名检测模型应用于大型未注释的语料库以形成对标识姓名的大型未注释的语料库的n-gram和不标识姓名的n-gram进行标识的大型注释的语料库数据,以及生成精化的姓名检测模型。生成精化的姓名检测模型可以包括使用标识姓名的注释的半结构化数据和标识姓名的大型注释的语料库数据来导出精化的姓名模型、使用不标识姓名的半结构化数据来导出精化的非姓名模型,以及使用大型注释的语料库来导出精化的语言模型。
姓名模型可以包括来自标识姓名的注释的半结构化数据和标识姓名的大型注释的语料库的n-gram集合,其中每一个n-gram包括作为左部字符的姓氏和作为右部上下文的名字,并且每一个n-gram具有相应的标识姓名的概率。非姓名模型可以包括来自不标识姓名的注释的半结构化数据的n-gram集合,其中每一个n-gram包括作为左部字符的姓氏和作为右部上下文的名字,并且每一个n-gram具有相应的不标识姓名的概率。原始姓名模型可以包括来自注释的语料库的n-gram集合,其中每一个n-gram包括为来自姓氏集合的姓氏的左部字符,并且每一个n-gram具有相应的根据姓名在注释的语料库中的相对频率标识姓名的概率。可以使用外国姓氏集合来生成原始姓名模型。
姓氏集合可以包括多个稀少姓氏,以及替代多个稀少姓氏中的特定稀少姓氏的计算出的概率,原始姓名检测模型使用所有稀少姓氏的单一概率来标识每一个n-gram标识姓名的概率,每一个n-gram包括为稀少姓氏的左部字符。姓氏集合可以包括多个外国姓氏。
总的来说,在一个方面中,提供了一种方法。该方法包括接收输入字符串,以及将姓名检测模型应用于具有多个字符的输入字符串。应用姓名检测模型包括标识多个字符的最可能的分割,其中多个字符不包括一个或多个姓名,将多个字符中的一个或多个字符序列检测为潜在标识一个或多个姓名,标识多个字符的分割,其中多个字符包括一个或多个潜在姓名,以及在包括潜在的一个或多个姓名的分割的可能性大于不包括一个或多个姓名的最可能的分割时,将多个字符分割为包括一个或多个姓名。本方面的其它实施例包括系统和计算机程序产品。
本方面的实施方式包括以下特征的一个或多个。本方面可以进一步包括在多个字符被分割为包括一个或多个姓名时检测一个或多个姓名。本方面可以进一步包括接收包括多个字符的字符串以及计算字符串的特定序列标识姓名的概率,所述姓名包括姓氏和名字,包括:在该特定序列在语料库中的频率小于阈值时,作为该序列表示名字的部分与任何姓氏一起出现的相对频率和该序列表示姓氏的部分的相对频率的函数来确定该特定序列标识姓名的概率。
本方面可以进一步包括接收用户输入数据,以及将原始姓名检测模型应用于用户输入数据以形成注释的用户输入数据,所述注释的用户输入数据对标识姓名的n-gram和不标识姓名的n-gram进行标识。生成姓名检测模型可以进一步包括使用标识姓名的注释的用户输入数据来导出姓名模型、使用不标识姓名的注释的用户输入数据来导出非姓名模型,以及使用注释的用户输入数据来导出语言模型。
可以将在本说明书中描述的主题的特定实施例实施为实现以下优势中的一个或多个。可以在将输入文本预分割成词、防止导致姓名检测错误的词分割错误的情况下或在没有上述的情况下执行CJK姓名检测。训练姓名检测模型不需要大量的人类注释的数据。可以将一些训练数据应用于半结构化数据(例如,以xml文件形式的下载的描述)。具体地,可以使用大量未注释的数据、输入法编辑器(IME)用户输入、IME用户词典、网页、搜索查询日志、电子邮件、博客、即时消息(IM)脚本和新闻文章来训练姓名检测模型。对该数据的使用保证在姓名检测时的高查准率(precision)和高查全率(recall)。还可以将姓名检测模型用来检测带有稀少姓氏和外国名字的姓名。另外,CJK姓名检测包括迭代训练(iterative training)来进一步精化姓名检测模型以检测添加到先前姓名检测模型的姓名。
在下面的附图和描述中阐述了在本说明书中描述的主题的一个或多个实施例的细节。主题的其它特征、方面和优势从描述、附图和权利要求将变得显而易见。
附图说明
图1A-1B示出了示例中文文本。
图2是图示了原始姓名检测模型的示例生成的框图。
图3是图示了姓名检测模型的示例生成的框图。
图4是图示了示例姓名检测模型的组件的框图。
图5是图示了用于观察到的中文字符序列的示例隐马尔可夫模型的框图。
图6是示出了用于检测姓名的示例过程的流程图。
图7是用于CJK姓名检测的示例系统。
各附图中相同的参考数字和标记指示相同的元素。
具体实施方式
用于检测姓名的公式
中文中的一些词可以为人名或固定词,例如黎明可以是中国著名歌手的姓名或意为拂晓的常见词。例如,图1A示出了包括意为拂晓的字符序列黎明100的中文文本。作为另一个示例,图1B示出了包括作为中国著名歌手的姓名的字符序列黎明102的中文文本。可以将这些字符序列分类为标识姓名或不标识姓名。
具体地,将n-gram分类为标识姓名或不标识姓名。可以使用贝叶斯规则将给定n-gram w分类为标识姓名(NAME)或不标识姓名(NOTNAME)。贝叶斯规则规定可以将给定n-gram w在给定上下文的情况下标识姓名的概率定义为:
类似地,可以将给定n-gram不标识姓名的概率定义为:
此外,可以将比率定义为:
在一个实施方式中,如果所产生的比值大于1,则将n-gram分类为标识姓名。换句话说,n-gram w标识姓名的成本加权可能性大于n-gram不标识姓名的成本加权可能性。否则,将n-gram分类为不标识姓名。L表示特定损失函数。在一些实施方式中,损失函数为常量,使得可以将等式简化为:
其中c为常量。如在下面关于图2-4进一步详细描述的,可以将联合概率P(w=NAME,context)和P(w=NOTNAME,context)作为来自姓名检测模型的输出提供。
如最初的概述,姓名检测模型包括姓名模型、非姓名模型以及语言模型。使用姓氏的预先定义的集合和注释的语料库来生成原始姓名模型以标识注释的语料库中的n-gram是否标识姓名。将原始姓名模型应用于半结构化数据和大量未注释的数据以生成姓名检测模型。
具体地,姓名检测模型从P(w=NAME,context)和P(w=NOTNAME,context)导出概率估计。特别地,可以将联合概率P(w=NAME,context)重写为:
Pname(W,context)=Pname(prefix)Pname(W|prefix)Pname(suffix|W,prefix).
可以将Pname(W,context)进一步近似为:
表达式[1]
Pname(prefix)Pname(family_name,given_name|prefix)Pname(suffix|family_name,given_name)
另外,可以将联合概率P(w=NOTNAME,context)类似地近似为:
表达式[2]
Pnotname(prefix)Pnotname(family_name,given_name|prefix)Pnotname(suffix|family_name,given_name)
原始姓名检测模型
图2是图示了原始姓名检测模型206的示例生成的框图200。为方便起见,将关于执行生成的系统描述原始姓名检测模型206的生成。
在CJK文本中,只有在给定n-gram中的左部字符为姓氏时,该n-gram才可以标识姓名。右部上下文为名字。因此,将姓氏的预先定义的集合204用来生成原始姓名检测模型206。系统可以使用小量注释的训练数据来生成原始姓名检测模型206。系统通过使用注释的语料库(例如,小型注释的语料库202)和预先定义的姓氏集合204来训练原始姓名模型206。
预先定义的姓氏204包括一种或多种CJK语言的姓氏集合。例如,对于中文姓名检测模型,预先定义的姓氏204可以包括300个常见中国姓氏的集合,其统计地覆盖99%或更多的给定人口中的可能中国姓氏。小型注释的语料库202包括小的文本数据集合,例如web文档或搜索查询。小型注释的语料库202的文本数据包括已被标识(例如,注释)为标识姓名或不标识姓名的n-gram。例如,可以由一个或多个个体人工标识姓名。
在生成后,原始姓名检测模型206包括作为在小型注释的语料库202中、带有在姓氏集合204中找到的左部字符、标识姓名的n-gram和不标识姓名的n-gram的相对频率的函数计算的概率估计。因此,可以将原始姓名模型206用来计算输入n-gram标识姓名或不标识姓名的概率(例如,以基于上述比率来检测姓名)。然而,这受在大型的数据集合方面可能是不准确的小型注释的语料库的概率的限制。结果,如在下面关于图3进一步详细论述的,将原始姓名检测模型206进一步应用于训练数据以生成姓名检测模型。
训练数据
图3是图示了姓名检测模型314的示例生成的框图300。将注释过程316(例如,由原始姓名检测模型206执行)应用于未注释的数据以生成扩展的姓名检测模型。可以将半结构化数据302和大型未注释的语料库308用作未注释的数据。
半结构化数据302可以包括例如xml文件。半结构化数据302可以包括具有若干不同字段的数据。可以使用特定字段来标识姓名和非姓名。例如,半结构化数据302可以包括标识音乐信息的XML文件,其中字段中的一个为艺术家字段。
大型未注释的语料库308提供目标语言(例如,中文、日语或韩语)的文本集合。大型未注释的语料库308可以包括若干不同的文本源,包括例如web查询、网页和新闻文章。在一些实施方式中,大型未注释的语料库308包括近数百亿至数千亿字符或甚至更多字符的文本。
注释过程316被应用并且形成用来训练姓名检测模型314的子模型的训练数据子集。具体地,使用从小型注释的语料库202确定来生成原始姓名检测模型206的、标识姓名的n-gram和不标识姓名的n-gram的概率估计来将训练数据分隔成标识姓名的训练数据和不标识姓名的训练数据。
系统将注释过程316应用于半结构化数据302以形成注释的半结构化数据(例如,304和306)。具体地,使用原始姓名检测模型206来分隔半结构化数据302并且形成包括标识姓名的n-gram的注释的半结构化数据子集304,以及形成包括不标识姓名的n-gram的注释的半结构化数据子集306。例如,如果xml文件包含n-gram“artist:c1 c2 c3”,其中“c1 c2 c3”为CJK姓名,则将该n-gram放置在包括标识姓名的n-gram的注释的半结构化数据子集304中。作为另一个示例,如果该xml文件还包含n-gram“title:c4 c5”,其中“c4 c5”不标识姓名(例如,歌曲的标题),则将该n-gram放置在包括不标识姓名的n-gram的注释的半结构化数据子集306中。
系统还将注释过程316应用于大型未注释的语料库308以形成大型注释的语料库数据(例如,310和312)。具体地,使用原始姓名检测模型206来将大型未注释的语料库分隔成包括标识姓名的n-gram的大型注释的语料库数据集310,以及包括不标识姓名的n-gram的大型注释的数据集312。例如,如果网页句子包括字符序列“c1 c2 c3 c4 c5c6”,其中“c2 c3 c4”为CJK姓名,则将该句子放置入包括标识姓名的n-gram的大型注释的语料库数据集310中。替选地,如果注释过程316在被应用于该句子时没有检测到姓名,则将该句子放置入包括不标识姓名的n-gram的大型注释的语料库数据集312中。
如在下面关于图4进一步详细论述的,训练过程318使用注释的半结构化数据(例如304和306)和大型注释的语料库数据(例如310和312)来生成姓名检测模型314。
在一些实施方式中,未注释的数据可以包括用户输入数据,包括例如IME的脚本和用户编辑的词或短语的列表。系统将注释过程316应用于用户输入数据以形成标识姓名的注释的用户输入数据和不标识姓名的注释的用户输入数据。训练过程318然后使用注释的用户输入数据来生成姓名检测模型314。
姓名检测模型
图4是图示了示例姓名检测模型314的组件的框图。姓名检测模型314包括姓名模型402、非姓名模型404以及语言模型406。
姓名模型
使用包括标识姓名的n-gram的半结构化数据子集304和包括标识姓名的n-gram的大型注释的语料库数据集310来导出姓名模型402。系统使用这些数据集来确定包括姓氏和名字的n-gram标识姓名的概率,或:
Pname(family_name,given_name)。
具体地,使用包括标识姓名的n-gram的半结构化数据子集304和包括标识姓名的n-gram的大型注释的语料库数据集来生成作为标识姓名的n-gram在数据集中出现的相对频率的函数的概率估计。
在一些实施方式中,使用注释的用户输入来生成概率估计。
非姓名模型
使用包括不标识姓名的n-gram的半结构化数据子集来导出非姓名模型404。系统使用该数据子集来确定包括姓氏和名字的n-gram不标识姓名的概率,或:
Pnotname(family_name,given_name)。
具体地,使用该数据子集来生成作为标识姓名的n-gram在数据子集中的相对频率的函数的概率估计。
在一些实施方式中,使用注释的用户输入来生成概率估计。
语言模型
使用大型注释的数据集(例如310和312)来导出语言模型406。系统使用这些数据集来确定n-gram使用该n-gram的上下文标识姓名或不标识姓名的概率。具体地,系统确定后缀相对于姓名候选标识姓名以及姓名候选相对于前缀标识姓名的概率,或:
Pname(suffix|name)以及
Pname(name|prefix),
以导出带有姓名的语言子模型。
此外,系统确定后缀相对于姓名候选不标识姓名以及姓名候选相对于前缀不标识姓名的概率,或:
Pnotname(suffix|name)以及
Pnotname(name|prefix),
以导出不带姓名的语言子模型。
前缀是字符序列中的在n-gram姓名候选之前的一个或多个字符。后缀是字符序列中的在n-gram候选之后的一个或多个字符。例如,对于字符序列“c1 c2 c3 c4 c5 c6 c7”,其中姓名候选为“c3 c4 c5”,则前缀为“c1 c2”以及后缀为“c6 c7”。
使用包括标识姓名的n-gram的大型注释的数据集310来生成作为n-gram在数据集中相对于特定前缀或后缀为姓名的相对频率的函数的概率估计。并且,使用包括不标识姓名的n-gram的大型注释的数据集312来生成作为n-gram在数据集中相对于特定前缀或后缀不为姓名的相对频率的函数的概率估计。
在一些实施方式中,使用注释的用户输入来生成概率估计。
总的来说,在注释过程316中使用原始姓名检测模型206来分隔半结构化数据302和大型未注释的语料库308并且形成注释的半结构化数据(304和306)和大型注释的语料库(310和312)。系统使用该注释的数据和训练过程318来训练包括姓名模型402、非姓名模型404和语言模型406的姓名检测模型314。
用于检测姓名的精化公式
使用来自姓名模型和语言模型的概率估计来确定P(NAME|context)。例如,如果字符序列为“c1 c2 c3 c4 c5 c6 c7”,并且“c3 c4c5”为姓名,则“c3 c4 c5”相对于上下文(即,前缀为“c1 c2”,以及后缀为“c6 c7”)为姓名的概率或P(NAME|context)可以从上面的表达式[1]导出。可以将P(NAME|context)表示为:
Pname(c3|prefix)Pname(c4c5|c3)Pname(suffix|c3,c4 c5).
一般可以将该表达式重写为:
Pname(family_name|prefix)Pname(given_name|family_name)Pname(suffix|family_name,given_name),
其中
如上所述,可以训练姓名模型来确定Pname(family_name,given_name)。此外,可以训练语言模型来确定Pname(family_name|prefix)和Pname(suffix|family_name,given_name)。
以类似的方式使用来自姓名模型和语言模型的概率估计来确定P(NOTNAME|context)。例如,如果字符序列为“c1 c2 c3 c4 c5 c6 c7”,并且“c3 c4 c5”不为姓名,则“c3 c4 c5”相对于上下文(即,前缀为“c1 c2”,以及后缀为“c6 c7”)不为姓名的概率或P(NOTNAME|context)可以从上面的表达式[2]导出。可以将P(NOTNAME|context)表示为:
Pnotname(c3|prefix)Pnotname(c4 c5|c3)Pnotname(suffix|c4 c5).
一般可以将该表达式重写为:
Pnotname(family_name|prefix)Pnotname(given_name|family_name)Pnotname(suffix|family_name,given_name).
如上所述,可以训练非姓名模型来确定Pnotname(family_name,given_name)。此外,可以训练语言模型来确定Pnltname(family_name|prefix)和Pnotname(suffix|family_name,given_name)。
训练迭代
在一些实施方式中,进一步使用姓名检测模型314将半结构化数据302和大型未注释的语料库308分隔成注释的半结构化数据(304和306)和大型注释的语料库(310和312)。例如,在图3中,在注释过程316中使用姓名检测模型314来分隔半结构化数据302和大型未注释的语料库308。在一些实施方式中,使用这些新的训练数据集来生成更精化的姓名检测模型。由于使用更大的训练数据来导出n-gram标识姓名或不标识姓名的概率估计,所以更精化的姓名检测模型具有比原始姓名检测模型更大的覆盖范围。
在一些实施方式中,使用注释的用户输入来生成更精化的姓名检测模型。
通过以两次或多次迭代来训练姓名检测模型可以实现对姓名检测模型的进一步精化。每一次迭代提高姓名模型的覆盖范围。在一些实施方式中,可以指定迭代的数量(例如,三次迭代)。替选地,迭代的数量可以基于条件,例如作为姓名检测模型的输出提供的概率估计在迭代之间的改变没有超过阈值的条件。
对姓名检测模型的进一步精化
对于特定姓名(例如,在训练数据中具有较低出现频率的稀少姓名、稀少姓氏或外国姓名),相对频率可以是较低的。结果,相应的概率估计可能是不准确的。这导致额外的稀少数据问题。因此,可以使用平滑技术来解决较低频率或稀少姓名。如果字符序列在训练数据中出现的频率小于阈值,则可以使用平滑技术。
稀少姓名
在一些实施方式中,姓名出现的概率独立于姓氏出现和名字出现的概率。例如,如果“y”为姓氏“x”的名字,则姓名为“x y”。此外,“z”可以是稀少姓氏。姓名“z y”表示稀少姓氏“z”和名字“y”,其中稀少姓氏“z”未被取样或以较低频率(例如,低于指定的阈值频率)被取样。在一个实施方式中,系统使用“x y”的概率来近似“z y”的概率。具体地,独立地处理“x”为姓氏的事件和“y”为名字的事件的概率。
结果,可以按照“x y”的统计来近似名字“y”相对于稀少姓氏“z”出现的概率或P(y|z),其中:
例如,如果“z y”在训练数据中的频率小于阈值,则“z y”为姓名的概率是对于任何姓名“y”为名字的概率和姓氏“z”出现的概率的函数。
例如,返回到用于检测姓名的精化公式,可能没有精确估计Pnotname(suffix|family_name,given_name)。在一些实施方式中,可以实现回退策略,使得可以将Pnotname(suffix|family_name,given_name)表示为:BackoffWeight(family_name,given_name)Pnotname(suffix|all_family_name,given_name).
稀少姓氏
在一些实施方式中,将所有稀少姓氏的概率用作单个稀少姓氏的概率的替代物。例如,如果“a”为名字以及“b”为姓氏。可以由P(a|b)P(b|context)来表示姓名相对于上下文出现的概率。如果“b”为稀少姓氏,则概率P(a|b)可能是不准确的。在该实施方式中,通过使用“a”相对于所有稀少姓氏在训练数据中出现的概率乘以所有稀少姓氏相对于上下文在训练数据中出现的概率或下述,更准确地表示姓名在给定上下文中出现的概率:
P(a|all_sparse_famlily_names)P(b|all_sparse_family)P(all_sparse_family_names|context)
外国姓名检测模型
外国姓名(例如,翻译的姓名)的相对频率也可能是较低的并且导致不准确的概率估计。因此,可以根据在上面关于生成姓名检测模型314所描述的相同步骤来生成外国姓名检测模型。具体地,以与生成原始姓名检测模型206相似的方式从外国姓氏的预先定义的集合生成原始外国姓名检测模型。可以以与生成姓名检测模型314相似的方式将原始外国姓名检测模型应用于其它数据(例如,大型未注释的数据和半结构化数据)来生成外国姓名检测模型。
分割
在对于n-gram的给定输入序列,使用姓名检测模型来检测姓名时,使用标识姓名或不标识姓名的n-gram的概率估计来将字符序列分割成词并且同时检测姓名。
在一些实施方式中,以隐马尔可夫模型排列CJK字符序列。隐马尔可夫模型为包括隐藏的参数和可观察的参数的统计模型。例如,可观察的参数为CJK字符序列,以及隐藏的参数为可能的CJK词序列。具体地,由于CJK字符或CJK字符的组合可以具有不同的含义,所以CJK中特定的字符序列可以导致一个或多个词序列。例如,字符序列“c1 c2 c3”为可能的CJK词序列。另外,“c1 c2”也可以是可能的另一个CJK词序列。
在一些实施方式中,使用维特比(Viterbi)算法来分割隐马尔可夫模型。维特比算法是用于找寻导致观察到的事件序列的最可能的隐藏状态序列(例如,分割路径)的动态规划算法。例如,使用维特比算法来找寻导致CJK字符序列的最可能的CJK词序列。
可以将最可能的CJK词序列写为:
其描述所有可能的CJK词序列中的为P(W|C)提供最高值的CJK词序列W,其中W=w1,w2,…wM以及C为由C=c1,c2,…cL表示的CJK字符序列。额外地,贝叶斯规则规定:
语言模型提供P(W)。使用贝叶斯规则,可以将给定CJK字符序列,最可能的CJK词序列重写为:
因此,最可能的W(即,最可能的CJK词序列)为使W出现的概率和W由C组成的概率(即,给定的CJK词序列映射到CJK字符序列的概率)的乘积最大化的W。
CJK姓名检测在其将字符序列分割成词时检测CJK姓名。
例如,参见图5,观察到的CJK字符的输入字符串502包括“周杰伦敦演唱会”,其中在“周”之前为指明序列的开始的标识符<S>以及在“会”之后为指明序列的末尾的标识符<E>。
假设字符序列“伦敦”和“演唱会”为先前训练时已检测到的词。另外,假设“周杰”和“周杰伦”为潜在姓名(即,在训练数据中已被检测为标识姓名)。在朴素模型中,如果“周杰”和“周杰伦”从未被检测为词,则“周杰”和“周杰伦”为词的概率是较低的,并且字符序列可能被分割成单个字符。在这种分割方案之后检测姓名导致错误。
在朴素模型中,在隐马尔可夫模型(例如,隐马尔可夫模型500)中词的一些示例分割为:
<S>“周”“杰”“伦”“敦”“演”“唱”“会”<E>,
<S>“周”“杰”“伦”“敦”“演唱会”<E>,
<S>“周”“杰”“伦敦”“演”“唱”“会”<E>,以及
<S>“周”“杰”“伦敦”“演唱会”<E>。
然而,合并姓名检测模型,可以将字符序列“周杰”检测为潜在标识姓名的字符;以及还可以将字符序列“周杰伦”检测为潜在标识姓名的字符。从字符序列具有相关联的潜在标识姓名的概率的意义上说,这些字符序列具有相关联的为词的概率。
因此,将词的其它示例分割添加到模型。在该精化的隐马尔可夫模型中,词的额外示例分割为:
<S>“周杰”“伦”“敦”“演”“唱”“会”<E>,
<S>“周杰”“伦”“敦”“演唱会”<E>,
<S>“周杰”“伦敦”“演”“唱”“会”<E>,
<S>“周杰”“伦敦”“演唱会”<E>;以及
<S>“周杰伦”“敦”“演”“唱”“会”<E>,
<S>“周杰伦”“敦”“演唱会”<E>,
<S>“周杰伦”“敦”“演”“唱”“会”<E>。
使用该模型,分割字符序列包括取决于分割包括潜在姓名的可能性,将字符序列分割成词。包括潜在姓名的其它可能序列的引入防止前述分割错误传播到姓名检测。如果包括姓名的分割路径比不包括姓名的分割路径更可能发生,则使用包括姓名的分割路径并且检测姓名。将检测到的标识姓名的字符序列以及其相应的标识姓名的概率添加到姓名检测模型314。
在一些实施方式中,使用姓名检测模型314来检测输入文本中的姓名。例如,检测器接收CJK输入文本并且使用姓名检测模型314来同时将CJK输入文本分割成词并且从CJK输入文本检测姓名。
图6是示出了用于检测姓名的示例过程600的流程图。为方便起见,将关于执行检测的系统描述用于检测姓名的过程600。在用于检测姓名的过程600期间,系统对所接收的字符序列从序列的开始直到序列的末尾扫描姓名。
系统接收602字符序列(例如,中文字符序列)。具体地,系统标识604序列的第一字符。系统确定606所标识的字符是否为姓氏候选。如果该字符为姓氏候选(例如,在姓氏集合204中的字符),则系统使用如上所述的用于检测姓名的精化公式(例如,精化的比率)来检测614姓名。
如果该字符不为姓氏候选,则系统确定608该字符是否为姓氏候选的前缀。如果该字符为姓氏候选的前缀,则系统使用如上所述的用于检测姓名的精化公式(例如,精化的比率)来检测614姓名。
如果该字符不为姓氏候选的前缀,则系统确定610系统是否已到达字符序列的末尾。类似地,在使用用于检测姓名的精化公式来检测614姓名后,系统也确定610系统是否已到达字符序列的末尾。如果系统到达序列的末尾,则过程终止616。如果系统尚未到达字符序列的末尾,则系统标识612序列的下一个字符并且为序列的其它字符重复步骤606、608、610以及可选的614直到到达序列的末尾。
示例系统
图7是用于CJK姓名检测的示例系统700。数据处理装置710可以包括硬件/固件、操作系统和包括检测程序720的一个或多个程序。检测程序720协同数据处理装置710操作来实现在本说明书中描述的操作。因此,与一个或多个处理器和计算机可读介质(例如,存储器)结合的检测程序720表示系统700中的一个或多个结构组件。
检测程序720可以是检测处理应用或一部分。如在此所使用的,应用是用户理解为用于确定目的的独特计算机工具的计算机程序。应用可以被完全构建入数据处理装置710的操作系统(OS)中,或者应用可以具有位于不同位置的不同部件(例如,一部分在OS或内核模式中、一部分在用户模式中以及一部分在远程服务器中),并且应用可以被构建在用作装置710的软件平台的运行库上。此外,使用一个或多个处理器790可以将应用处理分布在网络780上。例如,可以在一个或多个处理器790上分布地训练检测程序720的语言模型。
数据处理装置710包括一个或多个处理器730和至少一个计算机可读介质740(例如,随机存取存储器、存储设备等)。数据处理装置710还可以包括通信接口750、一个或多个用户接口设备760以及一个或多个附加设备770。用户接口设备760可以包括显示屏、键盘、鼠标、指示笔或以上的任何组合。
一旦被编程,数据处理装置710可操作以生成语言模型、姓名模型以及外国姓名模型。
在本说明书中描述的主题和功能性操作的实施例可以在数字电子电路中,或者在计算机软件、固件或硬件,包括在本说明书中公开的结构以及其结构等同物中,或者在以上的一个或多个的组合中实现。可以将在本说明书中描述的主题的实施例实现为一个或多个计算机程序产品,即编码在有形的程序载体上的由数据处理装置执行或控制数据处理装置的操作的计算机程序指令的一个或多个模块。有形的程序载体可以是传播信号或计算机可读介质。传播信号是非自然生成的信号,例如机器生成的电的、光学或电磁的信号,其被生成以编码用于传输到适当接收器装置的信息以供计算机执行。计算机可读介质可以是机器可读存储设备、机器可读存储基片、存储器设备、形成机器可读传播信号的物质成分或以上的一个或多个的组合。
术语“数据处理装置”包含用于处理数据的所有装置、设备以及机器,包括例如可编程处理器、计算机或多个处理器或计算机。除硬件外所述装置可以包括创建用于讨论中的计算机程序的执行环境的代码,例如构成处理器固件、协议堆栈、数据库管理系统、操作系统或以上一个或多个的组合的代码。
计算机程序(也称作程序、软件、软件应用、脚本或代码)可以以任何形式的编程语言编写,所述编程语言包括编译或解释语言,或者说明性或过程性语言,并且其可以以任何形式部署,包括作为独立程序或作为模块、组件、子程序或适于在计算环境中使用的其它单元。计算机程序没有必要对应于文件系统中的文件。可以将程序存储在保持其它程序或数据的文件(例如,存储在标记语言文档中的一个或多个脚本)的一部分、专用于讨论中的程序的单个文件或者多个协调文件(例如,存储一个或多个模块、子程序或部分代码的文件)中。可以将计算机程序部署为在一个计算机上或者在位于一个地点或跨多个地点分布并且由通信网络互连的多个计算机上执行。
在本说明书中描述的过程和逻辑流可以由执行一个或多个计算机程序的一个或多个可编程处理器执行以通过操作输入数据并且生成输出来执行功能。过程和逻辑流还可以通过专用逻辑电路执行,以及装置还可以被实现为专用逻辑电路,专用逻辑电路例如FPGA(场可编程门阵列)或ASIC(专用集成电路)。
适于执行计算机程序的处理器包括例如通用和专用微处理器两者,以及任何类型的数字计算机的任何一个或多个处理器。通常,处理器将从只读存储器或随机存取存储器或两者接收指令和数据。计算机的主要元件是用于执行指令的处理器和用于存储指令和数据的一个或多个存储器设备。通常,计算机还包括用于存储数据的一个或多个海量存储设备,例如磁盘、磁光盘或光盘,或可操作地耦接以从所述一个或多个海量存储设备接收数据或向所述一个或多个海量存储设备传送数据,或两者。然而,计算机不必具有这样的设备。此外,可以将计算机嵌入另一个设备中,所述设备例如数码相框、移动电话、个人数字助理(PDA)、移动音频或视频播放器、游戏控制台、全球定位系统(GPS)接收器,仅列出一些。
适于存储计算机程序指令和数据的计算机可读介质包括所有形式的非易失性存储器、介质和存储器设备,包括例如:半导体存储器设备,例如EPROM、EEPROM和闪存设备;磁盘,例如内部硬盘或可移动盘;磁光盘;以及CD-ROM和DVD-ROM盘。处理器和存储器可以由专用逻辑电路补充,或合并入专用逻辑电路。
为了提供与用户的交互,本说明书中描述的主题的实施例可以在具有下述的计算机上实现:用于向用户显示信息的显示设备,例如CRT(阴极射线管)或LCD(液晶显示)监视器,以及用户通过其可以向计算机提供输入的键盘和指示设备,例如鼠标或跟踪球。也可以使用其它类型的设备来提供与用户的交互;例如,提供给用户的反馈可以是任何形式的感知反馈,例如视觉反馈、听觉反馈或触觉反馈;以及可以以任何形式,包括声学的、话语或触觉的输入,接收来自用户的输入。
本说明书中描述的主题的实施例可以在包括例如作为数据服务器的后端组件、或者包括例如应用服务器的中间件组件、或者包括例如具有用户通过其可以与在本说明书中描述的主题的实施方式交互的图形用户界面或Web浏览器的客户端计算机的前端组件、或者一个或多个这样的后端、中间件或前端组件的任何组合的计算系统中实现。系统的组件可以通过例如通信网络的任何形式或介质的数字数据通信互连。通信网络的示例包括局域网(″LAN″)和广域网(″WAN″),例如因特网。
计算系统可以包括客户端和服务器。客户端和服务器通常彼此远离并且典型地通过通信网络交互。客户端和服务器的关系依靠在各个计算机上运行并且彼此具有客户端-服务器关系的计算机程序产生。
虽然本说明书包含许多具体实施方式细节,但是这些细节不应当被解释为对任何发明或可以主张的内容的范围的限制,而应当被解释为对可以具体到特定发明的特定实施例的特征的描述。还可以将在本说明书中在分离的实施例的情境中描述的某些特征组合在单个实施例中实现。相反地,也可以将在单个实施例的情境中描述的各种特征分离地在多个实施例中实现或在任何适当的子组合中实现。此外,尽管可能在上面将特征描述为在某些组合中起作用,甚至最初主张如此,但是可以在一些情况下将来自所主张的组合的一个或多个特征从组合中删去,并且可以将所主张的组合指向子组合或者子组合的变体。
类似地,虽然在附图中以特定顺序描绘了操作,但是不应当将这理解为需要以所示的特定顺序或者以连续顺序执行这样的操作、或者需要执行所有图示的操作才能达到期望的结果。在某些环境中,多任务以及并行处理可以是有利的。此外,不应当将在上述实施例中的各种系统组件的分离理解为在所有实施例中均需要这样的分离,而应当理解的是,通常可以将所描述的程序组件和系统集成到一起成为单个软件产品或封装为多个软件产品。
已经描述了本说明书中描述的主题的特定实施例。其它实施例在所附权利要求的范围内。例如,可以以不同的顺序来执行权利要求中记载的动作并且仍然达到期望的结果。作为一个示例,在附图中描绘的过程不必需要所示的特定顺序或连续顺序才能达到期望的结果。在某些实施方式中,多任务以及并行处理可以是有利的。
Claims (38)
1.一种方法,包括:
使用姓氏集合和包括n-gram集合的注释的语料库来生成原始姓名检测模型,每一个n-gram具有相应的在所述注释的语料库中作为姓名出现的概率;
将所述原始姓名检测模型应用于半结构化数据集合以形成注释的半结构化数据,所述注释的半结构化数据对标识姓名的n-gram和不标识姓名的n-gram进行标识;
将所述原始姓名检测模型应用于大型未注释的语料库以形成大型注释的语料库数据,所述大型注释的语料库数据对标识姓名的所述大型未注释的语料库的n-gram和不标识姓名的n-gram进行标识;以及
生成姓名检测模型,包括:
使用所述标识姓名的注释的半结构化数据和所述标识姓名的大型注释的语料库数据来导出姓名模型,
使用所述不标识姓名的半结构化数据来导出非姓名模型,以及
使用所述大型注释的语料库来导出语言模型。
2.如权利要求1所述的方法,进一步包括:
将所述姓名检测模型应用于所述半结构化数据集合以形成所述注释的半结构化数据,所述注释的半结构化数据对标识姓名的n-gram和不标识姓名的n-gram进行标识;
将所述姓名检测模型应用于所述大型未注释的语料库以形成所述大型注释的语料库数据,所述大型注释的语料库数据对标识姓名的所述大型未注释的语料库的n-gram和不标识姓名的n-gram进行标识;以及
生成精化的姓名检测模型,包括:
使用所述标识姓名的注释的半结构化数据和所述标识姓名的大型注释的语料库数据来导出精化的姓名模型,
使用所述不标识姓名的半结构化数据来导出精化的非姓名模型,以及
使用所述大型注释的语料库来导出精化的语言模型。
3.如权利要求1所述的方法,其中所述姓名模型包括:
来自所述标识姓名的注释的半结构化数据和所述标识姓名的大型注释的语料库的n-gram集合,其中每一个n-gram包括作为左部字符的姓氏和作为右部上下文的名字,并且每一个n-gram具有相应的标识姓名的概率。
4.如权利要求1所述的方法,其中所述非姓名模型包括:
来自所述不标识姓名的注释的半结构化数据的n-gram集合,其中每一个n-gram包括作为左部字符的姓氏和作为右部上下文的名字,并且每一个n-gram具有相应的不标识姓名的概率。
5.如权利要求1所述的方法,其中所述原始姓名检测模型包括:
来自所述注释的语料库的n-gram集合,其中每一个n-gram包括为来自所述姓氏集合的姓氏的左部字符,并且每一个n-gram具有相应的根据姓名在所述注释的语料库中的相对频率标识所述姓名的概率。
6.如权利要求1所述的方法,其中所述原始姓名模型是使用外国姓氏集合来生成的。
7.如权利要求1所述的方法,其中
所述姓氏集合包括多个稀少姓氏;以及
替代所述多个稀少姓氏中的特定稀少姓氏的计算出的概率,所述原始姓名检测模型使用所有稀少姓氏的单一概率来标识每一个n-gram标识姓名的概率,所述每一个n-gram包括为稀少姓氏的左部字符。
8.如权利要求1所述的方法,其中所述姓氏集合包括多个外国姓氏。
9.一种方法,包括:
接收输入字符串;以及
将姓名检测模型应用于具有多个字符的所述输入字符串,包括:
标识所述多个字符的最可能的分割,其中所述多个字符不包括一个或多个姓名,
将所述多个字符中的一个或多个字符序列检测为潜在标识一个或多个姓名,
标识所述多个字符的分割,其中所述多个字符包括所述一个或多个潜在姓名,以及
在包括所述潜在的一个或多个姓名的所述分割的可能性大于不包括一个或多个姓名的所述最可能的分割时,将所述多个字符分割为包括所述一个或多个姓名。
10.如权利要求9所述的方法,进一步包括:
在所述多个字符被分割为包括一个或多个姓名时,检测一个或多个姓名。
11.如权利要求1所述的方法,进一步包括:
接收包括多个字符的字符串;以及
计算所述字符串的特定序列标识姓名的概率,所述姓名包括姓氏和名字,包括:
在所述特定序列在语料库中的频率小于阈值时,作为所述序列表示名字的部分与任何姓氏一起出现的相对频率和所述序列表示姓氏的部分的相对频率的函数来确定所述特定序列标识姓名的概率。
12.如权利要求1所述的方法,进一步包括:
接收用户输入数据;以及
将所述原始姓名检测模型应用于所述用户输入数据以形成注释的用户输入数据,所述注释的用户输入数据对标识姓名的n-gram和不标识姓名的n-gram进行标识;
其中生成所述姓名检测模型进一步包括:
使用所述标识姓名的注释的用户输入数据来导出所述姓名模型,
使用所述不标识姓名的注释的用户输入数据来导出所述非姓名模型,以及
使用所述注释的用户输入数据来导出语言模型。
13.一种系统,包括:
用于使用姓氏集合和包括n-gram集合的注释的语料库来生成原始姓名检测模型的装置,每一个n-gram具有相应的在所述注释的语料库中作为姓名出现的概率;
用于将所述原始姓名检测模型应用于半结构化数据集合以形成注释的半结构化数据的装置,所述注释的半结构化数据对标识姓名的n-gram和不标识姓名的n-gram进行标识;
用于将所述原始姓名检测模型应用于大型未注释的语料库以形成大型注释的语料库数据的装置,所述大型注释的语料库数据对标识姓名的所述大型未注释的语料库的n-gram和不标识姓名的n-gram进行标识;以及
用于生成姓名检测模型的装置,其中生成所述姓名检测模型包括:
使用所述标识姓名的注释的半结构化数据和所述标识姓名的大型注释的语料库数据来导出姓名模型,
使用所述不标识姓名的半结构化数据来导出非姓名模型,以及
使用所述大型注释的语料库来导出语言模型。
14.一种系统,包括:
用于接收输入字符串的装置;以及
用于将姓名检测模型应用于具有多个字符的所述输入字符串的装置,其中应用所述姓名检测模型包括:
标识所述多个字符的最可能的分割,其中所述多个字符不包括一个或多个姓名,
将所述多个字符中的一个或多个字符序列检测为潜在标识一个或多个姓名,
标识所述多个字符的分割,其中所述多个字符包括所述一个或多个潜在姓名,以及
在包括所述潜在的一个或多个姓名的所述分割的可能性大于不包括一个或多个姓名的所述最可能的分割时将所述多个字符分割为包括所述一个或多个姓名。
15.一种编码在有形的程序载体上的、可操作来促使数据处理装置执行操作的计算机程序产品,所述操作包括:
使用姓氏集合和包括n-gram集合的注释的语料库来生成原始姓名检测模型,每一个n-gram具有相应的在所述注释的语料库中作为姓名出现的概率;
将所述原始姓名检测模型应用于半结构化数据集合以形成注释的半结构化数据,所述注释的半结构化数据对标识姓名的n-gram和不标识姓名的n-gram进行标识;
将所述原始姓名检测模型应用于大型未注释的语料库以形成大型注释的语料库数据,所述大型注释的语料库数据对标识姓名的所述大型未注释的语料库的n-gram和不标识姓名的n-gram进行标识;以及
生成姓名检测模型,包括:
使用所述标识姓名的注释的半结构化数据和所述标识姓名的大型注释的语料库数据来导出姓名模型,
使用所述不标识姓名的半结构化数据来导出非姓名模型,以及
使用所述大型注释的语料库来导出语言模型。
16.如权利要求15所述的计算机程序产品,可操作来促使数据处理装置执行操作,所述操作进一步包括:
将所述姓名检测模型应用于所述半结构化数据集合以形成所述注释的半结构化数据,所述注释的半结构化数据对标识姓名的n-gram和不标识姓名的n-gram进行标识;
将所述姓名检测模型应用于所述大型未注释的语料库以形成所述大型注释的语料库数据,所述大型注释的语料库数据对标识姓名的所述大型未注释的语料库的n-gram和不标识姓名的n-gram进行标识;以及
生成精化的姓名检测模型,包括:
使用所述标识姓名的注释的半结构化数据和所述标识姓名的大型注释的语料库数据来导出精化的姓名模型,
使用所述不标识姓名的半结构化数据来导出精化的非姓名模型,以及
使用所述大型注释的语料库来导出精化的语言模型。
17.如权利要求15所述的计算机程序产品,其中所述姓名模型包括:
来自所述标识姓名的注释的半结构化数据和所述标识姓名的大型注释的语料库的n-gram集合,其中每一个n-gram包括作为左部字符的姓氏和作为右部上下文的名字,并且每一个n-gram具有相应的标识姓名的概率。
18.如权利要求15所述的计算机程序产品,其中所述非姓名模型包括:
来自所述不标识姓名的注释的半结构化数据的n-gram集合,其中每一个n-gram包括作为左部字符的姓氏和作为右部上下文的名字,并且每一个n-gram具有相应的不标识姓名的概率。
19.如权利要求15所述的计算机程序产品,其中所述原始姓名检测模型包括:
来自所述注释的语料库的n-gram集合,其中每一个n-gram包括为来自所述姓氏集合的姓氏的左部字符,并且每一个n-gram具有相应的根据姓名在所述注释的语料库中的相对频率标识所述姓名的概率。
20.如权利要求15所述的计算机程序产品,其中所述原始姓名模型是使用外国姓氏集合来生成的。
21.如权利要求15所述的计算机程序产品,其中
所述姓氏集合包括多个稀少姓氏;以及
替代所述多个稀少姓氏中的特定稀少姓氏的计算出的概率,所述原始姓名检测模型使用所有稀少姓氏的单一概率来标识每一个n-gram标识姓名的概率,所述每一个n-gram包括为稀少姓氏的左部字符。
22.如权利要求15所述的计算机程序产品,其中所述姓氏集合包括多个外国姓氏。
23.一种编码在有形的程序载体上的、可操作来促使数据处理装置执行操作的计算机程序产品,所述操作包括:
接收输入字符串;以及
将姓名检测模型应用于具有多个字符的所述输入字符串,包括:
标识所述多个字符的最可能的分割,其中所述多个字符不包括一个或多个姓名,
将所述多个字符中的一个或多个字符序列检测为潜在标识一个或多个姓名,
标识所述多个字符的分割,其中所述多个字符包括一个或多个潜在姓名,以及
在包括所述潜在的一个或多个姓名的所述分割的可能性大于不包括一个或多个姓名的所述最可能的分割时,将所述多个字符分割为包括所述一个或多个姓名。
24.如权利要求23所述的计算机程序产品,可操作来促使数据处理装置执行操作,所述操作进一步包括:
在所述多个字符被分割为包括一个或多个姓名时,检测一个或多个姓名。
25.如权利要求15所述的计算机程序产品,可操作来促使数据处理装置执行操作,所述操作进一步包括:
接收包括多个字符的字符串;以及
计算所述字符串的特定序列标识姓名的概率,所述姓名包括姓氏和名字,包括:
在所述特定序列在语料库中的频率小于阈值时,作为所述序列表示名字的部分与任何姓氏一起出现的相对频率和所述序列表示姓氏的部分的相对频率的函数来确定所述特定序列标识姓名的概率。
26.如权利要求15所述的计算机程序产品,可操作来促使数据处理装置执行操作,所述操作进一步包括:
接收用户输入数据;以及
将所述原始姓名检测模型应用于所述用户输入数据以形成注释的用户输入数据,所述注释的用户输入数据对标识姓名的n-gram和不标识姓名的n-gram进行标识;
其中生成所述姓名检测模型进一步包括:
使用所述标识姓名的注释的用户输入数据来导出所述姓名模型,
使用所述不标识姓名的注释的用户输入数据来导出所述非姓名模型,以及
使用所述注释的用户输入数据来导出语言模型。
27.一种系统,包括:
原始姓名模型,包括姓氏集合和包括n-gram集合的注释的语料库,每一个n-gram具有相应的在所述注释的语料库中作为姓名出现的概率;
注释的半结构化数据,所述注释的半结构化数据是通过将所述原始姓名检测模型应用于半结构化数据集合而形成的,所述注释的半结构化数据对标识姓名的n-gram和不标识姓名的n-gram进行标识;
大型注释的语料库数据,所述大型注释的语料库数据是通过将所述原始姓名检测模型应用于大型未注释的语料库集合而形成的,所述大型注释的语料库数据通过应用所述原始姓名检测模型对标识姓名的所述大型未注释的语料库的n-gram和不标识姓名的n-gram进行标识;以及
姓名检测模型,包括:
从所述标识姓名的注释的半结构化数据和所述标识姓名的大型注释的语料库数据导出的姓名模型,
从所述不标识姓名的半结构化数据导出的非姓名模型,以及
从所述大型注释的语料库导出的语言模型。
28.如权利要求27所述的系统,其中:
所述姓名检测模型被应用于所述半结构化数据集合以形成所述注释的半结构化数据,所述注释的半结构化数据对标识姓名的n-gram和不标识姓名的n-gram进行标识;
所述姓名检测模型被应用于所述大型未注释的语料库以形成所述大型注释的语料库数据,所述大型注释的语料库数据对标识姓名的所述大型未注释的语料库的n不标识姓名的n-gram进行标识;以及
所述系统进一步包括精化的姓名检测模型,包括:
从所述标识姓名的注释的半结构化数据和所述标识姓名的大型注释的语料库数据导出的精化的姓名模型,
从所述不标识姓名的半结构化数据导出的精化的非姓名模型,以及
从所述大型注释的语料库导出的精化的语言模型。
29.如权利要求27所述的系统,其中所述姓名模型包括:
来自所述标识姓名的注释的半结构化数据和所述标识姓名的大型注释的语料库的n-gram集合,其中每一个n-gram包括作为左部字符的姓氏和作为右部上下文的名字,并且每一个n-gram具有相应的标识姓名的概率。
30.如权利要求27所述的系统,其中所述非姓名模型包括:
来自所述不标识姓名的注释的半结构化数据的n-gram集合,其中每一个n-gram包括作为左部字符的姓氏和作为右部上下文的名字,并且每一个n-gram具有相应的不标识姓名的概率。
31.如权利要求27所述的系统,其中所述原始姓名检测模型包括:
来自所述注释的语料库的n-gram集合,其中每一个n-gram包括为来自所述姓氏集合的姓氏的左部字符,并且每一个n-gram具有相应的根据姓名在所述注释的语料库中的相对频率标识所述姓名的概率。
32.如权利要求27所述的系统,其中所述原始姓名模型是使用外国姓氏集合来生成的。
33.如权利要求27所述的系统,其中
所述姓氏集合包括多个稀少姓氏;以及
替代所述多个稀少姓氏中的特定稀少姓氏的计算出的概率,所述原始姓名检测模型使用所有稀少姓氏的单一概率来标识每一个n-gram标识姓名的概率,所述每一个n-gram包括为稀少姓氏的左部字符。
34.如权利要求27所述的系统,其中所述姓氏集合包括多个外国姓氏。
35.一种包括可操作来执行操作的一个或多个计算机的系统,所述操作包括:
接收输入字符串;以及
将姓名检测模型应用于具有多个字符的所述输入字符串,包括:
标识所述多个字符的最可能的分割,其中所述多个字符不包括一个或多个姓名,
将所述多个字符中的一个或多个字符序列检测为潜在标识一个或多个姓名,
标识所述多个字符的分割,其中所述多个字符包括所述一个或多个潜在姓名,以及
在包括所述潜在的一个或多个姓名的所述分割的可能性大于不包括一个或多个姓名的所述最可能的分割时,将所述多个字符分割为包括所述一个或多个姓名。
36.如权利要求35所述的系统,所述系统包括可操作来执行操作的一个或多个计算机,所述操作进一步包括:
在所述多个字符被分割为包括一个或多个姓名时,检测一个或多个姓名。
37.如权利要求27所述的系统,进一步包括可操作来执行操作的一个或多个计算机,所述操作包括:
接收包括多个字符的字符串;
计算所述字符串的特定序列标识姓名的概率,所述姓名包括姓氏和名字,包括:
在所述特定序列在语料库中的频率小于阈值时,作为所述序列表示名字的部分与任何姓氏一起出现的相对频率和所述序列表示姓氏的部分的相对频率的函数来确定所述特定序列标识姓名的概率。
38.如权利要求27所述的系统,进一步包括可操作来执行操作的一个或多个计算机,所述操作包括:
接收用户输入数据;以及
将所述原始姓名检测模型应用于所述用户输入数据以形成注释的用户输入数据,所述注释的用户输入数据对标识姓名的n-gram和不标识姓名的n-gram进行标识;
其中生成所述姓名检测模型,进一步包括:
使用所述标识姓名的注释的用户输入数据来导出所述姓名模型,
使用所述不标识姓名的注释的用户输入数据来导出所述非姓名模型,以及
使用所述注释的用户输入数据来导出语言模型。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201310052624.3A CN103136190B (zh) | 2007-12-06 | 2007-12-06 | Cjk姓名检测 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
PCT/CN2007/003464 WO2009070931A1 (en) | 2007-12-06 | 2007-12-06 | Cjk name detection |
Related Child Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201310052624.3A Division CN103136190B (zh) | 2007-12-06 | 2007-12-06 | Cjk姓名检测 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN101939741A true CN101939741A (zh) | 2011-01-05 |
CN101939741B CN101939741B (zh) | 2013-03-20 |
Family
ID=40717264
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN2007801022966A Active CN101939741B (zh) | 2007-12-06 | 2007-12-06 | Cjk姓名检测 |
Country Status (6)
Country | Link |
---|---|
US (1) | US8478787B2 (zh) |
EP (1) | EP2227757A4 (zh) |
JP (1) | JP5379155B2 (zh) |
KR (1) | KR101453937B1 (zh) |
CN (1) | CN101939741B (zh) |
WO (1) | WO2009070931A1 (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105320663A (zh) * | 2014-06-11 | 2016-02-10 | 安凯(广州)微电子技术有限公司 | 一种控制方法、装置和智能机器 |
CN105988993A (zh) * | 2015-03-06 | 2016-10-05 | 阿里巴巴集团控股有限公司 | 检测网站上注册的姓名合理性的方法和装置 |
CN110291582A (zh) * | 2017-02-14 | 2019-09-27 | 谷歌有限责任公司 | 语言模型偏置系统 |
Families Citing this family (22)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8352265B1 (en) | 2007-12-24 | 2013-01-08 | Edward Lin | Hardware implemented backend search engine for a high-rate speech recognition system |
US8639510B1 (en) | 2007-12-24 | 2014-01-28 | Kai Yu | Acoustic scoring unit implemented on a single FPGA or ASIC |
US8463610B1 (en) | 2008-01-18 | 2013-06-11 | Patrick J. Bourke | Hardware-implemented scalable modular engine for low-power speech recognition |
US20110184723A1 (en) * | 2010-01-25 | 2011-07-28 | Microsoft Corporation | Phonetic suggestion engine |
CN102193709B (zh) * | 2010-03-01 | 2015-05-13 | 深圳市世纪光速信息技术有限公司 | 一种字符输入方法及装置 |
US9535895B2 (en) * | 2011-03-17 | 2017-01-03 | Amazon Technologies, Inc. | n-Gram-based language prediction |
US9218334B2 (en) * | 2011-11-08 | 2015-12-22 | Verisign, Inc. | Pronounceable domain names |
US9348479B2 (en) | 2011-12-08 | 2016-05-24 | Microsoft Technology Licensing, Llc | Sentiment aware user interface customization |
US9378290B2 (en) | 2011-12-20 | 2016-06-28 | Microsoft Technology Licensing, Llc | Scenario-adaptive input method editor |
US8880989B2 (en) | 2012-01-30 | 2014-11-04 | Microsoft Corporation | Educating users and enforcing data dissemination policies |
US9087039B2 (en) | 2012-02-07 | 2015-07-21 | Microsoft Technology Licensing, Llc | Language independent probabilistic content matching |
EP2864856A4 (en) | 2012-06-25 | 2015-10-14 | Microsoft Technology Licensing Llc | SEIZURE METHOD EDITOR APPLICATION PLATFORM |
US8959109B2 (en) | 2012-08-06 | 2015-02-17 | Microsoft Corporation | Business intelligent in-document suggestions |
WO2014032244A1 (en) | 2012-08-30 | 2014-03-06 | Microsoft Corporation | Feature-based candidate selection |
CN103065630B (zh) * | 2012-12-28 | 2015-01-07 | 科大讯飞股份有限公司 | 用户个性化信息语音识别方法及系统 |
WO2015018055A1 (en) | 2013-08-09 | 2015-02-12 | Microsoft Corporation | Input method editor providing language assistance |
US10049099B2 (en) * | 2015-04-10 | 2018-08-14 | Facebook, Inc. | Spell correction with hidden markov models on online social networks |
US9898452B2 (en) | 2015-10-16 | 2018-02-20 | International Business Machines Corporation | Annotation data generation and overlay for enhancing readability on electronic book image stream service |
CN106874256A (zh) * | 2015-12-11 | 2017-06-20 | 北京国双科技有限公司 | 识别领域命名实体的方法及装置 |
CN107038157B (zh) * | 2017-05-05 | 2020-09-29 | 百度在线网络技术(北京)有限公司 | 基于人工智能的识别错误发现方法、装置及存储介质 |
JP6781905B1 (ja) * | 2019-07-26 | 2020-11-11 | 株式会社Fronteo | 情報処理装置、自然言語処理システム、制御方法、および制御プログラム |
US12118983B2 (en) * | 2021-04-02 | 2024-10-15 | Samsung Electronics Co., Ltd. | Electronic device and operation method thereof |
Family Cites Families (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6694055B2 (en) * | 1998-07-15 | 2004-02-17 | Microsoft Corporation | Proper name identification in chinese |
WO2000062193A1 (en) * | 1999-04-08 | 2000-10-19 | Kent Ridge Digital Labs | System for chinese tokenization and named entity recognition |
US7333966B2 (en) | 2001-12-21 | 2008-02-19 | Thomson Global Resources | Systems, methods, and software for hyperlinking names |
US7136805B2 (en) | 2002-06-11 | 2006-11-14 | Fuji Xerox Co., Ltd. | System for distinguishing names of organizations in Asian writing systems |
GB2424977A (en) * | 2003-12-31 | 2006-10-11 | Agency Science Tech & Res | System For Recognising And Classifying Named Entities |
US8280719B2 (en) * | 2005-05-05 | 2012-10-02 | Ramp, Inc. | Methods and systems relating to information extraction |
US7464078B2 (en) | 2005-10-25 | 2008-12-09 | International Business Machines Corporation | Method for automatically extracting by-line information |
KR100755678B1 (ko) * | 2005-10-28 | 2007-09-05 | 삼성전자주식회사 | 개체명 검출 장치 및 방법 |
US8185376B2 (en) | 2006-03-20 | 2012-05-22 | Microsoft Corporation | Identifying language origin of words |
US20080046824A1 (en) * | 2006-08-16 | 2008-02-21 | Microsoft Corporation | Sorting contacts for a mobile computer device |
KR20100029221A (ko) * | 2007-06-01 | 2010-03-16 | 구글 인코포레이티드 | 명칭 엔터티와 신규 단어를 검출하는 것 |
-
2007
- 2007-12-06 JP JP2010536305A patent/JP5379155B2/ja active Active
- 2007-12-06 EP EP07845824.7A patent/EP2227757A4/en not_active Ceased
- 2007-12-06 US US12/746,465 patent/US8478787B2/en active Active
- 2007-12-06 WO PCT/CN2007/003464 patent/WO2009070931A1/en active Application Filing
- 2007-12-06 CN CN2007801022966A patent/CN101939741B/zh active Active
- 2007-12-06 KR KR1020107012445A patent/KR101453937B1/ko active Active
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105320663A (zh) * | 2014-06-11 | 2016-02-10 | 安凯(广州)微电子技术有限公司 | 一种控制方法、装置和智能机器 |
CN105988993A (zh) * | 2015-03-06 | 2016-10-05 | 阿里巴巴集团控股有限公司 | 检测网站上注册的姓名合理性的方法和装置 |
CN105988993B (zh) * | 2015-03-06 | 2019-05-07 | 阿里巴巴集团控股有限公司 | 检测网站上注册的姓名合理性的方法和装置 |
CN110291582A (zh) * | 2017-02-14 | 2019-09-27 | 谷歌有限责任公司 | 语言模型偏置系统 |
CN110291582B (zh) * | 2017-02-14 | 2023-02-28 | 谷歌有限责任公司 | 语言模型偏置系统 |
Also Published As
Publication number | Publication date |
---|---|
KR20100105586A (ko) | 2010-09-29 |
EP2227757A4 (en) | 2018-01-24 |
CN101939741B (zh) | 2013-03-20 |
EP2227757A1 (en) | 2010-09-15 |
JP2011505638A (ja) | 2011-02-24 |
JP5379155B2 (ja) | 2013-12-25 |
WO2009070931A1 (en) | 2009-06-11 |
US20100306139A1 (en) | 2010-12-02 |
US8478787B2 (en) | 2013-07-02 |
KR101453937B1 (ko) | 2014-10-23 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN101939741B (zh) | Cjk姓名检测 | |
CN102124459B (zh) | 词典词和短语确定 | |
CN107210035B (zh) | 语言理解系统和方法的生成 | |
CN101630333B (zh) | 用于查询扩展的音译 | |
CN107924483B (zh) | 通用假设排序模型的生成与应用 | |
CN102272754B (zh) | 定制语言模型 | |
CN101785000B (zh) | 词概率确定方法和系统 | |
CN101779200B (zh) | 词典词和短语确定方法和设备 | |
KR20210116379A (ko) | 텍스트 창작 방법, 텍스트 창작 장치, 전자 기기 및 저장 매체 | |
US8538898B2 (en) | Interactive framework for name disambiguation | |
CN102057370A (zh) | 使用经缩放的概率分割词 | |
US20200301919A1 (en) | Method and system of mining information, electronic device and readable storable medium | |
CN106407113B (zh) | 一种基于Stack Overflow和commit库的bug定位方法 | |
CN108932218B (zh) | 一种实例扩展方法、装置、设备和介质 | |
US9092422B2 (en) | Category-sensitive ranking for text | |
CN103026318A (zh) | 输入法编辑器 | |
CN102144228A (zh) | 根据输入字符序列的资源定位符建议 | |
CN101361065A (zh) | 分布式模型的编码和自适应、可扩展访问 | |
CN101836205A (zh) | 域词典创建 | |
CN111508502B (zh) | 用于显示结果的备选的方法和系统 | |
CN111414561A (zh) | 用于呈现信息的方法和装置 | |
CN111144952A (zh) | 基于用户兴趣的广告推荐方法、装置、服务器及存储介质 | |
CN110245334B (zh) | 用于输出信息的方法和装置 | |
JP5770753B2 (ja) | Cjk名前検出 | |
WO2010132062A1 (en) | System and methods for sentiment analysis |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant | ||
CP01 | Change in the name or title of a patent holder | ||
CP01 | Change in the name or title of a patent holder |
Address after: American California Patentee after: Google limited liability company Address before: American California Patentee before: Google Inc. |