对书写体系和语言的检测的制作方法

文档序号:6349392阅读:110来源:国知局
专利名称:对书写体系和语言的检测的制作方法
技术领域
本说明书涉及对书写体系和语言的检测。
背景技术
书写体系使用诸如字符或字素的符号来表示语言的音素。书写体系中的符号集合可以被称为字母系统(script)。例如,拉丁书写体系(包括一个或多个罗马字母系统中的罗马字符集合)可以用于表示英语。可以使用特定的书写体系来表示多种语言。例如,拉丁书写体系也可以用于表示法语。另外,给定的语言也可以通过多个书写体系来表示。例如,可以通过诸如拼音(或汉语拼音)的第一书写体系来表示汉语。也可以使用诸如汉语拼音字母或注音符号(“注音”)的第二书写体系来表示汉语。又如,可以使用诸如汉字的第三书写体系来表示汉语。书写体系和语言之间的复杂关系增加了从输入文本中自动检测出语言的难度。从输入文本中检测出语言的准确度和精度可能取决于用于训练分类器的训练数据的数量和质量。

发明内容
本说明书描述了与语言检测相关的技术。通常,本说明书中所描述的主题的一个方面可以被体现在包括下述行为的方法中接收文本;检测所述文本的第一分段,其中,大量的所述第一分段表示第一语言;检测所述文本的第二分段,其中,大量的所述第二分段表示第二语言;识别所述文本中包括的每一个大小为X的η元字串的得分;并且,基于所述得分的变化来检测边缘,所述边缘标识所述文本中的从所述第一语言向所述第二语言的过渡。这个方面的其他实施例包括对应的系统、设备和计算机程序产品。这些和其他实施例可以选用地包括以下特征中的一个或多个。得分表示所述η元字串表示特定语言的可能性。得分表示在所述η元字串表示所述第一语言的可能性与所述 η元字串表示所述第二语言的可能性之间的差。检测边缘包括计算第一组连续η元字串的得分的第一平均值,其中,连续的η元字串被定义为包括第三η元字串和第四η元字串, 所述第三η元字串包括第一左上下文和第一右上下文,所述第四η元字串包括第二左上下文和第二右上下文,其中,所述第二左上下文是所述第一右上下文,其中,所述第一组连续η 元字串被定义为包括指定数量的连续η元字串,所述指定数量的连续η元字串包括结束η 元字串。检测边缘进一步包括计算第二组连续η元字串的得分的第二平均值,并且所述第二组连续η元字串被定义为包括相同数量的连续η元字串,所述相同数量的连续η元字串包含起始η元字串,其中,所述结束η元字串与所述起始η元字串相邻;并且,基于所述第一平均值与所述第二平均值之间的差来识别边缘。通常,本说明书中所描述的主题的另一个方面可以被体现在包括下述行为的方法中接收文本;识别所述文本的第一部分中所表示的书写体系,其中,所述书写体系表示一种或多种第一语言;并且,仅从所述文本的所述第一部分中所表示的所述一种或多种第一语言中检测特定语言。这个方面的其他实施例包括对应的系统、设备和计算机程序产品。这些和其他实施例可以选用地包括以下特征中的一个或多个。识别所述书写体系包括将所述文本的所述第一部分中的编码中的字符映射到对应的书写体系。所述编码是
统一码。通常,本说明书中所描述的主题的另一个方面可以被体现在包括下述行为的方法中接收文件;识别所述文件的第一部分,其中,所述第一部分中的大量文本以第一书写体系来表示文本;识别所述文件的所述第一部分中的一个或多个分段,其中,所述一个或多个分段中的每一个中的大量文本是以所述第一书写体系的语言来表示的;并且,检测由所述一个或多个分段中的大量文本表示的所述第一书写体系的特定语言。这个方面的其他实施例包括对应的系统、设备和计算机程序产品。这些和其他实施例可以选用地包括以下特征中的一个或多个。所述方法进一步包括识别所述文件的第二部分,其中,所述第二部分中的大量文本以第二书写体系来表示文本;并且,识别所述文件的所述第二部分中的一个或多个分段,其中,所述一个或多个分段中的一个或多个中的每一个中的大量的文本是以所述第二书写体系的语言来表示的。所述第一书写体系是合并的书写体系,所述合并的书写体系包括用于表示汉语、日语和韩语的书写体系。可以将本说明书中所描述的主题的特定实施例实施为实现以下优点中的一个或多个。所公开的用于语言检测的系统和技术可以用于例如通过下述方式来改善训练数据的质量去除噪声数据,并且精确地将训练数据分类为表示特定语言,由此增大从输入文本中检测出语言的准确度、效率和精度。具体地说,检测并去除重复文本增加了可以检测出语言的文件的类型(例如,有噪声的文件,诸如网页、博客和电子邮件),由此增加了可获得的训练数据的数量。而且,因为许多文件包含两种或更多种语言的文本,所以,检测单个文件中混杂的语言也增加了可获得的训练数据的数量。用于语言检测的系统和技术也可以用于例如通过下述方式来使语言检测流线化 从输入文本中去除噪声数据;将分析仅集中在输入文本可能表示的那些书写体系的特定语言;区分类似语言;并且,检测输入文本中使用的各语言之间的精确过渡,由此进一步提高从输入文本中检测出语言的准确度、效率和精度。在下面的附图和说明中给出了本说明书中所描述的主题的一个或多个实施例的细节。根据说明书、附图和权利要求书,本主题的其他特征、方面和优点将变得更加明显。


