具体实施方式
图1示出了本发明可在其上实现的适当的计算系统环境100的示例。该计算系统环境100仅是适当计算环境的一个示例,并非旨在提出对本发明使用或功能性范围作任何限制。计算环境100也不应被解释为对示例性操作环境100中所示的任一组件或其组合有任何依赖性或任何需求。
本发明也可在很多其它通用或专用计算系统环境或配置中使用。适于本发明使用的众所周知的计算系统、环境、和/或配置的示例包括,但不限于,个人计算机、服务器计算机、手持式或膝上型装置、多处理器系统、基于微处理器的系统、机顶盒、可编程消费品电器、网络PC、迷你计算机、大型机、电话系统、包括任一种以上系统或设备的分布式计算环境等等。
本发明可以计算机可执行指令的一般上下文进行说明,诸如由计算机执行的程序模块。一般而言,程序模块包括执行具体任务或实现具体抽象数据结构的例程、程序、对象、组件、数据结构等等。本发明还可在任务由经通信网络连接的远程处理设备执行的分布式计算环境中实践。在分布式计算环境中,程序模块可置于包括存储器存储设备的本地和远程计算机存储介质中。
参照图1,实现本发明的示例性系统包括以计算机110形式的通用计算设备。计算机110的组件可包括,但不限于,处理单元120、系统存储器130以及把包括系统存储器在内的各种系统组件耦合到处理单元120的系统总线121。系统总线121可能是若干总线结构类型中的任何一种,包括存储器总线或存储器控制器、外围总线、以及使用多种总线架构的任一种的本地总线。作为示例,而非限制,这些架构包括工业标准架构(ISA)总线、微信道架构(MCA)总线、扩展ISA(EISA)总线、视频电子标准协会(VESA)局部总线和也称为MezzaNiNe总线的外围部件互连(PCI)总线。
计算机110通常包括各种计算机可读介质。计算机可读介质可以是能被计算机110访问的任何可用介质,并包括易失性和非易失性介质、可移动和不可移动介质。作为示例,而非限制,计算机可读介质可包括计算机存储介质和通信介质。计算机存储介质包括以任何方法或技术实现、用于存储诸如计算机可读指令、数据结构、程序模块或其它数据等信息的易失性和非易失性介质、可移动和不可移动介质。计算机存储介质包括但不限于RAM、ROM、EEPROM、闪存或其它存储器技术、CD-ROM、数字化多功能光盘(DVD)或其它光学存储技术、磁卡、磁带、磁盘存储或其它磁性存储设备、或任何其它可用于存储所需信息并可由计算机110访问的介质。通信介质通常在诸如载波或其它传输机制的调制数据信号中体现计算机可读指令、数据结构、程序模块、或其它数据,且包括任何信息输送介质。术语“调制数据信号”意指在信号中用对信息编码方式设置或改变其一个或多个特征的信号。作为示例,而非限制,通信介质包括诸如有线网络或直线连接的有线介质,和诸如声学、射频、红外线和其它无线介质的无线介质。以上任何介质的组合也应包括在计算机可读介质的范围中。
系统存储器130包括诸如只读存储器(ROM)131和随机存取存储器(RAM)132的易失性和/或非易失性存储器形式的计算机可读介质。包含有助于计算机110如起动时在元件间传送信息的基本例程的基本输入/输出系统(BIOS)133通常存储在ROM 131中。RAM 132通常包含可被处理单元120立即访问和/或当时正被操作的数据和/或程序模块。作为示例,而非限制,图1示出了操作系统134、应用程序135、其它程序模块136、和程序数据137。
计算机110还可包括其它可移动/不可移动、易失性/非易失性计算机存储介质。作为示例,图1图示了读取和写入不可移动、非易失性磁性介质的硬盘驱动器141,读取和写入可移动、非易失性磁盘152的磁盘驱动器151,读取和写入可移动、非易失性光盘156,诸如CD-ROM或其它光学介质的光盘驱动器155。其它也用在示例性计算环境中的可移动/不可移动、易失性/非易失性计算机存储介质包括,但不限于,如磁带、闪存卡、数字化视频光盘、数字化录像带、固态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相连。除了监视器,计算机还可包括诸如扬声器197和打印机196的其它输出设备,它们通过输出外围接口195相连。
计算机110可以在使用与一台或多台远程计算机,诸如远程计算机180的逻辑连接的网络化环境中运行。远程计算机180可以是个人计算机、服务器、路由器、网络PC、对等装置或其它公共网络节点,而且通常包括上述与个人计算机110相关的许多或全部组件,尽管在图1中仅图示了存储器存储设备181。图1中所描绘的逻辑连接包括局域网(LAN)171和广域网(WAN)173,但也可包括其它网络。这样的网络化环境在办公室、企业范围计算机网络、企业内部互联网和因特网上是常见的。
当用于LAN网络化环境中时,计算机110通过网络接口或适配器170与局域网171连接。当用于WAN网络化环境中时,计算机110通常包括调制解调器172或其它用于在广域网173,诸如因特网中建立通信的装置。可以是内置式或外置式的调制解调器172与系统总线121通过用户输入接口160或其它适当机制连接。在网络化环境中,与计算机110相关的程序模块或其一部分可存储在远程存储器存储装置中。作为示例,而非限制,图1示出了驻留于远程计算机180中的远程应用程序185。应当理解,所示网络连接是示例性的,且其它用于在计算机间建立通信连接的技术也可以使用。
本发明提供一种用于存储通过标准ARPA格式的经删除插值而产生的语言模型的技术。在经删除插值中,N字母概率被确定为对于N字母概率和低阶N字母概率的相关概率估算的线性插值。类似地,低阶N字母的概率被定义为低阶N字母概率和下一低阶N字母概率的相对频率概率估算之间的插值。这一直继续到确定单字母概率。因而,插值根据以下等式递归地确定:
P(νk|νk-(n-1)...νk-1)=(1-λn-1(νk-(n-1)...νk-1))f(νk|νk-(n-1)...νk-1)+
等式1
λn-1(νk-(n-1)...νk-1)P(νk|νk-(n-2)...νk-1)
其中P(νk|νk-(n-1)...νk-1)是N字母的概率,λn-1(νk-(n-1)...νk-1)是作为N字母上下文νk-(n-1)...νk-1的函数的插值权重,f(νk|νk-(n-1)...νk-1)是N字母的相对频率(N字母在训练文本中的出现次数比N字母上下文在训练文本中的出现次数),以及P(νk|νk-(n-2)...νk-1)是下一低阶N字母的概率,它使用带有是低阶N字母上下文函数的权重λn-2(νk-(n-2)...νk-1)的等式1来递归确定。等式1的递归以被确定为以下等式的单字母概率结束:
等式2
其中P(νk)是单字母概率,λ0是单字母插值权重,f(νk)是单字母νk的相对频率(单字母在训练文本中的出现次数与训练文本中字数的比率),以及是词汇表中字数的|V|,它作为缺省的单字母概率。
使用等式1和2的递归,N字母的概率变成了在感兴趣的N字母之下DE不同阶N字母相对频率的插值。例如,对于三字母,递归插值引入:
等式3
其中P(νk|νk-2νk-1)是三字母概率,f(νk|νk-2νk-1)是在训练文本中三字母的相对频率,f(νk|νk-1)是在训练文本中双字母的相对频率,f(νk)是在训练文本中单字母的相对频率,|V|是语言模型中的词汇表字数,以及λ2,λ1,λ0是上下文相关的插值权重。
在某些实施例中,用于确定相对频率的计数并不限于整数值,且可包括被计算为计数期望值的分数值。这是经删除插值优于诸如Katz后退方法的不能在分数计数(实数)上使用的其它后退方法的一个优点。
图2提供了使用经删除插值的N字母概率计算的图形表示。在图2中,线条之间的交点表示用于N字母的概率插值。例如,在节点200确定单字母概率而在节点220确定N字母的概率。在每个节点上,加权的相对频率被添加到较低阶节点确定的加权概率上。
例如,从节点200开始,经插值单字母概率被确定为单字母相对频率202和缺省单字母概率204的加权和,其中权重206(1-λ0)应用于相对频率202而权重208(λ0)应用于缺省单字母概率204。
下一较高阶节点210上的概率是双字母相对频率212和节点204的三字母概率的加权和。是双字母上下文函数的权重214(λ1(νk-1))应用于节点204的单字母概率,而权重216(1-λ1(νk-1))应用于相对频率212。
该递归加法继续往上,直到抵达N字母概率的节点220。对于节点220确定的概率是在节点222上确定的下一低阶N字母概率和N字母相对频率224的加权和,其中应用于低阶概率的权重226是λ(n-1)(νk-(n-1)...νk-1)而应用于相对频率的权重228是1-λ(n-1)(νk-(n-1)...νk-1),它们都依赖于N字母上下文。
如图2所示,为了确定N字母的概率,必须确定低阶N字母的相对频率和该上下文的权重。图3和4提供了用于确定这些值的框图和流程图。
在图4的步骤400中,训练文本300被拆分成主要部分302和检查部分304。在步骤402,相对频率计数器306把主要部分302解析成从单字母到感兴趣的最高N字母的变化阶N字母。然后相对频率计数器306在N字母的每一阶上对每个N字母的相对频率进行计数。这在N字母的每一阶上对于每个N字母产生了一组N字母相对频率计数组308。
在步骤404,相对频率308应用于EM训练器310,它使用最大化期望算法以设置权重λn-1...λ0的值,使所有最高阶N字母的总概率最大化从而:
等式4
其中[λn-1...λ0]是使最高阶N字母的概率最大的一组权重,而总概率是每个第i阶N字母的单独概率的乘积,其中每个单独概率使用等式1和2的递归插值进行计算。
如上所述,权重是用以确定的N字母上下文概率的函数。为了中和数据稀疏(可导致不可靠估算)同时减少EM训练的计算复杂性,这些权重基于上下文的频率计数被组合成桶(bucket)。在一实施例中,频率计数的范围被组合到相同权重中。因而,一个λn-1可用于见到16到32次之间的上下文,而一个λn-1可用于见到33到64次之间的上下文。这导致了需要被训练的较小权重集以及需要由于训练的较小训练文本集。
注意因为权重是针对检查数据304进行最大化,在检查数据304中将有在主要数据302中未观察到的N字母。因而,权重被设置以预期未看到的数据。
在某些实施例中,训练文本300可以不同方式进行分段,且对于文本新的分组可重新确定相对频率计数。然后这些新的频率计数可应用于EM训练器310以重新确定权重的值。当重新确定权重的值时,算法从估算在前次迭代中确定的权重开始。这种迭代可重复直到权重达到稳定值。在已形成预期迭代次数后,在步骤406权重集312和最终的相对频率计数集308一起存储为经删除插值模型314。通过把文本解析成不同阶N字母、搜索每个上下文的适当权重、以及使用等式1和2执行经插值概率的计算,可使用该经删除插值模型来确定用于新文本的概率。
由等式1和2表示的插值与通常以标准ARPA格式表示的被更广泛接受的后退语言模型有着实质上的不同。与使用线性插值以确定N字母的概率相反,更广泛接受的后退语言模型使用不能在模型中确定的任何N字母的替代概率。该替代概率基于低阶模型和与不能确定的概率的上下文相关联的后退权重。因而,更标准的后退语言模型不执行插值,而仅以低阶N字母概率替换N字母概率。
图5提供了使用现有技术的后退模型用于确定N字母概率的方法的流程图。在图5的步骤500,执行搜索以确定N字母的概率是否可在后退语言模型中确定。如果该N字母的概率存在,概率在步骤502返回。如果在步骤500未找到N字母概率,在步骤504确定与N字母上下文相关联的后退权重。在步骤506,执行搜索以确定后退语言模型是否包括下一低阶N字母的概率。例如,如果最高阶N字母是三字母,步骤506将搜索双字母的概率。如果在步骤506得不到下一低阶N字母的概率,过程返回到步骤504以确定下一低阶N字母上下文的后退权重。例如双字母上下文的后退权重。然后过程返回到步骤506以搜索下一低阶N字母的概率。因而,如果先前已在步骤506上对双字母概率进行了搜索,单字母概率将在返回步骤506之后搜索。
一旦在步骤506上得到了N字母的概率,该概率将乘以在步骤504到506之间的迭代中遇到的所有后退权重,以在步骤508形成N字母的概率。
如图5所示,为了使用标准后退语言模型来计算N字母的语言模型概率,必须搜索各阶N字母的概率以及那些N字母上下文的后退权重。后退语言模型的标准ARPA格式提供一种标准格式,它使同样的搜索算法不管使用哪种特定后退语言模型都能被用来得到必需概率和后退权重。例如,如果两个供应商提供两个独立的ARPA格式后退语言模型,可使用相同的代码来确定来自两种语言模型的概率。
图6提供了用于后退语言模型的标准ARPA格式布局的图表。在图6中,标准格式包括标题标记600和结束标记602。在标题标记600下面是包括每阶N字母的独立条目的列表604。每个条目指示在该语言模型中存在的该阶N字母的N字母数量。例如,条目606指示有N1个单字母而条目608指示有NN个N字母。
在列表604下面是一组分段,每一分段用于每阶N字母。每个分段以独立标记开头,诸如单字母的标记610、双字母的标记612、以及N字母的标记614,其中N是该语言模型中N字母的最高阶。
在N字母不同阶的每个标题下面,是该阶每个N字母一个的条目列表。每个条目包括N字母概率、N字母、以及对于与最高阶不同阶的N字母的后退权重。例如,在单字母标题610下面,条目618包括单字母620的概率622以及后退权重616。注意后退权重616与被用作双字母中上下文时的字620相关联。类似地,在双字母标题612下面的条目624包括由字v1v2组成的双字母628的双字母概率626以及与被用作三字母中上下文时的字v1v2相关联后退权重630。通常,概率和后退权重以基为10的对数格式存储。
对于最高阶N字母标题614下的条目而言,没有后退权重。因而,对于条目632仅有概率634和N字母v1...vN 636。
比较图2和图6,诸如图2所示的插值模型是否能以图6的标准ARPA格式存储并不清楚。图7提供了在本方面一实施例中用于以标准ARPA格式存储经删除插值模型的方法的流程图。
在图7的步骤700中,确定经删除插值模型的相对频率和权重λ。在步骤702选择L字母集的最高阶,其中1<L<N,N为最高阶。在步骤704,选择选定阶的L字母,并在步骤706确定选定L字母的相对频率是否大于0。如果大于0,使用等式1计算L字母的插值概率并以标准格式将其存储为L字母概率。例如,图6最高阶标题614下面的条目将用诸如概率634的被设定为与L字母的经插值概率相等的概率创建,而L字母本身将被置于诸如图6的字段636的L字母字段中。
如果L字母的相对频率未大于0,则L字母的概率不以标准ARPA格式存储。
当已在步骤708存储L字母的概率后,或者已确定L字母的相对频率未大于0之后,方法在步骤710确定是否还要考虑更多的L字母用于L字母的最高阶。如果有更多L字母要考虑,过程返回到步骤704并选择下一L字母。然后对整个新的L字母重复步骤706和708。重复步骤704、706、708和710直到已处理了所有最高阶的L字母。
一旦已在步骤710处理了所有用于L字母最高阶的L字母,方法在步骤712确定正在处理的L字母的当前阶是否大于0。如果当前正在处理的L字母的阶>0,阶数减一以移到步骤714上的下一低阶。然后在步骤716选择该下一低阶的L字母。
在步骤718,检查选定L字母的相对频率以确定它是否大于0。如果它不大于0,过程在步骤720继续,其中检查先前存储在ARPA文件中的高阶L字母,以确定当前L字母是否是高阶L字母之一的上下文。如果在步骤720发现该L字母是高阶L字母的上下文,或者在步骤718L字母的相对频率大于0,则在步骤722L字母的经插值概率存储为ARPA文件中L字母的概率,而作为经删除插值模型中L字母的函数的λ被存储为L字母的后退权重。例如,如果λ是L字母相对频率的函数,则与当前L字母相对频率相关联的λ被存储为后退权重。例如,如果L字母是双字母v1v2,与双字母相关联的具有与v1v2相对频率相等的相对频率的权重被用作双字母v1v2的后退权重,而经插值概率被用作双字母v1v2的概率。
因而,如果L字母的相对频率大于0(即它在训练数据中可见),以及如果它作为高阶L字母的上下文显现,则存储L字母。通过限制被存储的L字母为符合这些标准的那些L字母,本发明的该实施例创建了后退格式的紧凑型语言模型。
如果L字母的初始相对频率低于阈值时通过设定该相对频率为0确定了该相对频率,则尽管L字母在训练文本中具有相对频率为0该L字母可作为上下文出现。例如,如果L字母具有相对频率为0.02且阈值设为0.02,则L字母的相对频率将被设定为0。这样做就减少了插值模型的尺寸。
即使L字母具有0相对频率,如果它以高阶L字母出现为上下文,仍然存储该L字母的原因是因为该L字母出现为高阶L字母的上下文,在语言模型中将需要该上下文的后退权重。
在步骤722之后,或者如果在步骤718当前选定L字母并未具有大于0的相对频率,并且在步骤720并未被用作高阶L字母的上下文,则过程在步骤724确定是否还有更多当前阶的L字母。如果的确有更多当前阶的L字母,在步骤716选择下一L字母并重复步骤718、720、722和724。步骤716、718、720、722和724重复直到已处理选定阶的所有L字母。
当在步骤724没有更多当前阶的L字母时,过程返回到步骤712以确定该阶是否大于0。如果该阶大于0,在步骤714选择下一低阶且为新的低阶L字母重复步骤716-724。当在步骤712阶数不再大于0时,则已处理了所有阶的N字母且图7的方法在步骤726结束。
因而,图7的方法能够以ARPA后退标准格式表示经删除插值N字母模型。这使得通过经删除插值技术形成的语言模型能够集成到期望接收标准ARPA格式的语言系统中。
尽管已参照特定实施例描述了本发明,本领域技术人员将理解可在形式和细节上作改变,不背离本发明的精神和范围。