CN1672149A - 词联想方法和装置 - Google Patents

词联想方法和装置 Download PDF

Info

Publication number
CN1672149A
CN1672149A CNA038183196A CN03818319A CN1672149A CN 1672149 A CN1672149 A CN 1672149A CN A038183196 A CNA038183196 A CN A038183196A CN 03818319 A CN03818319 A CN 03818319A CN 1672149 A CN1672149 A CN 1672149A
Authority
CN
China
Prior art keywords
speech
string
document
language
database
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.)
Pending
Application number
CNA038183196A
Other languages
English (en)
Inventor
埃里·阿博
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Individual
Original Assignee
Individual
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Priority claimed from US10/157,894 external-priority patent/US8744835B2/en
Application filed by Individual filed Critical Individual
Publication of CN1672149A publication Critical patent/CN1672149A/zh
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/30Information retrieval; Database structures therefor; File system structures therefor of unstructured textual data
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/40Processing or translation of natural language
    • G06F40/42Data-driven translation

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Databases & Information Systems (AREA)
  • Data Mining & Analysis (AREA)
  • Health & Medical Sciences (AREA)
  • Artificial Intelligence (AREA)
  • Audiology, Speech & Language Pathology (AREA)
  • Computational Linguistics (AREA)
  • General Health & Medical Sciences (AREA)
  • Machine Translation (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

一种用于创建和使用交叉想法联想数据库(图1)的方法,它包括一种方法,用于通过分析词或词串周围的构词法,以识别在语义上相等或接近相等的其他词或词串,来使采用某种语言的词和词串联系起来。一种用于使词和词串联系起来的方法包括:利用用户供应的词或词串输入设备210来查询文档的收集;确定在该查询词串左边和右边的用户定义数量的词或词串;确定位于该查询词串的左边和右边的词或词串的出现频率;以及,为这些被定位的词评定等级。

Description

词联想方法和装置
                         相关申请
本申请是2002年5月31日提交的第10/157,894号美国申请的部分续篇;第10/157,894号美国申请又是2001年12月21日提交的第10/024,473号美国申请的部分续篇;第10/024,473号美国申请声明了2001年3月16日提交的第60/276,107号美国临时申请和2001年6月21日提交的第60/299,472号美国临时申请的好处,它们都被包括于此,用作参考。
                     计算机程序清单附录
本申请包括2002年5月31日提交的、序号为10/157,894的美国申请中所包括的附录中的计算机程序清单,该美国申请被包括于此,用作参考。
                          发明领域
本发明涉及一种用于创建数据库的方法和装置,该数据库用于将信息从一种状态转换成另一种状态。在该较佳实施例中,该信息是语言,并且,本发明涉及一种用于创建联想数据库的方法和装置,该数据库能够被用于语言翻译系统中。
                           背景
已知用于将文档从一种语言自动翻译成另一种语言的各种设备和方法。但是,这些设备和方法常常无法将文档准确地从一种语言翻译成另一种语言,并且会耗费大量时间,使用起来也不方便。除了基于人的翻译者以外,其他已知设备包括可以购买到的机器翻译软件。这些已知系统具有的缺点致使它们容易出错、速度缓慢并带来不便。已知的翻译设备和方法无法始终如一地返回关于文本输入的准确翻译,所以常常要求深入细致的用户介入,用于校对和编辑。与提供执行文档的逐词翻译的设备和方法相比,准确的机器翻译更复杂。在这些逐词翻译系统中,该翻译时常让该被翻译文档的读者不解其义,因为该逐词翻译方法会导致错误的词选择和不连贯的语法单元。
为了克服这些不足之处,已知的翻译设备数十年来一直在尝试根据词汇规则、语形学规则、句法规则和语义规则的组合或集合而在句子的上下文内选择词翻译。这些系统(在该技术领域中被称作“‘基于规则’的机器翻译(MT)系统”)是有缺陷的,因为对于这些规则有如此多的例外,以致它们无法提供始终如一的准确翻译。
除“基于规则的MT”以外,近十年来,已开发了一种被称作“基于例子”(EBMT)的MT的新方法。EBMT使用被存储在交叉语言数据库中的两种不同语言内的句子(或可能是句子的各个部分)。当翻译查询与该数据库中的句子匹配时,该数据库产生采用该目标语言的该句子的翻译,从而提供采用第二种语言的准确的翻译。如果翻译查询的一个部分与该数据库中的句子的一个部分匹配,则这些设备尝试准确地确定:被映射到该源语言句子的那个句子的哪个部分是该查询的翻译。
EBMT系统无法提供广泛语言(broad language)的准确翻译,因为潜在无限的交叉语言句子的该数据库是手动建立的,并且将总是有显著的“不完全性”。EBMT系统的另一个缺点是:部分匹配得不到可靠的翻译。使用统计机器翻译的系统尝试使用各对被翻译文档并结合正好采用该目标语言的文档大全,来使交叉语言数据库的该创建自动化。这些系统都不使用算法,来从一对被翻译文档中提取充分数量的词和词串的翻译,以产生可靠的翻译。
一些翻译设备结合“基于规则的统计MT”和/或EBMT引擎。虽然与单单一个系统相比,这种途径组合可以产生更高的准确率,但是,若没有重大的用户介入和编辑,这些结果仍然不适合运用。
在尝试将文档从一种语言翻译成另一种语言时所面临的这些问题通常可以应用于“将表达想法或信息的数据从一种状态(比如说,词)转换成处于另一种状态的、表达这些想法的数据(例如,数学符号)”的问题。在这类情况中,必须咨询使处于一种状态的数据与处于另一种状态的相等数据相关联的交叉想法联想数据库。所以,需要一种改进的、更有效率的方法和装置,用于创建把采用不同语言或处于不同状态(例如,词、词串、声音、移动等)的相等想法联系起来的词典或数据库,并用于将采用一种语言或处于一种状态的文档所传达的想法翻译或转换成采用另一种语言或处于另一种状态的文档所表达的相同的或类似的想法。
本发明涉及:使用交叉想法联想数据库来处理内容。特别是,本发明提供 了一种用于创建关联想法数据库的方法和装置,并且提供了一种用于利用那个数据库来将想法从一种状态转换成其他状态的方法和装置。
在一个实施例中,举例来讲,本发明提供了一种用于创建语言翻译数据库的方法和装置——其中,两种语言构成这个关联想法数据库。本发明也提供了一种用于利用那个语言数据库来将文档(表达想法)从一种语言转换成另一种语言(或一般地说,是从一种状态转换成另一种状态)的方法和装置。但是,本发明不局限于语言翻译,尽管将呈现那个较佳实施例。本发明的该数据库创建方面可以应用于按某种方式而相关的、但用不同状态来表示的任何想法,本发明的该转换方面可以应用于将想法准确地从一种状态翻译成另一种状态。
在另一个实施例中,本发明的该数据库创建方面可以被用来在单一语言内的想法与它们彼此的关系之间形成联系,它们将被用于人工智能应用程序中。
现在将描述本发明对语言翻译实施例的应用。如这里所使用的,可交换地、最广义地使用与转换、翻译和处理有关的这些术语。
                             发明概述
本发明的一个目的是:通过提供一种用于创建和补充交叉想法联想数据库的方法和装置,来促进文档从一种语言或状态到另一种语言或状态的有效率的翻译。这些数据库通常将表达特定想法或信息的、处于第一种形式或状态的数据与表达相同想法或信息的、处于第二种形式或状态的数据联系起来。
本发明的另一个目的是:通过提供一种用于从包括采用第一种状态、形式或语言的数据的第一文档中创建包括采用第二种状态、形式或语言的数据的第二文档的方法和装置(其结果是:该第一和第二文档实质上表达相同的想法或信息),来促进文档从一种语言或状态到另一种语言或状态的翻译。
本发明的另一个目的是:通过提供一种用于从包括采用第一种状态、形式或语言的数据的第一文档中创建包括采用第二种状态、形式或语言的数据的第二文档的方法和装置(其结果是:该第一和第二文档实质上表达相同的想法或信息;并且,其中,该方法和装置包括:使用交叉想法联想数据库),来促进文档从一种语言或状态到另一种语言或状态的翻译。
本发明的另一个目的是:按实时方式来提供文档的翻译(从广义上说,是想法从一种状态到另一种状态的转换)。
本发明的另一个目的是:提供一种用于创建数据库的方法和装置,该数据 库用于将信息从一种状态转换成另一种状态。在较佳实施例中,该信息是语言,并且,本发明涉及一种用于创建联想数据库的方法和装置,该数据库能够被用于语言翻译系统中。
本发明通过提供一种用于创建交叉想法数据库的方法和装置,来实现这些和其他的目的。用于创建该交叉想法数据库的这种方法和装置可以包括:提供两个或更多的文档,每个文档采用不同的语言,但实质上表达相同的想法。这些文档可以是相同文本的精确翻译(即平行文本文档),或者可以是包含通常相关的文本的翻译(即可比较的文本文档)。本发明选择多次以第一种语言出现在这些可用的交叉语言文档中的所有词和词串的至少第一次和第二次出现。然后,它选择这些第二种语言文档中的至少第一词范围和第二词范围,其中,该第一和第二词范围对应于这些第一种语言文档中的被选择的词或词串的这第一次和第二次出现。接下来,它将在该第一词范围内发现的词和词串跟在该第二词范围内发现的词和词串进行比较,从而定位两个词范围共有的词和词串;并且将那些被定位的共有词和词串存储在该交叉想法数据库中。然后,在调整如这里详述的这些联想频率之后,本发明在所述交叉想法数据库中将采用第二种语言的、这两个范围内的被定位的共有词或词串与采用第一种语言的这个被选择的词或词串联系起来——按其联想频率(复现的数量)来分等级。通过测试跨越“平行或可比较文本”中的各种语言的共有词和词串,该数据库将决定更多联系,因为更多“平行或可比较文本”可采用各种不同的语言。
本发明也通过提供用于将文档从一种状态转换成另一种状态的方法和装置,来实现这些和其他的目的。本发明提供数据库,该数据库包括与采用第二种语言的数据段关联的采用第一种语言的数据段(通过以上所描述的方法或手动地加以创建)。本发明通过访问以上提及的数据库,并识别存在于该数据库中的、以该文档的第一个词开头的、将要被翻译(通过词数来测量)的该文档中的最长的词串,来翻译文本。然后,该系统从该数据库中检索与来自采用第一种语言的该文档的这个被定位的词串相关联的采用第二种语言的词串。然后,该系统选择存在于该数据库中并且具有与该文档中的先前被识别的词串的重叠词(或者作为选择,是词串)的该文档中的第二个词串,并从该数据库中检索与采用第一种语言的该第二个词串相关联的采用第二种语言的词串。如果采用第二种语言的这些词串联想具有重叠词(或者作为选择,是多个词),则结合采用第二种语言的这些词串联想(消除了该重叠中的冗余),以形成翻译; 如果不是这样,则通过词的重叠来检索和测试与这些第一种语言词串的其他第二种语言联想,用于组合,直到成功为止。通过在该数据库中找到具有与这个先前被识别的第一种语言词串的重叠词(或作为选择,是多个词)的该最长词串,来选择采用第一种语言的该文档中的下一个词串;并且,以上过程继续进行,直到这整个第一种语言文档被翻译成第二种语言文档为止。
本发明也创建频率表格,以确定两个或更多的词或词串之间的联想,以便可以在其他应用(包括涉及将内容从一种状态转换成另一种状态的应用)中利用这些频率表格。通过检查处于给定状态(例如,给定语言)的文档,并根据与该文本中的词或词串的接近度来确定两个词和/或词串相关的频率,可创建这些频率表格。这样,例如,通过检查这些英语频率表格中的文本,可以为与短语“Mount Everest”有关的词或词串(例如,“mountain”、“highest place inthe world”、“snow”、“climb”、“people died”和“cold”)建立联想。然后,可以用任何数量的方法在智能应用程序中利用这些频率表格,以便通过识别两个或更多的频率表格上的共同联想来回答问题。可以从采用单一语言的文档中(或作为选择,使用交叉语言文本)建立为智能应用程序创建的数据库。
                           附图简述
图1表现了根据本发明的交叉想法数据库的实施例。
图2表现了本发明的计算机系统的实施例,用于执行本发明的各种方法。
图3表现了本发明的该计算机系统的存储设备,它包含用于执行本发明的各种方法的程序。
                           发明详述
本发明提供了一种方法和装置,用于创建和补充交叉想法数据库,并用于使用交叉想法数据库来将文档从第一种语言或状态翻译成第二种语言或状态。如这里所讨论的文档是信息收集,作为被固定在某个介质中的符号和字符所表达的想法。例如,这些文档可以是被存储在磁性或光学介质上的电子文档、或书面文档(例如,书籍)。文档中所包含的这些符号和字符表达想法和信息,这些想法和信息通过使用意在被这些文档的用户理解的一个或多个表达系统来加以表示。本发明处理处于第一种状态(即,包含一个表达系统中所表示的信息)的文档,以产生处于第二种状态(即,实质上包含使用第二个表达系统 来表示的相同的信息)的文档。这样,本发明可以将各个表达系统(例如,诸如英语、希伯来语和粤语等书面语言和口头语言)之间的文档处理或翻译成其他语言。
用于执行本发明的该内容转换或内容处理方法的系统或装置可以是图2所示的计算机系统200。计算机系统200包括经由总线214而被耦合到存储器208的处理器202、输入设备210和输出设备212。计算机系统200也可以包括存储设备204和网络接口206。处理器202访问被存储在存储器208中的数据和程序。通过执行存储器208中的这些程序,该处理器可以控制计算机系统200,并可以执行步骤,以便处理数据和控制设备(例如,包括输入设备210、输出设备212、存储设备204、网络接口206和存储器208)。被存储在存储器208中的程序可以包括用于执行本发明的各种方法(例如,内容转换、使词和词串发生联系、以及数据库创建与补充方法)的步骤。
存储设备204记录并存储信息,供存储器208、处理器202以后检索;并且可以包括该技术领域中已知的存储设备(例如,非易失存储设备、磁盘驱动器、磁带驱动器和光学存储设备)。存储设备204可以存储程序和数据——包括可以被转移到存储器208供处理器202使用的数据库。完整的数据库或数据库的各个部分可以被转移到存储器208,供处理器202访问和处理。网络接口206在计算机系统200与网络216(例如,因特网)之间提供接口,并将来自计算机系统200的信号变换成可以在网络216上被传送的格式,反之亦然。输入设备210可以包括(例如)用于将数据输入存储器208和存储设备204的键盘和扫描仪。输入数据可以包括将要被存储在文档数据库中用于分析和内容转换的文档文本。输出设备212包括用于向计算机系统用户呈现信息的设备,并可以包括(例如)监视屏和打印机。
现在将描述本发明的详细说明——包括该数据库创建方法和装置、以及该转换方法和装置。
数据库创建方法和装置
本发明的该方法使用用于文档内容处理的交叉想法数据库。图1描绘了交叉想法数据库的实施例。交叉想法数据库的这个实施例包括列1和列2中的关联的数据段的清单。这些数据段是在表达系统中表达特定想法或信息的符号或字符编组。例如,在文档的表达系统是词语言的情况下,片段可以是词或词串。 这样,列1中的“系统A片段”是在假设的表达系统A中表达各种想法以及想法Da1、Da2、Da3和Da4的组合的数据段。列2中的“系统B片段”是在假设的表达系统B中表达各种想法和那些想法的各种组合中的一些组合的数据段Db1、Db3、Db4、Db5、Db7、Db9、Db10和Db12,它们通过与表达系统A中的数据段的联想频率来进行排序。列3表现了“直接频率”,它是采用语言B的这个或这些片段与采用语言A的这个(或这些)被列出的片段关联的次数。列4表现了“减法后的频率”,它表现:在减去那个(或那些)片段作为较大片段的一部分而关联的次数之后,采用语言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”、“dangerous sport”、“the highest pointin the world”或“Mt.Everest”)。这些词和词串(其等级将有可能低于“mountain”的翻译)可以按该用户的需要来加以处理。这样,本发明是自动化联想数据库创建者。从一种意义上说,最强的联想表达“翻译”或“转换”,但其他频繁的(但较弱的)联想表达与正在被检查的该想法密切相关的想法。所以,通过使用该技术领域中众所周知的人工智能应用程序,系统可以使用这些数据库。那些系统当前将不完全的、手动创建的想法数据库或事物本体用作关于应用的“神经网络”。可以使用来自采用单一语言的文档的任何用户定义范围,来建立关于人工智能应用程序的这些关联想法数据库。
本发明的另一个实施例利用计算设备(例如,原先技术领域中的可用类型的个人计算机系统)。虽然该计算设备通常是普通的个人计算机(要么是单机,要么在联网环境中),但是,同样考虑诸如PDA、无线设备、服务器、大型机等其他计算设备。但是,本发明的该方法和装置不需要使用这种计算设备,并且可以通过其他手段(包括手动创建这些交叉联想)来容易地加以实现。用于检查接连的文档以便扩大文档的该“样品”并创建该交叉联想数据库的那种方 法有变化——通过自动馈给(例如,如原先技术领域中已知的自动纸张装载机),或者通过使用因特网上的搜索技术来自动寻出这些有关的文档(例如,“网络爬虫”),可以手动设立这些文档,用于分析和处理。
注意,除(或甚至取代)“平行文本”以外,通过检查“可比较文本”,本发明也可以产生关联的数据库。此外,当搜索一种语言内复现的词或词串时,该方法全体地查看所有可用的文档。
建立该数据库
根据本发明,为了建立该数据库而对这些文档进行检查。在文档输入(再次关于表达采用两种不同语言的相同文本的一对文档)之后,使用这里所描述的这些方法和/或装置来开始该创建过程。
出于说明目的,假设:这些文档包含采用两种不同语言的相同内容(或从一般意义上说,是想法)。文档A采用语言A,文档B采用语言B。这些文档具有以下文本:
    文档A(语言A)     文档B(语言B)
    XYZXWVYZXZ     AA BB CC AA EE FF GG CC
