内容转换方法和装置的制作方法

文档序号:6477983阅读:136来源:国知局

专利名称::内容转换方法和装置的制作方法
技术领域
:本发明涉及将内容从第一种状态转换到第二种状态的方法和装置。
背景技术
:自动地将文档从一种语言翻译为另一种语言的设备和方法是大家所熟知的。然而,这些设备和方法常不能准确地将文档从一种语言翻译为另一种语言,消耗大量的时间并且不便于使用。除了基于人的翻译器,其他现有的设备包括商业化的机器翻译软件。这些现有的系统有缺陷使得它们容易出错、速度很慢而且不方便。现有的翻译设备和方法对文本输入不能一贯地返回准确的翻译并因此常要求密集的用户干涉来验证读取和编辑。准确的机器翻译比进行文档的逐词翻译的设备和方法更加复杂。在这些逐词翻译的系统中,译文常对翻译文档的读者毫无用处,因为逐词翻译方法会导致错误的单词选择以及不相干的语法单元。为了克服这些缺陷,现有的翻译设备几十年来都在尝试基于词汇的、词形的、语法的和语义的规则的组合或集合在句子的语境中进行单词翻译的选择。这些系统,在技术中被称为“基于规则的”机器翻译(MT)系统,是有缺陷的,因为对规则有很多的例外使得它们不能一贯地提供准确的翻译。除了基于规则的MT,在最近十年中,开发出一种称为“基于例子的”(EBMT)新MT方法。EBMT使用存储在跨语言数据库中的两种不同语言的句子(或也可能是句子的部分)。当翻译查询匹配数据库中的句子时,句子的目标语言的翻译由提供第二种语言准确的翻译的数据库产生。如果翻译查询的一部分匹配数据库中句子的一部分,这些设备尝试准确地确定句子映射到源语言句子的哪个部分是查询的翻译。EBMT系统不能提供广泛语言的准确的翻译,因为跨语言句子的数据库是手工地建立的,并且总是明显“不完整的”。EBMT系统的另一个缺陷是部分匹配不能被可靠地翻译。也曾尝试使用成对的用在EBMT中的已翻译的文档来自动化跨语言数据库的创建。然而这些努力并没有成功创建出任何相当规模的有意义的、准确的跨语言数据库。没有任何尝试使用一种可靠并准确地从一对已翻译的文档中得出相当数量的单词和单词串的翻译的算法。一些翻译设备组合了基于规则的和EBMT引擎。虽然这种方法的组合比任何单独的系统提供了更高的正确率,结果仍然不足以进行无需大量用户干涉和编辑的使用。当尝试将文档从一种语言翻译到另一种语言时面临的问题可以更通用地应用到从一种状态,如单词,转换表示概念或信息的数据到表示概念的数据的另一种状态,例如,数学符号的问题。在这样的情况下会使用关联一种状态的数据和等价的第二种状态的数据的跨概念关联数据库。因此,存在对改进的并且更加高效的方法和装置的需要来创建字典或关联不同语言或状态,(如,单词、单词串、声音、运动等等)的等价概念的数据库并翻译或转换由一种语言或状态的文档传达的概念到由第二种语言或状态的文档表示的相同或相似概念。本发明涉及使用跨概念关联数据库处理内容。更特别地,本发明提供一种方法和装置用来创建关联概念的数据库并提供一种方法和装置用来使用该数据库来从一种状态转换概念到其他状态。在一个实例中,并且作为例子,本发明提供一种方法和装置用来创建语言翻译数据库,其中两种语言构成关联概念数据库。本发明还提供一种方法和装置用于使用该语言数据库来从一种语言转换文档(表示概念的)到另一种语言(或更一般地,从一种状态到另一种状态)。然而,本发明并不仅限于语言翻译,虽然首选实例将以语言翻译展示。本发明的数据库创建方面也可以被应用于任意以某种方式关联但以不同状态表达的概念同时本发明的转换方面可以被应用于准确地从一种状态转换概念到另一种状态。现在说明对语言翻译应用本发明的实例。如在此所用,涉及转换、翻译和处理的术语可以替换使用并且以它们的最广泛含义来使用。发明概要本发明的一个目标是通过提供一种创建和补充跨概念关联数据库的方法和装置来帮助高效的从一种语言或状态到另一种语言或状态的文档翻译。这些数据库通常关联表示特定概念或信息的第一种形式或状态的数据和表示相同概念或信息的第二种形式或状态的数据。本发明的另一个目标是通过提供一种从包括第一种状态、形式或语言的数据的第一个文档创建包括第二种状态、形式或语言的数据的第二个文档,使第一个和第二个文档表示本质上相同的概念或信息的方法和装置来帮助从一种语言或状态到另一种语言或状态的文档翻译。本发明的另一个目标是通过提供一种从包括第一种状态、形式或语言的数据的第一个文档创建包括第二种状态、形式或语言的数据的第二个文档,使第一个和第二个文档表示本质上相同的概念或信息的方法和装置,并且所述方法和装置包括使用跨概念关联数据库来帮助从一种语言或状态到另一种语言或状态的文档翻译。本发明的另一个目标是以实时的方式提供文档翻译(以更广泛的意义,概念从一种状态到另一种状态的转换)。本发明通过提供一种用于创建跨概念数据库的方法和装置来实现这些及其他目标。用于创建跨概念数据库的方法和装置可以包括提供表示同样的一般文本(即,文本的准确翻译(“并列文本”)或一般地相关的文本(“可比较文本”))的两种(或更多)不同语言的一对或多对文档。本发明在可用的跨语言文档中至少选择在第一种语言中多次出现的所有单词和单词串的第一次和第二次出现。然后在第二种语言的文档中至少选择第一个单词范围和第二个单词范围,其中第一个和第二个单词范围对应于所选单词或单词串在第一种语言的文档中的第一次和第二次出现。然后,比较在第一个单词范围中发现的单词和单词串与在第二个单词范围中发现的单词和单词串,并且定位同时出现在两个单词范围中的单词和单词串,并在跨概念数据库中存储这些已定位的共同单词和单词串。然后本发明在所述跨概念数据库中关联在两个范围中已定位的第二种语言的共同单词或单词串和第一种语言的所选单词或单词串,在如在此详述的那样调整关联频数之后,根据它们的关联频数(重现次数)排序。通过在并列或比较文本中跨语言检验共同单词和单词串,当更多的多中不同的语言的并列或比较文本可用时,数据库将得到更多的关联。本发明还通过提供从一种状态转换文档到另一种状态的一种方法和装置来实现这些和其他目标。本发明提供包括和第二种语言的数据片段关联(通过上述方法或手工地创建)的第一种语言的数据片段的数据库。本发明通过访问上面引用的数据库来翻译文本,并在文档中标识开始于文档存在于数据库中的第一个单词的最长的单词串来翻译(用单词数来衡量)。然后系统从数据库中检索和第一种语言的文档中已定位的单词串关联的第二种语言的单词串。然后系统在文档中选择存在于数据库中并且有和文档中的原先已标识的单词串重叠的单词(或替换地单词串)的第二个单词串,并从数据库中检索和第一种语言的第二个单词串关联的第二种语言的单词串。如果第二种语言的单词串关联有重叠的单词(或替换地多个单词),组合第二种语言的单词串关联(消除在重叠中的重复)来构成翻译;否则,通过单词的重叠来检索和检验另外的第二种语言对第一种语言的单词串的关联以组合,直到成功。通过在数据库中查找和原先已标识的第一种语言的单词串有重叠单词(或替换地多个单词)的最长的单词串,选中文档中第一种语言的下一个单词串,并且继续上述处理直到整个第一种语言的文档被翻译为第二种语言的文档。图1依照本发明展示跨概念数据库的实例。发明的详细说明本发明提供一种创建和补充跨概念关联数据库并使用跨概念数据库从一种语言或状态到另一种语言或状态翻译文档的方法和装置。如此所述的文档是信息的集合,如通过固定在某种媒体中的符号和字符来表示的概念。例如,文档可以为存储在磁或光媒体上的电子文档,或纸质文档,如书籍。包含在文档中的符号和字符表示使用一种或多种用于由文档的用户理解的表达系统表达的概念和信息。本发明处理具有第一种状态(即包含以第一种表达系统表达信息)的文档,来产生具有第二种状态(即包含使用第二种表达系统表达本质上相同信息)的文档。因此,本发明可以在表达系统之间处理或翻译文档,例如,书面语或口语如英语、希伯来语,及广东话,变成其他语言。现在对本发明的详细说明,包括数据库创建方法和装置,及转换方法和装置进行叙述。1.数据库创建方法和装置a.概述本发明的方法使用跨概念数据库来进行文档内容处理。图1详述了一个跨概念数据库的实例。该跨概念数据库的实例包括一个在列1和列2中的关联数据片段的列表。数据片段为以一种表达系统表示特定概念或信息的符号或字符串的分组。因此,列1中的系统A片段是表示假设的表达系统A的不同概念及概念Da1、Da2、Da3和Da4的组合的数据片段。列2中的系统B片段是表示根据和表达系统A的数据片段的关联频数排序的假设的表达系统B的不同概念及这些概念的组合的数据片段Db1、Db3、Db4、Db5、Db7、Db9、Db10和Db12。列3展示直接频数,它是语言B的片段或多个片段和语言A的所列片段(或多个片段)关联的次数。列4展示减法后频数(FrequenciesafterSubtraction),它表示语言B的数据片段(或多个片段)和语言A的片段(或多个片段)关联的次数在减去片段(或多个片段)作为一个更大片段的部分关联的次数之后的次数,如下所述。如图1所示,可能一个片段,如Da1比较适合与多个片段Db1、Db3和Db4一起关联。数据片段之间的减法后频数越高,系统A片段等价于系统B片段的概率越高。除了用出现总次数衡量调整的频率,调整的频率还可以通过例如计算特定系统A片段对应于特定系统B片段的次数百分比来衡量。当使用数据库翻译文档时,将在处理中首先从数据库中检索出最高排序的关联片段。然而,通常用来检验用于翻译的关联片段的组合的方法(如下所述)确定一个不同的、较低排序的关联将被检验,因为较高排序的关联一旦被检验,就不能再使用。例如,如果为了得到Da1的关联查询数据库,将返回Db1+Db3+Db4;如果如准确地组合数据片段用于翻译的处理确定的那样不能使用Db1+Db3+Db4,数据库将返回Db9+Db10来检验和另一个关联片段的准确组合,用于翻译。通常,创建本发明的跨概念数据库的方法包括检查和操作并列或比较文本。使用本发明的方法和装置使得用跨两种状态的关联-准确的转换,或更加具体,如以一种状态表达的概念和以另一种状态表达的概念之间的关联创建数据库。当通过本发明检查和操作更多文档时,翻译和其他两种状态之间相关的关联变得更强,即,更频繁,以使得通过操作足够大的文档“样本”,最普遍(并且,以某种意义来说,正确的)关联变得明显并且该方法和装置可以被用于转换的目的。在本发明的一个实例中,两种状态表示单词语言(如,英语、希伯来语、中文,等等)以使得本发明创建关联一种语言的单词和单词串与它们第二种语言的翻译对应部分的跨语言数据库。单词串可以定义为连续的邻接单词的组并且经常包括标点符号及使用在语言表达中的任何其他符号。在这个例子中,本发明通过检查两种语言的文档创建数据库并为每个在两种语言中重现的单词或单词串创建翻译的数据库。然而本发明不仅限于语言翻译。本发明允许用户创建概念的数据库并且以层次的方式关联那些概念与其他不同的概念。因此,概念根据出现的频数和其他概念关联。赋予出现频数的具体权重,及对这样创建出的数据库的使用,取决于用户的需求可以不同。例如,在从一种语言到另一种语言转换文本上下文中,本发明将在英语和中文之间操作来创建单词和单词串的语言翻译。本发明将返回跨两种语言的单词和单词串之间的关联的排序。给定足够大的样本尺寸,最经常出现的单词或单词串将是英文单词或单词串的等价中文之一。然而,本发明也将返回该英语单词和单词串的其他中文关联,并且用户可以根据需要处理那些关联。例如,当根据本发明操作单词“mountain”时,会返回中文单词和被检查的语言的单词串的列表。单词“mountain”的中文等价将很可能排序为最高;然而,本发明将返回和“mountain”关联的其他外语单词或单词串,如“snow”、“ski”、“adangeroussport”、“thehighestpointintheworld”,或“Mt.Everest”。这些单词和单词串,它们很可能比“mountain”的翻译有更低的排序,可以由用户根据需要处理。因此,本发明是一个自动化的关联数据库创建器。某种意义上,最强的关联表示“翻译”或“转换”,但其他频繁(但较弱)的关联表示和被检查的概念密切相关的概念。从而数据库可以由使用在技术中熟知的人工智能应用的系统使用。那些系统目前为应用使用不完全的、手工创建的概念数据库或如“神经网络”这样的实体。本发明的另一实例使用属于在已有的技术中随时可用的类型的计算设备,如个人计算机系统。虽然该计算设备通常是普通的个人计算机(独立的或者在联网环境中的),其他计算设备如PDA、无线设备、服务器、大型机,和类似设备可以类似地使用。然而,本发明的方法和装置并不需要使用这样的计算设备并且能够随时通过其他方法实现,包括手工创建交叉关联。检查接连的文档来扩大“样本”文档并且创建交叉关联数据库的方法是多样的-文档可以被手工地设置用于分析和处理,通过自动装入(如已有技术中熟知的自动加纸机),或通过使用搜索技术,如Web爬虫在因特网上自动地搜索出相关的文档。注意本发明除了(或甚至于替代)并列文本之外可以通过检查比较文本产生关联数据库。进一步来说,该方法在一种语言中搜索重现的单词或单词串时检查全体地所有可用的文档。b.建立数据库根据本发明,为建立数据库的目的而检查文档。另一个文档输入(再次,以两种不同语言表示相同文本的一对文档的)之后,创建除了开始使用该在此所述的方法和/或装置。为了说明,假设文档以两种语言包含同样的内容(或者,一般的意义来说,概念)。文档A为语言A,文档B为语言B。文档有下面的文本本发明的第一步时检索单词范围来确定对任意给定单词或单词串的可能关联的大概位置。由于单独的跨语言逐词分析不能产生有用的结果(即文档A中的单词1常常不作为文档B中的单词1的字面翻译),并且一种语言和另一种语言的句子结构会有等价概念在句子不同的位置(或顺序),本发明的数据库创建技术关联第一种语言的每个单词或单词串与在第二种语言的文档中所选的范围内发现的所有单词和单词串。这也很重要,因为一种语言常用比另一种语言更长或更短的单词串来表达概念。通过检查两个文档来确定范围,并且范围被用来比较第二个文档中的单词和单词串与第一个文档中的单词和单词串。即,作为第一个文档中的每个单词和单词串的可能关联来检查一个范围的第二个文档中的单词或单词串。通过检验一个范围,数据库创建技术建立多个可能等价于并转换为第一种语言的单词和单词串的第二种语言的单词或单词串。为了在第二种语言的文档中建立范围必须确定两个属性,在第二种语言的文档中对任意给定的第一种语言的文档中的单词或单词串查找关联。第一个属性是范围在第二个文档中的值或大小,由范围中的单词数来衡量。第二个属性是范围在第二个文档中的位置,由范围中点的位置来衡量。两个属性都是用户定义的,但是首选实例的例子随后提供。在定义范围的大小和位置时,目标是确保被分析的第一种语言的片段的第二种语言的单词或单词串翻译被包括进来的概率较高。可以用不同的技术来确定范围的大小或值,包括一般的统计技术如基于文档中的单词数生成钟型曲线。用如钟型曲线这样的统计技术,在文档的开始或结束的范围将小于在文档中间的范围。无论是根据文档中的绝对单词数还是根据文档中某个百分比的单词得到,范围的钟型频数允许合理的翻译的外推(extrapolation)机会。存在其他计算范围的方法,如“阶梯”方法,其中范围对某个百分比的单词存在于一个层次,对另一个百分比的单词的第二高层次,及等于对最后的百分比的单词的第一个层次的第三个层次。再次,所有范围属性都可以为用户定义的或根据其他可能的参数建立,目标为对被分析的第一种语言的单词或单词串获取有用的关联。范围在第二种语言的文档中的位置可以取决于两个文档的单词数的比较。能够作为用于范围定位用途的文档是用户定义的并且例子包括新闻文章、图书章节,及任何其他由多个数据片段组成的离散的可标识内容单元。如果两个文档的单词计数大体上相等,第二种语言中的范围的位置将大体上和被分析的在第一种语言中的单词或单词串的位置相同。如果两个文档的单词计数不相等,那么一个比率可以被用来正确地定位范围的位置。例如,如果文档A由50个单词而文档B由100个单词,两个文档之间的比率为1∶2。文档A的中点为单词位置25。如果正在分析文档A中的单词25,然而,使用这个中点(单词位置25)作为在文档B中的范围中点的位置并不有效,由于这个位置(单词位置25)并非文档B的中点。相反,文档B对文档A中的单词25的分析的范围的中点可以由两个文档之间的单词的比率确定(即,25×2/1=50),通过手工定位在文档B的中点或通过其他技术完成。通过检查文档中的单词或单词串的位置并且注意落在上述范围之内的所有的单词或单词串,本发明的数据库创建技术返回一组可能的可以翻译为被分析的第一个文档中的每个单词或单词串的第二种语言的文档中的单词或单词串。当使用本发明的数据库创建技术时,能够作为可能的翻译的单词和单词串集合在关联频数扩展时将被缩小。因此,在检查一对文档之后,本发明将对一种语言的单词和单词串与第二种语言的单词或单词串创建关联频数。在根据本发明检查多对文档之后(并且因此建立一个大的样本),跨语言关联数据库创建技术将对任何一个单词或单词串返回越来越高的关联频数。在一个足够大的样本之后,最高的关联频数导致可能的翻译;当然,关联频数被认为是准确翻译的最终点是用户定义的并且限制于其他解释性的翻译技术(如在2001年3月16日提交的标题为“内容处理的方法和装置”的预申请No.60/276,107中说明的那样,并在此一并引用)。如上所示,本发明不仅检验单词而且检验单词串(多个单词)。如上所述,单词串包括所有的标点符号和其他出现的符号。在分析第一种语言的单个单词之后,本发明的数据库创建技术分析一个两个单词的单词串,然后三个单词的单词串,以递增的方式类推。这种技术使得一种语言的多个单词或单词串翻译为另一种语言的更短或更长的单词串(或单词)的翻译成为可能,如经常出现的那样。如果一个单词或单词串在第一种语言的所有可用文档中仅出现一次,处理立即进行到分析下一个单词或单词串,在那里分析周期再次继续。当在第一种语言中的所有可用的并列和比较文本中多次出现的所有的单词或单词串都被分析过以后,分析停止。从某种意义上来说,用于查找单词或单词串的重现时任何数量的文档可以被聚合并作为单个文档来处理。本质上,对一个不重复的单词或单词串,它在所有可用的并列和比较文本中仅出现一次。另外,作为另一个实例,可能检查对应于每个单词和单词串的范围而不管它是否在所有可用的比较和并列文本中出现超过一次。作为另一个实例,可以通过处理作为查询的一部分的具体单词和单词串来建立数据库。当输入单词和单词串来翻译时,本发明可以在存储在还未被分析的存储器中的跨语言文档中查找单词或单词串的多次出现,通过使用Web爬虫和其他设备在因特网上定位跨语言文本及,最后,基于查询的分析以及缺少足够的可用跨语言材料,通过询问用户来提供一个丢失的关联。本发明因此以这样的方式工作以分析基于正确的单词定位(在该单词串中)的单词串,并且能够以这样的方式工作以解决单词语境选择和语法特性,如短语、样式或缩写。这些单词串关联对提供如这里所述的翻译处理的双重重叠翻译技术也是有用的。注意这一点很重要,本发明可以适合当更大的单词串的子集单词或单词串被一贯地作为对更大的单词串的关联返回时的情况。本发明通过处理频数返回解决这些模式。例如,正确的名字有时完整地展现(如“JohnDoe”)、用名或姓缩写(“John”或“Doe”),或以另一方式缩写(“Mr.Doe”)。由于本发明很可能返回更多的单个单词返回而不是单词串返回(即,更多返回名或姓而不是完整姓名单词串“JohnDoe”),因为构成单词串的单词和短语的部分一定会被单独地计数,应使用一种机制来改变排序。例如,在任何文档中名字“JohnDoe”可能出现100次,而“John”自身或作为JohnDoe的一部分会出现120次,而“Doe”自身或作为JohnDoe的一部分会出现110次。普通的翻译返回(根据本发明)将给“John”比“Doe”更高的排序,并且两者都会比单词串“JohnDoe”由更高的排序-任何时候尝试分析单词串“JohnDoe”时。通过从子集的出现(或单独的返回)中减去出现更大单词串的次数可以得到正确的排序(虽然,当然,其他方法也可以用来获取类似的结果)。因此,从120(单词“John”的出现次数)中减去100(“JohnDoe”的出现次数),“John”的正确返回是20。应用这种分析产生100作为单词串“JohnDoe”的出现次数(当分析和尝试翻译这个单词串是),20为单词“John”的出现次数,并且10为单词“Doe”的出现次数,从而创建正确的关联。注意这个问题不仅限于正确的名字并且经常发生在一般的短语和很多不同的语境中。例如,每次单词串“Iloveyou”被翻译为它另一种语言的最频繁的单词串关联时,该另一种语言的单词“love”也可以独立地在每一次被关联。另外,当单词串在其他被分析的文本中被不同地翻译时,单词“love”可能又会被关联。这将扭曲分析并对第一种语言的“Iloveyou”的翻译返回第二种语言的“love”而不是第二种语言的“Iloveyou”。因此,再次,当对更大的串排序关联时,系统从所有子集关联的频数中减去更大的单词串关联出现次数。这些概念也反映在图1中。另外,数据库可以被指示在对单词和单词串计数关联频数时忽略常用词如“it”、“an”、“a”、“of”、“as”、“in”等等-或任何常用词。这将更准确地翻译真实的关联频数,否则会被作为任何给定范围的部分的常用词的大量的出现次数扭曲。这允许本发明的关联数据库创建技术防止没有额外的减法计算时常用词扭曲分析。应注意如果这些或其他任何常用词未被从关联数据库中“减去”,它们最终不会被作为翻译通过,除非是适合的时候,因为在此详述的双重重叠处理不会接受它。应注意可以使用调整关联频数的其他计算来确保正确反映单词和单词串的一般出现次数。例如,当分析的单词的范围重叠时,调整来避免双重计数可能是适合的。在这样的情况下为了建立更多正确的关联频数,调整是需要的。现使用作为例子说明的上述两个文档说明根据本发明用于创建和补充一个跨概念数据库的方法和装置的实例的例子-再次创建该表格如下再次注意虽然这个实例集中于仅在单个文档中重现的单词和单词串,这主要是为了便于说明。将使用在聚合中的所有可用的并列和比较文本分析重现的单词和单词串。使用上面列出的两个文档(A,第一种语言和B,第二种语言),数据库创建技术采用下面的步骤。步骤1.首先,确定范围的大小和位置。如所示,大小和位置可以为用户定义的或可以由多种方法来近似估计。两个文档的单词计数是近似相等的(10个单词在文档A中,8个单词在文档B中)从而我们将定位范围的中点和文档A中的单词或单词串的位置相同。(注意由于文档之间的单词计数比率为80%,范围的位置替换地可以应用一个分数4/5来建立)。在这个例子中,为了近似一个钟型曲线,为3的范围大小或值可以提供最好的结果;范围将在文档的开始和结束(+/-)1,并在中间(+/-)2。然而,如所示,范围(或用来确定范围的方法)完全是用户定义的。步骤2.然后,检查文档A的第一个单词并检验文档A来确定在文档中该单词的出现次数。在这个例子中文档A的第一个单词是XX在文档A中出现3次,在位置1、4和9。单词或单词串的位置号简单地为该词的位置,或单词串在文档中相对于其他单词的位置。因此,位置号对应于在文档中的单词号,忽略标点符号-例如,如果一个文档有10个单词,并且单词“king”出现两次,单词“king”的位置号仅为该词所出现的位置(来自10个单词中)。因为单词X在文档中出现不止一次,处理继续下一步骤。如果单词X仅出现一次,那么该单词将被跳过并且处理继续到下一个单词并且继续创建处理。步骤3.返回对在位置1的第一种语言的单词X的可能的第二种语言翻译对文档B应用范围产生在文档B中的位置1和2(1+/-1)的单词AA和BB(在文档B中定位在位置1和2)。所有可能的组合作为对X潜在的翻译或相关的关联被返回AA、BB和AABB(作为单词串组合)。因此X1(单词X的第一次出现)返回AA、BB和AABB作为关联。步骤4.分析单词X的下一位置。这个单词(X2)出现在位置4。由于位置4靠近文档的中心,范围(如上确定)为在位置4的两边两个词。通过查看文档B中的单词4并应用范围(+/-)2返回可能的关联-因此,返回单词4之前两个单词和单词4之后的两个单词。因此,返回在位置2、3、4、5和6的单词。这些位置对应于文档B中的单词BB、CC、AA、EE和FF。这些单词(及它们的组合的单词串)的所有向前的排列都被考虑。因此,X2返回BB、CC、AA、EE、FF、BBCC、BBCCAA、BBCCAAEE、BBCCAAEEFF、CCAA、CCAAEE、CCAAEEFF、AAEE、AAEEFF,和EEFF作为可能的关联。步骤5.比较X的第一次出现(位置1)的返回与X的第二次出现(位置4)的返回并且确定匹配。注意包括出现在两个范围的重叠中的同一单词或单词串的返回应被化简为单个出现。例如,在这个例子中,在位置2的单词是BB;这是对X的第一次出现(当通过范围操作)和X的第二次出现(当通过范围操作)的返回。因为这个相同的单词位置对X1和X2两者返回,该单词被计数为一次出现。然而,如果同一单词返回在一个重叠的范围,但是来自两个不同的单词位置,那么该单词被计数两次并且记录关联频数。在这种情况下,单词X的返回是AA,因为该词(AA)出现在对X1和X2两者的关联返回中。注意另一个出现在两个关联返回中的单词是BB;然而,如上所述,由于该单词在由范围对X的第一次和第二次出现的操作达到的同一位置(并因此是同一单词),可以忽略该单词。步骤6.分析单词X的下一位置(位置9)(X3)。应用(+/-)1的范围(靠近文档的结束)返回在文档B的位置8、9和10的关联。由于文档B只有8个位置,结果被截断并只有位置8的单词作为X的可能值返回CC。(注意替换地,用户定义的参数本可将最小两个字符作为分析的部分,本可返回位置8和下一个紧接的位置(在位置7的CG))。比较X3的返回和X1的返回发现没有匹配并且因此没有关联。步骤7.分析单词X的下一位置;然而,在文档A中单词X没有更多的出现。在此对语言A中的单词X,对语言B中的单词AA建立为1的关联频数。步骤8.因为单词X没有更多的出现,处理递增一个单词并且检验一个单词串。在这种情况下,被检查的单词串为“XY”,文档A的前两个单词。在步骤2-7中说明的同一技术被应用到这个短语。步骤9.通过查看文档A,我们看到只有单词串XY的一次出现。在此递增处理停止并且不发生数据库创建。因为到达了一个结束点,检查下一单词(无论何时没有对单词串发生匹配,就进行这个处理);在这种情况下,文档A在位置2的单词为“Y”。步骤10.对单词“Y”应用步骤2-7的处理产生下面结果操作单词Y的两次出现(位置2和7),因此数据库创建处理继续(再次,如果Y在文档A中只出现一次,那么不检查Y);在位置2的范围的大小为(+/-)1单词;应用范围到文档B(位置2,单词Y第一次出现的位置)返回结果在文档B的位置1、2和3。在那些返回的位置的对应的外语单词是AA、BB和CC;应用向前的排列对Y1产生下面的可能性AA、BB、CC、AABB、AABBCC和BBCC;分析Y的下一位置(位置7);在位置7的范围的大小为(+/-)2单词;应用范围到文档B(位置7)返回结果在文档B的位置5、6、7和8EEFFGG和CC;所有的排列对Y2产生下面的可能性EE、FF、GG、CC、EEFF、EEFFGG、EEFFGGCC、FFGG、FFGGCC和GGCC;匹配来自Y1的结果返回CC作为唯一的匹配;组合对Y1和Y2的匹配得到CC作为Y的一个关联频数。步骤11.范围结束递增由于对单词Y(单词CC)唯一可能的匹配出现在对Y的第一次出现的范围的结束(CC出现在文档B的位置3),范围在第一次出现以1递增来返回位置1、2、3和4AA、BB、CC和AA;或下面的向前的排列AA、BB、CC、AABB、AABBCC、AABBCCAA、BBCC、BBCCAA和CCAA。应用这个结果直到产生CC作为对Y的一个可能的翻译。注意范围是递增的因为返回的匹配是在对第一次出现(单词“Y”的基出现)的范围的结束;无论何时这个模式发生在范围的结束,将作为一个子步骤(或替换步骤)进行递增来确保完整性。步骤12.由于在文档A中没有更多“Y”的出现,分析在文档A中递增一个单词,并且检查单词串“YZ”(单词Y后的下一单词)。递增到下一串(YZ)并重复该处理产生下面结果单词串YZ在文档A中出现两次位置2和7。对YZ在第一次出现(YZ1)的可能性为AA、BB、CC、AABB、AABBCC、BBCC;(注意,替换地范围参数本可以定义为当语言A的被分析的单词串增长时包括范围大小的扩展)。对YZ在第二次出现(YZ2)的可能性为EE、FF、GG、CC、EEFF、EEFFGG、EEFFGGCC、FFGG、FFGGCC和GGCC;匹配产生CC作为对单词串YZ的一个可能的关联;扩展范围(范围的结束递增)对YZ产生下面的结果AA、BB、CC、AABB、AABBCC、AABBCCAA、BBCC、BBCCAA和CCAA。分析结果直到产生CC作为对单词串YZ的一个关联频数。步骤13.由于在文档A中没有更多“YZ”的出现,分析在文档A中递增一个单词,并且检查单词串“YZX”(文档中位置3的单词Y后的下一单词)。递增到下一串(YZX)并重复该处理(YZX在文档A中出现两次)产生下面结果对YZX第一次出现的返回在位置2、3、4和5;排列为BB、CC、AA、EE、BBCC、BBCCAA、BBCCAAEE、CCAA、CCAAEE和AAEE;对YZX第二次出现的返回在位置5、6、7和8;排列为EE、FF、GG、CC、EEFF、EEFFGG、EEFFGGCC、FFGG、FFGGCC和GGCC。比较两者得到CC作为对单词串YZX的一个关联频数;再次,注意EE的返回作为一个可能的关联被忽略因为它作为同一单词(即,在同一位置)出现在两个实例中。步骤14.递增到下一字符串(YZXW)仅发现一次出现;因此完成单词串数据库创建并检查下一单词Z(文档A的位置3)。步骤15.对Z应用上述步骤,它在文档A中出现3次,产生下面的结果对Z1的返回为AA、BB、CC、AA、EE、AABB、AABBCC、AABBCCAA、AABBCCAAEE、BBCC、BBCCAA、BBCCAAEE、CCAA、CCAAEE和AAEE;对Z2的返回为FF、GG、CC、FFGG、FFGGCC和GGCC;比较Z1和Z2得到CC作为Z的关联频数;Z3(位置10)在所定义的范围内没有返回。然而,如果我们把对每个语言A的单词或单词串必须有至少一个返回增加到参数中,Z的返回将为CC。比较对Z3和Z1的返回得到CC作为Z的关联频数。然而这个关联并不被计数,因为在单词位置8的CC已经包括在上面Z2的关联中。当重叠范围会使得处理双重计数出现时,系统能减少关联频数来更准确地反映真实的出现次数。步骤16.递增到下一单词串产生单词串ZX,它在文档A中出现两次。对ZX应用上述步骤产生下面结果对ZX1的返回为BB、CC、AA、EE、FF、BBCC、BBCCAA、BBCCAAEE、BBCCAAEEFF、CCAA、CCAAEE、CCAAEEFF、AAEE、AAEEFF和EEFF。对ZX2的返回为FF、GG、CC、FFGG、FFGGCC和GGCC;比较返回产生单词串ZX和CC之间的关联。步骤17.递增,下一短语为ZXW。这只出现一次,因此检查文档A中的下一单词(X)。步骤18.单词X在第一个位置已经被检查过。然而单词X的第二个位置,相对于其他文档,还没有为对单词X可能的返回被检查过。因此现在如单词X的第一次出现操作单词X(在第二个位置),在文档中继续向前对在位置4的X的返回产生BB、CC、AA、EE、FF、BBCC、BBCCAA、BBCCAAEE、BBCCAAEEFF、CCAA、CCAAEE、CCAAEEFF、AAEE、AAEEFF和EEFF。对在位置9的X的返回产生CC。比较位置9的结果和位置4的结果产生CC作为对单词X的可能匹配并且作为关联频数给出。步骤19.递增到下一单词串(因为,在文档中查找,没有更多的X的出现来和X的第二次出现比较)产生单词串XW。然而这个单词串在文档A中出现不超过一次因此处理继续检查下一单词(W)。单词“W”在文档A中仅出现一次,因此进行递增-并非到下一单词串,因为“W”仅出现一次,而是到文档A中的下一单词-“V”。单词“V”在文档A中仅出现一次,因此检查下一单词(Y)。单词“Y”不出现在文档A中高于位置7的其他任何位置,因此检查下一单词(Z)。单词“Z”在位置8之后的位置10再次出现。步骤20.对单词Z的第二次出应用上述处理现得到下面结果对在位置8的Z的返回GG、CC和GGCC;对在位置10的Z的返回CC;比较位置10和位置8的结果得到没有对单词Z的关联。再次,单词CC作为可能的关联返回,然而,由于CC表示由分析在位置8的Z和在位置10的Z达到的同一单词位置,该关联被忽略。步骤21.递增一个单词产生单词串ZX;这个单词串不再出现在文档A的任意更多的(向前)位置,因此处理在文档A中的下一单词-“X”重新开始。单词X不再出现在文档A的任意更多的(向前)位置,因此处理重新开始。然而,到达文档A的结束并且分析终止。步骤22.组合上述所有的结果并如所述减去重复结果制成最终的关联频数表格。显然,没有足够的数据对文档A中的单词和单词串返回决定性的结果。当用上述已检查的那些关联检查更多的包含单词和单词串的文档对,关联频数将在统计上变得更加可信,使得在语言A和语言B之间的单词或单词串将对单词和单词串的可能翻译建立强关联。例子数据库创建方法的一个工作在技术中熟知的类型的计算机系统的实例,是下面的程序$exclude_eng=array(′it′,′its′,′a′,′is′,′was′,′for′,′do′,′of′,′s′,′the′,′and′,′to′,′in′,′if′,′or′′that′,′this′,′inthe′,′are′,′ofthe′,′by′,′be′,′tothe′,′as′,′on′,′an′,′at′,′with′,′from′,′he′,′will′,′has′,′not′,′bythe′,′would′,′should′,′said′,′i′,′but′,′so′,′had′,′who′,′no′,′only′,′her′,′ofa′,′been′,′andthe′,′atthe′);$exclude_fre=array(′il′,′elle′,′son′,′sa′,′ses′,′un′,′une′,′est′,′etait′,′pour′,′faire′,′′,′poser′,′de′,′le′,′la′,′les′,′et′,′en′,′si′,′que′,′qui′,′celui′,′ces′,′cet′,′cettes′,′dansle′,′dansla′,′sont′,′dela′,′du′,′de′,′par′,la′,′au′,′aux′,′comme′,′si′,′enavant′,′sur′,′un′,′une′,′vers′,′avec′,′il′,′devoir′,′disait′,′disais′,′disent′,′je′,′mais′,′si′,′ou′,′avait′,′avais′,′avaient′,′qui′,′que′,′non′,′seulement′,′elle′,′etle′,′etla′,′etles′,′des′,′dans′);$exclude_spa=array(′lo′,′ella′,′su′,′un′,′una′,′es′,′fue′,′fui′,′por′,′para′,′hacer′,′hacen′,′ellos′,′ellas′,′de′,′el′,′la′,′los′,′y′,′hasta′,′en′,′si′,′ese′,′que′,′aquello′,′aquella′,′este′,′esto′,′eres′,′son′,′del′,′cerca′,′allado′,′estar′,′ser′,′al′,′como′,′encendido′,′un′,′arroba′,′con′,′desde′,′voluntad′,′tiene′,′hay′,′deber′,′dijo′,′yo′,′pero′,′sino′,′tan′,′o′,′quien′,′no′,′solamente′,′la′,′hasido′);$dir=″hebfre″;$dirdone=″hebfredone″;$lang=″.eng″;$olang=″.fre″;$table=″hebfre″;$languagecount=″langcount″;$language=″lang″;$olanguagecount=″olangcount″;$olanguage=″olang″;#$debug=″true″;functiongetmicrotime(){list($usec,$sec)=explode(″″,microtime());return.((float)$usec+(float)$sec);}$allstart=getmicrotime();$fp=fopen(″/usr/local/apache/log.txt″,″w+″);fputs($fp,″starting″.date(″His″).″&lt;BR&gt;\n″);$filelist=file(″http//128.241.244.166/list.php?dir=$dir&amp;lang=$lang″);#change$temp=implode(″″,$filelist);$list=strtolower(trim($temp));$mainarray=explode(″\n″,$list);sort($mainarray);reset($mainarray);$filearray=array();$calc=0;for($t=0;$t&lt;count($mainarray);$t++)#count($mainarray)change{if(file_exists(str_replace($lang,$olang,$mainarray[$t]))){$temp=$mainarray[$t];$temp1=file(″$Iinarray[$t]″);unset($temp2);for($m=0;$m&lt;count($temp1);$m++){if(strstr($temp1[$m],″....″))unset($temp1[$m]);$temp1[$m]=eregi_replace(″[[space]]+″,″″,strip_tags($temp1[$m]));$temp1[$m]=urldecode(str_replace(″&amp;htab;″,″″,$temp1[$m]));if($temp1[$m]!=″″)$temp2.=$temp1[$m];}$filearray[″$temp″]=utf8_encode($temp2);#######$temp=str_replace($lang,$olang,$mainarray[$t]);$temp1=file(str_replace($lang,$olang,$mainarray[$t]));unset($temp2);for($m=0;$m&lt;count($temp1);$m++){if(strstr($temp1[$m],″....″))unset($temp1[$m]);$temp1[$m]=eregi_replace(″[[space]]+″,″″,strip_tags($temp1[$m]));$temp1[$m]=urldecode(str_replace(″&amp;htab;″,″″,$temp1[$m]));if($temp1[$m]!=″″)$temp2.=$temp1[$m];}$filearray[″$temp″]=utf8_encode($temp2);}}fputs($fp,date(″His″).″&lt;BR&gt;doneloadingfilesintoarray.\n″);$addwords=″true″;$ctodo=count($mainarray);$t=0;for($t=0;$t&lt;$ctodo;$t++){if(file_exists(str_replace($lang,$olang,$mainarray[$t])))$filexist=″true″;elseunset($filexist);print″filee=$filexist-$mainarray[$t]\n″;if($debug==″true″)$filexist=″true″;if($filexist==″true″){if($mainarray[$t]&amp;&amp;$debug!=″true″){system(″mv$mainarray[$t]/usr/local/apache/$dirdone/″.str_replace(″/usr/local/apache/$dir/″,″″,$mainarray[$t]));system(″mv″.str_replace($lang,$olang,$mainarray[$t]).″/usr/local/apache/$dirdone/″.str_eplace($lang,$olang,str_replace(″/usr/local/apache/$dir/″,″″,$mainarray[$t])));}$lng=$filearray[$mainarray[$t]];$olng=$filearray[str_replace($lang,$olang,$mainarray[$t])];$lngs=explode(″″,$lng);for($i=0;$i&lt;count($lngs);$i++){if(!ereg(″[^a-zA-Z]″,$lngs[$i]))$lngs[$i]=strtolower($lngs[$i]);}$olngs=explode(″″,$olng);for($i=0;$i&lt;count($olngs);$i++){if(!ereg(″[^a-zA-Z]″,$olngs[$i]))$olngs[$i]=strtolower($olngs[$i]);}$sume=count($lngs);$sumh=count($olngs);if($sume&gt;$sumh){$margin=round($sume/($sume-$sumh));$action=″add″;}elseif($sumh&gt;$sume){$margin=(round($sumh/($sumh-$sume)));$action=″sub″;}else{$margin=1;$action=″sub″;}$number=count($lngs);for($j=$t+1;$j&lt;$ctodo;$j++)#mainloop,rotatebetweenthefilestobechecked.{if(file_exists(str_replace($lang,$olang,$mainarray[$j])))#checkfilenamematch.{$file_start=getmicrotime();unset($array);$array=array();$lngtp=$filearray[$mainarray[$j]];$olngtp=$filearray[str_replace($lang,$olang,$mainarray[$j])];$lngstp=explode(″″,$lngtp);for($i=0;$i&lt;count($lngstp);$i++){if(!ereg(″[^a-zA-Z]″,$lngstp[$i]))$lngstp[$i]=strtolower($lngstp[$i]);}$olngstp=explode(″″,$olngtp);fox($i=0;$i&lt;count($olngstp);$i++){if(!ereg(″[^a-zA-Z]″,$olngstp[$i]))$olngstp[$i]=strtolower($olngstp[$i]);}$sumetp=count($lngstp);$sumhtp=count($olngstp);if($sumetp&gt;$sumhtp){$margintp=round($sumetp/($sumetp-$sumhtp));$action=″add″;}elseif($sumhtp&lt;$sumetp){$margintp=(round($sumhtp/($sumhtp-$sumetp)));$action=″sub″;}else{$margintp=1;$action=″add″;}$numbertp=count($olngstp);if($debug==″true″)printdate(″H-i-s″).″&lt;BR&gt;\n″;for($i=0;$i&lt;$number;$i++)#mainloop,coverseveryspace.{if($t==$j)$ni=$i+1;else$ni=0;for($n=$ni;$n&lt;$numbertp;$n++){unset($thesameh);$p=0;unset($theb);$langstart=getmicrotime();while($p&lt;15&amp;&amp;$lngs[$i+$p]==$lngstp[$n+$p]&amp;&amp;$lngstp[$n+$p]!=″″)#checkifthe$nwordsmatch.{$theb.=$lngs[$i+$p].″″;$theb1=trim($theb);if(!ereg(″[`~!@#$%^&amp;*()&lt;&gt;_+=-?.,;/\]″,$theb1)&amp;&amp;!ereg(″″,substr($theb1,0,1))&amp;&amp;!ereg(″^*$″,$theb1)&amp;&amp;$theb1!=″″&amp;&amp;substr($theb1,0,1)!=″-″&amp;&amp;!ereg(″″,substr($theb1,-1))&amp;&amp;substr($theb1,-1)!=″-″&amp;&amp;substr($theb1,0,1)!=″′″&amp;&amp;substr($theb1,-1)!=″′″&amp;&amp;$theb1!=″′″&amp;&amp;$theb1!=′″′&amp;&amp;!in_array($theb1,$exclude_eng)){$temp=$array[$theb1][″hebrew_c″];if(!$temp)#new,welcome{$array[$theb1][″hebrew_c″]=″,$i,″;}elseif(!strstr($temp,″,$i,″))#new,welcome{$array[$theb1][″hebrew_c″]=$temp.″$i,″;}$extra=floor($i/$margin);if($action==″add″){$extrasm=$i+$extra-45;$extralg=$i+$extra+45;}elseif($action==″sub″){$extrasm=$i-$extra-45;$extralg=$i-$extra+45;}if($extrasm&lt;0)$extrasm=0;if($extralg&gt;$sumh)$extralg=$sumh;$olangstart=getmicrotime();for($e=$extrasm;$e&lt;$extralg;$e++){$extran=floor($n/$margintp);if($action==″add″){$bot=$n+$extran-45;$top=$n+$extran+45;}elseif($action==″sub″){$bot=$n-$extran-45;$top=$n-$extran+45;}if($bot&lt;0)$bot=0;if($top&gt;$sumhtp)$top=$sumhtp;unset($tbc);for($x=$bot;$x&lt;$top;$x++)#checktheenglish,10backand10forward.{unset($teng);if(($t==$j&amp;&amp;$x&gt;$e)||$t!=$j)#$n&gt;$e&amp;&amp;{$a=0;while($olngs[$e+$a]==$olngstp[$x+$a]&amp;&amp;$olngs[$e+$a]!=″″){$teng.=″″.$olngs[$e+$a];$teng=trim($teng);if(!ereg(″[`~!@#$%^&amp;*()&lt;&gt;_+=-?.,;/\]″,$teng)&amp;&amp;!ereg(″″,substr($teng,0,1))&amp;&amp;!ereg(″^*$″,$teng)&amp;&amp;$teng!=″″&amp;&amp;substr($teng,0,1)!=″-″&amp;&amp;!ereg(″″,substr($teng,-1))&amp;&amp;substr($teng,-1)!=″-″&amp;&amp;substr($teng,0,1)!=″′″&amp;&amp;substr($teng,-1)!=″′″&amp;&amp;$teng!=″′″&amp;&amp;$teng!=′″′&amp;&amp;!in_array($teng,$exclude_fre)){$temparray=array_keys($array[$theb1]);if(inarray($teng,$temparray)){$temp=$array[$theb1][$teng];if(!strstr(″$temp″,″,$x,″))#&amp;&amp;!strstr(″$temp1″,″,$e,″)){$array[$theb1][$teng]=$temp.″$x,″;}}else{$array[$theb1][$teng]=″,$x,″;}}$a++;}#endofwhileloop}}#endofforloop.}#endofnewloop$olangend=getmicrotime();$time1=$olangend-$olangstart;#fputs($fp,″Frenchwordnumber$nof$numbertptook$timel\n″);}#endupto5hebrewtogether.$p++;}#endofwhileloop$p&lt;15$langend=getmicrotime();$time2=$langend-$langstart;#fputs{$fp,″Englishwordnumber$iof$numbertook$time2\n″);}}if(count($array)&gt;0){$dbstart=getmicrotime();$stream=MYSQL_COBBECT(″127.0.0.1″,″root″);$tempheb=array_keys($array);for($i=0;$i&lt;count($tempheb);$i++){$lng=$tempheb[$i];if(substr_count($array[$lng][″hebrew_c″],″,″)-1&gt;0){$lngc=substr_count($array[$lng][″hebrew_c″],″,″)-1;$tempolng=array_keys($array[$lng]);$n=1;while($n&lt;count($tempolng)&amp;&amp;count($tempolng)&gt;1){$olng=$tempolng[$n];$olngc=substr_count($array[$lng][$olng],″,″)-1;$query=″update$tablesettotal=total+1,$languagecount=$languagecount+$lngc,$olanguagecount=$olanguagecount+$olngc,article=concat(article,\″,$mainarray[$j]\″)where(articlenotlike′%$mainarray[$j]%′and$language=′″.addslashes($lng).″′and$olanguage=′″.addslashes($olng).″′)″;MYSQL(″brain″,$query,$stream)ordie(″#2Can′t$query″.MYSQL_ERROR());$num=MYSQL_AFFECTED_ROWS($stream);if($num==0){$query=″insertignoreinto$tablevalues(\″NULL\″,\″1\″,′″.addslashes($lng).″,″.addslashes($olng).″′,\″″.addslashes($lng).″\″,\″$lngc\″,\″″.addslashes($olng).″\″,\″$olngc\″,\″$mainarray[$j]\″)″;MYSQL(″brain″,$query,$stream)ordie(″#3Can′t$query″.MYSQL_ERROR());}$n++;}}}MYSQL_CLOSE($stream);$dbend=getmicrotime();$time=$dbend-$dbstart;fputs($fp,″dbtook$time\n″);}$file_end=getmicrotime();}}}}$allend=getmicrotime();$time=$allend-$allstart;fputs($fp,″thewholeshittook$time\n″);fputs($fp,″final″.date(″Y-m-dHis″).″-$calc-&lt;BR&gt;\n″);fclose($fp);?&gt;如上所示,本实例表示用来创建关联的技术。本发明的技术并不仅限于语言的翻译。以更广泛的意义,这些技术可以应用到任意两种被关联的相同概念的表达,因为从本质上外语的翻译仅作为成对的由不同的单词或单词串表示的相同概念的关联存在。因此,本发明可以应用来关联数据、声音、音乐、视频、或任何作为概念存在的广范围的概念,包括可以表示任何感官(声音、视觉、嗅觉等)经验的概念。所必需的是本发明分析两个实例(在语言翻译中,实例为文档;对于音乐,实例可以为表示同一组成的音符和声音频率的数字表示,等等)。在另一实例中,特定的基于规则的算法,在技术中为人熟知,可以包括在跨语言关联学习中以处理用于上下文和意义、可替换(并且有时有潜在地无限种衍生)的特定类型的文本,如名称、数字和日期。另外,如果可用的跨语言文档并不产生有统计意义的翻译结果,用户能够检查可能的翻译选择和其他关联并且认可和排序适当的选择。如上所述,当为关联频数分析更多成对的已翻译文档时,单词和单词串之间的关联频数变得更强。当检查更多语言对的文档时,本发明的方法和装置将开始基于那些和第三种语言都有关联,但不直接互相关联的语言填充语言对之间“推论关联”。另外,当存在多种语言的已翻译文档时,跨几种语言分析共同的关联返回可以直到只有一种共同关联存在于所有语言之间,即翻译。下面是一个(和技术中熟知的类型的计算机系统一起工作的)的计算机程序的例子,提供一种方法,其中在本发明的一个实例中使用这些语言的数据<prelisting-type="program-listing"><![CDATA[<?$word=″unitednations″;$engspa_t=″engspa″;$engfre_t=″hebfre″;$frespa_t=″frespa″;$c=1;MYSQL_CONNECT(″128.241.244.166″,″root″);$query=″selecttotal,lang,langcount,olang,olangcountfrom$engfre_twhereolang=′$word′″;$result=MYSQL(″brain″,$query)ordie(″Error#1-$query-″.MYSQLERROR());$query1=″selectlangfrom$engspa_twhereolang=′$word′″;$result1=MYSQL(″brain″,$query1)ordie(″Error#2-$query1-″.MYSQL_ERROR());for($i=0;$i<MYSQL_NUM_ROWS($result1);$i++){list($lang)=MYSQL_FETCHROW($result1);$in.=″,′″.addslashes($lang).″′″;}$in=substr($in,1);$num=MYSQL_NUMROWS($result);print″$in<BR><BR>\n″;for($i=0;$i<$num;$i++){list($total,$lang,$langc,$olang,$olangc)=MYSQL_FETCH_ROW($result);print″$lang,″;$query2=″selectcidfrom$frespa_twhereolang=′″.addslashes($lang).″′andlangin($in)″;$result2=MYSQL(″brain″,$query2)ordie(″Error#3-$query2-″.MYSQL_ERROR());if(MYSQL_NUM_ROWS($result2)>0){$res.=″$i-$total,$lang,$langc,$olang,$olangc<BR>\n″;$c++;}}print″<BR><BR>$res″;print″$c/″.MYSQL_NUM_ROWS($result);?>]]></pre>同样,如果在现有状态中的表达人工地起因于和另一状态的数据点的特定关联并编录在一个数据库中,两种状态之间的转换是可能的。例如,如果每个以一种形式、状态或语言表示的“概念”与电磁波(音调)关联,将创建出该概念的“电磁表示”。一旦用对应的电磁表示编码了给定数量的概念,数据(以概念的形式)可以被翻译为电磁波并且马上通过常规长途电信的基础设施传输。当电磁波到达目的机器,该机器将合成电磁波为分离的成分并且,给出关联时(和排序指令一起,使用上述的双重重叠技术,和/或其他技术),呈现独立的以电磁表示来表示的概念。2.概念转换方法和装置本发明的另一方面集中于提供方法和装置,用于从包含第一种状态、形式或语言的数据的第一个文档创建包含第二种状态、形式或语言的数据的第二个文档,而最终结果是第一个和第二个文档表示本质上相同的概念或信息,并且所述方法和装置包括使用一个跨概念关联数据库。翻译方法的所有实例使用双重重叠技术来获取概念从一种状态到另一种状态的准确翻译。相反,现有技术的翻译设备集中于单个单词的翻译或使用特殊的基于规则的代码来帮助从第一种语言到第二种语言的翻译。本发明使用重叠技术使第二种语言的单词和单词串能够有机地连接在一起并且以在第二种语言中写出那些单词和短语的准确方式在它们正确的上下文中成为准确的翻译。在本发明的一个实例中,组合创建数据库的方法和重叠技术以提供准确的语言翻译。语言可以为任意类型的转换并且并不仅限于口语/书面语。例如,转换可以包括计算机语言、特定的数据代码如ASCII,及其类似。数据库是动态的;即,当内容被输入到翻译系统中时,数据库随着翻译系统使用先前输入的内容进行的接连的迭代增长。本发明的首选实例使用如在已有的技术中随时可用的类型的个人计算机系统这样的计算设备。然而,该系统并不需要使用这样的计算设备并且随时可以通过其他方式实现,包括手工的数据库创建和翻译方法。本发明可以被用在有着至少一种显示方法、一种输入方法和输出方法,及一个处理器的普通计算机系统中。显示方法可以为已有技术中可用的任何方法,如阴极射线终端、液晶显示、平板显示等等。处理器方法也可以为可用的任何方法并且使用在计算环境中使得方法被提供从而允许计算机工作以执行本发明。最后,为了建立跨关联数据库,输入方法被用来允许文档的输入;如上所述转换到数字形式的特定输入方法取决于用户的需要可以是不同的。a.通过双重重叠技术进行手工的数据库创建和翻译下面说明根据本发明从第一种语言到第二种语言翻译文档的方法和装置的实例的一个例子,其中通过向用户询问单词和单词串的翻译以及使用双重重叠技术自动地生成片段的翻译发展跨语言数据库。为了说明首选实例,使用一个例子,其中英语的数据被翻译为希伯来语。这些部分仅用于说明的目的,并不意味着限制第一种和第二种语言的选择。根据本发明的一个首选实例,计算机系统创建从英语到希伯来语的翻译之间的关联的数据库。翻译方法至少包括以下步骤第一,英语的数据被输入到计算机系统。第二,逐词检查英语输入的所有单词。数据库将返回已知的希伯来语的单词翻译。如果该翻译未被包括在数据库中,那么计算机系统将询问用户输入合适的翻译。因此,如果数据库不知道等价于输入的英语单词的希伯来语,计算机将要求用户提供合适的等价希伯来语。然后用户将范围翻译并输入所述的翻译到数据库中。在后面的使用中,计算机系统将以某种方式操作数据库使得依靠用户在先前的输入知道该翻译。因此,在接下来的步骤中以输入数据的解析后的状态检查它-即逐词-并且合适的翻译要么被返回(依靠数据库的操作)要么被输入到数据库中。第三,以某种方式检查输入数据以递增解析过的片段。例如,如果首先逐词解析数据,本发明的翻译方法接下来通过评估两单词的串检查输入数据。再次,以类似于上述的方式,如果已知的话,数据库返回两单词串的翻译;如果未知,翻译系统对所有可能的两单词串询问用户输入适合的翻译。所有重叠的2单词片段然后被存储在数据库中。例如,如果一个单词串由4个单词组成,那么数据库检查以确认在存储器中是否有下面已翻译的组合1,22,3和3,4。如果没有,就询问用户。注意即使数据库依靠上面的第二步包含每个单词的定义,只有特定地编码的两单词串的翻译将作为准确翻译返回。第四,如果两个重叠的两单词英语串的希伯来语翻译有一个(或多个)重叠的单词,系统以某种方式工作来合并重叠的片段。在重叠中的多余的希伯来语片段被去除以提供通过组合两个重叠的英语串(并去除在英语重叠中的重复)的创建三单词英语串的连贯的翻译。从1到无限次的步骤(n)重复上述步骤以提供合适的翻译。翻译方法通过校验连接已通过重叠编码的两种语言的单词块的一致的串自动地工作。一旦数据库达到关键规模,跨两种语言一致的重叠连接的这些自动认可提供以完美的准确性在两种语言之间的翻译的语言网络。作为例子,考虑英语短语“Iwanttobuyacar”。通过本发明方法的操作,该短语被输入到操作数据库的计算机中。计算机将操作以确定数据库是否包括等价于下面单词的希伯来语“I”,“want”,“to”,“buy”,“a”和“car”。如果操作这样的等价,计算机将返回等价的希伯来语。如果不存在这样的等价,计算机将询问用户提供适合的希伯来语翻译,并存储这样的翻译以后使用。然后,计算机将以重叠的方式解析该句子为两单词片段“Iwant”,“wantto”,“tobuy”,“buya”和“acar”。计算机将操作以返回这些片段的等价希伯来语(即,和“Iwant”等价的希伯来语等等);如果不存在这样的等价希伯来语,那么计算机将询问用户提供适合的希伯来语翻译,并存储这样的翻译以后使用。然后本发明将检查三单词片段“Iwantto”,“wanttobuy”,“tobuya”和“buyacar”。在此本发明的处理尝试组合每一对英语翻译重叠的希伯来语翻译并且组合来得到每个三单词英语翻译查询(例如,组合“Iwant”和“wantto”来合成“Iwantto”)。如果希伯来语片段有连接它们的共同的重叠,翻译方法自动地认可三单词英语单词串作为希伯来语翻译而无需用户干预。如果希伯来语片段并不重叠并合并,用户被询问提供准确翻译。在三单词英语串的适合的翻译尝试之后,处理继续对四单词串等等进行,通过跨语言重叠尝试自动地解决翻译的组合,直到被检查片段完成(在这种情况下,整个短语“Iwanttobuyacar”)。本发明的方法,在通过这种解析后,然后比较返回的翻译等价,去除重叠片段中的冗余,并向用户输出已翻译的短语。b.通过关联数据库和双重重叠技术进行文档翻译如另一首选实例,本发明可以翻译第一种语言的文档为第二种语言的文档,按如上所述通过使用跨语言数据库提供文档中的单词和单词串的单词串翻译,然后使用上述的跨语言双重重叠技术合并第二种语言的重叠的单词串来提供文档的翻译。例如,考虑数据库有足够多的跨语言文档来解决下面以英语输入并将被翻译为希伯来语的句子的成分“Inadditiontomyneedtobelovedbyallthegirlsintown,IalwayswantedtobeknownasthebestplayertoeverplayontheNewYorkstatebasketballteam”。通过上述处理,处理方法将确定短语“Inadditiontomyneedtobelovedbyallthegirls”是来自源文档、开始于源文档的第一个单词并且存在于数据库中的最长的单词串。它在数据库中和希伯来语单词串“benosafltzorechshelilihiotahuvalyedaykolhabahurot”关联。然后处理使用上述方法确定下面的翻译-即,用和先前标识出的英语单词重叠的一个单词(或替换地更多单词)翻译(并且存在于数据库中)来自文本的最长的英语单词串,并且重叠的英语单词串的两个希伯来语翻译也有重叠的片段“lovedbyallthegirlsintown”翻译为“ahuvalyedaykokhabahurotbuir”;“thegirlsintown,Ialwayswantedtobeknown”翻译为“Habahurotbuir,tamidratzitylihiotyahua”;“Ialwayswantedtobeknownasthebestplayer”翻译为“tamidratzitylihiotyahuabettorhasahkanhachitov”;及“thebestplayertoeverplayontheNewYorkstatebasketballteam”翻译为“hasahkanhachitovshhaypaamsihekbekvutzathakadursalshelmedinatnewyork”。通过数据库的这些返回,处理以某种方式存在来比较重叠的单词和单词串并去除冗余。因此,“Inadditiontomyneedtobelovedbyallthegirls”翻译为“benosafltzorechshelilihiotahuvalyedaykolhabahurot”;并且“lovedbyallthegirlsintown”翻译为“ahuvalyedaykolhabahurotbuir”。使用本发明的技术,系统将得到英语片段“Inadditiontomyneedtobelovedbyallthegirls”和“lovedbyallthegirlsintown”并返回希伯来语片段“benosafltzorechshelilihiotahuvalyedaykolhabahurot”和“ahuvalyedaykolhabahurotbuir”并确定重叠。在英文中,短语为“Inadditiontomyneedtobelovedbyallthegirls”和“lovedbyallthegirlsintown”。去除重叠得到“Inadditiontomyneedtobelovedbyallthegirlsintown”。在希伯来语中,短语为“benosafltzorechshelilihiotahuvalyedaykolhabahurot”和“ahuvalyedaykolhabahurotbuir”去除重叠得到“benosafltzorechshelilihiotahuvalyedaykolhabahurotbuir”。然后本发明操作下一个已解析的片段来继续处理。在这个例子中,处理过程操作短语“thegirlsintown,Ialwayswantedtobeknown”。系统解决英语片段“Inadditiontomyneedtobelovedbyallthegirlsintown”和新的英语单词集合“thegirlsintown,Ialwayswantedtobeknown”。对应的希伯来语单词集合为“benosafltzorechshelilihiotahuvalyedaykolhabahurotbuir”和对应的希伯来语的单词集合“habahurotbuir,tamidratzity“hiotyahua”。在英语中进行去除重叠操作,如下“Inadditiontomyneedtobelovedbyallthegirlsintown”和“thegirlsintown,Ialwayswantedtobeknown”得到“Inadditiontomyneedtobelovedbyallthegirlsintown,Ialwayswantedtobeknown”。在希伯来语中,重叠处理操作如下“benosafltzorechshelilihiotahuvalyedaykolhabahurotbuir”和“habahurotbuir,tamidratzitylihiotyahua”得到“benosafltzorechshelilihiotahuvalyedaykolhabahurotbuir,tamidratzitylihiotyahua”。本发明在被翻译的文档中对余下的单词和单词串继续这种类型的操作。因此,在首选实例的一个例子中,下一个英语单词串为“Inadditiontomyneedtobelovedbyallthegirlsintown,Ialwayswantedtobeknown”和“Ialwayswantedtobeknownasthebestplayer”。由数据库对这些短语返回的希伯来语翻译为“benosafltzorechshelilihiotahuvalyedaykolhabahurotbuir,tamidratzitylihiotyahua”和“tamitratzitylihiotyahuabettorhasahkanhachitov”。去除英语重叠得到“Inadditiontomyneedtobelovedbyallthegirlsintown,Ialwayswantedtobeknownasthebestplayer”。去除希伯来语重叠得到“benosafltzorechshelilihiotahuvalyedaykolhabahurotbuir,tamidratzitylihiotyahuabettorhasahkanhachitov”。继续该处理下一个单词串为“Inadditiontomyneedtobelovedbyallthegirlsintown,Ialwayswantedtobeknownasthebestplayer”和“thebestplayertoeverplayontheNewYorkStatebasketballteam”。对应的希伯来语短语为“benosafltzorechshelilihiotahuvalyedaykolhabahurotbuir,tamidratzitylihiotyahuabettorhasahkanhachitov”和“hasahkanhachitovshhaypaamsihekbekvutzathakadursalshelmedinatnewyork”。去除英语重叠得到“Inadditiontomyneedtobelovedbyallthegirlsintown,IalwayswantedtobeknownasthebestplayertoeverplayontheNewYorkstatebasketballteam”。去除希伯来语重叠得到“benosafltzorechshelilihiotahuvalyedaykolhabahurotbuir,tamidratzitylihiotyahuabettorhasahkanhachitovshhaypaamsihekbekvutzathakadursalshelmedinatnewyork”,即需要被翻译的文本的翻译。在完成这个处理后,本发明返回已翻译的最终文本并输出该文本。应注意根据上述处理该返回是数据库返回重叠关联的最终结果。该系统,通过该处理,最终不接受通过重叠没有和连续的第二种语言的片段自然匹配的连接的第二种语言的返回。如果任何希伯来语的返回没有和连续的希伯来语单词串关联的准确重叠,它将被拒绝并且由和连续的希伯来语单词串重叠的希伯来语单词串关联替代。本发明的首选实例的一个例子使用下面和技术中熟知的类型的计算机系统一起工作的计算机程序&lt;?functionconvert($what,$olang){if($what==″′″)$what=″\′″;if($what==″\\″)return;$query=″selectsletterfrom″.$olang.″letterwhere.fletter=′$what′″;$result=MYSQL(″minibush″,″$query″)ordie(″*$what*-error#1$query-″.MYSQL_ERROR());if(MYSQL_NUMROWS($result)&gt;0){list($sletter)=MYSQL_FETCH_ROW($result);return$sletter;}elsereturnstripslashes($what);}functionoverlap($s,$mm,$mean,$tos,$osmean,$max,$dictionary_t,$lang,$olang,$spaceaddress,$longestolang){$tempmax=$max;${$olang}=$osmean;${$lang}=$mean;$mean=explode(″″,$mean);$osmean=explode(″″,$osmean);for($m=$mm;$m&lt;count($mean);$m++){unset($string);for($l=$m;$1&lt;count($mean);$1++)$string.=$mean[$1].″″;$sm=$s+count($mean);unset($nextwordmatch);if($spaceaddress[$sm+1])$nextwordmatch=″$langlike′″.str_replace(″%″,″″,trim($string.$spaceaddress[$sm])).″%′or″;$query1=″select$lang,$olangfrom$dictionary_twhere$nextwordmatch$lang=′″.str_replace(″%″,″″,trim($string.$spaceaddress[$sm])).″′and$olang&lt;&gt;″orderby$langdesc,length($lang),$olangdesc,length($olang)desc″;$result1=MYSQL(″minibush″,″$query1″)ordie(″can′terror#2-′$query1′″.MYSQL_EROR());$t=0;while($t&lt;MYSQL_NOMROWS($result1))#&amp;&amp;$tempmatch!=″yes″){list(${″temp″.$lang},${″temp″.$olang})=MYSQL_FETCH_ROW($result1);$tempmean=expode(″″,${″temp″.$lang});$tempomean=explode(″″,${″temp″.$olang});$tg=$m;$tm=0;unset($tempmatch);while($tg&lt;count($tempmean)+$m){if(($spaceaddress[$s+$tg]==$tempmean[$tm])&amp;&amp;($tempmatch!=″no″))$tempmatch=″yes″;else$tempmatch=″no″;$tg++;$tm++;}if($tempmatch==″yes″&amp;&amp;substr_count($longestresult,″″)&lt;=substr_count(${″temp″.$lang},″″))#checksifthenewoverlapismatchingthetranslationrequest.{$longestresult=${″temp″.$lang};$omean=explode($tempomean,${$olang});$to=count($omean)-1;$tcheckb=substr(${″temp″.$olang},0,strlen($tempomean));if($osmean[$tos]==$tempomean&amp;&amp;isset($osmean[$tos])){if(count($mean)+count($tempmean)-1&gt;$max)#singlewordoverlap{$max=$m+count($tempmean);$ns=$m;$tolang=${$olang}.substr(${″temp″.$olang},strlen($tempomean));$overlap=″true″;}else$tempmatch=″no″;}elseif($osmean[($tos-1)]==$tempomean&amp;&amp;$osmean[$tos]==$tempomean[1]&amp;&amp;isset($osmean[($tos-1)])){if(count($mean)+count($tempmean)-1&gt;$max)#singlewordoverlap{$max=$m+count($tempmean);$ns=$m;$tolang=${$olang}.substr(${″temp″.$olang},strlen($tempomean.″″.$tempomean[1]));$overlap=″true″;}else$tempmatch=″no″;}elseif($osmean[($tos-2)]==$tempomean&amp;&amp;$osmean[($tos-1)]==$tempomean[1]&amp;&amp;$osmean[$tos]==$tempomean[2]&amp;&amp;isset($osmean[($tos-2)])){if(count($mean)+count($tempmean)-1&gt;$max)#singlewordoverlap{$max=$m+count($tempmean);$ns=$m;$tolang=${$olang}.substr(${″temp″.$olang},strlen($tempomean.″″.$tempomean[1].″″.$tempomean[2]));$overlap=″true″;}else$tempmatch=″no″;}elseif(substr_count(${$olang},″″)==0&amp;&amp;$tcheckb==trim(substr(${$olang},1))){if(count($mean)+count($tempmean)-1&gt;$max)#singlewordoverlap{$max=$m+count($tempmean);$ns=$m;$olangminus=substr(${″temp″.$olang},strlen(${$olang}));$tolang=${$olang}.″″.$olangminus;$overlap=″true″;}}elseif(substr_count(${$olang},″″)==0&amp;&amp;substr_count(${″temp″.$olang},″″)==0)#englishoverlaphebrewonewordonly.{$max=$m+count($tempmean);$ns=$m;$tolang=${$olang}.″″.${″temp″.$olang};$overlap=″true″;}else{$tempmatch=″no″;}if($overlap==″true″){$mmean=explode(″″.$tempmean,${$lang});$to=count($mmean)-1;$ttos=count($mean)-1;if($mmean[$to]&amp;&amp;$to&gt;0){$tcheck=substr(${″temp″.$lang},strlen($tempmean)+1);if(substr($tcheck,0,strlen(trim($mmean[$to])))==trim($mmean[$to]))#overlapping{$tlang=${$lang}.substr($tcheck,strlen(trim($mean[$to])));}}elseif($mean[$ttos]==$tempmean&amp;&amp;$mean[$ttos]){$tlang=${$lang}.substr(${″temp″.$lang},strlen($tempmean));}else{print″BIGERROR″;exit;}}}$t++;}}if($overlap!=″true″)$overlap=″false″;if($tempmax==$max&amp;&amp;$overlap!=″true″)$max=0;$array=array(″s″=&gt;″$s″,″mm″=&gt;count($mean),″muean″=&gt;$tlang,″tos″=&gt;substr_count($tolang,″″),″osmean″=&gt;$tolang,″max″=&gt;″$max″,″tolang″=&gt;″$tolang″,″overlap″=&gt;″$overlap″,″longestolang″=&gt;″$longestolang″);return$array;}functiontranslate($word,$lock,$tags,$baselang){global$id_t,$prefix_t,$dictionary_t;if(!$word)return;if($transeng==″true″){if(ereg(″[a-zA-Z]″,$word))return$word;}if($baselang==″hebrew″){$spaceit=″true″;$emailend=″áòáéú.+.éì″;}if($baselang==″japanese″){$dictionary_t=″dictionaryjap″;$spaceit=″false″;}if($baselang==″chinesesim″){$dictionary_t=″dictionarychnsim″;$spaceit=″false″;}MYSQLCONNECT(″216.205.78.138″,″nobody″)ordie(″can′tconnect″.MYSQL_ERROR());$word=trim($word);if((strstr($word,hebrev($idt).″,″)||strstr($word,hebrev($id_t).″″)||substr($word,strlen($word)-strlen($id_t))==hebrev($id_t))&amp;&amp;isset($id_t)){$word=str_replace(hebrev($id_t),″″,$word);$systemsite=″true″;}if($word)##################ww.something##################{#####################if(strstr($word,″http//www.inhebrew.co.il/nsia.html″)){$word=split(″=″,$word);$word=split(″&amp;″,$word[1]);return$word;}#####################if(strstr($word,″//″)){$temp=explode(″//″,$word);$address=$temp[1];}else$address=$word;$address=explode(″/″,$address);$addresscheck=$address;if(!ereg(″[&amp;-zA-Za-ú]″,$addresscheck))$addresscheck=$address[1];if(ereg(″[a-zA-Z]″,$addresscheck)){$lang=″english″;$olang=$baselang;if(strtolower(substr($word,0,7))==″http//″){$word=substr($word,7);$pre=″//″;}if(strtolower(substr($word,0,8))==″https//″){$word=substr($word,8);$pre=″//″;}if(strtolower(substr($word,0,6))==″ftp//″){$word=substr($word,6);$pre=″//″;}}elseif($baselang==″hebrew″){$lang=″hebrew″;$olang=″english″;if(substr($word,0,8)==″//*″){$word=substr($word,8);$pre=″http//″;$upper=″true″;}elseif(substr($word,0,7)==″//″){$word=substr($word,7);$pre=″http//″;}elseif(substr($word,0,9)==″//*″){$word=substr($word,9);$pre=″https//″;$upper=″true″;}elseif(substr($word,0,8)==″//″){$word=substr($word,8);$pre=″https//″;}elseif(substr($word,0,7)==″//*″){$word=substr($word,7);$pre=″ftp//″;$upper=″true″;}elseif(substr($word,0,6)==″//″){$word=substr($wotd,6);$pre=″ftp//″;}elseif(substr($word,0,1)==″*″){$word=substr($word,1);$upper=″true″;}}elseif($b&amp;selang==″japanese″){$lang=″japanese″;$olang=″english″;}elseif($baselang==″chinesesim″){$lang=″chinesesim″;$olang=″english″;}$s=0;$tempreplace=strtolower($word);while($s&lt;strlen($tempreplace)){if(!ereg(″[a-úa-zA-Z0-9\′\″]″,$tempreplace[$s])){$tempreplace=substr_replace($tempreplace,″$tempreplace[$s]″,$s,1);$s=$s+2;}$s++;}$tempreplace=eregi_replace(″[[space]]+″,″″,$tempreplace);$spaceaddress=explode(″″,$tempreplace);$s=0;unset($space);$color=″red″;$counts=count($spaceaddress);$query=″select$lang,$olangfrom$dictionary_twhere$lang=$tempreplace′″;$result=MYSQL(″minibush″,″$query″)ordie(″can′terror#0.1-′$query′″MYSQL_ERROR());if(MYSQL_NUMROWS($result)&gt;0){list(${$lang},${$olang})=MYSQL_FETCH_ROW($result);$space=${$olang};$counts=0;}while($counts&gt;$s)#wordbetween..{$spaceaddress[$s]=trim($spaceaddress[$s]);if($tags==″true″){$open=″&lt;fontcolor=\″$color\″&gt;″;$close=″&lt;/font&gt;″;if($color==″red″)$color=″blue″;else$color=″red″;}if(ereg(″[à-úa-zA-Z\′\″]″,$spaceaddress[$s])){unset($restofaddress);for($i=$s;$i&lt;$counts;$i++)$restofaddress.=″″.$spaceaddress[$i];$restofaddress=trim($restofaddress);$query=″select$lang,$olangfrom$dictionary_twhere$lang=′$restofaddress′″;$result=MYSQL(″minibush″,″$query″)ordie(″can′terror#0.2-′$query′″.MYSQL_ERROR());if(MYSQL_NUMROWS($result)==1){list(${$lang},${$olang})=MYSQL_FETCH_ROW($result);$space.=″″.$open.${$olang}.$close;$space=trim($space);$counts=0;}else{$n=$s+1;unset($nextwordmatch);if($spaceaddress[$n])$nextwordmatch=″$langlike′″.str_replace(″%″,″″,$spaceaddress[$s]).″″.str_replace(″%″,″″,$spaceaddress[$n]).″%′or″;$query=″select$lang,$olangfrom$dictionary_twhere$nextwordmatch$lang=′$spaceaddress[$s]′and$olang&lt;&gt;″orderby$langdesc,length($lang),$olangdesc,length($olang)desc″;$result=MYSQL(″minibush″,″$query″)ordie(″can′terror#1-′$query′″.MYSQL_RROR());if($match==″yes″)unset($match);if((MYSQL_NUMROWS($result)&gt;0)&amp;&amp;($match!=″no″)){$n=0;$maximum=0;$maximumr=0;unset($finals);unset($finalsr);unset($longestolang);unset($longestlang);while($n&lt;MYSQL_NUMROWS($result))#&amp;&amp;($match!=″yes″)){list(${$lang},${$olang})=MYSQL_FETCH_ROW($result);$mean=explode(″″,${$lang});$osmean=explode(″″,${$olang});$tos=count($osmean)-1;$g=0;unset($match);while($g&lt;count($mean)){if(($spaceaddress[$s+$g]==$mean[$g])&amp;&amp;($match!=″no″))$match=″yes″;else$match=″no″;$g++;}if($match==″yes″){if(strlen($longestolang)&lt;strlen(${$olang}))$longestolang=${$olang};if(strlen($longestlang)&lt;strlen(${$lang}))$longestlang=${$lang};unset($overlap);unset($max);$array=array();$array=overlap($s,1,${$lang},$tos,${$olang},$g,$dictionary_t,$lang,$olang,$spaceaddress,$longestolang);$max=$array[″max″];$tolang=$array[″tolang″];if($tolang)$wasok=″true″;while($array[″overlap″]!=″false″&amp;&amp;count($spaceaddress)&gt;$max){$arroay=overlap($array[″s″],$array[″mm″],trim($array[″mean″]),$array[″tos″].trim($array[″osmean″]),$g,$dictionary_t,$lang,$olang,$spaceaddress,$longestolang);if($array[″overlap″]==″true″){$max=$array[″max″];$tolang=$array[″tolang″];$wasok=″true″;}}if($max&gt;$maximim&amp;&amp;$max&gt;0){$maximum=$max;$finals=$tolang;}if($wasok!=″true″){if(strlen(${$lang})&gt;$maximumr){$maximumr=strlen(${$lang});$gr=$g;$finalsr=${$olang};}}}$n++;}if($wasok==″true″){$match=″true″;if(!strstr($finals,$longestolang)&amp;&amp;$maximum&lt;=(substr_count(″″,$longestolang)+1)){#print″*″;if($s==0)$space=$space.$open.$longestolang.$close;else$space=$space.″″.$open.$longestolang.$close;$s=$s+substr_count($longestlang,″″)+1;}else{if($s==0)$space=$space.$open.$finals.$close;else$space=$space.″″.$open.$finals.$close;$s=$s+$maximum;}unset($maximum);unset($wasok);}elseif($finalsr)###testingnewthing,whathappenswhenapartialmachwasfound,(ieasomething,butaisnotinthesystem).{if($s==0)$space=$space.$open.$finalsr.$close;else$space=$space.″″.$open.$finalsr.$close;$s=$s+$gr;unset($maximumr);}else#stillistestphase.{if(ereg(″[a-zA-Zà-ú]″,$spaceaddress[$s]))$space=$space.″″$open.convert(substr($spaceaddress[$s],0,1),$baselang).$close;else$space=$space.$open.convert(substr($spaceaddress[$s],0,1),$baselang).$close;$spaceaddress[$s]=substr($spaceaddress[$s],1);if(!$spaceaddress[$s]||$spaceaddress[$s]==″0″)$s++;unset($match);}}else{if(ereg(″[a-zA-Zà-ú]″,$spaceaddress[$s]))$space=$space.″″.$open.convert(substr($spaceaddress[$s],0,1),$baselang).$close;else$space=$space.$open.convert(substr($spaceaddress[$s],0,1),$baselang).$close;$spaceaddress[$s]=substr($spaceaddress[$s],1);if(!$spaceaddress[$s]||$spaceaddress[$s]==″0″)$s++;unset($match);}if(!$spaceaddress[$s]||$spaceaddress[$s]==″0″)$s++;}}else{if(ereg(″[a-zA-Zà-ú]″,$spaceaddress[$s])){$space=$space.″″.$open.convert(substr($spaceaddress[$s],0,1),$baselang).$close;print″##″;}elseif(ereg(″[a-zA-Zà-ú]″,$spaceaddress[($s-1)]))$space=$space.″″.$open.convert(substr($spaceaddress[$s],0,1),$baselang).$close;else$space=$space.$open.convert(substr($spaceaddress[$s],0,1),$baselang).$close;$spaceaddress[$s]=substr($spaceaddress[$s],1);$s++;unset($match);}}#endofwordbetween..$url.=$space;unset($temp);$count++;#nextword.if(strstr($word,″@″)){$revid=hebrev($id_t);if(strstr($url,″.″))$url=ereg_replace(″([a-zA-Z0-9/-/_/])@([a-zA-Z0-9/-/_/]*)([/,])″,″\\1.\\2@inhebrew.co.il\\3″,″$url″);else$url=eregreplace(″([a-zA-Z0-9/-/_/])@([a-zA-Z0-9/-/_/]*)″,″\\1.\\2@inhebrew.co.il″,$url);unset($systemsite);}if(strstr($word,″@inhebrew.co.il″)){$revid=hebrev($id_t);$url=ereg.replace(″([à-ú]).([/-/à-ú/-/]*)@$emailend″,″\\1@\\2$revid″,$url);}if($systemsite==″true″&amp;&amp;!strstr(″$word″,″@″)){if($end)return″http//″.str_replace(″″,″″,$end).″.inhebrew.co.il/index.html?sub=″.substr($end,1);elsereturn″http//″.strreplace(″″,″″,$url).″.inhebrew.co.il}if(ereg(″inhebrew.co.il/([a-zA-Z0-9/-]*)/index.html″,$word)&amp;&amp;!strstr($word,″inhebrew.co.il/sample/″)){$end=substr($end,1);if(strstr($end,″/″)){returneregi_replace(″[[space]]+″,″″,str_replace(″-″,″-″,str_replace(″@″,″@″,($end))));}}returneregi_replace(″[[space]]+″,″″,str_replace(″-″,″-″,str_replace(″@″,″@″,$url)));}}?&gt;上述组合跨语言关联数据库和跨语言双重重叠翻译技术的使用的实例有其他潜在的应用来提高尝试从一种状态到另一种状态等价转换信息的现有技术,如技术中熟知的语音识别软件,及OCR扫描设备的质量。这些技术都可以用本发明的翻译方法检验它们的系统的结果。当翻译不存在并且因此会产生错误时,用户能够得到警报并且被询问或者系统可以被编程在数据库中对非重叠的翻译查找接近的替代来产生重叠翻译。当然,所有给用户的返回都能够被转换回初始的语言。熟悉技术的人应理解,熟练的从业者能够对上述的装置和方法作出很多改动而不偏离本发明的精神和范围。权利要求1.一种转换内容的方法,其特征在于,包括下面的步骤接收以第一种状态表达的内容;将所述以第一种状态表达的内容解析为至少第一个片段和第二个片段,所述第一个片段有第一个部分,所述第二个片段有第二个部分,所述第一个部分和第二个部分有所述内容的重叠部分;访问所述以第二种状态表达的内容的第三个片段,所述第三个片段对应于所述第一个片段和第二个片段中的一个;访问所述以第二种状态表达的内容的第四个片段,所述第四个片段对应于所述第一个片段和第二个片段中的另一个并且和所述第三个片段有重叠的部分;基于组合所述第三和第四个片段确定所述以第二种状态表达的内容;及提供所述以第二种状态表达的内容。2.一种创建内容转换数据库的方法,其特征在于,所述方法包括下面的步骤提供一对以两种不同状态表示相同概念的文档;及通过解析第一种状态的片段并比较所述已解析的第一种状态的片段和已解析的第二种状态的片段,及通过关联已解析的第一种状态的片段和已解析的第二种状态的片段之间的出现频数,使用所述一对文档来创建两种不同状态之间的片段关联的数据库。3.如权利要求2所述的方法,其特征在于,所述创建数据库包括使用所述第一种状态和所述第二种状态的片段的范围的步骤。4.如权利要求2所述的方法,其特征在于,所述创建内容转换数据库的方法包括步骤提供多对以所述第一种和所述第二种状态表示相同概念的文档,及通过解析第一种状态的片段并比较所述已解析的第一种状态的片段和已解析的第二种状态的片段,及通过关联已解析的第一种状态的片段和已解析的第二种状态的片段之间的出现频数,使用所述多对文档来创建两种不同状态之间的片段关联的数据库。5.如权利要求2所述的方法,其特征在于,所述创建内容转换数据库的方法包括步骤提供多对以多种状态表示相同概念的文档,及通过解析至少一种状态的片段并比较所述已解析的片段和已解析的至少另一种状态的片段,及通过关联已解析的多种状态的片段之间的出现频数,使用所述多对文档来创建多种不同状态之间的片段关联的数据库。6.一种创建数据库的方法,其特征在于,包括下面的步骤提供一对或多对以两种或多种状态表示相同概念的文档;选择第一种状态的所选片段的至少第一个和第二个出现,所选的片段在第一种状态的文档多次出现;在第二种状态的文档中选择至少第一个范围和第二个范围,所述第一个和第二个范围大致对应于第一种状态的第一个和第二个所选的片段的出现;比较第一个范围和第二个范围的片段并定位两个范围共同的片段;在所述数据库中存储已定位的共同片段;及在所述数据库中关联已定位的共同片段和所选的片段,并根据出现频数排序。7.如权利要求6所述的方法,其特征在于,所述概念以文本的形式出现。8.如权利要求6所述的方法,其特征在于,所述状态以语言的形式出现。9.如权利要求6所述的方法,其特征在于,所述片段以一个单词或多个单词的形式出现。10.一种从第一种状态到第二种状态翻译概念内容的方法,其特征在于,包括步骤使用所述第一种状态和所述第二种状态的内容之间的片段关联的数据库来转换第一种状态的文档的内容为第二种状态的文档,所述转换包括检查所述第一种状态的内容的片段和所述第二种状态的内容的片段,并且从所述已检查的第一种状态的内容和所述已检查的第二种状态的内容中去除相似的片段,并且在去除相似的片段之后关联所述第一种状态的内容和所述第二种状态的内容。11.一种转换文档的方法,其特征在于,所述方法包括步骤提供包含和第二种状态的数据片段关联的第一种状态的数据片段的内容;选择被翻译的文档的、开始于文档的第一个片段并且存在于数据库中的最长的分隔开的部分;从数据库检索和已定位的第一种状态的第一个片段关联的第二种状态的片段;选择和先前分隔开的第一种状态的片段有一个或多个重叠部分的至少第二个分隔开的第一种状态的部分;从数据库检索和已定位的第一种状态的第二个片段关联的第二种状态的片段;作为第一种状态的单个数据片段返回第一种状态的有重叠内容的两个数据片段;如果第二种状态的两个数据片段有重叠内容,返回第二种状态的单个数据片段;及关联所述第一种状态的所述单个数据片段和所述第二种状态的所述单个数据片段,从而返回所述单个数据片段从所述第一种状态到所述第二种状态的转换。12.如权利要求11所述的方法,其特征在于,包括附加步骤重复选择被翻译的文档的、存在于数据库中并且开始于文档的最后一个已检查的重叠的片段的最长的分隔的部分。13.如权利要求11所述的方法,其特征在于,所述状态以语言的形式出现。14.如权利要求11所述的方法,其特征在于,所述片段以一个单词或多个单词的形式出现。15.如权利要求12所述的方法,其特征在于,所述状态以语言的形式出现。16.如权利要求12所述的方法,其特征在于,所述片段以一个单词或多个单词的形式出现。17.一种转换文档的方法,其特征在于,所述方法包括步骤(a)提供包含和第二种状态的数据片段关联的第一种状态的数据片段的内容;(b)选择被翻译的文档的、开始于文档的第一个单词并且存在于数据库中的最长的分隔开的片段;(c)从数据库检索和已定位的第一种语言片段关联的第二种语言的数据片段;(d)选择和先前分隔开的第一种语言的片段有一个或多个重叠单词的至少第二个分隔开的第一种语言的片段;(e)从数据库检索和已定位的第一种语言的数据片段关联的第二种语言的数据片段;(f)如果两个数据片段有重叠的一个单词或多个单词,组合第二种语言的两个片段来构成翻译,并且如果两个数据片段没有重叠的一个单词或多个单词,重复步骤(e)和(f)直到用重叠的一个单词或多个单词定位了数据片段。18.如权利要求17所述的方法,其特征在于,进一步包括重复步骤(d)-(f)直到文档被完全地转换为第二种状态。19.一种转换内容的计算机系统,其特征在于,所述系统包括接收以第一种状态表达的内容并且解析所述以第一种状态表达的内容为至少第一个片段和第二个片段,所述第一个片段有第一个部分,所述第二个片段有第二个部分,所述第一个部分和第二个部分有所述内容的重叠部分的计算设备;所述计算设备访问所述以第二种状态表达的内容的第三个和第四个片段,所述第三个片段对应于所述第一个片段和第二个片段中的一个,所述第四个片段对应于所述第一个片段和第二个片段中的另一个并且和所述第三个片段有重叠的部分;及所述计算设备基于有重叠部分的所述第三和第四个片段确定所述以第二种状态表达的内容并提供所述以第二种状态表达的内容。20.如权利要求19所述的方法,其特征在于,进一步包括存储所述第三个和第四个片段的数据库系统,所述计算设备从所述数据库系统访问所述第三个和第四个片段。全文摘要一种自动地将文档从一种语言翻译为另一种语言的方法和装置。该方法包括比较表示相同或相似概念、各自以第一种和第二种语言写出的第一组和第二组样本文档,并创建关联互为翻译的第一种语言的单词和第二种语言的单词的数据库。该方法也可以包括将文档从第一种语言翻译为第二种语言。该方法包括解析第一种语言的文档为单词或片段,查找对应于所选第一种语言的单词或片段的第二种语言的单词或片段,及查找对应于第一种语言的单词或片段组合的第二种语言的单词或片段。文档编号G06F17/27GK1505786SQ01823161公开日2004年6月16日申请日期2001年12月27日优先权日2001年3月16日发明者埃里·阿博,埃里阿博申请人:埃里·阿博,埃里阿博
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1