具体实施方式
I.典型适合的计算设备
图1描述了一个实现本发明实施例的适合的计算系统100的实例。计算系统100仅仅是一个适合的计算系统的实例,并不用于建议任何关于本发明使用目的或者功能性的限制。计算系统100不应该被理解为具有涉及其所描述的元件之一或组合的任何相关性或者要求。
参照图1,适合于本发明的示例性设备包括一个以计算机110形式出现的通用计算设备。计算机110的元件可以包括但不限制于:一个处理单元120、一个系统存储器130和一个系统总线121,该总线连接包括系统存储器到处理单元120的各种系统部件。系统总线121可以是多种总线结构类型中的任何一种,各种系统总线包括使用任何总线结构的存储总线或者存储控制器、外设总线和本地总线。借助于实施例,但不限制于此,这些总线结构包括工业标准结构(ISA)总线,微通道结构(MCA)总线,增强型ISA(EISA)总线,视频电子标准协会(VESA)本地总线,和也称为夹层总线(Mezzanine bus)的外设部件互连(PCI)总线。
计算机110典型地包括多种计算机可读媒质。计算机可读媒质可以是任何可以通过计算机110访问的可用媒质,其包括易失的和非易失的媒质、可移动的和非可移动的媒质。借助于实例,但不限制于此,计算机可读媒质可以包括计算机存储媒质和通信媒质。计算机存储媒质包括以任何用于存储信息的方法或技术执行的易失的和非易失的媒质、可移动的和非可移动的媒质,上述信息例如计算机可读指令、数据结构、程序模块或者其它数据。计算机存储媒质包括,但不限于此,RAM、ROM、EPROM、闪存或其它的存储技术、CD-ROM、数字化视频光盘(DVD)或其它的光盘存储器、盒式磁带、录音带、磁盘存储器或者其它的磁存储设备、或者其它可以被用于存储所需信息和通过计算机110访问的媒质。
通信媒质典型地包括有计算机可读指令,数据结构、程序模块或者其它在已调制数据信号中的数据,例如载波或其它的传输机制,并且包括任何信息传送媒质。术语“已调制数据信号”意思是一个信息使其自身的一个或者多个特征以一种方式设置或者变化,用于对信号中的信息编码。借助于实施例,但不限于此,通信媒质包括有线媒质,例如有线网络或直接单线连接;和无线媒质,例如声音、射频、红外线和其它无线媒质。上述任何种类的组合都将被包括在计算机可读媒质的范围内。
系统存储器130包括易失的和/或非易失的存储器形式的计算机存储媒质,例如只读存储器(ROM)131和随机存储器(RAM)132。一个基本输入/输出系统133(BIOS)被典型地存储在ROM131中,诸如在启动期间,其包括帮助在计算机110中的元件间传输信息的例行程序。RAM132典型地包括数据和/或程序模块,其可以通过处理单元120立即访问和/或操作。借助于实施例,但不限于此,图1描述了操作系统134、应用程序135、其它程序模块136和程序数据137。
计算机110也可以包括其它可移动/非可移动、易失/非易失的计算机存储媒质。仅仅借助于实例,图1描述了一种硬盘驱动器141,其读取或者写入非可移动的、非易失的磁性媒体;一种磁盘驱动器151,其读取或者写入到可移动的、非易失的磁盘152;和一个光盘驱动器155,其读取或者写入到非可移动的、非易失的光盘156,例如CDROM或者其它的光媒质。可以用于示例性操作环境的其它可移动的/非可移动的、易失的/非易失的计算机存储媒质包括但不限制于,盒式磁带、闪存卡,数字化视频光盘,数字录像磁带、固态RAM、固态ROM,等等。硬盘驱动器141一般通过一个非可移动存储器接口,例如接口140被连接到系统总线121,磁盘驱动器151和光盘驱动器155一般通过一个可移动的存储器接口,例如接口150被连接到系统总线121。
在图1中描述的和上述讨论的驱动器以及与驱动器相关的计算机存储媒质提供对计算机可读指令、数据结构、程序模块和其它用于计算机110的数据的存储。在图1中,例如,硬盘驱动器141被描述用作存储新系统144、应用程序145、其它程序模块146和程序数据147。应该注意,这些部件可以相同或者不同于操作系统134、应用程序135,其它程序模块136和程序数据137。在这里用不同的编号描述操作系统144、应用程序145、其它程序模块146和程序数据147,至少它们是不同的复制。
用户也可以通过输入设备,例如键盘162、麦克风163和指示器161,例如鼠标、跟踪球或触摸板将命令和信息输入到计算机110。其它的输入设备(未示出)可以包括一个操纵杆、游戏板,卫星反射器、扫描仪等等。这些和其它的输入设备常常通过连接到系统总线的用户输入接口160连接到处理单元120,但是也可以通过其它的接口和总线结构连接,例如并行端口,游戏端口或通用串行总线(USB)。监视器191或其它类型的显示设备也通过诸如视频接口190的接口连接到系统总线121。除监视器之外,计算机还包括其它通过输出外设接口195连接的外设输出设备,例如扬声器197和打印机196。
计算机110在一种使用逻辑连接一个或更多诸如远程计算机180的远程计算机的网络环境下操作。远程计算机180可以是一个个人计算机,一个手持设备,一个服务器,一个路由器、一个网络PC,一个对等设备或者其它公共网络节点,并且远程计算机典型地包括上述的许多或全部涉及计算机110的元件。在图1中描述的逻辑连接包括一个局域网(LAN)171和一个广域网(WAN)173,但是也可以包括其它的网络。这种网络环境在办公室、大企业(enterprise-wide)计算机网络,内联网和因特网中是很普通的。
当在LAN网络环境中使用时,计算机110通过网络接口或适配器170连接到LAN 171。当在WAN网络环境中使用时,计算机110一般包括一个调制解调器172或者用于通过WAN 173建立通信的其它装置,例如因特网。调制解调器172可以是内置或外置的,其可以通过用户输入接口160或其它合适的机制连接到系统总线121。在网络环境下,所描述的涉及计算机110或其中某部分的程序模块可以被存储在远程记忆体存储器设备中。借助于实例,但不限于此,图1描述了驻留于远程计算机180中的远程应用模块185。应该明白,所显示的网络连接是示范性的,也可以使用其它装置在计算机之间建立一个通信连接。
应该注意,本发明可以与诸如图1中描述的计算机系统联合执行。当然,本发明也可以与服务器,一个专用于信息处理的计算机,或一个分布式系统相似地联合执行,其中在分布式计算系统的不同部分执行本发明的不同部分。
II.另外一个示例性的适合的计算设备
图2是一个移动计算设备200的框图。移动设备200包括一个微处理器202,存储器204。输入/输出(I/O)部件206和用于与远程计算机或其它移动设备通信的通信接口208。在一个实施例中,设备200的内部部件通过适合的总线210连接用于彼此通信。
设备200是可以实现本发明的一个适合的计算设备的实例。设备200仅仅是这种设备的一个实例,并不用于建议关于本发明的功能性和使用目的的任何限制。设备200不应该被理解为具有涉及在示例性设备200描述的部件之一或组合的任何相关性或者要求。
存储器204被作为非易失性电子存储器实现,例如具有电池备用模块(未示出)的随机访问存储器(RAM),这样使得当到移动设备的总功率被关闭时,存储在存储器204上的信息不会丢失。存储器204的一部分最好作为可寻址存储器分配给程序执行,而存储器204的另一部分最好用于存储,例如在磁盘上的模拟存储器。
存储器204包括一个操作系统212,应用程序214以及对象存储器216。存储器204的操作系统212最好在处理器202的操作期间执行。在一个优选的实施例中,操作系统212是一个来自微软公司可商用的
CE商标操作系统。操作系统212最好设计用于移动设备,其通过一组开放式应用程序接口和方法执行可以被应用214利用的数据库特征。在对象存储器216中的对象通过应用214和操作系统212维持,至少部分地响应于对开放式应用程序接口和方法的呼叫。
通信接口208代表许多允许移动设备200发送和接收信息的设备和技术。设备包括例如有线和无线调制解调器、卫星接收机和广播调谐器。移动设备200也可以直接连接到计算机与之交换数据。在这种情况下,通信接口208也可以是一个红外线收发信机或一个串或并行通信连接,所有这些都可以发送流信息。
输入/输出部件206可以包括任何种类输入设备的任何一种,例如触敏屏、按钮、滚轴和麦克风以及包括一个音频产生器、振动设备和显示器的多种输出设备的任何一种。上述列出的设备作为实例,并且不需要全部出现在移动设备200中。另外,在不脱离本发明的范围的情况下,其它的输入/输出设备也可以被加入或者与移动设备200一起建立。
除了在这里描述的之外,本发明的实施例可以与许多通用或专用的计算系统环境或者上述的配置以外的其它配置中操作。众所周知的适合的计算机系统环境和配置的实例包括但不限于,个人计算机、服务器计算机、手持或者膝上型设备,多处理器系统、基于微处理器的系统、设置的机顶盒、可编程的用户电子设备、网络PC、小型计算机、大型计算机、电话系统、包括上述任何系统或设备的分布式计算系统等。
本发明的实施例可以在例如程序模块的由计算机执行的通用的计算机可执行指令环境中进行描述。通常,程序模块包括执行特定任务或实现特定抽象数据类型的例行程序、程序、对象、分量、数据结构,等。本发明被设计为在分布式计算环境下实现,在该环境中,任务被通过通信网络连接的远程处理设备执行。在一种分布式计算环境中,程序模块位于包括记忆体存储器设备的本地和远程计算机存储媒质中。在下文借助于图描述通过程序和模块执行的任务。本领域的技术人员可以将说明书和图实现为处理器可执行指令,该指令可以写入到任何形式的计算机可读媒质上。
III.示例的计算系统环境
图3是一个描述适合的计算系统环境300的实例的框图,本发明的实施例可以在该环境下实现。计算系统环境300仅仅是一个适合的计算环境的实例,并不用于建议任何关于本发明使用目的或者功能性的限制。计算环境300不应该被理解为具有涉及其所描述的部件之一或组合的任何相关性或者要求。
环境300包括多个客户机304。客户机304可以是类似于图2中描述的设备200的移动设备,这只是说明性而不是必须。客户机304不一定要是移动的。按照一个实施例,至少一个客户机304是一般的非移动计算设备,相似于图1中计算机100的PC计算机。一个假定的客户机304可以是任何上述关于图1和图2的计算设备,或者其它的计算设备。为了简化本发明示例性实施例的描述,假设客户304是类似于图2中描述的设备200的移动设备。另外,通常假设与客户机304的通信通过无线网络通信。非无线通信可以被很容易地实现以支持与移动或者非移动客户304通信。
客户机304被配置为连接,至少是暂时连接到网络310中维持的服务器302。客户机304被示例性地配置为通过通信接口与服务器302通信,例如在图2中描述的接口208。服务器302被示例性地配置为向客户机304提供信息,例如应用信息。这种信息可以从应用存储器214中存取,并被处理器202利用以使客户机用户具有语言翻译功能。
本发明的实施例属于一种能够使客户304从服务器302中获得专用信息,例如应用信息的系统。专用的信息使得客户机能够作为移动语言翻译机进行操作。使用移动语言翻译机,客户机304的用户会有机会使用他们不是特别流利的特殊的当地语言完成某种形式的交流。客户从服务器接收的信息示例性地启动用户熟悉的语言和至少一种用户选择的外国语言之间的翻译。被接收的信息还包括属于用户选择特定目的地(也就是一个城市)的信息。
服务器302被配置为通过网络(也就是因特网)向客户机304提供一种实际的翻译业务。尽管不是必须的,但客户机304示例性的是一个无线移动设备。服务器302提供给客户机302的业务示例性地在付费基础上提供的(也就是在一次或预订的基础上的付款)。翻译业务示例性地使启动客户机移动设备充当其用户的移动翻译机。用户可以使用移动翻译机器利用他们不是特别的流利的特殊的自然语言参与谈话。例如,不具备他们所访问的国家的语言知识的外国旅行者需要与当地人进行必要的日常生活的交流,例如用于旅馆的登记和付帐后离开,乘出租车以及购物等等。移动翻译机使得旅行者能够实现这种谈话。
如上所述,为了将客户机304装备成为充当用户的移动翻译机,从服务器304将某些应用项目传送到客户机302以在其上实现这些项目。应用项目示例性地包括一个语言独立翻译引擎和至少一个语言从属翻译数据库。语言从属数据库示例性地包括翻译模板和翻译字典的集合。翻译模板的功能涉及将在下文中详细描述的特殊的翻译方案。
从服务器302传送到客户机304的应用项目任选地包括一个或更多代表一个或更多特殊目的城市的专用数据库。专用的数据库示例性地包括与目的城市相关的专用词和短语,例如特殊的旅馆、街道名称、饭馆、游览胜地等。可以在不脱离本发明范围的情况下实现专用数据库的其它类型(也就是,不同于基于城市的数据库)。
假如需要,客户机304的用户可以要求传送对应于一种或更多种自然语言的一个和更多语言从属数据库以及一个或更多专用数据库。当应用项目从服务器302传送到客户移动设备之后,就可以通过将语言从属翻译数据库和任意一个专用数据库应用到翻译引擎来实现语言之间的翻译。翻译引擎可以长时间驻留在客户机304中或者被偶尔地从服务器302传送输到客户机304(也就是,传送一个语言从属或者专用数据库)。翻译引擎示例性地执行一个将在下文中详细描述的特殊的翻译方案。
按照一个特殊的实施例,一个将去北京旅行的美国人从服务器将翻译引擎、中-英双向翻译模板和字典以及一个北京专用翻译字典下载到他/她无线移动设备中。在北京,美国人可以将语言从属翻译数据库和城市专用翻译数据库应用到翻译引擎以易于在北京有效的交流。翻译引擎示例性地是语言独立的。
IV.优选的翻译方案
有很多与为自由文本(free text)提供高质量翻译相关的难题。按照一个实施例,为了防止其中一些难题的发生,由服务器302提供和在客户机304上执行的翻译业务是基于“联合翻译”方案的。按照该方案,可以提供对于典型情况的翻译。对于每一种典型情况,将典型的语句与用各种外国语言对它们的翻译一起收集。基于这些例句,利用基于例句的翻译系统得到翻译。
图4是一个流程图,一般性地描述了联合翻译方案的工作流程。该过程的第一个步骤是让客户机的用户与他或她的客户机设备交互,以便完成源句子408的选择。如框402、404和406所示,用户可以通过语音输入、手写输入和/或键盘输入所完成的交互来选择源句子408。在不脱离本发明的范围下,也可以利用其它的输入方法。示例性地从已经从服务器302下载到客户机304的语言从属数据库和专用数据库中选择源句子408。源句子408示例性地属于一种用户熟悉的语言
在已经选择源句子之后,翻译机410应用语言独立翻译引擎将源句子翻译成目标句子412。目标句子412示例性地是用户想要完成交互的语言。按照框414和416,目标句子412作为语音(也就是模拟语音)输出或者在显示器中输出给客户机设备的用户。用户则利用该输出以一种相对的外文完成交流。在不脱离本发明的范围下,也可以产生其它形式的输出。
按照一个实施例,源句子408的选择像直接的用户输出那样简单。例如,用户利用语音、手写或者键盘输入的方法可以直接将源句子输入到客户机设备。或者,源句子408的选择可以通过一个选择过程完成。例如,客户机设备可以从用户的选择中提供一个分类的源句子408的列表。
然而,按照本发明的一个方面,下载到客户机设备的语言从属数据库包括有限数目的例句。假如这些例句的其中一个准确地匹配用户所寻找的句子,那么用户选择该句子充当源句子408。否则,用户选择与用户所寻找的比较类似的例句。那么,系统被配置为可以允许用户改变类似的句子直到它以适当的形式充当源句子408。用户示例性地可以通过用字典中包含的元素替换句子元素来改变类似的句子,该字典是从语言从属数据库和/或一个或更多下载的专用数据库中发现的。这样,用户把相似的语句变换成所需的源句子408。换句话说,源句子408的选择可以利用两个步骤过程完成。首先,选择相似的句子。然后,通过替代、增加和/或删除项修改相似的句子,直到相似的句子是合理的或与源句子408恰当近似。
按照本发明的一个方面,可以以至少两种方式选择相似的句子。首先,用户可以手动浏览语句数据库(也就是部分语言从属数据库)。浏览过程示例性地利用基于分类的菜单系统是很容易的。例如,用户可以利用一个输入设备选择一个宽的类别,例如“TAXI”。一旦进行选择,子分类的列表便会出现在用户面前。用户可以通过菜单系统移动,直到他或她发现一个类似于他们所寻找的可以充当源句子408的句子。然后用户修改类似的句子,直到它适合充当源句子408。
然而或者,用户可以通过输入他们所要寻找的内容开始查找类似的句子。然后,系统将从数据库中检索类似的语句,并呈现给用户用于选择。用户则选择一个非常类似于他们所寻找的句子。然后,用户修改类似的语句直到它适合充当源句子408。例如,用户可以输入“May I get to the train station quickly by taxi?”然后该系统将查找语句数据库并提供一个列表,例如:
a.“May I getto the hotel by taxi?”
b.“I get to the train station by bus.”
c.“I get to the train station quickly.”
然后,用户从列表中选择一个句子充当类似的句子(也就是修改的基础)。在修改的一个实例中,用户可以选择用”train station”替换在语句”a.”中的片段“thehotel”来进行修改。术语”train station”是一个示例性地术语,其可以从用于翻译的语言从属数据库中得到。
按照本发明的一个方面,图5是一个描述整个流程的流程图,其中用户从输入一个他们希望翻译的句子开始。框502表示用户的输入,其可以经由语音输入、键盘输入手写输入或其它的输入完成。框504代表输入与语句和模板506的匹配过程,上述语句和模块506存储在客户机作为部分语言从属数据库(和/或部分任何专用数据库)。
框508表示对用户输入定位恰当的匹配的情况。在那种情况下,按照框510,被示例性地作为被下载的语言从属数据库和独立翻译引擎一部分实现的字典和规则512被应用于翻译语句508,并产生输出514(也就是语音或者显示输出)。
框516表示没有对用户输入定位恰当的匹配的情况,但是定位了一个相似的匹配。模板516代表从数据库506检索的相似匹配。按照框518,用户修改相似的匹配,直到它可以合理的近似于原始输入502。然后,按照框510,将被修改的语句翻译成输出514(也就是语音或者显示输出)。
框520代表既没有对输入502定位恰当的匹配,也没有定位合理的估计的情况。在这种情况下,对应的输入502被传送回到服务器。按照框522,利用该输入以训练随后被传送给其它客户机的语音从属数据库和/或专用数据库。
V.基于模板的机器翻译
按照本发明的一个方面,通过一种基于模板的机器翻译方法实现已描述的翻译过程,该过程通常通过方程1的取样数据格式举例说明:
方程1
<template id=“100002”cntSlot=“2”>
<Example_Sentence>
<es>Can I get back to<slot id=”1”>the
hotel</slot>quickly from<slot id=”2”>
here</slot>by taxi?</es>
<cs>□<slot id=”2”>□□
</slot>□□□□□□□□□□<slotid=”1”>□□</slot>□□</cs>
</Example_Sentence>
</template>
按照基于模板的机器翻译方法,通过应用容纳基于模板的方法的算法完成从语言从属数据库检索与用户想要翻译的语句近似的一个句子。该算法通常包括两个步骤。
算法的第一个步骤是使用加权项频率/反向文件频率(TF-IDF)信息检索方法选择候选语句。据此被表示为D的例句的集合包括多个文件,其中每一个文件实际上是一个例句。关于一个文件(仅包含一个语句)的索引结果表示为一个加权的矢量:
方程2
Di→(di1,di2,…,dim)
这里,dik(1≤k≤m)是文件Di中项tk的加权,m是矢量空间的尺寸,该矢量空间的尺寸通过在集合中建立的不同项的数量确定。项示例性地是英文单词,但这不是必须的。它们可以容易地是日文字符,中文字符或其它语言单位。文件中一个项的加权dik是按照其在文件中的出现频率(tf-项频率:termfrequency)以及它在整个集合中的分布(idf-反向文件频率:inverse documentfrequency)计算的。有多种方法可以被用于计算dik。例如,可以利用下面的公式:
等式3
这里,fik是文件Di中项tk的出现频率;N是集合中文件的总数量,nk是包括项tk的文件的数量。
一个查询(在给出的情况下,对应于用户希望翻译的语句)按照一个类似的方法进行索引,同时获得一个用于查询的矢量:
等式4
Qj→(qj1,qj2,…,qjm)
然后,计算在Di和Qj之间的相似性,将其作为它们矢量之间的内积,也就是:
等式5
输出是一组语句S,这里:
方程6
S={Di|Sim(Di,Qj)≥δ}
算法的第二个步骤是利用加权编辑距离方法去重新排列已选择的语句组。假设一个已选择的语句Di→(di1,di2,…,dim),在Di和Qj之间的表示为ED(Di,Qj)的编辑距离被定义为最小的必须使两个字符串A和B相等的插入项,删除项和取代项的数量。特别是,ED(Di,Qj)被定义为将Di变为Qj所需的最小操作量,这里操作是下面之一:
1.改变一个项;
2.插入一个项;或
3.删除一个项。
动态规划算法被示例性地用于计算两个字符串的编辑距离。一个二维的矩阵m[0..s1|,0..|s2]被用于保持编辑距离值:
等式7
m[i,j]=ED(S1[1..i],S2[1..j])
m[0,0]=0
m[i,0]=i,i=1..|S1|
m[0,j]=j,j=1..|S2|
m[i,j]=min(m[i-1,j-1]+ifS1[i]=S2[j]then0else 1,m[i-1,j]+1,m[i,j-1]+1),i=1..|S1|,j=1..|S2|
m[,]示例性地被逐行计算。行m[i,]仅仅依赖于行m[i-1,]。该算法的时间复杂性是0(|S1|*|S2|)。假如S1和S2在项数量方面具有“相似“的长度,例如大约是‘n’,则该复杂性是0(n2)。
加权的编辑距离一般涉及这种情况,即每一个操作(插入、删除、代替)的损失不是必须为1,而是可以基于相关项的意义分配不同的值。例如,随后的损失数值列表可以被用于按照下面的特殊部分语音分配数值:
POS |
计分 |
名词 |
0.6 |
动词 |
1.0 |
形容词 |
0.8 |
副词 |
0.8 |
介词 |
0.8 |
其它 |
0.4 |
该列表示例性地仅仅可以被修改以适应一个给定应用。通过TF-IDF方法选择的语句S={Di|Sim(Di,Qj)≥δ}示例性地根据加权编辑距离ED排列,同时获得一个有序的列表:
等式8
T={T1,T2,T3,…Tn},这里ED(Ti,Qj)≥ED(Ti+1,Qj).1≤i≤n
该有序的列表被示例性地当作便于所描述的基于模板的翻译过程的基础(确定哪些相似句子或语句将提交给用户)。
尽管本发明已经参照优选的实施例进行了描述,但是本领域的技术人员在不脱离本发明的范围和精神下,可以在形式和细节上做出改变。