本发明中的第一个步骤是:计算词范围,以确定关于任何给定词或词串的可能的联想的近似位置。由于单单的交叉语言逐字分析将不会产生有构词能力的结果(即,文档A中的词1经常不会作为文档B中的词1的字面翻译而存在),并且一种语言的句子结构可能在另一种语言的句子的不同位置(或顺序)中具有相等的想法,因此,本发明的该数据库创建技术将采用第一种语言的每个词或词串与在该第二种语言文档中的所选择的范围内发现的所有这些词和词串相关联。这也很重要,因为一种语言经常用比另一种语言更长或更短的词串来表示想法。通过检查这两个文档来确定该范围,该范围被用来将该第二文档中的词和词串跟该第一文档中的词和词串进行比较。也就是说,该第二文档中的词或词串的范围被加以检查,作为关于该第一文档中的每个词和词串的可能的联想。通过根据范围来进行测试,该数据库创建技术可建立许多第二种语言词或词串,该第二种语言词或词串可以等同于和翻译成该第一种语言词和词串。
为了在该第二种语言文档(在其中寻找关于该第一种语言文档中的任何给定词或词串的联想)中建立该范围,必须确定两个属性。第一个属性是该第二文档中的该范围的值或尺寸——由该范围内的词数来测量。第二个属性是该第二文档中的该范围的位置——由该范围的中点的方位来测量。这两个属性是用户定义的,但以下提供较佳实施例的例子。在定义该范围的尺寸和位置的过程中,目标是:确保“正在加以分析的该第一种语言片段的该第二种语言词或词串翻译将被包括在内”的高概率。
可以使用各种技术来确定该范围的尺寸或值,包括普通的统计技术(例如,根据文档中的词数来导出钟形曲线)。利用诸如钟形曲线的统计技术,该文档开端和末端处的该范围将小于该文档中间的该范围。不管是根据文档中的绝对词数来导出,还是根据文档中的某个词百分比来导出,关于该范围的钟形频率都允许有该翻译的外推法的合理机会。存在用于计算该范围的其他方法,例如“步骤”技术——其中,该范围存在于关于某个词百分比的一个等级、关于另一个词百分比的更高的第二等级、以及等同于关于最后的词百分比的该第一等级的第三等级。再有,可以根据其他可能的参数来对所有的范围属性进行用户定义或建立——其目标是:捕捉关于采用第一种语言的、正在被分析的该词或词串的有用联想。
该第二种语言文档内的该范围的位置可能取决于这两个文档中的词数之间的比较。用于范围位置目的的文档所具备的资格是用户定义的,并且由新闻文章、书籍章回和任何其他可离散地识别的内容单元(由多个数据段组成)来加以例示。如果这两个文档的词计数大略相等,则采用第二种语言的该范围的位置将大略与采用第一种语言的、正在被分析的该词或词串的位置相符。如果这两个文档中的词数不相等,那么,可以使用比率来正确地确定该范围的位置。例如,如果文档A有50个词,文档B有100个词,那么,这两个文档之间的该比率是1∶2。文档A的该中点是词位置25。但是,如果正在分析文档A中的词25,那么,将这个中点(词位置25)用作文档B中的该范围的中点的方位是无效的,因为这个位置(词位置25)不是文档B的该中点。相反,用于分析文档A中的词25的文档B中的该范围的该中点可以由这两个文档之间的该词比率(即,25×2/1=50)、由文档B的该中点中的手动方位、或通过其他技术来加以确定。
通过查看该文档中的词或词串的该位置,并注意在如上所述的该范围以内的所有这些词或词串,本发明的该数据库创建技术可返回该第二种语言文档中的可能的词或词串集,它们可以翻译成正在被分析的该第一文档中的每个词或词串。当利用本发明的该数据库创建技术时,随着联想频率的发展,有资格成为可能的翻译的这个词和词串集将缩小范围。这样,在检查一对文档之后,本发明将创建采用一种语言的词和词串与采用第二种语言的词或词串的联想频率。在根据本发明来检查许多文档对(因此创建了大样品)之后,该交叉语言联想数据库创建技术将返回关于任何一个词或词串的越来越高的联想频率。在足够大的样品之后,这些最高的联想频率会产生可能的翻译;当然,在那里该联想频率被认为是准确翻译的该终点是用户定义的,并且服从其他解释性翻译技术(例如,2001年3月16日提交的标题为《用于内容处理的方法和装置》的第60/276,107号临时申请中所描述的技术,该临时申请被包括于此,用作参考)。
如以上所指出的,本发明不仅测试词,而且测试词串(多个词)。如上所述,词串包括出现的所有标点符号和其他标记。在分析采用第一种语言的单一词之后,本发明的该数据库创建技术按递增方式来分析二词词串、然后是三词词串、等等。通过该技术,可以将采用一种语言的词或词串翻译成采用另一种语言的更短或更长的词串(或词),这种情况经常发生。如果词或词串只在采用第一种语言的所有可用文档中出现一次,那么,该过程立即开始分析下一个词或词串——在那里,该分析循环再次发生。当以第一种语言而多次出现在所有可用的“平行和可比较文本”中的所有词或词串都已被分析时,该分析停止。
从某种意义上说,任何数量的文档都可以被聚集起来,并可以被视作一个单一文档,用于寻找词或词串的复现。本质上,关于将不会重复的词或词串,它将必须只在所有可能的“平行和可比较文本”中出现一次。此外,作为另一个实施例,可以检查对应于每个词和词串的该范围,而不管它是否在所有可用的“可比较和平行文本”中出现一次以上。作为另一个实施例,可以通过决定是查询的一部分的特殊词和词串,来建立该数据库。当为翻译而输入词和词串时,本发明通过使用网络爬虫和其他设备来定位因特网上的交叉语言文本,最后通过要求该用户根据该查询的分析和充分可用的交叉语言材料的缺乏来供应缺少的联想,可以寻找还没有被分析的、被存储在存储器中的交叉语言文档中的这些词或词串的多次出现。
这样,本发明按这种方式来进行操作,以分析依靠(那个词串中的)词的正确定位的词串;并且可以按这种方式来进行操作,以说明词选择的上下文、以及诸如措词、文体或缩写词等语法特质。对于提供如这里所描述的该翻译过程的该双重重叠翻译技术而言,这些词串联想也有用。
重要的是,要注意:本发明可以适应这些情况——其中,较大词串的子集词或词串被始终如一地返回,作为关于该较大词串的联想。本发明通过处理该频率返回,来说明这些模式。例如,固有名称有时被呈现完整(如在“John Doe”中),按名或姓(“John”或“Doe”)来缩写,或者按另一种方式(“Mr.Doe”)来缩写。由于本发明将最有可能返回比词串返回更多的单独的词返回(即,关于这些名或姓的更多返回,而不是关于该全名词串“John Doe”的更多返回),因为构成词串的这些词将有必要单独加以计数并且有必要成为该短语的一部分,因此,应该利用用于改变该等级评定的机制。例如,在任何文档中,名称“John Doe”可能出现一百次,而“John”单独地或作为John Doe的一部分可能出现120次,“Doe”单独地或作为John Doe的一部分可能出现110次。该正规翻译返回(根据本发明)将把“John”的等级评得比“Doe”更高,并且那两个词的等级高于词串“John Doe”——都是在尝试分析词串“John Doe”时。通过从该子集(或单独返回)的出现中减去该较大词串的出现次数,可以实现该适当的排序(当然,尽管可以利用其他方法来获得类似的结果)。这样,从120(关于词“John”的出现次数)中减去100(关于“John Doe”的出现次数),关于“John”的该被纠正的返回是20。通过应用该分析,可产生100,作为关于词串“John Doe”的出现次数(当分析和尝试翻译这个词串时);可产生20,作为关于词“John”的出现次数;可产生10,作为关于词串“Doe”的出现次数;从而创建这些适当的联想。
注意,这个问题不局限于固有名称,并且经常发生在公用短语和许多不同的上下文中。例如,每当词串“I love you”被翻译成采用另一种语言的其最频繁的词串联想时,采用那另一种语言的关于“love”的词也可能每次都独立地关联。此外,当该词串在被分析的其他文本中有不同的翻译时,词“love”可能会再次关联。这将会曲解该分析,并返回采用第二种语言的词“love”(而不是采用第二种语言的“I love you”),用于采用第一种语言的“I love you”的翻译。所以,当为该较大词串的联想评定等级时,该系统再一次从所有子集联想的该频率中减去该较大词串联想的出现次数。这些概念也在图1中得到反映。
此外,也可以指示该数据库忽视常见词(例如,“it”、“an”、“a”、“of”、“as”、“in”等)——或当对词和词串的联想频率进行计数时的任何常见词。这将会更准确地反映这些真实的联想频率数,否则,作为任何给定范围的一部分的常见词的众多次出现将会曲解它们。这允许本发明的该联想数据库创建技术防止常见词曲解该分析,而无需过多的减法计算。应该注意,如果没有从该联想数据库中“减去”这些或任何其他的常见词,除非合适,否则,它们最终将不会被批准为翻译,这是因为这里更加详细地加以描述的该双重重叠过程将不接受它。
应该注意,可以让用于调整这些联想频率的其他计算确保词和词串的共同出现次数的准确反映。例如,当被分析的词的这些范围重叠时,用于避免双重计数的调整可能是合适的。在这些情况中,需要进行调整,以建立更准确的联想频率。现在,将通过把以上所描述的这两个文档用作例子,来描述用于创建和补充根据本发明的交叉想法数据库的该方法和装置的实施例的例子——该表格被重新创建如下:
               表格1
    文档A(语言A)     文档B(语言B)
    XYZXWVYZXZ     AA BB CC AA EE FF GG CC