图1包括示例检测系统。图2A示出用于使用压缩来检测重复的示例处理。图2B图示包括重复的记号的示例文本序列。图3图示用于识别文本中的分段、从而检测书写体系和语言的示例处理。图4A图示示例文本,该示例文本包括用于以第一语言来表示文本的第一记号序列,第一记号序列后跟随以第二语言来表示文本的第二记号序列。
图4B示出用于检测文本中所表示的不同语言之间的边缘的示例处理。图5示出用于产生人工语言并且使用人工语言来检测语言的示例处理。图6A图示包括来自类似语言的词语的示例文本序列。图6B图示用于在类似语言之间进行区分的示例处理。图7是通用计算机系统的示意图。在各个附图中,类似的附图标记指示类似的元件。
具体实施例方式统计式语言检测概述η元字串(n-gram)是η个连续的记号(token)的序列,其中记号诸如为字或字符。 η元字串具有级或大小,这个级或大小是η元字串中的记号的数量。例如,1元字串(或单元字串)包括一个记号;2元字串(或双元字串)包括两个记号。可以根据η元字串的不同部分来描述给定的η元字串。η元字串可以被描述为上下文(context)和未来记号(future token)(上下文,w),其中,上下文具有长度n_l,w表示未来记号。例如,可以以η元字串上下文和未来记号的方式来描述3元字串“C1C2C3”,其中,ci、c2、c3各自均表示字符。η元字串左上下文包括处于η元字串的最后记号之前的η元字串的所有记号。在所给出的示例中,"C1C2”是该上下文。该上下文中的最左的记号被称为左记号。未来记号是η元字串的最后记号,在本示例中,这个最后记号是“c3”。也可以相对于右上下文来描述η元字串。右上下文包括被表示为η-1元字串的、跟随η元字串的第一记号的η元字串的所有记号。在上面的示例中,"C2C3”是右上下文。每一个η元字串均可以具有相关联的概率估计,例如对数概率,对数概率被计算为相对于训练数据中的全部事件的计数而言的、训练数据中的特定语言的事件的计数的函数。例如,语言检测系统可以通过识别训练数据中的所有4元字串(四元字串)来解析训练数据。对于每一个四元字串,可以保持和记录对训练数据中的每一个特定语言的事件的数量的计数。每一个四元字串也可以与概率估计相关联,该概率估计指示四元字串识别特定语言的可能性。例如,用于与诸如英语拉丁语的en-Latn对应的第一四元字串的条目可以与第一四元字串指示英语文本的可能性相关联。又如,用于第一四元字串的另一个条目也可以对应于诸如法语拉丁语的fr-Latn,并与第一四元字串指示法语文本的可能性相关联。在一些实现方式中,使用训练数据中的以特定语言表示的η元字串的相对频率, 来训练这些η元字串识别这个特定语言的字的概率。另外,在一些实现方式中,将分布的训练环境用于大的训练数据(例如,数据的太字节)。用于分布式训练的一种示例技术是 MapReduce0 在 J. Dean 及 S. Ghemawat, MapReduce-Simplified Data Processing on Large Clusters,Proceedings of the 6th Symposium on Operating Systems Design and Implementation, pp. 137 15(^2004 年 12 月 6 日)中,描述了 MapReduce 的另外的细节。可以将η元字串、相关联的概率估计以及相应的计数存储在分类模型中,以由用于检测输入文本中的语言的、诸如贝叶斯分类器的分类器来使用。可以通过下述方式来计算用于指示输入文本表示特定语言的可能性的得分将输入文本中包括的η元字串映射到用于特定语言的相关联的概率估计,并且对与每一个η元字串的相关联的概率估计对应的对数可能性进行求和。例如,两组训练数据包括第一组法语训练数据(例如,以法语表示的网页的语料库、搜索查询日志、电子邮件和博客)和第二组英语训练数据。可以使用传统技术来处理每组训练数据,使得可以例如使用哈希表来识别并在分类模型中存储每一个η元字串的上述计数和概率估计。然后可以使用概率估计来检测其他文本中的语言。具体地说,可以使用指定大小的η元字串来解析其他文本。可以将指定大小的η元字串与分类模型中的条目作比较,以确定相应的概率。如下所述,其他技术和对于传统技术的改进也是可能的。示例语言检测系统图1包括示例检测系统100。检测系统100包括压缩模块105、分割模块110、边缘检测模块115、语言产生模块120、比较模块125、分类模块130和检测模块135。检测系统100的部件可以彼此一个或多个地可通信地耦合。其他实现方式是可能的。例如,分类模块130可以是与检测系统100分离的部件。而且,虽然将检测系统100中所标识出的部件描述为在逻辑上分离或不同,但是检测系统100的部件中的一个或多个可以进行组合或进一步划分。检测系统100可以用于通过执行包括下面参考图2Α至6Β所述的行为的操作来检测文本中表示的书写体系和语言。在一些实现方式中,检测系统100识别特定语言的多组训练数据,这可以用于识别其他文本的语言。例如,可以使用所识别的多组训练数据来训练用于语言检测的朴素贝叶斯分类器。在一些实现方式中,检测系统100基于根据表示特定语言的指定的多组训练数据而产生的分类模型,识别输入文本中的语言。其他实现方式是可能的。例如,检测系统100可以识别用于特定语言的多组训练数据,并且利用传统技术、 下述技术或其组合使用所识别的多组训练数据来检测其他输入文本中的语言。作为概述,压缩模块105检测无法识别特定语言的文本重复。分割模块110将文本分割为多个部分,以协助对文本的这些部分所表示的特定语言进行精确识别。边缘检测模块115检测得分的边缘,这些得分的边缘用于识别以特定语言表示文本中的序列的概率, 以协助对文本的各部分中的语言之间的过渡进行精确识别。语言产生模块120例如以分类模型的形式来产生人工语言,以协助对文本的如下部分的识别这些部分不应被用于识别该文本所表示的特定语言。比较模块125、分类模块130和检测模块135可以单独或与其他模块相结合地用于提供语言检测。例如,比较模块125和分类模块130可以用于在使用类似词语的语言之间进行区分。检测重复文本重复文本可以被视为“噪声”,该噪声使得所计算出的、文本序列识别特定语言的概率发生偏斜。因此,从训练数据中或从要检测语言的输入文本中去除重复文本会是有益的。图2Α示出示例处理200,示例处理200用于使用压缩来检测重复。为方便起见,将相对于执行压缩的系统(例如,图1的检测系统100)来描述文本的压缩。该系统接收文本 202。该系统将文本的多个部分识别为不重复的。具体地说,该系统压缩204文本的第一部分的底层数据。例如,压缩模块105可以使用传统的压缩技术来压缩输入文本的一部分,例如输入文本的一个或多个行或段落。例如,该系统可以使用无损数据压缩技术或有损数据压缩技术。在压缩底层数据后,该系统基于底层数据的压缩量来识别206数据压缩比。例如,压缩模块105可以识别数据压缩比。该系统基于数据压缩比来确定208文本的第一部分是否为不重复的。例如,压缩模块105可以将数据压缩比与阈值作比较。通常,随着底层数据可以被压缩的量增大,文本将更可能是重复的。因此,所使用的阈值可以取决于所执行的压缩技术。例如,当使用无损数据压缩技术时,可以将阈值设置为比使用有损数据压缩技术时低的值。在一些实现方式中,如果所识别的数据压缩比小于阈值,例如,文本的第一部分不能被压缩多于表示重复文本的那个压缩量,则文本的第一部分被确定为不重复的。类似地,如果所识别的数据压缩比大于或等于阈值,则文本的第一部分被确定为重复的。该系统基于文本的被确定为不重复的那些部分来将文本的第一部分识别210为语言检测中使用的候选文本。例如,如果文本的第一部分被识别为非重复的,则分类模块 130可以将文本的第一部分识别为语言检测中使用的候选文本。在一些实现方式中,候选文本被用作训练数据,这些训练数据可以用于产生用于检测语言的一个或多个分类模型。在一些替代实现方式中,候选文本是输入文本的检测到一种或多种语言的那个部分。在一些实现方式中,使用预测窗口来解析输入文本的固定大小的块(诸如48字节)。可以使用预测窗口来执行例如三元字串的12比特的哈希(hash),以预测跟随该三元字串的下一个记号。预测窗口可以在文本中的每一个三元字串上移位,例如一次移位一个记号,从而计算多个正确的预测(或重复)。图2B图示包括重复记号的示例文本序列。该文本序列示出记号 "X1X2X3X4X1X2X5XiX6^例如,记号中的每一个均表示字符。检测系统接收字符序列 "X1X2X3X4X1X2X5XiX6^第一字符&可以被存储在存储器中,例如存储在诸如哈希表的数据结构中。当文本中的第一字符后立即出现第二字符时,检测系统也将第一字符与第二字符相关联。例如,因为在^c1之后立即出现X2,所以可以将^与^相关联。当第二字符已经与第一字符相关联时,例如,当通过第一字符预测第二字符时,检测系统把跟随有第二字符的第一字符的组合识别为重复的。例如,字符”在&出现后重复,并被检测为重复的。在一些实现方式中,将诸如&的第一字符仅与被检测为在第一字符之后立即出现的最近字符相关联。例如,^在)^第三次出现之后立即出现。因此,^与)^相关联,而& 不再与&相关联。结果,字符”的下一个出现将不会被识别为重复的。相反,在字符 "X1X2"的下一个出现后,才将&与\相关联。换句话说,只有跟随有第二字符的第一字符的组合在跟随有不同于第二字符的第三字符的第一字符出现之前再次出现时,才识别重复字符。在一些实现方式中,对于输入文本的固定大小的块的正确预测的高分数(例如, 60%)指示重复文本,并且,在该系统执行语言检测之前去除输入文本的固定大小的块。在其他实现方式中,例如基于执行上述的技术,文本可能看起来是不重复的,而可能以低可靠性被识别为由特定的语言表示。例如,两种最可能由文本表示的语言的概率可能是类似的, 或者最可能由该文本表示的语言被检测为表示少于该文本的1/3。当可靠性低、并且正确预测的高分数(例如,50% )指示重复文本时,在执行语言检测之前去除包括重复文本的字。 例如,在语言检测中,可以去除对如图2B中所示的、&之后的“XA”的出现的使用。其他实现方式是可能的。例如,即使当可靠性不低时,也可以去除重复的字。在一些实现方式中,通过删除来去除重复字。在另外的实现方式中,使用权重来修改(例如,降低)重复字的相关联的概率估计。例如,为了进行去除,可以将这些相关联的概率估计乘以零。又如,可以将这些相关联的概率估计乘以具有零和一之间的值的权重,以在不完全去除重复字的情况下,减少可能归因于重复字的统计误差。识别文本中的分段当检测语言时,将文本进行分割(segment)会是有益的,因为可以以不同的书写体系来表示文本的不同部分。此外,可以以不同的语言来表示特定书写体系中的一个部分的不同分段(segment)。例如,文本可以包括拉丁文的文本的第一部分和西里尔文的文本的第二部分。拉丁字母的文本的第一部分可以包括用于表示英语和西班牙语的文本的分段。 西里尔字母的文本的第二部分可以包括用于表示保加利亚语和俄语的文本的分段。文本的第一部分或第二部分包括用于表示汉语的文本的分段的可能性是不可能的。而且,文本的第一部分包括用于表示保加利亚语的文本的分段的可能性也是不可能的。结果,可能有益的是,首先检测文本中表示的书写体系,然后检测由书写体系表示的语言。图3示出示例处理300,示例处理300用于识别文本中的分段,从而检测书写体系和语言。为方便起见,将相对于执行识别的系统(例如,图1的检测系统100)来描述分段的识别。该系统接收302文本。例如,该系统可以接收例如文本文件形式的输入文本。该系统识别304文本的第一部分中表示的书写体系。该书写体系表示一种或多种第一语言。例如,该系统可以使用传统技术、在此所述的技术或其组合来识别书写体系。作为具体示例,可以通过检测文本的编码来识别书写体系。如上所述,书写体系可以对应于一种或多种语言。该系统仅从文本的第一部分中表示的一种或多种第一语言中检测特定语言。例如,该系统可以识别文件的第一部分,其中,第一部分中的大量文本以第一书写体系表示文本。通常,输入文本中的每一个字符属于特定的字母系统或书写体系。可以在字符表中执行字符的查找,以识别字符值和书写体系, 例如通过将诸如UTF-8的输入编码中的字符映射为UTF-8字符表中的字符值来进行这种查找。通过以这种方式映射每一个字符,可以识别输入文本的连续部分。使用类似的技术,该系统也可以在识别其他书写体系时,识别文件的其他部分,例如文本的段落或行。可以独立地处理以不同书写体系表示文本的、每一个识别出的部分,以识别与不同书写体系中的每一个书写体系对应的语言。例如,系统可以识别文件的第一部分中的一个或多个分段,例如文本的段落或行内的字符序列,其中,以第一书写体系的语言来表示一个或多个分段中的每一个分段中的大量文本。该系统也可以检测由一个或多个分段中的大量文本所表示的第一书写体系的特定语言。例如,该系统可以识别出以拉丁字母表示文件中的第一段落。该系统可以然后检测第一段落的该部分是英语,而第一段落的另一个部分是法语。其他实现方式是可能的。在一些实现方式中,将两个或更多的书写体系当作单个书写体系。例如,表示汉语、日语和韩语(CJK)的书写体系可以被组合为单个书写体系并当作单个书写体系,例如合并的书写体系,以用于语言检测的目的。当两种或更多种语言使用来自同一书写体系的字符时,使用合并的书写体系会是有益的。具体地说,汉语、日语和韩语各自均使用汉字(汉语字)。如果日语文本被分割为汉部分、片假名部分和平假名部分, 则汉部分可能被误识别为表示汉语而不是表示日语。例如通过使用用于CJK的合并的书写体系来组合这些部分,将会允许在识别混杂的汉字时考虑来自片假名和平假名文本的上下文,并且理想地导致识别出日语。检测边缘用于改善语言检测的另一种技术包含检测边缘,这些边缘指示文本中从一种语言向另一种语言的过渡。具体地说,可以检测得分之间的变化以识别该过渡。图4A图示示例文本,该示例文本包括用于以第一语言表示文本的第一记号序列,第一记号序列后是用于以第二语言表示文本的第二记号序列。具体地说,文本“hello bonjour”包括英文词“hello”,其后是法语词“bonjour”(例如,英语的“hello”)。该文本可以被表示为记号序列“hellobonjour”。可以针对该记号序列中的η元字串计算得分,以识别文本中表示的一种或多种语言。图4Β示出示例处理400,示例处理400用于检测文本中所表示的不同语言之间的边缘。为方便起见,将相对于执行检测的系统(例如,图1的检测系统100)来描述边缘的检测。该系统接收402文本。该系统检测404文本的第一分段,其中,大量的第一分段表示第一语言。该系统检测406文本的第二分段,其中,大量的第二分段表示第二语言。例如, 该系统可以基于以上参照图1至4Β所述的技术将文本的第一分段检测为表示第一语言, 并且将文本的第二分段检测为表示第二语言。仅为了说明性目的,系统可以初始将“hello bon”识别为英语文本并且将“jour”(例如,英语的“day”)识别为法语。该系统识别408文本中包括的每一个大小为χ的η元字串的得分。如图4Α中所示,例如,可以对于大小为4的η元字串(四元字串)计算得分。在该示例中,四元字串包 “hell”、“ello”、“llob”、“lobo”、“obon”、“bonj”、“onjo”、“njou,ln “jour,,。在一些实现方式中,计算四元字串中的每一个的第一得分,第一得分用于指示该四元字串表示英语的概率。另外,识别四元字串中的每一个的第二得分,第二得分用于指示该四元字串表示法语的概率。例如,可以识别用于指示“hell”表示英语的概率的第一得分 A。另外,可以识别用于指示“hell”表示法语的概率的第一得分B。可以从第一得分中减去第二得分,例如A-B,以产生“hell”的中间得分。可以以类似的方式对于每一个四元字串计算中间得分。在一些实现方式中,相较于法语而言更可能表示英语的四元字串具有正的中间得分,而相较于英语而言更可能表示法语的四元字串具有负的中间得分。单个η元字串的中间得分通常包括噪声,可以通过在多个中间得分上进行平均来去除噪声。这种平均平滑了数据,使得识别出用于指示两种语言之间的过渡的最可能的边界。像这样,在另外的实现方式中,计算文本中依序出现的四元字串的指定数量的中间得分的平均值。例如,如果指定数量是4,则计算“hell”、“ell0”、“ll0b”和“lobo”的中间得分的平均值。在该示例中,计算六组四元字串的中间得分的平均值,这六组四元字串包括 (1) “hell”、“ello”、“llob,m“lobo”;(2) “ello”、“llob”、“lobo”、“obon”;(3) “llob”、 “lobo”、“obon”、“bonj”; (4) “ lobo”、“obon”、“bonj ”、“onjo”; (5) “obon”、“bonj ”、“onjo,,、 “njou”;以及,(6) “b0nj”、“0nj0”、“nj0U”和“jour”。可以计算文本中依序出现的两组四元字串的每对中间得分之间的差。具体地说,可以对于组⑴和O)、⑵和(3)、(3)和 (4)、(4)和(5)以及(5)和(6)计算中间得分之间的差。该系统基于得分的变化来检测410边缘,该边缘标识文本中从第一语言向第二语言的过渡。例如,可以使用得分之间的最大差来检测边缘。理想上,中间得分之间的最大差将会对应于组(5)和(6),以识别出在“hello”和“bonjour”之间存在边缘。其他实现方式是可能的。例如,可以仅基于六组四元字串的第一得分的平均值之间的最大变化来识别边缘。人工语言与在诸如文献或报纸的来源中所找到的文本不同,来自网页的文本可能并不提供对文本中表示何种自然语言(例如,由人说的语言)的有益指示。至少不应当将这样的文本全部用作用于训练分类器、从而检测语言的训练数据。例如,在以英语之外的语言编写的网页上出现“Copyright2008”。因此,字“Copyright”将不会是用于检测语言的有益指示符。类似地,字符序列“jpg”(例如,表示图像文件格式的扩展)频繁地出现在文本中,并且也不提供用于检测语言的有益指示。在实践中,可能将“Copyright”和“jpg”识别为属于可能不是英语的特定自然语言,由此使得语言检测结果失真。可以产生包括这些类型的 η元字串的人工语言,使得当检测文本中的语言时,不会因这些η元字串而影响统计误差。图5示出示例处理500,示例处理500用于产生人工语言并使用人工语言来检测语言。为方便起见,将相对于执行该产生和检测的系统(例如,图1的检测系统100)来描述该产生和检测。该系统检测502训练数据中的一个或多个η元字串,每一个η元字串均与识别多个自然语言的相似可能性相关联。例如,该系统可以使用传统技术、在此所述的技术或其组合对η元字串评分,并且在η元字串中识别一个或多个η元字串,这一个或多个η元字串识别两种或更多种自然语言(例如由人说的语言)的可能性是基本上类似的。该系统基于所识别的η元字串来产生504人工语言。例如,该系统可以产生人工语言的分类模型,该分类模型包括所识别的η元字串、η元字串表示人工语言的相关联的概率估计、以及相应的计数。在一些实现方式中,将人工语言像自然语言那样当作可能被输入文本所表示的语言。例如,可以接收文本。该系统可以检测所接收的文本是否包括用于表示人工语言或其他自然语言的文本。具体地说,该系统接收506文本,并且相对于所接收的文本表示人工语言的第二可能性来计算508所接收的文本表示第一自然语言的第一可能性。例如,该系统可以检测到所接收的文本表示英语的30%的可能性、所接收的文本表示法语的40%的可能性以及所接收的文本表示人工语言的30%的可能性。可以将所接收的文本表示人工语言的可能性与所接收的文本表示例如英语的可能性作比较,例如以识别置信度值,该置信度值表示相对于法语或其他自然语言而言所接收的文本表示英语的可能性。在一些实现方式中,可以从所接收的文本中去除被识别为表示人工语言的所接收的文本,以产生修改文本。如上所述,可以通过删除来执行去除,或通过使用权重(例如,零权重)修改相关联的概率估计来执行去除。结果,该系统检测修改文本表示自然语言的新的可能性。例如,在修改文本第二次通过时,该系统可以检测到英语的60%的可能性和法语的40%的可能性。类似语言图6Α图示用于在类似语言之间进行区分的示例处理600。为方便起见,将相对于执行区分的系统来描述类似语言之间的区分。该系统(例如,检测系统100)接收602文本。该系统检测604在文本的一部分中所表示的多种语言,其中,这多种语言中的每一种均为基本类似的。例如,该系统可以使用传统技术、前述的技术或其组合来检测文本的该部分中所表示的多种语言(例如,诸如马来西亚语或印度尼西亚语的类似语言)。例如当语言属于同一语系时或者如果语言共享共同的语言结构,则可以认为这些语言彼此基本类似。类似语言的其他示例包括捷克语和斯洛伐克语。在一些实现方式中,通过识别两种或更多种语言中频繁出现的特定η元字串,可以识别类似的语言,其中,这些特定的η元字串表示这两种或更多种语言的可能性是基本上类似的。该系统识别606多种语言中的第一语言表示整个文本的第一可能性。例如,该系统可以识别马来西亚语表示整个文本的第一可能性。该系统识别608多种语言中的第二语言表示整个文本的第二可能性。例如,该系统可以识别印度尼西亚语表示整个文本的第二可能性。该系统比较610第一可能性与第二可能性。例如,该系统可以将马来西亚语表示整个文本的可能性与印度尼西亚语表示整个文本的可能性作比较。该系统基于该比较而识别出612文本的一部分是以第一语言表示的。例如,如果马来西亚语表示整个文本的可能性大于印度尼西亚语表示整个文本的可能性,则该系统可以识别出文本的该部分是以马来西亚语表示的。其他实现方式是可能的。例如,可以基于少于整个文本,例如基于比初始检测到多种语言的那个文本部分大的另一文本部分,识别第一可能性和第二可能性。而且,虽然语言可能类似,但是在一些实现方式中,可以通过一次处理较大数量的记号(例如,8个记号)来更容易地识别类似语言之间的差异。虽然可以对于所有语言均执行一次处理较大数量的记号,但是仅对于类似语言执行这个处理将会提高语言检测的效率,这是因为,通过使用较小数量的记号(例如,4个记号)的处理就可以区分许多语言。例如,可以基于对大小为χ的η元字串的查看来将类似语言检测为可能表示文本序列。将η元字串的大小增大为大小y >所查看的χ将会增大该η元字串将映射到语言中的一个或多个完整的字的可能性,由此增大将一种类似语言与另一种类似语言相区分的可能性。例如,“keuangan”具有为印度尼西亚语的高概率,"kewangan"具有为马来西亚语的高概率,但是“1 5皿”、“皿叫”、“叫£111”、“1 ^£1”、 £1叫”和“叫£111”具有为印度尼西亚语或马来西亚语的类似概率。图6B图示用于在类似语言之间进行区分的另一个示例处理650。为方便起见,将相对于执行区分的系统描述类似语言之间的区分。该系统(例如,检测系统100)接收652 文本。该系统通过将文本分割为大小为χ的η元字串来检测6Μ文本中表示的第一语言和第二语言。例如,该系统使用诸如大小为4的大小为χ的η元字串来解析文本。该系统确定656第一语言与第二语言基本上类似。当第一语言基本上类似于第二语言时,该系统通过将文本分割为大小为y的η元字串来处理658文本,以基于识别出第一语言基本上类似于第二语言来识别文本中表示的特定语言,其中y > χ 例如,该系统使用诸如大小为8的大小为y的η元字串来解析文本。其他实现方式是可能的。例如,例如当系统总是在大量的训练数据(例如以百万计的网页)上仅识别出一种语言时,可以减小η元字串的大小。也可以离线地执行、在运行时间期间(例如响应于接收到输入文本而实时地)执行或以其组合来执行前述的技术。离线地执行这些技术的示例包括产生训练数据,以用于识别输入文本中表示的语言。在运行时间期间执行这些技术的示例包括压缩输入文本,以去除重复部分;将剩余部分进行分割;并且,基于所检测的边缘来识别所分割的各部分中的语言。其他实现方式是可能的。图7是通用计算机系统700的示意图。系统700可以用于实施与前述技术相关联地描述的操作(例如,处理200、220、300、400、500、600和650)。系统700可以包括处理器 710、存储器720、存储装置730和输入/输出装置740。部件710、720、730和740中的每一个均使用系统总线750而互连。处理器710能够处理要在系统700内执行的指令。这样执行的指令可以实现系统的一个或多个部件,以用于例如如相对于图1至6B所述的那样来检测语言。在一种实现方式中,处理器710是单线程处理器。在另一种实现方式中,处理器 710是多线程处理器。处理器710能够处理存储在存储器720中或存储在存储装置730上的指令,以在输入/输出装置740上显示用于用户界面的图形信息。存储器720是用于在系统700内存储信息的计算机可读介质,例如包括易失性或非易失性的。存储器720例如可以存储分类模型。存储装置730能够提供用于系统700的永久存储。存储装置730可以是软盘装置、硬盘装置、光盘装置或磁带装置或者其他适当的永久存储部件。输入/输出装置740提供用于系统700的输入/输出操作。在一种实现方式中,输入/输出装置740包括键盘和/或指示装置。在另一种实现方式中,输入/输出装置740包括显示单元,用于显示图形用户界面。输入/输出装置740可以提供用于诸如图1的检测系统100的系统的输入/输出操作。检测系统100可以包括计算机软件部件,这些计算机软件部件例如实现模块105、 110、115、120、125和130。举几个例子而言,这样的软件部件可以存留在存储装置730、存储器720中,或者可以通过网络连接而获得这样的软件部件。可以在数字电子电路中、或者在计算机软件、固件或硬件中、或者在以上各项中的一个或多个的组合中,实现本说明书中所描述的操作和主题的实施例,其中硬件包括本说明书中所公开的结构及其结构等同物。可以将本说明书中所描述的主题的实施例实现为编码在计算机存储媒体上的一个或多个计算机程序(即一个或多个计算机程序指令模块), 这一个或多个计算机程序由数据处理设备来执行或用于控制数据处理设备的操作。计算机存储介质可以是计算机可读存储装置、计算机可读存储基底、随机或串行存取存储器阵列或装置或以上各项中的一个或多个的组合,或者可以被包括在这装置中。术语“数据处理设备”涵盖用于处理数据的所有设备、装置和机器,例如包括可编程处理器、计算机或多个处理器或计算机。除了硬件之外,该设备还可以包括用于建立所涉及的计算机程序的执行环境的代码,例如,构成处理器固件、协议栈、数据库管理系统、操作系统或以上各项中的一个或多个的组合的代码。可以以任何形式的编程语言来编写该计算机程序(也称为程序、软件、软件应用、 脚本或代码),该编程语言包括编译或解释语言或者宣告或过程语言,并且可以以任何形式来部署该计算机程序,该任何形式包括作为单独的程序或作为适用于用在计算环境中的模块、部件、子例程或其他单元。计算机程序不必对应于文件系统中的文件。可以在存储其他程序或数据的文件的一部分(例如,存储在标记语言文件中的一个或多个脚本)中、在专用于所涉及的程序的单个文件中、或在多个协同的文件(例如,存储一个或多个模块、子程序或代码部分的文件)中存储程序。计算机程序可以被部署为在一个计算机上执行、或者在位于一个站点或分布在多个站点并通过通信网络互连的多个计算机上执行。
可以通过一个或多个可编程处理器来执行本说明书中描述的处理和逻辑流,这一个或多个可编程处理器执行一个或多个计算机程序,以通过操作输入数据并产生输出来执行功能。也可以通过诸如FPGA(现场可编程门阵列)或ASIC(专用集成电路)的专用逻辑电路来执行处理和逻辑流,并且设备也可以被实现为诸如FPGA(现场可编程门阵列)或 ASIC(专用集成电路)的专用逻辑电路。适合于执行计算机程序的处理器例如包括通用或专用微处理器以及任何种类的数字计算机的任何一个或多个处理器。通常,处理器将从只读存储器或随机存取存储器或只读存储器及随机存取存储器两者中接收指令和数据。计算机的必要元件是用于执行指令的处理器以及用于存储指令和数据的一个或多个存储器装置。通常,计算机还将包括下述部分,或者将可操作地耦合至下述部分以从下述部分接收数据或向下述部分传送数据或从下述部分接收数据并向下述部分传送数据用于存储数据的一个或多个海量存储装置,例如,磁盘、磁光盘或光盘。然而,计算机不是必须具有这样的装置。而且,计算机可以被嵌在另一个装置中,该另一个装置例如是移动电话、个人数字助理(PDA)、移动音频或视频播放机、游戏控制台、全球定位系统(GPQ接收器(仅列出几个)。适合于存储计算机程序指令和数据的计算机可读媒体包括所有形式的非易失性存储器、媒体和存储器装置,例如包括半导体存储器装置,例如EPROM、EEPROM和快闪存储器装置;磁盘,例如内部硬盘或可装卸盘;磁光盘;以及,⑶-ROM和DVD-ROM盘。处理器和存储器可以被专用逻辑电路所补充,或包含在专用逻辑电路中。为了提供与用户的交互,可以在计算机上实现本说明书中描述的主题的实施例, 该计算机具有显示装置,例如CRT(阴极射线管)或LCD(液晶显示器)监控器,用于向用户显示信息;以及,键盘和指示装置,例如鼠标或跟踪器,用户可以过它们向计算机提供输入。也可以使用其他种类的装置来提供与用户的交互;例如,向用户提供的反馈可以是任何形式的感觉反馈,例如视觉反馈、听觉反馈或触觉反馈;并且,可以以任何形式接收来自用户的输入,包括声音、语音或触觉输入。可以在计算系统中实现本说明书中描述的主题的实施例,该计算系统包括例如作为数据服务器的后端部件,或者包括诸如应用服务器的中间部件,或者包括诸如客户端计算机的前端部件,或者这样的后端、固件或前端部件中的一个或多个的任何组合,其中,该客户端计算机具有图形用户界面或网络浏览器,用户可以通过图形用户界面或网络浏览器来与本说明书中描述的主题的实现方式进行交互。可以通过诸如通信网络的数字数据通信的任何形式或介质来互连该系统的部件。通信网络的示例包括局域网(“LAN”)和诸如因特网的广域网(“WAN”)。该计算系统可以包括客户端和服务器。客户端和服务器通常彼此远离,并且通常通过通信网络来交互。客户端和服务器的关系凭借如下计算机程序来产生这些计算机程序运行在相应的计算机上,并且彼此具有客户端和服务器的关系。虽然本说明书包含许多具体实现细节,但是这些细节不应当被解释为对于任何实现方式或可能要求保护的内容的范围的限制,而是应被解释为对特定实现方式的特定实施例所可能特有的特征的描述。也可以在单个实施例中组合地实现本说明书中在独立的实施例的语境中所描述的特定特征。反之,也可以在多个实施例中独立地实现或以任何适当的子组合来实现在单个实施例的语境中所描述的各种特征。而且,虽然以上可以将各特征描述为以特定的组合进行动作、甚至初始声称各特征以特定的组合进行动作,但是可以在一些情况下从所声称的组合中去除来自该组合的一个或多个特征,并且,所声称的组合可以涉及子组合或子组合的变化形式。类似地,虽然在附图中以特定的顺序描述了操作,但是这不应当被理解为,为了实现期望的结果,要求以所示的特定顺序或顺序地执行这些操作或者执行所说明的所有操作。在特定的情况下,多任务和并行处理可能是有益的。而且,上述实施例中的各个系统部件的分离不应当被理解为所有实施例中均要求这样的分离,并且应当明白,所述的程序组件和系统通常可以一起集成在单个软件产品中或封装到多个软件产品内。已经描述了本说明书中所描述的主题的特定实施例。其他实施例在所附的权利要求的范围内。例如,可以以不同的顺序来执行权利要求中所描述的行为,而仍然实现期望的结果。例如,附图中所描述的处理并不必然要求所示的特定顺序或次序来实现期望的结果。 在特定实现方式中,多任务和并行处理可能是有益的。
权利要求
1.一种计算机实现的方法,包括 接收文本;检测所述文本的第一分段,其中,大量的所述第一分段表示第一语言; 检测所述文本的第二分段,其中,大量的所述第二分段表示第二语言; 识别所述文本中包括的每一个大小为X的η元字串的得分;并且, 基于所述得分的变化来检测边缘,所述边缘标识所述文本中的从所述第一语言向所述第二语言的过渡。
2.根据权利要求1所述的方法,其中,得分表示所述η元字串表示特定语言的可能性。
3.根据权利要求1所述的方法,其中,得分表示在所述η元字串表示所述第一语言的可能性与所述η元字串表示所述第二语言的可能性之间的差。
4.根据权利要求3所述的方法,其中,检测边缘包括计算第一组连续η元字串的得分的第一平均值,其中,连续η元字串被定义为包括第三 η元字串和第四η元字串,所述第三η元字串包括第一左上下文和第一右上下文,所述第四 η元字串包括第二左上下文和第二右上下文,其中,所述第二左上下文是所述第一右上下文,其中,所述第一组连续η元字串被定义为包括指定数量的连续η元字串,所述指定数量的连续η元字串包括结束η元字串;计算第二组连续η元字串的得分的第二平均值,并且所述第二组连续η元字串被定义为包括相同数量的连续η元字串,所述相同数量的连续η元字串包含起始η元字串,其中, 所述结束η元字串与所述起始η元字串相邻;并且,基于所述第一平均值与所述第二平均值之间的差来识别边缘。
5.一种计算机实现的方法,包括 接收文本;识别所述文本的第一部分中所表示的书写体系,其中,所述书写体系表示一种或多种第一语言;并且,仅从所述文本的所述第一部分中所表示的所述一种或多种第一语言中检测特定语言。
6.根据权利要求5所述的方法,其中,识别所述书写体系包括将所述文本的所述第一部分中的编码中的字符映射到对应的书写体系。
7.根据权利要求6所述的方法,其中,所述编码是统一码。
8.一种计算机实现的方法,包括 接收文件;识别所述文件的第一部分,其中,所述第一部分中的大量文本以第一书写体系来表示文本;识别所述文件的所述第一部分中的一个或多个分段,其中,所述一个或多个分段中的每一个中的大量文本是以所述第一书写体系的语言来表示的;并且,检测由所述一个或多个分段中的大量文本表示的所述第一书写体系的特定语言。
9.根据权利要求8所述的方法,进一步包括识别所述文件的第二部分,其中,所述第二部分中的大量文本以第二书写体系来表示文本;并且,识别所述文件的所述第二部分中的一个或多个分段,其中,所述一个或多个分段中的一个或多个中的每一个中的大量文本是以所述第二书写体系的语言来表示的。
10.根据权利要求8所述的方法,其中,所述第一书写体系是合并的书写体系,所述合并的书写体系包括用于表示汉语、日语和韩语的书写体系。
11.一种被编码在有形的程序载体上的计算机程序产品,所述计算机程序产品可用于使得数据处理设备进行操作,所述操作包括接收文本;检测所述文本的第一分段,其中,大量的所述第一分段表示第一语言; 检测所述文本的第二分段,其中,大量的所述第二分段表示第二语言; 识别所述文本中包括的每一个大小为X的η元字串的得分;并且, 基于所述得分的变化来检测边缘,所述边缘标识所述文本中的从所述第一语言向所述第二语言的过渡。
12.—种被编码在有形的程序载体上的计算机程序产品,所述计算机程序产品可用于使得数据处理设备进行操作,所述操作包括接收文本;识别所述文本的第一部分中所表示的书写体系,其中,所述书写体系表示一种或多种第一语言;并且,仅从所述文本的所述第一部分中所表示的所述一种或多种第一语言中检测特定语言。
13.一种被编码在有形的程序载体上的计算机程序产品,所述计算机程序产品可用于使得数据处理设备进行操作,所述操作包括接收文件;识别所述文件的第一部分,其中,所述第一部分中的大量文本以第一书写体系来表示文本;识别所述文件的所述第一部分中的一个或多个分段,其中,所述一个或多个分段中的每一个中的大量文本是以所述第一书写体系的语言来表示的;并且,检测由所述一个或多个分段中的大量文本表示的所述第一书写体系的特定语言。
14.一种系统,包括机器可读存储装置,包括程序产品;以及一个或多个计算机,可用于执行所述程序产品并进行操作,所述操作包括 接收文本;检测所述文本的第一分段,其中,大量的所述第一分段表示第一语言; 检测所述文本的第二分段,其中,大量的所述第二分段表示第二语言; 识别所述文本中包括的每一个大小为χ的η元字串的得分;并且, 基于所述得分的变化来检测边缘,所述边缘标识所述文本中的从所述第一语言向所述第二语言的过渡。
15.一种系统,包括机器可读存储装置,包括程序产品;以及一个或多个计算机,可用于执行所述程序产品并进行操作,所述操作包括 接收文本;识别所述文本的第一部分中所表示的书写体系,其中,所述书写体系表示一种或多种第一语言;并且,仅从所述文本的所述第一部分中所表示的所述一种或多种第一语言中检测特定语言。
16. 一种系统,包括机器可读存储装置,包括程序产品;以及一个或多个计算机,可用于执行所述程序产品并进行操作,所述操作包括 接收文件;识别所述文件的第一部分,其中,所述第一部分中的大量文本以第一书写体系来表示文本;识别所述文件的所述第一部分中的一个或多个分段,其中,所述一个或多个分段中的每一个中的大量文本是以所述第一书写体系的语言来表示的;并且,检测由所述一个或多个分段中的大量文本表示的所述第一书写体系的特定语言。
全文摘要
公开了用于检测书写体系和语言的方法、系统和设备(包括计算机程序产品)。在一种实现方式中,提供了一种方法。该方法包括接收文本;检测文本的第一分段,其中,大量的第一分段表示第一语言;检测文本的第二分段,其中,大量的第二分段表示第二语言;识别文本中包括的每一个大小为x的n元字串的得分;并且,基于得分的变化来检测边缘,边缘标识文本中从第一语言向第二语言的过渡。
文档编号G06F17/27GK102483743SQ201080024183
公开日2012年5月30日 申请日期2010年5月19日 优先权日2009年6月5日
发明者理查德·L·赛茨 申请人:谷歌公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1