再次注意,虽然这个实施例着重于只在单一文档中的复现的词和词串,但是,这主要是出于说明目的。将使用总计的所有可用的“平行和可比较文本”,来分析复现的词和词串。
通过使用以上列出的这两个文档(A——第一种语言,以及B——第二种语言),可在该数据库创建技术的情况下发生以下步骤。
步骤1.首先,确定该范围的尺寸和位置。如所指出的,该尺寸和位置可以是用户定义的,或者可以用各种方法来估计。这两个文档的该词计数近似相等(在文档A中有10个词,在文档B中有8个词),所以,我们将定位该范围的中点,以便与文档A中的该词或词串的位置相符。(注:由于这些文档之间的该词计数比率是80%,因此,作为选择,可以应用分数4/5而建立该范围的该位置)。在这个例子中,3的范围尺寸或值可以提供最佳结果,以估计钟形曲线;该范围在该文档的开端和末端处将是(+/-)1,在中间将是(+/-)2。但是,如所指出的,该范围(或被用来确定该范围的该方法)完全是用户定义的。
步骤2.其次,按照文档A来检查和测试文档A中的第一个词,以确定该文档中的那个词的出现次数。在这个例子中,文档A中的第一个词是X:X在文档A中出现三次——在位置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和AA BB(作为词串组合)的潜在的翻译或有关的联想。这样,X1(词X的第一次出现)返回AA、BB和AA BB,作为联想。
步骤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、BB CC、BB CC AA、BB CC AA EE、BB CC AA EE FF、CC AA、CC AA EE、CC AA EE FF、AA EE、AA EE FF和EE FF,作为可能的联想。
步骤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中的GG))。
通过将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、AA BB、AA BBCC和BB CC;
分析Y的下一个位置(位置7);
位置7处的该范围的尺寸是(+/-)2个词;
对文档B的那个范围的应用(位置7)可在位置5、6、7和8处返回结果:EE FF GG和CC;
所有排列产生以下关于Y2的可能性:EE、FF、GG、CC、EE FF、EE FF GG、EE FF GG CC、FF GG、FF GG CC和GG CC;
匹配来自Y1的结果可返回CC,作为该唯一的匹配;
结合关于Y1和Y2的匹配可产生CC,作为关于Y的联想频率。
步骤11.范围递增结束:由于关于词Y(词CC)的该唯一可能的匹配出现在关于Y(出现在文档B中的位置3处的CC)的第一次出现的该范围的末端,因此,该范围在第一次出现时递增1,以返回位置1、2、3和4:AA、BB、CC和AA;或以下的向前排列:AA、BB、CC、AA BB、AA BB CC、AA BB CCAA、BB CC、BB CC AA和CC AA。应用这个结果仍然会产生CC,作为关于Y的可能的翻译。注意,该范围被递增,这是因为该被返回的匹配在关于第一次出现(关于词“Y”的基本出现)的该范围的末端处;只要出现这个模式,就会发生范围递增结束,作为子步骤(或选择性步骤),以确保完整性。
步骤12.由于“Y”不再出现在文档A中,因此,该分析递增文档A中的一个词,并且检查词串“YZ”(词Y后面的下一个词)。通过递增到下一个词串(YZ)并重复该过程,可产生以下情况:词串YZ两次出现在文档A中:位置2和7。关于第一次出现(YZ1)处的YZ的可能性是AA、BB、CC、AABB、AA BB CC、BB CC。(注意,作为选择,这些范围参数可以被定义成包括该范围的尺寸的扩展,因为采用语言A的正在加以分析的词串变得更长。)
关于第二次出现(YZ2)处的YZ的可能性是EE、FF、GG、CC、EE FF、EE FF GG、EE FF GG CC、FF GG、FF GG CC和GG CC
匹配可产生CC,作为关于词串YZ的可能的联想;
延伸该范围(该范围递增结束)可产生关于YZ的以下内容:AA、BB、CC、AA BB、AA BB CC、AA BB CC AA、BB CC、BB CC AA和CC AA。
步骤13.由于“YZ”不再出现在文档A中,因此,该分析递增文档A中的一个词,并且检查词串“YZX”(文档A中的位置3处的词Z后面的下一个词)。通过递增到下一个词串(YZX)并重复该过程(YZX在文档A中出现两次),可产生以下情况:关于YZX的第一次出现的返回在位置2、3、4和5处;
排列是BB、CC、AA、EE、BB CC、BB CC AA、BB CC AA EE、CC AA、CC AA EE和AA EE;
关于YZX的第二次出现的返回在位置5、6、7和8处;
排列是EE、FF、GG、CC、EE FF、EE FF GG、EE FF GG CC、FF GG、FFGG CC和GG CC。
比较这两者可产生CC,作为关于词串YZX的联想频率;再有,注意,忽略作为可能的联想的EE的该返回,因为它作为相同的词(即,在相同的位置)而出现在这两个实例中。
步骤14.递增到下一个词串(YZXW)只发现一次出现;所以,完成该词串数据库创建,并检查下一个词:Z(文档A中的位置3)。
步骤15.通过为Z(在文档A中出现3次)应用以上所描述的各个步骤,可产生以下情况:
关于Z1的返回是:AA、BB、CC、AA、EE、AA BB、AA BB CC、AA BBCC AA、AA BB CC AA EE、BB CC、BB CC AA、BB CC AA EE、CC AA、CCAA EE和AA EE;
关于Z2的返回是:FF、GG、CC、FF GG、FF GG CC和GG CC;
比较Z1和Z2可产生CC,作为关于Z的联想频率;
Z3(位置10)在如所定义的该范围内没有返回。但是,如果我们加入这些参数“必须有关于每个语言A词或词串的至少一个返回”,则关于Z的该返回将会是CC。
通过将关于Z3的返回与关于Z1的返回进行比较,可产生CC,作为关于词Z的联想频率。但是,这个联想没有被计数,因为已经在以上的Z2的联想中说明词位置8中的CC。当重叠范围将使该过程对出现进行两倍计数时,该系统可以减小该联想频率,以便更准确地反映真实出现的次数。
步骤16.递增到下一个词串可产生词串ZX,它在文档A中出现两次。通过为ZX应用以上所描述的各个步骤,可产生以下情况:关于ZX1的返回是:BB、CC、AA、EE、FF、BB CC、BB CC AA、BB CC AA EE、BB CC AA EEFF、CC AA、CC AA EE、CC AA EE FF、AA EE、AA EE FF和EE FF。
关于ZX2的返回是:FF、GG、CC、FF GG、FF GG CC和GG CC;
比较这些结果可产生词串ZX与CC之间的联想。
步骤17.通过递增,下一个短语是ZXW。这只出现一次,所以检查文档A中的下一个词(X)。
步骤18.已在第一个位置中检查词X。但是,还没有为关于词X的可能的返回而检查相对于另一个文档的、词X的第二个位置。这样,如同在词X的第一次出现中,现在作用于词X(在第二个位置中),从而发生在该文档中:
关于位置4处的X的返回可产生:BB、CC、AA、EE、FF、BB CC、BB CCAA、BB CC AA EE、BB CC AA EE FF、CC AA、CC AA EE、CC AA EE FF、AA EE、AA EE FF和EE FF。
关于位置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和GG CC;
关于位置10处的Z的返回可产生:CC;
通过将位置10的结果与位置8的结果进行比较,不会产生关于词Z的联想。
再有,词CC被返回,作为可能的联想;但是,由于CC表示通过分析位置8处的Z和位置10处的Z而达到的该相同的词位置,因此,忽略该联想。
步骤21.按照一个词的递增可产生词串ZX;这个词串不会出现在文档A中的任何更多的(向前的)位置中,所以,该过程在文档A中的下一个词——“X”处重新开始。词X不会出现在文档A的任何更多的(向前的)位置中,所以,该过程重新开始。但是,文档A的末端已被达到,并且该分析停止。
步骤22.将该最后的联想频率制成表格,从而结合来自以上的所有这些结果,并除去如被解释的复制。
显然,没有足够的数据来返回关于文档A中的词和词串的决定性结果。由于检查包含具有以上所检查的那些联想的词和词串的更多的文档对,因此,这些联想频率将在统计上变得更可靠,以便语言A与语言B之间的词或词串将建立关于词和词串的可能的翻译的强大联想。
该计算机程序清单附录中所陈述的程序1是用于执行该数据库创建方法的实施例的程序的例子。可以在该技术领域中已知的该类型的计算机系统上执行程序1。
如所展示,这个实施例代表被用来创建联想的该技术。本发明的这些技术不需要局限于语言翻译。从广义上说,这些技术将应用于可能关联的、相同想法的任何两个表达,因为本质上,外语翻译只作为不同的词或词串所表达的相同想法的成对的联想。这样,本发明可以被应用于使数据、声音、音乐、视频、或作为想法(包括可以表达任何感觉(声音、视觉、嗅觉等)体验的想法)而存在的任何广泛搜索(wide ranging)概念联系起来。所要求的是:本发明分析两个实施例(在语言翻译中,这些实施例是文档;关于音乐,这些实施例可能是乐谱和表示相同乐曲的音频的的数字表现等)。
在另一个实施例中,该技术领域中众所周知的某些基于规则的算法可以被并入该交叉语言联想学习,以处置出于上下文和含义的目的是可交换的(并且有时可以具有潜在无限的词源)某些文本类别(例如,名称、数字和日期)。
此外,如果可用的交叉语言文档不供应关于翻译的、在统计上重要的结果,则用户可以检查关于翻译和其他联想的这些可能的选择,并且批准合适的选择并为其评定等级。
如所描述的,随着为联想频率而分析更多的翻译对的文档,这些联想频率在词与词串之间变得更强。由于检查更多语言对的文档,因此,本发明的该方法和装置将开始根据与第三种语言有共同关联、但彼此不直接关联的那些语言来填充各个语言对之间的“推导出的联想”。此外,当被翻译的文档采用多种语言时,可以跨越几种语言来分析共同的联想返回,直到一切之间只存在一个共同的联想(是该翻译)为止。该计算机程序清单附录中所陈述的程序2是计算机程序的例子,当该计算机程序连同该技术领域中已知的该类型的计算机系统来加以操作时,它提供一种方法——其中,在本发明的实施例中利用采用这些语言的数据。
此外,如果处于现存状态的表达人工地归因于与处于另一种状态的数据点的特殊联想并且在数据库中按目录加以分类,则将可能存在那两种状态之间的转换。例如,如果以形式、状态或语言来表达的每个“想法”被分配与电磁波(音调)的联想,则它将创建该想法的“电磁表示”。一旦已利用对应的电磁表示来为给定数量的想法编码,数据(采取想法的形式)就可以被翻译成电磁波,并且马上在常规电信基础结构上被加以传送。当这些电磁波到达该目的机器时,那个机器将把这些电磁波综合处理成各个单独的成分,并且,假如给出这些联想(以及排序指令、如这里所描述的该双重重叠技术的运用、和/或其他可能的方法),则呈现这些电磁表示所表达的各个单独的想法。
想法转换方法和装置
本发明的另一个方面针对提供一种方法和装置,用于从包括采用第一种状态、形式或语言的数据的第一文档中创建包括采用第二种状态、形式或语言的数据的第二文档——其最终结果是:该第一和第二文档实质上表达相同的想法或信息;并且,其中,该方法和装置包括:使用交叉想法联想数据库。该翻译方法的所有实施例利用双重重叠技术来获得想法从一种状态到另一种状态的准确翻译。对比而言,原先技术的翻译设备集中于单独的词翻译,或者利用基于特殊规则的代码来促进从第一种语言到第二种语言的翻译。本发明通过使用该重叠技术,来允许采用第二种语言的词和词串被有机地连接在一起,并按照将采用第二种语言书写那些词和短语的确切方式来成为其正确的上下文中的准确翻译。
在本发明的实施例中,该用于数据库创建的方法和该重叠技术被加以结合,以提供准确的语言翻译。这些语言可以是任何类型的转换,并且不一定要局限于口头/书面语言。例如,该转换可以包含计算机语言、诸如ASCII的特殊数据代码等。该数据库是动态的;即,随着内容被输入该翻译系统,该数据库得到增长——通过使用以前所输入的内容,该翻译系统接连迭代。本发明的该较佳实施例利用计算设备(例如,原先技术领域中容易获得的该类型的个人计算机系统)。但是,该系统不需要使用这种计算设备,并且可以通过其他手段(包括该数据库的手动创建和各种翻译方法)来容易地加以实现。
本发明可以被用于至少具有显示工具、输入方法、输出方法和处理器的普通计算机系统上。该显示工具可以是原先技术领域中容易获得的任何显示工具(例如,阴极射线终端设备、液晶显示器、平板显示器等)。该处理器工具也可以是在计算环境中容易获得的和使用的任何处理器工具,以便提供该工具,来允许该计算机进行操作,以执行本发明。最后,利用输入方法,来出于建立该交叉联想数据库的目的而允许输入这些文档;如上所述,用于转换成数字形式的该特殊输入方法可以根据该用户的各种需求而变化。
通过双重重叠技术的手动数据库创建和翻译
现在将描述用于根据本发明来将文档从第一种语言翻译成第二种语言的该方法和装置的实施例的例子——其中,通过向该用户查询词和词串的翻译,并且使用该双重重叠技术而自动生成段翻译,来开发该交叉语言数据库。
出于描述该较佳实施例的目的,将使用例子——其中,采用英语的数据被翻译成采用希伯来语的数据。这些选择只是用于描述,而并不意在限制第一和第二种语言的该选择。
根据本发明的较佳实施例,该计算机系统进行操作,以创建从英语到希伯来语的翻译之间的联想的数据库。该翻译方法至少包含以下步骤:
首先,采用英语的数据被输入该计算机系统。
其次,首先在逐词的基础上检查该英语输入的所有词。该数据库将返回采用希伯来语的已知词翻译。如果该翻译不被包括在该数据库内,那么,该计算机系统将按一种方式进行操作,来询问该用户,以输入该合适的翻译。这样,如果该数据库不知道所输入的英语单词的该希伯来语相等物,则该计算机将要求该用户提供该合适的希伯来语相等物。然后,该用户将返回该翻译,并将所述翻译输入该数据库。一经随后的运用,该计算机系统就将按一种方式来操作该数据库,以便该用户依靠其输入而及时地在较早的时刻知道该翻译。这样,在第二个步骤中,以其分析状态(例如,逐词地)来检查该输入数据,并且,这些合适的翻译要么被返回(依靠该数据库的该操作),要么被输入该数据库。
再次,按一种方式来检查该输入数据,以便递增这些被分析的片段。例如,如果首先在逐词的基础上分析该数据,则本发明的该翻译方法接下来通过评估两个词串来检查该输入数据。再有,按照与以上所述的方式相类似的方式,如果已知,则该数据库返回关于这两个词串的翻译;如果未知,则该翻译系统进行操作,来询问该用户,以输入关于所有可能的两个词串的该合适的翻译。然后,所有重叠的2个词片段被存储在该数据库中。例如,如果词串由四个词组成,那么,该数据库进行检验,以了解它是否具有存储器中的被翻译的以下组合:1,2、2,3和3,4。如果否,则它询问该用户。注意,只有关于这两个词串的被明确编码的翻译将被返回,作为准确的翻译,即使该数据库将有必要依靠以上第二个步骤而包含每个词定义,也是如此。
第四,如果两个重叠的二词英语词串的这些希伯来语翻译具有重叠词(或多个词),则该系统按一种方式进行操作,以结合这些被重叠的片段。消除该重叠中的冗余的希伯来语片段,以提供通过结合这两个重叠的英语词串(并消除该英语重叠中的冗余)而加以创建的该三词英语词串的连贯的翻译。从1到无限数量的步骤(n)反复地执行以上步骤,以便提供该合适的翻译。通过验证利用该重叠来跨接采用这两种语言的编码词块的一致的词串,该翻译方法可自动运作。一旦该数据库达到临界质量,关于跨越这两种语言而一致的重叠桥接器(overlap-bridges)的这些自动批准就提供在两种语言之间进行完全准确性翻译的语言网络。
例如,考虑英语短语“I want to buy a car”。本发明的方法一操作,这个短语就将被输入操作数据库的计算机。该计算机将进行操作,以确定该数据库是否包括以下单词“I”、“want”、“to”、“buy”、“a”和“car”的希伯来语相等物。如果这类相等物已知,则该计算机将返回这些希伯来语相等物。如果这类相等物未知,则该计算机将询问该用户,以提供这些合适的希伯来语翻译,并且存储这类翻译,供将来使用。接下来,该计算机将按重叠方式来将该句子分析成二词片段:“I want”、“want to”、“to buy”、“buy a”和“a car”。该计算机将进行操作,以返回这些片段的希伯来语相等物(即“I want”的希伯来语相等物等);如果这类希伯来语相等物未知,那么,该计算机将询问该用户,以提供这些合适的希伯来语翻译,并且存储这类翻译,供将来使用。
本发明接下来将检查三词片段“I want to”、“want to buy”、“to buy a”和“buy a car”。这时,在该过程中,本发明尝试结合每一对希伯来语翻译,它们的二词英语翻译重叠并结合,以形成每个三词英语翻译查询(例如,“Iwant”和“want to”结合,以形成“I want to”)。如果这些希伯来语片段也具有连接它们的共同重叠,则该翻译方法会自动批准该三词英语词串为希伯来语,作为翻译,而无需任何用户介入。如果这些希伯来语片段不重叠和结合,则向该用户询问准确的翻译。在为三词英语词串进行该合适翻译尝试之后,该过程继续进行四词词串,等等,从而通过该交叉语言重叠来尝试自动决定翻译组合,直到正在被检查的该片段完整为止(在此情况下,是整个短语“I want tobuy a car”)。在经历该分析之后,本发明的该方法随后比较这些被返回的翻译相等物,消除这些被重叠的片段中的冗余,并将该被翻译的短语输出给该用户。
通过联想数据库和双重重叠技术的文档翻译
作为另一个较佳实施例,本发明通过使用如上所述的交叉语言数据库来提供该文档中的词和词串的词串翻译,可以将采用第一种语言的文档翻译成采用第二种语言的文档;然后,通过使用以上所描述的该交叉语言双重重叠技术,可以结合采用第二种语言的重叠的词串,以提供该文档的翻译。例如,考虑可访问足够的交叉语言文档的数据库,以决定用英语输入的并且意在被翻译成希伯来语的以下句子的各个成分:“In addition to my need to be loved by all thegirls in town,I always wanted to be known as the best player to ever play on theNew York state basketball team”。
通过上述过程,该处理方法可能确定:该短语“In addition to my need to beloved by all the girls”是来自该源文档的最大词串,该源文档始于该源文档的第一个词并存在于该数据库中。它在该数据库中与希伯来语词串“benosaf ltzorechsheli lihiot ahuv al yeday kol habahurot”相关联。然后,该过程将使用以上所描述的该方法来确定以下翻译——即来自将要被翻译(并存在于该数据库中)的该文本的最大的英语词串,其一个单词(或作为选择,是多个单词)与以前被识别的该英语词串重叠,并且,关于那些重叠的英语词串的这两个希伯来语翻译也具有重叠的片段:“loved by all the girls in town”翻译成“ahuv al yedaykol habahurot buir”;“the girls in town,I always wanted to be known”翻译成“Habahurot buir,tamid ratzity lihiot yahua”;“I always wanted to be known asthe best player”翻译成“tamid ratzity lihiot yahuabettor hasahkan hachi tov”;并且“the best player to ever play on the New York state basketball team”翻译成“hasahkan hachi tov sh hay paam sihek bekvutzat hakadursal shel medinat newyork”。
利用该数据库的这些返回,该处理将按一种方式进行操作,来比较重叠的词和词串,并消除冗余。这样,“In addition to my need to be loved bv all thegirls”翻译成“benosaf ltzorech sheli lihiot ahuv al yeday kol habahurot”;并且“loved by all the girls in town”翻译成“ahuv al yeday kol habahurot buir”。通过利用本发明的该技术,该系统将采用这些英语片段“In addition to my need tobe loved by all the girls”和“loved by all the girls in town”,并且将返回这些希伯来语片段“benosaf ltzorech sheli lihiot ahuv al yeday kol habahurot”和“ahuv alyeday kol habahurot buir”,并确定该重叠。
在英语中,这些短语是:
“In addition to my need to be loved by all the girls”和“loved by all the girls intown”。除去该重叠可产生:“In addition to my need to be loved by all the girlsin town”。
在希伯来语中,这些短语是:
“benosaf ltzorech sheli lihiot ahuv al yeday kol habahurot”和“ahuv al yedaykol habahurot buir”。除去该重叠可产生:“benosaf ltzorech sheli lihiot ahuv alyeday kol habahurot buir”。
然后,本发明作用于下一个被分析的片段,以继续该过程。在这个例子中,该处理过程操作该短语“the girls in town,I always wanted to be known”。该系统解析该英语片段“In addition to my need to be loved by all the girls in town”和这个新的英语词集“the girls in town,I always wanted to be known”。这些希伯来语的对应的词集是“benosaf ltzorech sheli lihiot ahuv al yeday kol habahurotbuir”和这个希伯来语的对应的词集“habahurot buir,tamid ratzity lihiot yahua”。在英语中,该重叠的除去操作如下:“In addition to my need to be loved by all thegirls in town”和“the girls in town,I always wanted to be known”成为“In additionto my need to be loved by all the girls in town,I always wanted to be known”。
在希伯来语中,该重叠过程操作如下:
“benosaf ltzorech sheli lihiot ahuv al yeday kol habahurot buir”和“habahurotbuir,tamid ratzity lihiot yahua”可产生“benosaf ltzorech sheli lihiot ahuv al yedaykol habahurot buir,tamid ratzity lihiot yahua”。
本发明继续对将要被翻译的该文档中的剩余词和词串执行这种类型的操作。这样,在该较佳实施例的例子中,接下来的英语词串是“In addition to myneed to be loved by all the girls in town,I always wanted to be known”和“I alwayswanted to be known as the best player”。该数据库为这些短语而返回的希伯来语翻译是:“benosaf ltzorech sheli lihiot ahuv al yeday kol habahurot buir,tamidratzity lihiot yahua”和“tamid ratzity lihiot yahua bettor hasahkan hachi tov”。除去该英语重叠可产生:“In addition to my need to be loved by all the girls intown,I always wanted to be known as the best player”。除去该希伯来语重叠可产生:
“benosaf ltzorech sheli lihiot ahuv al yeday kol habahurot buir,tamid ratzitylihiot yahua bettor hasahkan hachi tov”。
继续该过程:下一个词串是“In addition to my need to be loved by all the girlsin town,I always wanted to be known as the best player”和“the best player to everplay on the New York State basketball team”。这些对应的希伯来语短语是“benosaf ltzorech sheli lihiot ahuv al yeday kol habahurot buir,tamid ratzity lihiotyahua bettor hasahkan hachi tov”和“hasahkan hachi tov sh hay paam sihekbekvutzat hakadursal shel medinat new york”。除去该英语重叠可产生:“Inaddition to my need to be loved by all the girls in town,I always wanted to beknown as the best player to ever play on the New York state basketball team”。除去该希伯来语重叠可产生:“benosafltzorech sheli lihiot ahuv al yeday kolhabahurot buir,tamid ratzity lihiot yahua bettor hasahkan hachi tov sh hay paamsihek bekvutzat hakadursal shel medinat new york”,它是想要加以翻译的该文本的翻译。
该过程一完成,本发明就进行操作,以返回该被翻译的最后文本并输出该文本。
应该注意,这些返回是根据以上所描述的该过程的、返回重叠联想的该数据库的最终结果。通过该过程,该系统最终将不会接受采用第二种语言的返回,该返回不具备与通过重叠的这些邻接的第二种语言片段的自然适合的连接。如果任何希伯来语返回都不具有与邻接的希伯来语词串联想的确切重叠,则它将会被拒绝,并用与这些邻接的希伯来语词串重叠的希伯来语词串联想来取代。
该计算机程序清单附录中所陈述的程序3是用于使用该双重重叠技术来执行该手动数据库创建和翻译的实施例的程序的例子。程序3可以在该技术领域中已知的该类型的计算机系统上加以执行。
结合使用交叉语言联想数据库和该交叉语言双重重叠翻译技术的以上实施例具有其他潜在的应用,以提高尝试使从一种状态到另一种状态的信息保持相等的现存技术(例如,语音识别软件、以及该技术领域中已知的OCR扫描设备)的质量。这两种技术都可以对照本发明的这些翻译方法来测试其系统的各种结果。当不存在翻译、所以假定错误时,可以警告并询问该用户,或者可以对该系统进行编程,以寻找与将产生重叠翻译的该未重叠翻译相接近的、该数据库中的替换。当然,给该用户的所有返回都将被转换回到该初始语言。
联想数据库方法和装置的创建
本发明的另一个实施例提供了一种用于在单一语言内创建联想数据库的方法和装置,并且提供了一种方法和系统,用于使用该联想数据库来为用户所提出的查询或问题提供回答。在这个实施例中,该联想数据库可以组织和存储允许确定和分析词或词串之间的联想的信息。联想程序可以具体表现本发明的部分方法,并且可以被用来建立本发明的这些数据库,并分析被存储在这些数据库中的该信息,以确定词或词串之间的联想。图3描绘了计算机系统200的存储器208,其中存储智能应用程序302、联想程序304、数据库306和操作系统308,供处理器202存取。联想程序304可以是独立程序,或者可以构成智能应用程序302的不可分割的一部分。联想程序304可以分析数据库306,以便响应于来自智能应用程序302的查询或响应于该用户经由该输入设备而直接提交的查询来确定词联想。
该系统和方法通过分析被输入该系统的文档的文本并且根据(例如)关于该文档的其他段落的特定段落的出现频率和位置而创建频率联想数据库(其中,该被分析的文本的各个片段彼此关联),来进行操作。被分析的文本的片段可以包括词和词串。本发明中所使用的文档可以被存储在“文档数据库”中,以促进这些文档的存取、剖析和分析。
在文档内频繁地彼此接近的词和词串可以被用于允许用户要求该系统回答问题或执行动作的人工智能或智能应用程序中。为智能应用程序使用本发明的这些联想数据库的目的是:确定智能应用程序所选择的两个或更多的词或词串之间或之中的共同的第三词或词串联想。该用户可以将该文档数据库中的范围定义为接近每个被选择的词和/或词串的每次出现的任何数量的词和/或词串。然后,该系统搜索这些范围共有的词和/或词串,它们是共同的第三词或词串。每个被选择的词或词串的这些范围内的共同的第三词或词串的出现频率可以被存储在表格3和表格4中所示的频率联想数据库中。作为选择,在该文档数据库中复现的词和词串的这些位置和出现频率可以被存储在复现词和词串数据库(在这里也被称作“复现数据库”——表格5中所示的数据库的例子)中。通过使用这些数据库,联想程序304可以根据用户定义的加权或其他标准,来建立智能应用程序302所选择的这两个或更多的词或词串共享的最高等级的第三词和词串关系。
用户定义的范围内的联想数据库建立
揭示了一种方法,用于建立在这里被称作“频率联想数据库”的一种联想数据库,它可以被应用于采用单一语言的文档,以便根据其在该本文内的彼此接近度来建立相关词和词串的数据库。表格3示出该频率联想数据库的例子。
该方法包括:
a.在“文档数据库”中汇编采用单一语言的文本全集,该文集越大越好。
b.在每个词或词串中搜索该“文档数据库”中的那个词或词串的多次出现。
c.在将要分析的该词或词串的任何一侧上建立用户定义数量的词或词串。
这将用作该“范围”。除正在被定义为某个数量的词以外,该“范围”还可以被定义为“广泛”(其中出现该词或词串的该特殊文本中的所有词)或被定义为“狭窄”(精确地接近该被分析的词或词串的特殊大小的词串),因为该用户可以为该特殊应用程序进行定义。
d.确定每个和全部的词和词串出现在正在加以分析的该被选择的词或词串周围的这些范围内的频率、以及(如果需要的话)它们与该被选择的词或词串的接近度。
以下是采用单一语言的大量文档之中的该联想建立的例子。表格2中所示的句子1和句子2是该“文档数据库”中的许多句子之中的两个句子,因为这整个文集可以被整体分析——其所有结果被加入该频率图表:
                                  表格2
    句子1 “I went to the doctor and I was sneezing a lot and he toldme that the cold and the flu are going around like crazy and Ishould rest,keep taking Vitamin C,and a little chicken soupwouldn’t hurt.”
    句子2 “As a doctor,I’m constantly seeing sneezing,red eyedpatients asking what they can do to treat the flu,to which Ireply,“the only things that really work are rest and time”
该系统将寻找复现的词或词串。这两个句子之间的唯一复现的词和词串是:
“I”、“to”、“the”、“doctor”、“and”、“sneezing”、“a”、“that”、“flu”、“are”、“rest”
如第10/024,473号美国申请中所述,关于某些应用程序,可以指示该系统辨认和忽略诸如“I”、“a”、“to”等共同的词。但是,有时,根据关于该系统的该特殊应用程序的目标,那些共同的词将被考虑并且被包括在数据库中。如果忽略这些共同的词,则这将会留下:
“Doctor”、“sneezing”、“flu”和“rest”
如果该范围被定义为包括(例如)任何一侧上的上至30个词,则该系统将记录每个这些词的30个词内的全部的词和词串的出现频率。此外,该系统也可以记下每个词或词串与正在加以分析的该词或词串的接近度。由于这些词中的每个词出现在这两个句子中的每个其他的词的该30词范围内,因此,每个词将具有关于表格3中的如下所述的每个其他的词的频率一,表格3表现了“频率联想数据库”的实施例:
                  表格3
    词/词串     联想词/词串     频率
    doctor     sneezing     1
    flu     1
    rest     1
    Sneezing     doctor     1
    flu     1
    rest     1
    Flu     sneezing     1
    doctor     1
    rest     1
    sneezing     1
    doctor     1
    flu     1
除了注意词和词串出现在正在加以分析的这些词和词串的范围以内的任何地方的频率以外,还可以根据在离开正在加以分析的该词或词串正好X个词的地方出现的词和词串的频率,来建立该联想数据库。在这类情况下,该范围将被应用程序的该用户狭窄地定义为:精确地接近正在加以分析的该词或词串的特殊大小的一个词或一个词串。
例如,该系统可以分析该“文档数据库”中可用的这些文档,以确定:它们包括该短语“go to the game”10,000次,并且它可以在词“Jets”的20词范围内发现“go to the game”87次。此外,该系统可以确定:“go to the game”在词“Jets”前面正好7个词的地方出现过8次(从该词串的第一个词“go”开始计数)。
也可以记录基于它们之间的词数的词和词串的复现模式的任何组合。例如,该数据库可以记录该数据库中的句子的数量,其中,当“tickets”出现在“go tothe game”后面9个词的地方时,词“Jets”出现在“go to the game”前面3个词的地方。那个模式可能出现3次,并且,该文本中的那个词模式的频率可以由应用程序来使用,该应用程序将推导出想法的含义,以便要么有助于为该用户询问的问题提供回答,要么有助于执行该用户所提出的请求。根据表格2中的句子1和句子2,可以生成表格4中所示的该频率联想数据库。
                            表格4
  词/词串   关联的词/词串   频率   在后面正好4个词的地方的频率
  doctor   sneezing   1   1
  flu   1   0
    rest     1     0
    sneezing     doctor     1     0
    flu     1     0
    rest     1     0
    flu     sneezing     1     0
    doctor     1     0
    rest     1     0
    rest     sneezing     1     0
    doctor     1     0
    flu     1     0
如表格4中所指出的,在句子1和句子2的该范围以内的这些复现的词中,只有一个词“sneezing”在正在加以检查的这些词中的一个词后面正好四个词的地方出现两次。可以使用一系列定义狭窄的范围来单独地生成这些表格,这些表格根据它们之间的词数所测量的其彼此的接近度来指出文本中的确切的复现词模式。但是,通常,最频繁使用的词和词串模式是与被检查的那些词邻接或与其左、右紧密接近的词和词串模式。
如果使用以上方法来建立如上所述的该可用文本中的所有复现词模式之间的所有这些接近度和频率关系的数据库,则可能要求进行大量计算。由于这个综合过程而正在被建立的许多过程可能永远不会被用于应用程序。以下技术涉及将复现的词串编入索引,以避免可能永远不会被使用的前面的处理。
此外,以下定索引过程可以被用作用于自动确定频率和接近度联想的上述方法的交替过程,并且可以被用来根据如上所述的范围内的特殊的词或词串位置来执行一般的范围频率分析和确切模式的分析。本发明的这个实施例是用于建立复现词和词串数据库(或“复现数据库”)的方法,它包括该文档数据库中的每个复现词和词串的位置,如下所述:首先,搜索用于在该可用文本中复现的所有词和词串;其次,通过记下它在其中出现它的每个文档中的位置,例如通过识别该词串中的第一个词的词数、以及该文档数据库中的该文档编号,在该数据库中记录关于多次出现的每个词和词串的这些“位置”。作为选择,可以存储该词或词串位于其中的该文档数据库中的该文档的那个文档编号。在此情况下,当对查询作出响应时,可以确定该词或词串的位置。
表格5是该“复现数据库”中的项目的例子。
                              表格5
    词或词串 频率和位置
    “kids love a warm hug” 20次(词58/文档1678;词45/文档560;词187/文档45,231;词689/文档123;……)
    “kids love ice cream” 873次(词765/文档129;词231/文档764,907;词652/文档4,501;……);
    “kids love a warm hug beforegoing to bed” 12次(词58/文档1678;词45/文档560;词187/文档45,231;……)
    “kids love ice cream beforegoing to bed” 10次(词765/文档129;词231/文档764,907;……)
    “kids love staying up late beforegoing to bed” 17次(词23/文档561;词431/文档76,431;……)
    “before going to bed” 684次(词188/文档28;词50/文档560;词769/文档129;词436/文档76,431;……)
如所指出的,在该“文档数据库”中发现一次以上的词或词串的每次发现将被加入该频率计数及其位置;通过指定文档中的该词数位置以及被指派用于识别其中出现它的该文档的编号,或者通过使用该文档数据库中的该词或词串的位置的任何其他的标识符,来记下该频率计数及其位置。
如果为该“文档数据库”中的所有文档充分和完全地生成该“复现数据库”(包括词数位置和文档编号),则该位置信息允许该系统计算所生成的任何一般频率关系、或如上所述的所生成的任何特殊词模式频率关系。此外,如果还没有建立该“复现数据库”,则该系统可以匆忙地对两个或更多的范围执行该频率分析。还不在该“复现数据库”中的任何词或词串复现都可以被包括在内,而该系统通过直接分析该文档数据库中的文档以便补充该“复现数据库”的分析,来对查询作出响应。在已为生成它的该特殊任务使用通过该“文档数据库”中的这些文档的直接分析而获得的该信息之后,可以将该信息存储在该“复现数据库”中,供将来使用。该系统是否使用该“复现数据库”来建立频率分析,或者是否匆忙地创建那些关系,该结果是可以应用智能应用程序的词和词串联想数据库。
现在参考图3,在共同频率分析过程中,智能应用程序302可以经由联想程序304来查询该频率联想数据库或该“复现数据库”——具有两个或更多的词或词串,用于建立其他第三词或词串与部分或所有这些被呈现的词串频繁关联的内容。当执行该“共同频率分析”(CFA):要么是1)“独立的共同频率分析”、要么是2)“相关的共同频率分析”时,该系统可以使用两种不同的方法。此外,通过将它们延伸一个或多个额外的生成,或者通过为进一步的CFA而结合任何CFA的这些结果和/或片段,在使用这两个过程中的任何一个过程之后,该系统可以实行进一步的统计分析。
独立的共同频率分析(ICFA)
当智能应用程序302为联想程序304呈现用于CFA的两个或更多的词和/或词串时,该系统可以使用本发明的联想数据库来识别与这些被呈现的词频繁相关的所有的词和词串。然后,该系统可以识别与部分或所有这些被呈现的词和词串频繁关联的那些词和/或词串。
然后,该系统可以按各种用户定义的方法来使用这些被呈现的词和/或词串之中的共同联想。例如,通过添加(或乘以或任何其他的用户定义的加权)关于频率联想数据库中的这些被呈现的词和/或词串的共同的或第三词或词串联想的频率,该系统可以识别最高等级的共同联想。作为用户定义的参数的另一个例子,可以要求被呈现的词和/或词串的所有表格上的最小频率(如整个等级、未加工的数量或任何其他的措施所测量的)。
在使用该“复现数据库”例子中的项目的过程中,该系统可以将“ice cream”和“kids love”在所有可用文档中的用户定义的范围内的频率确定为一个分析,然后,该系统可以记录“ice cream”和“before going to bed”一起出现的频率。然后,应用程序可以使用这些独立关系中的每个独立关系的频率,该应用程序将为每个独立关系提供相对值。这将基于ice cream的频率在“kids love”频率表格和“before going to bed”频率表格上的等级评定有多高(被用户定义为“绝对地”或“相对地”)、或关于该词或词串(例如,“kids love”)而出现的该联想(例如,“ice cream”)相对于该词串(例如,“kids love”)出现的总次数的时间百分比。根据它们与被选择的词串“kids love”和“before going tobed”的接近度,再一次将该“kids love”和“before going to bed”频率表格制成被定义的范围内的第三词或词串的出现的等级评定。
根据用户定义的值,在分析“ice cream”之后,该方法可以通过将“a warmhug”定位在关于相对频率的该“kids love”频率表格(基于该用户定义的范围或该应用程序的接近度要求)上,来对其进行分析;然后,可以将“a warm hug”定位在该“before going to bed”频率表格上。这两个频率表格上的所有其他的频繁联想(可能是用户定义的)将被加以比较(例如,“staying up late”),并且根据来自这两个表格的结合的相对频率的用户定义值来加以评分。基于每个频率联想的用户定义的加权的该最高等级词串将由该系统产生。这个分析的结果可能是:该系统将识别:“kids love”、“ice cream”多于“warm hugs”,而“kids love warm hugs”多于“kids love ice cream”、“before going to bed”。
作为另一个例子,如果为该系统呈现词“kangaroos”以及词和词串“wherecan I find”和“in America”,“独立的共同频率分析”表格6表现了可以根据该“文档数据库”中的这些文档来加以汇编的频率表格。
                                   表格6
                                       联想
    “Australia”     “the Zoo”   “NewZealand”
  “kangaroos”     21000     7000    1000
  “where can Ifind”     1000     2000    500
  “in America”     300     5000    100
  合计     22300     14000    1600
根据这些未加工的累积联想的合计,“Australia”的等级最高。但是,用户定义的参数可以对这些相对频率进行加权。一种可能的方法的例子可能是:将该最少发现的联想评分为“一”,然后将这些更高的关联频率评分为那个数字的倍数。在此情况下,例如,如表格7中所示,“the Zoo”的等级将评得最高。
                                   表格7
    “Australia”     “the Zoo”    “NewZealand”
  “kangaroos”     21(21x最低)     7(7x最低)    1(最低)
  “where can Ifind”     2     4    1
   “in America”     3     50    1
  合计     26     61    3
这些联想之中的相对加权表现了“the Zoo”将如何成为基于以上用户定义的参数的结果。通过乘以特殊的词或词串与这些查询中的每个查询关联的次数,以便为共同联想之间的相对平衡提供加权,可以实现类似的结果。在表格6所示的这个例子中,这些结果将返回“the Zoo”:
1.“the Zoo”      7,000×2,000×5,000=70,000,000,000
2.“Australia”    21,000×1,000×300=6,300,000,000
3.“New Zealand”  1,000×500×100=50,000,000
可以使用其他用户定义的标准,来为两个或更多被呈现的词和/或词串之中共同的联想评定等级,并对其进行选择。这可能包括:对多于其他种类的某些种类中的某些联想进行加权。例如,应用程序可以为“where?”问题(例如,“where can you find kangaroos in America?”)而将更高的值分配给“位置”联想(例如,“in America”)。
相关的共同频率分析(RCFA)
除了在两个或更多被呈现的词和/或词串之中发现共同的独立联想以外,另一个实施例还可以注意识别在只有包含正在加以分析的这些词或词串中的两个或更多的词或词串的那些文档中的用户定义的范围内发现的词和/或词串的频繁出现。  “相关的共同频率分析”不同于“独立的共同频率分析”,这体现在:相关的词一起出现,与为分析而独立地出现成对比。根据本发明的RCFA的该实施例使用以下步骤:
首先,定位来自这些被呈现的词和/或词串中的两个或更多的词和/或词串共有的该数据库的所有文档编号,即,定位来自包含这两个被呈现的词和/或词串的数据库的所有文档(例如,通过指定和返回特殊的文档编号)。这些文档编号是通过该技术领域中已知的或本申请中所描述的定索引方案而加以指定的那些号码。
然后,识别和比较接近这些被呈现的词和/或词串的用户定义的范围内的每个词和词串,并且记录关于这些范围内的任何词和词串的该频率。再一次,该用户定义的范围可以很狭窄,并且只包括与这些被呈现的词或词串明确接近的复现的词或词串。
例如,假设:为该系统呈现两个词串“kids love”和“before going to bed”,用于RCFA之下的分析。进一步假设:该数据库包含到该“文档数据库”中的这些文档中的被呈现的短语的、用户定义的范围内的以下各个项目:
“kids love a warm hug”                                                    20次
“kids love ice cream”                                                     873次
“kids love a warm hug before going to bed”            12次
“kids love ice cream before going to bed”             10次
“kids love staying up late before going to bed” 17次
“before going to bed”                                                      684次
由于在RCFA中,为分析而呈现两个词和/或词串,因此,“复现数据库”可以将该系统指引到具有“kids love”和“before going to bed”的该文档数据库中的这些文档,因为它们将具有与其关联的相同的文档编号。此外,如果需要的话,该系统可以只定位那些文档——其中,这些词串在彼此的该用户定义的词数内,或者彼此有任何其他的用户定义的有资格的接近度。
一旦该系统已识别包含与“before going to bed”的指定接近度内的“kidslove”的该文档数据库中的所有文档,该系统就可以从这两个被呈现的词串中建立用户定义的范围内的所有复现的词和词串的频率图表。在以上的例子中,只有关于这两个被呈现的短语(具有用户指定的描绘:允许多少词在这两个被呈现的短语之间)而出现的那些词和词串被加以分析(这样,现存的词串“kidslove a warm hug”、“kids love ice cream”和“before going to bed”(单独地)不被分析)。但是,从这个例子中,并且根据该词和词串数据库的该有限样品,“ice cream”在这两个被呈现的短语之间至少出现10次,因此至少具有10的频率;“staying up late”在这两个被呈现的短语之间至少出现17次,因此至少具有17频率;并且,“warm hug”在这两个被呈现的短语之间至少出现12次,因此至少具有12频率;这取决于该用户定义的词串范围。这些频率可以更高,因为它们可以出现在“kids love”和“before going to bed”附近的、但不与它们直接邻近的相同文本中(例如,“kids love ice cream and other sweets beforegoing to bed”或“before going to bed,kids love ice cream”)。
对该查询“what do kids love before going to bed?”的响应具有许多潜在的“正确”回答。然而,利用反映各种代表性观点的文档的的临界质量,这各个较高的频率将反映对该问题的一致看法,这些较低的频率将反映现存的选择性看法。例如,“hot shower”可能在“kids love”和“before going to bed”的该范围内三次,这指出几乎不如一些其他的观点那样流行的优先模式。作为选择,可以建立用户定义的参数,以要求最小的总频率,来有资格作为可接受的返回。
关于该ICFA或该RCFA,可以使用辞典或任何其他已知的或确定的词串相等物来取代这些被搜索的词和词串,以便在那些词相等物的范围周围发现复现的词和词串,作为本发明的选择性实施例。例如,该系统也可以搜索“kids like”、“kids really love”、“kids enjoy”、“children enjoy”、“children love”,来取代“kids love”。可以使用相同的技术,来用该系统的已知相等物(比如“before bed”、“before going to sleep”、“before bedtime”)代替“before goingto bed”。这样,该技术领域中已知的词典和/或本发明的这些共同频率技术的组合将产生大量语义相等的词和词串,这些词和词串可以被用来扩大关于许多更有关的语义搜索项的分析。
二级频率分析
在另一个实施例中,该系统可以使用构成查询的第一或第二个词或词串与从共同频率分析中选择的第三个词或词串之间的该共同联想,来执行频率分析,这将把新的信息加入为应用程序而执行的该分析。例如,如果“before goingto bed”(第一)和“kids love”(第二)的该共同范围内的所有词和词串的频率之间的该被选择的共同联想是“ice cream”(第三),则这个实施例在“beforegoing to bed”(第一)与“ice cream”(第三)、或“kids love”(第二)与“ice cream”(第三)之间生成独立的或相对的频率分析,从而根据那两个频率分析来选择联想。例如,“ice cream”和“before going to bed”可以具有与“stomach ache”的高共同频率联想,它可以用于关于将要根据本发明而加以使用的应用程序的该分析。而且,可以使用如该用户定义的生成那样多的组合中的相同的技术,来分析任何两个或更多的词或词串。特殊的应用程序将要求自动化分析,从而识别对联想频率分析的每个生成执行哪个共同频率分析。在组合地使用两个或更多的独立结果之前,更复杂的应用程序将识别将要被执行的这两个或更多的频率分析。
使用共同频率分析来确定词功能或含义
如第10/024,473号美国申请中所描述的,建立于正在加以分析的词和词串与不是翻译、但却是密切相关的想法的其范围内的词和词串之间的这些高频联想可以被用于人工智能应用程序。人工智能或智能应用程序是可以回答它过去不一定被要求回答的问题或执行它过去不一定被要求执行的任务的应用程序。本发明可以利用这些联想数据库来识别词和词串的形成和/或模式,这些词和词串的形成和/或模式可以被用作种类指示项,以识别与这些种类指示项关联的其他的词或词串的功能或目的。例如,词的特定模式通常可能与是人名、一种食物或动作的词相关联。通过使用CFA,本发明可以分析文档,以揭示这些模式的存在及其与其他词或词串的联想。根据该联想,该系统可以对同样与这些模式关联的其他词进行分类,因为同样关联的其他词有可能归入类似的种类。这样,该系统可以识别种类指示项的存在,并可以利用种类指示项。而且,共享高度关联的词和词串模式的词和/或词串经常是彼此的语义相等物或彼此的接近的语义相等物。
这种应用程序的一个例子将会是:帮助本发明翻译方法完成该系统使用以前描述的过程而无法决定的翻译。例如,假设:该系统接收过将要被翻译成语言X的英语查询“I love Moshe”。假设:该系统具有词串“I love”的翻译,但没有关于“I love Moshe”或“love Moshe”的翻译。
该联想数据库具有词串(比如“my name is Moshe”、“Mr.Moshe Fein”、“his name is Moshe”)中的词“Moshe”。可以使用CFA来识别这些词串与名称Moshe之间的关系。然后,用户可以将到该系统的这些短语识别为:与名称高度相关,所以是名称指示项——特定类型的种类指示项。一旦Moshe出现在用户定义数量(或百分比)的“名称指示项”短语中,该系统就将有统计确定性地确定:“Moshe”是潜在的名称,因为它出现在是“名称指示项”的文本中。
该技术领域中已知的其他系统也并入这些名称指示项、以及关于(例如)日期、号码和其他特殊类别的其他种类指示项,而本发明可以使用这些手动编码的指示项(比如指出名称的短语)来识别其中也出现比如Moshe的名称和其他已知名称的所有其他的短语。例如,该用户可能没有想过将“the guy’s nameis”作为名称指示项加入,但本发明将呈现它、以及用户将不会使用这个实施例来包括的许多其他的名称指示项。每个词和词串具有可以在周围的词和词串之中发现的有限领域的可能的选择性词或词串。该领域将包括精确地表示它们正在代替的这些想法的词和词串,并且将离开原来被表示为背道而驰的思想的该想法。例如,如果检查短语“I love chocolate”,则该系统可以生成关于词“love”的所有可能的替换。该系统将生成相等物和接近的相等物(比如“I really lovechocolate”、“I adore chocolate”、“I really enjoy chocolate”)、以及非相等物和相反物(比如“I tolerate chocolate”和“I hate chocolate”)。该系统将不会发现词的复现频率,它们不会使用该独立的共同联想频率分析(或作为选择,是相关的共同联想频率分析的实施例)来填充词love留下的整体。例如,该分析中的这些数据库将不会产生“I fish chocolate”、“I you chocolate”、“I whochocolate”。
一旦该系统确立Moshe是名称,并且,如果“I love”是名称指示项(但不是我们在其中看见过Moshe的名称指示项),那么,若该“翻译引擎”具有采用语言B的、关于“Moshe”的翻译,则它可以将其连接到采用语言B的“I love”翻译,而无须重叠。如果不知道采用语言B的、关于“Moshe”的翻译,则可以使用从英语到语言B的音译功能来生成名称“Moshe”的表示,并将其连接到关于“I love”的语言B翻译,而无须重叠。
与作为名称的其他词和/或词串清楚相关的名称是一个简单的例子:用户如何识别表达可以由概括含义来分类的想法的词串之间的共同统计关系,以用于智能应用程序。而且,所有词串都将拥有它们与所有其他相关的概念和想法的动态关系,这些概念和想法由这些语言内联想数据库来展示,当它们用语言来表示时,这些语言内联想数据库根据其彼此的紧密接近度的频率来列出相关的想法。构成连贯想法的每个词串在关于该系统的彼此的某个接近度内将具有文本中的采取频繁复现模式的其相关想法领域,以提取任何给定上下文中的那些想法的含义的概率。
例如,如果翻译查询涉及明显不是名称的词,则可以在邻接的词和词串的下一个层次上检查相关想法之中的该频率,以提供进一步的上下文。例如,如果将要被翻译成语言B的该英语查询是“I love Faith”,那么,这有些意思含糊,因为Faith可以是名称,也可以是“无证据的信仰感受”。
如果该完整的翻译查询中的短语“I love Faith”附近的其他邻接的词是“her”和“she”、但不是“god”、“religion”、“church”等,则该系统将把为频率、接近度和其他种类指示项加权的公式应用于存在于其数据库中的这些联想,并且“知道”选择该“名称”Faith(而不是该“无证据的信仰”Faith)的翻译。具有与其他想法的频繁关系集的其他邻接的词和词串将产生该发言者意图的进一步的证据,直到统计重要性修改该回答为止;或者,基于缺乏信息,该系统询问该用户,用于澄清。例如,如果这整个查询是“I love Faith”,那么,这将会发生。由于它有些意思含糊,因此,即使由人来担当的翻译者也可能会问:“你的意思是Faith这个词意指人吗?”
在采用英语的情况中,大多数大写首字母将指出:意指该“名称”Faith。这是该系统可以用来确定Faith也许是名称的另一个属性。许多基于非拉丁语字符的语言没有大写/小写字符,所以,这类事项将依靠通过文本中的彼此的频繁接近度而相关的词串之间的纯粹的一层加一层的关系、以及任何其他的语言表示(语音、符号、姿势等)。
使用共同频率分析来定位语义类似的词
表达特定想法的、采用一种语言的词和词串经常以各种模式出现。直接在特定词(采用英语,在该特定词的左边)前面以及在该特定词(采用英语,在该特定词的右边)后面发现特殊的词和词串的该频率可以表现这些模式。这样,表达相似想法的词和词串将在引入和离开它们的这些词和词串的类型和顺序方面具有共同性。
“使用这些词模式来生成信息”的另一个例子在综合的词和词串相等物辞典的创建过程中。如果要求该系统识别具有与另一个词或词串相同或几乎相同的含义的词和/或词串(即,这些词和词串在语义上类似),那么,该系统可以发现与那个词或词串关联的这些词和词串频率,并寻找其联想频率与它最密切匹配的、采用那种语言的词和词串。通常,两个词和/或词串之间的形成越类似,它们的含义就越类似。有时,相反物将共享高频共同联想,但将在某些重要的定性联想上有强烈的差异,这些重要的定性联想创建该系统也可以为应用程序提供的“相反物签名”模式。
将由该系统来确定词或词串所表达的任何想法与词或词串所表达的任何其他的想法之间的该联想的字符——该“联想签名”。该系统使用这些联想数据库来检测用户定义的范围内的特殊构词法,这些用户定义的范围适合检测想法周围的词模式,该想法定义该想法与和它的有关接近度内的其他想法之间的关系。该计算机程序清单附录中所陈述的程序4是使用共同频率分析来定位在语义上相等或类似的词的程序的例子。将概括地解释:通过使用这些联想数据库和智能应用程序302,该系统如何通过共同频率分析来检测语义上相等的词串。该系统也可以对这些被呈现的词和词串运行该ICFA和该RCFA,并且使用用户定义的加权过程来结合这些结果。
在使用ICFA的词或词串周围使用特殊构词法的一个实施例是:识别在语义值(即含义)上与任何词或词串相等或接近相等的词和/或词串。这个实施例涉及:步骤1,接收请求将要为相等物而加以分析的词或词串(该查询短语)的查询,并且返回具有最高出现频率的、用户定义的最小和/或最大尺寸的用户定义数量的词和/或词串(这些被返回的短语),以及每个被返回的短语的出现频率——其中,该被返回的短语被直接定位在所有可用文档中的该查询短语的左边。该复现的用户定义的词串越大,这些最终结果将越精确。步骤2,使用被分析的每个词或词串右边的一个词或词串的范围(一个词或词串的该范围意味着:该系统将把在步骤2中加以分析的这每个词或词串右边的复现的词和词串评为最高等级),来产生关于来自步骤1的用户定义数量的最高等级结果中的每个结果的频率分析。然后,添加在步骤2中产生的所有共同词和词串的这些频率。步骤3,使用直接在该查询的右侧的用户定义数量的词的范围(为准确起见,通常再次需要至少两个或更多的词),来产生关于该查询的频率分析。步骤4,使用直接在正在加以分析的这每个词和词串的左边的一个词或词串的范围(再有,直接在正在加以分析的该词或词串的左边的这一个词或词串的这些结果将按频率来为经常引入在步骤4中被分析的每个词和词串的这些词和词串评定等级),来产生关于从步骤3被返回的用户定义数量的最高等级词和词串中的每个词和词串的频率分析。然后,添加步骤4中的所有共同词和词串结果的这些频率。步骤5,通过识别由步骤2和步骤4产生的每个词或词串,来实行ICFA。步骤2中的这每个被返回的共同词和词串的频率数乘以从步骤4中产生的该共同词或词串的频率数。基于来自步骤2和步骤4的其频率的这些乘积的这些最高等级的词或词串通常将是与该查询在语义上最相等或类似的词和词串。
以下的例子展示了以上的实施例,它使用假设数据库来创建该系统的文档数据库中的所有词和词串相等物的联想;然后,使用ICFA来创建具有语义相等物的联想。假设:该用户输入词“detained”,以确定关于那个词的、该系统知道的所有这些词和词串相等物。
在步骤1中,通过只采用最上面的三个结果来简化该举例说明(尽管本发明所分析的该结果数量可能是用户定义的),该系统首先确定直接在“detained”左边的这些最频繁的三词词串。直接在该被分析的词(“detained”)左边的这些词串的长度是用户定义的(在这个例子中是三词词串)。该分析的这些结果——该被呈现的词左边的用户定义长度的词串清单被称作“左签名清单”。假设:以上例子中的该系统返回以下内容:
1.“the suspect was”
2.“was arrested and”
3.“continued to be”
在步骤2中,该系统作用于该被返回的“左签名清单”。该系统定位最频繁地跟随以上三个被返回的三词词串的词和/或词串——即这些被返回的三词词串右边的那些词和/或词串。该系统在这个操作中返回的这些词串的长度是用户定义的。该分析的这些结果——每个“左签名清单”项目右边的每个词和/或词串清单被称作“左锚清单”。假设:以上例子中的该系统返回以下的“左锚清单”:
1.“the suspect was”       a.“arrested”(240频率)
                 b.“held”(120)
                 c.“released”(90)
2.“was arrested and”      a.“held”(250)
                 b.“convicted”(150)
                 c.“released”(100)
3.“continued to be”       a.“healthy”(200)
                 b.“confident”(150)
                 c.“optimistic”(120)
也是在步骤2中,添加这每个“左锚清单”中的这些共同返回频率。这些“左锚清单”中的唯一共同返回是:
a.“held”120+250=   370
b.“released”90+100=190
在步骤3中,该系统确定直接在该数据库中的这些文档中的被选择的查询“detained”右边的三个最频繁出现的二词词串。被分析的频繁出现的词串的数量又是用户定义的(在这里,如在步骤1中,该系统返回这顶部三个出现的词串)。直接在该被分析的词(“detained”)右边的这些词串的长度是用户定义的,在这个例子中是二词词串(因为可以在步骤1和步骤3中使用任何长度的词串)。该分析的这些结果——在该被呈现的词右边的用户定义长度的该词串清单被称作“右签名清单”。假设:以上例子中的该系统返回以下内容:
1.“for questioning”
2.“on charges”
3.“during the”
在步骤4中,该系统作用于该被返回的“右签名清单”。该系统定位在以上三个被返回的二词词串前面最频繁地出现的词和/或词串——即这些被返回的二词词串左边的那些词和/或词串。该系统在这个操作中返回的这些词串的长度可以是用户定义的。该分析的这些结果——每个“右签名清单”项目左边的每个词和/或词串清单被称作“右锚清单”。假设:以上例子中的该系统返回以下的“右锚清单”:
1.“for questioning”       a.“held”(300)
                  b.“wanted”(150)
                 c.“brought in”(100)
2.“on charges”        a.“held”(350)
                 b.“arrested”(200)
                 c.“brought in”(150)
3.“during the”        a.“beautiful”(500)
                 b.“happy”(400)
                 c.“people”(250)
类似于步骤2,添加这些“右锚清单”中的这些共同返回频率。这些“右锚清单”中的唯一共同返回是:
a.“held”300+350=650
b.“brought in”100+150=250
在步骤5中,实行ICFA,并且,该系统返回等级评定。在本例中,通过乘以步骤2和步骤4中的这些共同返回(即“左锚清单”和“右锚清单”上的返回)的各个频率,来产生加权频率,如下所述:
1.“held”    650×270=   175,500
2.“arrested”200×240=48,000
用于等级评定的选择性实施例没有考虑该特殊加权频率。相反,根据其上出现该结果的“锚”清单的总数,来为至少一个“左锚清单”和至少一个“右锚清单”上所产生的所有结果评定等级。在以上的例子中,使用这个实施例的这些等级评定将会是:
等级    语义相等物      锚清单的#
1.      “held”                    4
2.      “arrested”            2
虽然“released”和“brought in”每个都在该分析中产生过两次,但是,它们都没有在“左锚清单”和“右锚清单”上产生过(“released”在“左锚清单”上产生过两次,“brought in”在“右锚清单”上产生过两次)。可以利用结合该“锚清单”数量和总频率的其他加权方案。
以上的举例说明基于该文档数据库中的相对较少数量的文档。该文档数据库可以更大,并且可以包括该系统可经由网络(例如,因特网)来进行远程存取的文档。在本发明的一个实施例中,该用户不仅定义将要被包括在“签名清单”上的该结果数量,而且可以在已利用用户定义的最小频率来发现所有这些被指定的结果数量时,停止该分析。当使用大型数据库时,这用作切断,并且将节省处理功率。
用于产生与查询词或词串在语义上相等的词和词串的ICFA的用户定义的参数的其他例子可以考虑各种长度的该查询的左侧和右侧的频繁复现的词和词串。这样,实施例可能具有到这些“签名清单”中被返回的这些词串的可变的用户定义长度——具有到这些词串的最小和最大长度;而不是具有到“左和右签名清单”中被返回的这些词串的固定的用户定义长度。该查询的左、右侧上的该分析中所使用的不同大小的更频繁出现的词串提供更多的上下文,来识别更精确的语义相等物。此外,这个实施例可能包括关于这些被返回的词或词串的“签名清单”返回的最少数量的出现,以便具有该“签名清单”的资格,用于获得进一步的精确性。
在这个可变的词串分析中,在本发明的实施例中,来自先前的例子(“detained”)的该查询可以被分析如下:
在步骤1中,从可用数据库中生成用户定义的最小和最大长度的、该查询左边的用户定义数量的最频繁词串的“左签名清单”。这是先前例子的步骤1中的相同的过程,除了“这里使用各种长度的词串,而不是固定长度的词串”以外。如果这些用户定义的参数是(1)返回这六个最频繁词串、(2)具有最小长度为两个词并且最大长度为四个词的这些词串、以及(3)具有至少500次出现的最少出现,那么,该先前例子中的这些结果可能(再次使用假设的例子)如下所示:
词串                                频率
1.“people were”                                       1,000
2.“arrested and”                                      950
3.“were reportedly”                                800
4.“passengers were”                                775
5.“was being”                                            700
6.“the suspect was”                                650
7.“was arrested and”                               575
8.“after the journalists were”           500
在步骤2中,如同在该先前的例子中,从该“左签名清单”上的这些结果中生成这些“左锚清单”。
在步骤3中,使用这个例子的步骤1中所描述的这些相同定义的参数,来生成“右签名清单”,其结果如下:
词串                       频率
1.“for questioning”             1,750
2.“on charges”                       1,520
3.“during the”                       1,350
4.“because of”                       1,000
5.“due to”                               750
6.“in connection”                 600
7.“without charge or”          575
8.“for questioning after”  500
在步骤4中,如同在该先前的例子中,从该“右签名清单”上的这些结果中生成这些“右锚清单”。
在步骤5中,根据其上出现该结果的清单总数,来为至少一个“左锚清单”和至少一个“右锚清单”上所产生的所有结果评定等级。作为选择,通过将其上出现结果的“左锚清单”的总数乘以其上出现该结果的“右锚清单”的总数,可以确定等级评定。此外,总频率可以被加入这些等级评定的加权。
应该注意,以上的范例查询是词(“detained”),而该系统可以产生关于任何大小的词串的语义相等物——其中,该词串表达语义上可识别的想法。例如,如果利用“car race”来询问该系统,则它将会产生关于“car race”的潜在的语义相等物。通过执行以上这些实施例中所描述的相同的步骤(它们利用ICFA来确定语义相等物),该系统可能会产生其他语义相等物之中的“stock carrace”、“auto race”、“drag race”、“NASCAR race”、“Indianapolis 500”、“race”。该系统使用该完全相同的过程来接受查询和产生语义相等物,而不顾该查询或该结果的该词串的大小。
“创建语义相等物联想”的另一个实施例基于以上所示的该“相关的共同频率分析”(RCFA)(而不是该“独立的共同频率分析”(ICFA))例子的运用。该RCFA语义相等物分析涉及以下步骤:
步骤1:接收词或词串查询,以发现该RCFA语义相等物词和词串,并且搜索文档数据库,以识别包含该词或词串的文档的各个部分。在例子中,词串“initial public offering”作为查询而被输入,以识别其RCFA语义相等物。然后,该系统搜索文档数据库,利用该“initial public offering”词串来识别文档的各个部分,并且将文档的那些部分返回给该用户。该用户可以定义和限制被返回部分的数量。
步骤2:关于在步骤1中发现的该查询词串的每次出现,通过结合(ii)该查询右边的用户定义大小的该词和/或词串来记录(i)该查询左边的用户定义大小的该词和/或词串的该出现频率,可分析这些被返回的部分。这个步骤创建“托住”该查询的相关的左、右签名;该结果创建“左/右签名托架”。
在我们的例子中,该用户定义的左词串可以被设置为二,并且,该用户定义的右词串可以被设置为二。利用出现用户定义的最少次数(例如,5次)的、将要被返回的用户定义的托架限定(例如,100个),可以有效率地分析这些计算。这个过程会导致以下关于该查询“initial public offering”的假设返回:
1.“for an_________of its”
2.“at an_________price of”
3.“announced the_________ofits”
4.“at the_________of its”
5.“as the_________of its”
6.“announced its_________of the”
7.“the proposed_________for its”
8.“announced an_________of stock”
9.“completed its_________of its”
10.“for the_________of its”
步骤3:在该文档数据库中搜索出现在在步骤2中产生的每个“左/右签名托架”的这些左词串与右词串之间的最频繁词和词串(上至用户定义的最大尺寸)。通过识别在该“左/右签名托架”的这些词串之间出现的其他频繁出现的词和/或词串,可产生潜在的语义相等物。用户定义的最少数量或百分比的“左/右签名托架”可以随意地被要求取得资格。
步骤4:可以根据总频率、“左/右签名托架”的“被填充”的数量、或某种其他的方法或方法组合,来为出现在该“左/右签名托架”的这些词串之间的最后得到的词和/或词串评定等级。
在这个例子中,步骤3中的顶部结果可能是这些词和/或词串IPO、ipo(这些结果可能区分大小写)、Initial Offering、offering、Public Offering和stockoffering,它们都“适合”部分的这些“左/右签名托架”的该未决定部分。
运用ICFA和RCFA来确定语义相等物将包括适合该“左/右签名托架”、但不是语义相等物的一些结果。例如,具有与该查询词或词串相反含义的许多词或词串将适合与该查询相同的许多“左/右签名托架”,如同其他相关的、但非语义相等的词和词串那样。如果应用程序要求关于查询的该清单上只包括语义相等物,那么,可以通过关于该查询所产生的该清单上的每个结果的单独的共同频率语义相等物分析的该操作,来使用该技术领域中已知的过滤技术。过滤技术(例如,只包括来自该查询清单的结果的过滤技术,该查询清单也出现在用户定义数量的语义相等物清单上的用户定义的门限等级评定以内)可以被用来确定什么将保留在该原始查询清单上。将为只需要语义相等物的应用程序过滤所有其他的结果。
关于语义相等物生成的以上实施例是本发明可以使用ICFA(或作为选择是RCFA)来识别关于词和词串所表达的想法的特征、以及词或词串与任何其他的词或词串之间的关系的特性的许多方法之一。根据“利用由其频率和语言内彼此的接近度来定义的想法之间的各种关系、以及其他种类指示项来解决更复杂的问题”的相同的核心想法,可以使用其他方法。这可以涉及:对两个或更多不同的片段集合实行共同频率分析,并且按用户定义的方式来使用结合的结果。
可以被识别的更复杂的关系的一个例子是通过彼此相反的词或词串的签名的比较而形成的该模式。为了识别这个模式,用户将把词输入该系统(例如,hot)。然后,该系统将识别在这个词(这些生成词“signature”)周围的复现的词和词串的所有这些频率。接下来,该用户将呼吁该系统识别在表达该相反想法(例如,寒冷)的这个词或词串周围的复现的词和词串的所有这些频率。然后,该系统将寻找用于重叠词hot的左侧与cold的右侧之间的、以及cold的左侧与hot的右侧之间的想法的共同模式。
这些结果是通过这两个签名的比较而形成的模式,该系统随后可以使用这两个签名来识别具有通过其签名的比较而形成的类似模式的其他词或词串对。这样,如果按寻求相反物的方式并利用词或词串来询问该系统,那么,该系统将(1)识别那个查询周围的所有词和词串,(2)识别具有类似于该查询的签名、但不在将会把它们识别为同义词的类似层次上的词和词串的清单,(3)然后将这些相关的(但不是同义的)词和词串的签名与该查询进行比较,并且(4)将在步骤3中识别的该比较与以前识别的相反的词或词串对的签名的这些比较进行比较。如果在步骤3中生成的任何比较都具有充分(用户定义的)类似于通过已知相反物之间的签名比较而形成的该模式的模式,那么,该系统将识别与该查询形成对比的、来自步骤2的该词或词串,以形成那个模式,并且将它识别为该查询的相反物。
也应该注意,供该系统产生词串相等物(或任何其他的关系)的用户定义的参数可以涉及与该查询紧密接近、但不直接与左或右侧上的该查询邻近的词串。将需要在应用程序中调整这些用户定义的参数——其中,语义含义表达通常不太有效率,或者在结构上不太常规(例如,固定于因特网“聊天室”媒介中的谈话和其他类型的谈话)。
使用语义相等物发生器的翻译数据库建立器
本发明的额外的实施例利用用于生成语义相等物清单的该系统和方法来协助翻译。它可以被用作替换,或者可以连同使用平行文本以及如这里和第10/024,473号美国专利申请中先前所描述的该双重重叠技术的该词串翻译数据库建立器来加以使用。
“如何可以在翻译数据库中利用用于生成语义相等物清单的该系统和方法”的一个例子如下所述:
首先,在还待决定的将要被翻译的该部分的左边和右边生成用户定义大小的两个特殊签名。例如,假设:该系统正在翻译句子“I went to the ball park towatch the baseball game”。而且,假设:已知关于该句子的翻译的所有片段,除了短语“the ball park”(这被称作“未决定的短语或部分”)以外。如果这些用户定义的参数被定义为直接在该未决定的短语左边的该三词词串和直接在该未决定的短语右边的该四词词串,那么,本发明返回两个词串:“左签名特殊词串”和“右签名特殊词串”。这样,该“左签名特殊词串”将会是:“Iwent to”。该“右签名特殊词串”将会是:“to watch the game”。
其次,通过使用用于创建语义联想的任何先前描述的实施例,来为来自文档数据库的该未决定的短语生成采用该源语言的签名清单。通过对该未决定的短语使用上述语义相等物系统和方法而加以创建的这些“清单”被分别称作该“左签名清单”和该“右签名清单”。
再次,将该“左签名特殊词串”和该“左签名清单”都翻译成该目标语言。通过使用本发明的平行文本数据库建立器或该技术领域中已知的其他翻译设备,可以获得这些翻译。通过使用本发明的上述多种语言手段实施例,可以改进使用该技术领域中已知的翻译系统的结果。这个过程的该结果是该“左目标签名清单”。对该“右特殊词串清单”和该“右签名清单”实行类似的翻译过程,以创建“右目标签名清单”。
第四,通过使用该语义相等物过程的以上步骤2和步骤4,从该“左和右目标签名清单”和任何目标语言文档数据库中创建目标语言锚清单。从这个过程中得到的这些清单分别是该“左目标锚清单”和该“右目标锚清单”。
最后,将该“左目标锚清单”的返回与该“右目标锚清单”的返回进行比较。出现在该“左目标锚清单”中的至少一个清单和该“右目标锚清单”中的一个清单上的这些结果是该查询的潜在翻译,并且根据其上出现它们的“锚清单”的总数来评定等级。关于从该“特殊上下文词串清单”中导出的该“锚清单”上的出现,可以提供用于该等级评定的额外加权,以获得更大的精确性。通过将“左锚清单”的数量乘以其上出现结果的“右锚清单”的数量,也可以确定等级评定。此外,关于该总返回频率的某个加权可以被包括在内,作为等级评定结果中的因素。
“假如有未决定的短语,使用语义相等物来建立关于查询的潜在翻译的数据库”的另一个实施例如下所述:
首先,如上所述,根据只使用“左和右特殊签名词串”的该语义相等物分析,来分析该查询的这个未决定的短语。然后,如上所述,根据只使用“左和右签名清单”的该语义相等物分析,来分析该查询的这个未决定的短语。然后,出现在该“左锚清单”和/或该“左签名特殊词串”中的至少一项上的、并且出现在该“右锚清单”和/或该“右签名特殊词串”中的任何一项上的这些结果根据其上出现它们的“锚清单”的总数来评定等级。关于从该“签名特殊词串”中导出的该“锚清单”上的出现,可以提供用于该等级评定的额外加权。接下来,该查询的这个未决定的部分和由上述等级评定生成的该语义相等物清单被翻译成该目标语言。通过使用本发明的平行文本数据库建立器或该技术领域中已知的其他翻译设备,可以获得这些翻译。通过使用本发明的先前描述的多种语言手段实施例,可以改进使用该技术领域中已知的翻译系统的结果。关于这些翻译结果中的每个翻译结果,该系统使用采用该目标语言的文本数据库来生成语义相等物清单。出现在用户定义数量的清单(却是这些清单中的至少两个清单)上的任何目标语言翻译都被指定为该查询的这个未决定部分的潜在翻译。
假如已知的翻译设备有潜在的不准确度,也可以为局部准确性门限而检查为该查询的这个未决定部分产生的这些翻译及其使用这些设备的语义相等物。例如,如果“使用基于规则的引擎来翻译五词词串”产生过采用该目标语言的五词词串翻译,那么,可以为包括该翻译中的用户定义的最少数量的词的、用户定义数量的词之间的任何词串的语义相等物测试那个目标语言词串。
作为用于使用ICFA或RCFA将文档从一种语言翻译成另一种语言的另一个实施例,涉及:包括查询的语义相等物及其连接的左和右签名词串。通过使用采用该源语言和目标语言的这些清单、两种语言之间的逐词词典和该双重重叠技术,可以实现各种语言之间的翻译。
彻底地说,该联想数据库建立技术涉及:(i)采用按线性或有序的方式来加以组织的分组数据单元;(ii)将该数据组分成该整体的所有可能的邻接子集;以及(iii)根据所有可能的分组数据单元内的彼此的频繁复现(通常是紧密的)接近度,来建立所有数据子集之间的关系。在CFA的该核心处,该系统为该用户提供子集数据段之间的这些频繁复现接近度关系,以帮助识别定义该“数据签名”的某些复现模式,从而提供关于与那个一般的“数据签名”有关的任何数据的概括信息。所以,在该数据库创建和共同频率分析中所使用的相同的技术可以被用来辨认关于许多其他类型的数据挖掘、文本挖掘、目标识别、以及要求模式识别的任何其他的应用程序的模式。
精通该技术领域的人将会理解:在不脱离本发明的精神和范围的前提下,技能娴熟的专业人员可以对上述装置和方法进行许多更改。
                                        附录
  程序1<-..<?$exclude_eng=array(′it′,′its′,′a′,′is′,′was′,′for′,′do′,′of′,′s′,′the′,′and′,′to′,′in′,′if′,′or′,′that′,′this′,′in the′,′are′,′of the′,′by′,′be′,′to the′,′as′,′on′,′an′,′at′,′with′,′from′,′he′,′will′,′has′,′not′,′by the′,′would′,′should′,′said′,′i′,′but′,′so′,′had′,′who′,′no′,′only′,′her′,′of a′,′been′,′and the′,′at the′);$exclude_fre=array(′il′,′elle′,′son′,′sa′,′ses′,′un′,′une′,′est′,′etait′,′pour′,′faire′,′opA(c)rer′,′poser′,′de′,′le′,′la′,′les′,′et′,′A′,′en′,′si′,′que′,′qui′,′celui′,′ce′,′ces′,′cet′,′cettes′,′dans le′,′dans la′,′sont′,′de la′,′du′,′prA″s de′,′de′,′daprA″s′,′par′,′A|tre′,′A la′,′au′,′aux′,′comme′,′si′,′en avant′,′sur′,′un′,′une′,′vers′,′avec′,′il′,′grA(c)′,′volontA(c)′,′devoir′,′A|tre obligA(c)′,′disait′,′disais′,′disent′,′je′,′mais′,′si′,′ou′,′avait′,′avais′,′avaient′,′qui′,′que′,′non′,′seulement′,′elle′,′et le′,′et la′,′et les′,′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′,′estA-′,′eres′,′son′,′del′,′cerca′,′al lado′,′estar,′ser′,′al′,′como′,′encendido′,′un′,′arroba′,′con′,′desde′,′A(c)l′,′voluntad′,′tiene′,′hay′,′deber′,′dijo′,′yo′,′pero′,′sino′,′asA-,′tan′,′o′,′habA-a′,′quien′,′quiA(c)n′,′no′,′sA3lo′,′solamente′,′la′,′ha sido′);$dir=″hebfre″;$dirdone=″hebfredone″;$lang=″.eng″;$olang=″.fre″;$table=″hebfre″;$languagecount=″langcount″;$language=″lang″;$olanguagecount=″olangcount″;$olanguage=″olang″;#$debug=″true″;function getmicrotime(){list($usec,$sec)=explode(″″,microtime());return((float)$usec+(float)$sec);}$allstart=getmicrotime();$fp=fopen(″/usr/local/apache/log.txt″,″w+″);fputs($fp,″starting″.date(″H:i:s″).″<BR>\n″);$filelist=file(″http://128.241.244.166/list.php?dir=$dir&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<count($mainarray);$t++)#count($mainarray)change{if(file_exsts(str_replace($lang,$olang,$mainarray[$t]))){$temp=$mainarray[$t];$temp1=file(″$mainarray[$t]″);unset($temp2);for($m=0;$m<count($temp1);$m++){if(strstr($temp1[$m],″....″))unset($temp1[$m]);$temp1[$m]=eregi_replace(″[[:space:]]+″,″″,strip_tags($temp1[$m]));$temp1[$m]=urldecode(str_replace(″&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<count($temp1);$m++){if(strstr($temp1[$m],″....″))unset($temp1[$m]);$temp1[$m]=eregi_replace(″[[:space:]]+″,″″,strip_tags($temp1[$m]));$temp1[$m]=urldecode(str_replace(″&htab;″,″″,$temp1[$m]));if($temp1[$m]!=″″)$temp2.=$temp1[$m];}   $filearray[″$temp″]=utf8_encode($temp2);}}fputs($fp,date(″H:i:s″).″<BR>done loading files into array.\n″);$addwords=″true″;$ctodo=count($mainarray);$t=0;for($t=0;$t<$ctodo;$t+++){if(file_exists(str_replace($lang,$olang,$mainarray[$t])))$filexist=″true″;else unset($filexist);
       {
   $max=$m+count($tempmean);
    $ns=$m;
   $tolang=${$olang}.substr(${″temp″.$olang},strlen($tempomean[0].″″.$tempomean[1].″″.$tempomean[2]));
   $overlap=″true″;
   }
   else $tempmatch=″no″;
  }
  elseif(substr_count(${$olang},″″)==0 && $tcheckb==trim(substr(${$olang},1)))
   {
   if(count($mean)+count($tempmean)-1>$max) # singleword overlap
    {
    $max=$m+count($tempmean);
    $ns=$m;
    $olangminus=substr(${″temp″.$olang},strlen(${$olang}));
    $tolang=${$olang}.″″.$olangminus;
    $overlap=″true″;
   }
 .}
 elseif(substr_count(${$olang},″″)==0 && substr_count(${″temp″.$olang},″″)==0)#english overlap hebrew one word only.
{
$max=$m+count($tempmean);
$ns=$m;
$tolang=${$olang}.″″.${″temp″.$olang};
$overlap=″true″;
}
else
 {
 $tempmatch=″no″;
 }
if($overlap==″true″)
 {
 $mmean=explode(″″.$tempmean[0],${$lang});
 $to=count($mmean)-1;
 $ttos=count($mean)-1;
 if($mmean[$to]&&$to>0)
  {
  $tcheck=substr(${″temp″.$lang},strlen($tempmean[0])+1);
  if(substr($tcheck,0,strlen(trim($mmean[$to])))==trim($mmean[$to]))#overlapping
   {
   $tlang=${$lang}.substr($tcheck,strlen(trim($mmean[$to])));
   }
  }
    elseif($mean[$ttos]==$tempmean[0]&&$mean[$ttos])
     {
     $tlang=${$lang}.substr(${″temp″.$lang},strlen($tempmean[0]));
    }
    else{print″BIG ERROR″;exit;}
   }
 }
$t++;
 }
}if($overlap !=″true″)$overlap=″false″;if($tempmax=$max && $overlap !=″true″)$max=0;$array=array(″s″=>″$s″,″mm″=>count($mean),″mean″=>$tlang,″tos″=>substr_count($tolang,″″),″osmean″=>$tolang,″max″=>″$max″,″tolang″=>″$tolang″,″overlap″=>″$overlap″,″longestolang″=>″$longestolang″);return $array;}function translate($word,$lock,$tags,$baselang){global $id_t,$prefix_t,$dictionary_t;$baselang=″hebrew″;if(!$word)return;if($transeng==″true″){if(ereg(″[a-zA-Z]″,$word))return $word;}if($baselang==″hebrew″){$spaceit=″true″;$emailend=″·o,£.__.,□″;}if($baselang==″japanese″){$dictionary_t=″dictionaryjap″;$spaceit=″false″;}if($baselang==″chinesesim″){$dictionary_t=″dictionarychnsim″;$spaceit=″false″;}MYSQL_CONNECT(″216.205.78.138″,″nobody″)or die(″can′t connect″.MYSQL_ERROR());$word=trim($word);if((strstr($word,hebrev($id_t).″,″)||strstr($word,hebrev($id_t).″″)||substr($word,strlen($word)-strlen($id_t))==hebrev($id_t))&&isset($id_t)){$word=str_replace(hebrev($id_t),″″,$word);$systemsite=″true″;}if($word)################## www.something ##################{######################if(strstr($word,″http://www.inhebrew.co.i1/nsia.html″)){$word=split(″=″,$word);   $word=split(″&″,$word[1]);return $word[0];}######################if(strstr($word,″://″)){$temp=explode(″://″,$word);$address=$temp[1];}else $address=$word;$address=explode(″/″,$address);$addresscheck=$address[0];if(!ereg(″[a-zA-Z...-£]″,$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=
Figure A0381831900581
}if(strtolower(substr($word,0,8))==″https://″){$word=substr($word,8);$pre=}if(strtolower(substr($word,0,6))==″ftp://″){ $word=substr($word,6);$pre=
Figure A0381831900583
}}elseif($baselang==″hebrew″){$lang=″hebrew″;$olang=″english″;if(substr($word,0,8)==
Figure A0381831900584
){$word=substr($word,8);$pre=″http://″;$upper=″true″;}elseif(substr($word,0,7)==
Figure A0381831900585
){$word=substr($word,7);$pre=″http://″;}elseif(substr($word,0,9)==
Figure A0381831900586
){$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)==
Figure A0381831900589
){$word=substr($word,6);$pre=″ftp://″;}elseif(substr($word,0,1)==″*″){$word=substr($word,1);$upper=″true″;}}elseif($baselang==″japanese″){$lang=″japanese″;$olang=″english″;}elseif($baselang==″chinesesim″){$lang=″chinesesim″;$olang=″english″;}
$s=0;
$tempreplace=strtolower($word);
while($s<strlen($tempreplace))
{
if(lereg(″[...-£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,$olang from $dictionary_t where $lang=′$tempreplace_;$result=MYSQL(″minibush″,″$query″)or die(″can′t error #0.1-′$query′″.MYSQL_ERROR());if(MYSQL_NUMROWS($result)>0){list(${$lang},${$olang})=MYSQL_FETCH_ROW($result);$space=${$olang};$counts=0;}while($counts>$s)#word between..{$spaceaddress[$s]=trim($spaceaddress[$s]);if($tags==″true″){$open=″<font color=\″$color\″>″;$close=″</font>″;if($color==″red″)$color=″blue″;else $color=″red″;}if(ereg(″[...-£a-zA-Z\′\″]″,$spaceaddress[$s])){unset($restofaddress);for($i=$s;$i<$counts;$i++)$restofaddress.=″″.$spaceaddress[$i];$restofaddress=trim($restofaddress);$query=″select $lang,$olang from $dictionary_t where $lang=′$restofaddress_;$result=MYSQL(″minibush″,″$query″)or die(″can′t error #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=″$lang like_.str_replace(″%″,″″,$spaceaddress[$s]).″″.str_replace(″%″,″″,$spaceaddress[$n]).″%′or″;$query=″select $lang,$olang from $dictionary_t where $nextwordmatch $lang=′$spaceaddress[$s]′and $olang<>″order by $lang desc,length($lang),$olang desc,length($olang)desc″;$result=MYSQL(″minibush″,″$query″″)or die(″can′t error#1-′$query′″.MYSQL_ERROR());if($match==″yes″)unset($match);if((MYSQL_NUMROWS($result)>0)&&($match !=″no″))
{
 $n=0;
 $maximum=0;
 $maximumr=0;
 unset($finals);
 unset($finalsr);
  unset($longestolang);
  unset($longestlang);
 while($n<MYSQL_NUMROWS($result))#&&($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<count($mean))
   {
   if(($spaceaddress[$s+$g]==$mean[$g])&&($match !=″no″))$match=″yes″;
   else $match=″no″;
   $g++;
  }
 if($match==″yes″)
  {
    if(strlen($longestolang)<strlen(${$olang}))$longestolang=${$olang};
    if(strlen($longestlang)<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″&& count($spaceaddress)>$max)
      {
      $array=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>$maximum && $max>0)
     {
     $maximum=$max;
     $finals=$tolang;
     }
    if($wasok !=″true″)
     {
     if(strlen(${$lang})>$maximumr)
      {
      $maximumr=strlen(${$lang});
      $gr=$g;
      $finalsr=${$olang};
      }
     }
    }
   $n++;
  }
 if($wasok==″true″)
  {$match=″true″;
  if(!strstr($finals,$longestolang)&& $maximum<=(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)### testing new thing,what happens when a partial mach wasfound,(ie a something,but a is not in the system).
    {
    if($s==0)$space=$space.$open.$finalsr.$close;
    else $space=$space.″″.$open.$finalsr.$close;
    $s=$s+$gr,
    unset($maximumr);
    }
   else# still is test phase.
    {
    if(ereg(″[a-zA-Z...-£]″,$spaceaddress[$s]))$space=$space.″″.$open.convert(substr($spaceaddress[$s],0,1),$baselang).$close;
    else $spase=$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);}}#end of word between..$url.=$space;unset($temp);$count++;#next word.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.i1\\3″,″$url″);else $url=ereg_replace(″([a-zA-Z0-9/-/_/])@([a-zA-Z0-9/-/_/]*)″,″\\1.\\2@inhebrew.co.il″,$url);unset($systemsite);}if(strstr($word,″@inhebrew.co.i1″)){$revid=hebrev($id_t);$url=ereg_replace(″([...-£]).([/-/...-f/-/]*)@$emailend″,″\\1@\\2$revid″,$url);}if($systemsite==″true″&& !strstr(″$word″,″@″)){if($end)return″http://″.str_replace(″,″″,$end).″.inhebrew.co.i1/index.html?sub=″.substr($end,1);else return″http://″.str_replace(″,″″,$url).″.inhebrew.co.il″;}if(ereg(″inhebrew.co.il/([a-zA-Z0-9/-]*)/index.html″,$word) &&!strstr($word,″inhebrew.co.il/sample/″)){$end=substr($end,1);if(strstr($end,″/″))
{
return eregi_replace(″[[:space:]]+″,″″,str_replace(″-″,″-″,str_replace(″@″,″@″,($end))));′
}}return eregi_replace(″[[:space:]]+″,″″,str_replace(″-,″-″,str_replace(″@″,″@″,$url))); .}}?>????Footnote continued from previous pageFootnote continued on next page
    程序4
>package Brain;
>
>import java.sql.*;
>import java.util.Vector;
>import java.util.Hashtable;
>import java.util.Map;
>import java.util.Comparator;
>import java.util.Arrays;
>import java.util.StringTokenizer;
>
>/**
>*@author Nischala
>*@version
>*/
>public class PhraseCollectBean{
>
>private int maxResults;
>private String reqPhrase1;
>private String reqPhrase2;
>private String reqPhrase3;
>private String reqPhrase4;
>private int startSelCount;
>private int endSelCount;
>private int startMinWords;
>private int endMinWords;
>private boolean isContentCreated=false;
>
>private Vector startPhrs;
>private Vector endPhrs;
>private Hashtable stMidPhrs=new Hashtable(10);
>private Hashtable enMidPhrs=new Hashtable(10);
>private Hashtable uniqStPhrs=new Hashtable(10);
>private Hashtable uniqEnPhrs=new Hashtable(10);
>
>
>private Connection dbConnection=null;
>
>/**Creates new PhraseCollectBean
>*and initiaslize it′s properties to default values
>*/
>public PhraseCollectBean(){
				
				<dp n="d62"/>
 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]));

    svstem(″mv″.str_replace($lang,$olang,$mainarray[$t]).″  
/usr/local/apache/$dirdone/″.str_replace($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<count($lngs);$i++)

   {

   if(!ereg(″[^a-zA-Z]″,$lngs[$i]))$lngs[$i]=strtolower($lngs[$i]);

  }
   $olngs=explode(″″,$olng);
   for($i=0;$i<count($olngs);$i++)

  {

  if(!ereg(″[^a-zA-Z]″,$olngs[$i]))$olngs[$i]=strtolower($olngs[$i]);

  }
   $sume=count($lngs);
   $sumh=count($olngs);
   if($sume>$sumh){$margin=round($sume/($sume-$sumh));$action=″add″;}
   elseif($sumh>$sume){$margin=(round($sumh/($sumh-$sume)));$action=
″sub″;}
   else{$margin=1;$action=″sub″;}
   $number=count($lngs);
   for($j=$t+1;$j<$ctodo;$j++)# main loop,rotate between the files to be checked.

  {

  if(file_exists(str_replace($lang,$olang,$mainarray[$j])))#check filename match.

   {
$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<count($lngstp);$i++)

    {

    if(!ereg(″[^a-zA-Z]″,$lngstp[$i]))$lngstp[$i]=strtolower($lngstp[$i]);

   }

   $olngstp=explode(″″,$olngtp);
				
				<dp n="d63"/>
>}
>
>public String[]getPhrases(){
>String[]arr={reqPhrase1,reqPhrase2,reqPhrase3,reqPhrase4};
>return arr;
>}
>
>public void setMaxResults(int x){
>maxResults=x;
>}
>
>public void setReqPhrase1(Stringx){
>reqPhrase1=x;
>//System.out.println(″New value-I being set..″);
>}
>
>public void setReqPhrase2(String x){
>reqPhrase2=x;
>//System.out.println(″New value-II being set..″);
>}
>
>public void setReqPhrase3(String x){
>reqPhrase3=x;
>//System.out.println(″New values-III being set..″);
>}
>
>public void setReqPhrase4(String x){
>reqPhrase4=x;
>//System.out.println(″New values-IV being set.″);
>}
>
>public void setStartSelCount(int x){
>startSelCount=x;
>}
>
>public void setEndSelCount(int x){
>endSelCount=x;
>}
>
>public void setStartMinWords(int x){
>startMinWords=x;
>}
>
>public void setEndMinWords(int x){
>endMinWords=x;
>}
				
				<dp n="d64"/>
>private int getPhraseId(String phr){
>if(phr==null)phr=″″;
>try{
>if(!(phr==″″)){
>return new Phrase(phr).getId();
>}else return 0;
>}catch (Exception e){
>System.out.println(″Exception while getting the phrase ID from
>Brain.Phrase(PhraseCollectBean.getPhraseId):″+e);
>errors=″Exception while getting the phrase ID from
>Brain.Phrase (PhraseCollectBean.getPhraseId):″+e;
>return 0;
>}
>}
>
>private Map.Entry[]sortByValue(Hashtable ht){
>java.util.Set set=ht.entrySet();
>Map.Entry[]entries=(Map.Entry[])set.toArray(new
>Map.Entry[set.size()]);
>Arrays.sort(entries,new Comparator(){
>public int compare(Object o1,Object o2){
>Object obj1=((Map.Entry)o1).getValue();
>Object obj2=((Map.Entry)o2).getValue();
>return((Comparable)obj2).compareTeo(obj1);
>}
>});
>return entries;
>}
>
>public String getAssocByJoins(){
>logMsg=″″;
>errors=″″;
>PreparedStatement p2Stmt,p1Stmt;
>ResultSet p2Result=null,p1Result=null;
>stMidPhrs.clear();
>enMidPhrs.clear();
>uniqStPhrs.clear();
>uniqEnPhrs.clear();
>StringBuffer resultStr=new StringBuffer(″″);
>String relativeResult=″″;
>startPhrs=new Vector(startSelCount);
>endPhrs=new Vector(endSelCount);
>
>Connection dbConnection=null;
>
				
				<dp n="d65"/>
>int pid=0;
>String[]phrases=getPhrases();
>String inQry=″″;
>for(int i=0;i″);
>resultStr.append(″″+i+″″);
>resultStr.append(″″+plcnt+″″);
>String tempSt=p1Pr,
>if((st=startMinWords)){
>int p1id=getPhraseld(p1Pr);
>if(p1id !=0){
>startPhrs.addElement(″″+p1id);
>st++;
>resultStr.append(″″+p1Pr
>+″″);
>}
>}else{
>resultStr.append(″″+p1Pr+″″);
>}
>resultStr.append(″″+(String)stMidPhrs.get(p1Pr)+
>″″);
>resultStr.append(″″);
>resultStr.append(″″+(String)enMidPhrs.get(p2Pr)+
>″″);
>
>String temoEn=p2Pr;
>if((en=endMinWords)){
>int p2id=getPhraseId(p2Pr);
>if(p2id !=0){
>endPhrs.addElement(″″+p2id);
>en++;
>resultStr.append(″″+p2Pr
>+″″);
>}
>}else{
>resultStr.append(″″+p2Pr+″″);
>}
>resultStr.append(″″+p2cnt+″″);
>resultStr.append(″n″);
>i++;
>}
>m++;
>}
>
>if(i>1){
>createAssignedBin();
>createDataBin(stEntries,enEntries,stMidPhrs,enMidPhrs);
				
				<dp n="d66"/>
>isContentCreated=false;
>}
>/**/
>}catch(Exception e){
>resultStr.append(″Exception while retrieving the results
>(PhraseCollectBean.getAssocByJoins):″+e+″.Check the log for errors″);
>//System.out.println(″Exception while retrieving the results
>(PhraseCollectBean.getAssocByJoins):″+e);
>errors+=″Exception while retrieving the results
>(PhraseCollectBean.getAssocByJoins):″+e;
>e.printStackTrace();
>}
>return resultStr.toString();
>}
>
>public String getRelatives(int maxShow){
>errors=″″;
>logMsg=″″;
>String str1=″″,str2=″″,str3=″″;
>PreparedStatement p1RelStmt=null;
>int newScore=0;
>Hashtable uniqMidPhrs=new Hashtable();
>Hashtable phr1Ids=new Hashtable();
>Hashtable phr2Ids=new Hashtable();
>StringBuffer relResultStr=new
>StringBuffer(″Common Phrases bin surronding relatively common middle phrase
>S.NOTotal Scorephrase 2″);
>int sno=1;
>
>try{
>if(dbConnection==null){
>//System.out.println(″DB Conn is Null in getRelatives!″);
>dbCnnection=Brain.getDBConnection();
>}
>}catch(Exception e){
>//System.out.println(″Exception while getting connection from
>Brain:″+e);
>}
>
>if((startPhrs==null)||(startPhrs.size()==0)||(endPhrs==
>null)||(endPhrs.size()==0))return relResultStr.toString();
>String startCond=″(″;
>for(int i=0;i″+sno+″″);
>String winName=″newwin″+m;
>relResultStr.append(″″+phrScore+″″+phrKey+″″);
>sno++;
				
				<dp n="d67"/>
>}
>//System.out.println(″IS Content Created??:″+
>isContentCreated);
>if((!isContentCreated)&amp;&amp;(maxShow !=50)&amp;&amp;(sno>1)){
>createContentBin(entries);
>}
>}catch(Exception e){
>//System.out.println(″Exception while executing query:″+e);
>}
>return relResultStr.toString()+″″;
>}
>
>private void createAssignedBin(){
>if(!assignedHash.isEmpty())assignedHash.clear();
>assignedHash.put(″maxRes″,new Integer(maxResults));
>String phraseStr=″″;
>String[]array=getPhrasse();
>for(int i=0;i
Galshan delivers the entire Internet in Hebrew.
Get a Hebrew e-mail address(and free web mail service).
Want to surf the Web in Hebrew? Download Galshan′s browser bar.
				
				<dp n="d68"/>
    for($i=0;$i<count($olngstp);$i++)

    {

    if(!ereg(″[^a-zA-Z]″,$olngstp[$i]))$olngstp[$i]=strtolower($olngstp[$i]);

   }

  $sumetp=count($lngstp);

  $sumhtp=count($olngstp);

  if($sumetp>$sumhtp){$margintp=round($sumetp/($sumetp-$sumhtp));
$action=″add″;}

  elseif($sumhtp<$sumetp){$margintp=(round($sumhtp/($sumhtp-$sumetp)));
$action=″sub″;}

   else{$margintp=1;$action=″add″;}

   $numbertp=count($olngstp);

   if($debug==″true″)print date(″H-i-s″).″<BR>\n″;

   for($i=0;$i<$number;$i++)#main loop,covers every space.

    {

    if($t==$j)$ni=$i+1;

    else $ni=0;

    for($n=$ni;$n<$numbertp;$n++)

     {

     unset($thesameh);

     $p=0;

     unset($theb);
$langstart=getmicrotime();

     while($p<15 &amp;&amp; $lngs[$i+$p]==$lngstp[$n+$p] &amp;&amp; $lngstp[$n+$p]!=
″″)#check if the $n words match.

       {

       $theb.=$lngs[$i+$p].″″;

       $theb1=trim($theb);

       if(!ereg(″[`~!@#$%^&amp;*()<>_+=-?.,;:∧]″,$theb1)&amp;&amp;!ereg(″[0-
9]″,substr($theb1,0,1))&amp;&amp; !ereg(″^[0-9]*$″,$theb1)

        &amp;&amp; $theb1 !=″″&amp;&amp; substr($theb1,0,1)!=″-″&amp;&amp;!ereg(″[0-9]″,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);
				
				<dp n="d69"/>
           if($action==″add″){$extrasm=$i+$extra-45;$extralg=$i+$extra+45;

  }

           elseif($action==″sub″){$extrasm=$i-$extra-45;$extralg=$i-$extra+

  45;}

           if($extrasm<0)$extrasm=0;

           if($extralg>$sumh)$extralg=$sumh;

  $olangstart=getmicrotime();

           for($e=$extrasm;$e<$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<0)$bot=0;

            if($top>$sumhtp)$top=$sumhtp;

            unset($tbc);

            for($x=$bot;$x<$top;$x++)#check the english,10 back and 10 forward.

             {

             unset($teng);

             if(($t==$j &amp;&amp; $x>$e)||$t!=$j)#$n>$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;*()<>_+=-?.,;:∧]″,$teng) &amp;&amp; !ereg(″[0-
9]″,substr($teng,0,1)) &amp;&amp; !ereg(″^[0-9]*$″,$teng)

              &amp;&amp; $teng!=″″&amp;&amp; substr($teng,0,1)!=″-″&amp;&amp; !ereg(″[0-
9]″,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(in_array($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,″;

              }
				
				<dp n="d70"/>
          }

          $a++;

         }#end of while loop

        }

       }#end of for loop.

      }#end of new loop
$olangend=getmicrotime();
$time1=$olangend-$olangstart;
#fputs($fp,″French word number $n of $numbertp took $time1\n″);

      }#end up to 5 hebrew together.

      $p++;

      }# end of while loop $p<15
$langend=getmicrotime();
$time2=$langend-$langstart;
#fputs($fp,″English word number $i of $number took $time2\n″);

    }

   }

   if(count($array)>0)

   {
$dbstart=getmicrotime();

   $stream=MYSQL_CONNECT(″127.0.0.1″,″root″);

   $tempheb=array_keys($array);

   for($i=0;$i<count($tempheb);$i++)

    {

    $lng=$tempheb[$i];

    if(substr_count($array[$lng][″hebrew_c″],″,″)-1>0)

     {

     $lngc=substr_count($array[$lng][″hebrew_c″],″,″)-1;

     $tempolng=array_keys($array[$lng]);

     $n=1;

     while($n<count($tempohg) &amp;&amp; count($tempolng)>1)

      {

      $olng=$tempolng[$n];

      $olngc=substr_count($array[$lng][$olng],″,″)-1;

      $query=″update $table set total=total+1,$languagecount=
$languagecount+$lngc,$olanguagecount=$olanguagecount+$olngc,article=
concat(article,\″,$mainarray[$j]\″)where(article not like′% $mainarray[$j]%′and
$language=_.addslashes($lng)._and $olanguage=_.addslashes($olng)._)″;

      MYSQL(″brain″,$query,$stream)or die(″#2 Can′t $query
″.MYSQL_ERROR());

      $num=MYSQL_AFFECTED_ROWS($stream);

      if($num==0)

       {

       $query=″insert ignore into $table
values(\″NULL\″,\″1\″,_.addslashes($lng).″,″.addslashes($olng)._,\″″.addslashes($lng).″\
″,\″$lngc\″,\″″.addslashes($olng).″\″,\″$olngc\″,\″$mainarray[$j]\″)″;
				
				<dp n="d71"/>
      MYSQL(″brain″,$query,$stream)or die(″#3 Can′t $query
″.MYSQL_ERROR());

      }

     $n++;

    }

   }

  }

  MYSQL_CLOSE($stream);
$dbend=getmicrotime();
$time=$dbend-$dbstart;
fputs($fp,″db took $time\n″);

  }
   $file_end=getmicrotime();
   }
  }
 }
}
$allend=getmicrotime();
$time=$allend-$allstart;
fputs($fp,″the whole shit took $time\n″);
fputs($fp,″final:″.date(″Y-m-d H:i:s″).″-$calc-<BR>\n″);
fclose($fp);
?>
??
??
Footnote continued from previous page
Footnote continued on next page
    程序2
<?
$word=″united nations″;
$engspa_t=″engspa″;
$engfre_t=″hebfre″;
$frespa_t=″frespa″;
$c=1;
MYSQL_CONNECT(″128.241.244.166″,″root″);
$query=″select total,lang,langcount,olang,olangcount from $engfre_t where olang=
′$word_;
$result=MYSQL(″brain″,$query)or die(″Error#1-$query-″.MYSQL_ERROR());
$query1=″select lang from $engspa_t where olang=′$word_;
$result1=MYSQL(″brain″,$query1)or die(″Error #2-$query1-″.MYSQL_ERROR());
for($i=0;$i<MYSQL_NUM_ROWS($result1);$i++)
{
list($lang)=MYSQL_FETCH_ROW($result1);
$in.=″,_.addslashes($lang).″_;
}
$in=substr($in,1);
$num=MYSQL_NUM_ROWS($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=″select cid from $frespa_t where olang=_.addslashes($lang)._and lang in
($in)″;
$result2=MYSQL(″brain″,$query2)or die(″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);
?>
??
??
Footnote continued from previous page
Footnote continued on next page
    程序3
<?
function convert($what,$olang)
{
if($what==″_)$what=″\_;
if($what==″\\″)return;
$query=″select sletter from″.$olang.″letter where fletter=′$what_;
$result=MYSQL(″minibush″,″$query″)or die(″*$what*-error#1$query-″.
MYSQL_ERROR());
if(MYSQL_NUMROWS($result)>0)
 {
 list($sletter)=MYSQL_FETCH_ROW($result);
 return $sletter;
 }
 else return stripslashes($what);
}!
function
overlap($s,$mm,$mean,$tos,$osmean,$max,$dictionary_t,$lang,$olang,$spaceaddress,$l
ongestolang)
{
$tempmax=$max;
${$olang}=$osmean;
${$lang}=$mean;
$mean=explode(″″,$mean);
$osmean=explode(″″,$osmean);
for($m=$mm;$m<count($mean);$m++)
 {
 unset($string);
 for($l=$m;$l<count($mean);$l++)$string.=$mean[$l].″″;
 $sm=$s+count($mean);
 unset($nextwordmatch);
 if($spaceaddress[$sm+1])$nextwordmatch=″$lang like
_.str_replace(″%″,″″,trim($string.$spaceaddress[$sm])).″%′or″;
 $query1=″select $lang,$olanng from $dictionary_t where $nextwordmatch $lang=
_.str_replace(″%″,″″,trim($string.$spaceaddress[$sm]))._ and $olang<>″order by $lang
desc,length($lang),$olang desc,length($olang)desc″;
 $result1=MYSQL(″minibush″,″$querv1″)or die(″can′t error #2-′$query1′″.
MYSQL_ERROR());
 $t=0;
 while($t<MYSQL_NUMROWS($result1))# &amp;&amp; $tempmatch !=″yes″)
  {
  list(${″temp″.$lang},${″temp″.$olang})=MYSQL_FETCH_ROW($result1);
  $tempmean=explode(″″,${″temp″.$lang});
  $tempomean=explode(″″,${″temp″.$olang});
  $tg=$m;
				
				<dp n="d74"/>
    $un=0;

    unset($tempmatch);

    while($tg<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,″″)<=
   substr_count(${″temp″.$lang},″″))#checks if the new overlap is matching the translation
   request.

     {

     $longestresult=${″temp″.$lang};

     $omean=explode($tempomean[0],${$olang});

     $to=count($omean)-1;

     $tcheckb=substr(${″temp″.$olang},0,strlen($tempomean[0]));

     if($osmean[$tos]=$tempomean[0]&amp;&amp;isset($osmean[$tos]))

      {

      if(count($mean)+count($tempmean)-1>$max)#singleword overlap

       {

       $max=$m+count($tempmean);

       $ns=$m;

       $tolang=${$olang}.substr(${″temp″.$olang},strlen($tempomean[0]));

       $overlap=″true″;

      }

     else$tempmatch =″no″;

    }

   elseif($osmean[($tos-1)]==$tempomean[0]&amp;&amp; $osmean[$tos]=$tempomean[1]
   &amp;&amp; isset($osmean[($tos-1)]))

    {

    if(count($mean)+count($tempmean)-1>$max)#singleword overlap

     {

     $max=$m+count($tempmean);

     $ns=$m;

     $tolang=${$olang}.substr(${″temp″.$olang},strlen($tempomean[0].″
″.$tempomean[1]));

     $overlap=″true″;

    }

   else$tempmatch=″no″;

  }

  elseif($osmean[($tos-2)]=$tempomean[0]&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>$max)# singleword overlap
				
				<dp n="d75"/>
      MYSQL(″brain″,$query,$stream)or die(″#3 Can′t$query
″.MYSQL_ERROR());

      }

      $n++;

     }

    }

   }

   MYSQL_CLOSE($stream);
$dbend=getmicrotime();
$time=$dbend-$dbstart;
fputs($fp,″db took $time\n″);

   }

  $file_end=getmicrotime();
   }
  }
 }
}
$allend=getmicrotime();
$time=$allend-$allstart;
fputs($fp,″the whole shit took $time\n″);
fputs($fp,″final:″.date(″Y-m-d H:i:s″).″-$calc-<BR>\n″);
fclose($fp);
?>
??
??
Footnote continued from previous page
Footnote continued on next page

Claims (4)

1.一种用于使采用某种语言的词和词串发生联系的方法,其特征在于包括:
提供文档的收集,其中,所述收集至少包括一个文档;
从用户那里接收将要被分析的词或词串查询;
在所述文档的收集中搜索将要被分析的该查询,并且返回包含将要被分析的该查询的文档;
根据其频率来确定在所述被返回的文档中的将要被分析的所述查询左边的用户定义数量的词或词串或两者,并且创建“左签名清单”,它包括在所述被返回的文档中的将要被分析的所述查询左边的所述词或词串;
确定在包括所述“左签名清单”的所述词或词串右边的用户定义数量的词或词串或两者,并且根据文档的收集中的其频率来创建“左锚清单”,它们包括在所述“左签名清单”右边的所述词或词串;
确定在所述被返回的文档中的将要被分析的所述查询右边的用户定义数量的词或词串或两者,并且根据其频率来创建“右签名清单”,它包括在所述被返回的文档中的将要被分析的所述查询右边的所述词或词串;
确定在包括所述“右签名清单”的所述词或词串左边的用户定义数量的词或词串或两者,并且根据其频率来创建“右锚清单”,它们包括在所述“右签名清单”左边的所述词或词串;以及,
根据出现在所述“左锚清单”中的每个词或词串的频率、以及出现在所述“右锚清单”中的每个词或词串的频率,来为结果评定等级。
2.如权利要求1的方法,其特征在于,为结果评定等级包括:将出现在所述
“左锚清单”中的每个词或词串的总频率乘以出现在所述“右锚清单”中的每个词或词串的总频率。
3.如权利要求1的方法,其特征在于,为结果评定等级包括:关于出现在该“左锚清单”和该“右锚清单”中的每个词或词串,将出现在所述“左锚清单”中的每个词或词串的总频率加入出现在所述“右锚清单”中的所述词或词串的总频率。
4.一种用于使采用某种语言的词和词串发生联系的方法,其特征在于包括:
提供文档的收集,其中,所述收集至少包括一个文档;
从用户那里接收将要被分析的词或词串查询;
在所述文档的收集中搜索将要被分析的该查询,并且返回包含将要被分析的该查询的文档;
确定在包含将要被分析的该查询的所述被返回文档中的该查询左边和右边的用户定义数量和大小的词或词串或两者;
返回具有一个或多个项目的清单,其中,所述这个项目或所述多个项目包含在所述被返回文档中的该查询左边和右边的所述被确定数量的词;
在所述文档的收集中搜索所述被返回清单中的所述这个项目或多个项目;以及,
返回最频繁地出现在所述被返回文档中的所述查询左边和右边的所述被确定数量的词之间的词或词串或两者的清单。
CNA038183196A 2002-05-31 2003-01-29 词联想方法和装置 Pending CN1672149A (zh)

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
US10/157,894 2002-05-31
US10/157,894 US8744835B2 (en) 2001-03-16 2002-05-31 Content conversion method and apparatus
US10/281,997 2002-10-29
US10/281,997 US7711547B2 (en) 2001-03-16 2002-10-29 Word association method and apparatus

Publications (1)

Publication Number Publication Date
CN1672149A true CN1672149A (zh) 2005-09-21

Family

ID=29714706

Family Applications (1)

Application Number Title Priority Date Filing Date
CNA038183196A Pending CN1672149A (zh) 2002-05-31 2003-01-29 词联想方法和装置

Country Status (11)

Country Link
US (2) US7711547B2 (zh)
EP (1) EP1556784A4 (zh)
JP (1) JP2005529386A (zh)
KR (1) KR20050005523A (zh)
CN (1) CN1672149A (zh)
AU (1) AU2003209404A1 (zh)
CA (1) CA2487801A1 (zh)
EA (1) EA006373B1 (zh)
IL (1) IL165481A0 (zh)
TR (1) TR200500674T2 (zh)
WO (1) WO2003102812A1 (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107273503A (zh) * 2017-06-19 2017-10-20 北京百度网讯科技有限公司 用于生成同语言平行文本的方法和装置

Families Citing this family (129)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8352400B2 (en) 1991-12-23 2013-01-08 Hoffberg Steven M Adaptive pattern recognition based controller apparatus and method and human-factored interface therefore
US7904187B2 (en) 1999-02-01 2011-03-08 Hoffberg Steven M Internet appliance system and method
US7194684B1 (en) 2002-04-09 2007-03-20 Google Inc. Method of spell-checking search queries
US8856093B2 (en) * 2002-09-03 2014-10-07 William Gross Methods and systems for search indexing
WO2004023243A2 (en) * 2002-09-03 2004-03-18 X1 Technologies, Llc Apparatus and methods for locating data
US8868543B1 (en) * 2002-11-20 2014-10-21 Google Inc. Finding web pages relevant to multimedia streams
US20040254988A1 (en) * 2003-06-12 2004-12-16 Rodriguez Rafael A. Method of and universal apparatus and module for automatically managing electronic communications, such as e-mail and the like, to enable integrity assurance thereof and real-time compliance with pre-established regulatory requirements as promulgated in government and other compliance database files and information websites, and the like
US7707039B2 (en) 2004-02-15 2010-04-27 Exbiblio B.V. Automatic modification of web pages
US8442331B2 (en) 2004-02-15 2013-05-14 Google Inc. Capturing text from rendered documents using supplemental information
US20060041484A1 (en) * 2004-04-01 2006-02-23 King Martin T Methods and systems for initiating application processes by data capture from rendered documents
US8799303B2 (en) 2004-02-15 2014-08-05 Google Inc. Establishing an interactive environment for rendered documents
US10635723B2 (en) 2004-02-15 2020-04-28 Google Llc Search engines and systems with handheld document data capture devices
US7812860B2 (en) 2004-04-01 2010-10-12 Exbiblio B.V. Handheld device for capturing text from both a document printed on paper and a document displayed on a dynamic display device
US8521772B2 (en) 2004-02-15 2013-08-27 Google Inc. Document enhancement system and method
US9008447B2 (en) 2004-04-01 2015-04-14 Google Inc. Method and system for character recognition
US9143638B2 (en) 2004-04-01 2015-09-22 Google Inc. Data capture from rendered documents using handheld device
US7990556B2 (en) 2004-12-03 2011-08-02 Google Inc. Association of a portable scanner with input/output and storage devices
US8146156B2 (en) 2004-04-01 2012-03-27 Google Inc. Archive of text captures from rendered documents
US20070300142A1 (en) 2005-04-01 2007-12-27 King Martin T Contextual dynamic advertising based upon captured rendered text
US8621349B2 (en) 2004-04-01 2013-12-31 Google Inc. Publishing techniques for adding value to a rendered document
US8793162B2 (en) 2004-04-01 2014-07-29 Google Inc. Adding information or functionality to a rendered document via association with an electronic counterpart
US7894670B2 (en) 2004-04-01 2011-02-22 Exbiblio B.V. Triggering actions in response to optically or acoustically capturing keywords from a rendered document
US9116890B2 (en) 2004-04-01 2015-08-25 Google Inc. Triggering actions in response to optically or acoustically capturing keywords from a rendered document
US20080313172A1 (en) 2004-12-03 2008-12-18 King Martin T Determining actions involving captured information and electronic content associated with rendered documents
US8713418B2 (en) 2004-04-12 2014-04-29 Google Inc. Adding value to a rendered document
US8874504B2 (en) 2004-12-03 2014-10-28 Google Inc. Processing techniques for visual capture data from a rendered document
US8489624B2 (en) 2004-05-17 2013-07-16 Google, Inc. Processing techniques for text capture from a rendered document
US8620083B2 (en) 2004-12-03 2013-12-31 Google Inc. Method and system for character recognition
US9460346B2 (en) 2004-04-19 2016-10-04 Google Inc. Handheld device for capturing text from both a document printed on paper and a document displayed on a dynamic display device
US8346620B2 (en) 2004-07-19 2013-01-01 Google Inc. Automatic modification of web pages
US7207004B1 (en) 2004-07-23 2007-04-17 Harrity Paul A Correction of misspelled words
US9384619B2 (en) 2006-07-31 2016-07-05 Ricoh Co., Ltd. Searching media content for objects specified using identifiers
US7702673B2 (en) 2004-10-01 2010-04-20 Ricoh Co., Ltd. System and methods for creation and use of a mixed media environment
US8156116B2 (en) 2006-07-31 2012-04-10 Ricoh Co., Ltd Dynamic presentation of targeted information in a mixed media reality recognition system
US8838591B2 (en) 2005-08-23 2014-09-16 Ricoh Co., Ltd. Embedding hot spots in electronic documents
US8825682B2 (en) 2006-07-31 2014-09-02 Ricoh Co., Ltd. Architecture for mixed media reality retrieval of locations and registration of images
US9171202B2 (en) 2005-08-23 2015-10-27 Ricoh Co., Ltd. Data organization and access for mixed media document system
US8868555B2 (en) 2006-07-31 2014-10-21 Ricoh Co., Ltd. Computation of a recongnizability score (quality predictor) for image retrieval
US9405751B2 (en) * 2005-08-23 2016-08-02 Ricoh Co., Ltd. Database for mixed media document system
US8949287B2 (en) 2005-08-23 2015-02-03 Ricoh Co., Ltd. Embedding hot spots in imaged documents
US8176054B2 (en) 2007-07-12 2012-05-08 Ricoh Co. Ltd Retrieving electronic documents by converting them to synthetic text
US8856108B2 (en) 2006-07-31 2014-10-07 Ricoh Co., Ltd. Combining results of image retrieval processes
US9530050B1 (en) 2007-07-11 2016-12-27 Ricoh Co., Ltd. Document annotation sharing
US8156115B1 (en) 2007-07-11 2012-04-10 Ricoh Co. Ltd. Document-based networking with mixed media reality
US8965145B2 (en) 2006-07-31 2015-02-24 Ricoh Co., Ltd. Mixed media reality recognition using multiple specialized indexes
US9373029B2 (en) 2007-07-11 2016-06-21 Ricoh Co., Ltd. Invisible junction feature recognition for document security or annotation
US7812986B2 (en) 2005-08-23 2010-10-12 Ricoh Co. Ltd. System and methods for use of voice mail and email in a mixed media environment
US7376648B2 (en) * 2004-10-20 2008-05-20 Oracle International Corporation Computer-implemented methods and systems for entering and searching for non-Roman-alphabet characters and related search systems
US20110029504A1 (en) * 2004-12-03 2011-02-03 King Martin T Searching and accessing documents on private networks for use with captures from rendered documents
JP4825544B2 (ja) * 2005-04-01 2011-11-30 株式会社リコー 文書検索装置、文書検索方法、文書検索プログラム及び記録媒体
US20070106644A1 (en) * 2005-11-08 2007-05-10 International Business Machines Corporation Methods and apparatus for extracting and correlating text information derived from comment and product databases for use in identifying product improvements based on comment and product database commonalities
JP5011751B2 (ja) * 2006-02-27 2012-08-29 富士通株式会社 訳語情報出力処理プログラム,処理方法および処理装置
US9767184B2 (en) * 2006-03-14 2017-09-19 Robert D. Fish Methods and apparatus for facilitating context searching
US9176984B2 (en) 2006-07-31 2015-11-03 Ricoh Co., Ltd Mixed media reality retrieval of differentially-weighted links
US8489987B2 (en) 2006-07-31 2013-07-16 Ricoh Co., Ltd. Monitoring and analyzing creation and usage of visual content using image and hotspot interaction
US8201076B2 (en) 2006-07-31 2012-06-12 Ricoh Co., Ltd. Capturing symbolic information from documents upon printing
US9020966B2 (en) 2006-07-31 2015-04-28 Ricoh Co., Ltd. Client device for interacting with a mixed media reality recognition system
US9063952B2 (en) 2006-07-31 2015-06-23 Ricoh Co., Ltd. Mixed media reality recognition with image tracking
US8510113B1 (en) 2006-08-31 2013-08-13 At&T Intellectual Property Ii, L.P. Method and system for enhancing a speech database
US8510112B1 (en) * 2006-08-31 2013-08-13 At&T Intellectual Property Ii, L.P. Method and system for enhancing a speech database
US8423908B2 (en) * 2006-09-08 2013-04-16 Research In Motion Limited Method for identifying language of text in a handheld electronic device and a handheld electronic device incorporating the same
EP2067119A2 (en) 2006-09-08 2009-06-10 Exbiblio B.V. Optical scanners, such as hand-held optical scanners
US8798988B1 (en) * 2006-10-24 2014-08-05 Google Inc. Identifying related terms in different languages
WO2008055034A2 (en) * 2006-10-30 2008-05-08 Noblis, Inc. Method and system for personal information extraction and modeling with fully generalized extraction contexts
US20080208566A1 (en) * 2007-02-23 2008-08-28 Microsoft Corporation Automated word-form transformation and part of speech tag assignment
US8112402B2 (en) * 2007-02-26 2012-02-07 Microsoft Corporation Automatic disambiguation based on a reference resource
US9251137B2 (en) * 2007-06-21 2016-02-02 International Business Machines Corporation Method of text type-ahead
US9002869B2 (en) * 2007-06-22 2015-04-07 Google Inc. Machine translation for query expansion
JP2009116548A (ja) * 2007-11-05 2009-05-28 Fujitsu Ltd キャッチコピー生成装置およびキャッチコピー生成プログラム
US8131714B2 (en) * 2008-01-02 2012-03-06 Think Village-OIP, LLC Linguistic assistance systems and methods
US10176827B2 (en) 2008-01-15 2019-01-08 Verint Americas Inc. Active lab
US8316035B2 (en) 2008-01-16 2012-11-20 International Business Machines Corporation Systems and arrangements of text type-ahead
US8359532B2 (en) * 2008-04-28 2013-01-22 International Business Machines Corporation Text type-ahead
JP5116580B2 (ja) * 2008-06-25 2013-01-09 日本電信電話株式会社 他言語の概念ベクトル生成装置及び方法及びプログラム及びコンピュータ読取可能な記録媒体
US10489434B2 (en) 2008-12-12 2019-11-26 Verint Americas Inc. Leveraging concepts with information retrieval techniques and knowledge bases
US8290961B2 (en) * 2009-01-13 2012-10-16 Sandia Corporation Technique for information retrieval using enhanced latent semantic analysis generating rank approximation matrix by factorizing the weighted morpheme-by-document matrix
WO2010096193A2 (en) 2009-02-18 2010-08-26 Exbiblio B.V. Identifying a document by performing spectral analysis on the contents of the document
US8447066B2 (en) * 2009-03-12 2013-05-21 Google Inc. Performing actions based on capturing information from rendered documents, such as documents under copyright
EP2406767A4 (en) 2009-03-12 2016-03-16 Google Inc AUTOMATIC CONTENT SUPPLY ASSOCIATED WITH CAPTURED INFORMATION, TYPE INFORMATION CAPTURED IN REAL TIME
US20100299132A1 (en) * 2009-05-22 2010-11-25 Microsoft Corporation Mining phrase pairs from an unstructured resource
US20110035211A1 (en) * 2009-08-07 2011-02-10 Tal Eden Systems, methods and apparatus for relative frequency based phrase mining
US20110035210A1 (en) * 2009-08-10 2011-02-10 Benjamin Rosenfeld Conditional random fields (crf)-based relation extraction system
CN102012900B (zh) * 2009-09-04 2013-01-30 阿里巴巴集团控股有限公司 信息检索方法和系统
US8943094B2 (en) 2009-09-22 2015-01-27 Next It Corporation Apparatus, system, and method for natural language processing
US9081799B2 (en) 2009-12-04 2015-07-14 Google Inc. Using gestalt information to identify locations in printed information
US9323784B2 (en) 2009-12-09 2016-04-26 Google Inc. Image search using text-based elements within the contents of images
KR101301534B1 (ko) * 2009-12-14 2013-09-04 한국전자통신연구원 이형태 자동 구축 방법 및 장치
US8417727B2 (en) * 2010-06-14 2013-04-09 Infobright Inc. System and method for storing data in a relational database
JP6511221B2 (ja) * 2010-08-26 2019-05-15 グーグル エルエルシー 入力テキスト文字列の変換
US8943051B2 (en) * 2010-09-24 2015-01-27 International Business Machines Corporation Lexical answer type confidence estimation and application
CN102411563B (zh) * 2010-09-26 2015-06-17 阿里巴巴集团控股有限公司 一种识别目标词的方法、装置及系统
US9122744B2 (en) 2010-10-11 2015-09-01 Next It Corporation System and method for providing distributed intelligent assistance
US9063931B2 (en) * 2011-02-16 2015-06-23 Ming-Yuan Wu Multiple language translation system
US9081760B2 (en) * 2011-03-08 2015-07-14 At&T Intellectual Property I, L.P. System and method for building diverse language models
US8151186B1 (en) * 2011-03-11 2012-04-03 Google Inc. Comparing text pages using image features based on word positions
WO2012143839A1 (en) * 2011-04-19 2012-10-26 Greyling Abraham Carel A computerized system and a method for processing and building search strings
US20130024459A1 (en) * 2011-07-20 2013-01-24 Microsoft Corporation Combining Full-Text Search and Queryable Fields in the Same Data Structure
US9058331B2 (en) 2011-07-27 2015-06-16 Ricoh Co., Ltd. Generating a conversation in a social network based on visual search results
WO2013018032A1 (en) * 2011-07-31 2013-02-07 Bar-Shimon Niva Human association search engine
US9836177B2 (en) 2011-12-30 2017-12-05 Next IT Innovation Labs, LLC Providing variable responses in a virtual-assistant environment
US9223537B2 (en) 2012-04-18 2015-12-29 Next It Corporation Conversation user interface
US8892596B1 (en) * 2012-08-08 2014-11-18 Google Inc. Identifying related documents based on links in documents
US9195647B1 (en) * 2012-08-11 2015-11-24 Guangsheng Zhang System, methods, and data structure for machine-learning of contextualized symbolic associations
US9536049B2 (en) 2012-09-07 2017-01-03 Next It Corporation Conversational virtual healthcare assistant
US9659058B2 (en) 2013-03-22 2017-05-23 X1 Discovery, Inc. Methods and systems for federation of results from search indexing
US10445115B2 (en) 2013-04-18 2019-10-15 Verint Americas Inc. Virtual assistant focused user interfaces
US9880983B2 (en) 2013-06-04 2018-01-30 X1 Discovery, Inc. Methods and systems for uniquely identifying digital content for eDiscovery
US9547640B2 (en) * 2013-10-16 2017-01-17 International Business Machines Corporation Ontology-driven annotation confidence levels for natural language processing
US9823811B2 (en) 2013-12-31 2017-11-21 Next It Corporation Virtual assistant team identification
RU2640322C2 (ru) * 2014-01-30 2017-12-27 Общество с ограниченной ответственностью "Аби Девелопмент" Способы и системы эффективного автоматического распознавания символов
US10346550B1 (en) 2014-08-28 2019-07-09 X1 Discovery, Inc. Methods and systems for searching and indexing virtual environments
US20160071517A1 (en) 2014-09-09 2016-03-10 Next It Corporation Evaluating Conversation Data based on Risk Factors
US10083167B2 (en) 2014-10-03 2018-09-25 At&T Intellectual Property I, L.P. System and method for unsupervised text normalization using distributed representation of words
US9734141B2 (en) 2015-09-22 2017-08-15 Yang Chang Word mapping
CN106708880B (zh) * 2015-11-16 2020-05-22 北京国双科技有限公司 话题关联词的获取方法和装置
US9818405B2 (en) * 2016-03-15 2017-11-14 SAESTEK Ses ve Iletisim Bilgisayar Tekn. San. Ve Tic. A.S. Dialog management system
US20170293621A1 (en) * 2016-04-06 2017-10-12 International Business Machines Corporation Natural language processing based on textual polarity
US10706044B2 (en) 2016-04-06 2020-07-07 International Business Machines Corporation Natural language processing based on textual polarity
US20170293620A1 (en) * 2016-04-06 2017-10-12 International Business Machines Corporation Natural language processing based on textual polarity
US11189193B2 (en) 2016-04-26 2021-11-30 Ponddy Education Inc. Affinity knowledge based computational learning system
US11562008B2 (en) * 2016-10-25 2023-01-24 Micro Focus Llc Detection of entities in unstructured data
CN107256258B (zh) * 2017-06-12 2019-09-06 上海智臻智能网络科技股份有限公司 语义表达式生成方法及装置
US11094317B2 (en) * 2018-07-31 2021-08-17 Samsung Electronics Co., Ltd. System and method for personalized natural language understanding
US11189267B2 (en) 2018-08-24 2021-11-30 Bright Marbles, Inc. Intelligence-driven virtual assistant for automated idea documentation
US11164065B2 (en) 2018-08-24 2021-11-02 Bright Marbles, Inc. Ideation virtual assistant tools
US11461863B2 (en) 2018-08-24 2022-10-04 Bright Marbles, Inc. Idea assessment and landscape mapping
US11081113B2 (en) 2018-08-24 2021-08-03 Bright Marbles, Inc. Idea scoring for creativity tool selection
US11568175B2 (en) 2018-09-07 2023-01-31 Verint Americas Inc. Dynamic intent classification based on environment variables
US11196863B2 (en) 2018-10-24 2021-12-07 Verint Americas Inc. Method and system for virtual assistant conversations

Family Cites Families (32)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4839853A (en) * 1988-09-15 1989-06-13 Bell Communications Research, Inc. Computer information retrieval using latent semantic structure
US5146406A (en) * 1989-08-16 1992-09-08 International Business Machines Corporation Computer method for identifying predicate-argument structures in natural language text
US5404514A (en) * 1989-12-26 1995-04-04 Kageneck; Karl-Erbo G. Method of indexing and retrieval of electronically-stored documents
EP0494573A1 (en) 1991-01-08 1992-07-15 International Business Machines Corporation Method for automatically disambiguating the synonymic links in a dictionary for a natural language processing system
US5278980A (en) * 1991-08-16 1994-01-11 Xerox Corporation Iterative technique for phrase query formation and an information retrieval system employing same
US5278890A (en) * 1991-11-27 1994-01-11 At&T Bell Laboratories Paging arrangements in a cellular mobile switching system
US5369575A (en) 1992-05-15 1994-11-29 International Business Machines Corporation Constrained natural language interface for a computer system
US5377103A (en) 1992-05-15 1994-12-27 International Business Machines Corporation Constrained natural language interface for a computer that employs a browse function
US5630121A (en) 1993-02-02 1997-05-13 International Business Machines Corporation Archiving and retrieving multimedia objects using structured indexes
GB2279164A (en) * 1993-06-18 1994-12-21 Canon Res Ct Europe Ltd Processing a bilingual database.
US5519608A (en) * 1993-06-24 1996-05-21 Xerox Corporation Method for extracting from a text corpus answers to questions stated in natural language by using linguistic analysis and hypothesis generation
JP3408291B2 (ja) * 1993-09-20 2003-05-19 株式会社東芝 辞書作成支援装置
US5659765A (en) * 1994-03-15 1997-08-19 Toppan Printing Co., Ltd. Machine translation system
US5799268A (en) * 1994-09-28 1998-08-25 Apple Computer, Inc. Method for extracting knowledge from online documentation and creating a glossary, index, help database or the like
AU5969896A (en) 1995-06-07 1996-12-30 International Language Engineering Corporation Machine assisted translation tools
JP3268963B2 (ja) * 1995-07-11 2002-03-25 富士通株式会社 在高管理システム
US5913215A (en) * 1996-04-09 1999-06-15 Seymour I. Rubinstein Browse by prompted keyword phrases with an improved method for obtaining an initial document set
US6085162A (en) * 1996-10-18 2000-07-04 Gedanken Corporation Translation system and method in which words are translated by a specialized dictionary and then a general dictionary
US5987446A (en) * 1996-11-12 1999-11-16 U.S. West, Inc. Searching large collections of text using multiple search engines concurrently
US5991710A (en) * 1997-05-20 1999-11-23 International Business Machines Corporation Statistical translation system with features based on phrases or groups of words
US5933822A (en) * 1997-07-22 1999-08-03 Microsoft Corporation Apparatus and methods for an information retrieval system that employs natural language processing of search results to improve overall precision
US6070134A (en) * 1997-07-31 2000-05-30 Microsoft Corporation Identifying salient semantic relation paths between two words
US6078878A (en) * 1997-07-31 2000-06-20 Microsoft Corporation Bootstrapping sense characterizations of occurrences of polysemous words
JP3114703B2 (ja) * 1998-07-02 2000-12-04 富士ゼロックス株式会社 対訳文検索装置
US6285978B1 (en) * 1998-09-24 2001-09-04 International Business Machines Corporation System and method for estimating accuracy of an automatic natural language translation
US6523028B1 (en) * 1998-12-03 2003-02-18 Lockhead Martin Corporation Method and system for universal querying of distributed databases
EP1203309A4 (en) * 1999-06-18 2006-06-21 Univ Columbia SYSTEM AND METHOD FOR DISCOVERING TEKSTÄHNLICHICHITEN ABOUT SHORT PASSAGES
US6393389B1 (en) * 1999-09-23 2002-05-21 Xerox Corporation Using ranked translation choices to obtain sequences indicating meaning of multi-token expressions
US6330530B1 (en) * 1999-10-18 2001-12-11 Sony Corporation Method and system for transforming a source language linguistic structure into a target language linguistic structure based on example linguistic feature structures
US7962326B2 (en) * 2000-04-20 2011-06-14 Invention Machine Corporation Semantic answering system and method
US6859800B1 (en) * 2000-04-26 2005-02-22 Global Information Research And Technologies Llc System for fulfilling an information need
US6697793B2 (en) * 2001-03-02 2004-02-24 The United States Of America As Represented By The Administrator Of The National Aeronautics And Space Administration System, method and apparatus for generating phrases from a database

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107273503A (zh) * 2017-06-19 2017-10-20 北京百度网讯科技有限公司 用于生成同语言平行文本的方法和装置
CN107273503B (zh) * 2017-06-19 2020-07-10 北京百度网讯科技有限公司 用于生成同语言平行文本的方法和装置

Also Published As

Publication number Publication date
US8521509B2 (en) 2013-08-27
EP1556784A1 (en) 2005-07-27
US20100211567A1 (en) 2010-08-19
JP2005529386A (ja) 2005-09-29
WO2003102812A1 (en) 2003-12-11
EA200401629A1 (ru) 2005-06-30
CA2487801A1 (en) 2003-12-11
IL165481A0 (en) 2006-01-15
US20030171910A1 (en) 2003-09-11
EA006373B1 (ru) 2005-12-29
EP1556784A4 (en) 2006-06-07
KR20050005523A (ko) 2005-01-13
TR200500674T2 (tr) 2006-04-21
AU2003209404A1 (en) 2003-12-19
US7711547B2 (en) 2010-05-04

Similar Documents

Publication Publication Date Title
CN1672149A (zh) 词联想方法和装置
CN1625739A (zh) 内容转换方法和装置
CN1110757C (zh) 处理两种文字对照的数据库的方法与装置
CN1204515C (zh) 自由格式数据处理的方法和设备
CN1578954A (zh) 机器翻译
CN1174332C (zh) 转换表达方式的方法和装置
CN1266624C (zh) 学习支持系统
CN1620659A (zh) 多种语言的数据库创建系统和方法
CN1608259A (zh) 机器翻译
CN1215433C (zh) 联机文字识别装置及方法
CN1894688A (zh) 对译判断装置、方法及程序
CN1119755C (zh) 文本处理器
CN1158627C (zh) 用于字符识别的方法和装置
CN1505786A (zh) 内容转换方法和装置
CN1689022A (zh) 可扩展标记语言流化转换器
CN1299488A (zh) 改进的搜索引擎
CN1173684A (zh) 用于通过推理识别输入字符串的装置
CN1535433A (zh) 基于分类的可扩展交互式文档检索系统
CN101079026A (zh) 文本相似度、词义相似度计算方法和系统及应用系统
CN1328321A (zh) 通过语音提供信息的装置和方法
CN1255213A (zh) 语言分析系统及方法
CN1310422A (zh) 数据处理方法、系统、处理程序及记录媒体
CN1083952A (zh) 文件写作与翻译综合系统
CN1206883A (zh) 结构化文档检索显示方法和装置
CN1628298A (zh) 综合从搜索系统中使用的文档中抽取知识的自学习系统的方法

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
AD01 Patent right deemed abandoned

Effective date of abandoning: 20050921

C20 Patent right or utility model deemed to be abandoned or is abandoned