基于语言模型的信息检索和语音识别的制作方法

文档序号:2820600阅读:169来源:国知局
专利名称:基于语言模型的信息检索和语音识别的制作方法
技术领域
本发明是关于语音识别和信息检索的,更具体地讲,本发明是关于一种利用信息检索技术来匹配某种语言模型的语音识别系统以及一种利用语音识别语言模型来检索相关的文档的信息检索技术的。
背景技术
一般地讲,信息检索是一个从大量的信息存储中查找和检索与用户有关的信息的过程。在执行信息检索的过程中,检索出用户需要的所有信息是重要的(即完整性是重要的),同时限制检索出的与用户无关的信息也是重要的(即选择性也是重要的)。这些方面通常根据查全率(完整性)和精确率(选择性)来定义。在许多信息检索系统中,非常有必要在查全率和精确率两方面都获得良好的性能。
在目前的一些检索系统中,能够被查询和检索的信息是非常大的。例如,一些信息检索系统被设置为在因特网、数字视频盘和其它通用的计算机数据库中搜索信息。例如这些信息检索系统通常被做成因特网搜索引擎和库目录搜索引擎。
许多信息检索技术是众所周知的。例如当用户需要文档类或与现有文档的某个集合相似的信息时,在这些技术中,一个用户输入查询通常被表示成要么是一个明确的由用户生成的查询,要么是一个隐含的查询。然后,典型的信息检索系统在庞大的数据存储中在单词级或在术语级上搜索文档。这些文档中的每一个都被指定了一个关联(或相似)度,信息检索系统向用户提供被搜索的文档的一定子集,通常该子集具有一个超过某给定的门限的相关度。
目前一些著名的信息检索技术或方法包括全文本扫描、签名文件的使用、转换、矢量建模和聚类以及tf*idf(术语频率*反相文档频率)。在全文本扫描中,布尔函数被用在一个查询中以确定被搜索的某个文档是否包含某些词串,在这种扫描技术中,通常是搜索文档的每个词以查看它是否满足搜索串(也就是该查询),然后,当发现词串不匹配时,将搜索串向右边移动一个位置。该系统已经被适配,可以使用对这个查询进行预处理的其它方法,例如当发现词串不匹配时,将搜索串向右边移动多个位置。
签名文件的使用涉及到从被检索的文档中去除常用的词,并把不常用的词变为词干。每个被搜索的文档都产生一个位串(即一个签名)。各种文档的这些签名被顺序地存储在与这些文档本身相分离的一个文件中。
转换技术涉及到构造一关键词列表以表示每个文档。这些关键词存储在一个索引文件中。对于每个关键词都包含有一个代表合格文档的指针列表。然后,该查询会沿着索引进行,并用指针来识别相关的和合格的文档。
矢量建模和聚类涉及到把相类似的文档划分成被称为簇的组(这种技术也能够应用于术语而不是文档中)。为了生成一个簇,把常用的词去除并把剩余的词变成词干(这包括前缀和后缀的去除)以形成索引。同义词一般也被放在一个概念类中,该概念类中的术语可以用频率、特殊性、相关度等来加权。索引被用来将这些文档表示为t-维空间中的一个点。然后,这些点被用一个相似性矩阵划分为多个组,此矩阵通常是通过迭代过程生成的。为了搜索簇,一个查询被表示为一个t-维矢量并与簇中心进行比较。一个簇至查询相似性函数被生成并被用来提出相关的文档。被提出(或被检索)的那些文档通常是那些具有超过某一预定义的门限值的相似性值的文档。
为了获得更好的性能,在一些信息检索技术中,语义信息被用来捕获更多关于信息存储中每个文档的信息。在这种系统中,自然语言处理被用来将查询的语义内容与被检索的文档的语义内容进行匹配。语句或词组被用作对所检索的文档进行索引的术语。隐含的语义索引涉及到构成一个术语/文档矩阵,在该矩阵中,一个指定文档中的术语出现的频率被标记在矩阵中。小的奇异值通常被移去而剩余的术语的频率矢量则被映射。查询也被生成术语的频率矢量,而且根据包含这些文档的术语频率矢量的矩阵被映射。为了获得余弦相似性测度,这些文档使用归一化线性产品进行分类。
使用语义信息的另一类信息检索技术是神经网络。实际上,对应于辞典中的每一个概念,构造一个辞典隐含层中的一个节点。然后,利用遍历激活方法传递搜索。
术语频率*反相文档频率(tf*idf)是被用来确定文档的相关度的另一种技术。首先,在一个查询中所使用的术语根据该文档来测量以确定在该文档中那个术语的频率。可以肯定,当文档中的术语的频率增加时,与该文档和该术语相关联的程度也增大。同样可以肯定,当术语出现在其中的文档数量增加时,用来区分各文档的术语的有效性降低了。因此,指定术语的频率也根据整个数据存储来测量以确定在所有的文档中该术语的频率级。这两种测量方法被用来确定在被检索的数据存储中任意给定的文档的相关度。
当检索可访问的数据库变得越来越多,以及当这些数据库变得越来越大时,与信息检索有关的问题也变得越来越多。换句话说,在检索过程中,利用较大的和数量较多的数据库通常难以获得可接受的超过查全率和精确度的性能。
为了生成一个发言意义上的副本,语音识别系统使用被包含在讲稿中的声音和词语(或语言)信息的合成体。在语音识别系统中,一个识别器使用的语言信息统称为一个语言模型。
目前许多语音识别系统使用具有统计特性的语言模型。这些语言模型通常使用已知的技术并依据被提供给语言模型生成器的大量的文本训练数据来生成。例如,一个N-gram语言模型可以利用已知的例如,Katz技术或二项式后分布补偿技术。在使用这些技术的过程中,语言模型估算出词w(n)服从词序列w1,w2,…w(n-1)的概率。这些概率值共同组成N-gram语言模型。
有许多已知的方法能够用来从提供给语言模型生成器的大量文本集合中估算出这些概率值,对本发明来说,使用确切的方法进行操作并不重要。重要的是该语言模型通过允许识别器利用语言中有关的词序列的似然性、容许性或有意义性等信息,在提高识别过程的精确度和速度上起着重要的作用。此外,捕获了更多的有关语言的信息的语言模型会产生更快和更精确的语音识别系统。
通常,为了特定的目的,被用来训练语言模型的庞大的训练文本集合被专门收集起来并提供给该语言模型生成器。因此,语言模型通常被生成来满足某些广泛的使用类别。一些使用类别可以是常用的英语语言、办公通信和体育等。
然而,任何一个具体的用户的兴趣,以及由此被这个具体的用户使用的语言通常可以是比这些广泛的语言模型种类更具体的语言。因此,由这种语言模型生成的概率估算值不可能精确地模拟被该用户使用的实际语言。而且,由于用户的兴趣种类几乎是不受限制的,因此,很难为每个用户生成非常具体的语言模型。
一些现有系统已经试图根据应用的需要来对该语言模型进行适配来解决此问题。在适配期间,由该语言模型分配给词序列的概率估算值被调整来更紧密地反映用户的实际语言。被用于适配的文本数据是由用户指定的。例如,这种文本数据可以由被此用户指定的文本或者被该用户在文档中所生成的文本、被该用户从文档中所读取的文本、或被该用户在文档中所存储的文本构成。然而,为了精确地适配一个语言模型,必须馈送大量的数据。而该用户所指定的可以使用的数据通常是很少的,不能快速地对该语言模型进行适配,或者不能生成一个有意义的、用户指定的语言模型。

发明内容
一种用在能对第一类较小的数据存储和第二类、较大的数据存储进行访问的语音识别系统中的语言模型。该语言模型依据在第一类数据存储中所包含的信息,通过对信息检索查询进行公式化以及对第二类数据存储执行查询来适配。从第二类数据存储中所检索到的信息被用来适配该语言模型或生成该语言模型。
在一个首选实施例中,通常较小的第一类存储被认为是目前正在被语音识别系统的用户所使用的比较有代表性的语言。而通常较大的第二类存储,从百比分的角度看,很可能代表了用户较少使用的语言。
此外,语言模型被用来从第二类数据存储中检索信息。语言模型依据第一类数据存储中的信息和依据第二类数据存储中的信息来建造。在给定第一种语言模型和第二种语言模型的情况下,可以确定在第二类数据存储中的文档的复杂度(perplexity)。文档的相关度依据第一复杂度和第二复杂度来确定。具有超过门限级的相关度的文档被检索出来。
在一个实施例中,第一类数据存储代表由用户提出的查询或请求,而第二类数据存储代表被检索的库。


图1是一个用于实现本发明的一个系统的示例环境的方框图。
图2是关于本发明的一个系统的更加详细的方框图。
图3是一个说明一种用于本发明的一个首选实施例中的文档检索技术的流程图。
图4是一个说明一种用于本发明的另一个首选实施例中的适配语言模型的技术的流程图。
具体实施例方式
图1及与其相关的讨论是要对一种适当的计算环境提供一种简便的、一般的描述,在这个计算环境中本发明得以被实现。尽管未被要求,但是本发明将至少部分地使用计算机可执行的指令例如,被个人计算机所执行的程序模块,的常用上下文来描述。通常,程序模块包括用来执行指定的任务或实现指定的抽象数据类型等的常用程序、对象、元素或数据结构等。而且,了解本领域的那些人应知道本发明可以用其它的计算机系统配置来实现,包括手持设备、多处理器系统、基于微处理器的或可编程的用户电子设备、网络PC、小型计算机、大型计算机等等。本发明也可以在分布式计算环境中实现,在该环境中,任务由与通信网络相连接的远程处理设备来执行。在分布式计算环境中,程序模块既可以存储在本地存储器存储设备中,又可以存储在远程存储器存储设备中。
参照图1,用来实现本发明的一个示范性系统包括一个用于一般用途的计算设备,该计算设备以传统的个人计算机20的形式来表示,计算机20包括处理单元21(可以包含一个或多个处理器)、系统存储器21和把包含系统存储器在内的各种系统元件耦合到处理单元21中的系统总线23。系统总线23可以是包含存储器总线或存储控制器、外围设备总线和使用任意种类的总线结构的本地总线等几种总线结构的任意一种类型。系统存储器包括只读存储器(ROM)24、一个随机存取存储器(RAM)25。例如在启动过程中,一个包含了在个人计算机20中的两元件间帮助传递信息的基本例行程序的基本输入/输出26(BIOS)存储在ROM 24中。个人计算机20还包括一个读写硬盘(未给出)的硬盘驱动器27、一个对可装卸式磁盘29进行读写的磁盘驱动器28、以及一个对可装卸式光盘31例如CD ROM或其它光媒介等进行读、写的光盘驱动器30。硬盘驱动器27、磁盘驱动器28和光盘驱动器30分别地通过硬盘驱动器接口32、磁盘驱动器接口33和光盘驱动器接口34与系统总线23相连。这些驱动器及与其相关的计算机可读媒介为个人计算机20提供了计算机可读指令、数据结构、程序模块和其他数据的非易失性存储。
尽管在这里所描述的示范性环境使用的是一个硬盘、一个可装卸式磁盘29和一个可装卸光盘31,但是能够存储被计算机所询问的数据的其它类型的计算机可读媒介,如盒式磁带、快速存储卡、数字视频盘、伯努里式磁带盒,随机存取存储器(RAM)、只读存储器(ROM)等等,也可以使用在示范性操作环境中,这一点应该被精通本领域的人认同。
一些程序模块可以存储在包含操作系统35、一个或多个应用程序36、其他程序模块37和程序数据38的硬盘、磁盘29、光盘31、ROM24或RAM 25中。用户可以通过输入设备如键盘40和点击设备42而向个人计算机20输入命令和信息。其它的输入设备(未绘出)可能还包括麦克风、操纵杆、游戏盒、卫星电视天线、扫描仪等等。这些输入设备和其它输入设备通常通过与系统总线相连的串行接口46与处理单元21相连,但是可以通过其他接口如并行口、游戏口或通用串行总线(USB)相连。监视器47或其他类型的显示设备也被通过一个接口,如视频适配器48与系统总线23相连。除了监视器47以外,个人计算机典型地可以包括其他的外围输出设备(未绘出),如扬声器和打印机。
个人计算机20利用与一个或多个远程计算机如远程计算机49的逻接连接可以在网络环境中运行。尽管在图1中仅绘出了一个存储器存储设备50,但是远程计算机49可以是另一台个人计算机、或一台服务器、一个路由器、一台网络PC、一台同类设备或其他网络节点等,通常包含了上述所描述的与个人计算机20有关的大部分元件或所有元件。图1中给出的逻辑连接包括局域网(LAN)51和广域网(WAN)52。这些联网环境在办公室、企业级计算机网络内联网和Internet中是常见的。
当在LAN联网环境中使用时,个人计算机10通过网络接口或适配器53与局域网51相连。当在WAN联网环境中使用时,个人计算机20通常包括一个调制解调器54或用来建立与广域网52如Internet通信的其它设备。调制解调器54可以是内置的或外置的,它通过串行接口46与系统总线23相连。在一个网络环境中,被描述的与个人计算机20有关的程序模块或者其中的各部分可以被存储在远程存储器存储设备中。应该承认图中描绘的网络连接是示范性的,可以使用其它的设备在两个计算机之间建立一个通信链路。
按照本发明的一个方面,图2是一个描绘了语音识别信息检索(SR/IR)系统的方框图。SR/IR系统60包括麦克风62、模-数(A/D)转换器64、用户输入设备66、SR/IR处理器模块68、语言模型(LM)存储模块70、主题数据存储器72、普通数据存储器74和用户输出设备76。
应该注意,整个系统60或系统60的部分能够在图1中所描绘的环境下被实现。例如,麦克风62通过一个合适的接口和A/D转换器64最好能够提供给个人计算机20作为一个输入设备。用户输入设备66最好能够被作为键盘40、鼠标42或其它任何合适的输入设备来加以实现。语言模型存储模块70最好存储在图1中所描绘的任何合适的存储器设备中,或者根据图1所描述的任意一种数据输入机制被提供给SR/IR模块68。SR/IR模块68最好是计算机20中的一个硬件模块(如一个与CPU 21分开的或在CPU 21中被实现的专用的语音识别或信息检索处理器),或者是一个被存储在图1中所描绘的任意一个信息存储设备中的并且能够被CPU 21或任何其它的合适的处理处访问的软件模块。
主题数据存储72最好也被存储在图1中所描绘的任意一个合适的存储器设备中,或者是能够被图1所描绘的系统所访问。而且,对计算机20而言,主题数据存储器72不必非得是本地的,但是必须能够只被计算机20所访问。例如,主题数据存储器72可以被部分地或全部地存储在存储器50中。一个被创建的指定文档以及被用户已建立的其它文档存储在主题数据存储器72中。当然,应该承认,主题数据存储器72中所包含的数据能够按照任意一种标准来安排,如主题、文档类型(例如,信件、备忘录、电子邮件传输、传真等等)、或任何其它合适的标准。
普通数据存储74最好是一个较大的数据库,比主题数据存储器72大些,并且是能够被图1中所描绘的系统所访问。例如,普通数据存储可以是通过广域网52或局域网51来访问的任何数据库或数据库的集合。
此外,输出设备76在一个首选实施例中可以被实施为监视器47或者打印机,或者任何其它合适的输出设备来实现。
在任何情况下,为了描述本发明,系统60描绘了一个适合于实现语音识别和信息检索两者的系统。然而,应该注意,为了配合下面所描述的有关本发明的各种特征和各个方面,系统60可以被配置成只用来实现语音识别或者是信息检索。
适配语言模块现在描述语系统60用来音识别。在识别语音的过程中,系统60利用声音信息以一种已知的方式被训练。系统60利用这种信息去后面去识别通过麦克风62输入到系统60中的发言。简而言之,语音按照被用户提供给麦克风62的声音信号的形式被输入到系统60中。麦克风62把声音信号转换成模拟电子信号,该模拟电子信号被提供给A/D转换器64。A/D转换器64把模拟语音信号转换成数字信号序列,该数字信号序列被提供给SR/IR模块68。
在一个首选实施例中,SR/IR模块68包含一个样本抽取模块,该样本抽取模块是一个对数字信号执行频谱分析和对频谱的每个频段的幅度值进行计算的传统的数组处理器。样本抽取模块把这些数字信号分成包含许多数字样本的帧,这些数字样本被转换成一个包含许多频段的概率值的输出概率分布的序列。这些输出概率分布按照已知的方法被处理以获得可能的代表了由麦克风62所接收到的语音的语音单元(如音素、词或词序列)。
在一个首选实施例中,SR/IR模块68识别出N个可能代表了所给出的N个最大概率的词或词序列的词假设。然后,SR/IR模块68访问LM存储模块70。在LM存储模块70中存储的语言模型被用来估算某个词w(n)跟从词序列w1,w2,…(w(n-1))的概率。然后,为了获得该语言表达的最大概率的词或词序列,这些概率被用来在这N个最大的假设中执行挑选。这个最大概率的假设在用户输出设备76中输出。
存储在LM存储模块70中的语言模型可以初始地由SR/IR模块68建立,或者利用一种数据输入机制如图1中所描述的那些(例如利用一个软盘)被加载到LM存储模块70中。在由SR/IR模块68建立语言模块的这些实施例中,一个庞大的训练文本集被提供给SR/IR模块68。利用那个训练文本集,SR/IR模块68按照一种已知的方法建立语言模型并将其存储在LM存储模块70中。
此外,应该注意到,多个语言模型能够存储在LM存储模块70中。例如,一些与主题有关的语言模型能够被存储在LM存储模块70中,并依据用户的输入被SR/IR模块68所检索,以便利用语音识别系统建立指定文档的主题。
在任何情况下,希望为了获得一个被用户使用的精确地模拟实际语言的更快和更精确的模型,存储在LM存储模块70中的这个指定的语言模型或多个模型应该根据系统60中用户实际所使用的词被进行适配。
根据本发明的一个方面,图3描述了一种用来实现对存储在LM存储模块70中的语言模型进行适配的技术。语言模型首先被系统60所接收。该语言模型既可以主题有关的、或用户有关的、或应用有关的,也可以简单地是一个通用的语言模型。正如前面所讨论的,语言模型既能够由系统60建立并被存储在LM存储模块70中,也能够简单地通过一种合适的输入机制加载到LM存储模块70中。接收语言模型的步骤由图3中的方框78所描述。
为了适配语言模型,系统60最好使用存储在主题数据存储器72中的信息作为用来适配存储在模块70中的语言模型的文本集的一个部分。主题数据存储器72最好包括一个当前正在使用的文档,本用户所使用的其它文档,或者本用户读取、存储、或本用户用作识别与当前任务有关的其它文档。
通常,这种用户有关或当前主题有关或任务有关的数据量是不足以快速地对存储在模块70中的语言模型进行适配,或者不足以生成一个更好的用户/任务有关的语言模型。因此,系统60利用存储在主题数据存储器72中的用户/任务有关的信息来生成一个基于普通数据存储74的查询。而普通数据存储74可能包含可以通过互联网(例如,通过WAN52)来访问的一个或多个数据库、一个资料馆数据库或者可以通过系统60(如通过LAN 51)来访问的另一个合适的大型数据库。基于普通数据存储74的查询由图3中的方框80所描述。
用来生成和执行普通数据存储74中的查询这种指定的信息检索技术就本发明的这个特征来说,并不是关键的技术。而且,任何合适的查询建造技术和信息检索技术都能够使用。只应该注意到,按照本发明的这种技术,执行适配同返回更多相关的文档的信息检索技术一同执行会更好。
另外,由信息检索查询识别出的这些文档能被检索到。这由方框82所描述。在一个首选实施例中,按照图3中所描绘的虚线84,处理过程简单地延续到方框86中。在那个首选实施例中,作为基于普通数据存储74所执行的查询的结果,存储在模块70中的主题语言模型根据存储在主题数据存储72中的信息,以及从普通数据存储74中检索到的信息进行调整或适配。因此,由语言模型生成的概率估算值被按照包含了主题数据存储72中的信息和从普通数据存储74中检索到的信息这两者的文本集来进行调整。这就为适配存储在模块70中的语言模型提供了一个比简单地使用存储在主题数据存储72中的信息大得多的文本集。由于适配文本集比较大,因此,由语言模型上生成的概率能够被更好地估算,而且由此生成的语言模型产生一种更好的(即更快和更确切)模拟用户实际使用的机制。这个适配过程由方框86所描述。
对语言模型进行适配的方法能够采用某些方法中的任意一种。在一个首选实施例中,只有一个被普通数据存储74中的查询所检索到的文档的子集用于适配存储在模块70中的语言模型。而且,由普通数据存储器74中的查询所检索到的这些文档能够与那些已经包含在主题数据存储72中的文档进行加权。被检索到的这些文档最好少与那些在数据存储器72中所存储的文档进行加权。因此,被检索到的文档对模块70中所存储的语言模型产生的影响比已被存储的文档(或可能与用户相关的已知的文档)对模块70中所存储的语言模型产生的影响要小。
另外,能够使用另外一种方法对语言模型进行适配。查询的结果能够被用来建立一个与模块70中所存储的语言模型组合在一起的语言模型。这种组合方法能够利用任何已知的平滑技术,如插入、删除后插入或任何其它合适的技术来被实现。在本实施例中,删除后插入技术被用来适配模块70中所存储的主题语言模型,从普通数据存储器74中所检索到的文档和主题数据存储72器中所存储的文档被按如下进行加权λPr+(1-λ)Pt其中Pr是一个由语言模型根据被检索到的文档生成的概率值;Pt是一个由语言模型根据主题数据存储72中所存储的文档所生成的概率值;以及λ是一个删除后插入型参数,一个最好由实验方法来确定其数值的参数。如果能确保信息检索技术是非常精确的,那么λ会取较大的数值(如0.8或0.9)。然而,当不能确保信息检索技术是非常精确时,λ可能取一个较小的数值(如0.4或0.5)。然而,λ的任何取值如0.1~0.9可能都是合适的。
在另外一个实施例中,λ的数值随着查询数量的增加而递增。换句话说,当已被执行的查询数有所增加时,由于主题数据存储器72中所存储的信息的数量可能是较大的,因此对语言模型进行适配的文本集可能会变得要么较大,要么较精确。因此,由信息检索技术检索到的文档可能会比那些初始就被检索到的文档具有更大的相关度。因而,λ的数值能够随着查询的数量的增加而递增。
此外,还应注意到,有几种语言模型能够由所检索到的数据来建立。例如一种语言模型能够利用相关度最好的100个文档来建立,而另外一种语言模型能够利用相关度最好的200个文档来建立,如此等等。然后,利用所检索到的文档建立的多个语言模型能够与来自主题数据存储72中的利用来自通用语言模型中的已知的相关的数据生成的语言模型组合起来。使用删除后内插技术的语言模型组合能够被表示为∑λiPi这里,Pi是由第i个语言模型生成的概率,而0<=λi<=1是用于第i个语言模型的插入权值且∑λi=1。
一旦对语言模型进行适配,那么已被适配或调整的语言模型被用于语音识别中。这由方框88所描述。
按照本发明的首选的一个方面,系统60被配置为自动地和按间隔地重新生成一个主题有关的查询,并依据普通数据存储器74中所存储的信息管理此查询。例如,在这个首选实施例中,模块70中所存储的语言模型在执行过程中(如当用户正在使用系统60时)被适配。因此,当系统60刚被加电时,它可以被配置成首先执行查询和对语言模型进行适配,然后每次建立一个新的文档时也如此执行。然而,最理想的情况是,系统60被配置成甚至当一个文档正在被建立时,也生成一个新的查询和间隔地对该语言模型进行适配。因此,系统60能够被配置成,要么根据每个预定义的词数或每个预定义的时间间隔,要么根据其它任何标准来重复执行该查询。
无论什么标准,都用来设置一个查询门限。因此,由系统60决定查询门限是否已经被达到。如果达到,系统60产生另一个查询并按照方框80所描述的在普通数据存储中执行该查询。如果查询门限还没有达到,系统60按照正常情况简单地继续执行语音识别。这个过程由图3中的方框90和92所描述。
根据本发明的其它首选特征,也可以使用其它的信息对模块70中所存储的语言模型进行适配。这些特征由图3中的方框94、96和98来描述。例如,在一个首选实施例中,当该查询已经由普通数据存储器74中的信息执行完后,由该查询返回的每个文档的相关度就被确定。此时,这些文档按照相关度进行排序。这由方框94所描述。然后,被返回的一个文档子集(相关度超过关联门限值的那些文档)被用来适配语言模型。此外,按照方框96所描述的,被返回的这些文档能够根据相关度进行加权。然后,这些文档按照所加的权重被用来对模块70中所存储的语言模型进行适配。
在本发明的另一个首选实施例中,也可以使用其它信息对该语言模型进行调整,例如,系统60可以被配置来识别指定的应用,然后用户利用它来准备一个文档。例如,如果用户是在执行字处理应用中,那么该用户可以产生一个比该用户是在进行E-mail应用中更加正式的文档。系统60能够被配置来识别这种应用,并且也可以在利用普通数据存储器72中所包含的信息生成查询的过程中使用该信息,以便查找到较正式的文档(即有较正式的词模式和词序列的文档),或者直接地对由该查询所检索到的较正规的文档而不是所检索到的不太正规的文档进行更大的加权。另外,如果该用户不再使用备忘录模式,并由此正在生成一个内部备忘录,那么系统60能够被配置来在利用普通数据存储器74中所存储的信息生成查询的过程中,只对来自主题数据存储器中的相类似的备忘录文件进行检索。
按照本发明,也可以使用许多其它的参数。例如,在上班期间,用户可能想描述较为正规的文档,例如公司信件和备忘录文件,而在白天或晚上较晚的时候,用户可能想生成不很正规的文档,例如个人信件。因此,根据被用户正在建立的文档的时间,利用对来自主题数据存储器72中的、被建立在大致相同的时间上的文档进行检索,系统60能够被配置来生成该查询。系统60也能够被配置来简单地对根据查询所检索到的相类似的文档进行比其它文档更大的加权。
也应该注意到,有时可以不考虑该用户是否正在使用系统60的语音识别特性就对存储在模块70中的语言模型进行修正。只要系统60被加电,它就可以被配置成能够重复依托被存储在普通数据存储器74中的信息所进行的查询并能按照任何给定的准则对存储在模块70中的语言模型进行修正。
由此可见,本发明的语言模型修正特性可以被用来快速而有效地扩大用户指定的、可用的用于生成或提高存于模块70中的语言模型的数据的量。此用户指定的可用数据首先被用做一个对一个大信息存储器所进行的查询,以便识别出与用户指定的文档相类似的文本或文档。由此,用于生成或修正用户指定的、存于模块70中的语言模型的文本集合就是一个比实际需要大得多的集合,而语言模型所提供的概率也可被更好地估计出来。另外也应当注意到,创建或修正语言模型所使用的具体的方式,以及执行信息检索所使用的具体技术对于本发明的这些方面来讲都不是关键的,任何合适的技术都可以使用。
使用语言模型提高信息的检索图4是一个流程图,它描述了一种技术,系统60能利用此技术,提高信息的检索。正如上面所述,在截止到某一单词的单词序列被给定(即单词的历史H被给定)的情况下,n元统计语言模型对该单词的概率进行估计。n元统计模型只认为在历史H中的前面n-1个词会对下一个词的概率产生影响。例如,bi-gram(或2元)语言模型认为只是前一个词会对后一个词产生影响。因此,在n元语言模型中,词出现的概率可被表示为如下方程式1P(w/H)=P(w/w1,w2,...w(n-1))其中,w是感兴趣的词;w1是词序列中的词w前面的第一个词;w2是词w前面的第二个词;以及w(n+1)是词w前面的位于第n-1个位置的词。
此外,词序列的概率依据被给定了历史的每个词的概率乘积来确定。因而,词序列w1…wm的概率可被表示为如下
方程式2P(w1...wm)=Πi=1N(P(w1/Hi))]]>当讨论语言模型时,词序列的复杂度的概念也是已知的。复杂度是表示语言模型的平均分支系数的一个统计量。换句话说,复杂度是一个在给定的感兴趣的词或词序列的情况下,被语言模型预测到的可能词的平均数的统计量。因而,在给定其历史的情况下,词序列w1…wm的复杂度能被表示为如下方程式3Perp=exp[-1MlogΠP(wi/Hi)]]]>=exp[-1M(Σi=1Mlog(Pwi/Hi))]]]>此外,对于一个已给定的语言模型LM,词序列X的复杂度可表示如下方程式4Perp(x‾/LM)=exp[-1MΣi=1Mlog(P(x‾/LM))]]]>因此,在给定语言模型的情况下,词序列的复杂度近似等于在给定词序列和它的历史的情况下,被该语言模型所预测到的词的平均数。这个数值会随着所使用的指定的语言模型的预测能力而变化。建造语言模型所使用的特定方法以及所使用的指定的语言模型对本发明而言不是关键的部分。
由于本发明涉及到语言模型,为了提高被系统60执行的信息检索的正确度,本发明的一个方面利用了复杂度的概念。为了实现此功能,系统60首先接收或创建一个通用语言模型,如图4中方框100所示。于是,系统60能够用语言模型生成器来配置。在这种情况下,最好给语言模型生成器提供一个训练数据的庞大的文本集,依据此庞大的文本集,在任何已知的和合适的条件下,语言模型生成器能产生一个通用的语言模型。训练数据最好是在普通数据存储74中所存储的信息(或信息的子集)。此时,该语言模型被存储在模块70中。然而,此外,也能够给系统60提供一个直接地装载到模块70中的、传统的、商业上可使用的通用语言模型。在另一种方法中,系统60从另一个庞大的文本数据集中而不是从普通数据存储74中的数据中生成通用的语言模型。在首选的实施例中,系统60既可以生成一个三元语言模型,也可以被提供一个三元语言模型。
然后,系统60接收或创建一个与用户所感兴趣的指定的主题相关的主题语言模型。其次,系统60能够被提供一个商业上可用的主题语言模型,或者能够生成和训练一个它自己的主题语言模型。
为了生成一个主题语言模型,用户最好给系统60提供与指定的感兴趣的主题相关的训练数据。例如,用户可能有几篇文章,而且可能希望从普通数据存储74中所存储的信息中检索出其它的类似的文章。也就是说,用户能够简单地提出一个搜索查询或对系统提出请求。利用相关的文章,系统60也可以生成主题语言模型,也就是说,使用那些相关的文章的一部分文本表示一种利用在普通数据存储74中所存储的信息的查询,而依据此查询所检索到的信息与用户所提供的信息组合在一起被用来生成该主题语言模型。在另一个首选实施例中,当用来生成主题语言模型的训练数据不足够多时,先使用这些不足的数据生成主题语言模型,然后与通用语言模型组合在一起获得新的主题语言模型。组合技术对本发明而言不是关键的部分,该技术能够使用平滑技术例如插入、删除后插入或者其它任意合适的技术来实现。接收或创建主题语言模型的过程由图4中方框102所描述。
在通用语言模型和主题语言模型被系统60生成或接收之后,系统60负责给被认为是处于信息检索过程中的普通数据存储74中的每个文档(或文档的一部分)分配一个相似度。为了实现此目的,系统60首先从普通数据存储74中选取一个文档。这由方框104所描述。
其次,对于通用语言模型,系统60确定该文档的复杂度,这由方框106所描述。它可以表示如下
方程式5Perp(doci/GLM)其中,GLM代表通用语言模型;而doci代表被选取的文档。
然后,针对主题语言模型,系统60确定该文档的复杂度,这由方框108所描述。它可以表示如下方程式6Perp(doci/TLM)其中,TLM代表主题语言模型。
然后,依据方框106和108中所确定的复杂度,针对被选取的文档,系统60确定相关度。相关度最好用两者的复杂度的比值来表示,如下所示方程式7Perp(doci/GLM)Perp(doci/TLM)]]>回想一下,一个文档(如一个词序列)的复杂度,在给定的一个指定语言模型的情况下,表示在给定该文档的情况下该语言模型可能预测到的词的近似的平均数。因此,如果复杂度的数值偏高,那么,根据文档中所使用的术语,用来生成该语言模型的训练数据还没有将该语言模型训练好。因而,在训练中的文档不可能与被用来生成该语言型的训练数据相关联。然而,如果该文档的复杂度低,那么,根据文档中所出现的术语,用来生成该语言模型的训练数据可能已经将该语言模型训练好了,而且,该文档可能与被用来生成该语言模型的训练数据相关联。
因此,在一个首选实施例中,相似度仅能利用主题语言模型来返回。然而,在一个较好的首选实施例中,能够利用主题语言模型和通用语言模型两者。其原因为不管训练中的文档是否是关联的文档,但该文档中的一些语言结构可能会或多或少地出现一些。希望即使利用主题语言模型的复杂度所获得的原始相关度偏高,但信息检索系统会不加区别地对待那些相似的文档。如果情况是这样,而且在感兴趣的文档中所使用的语言结构相当少,那么,由通用语言模型所返回的复杂度值也将是高的。利用通用语言模型和主题语言模型所确定的复杂度比值,系统实际返回一个由基线(通用语言模型)所确定的数值,而该数据要比主题语言模型中直接利用文档的复杂度所返回的原始数值更有意义。因而,将相关度表示为两个复杂度的比值可以确保会产生更加精确的相关度。
类似地,不论所感兴趣的主题如何,如果在所感兴趣的文档中使用的语言结构是相当普遍的,那么,由主题语言模型所返回的复杂度数值将是相当低的。尽管该文档可能与其它文档不是非常相关的。但是,由通用语言模型所返回的复杂度数值也可能将是非常低的。因此,将相关度表示为两个复杂度的比值可以确保信息检索技术会对相关度较高的文档进行检索。
依据复杂度确定所选取的文档的相关度的步骤由方框110所描述。作为两个复杂度的比值,关联因子的表达式可以扩展如下方程式8relevancy=exp[-1MΣi=1Mlog(PG(wi/Hi))]exp[-1MΣI=1Mlog(PT(wi/Hi))]]]>=exp-[1M(Σi=1MlogPG(wi/Hi)-Σi=1MlogPT(wi/Hi))]]]>其中,Pt=对于主题语言模型而言,在给定词序列的历史的条件下该词序列的概率值;以及PG=对于通用语言模型而言,在给定词序列的历史的条件下该词序列的概率值。
一旦相关度已经确定,系统60便判断该相关度是否满足相关度门限值。相关度门限值可以通过用户输入进行预定义或依据由系统60所检索到的文档的数量,或者依据其它的标准进行适配。系统60仅仅判断该文档是否具有足够高的相关度以便将其提供给用户。这由方框112所描述。
如果该文档不能满足相关度门限值,那么,该文档被提供给用户,同时继续执行方框116的操作。然而,如果该文档能满足相关度门限值,那么,对于该文档进行检索并且该文档或者被存储在主题数据存储72中,或由输出设备76提供给用户。这由方框114所描述。
然后,系统60判断是否需要检查在普通数据存储74中的其它的文档。如果需要检查其它的文档,那么处理返回到方框104中,在该方框中选取另一个文档并确定该文档的相关度。如果设有更多的文档需要被检查,那么,继续执行方框118中的处理。这由方框116所描述。
一旦所有的文档(或者文档的一个子集)已经检查完了,系统60便能够或者将这些文档提供给用户并将其存储起来,或者按照相关度将文档进行排序。在按照相关度对文档进行排序的实施例中,系统60按照为每个文档所确定的相关度直接地将这些文档进行排序。然后,系统60能够或者把按照相关度已被排序了的文档提供给用户,或者依据此排序直接地提供一个被检索的文档的子集。这由方框118所描述。
可以看到,利用这种技术,通用语言模型仅需要依据存储在普通数据存储74中的信息或者依据该信息的一些有代表性的样本被生成一次。另外,当普通数据存储74中的信息的内容发生变化时,可以间隔地适配通用语言模型。针对由用户所提供的每个查询,主题语言模型最好被生成一次。
本发明的一个方面是提供了一种技术,该技术利用信息检索来提高和适配语音识别过程中所使用的一个或多个语言模型。为了寻找相似的文档以扩大用来创建或适配语言模型的训练数据,系统利用已经由用户所生成的文本的已有的历史来直接地创建和适配语言模型,并按照普通数据存储直接地传输一个主题有关的查询。这就提供了一个比过去所使用的粗略的、预先设定好的、与主题有关的语言模型要精确得多的语言模型。基于数据量庞大的数据存储中的查询最好也被周期地或间隔地重复执行,以便按照递增的精确度获得动态地被适配的语言模型。
本发明的另一个方面是利用语言模型来提高信息检索技术。系统最好获得一个通用语言模型和一个主题语言模型(要么利用上面所描述的技术,要么利用其它的已知技术)。然后,系统依据由所获得的语言模型返回的复杂度数值,计算出被检索到的文档的相关度。由于语言模型是与上下文相关的模型,因此,为确定文档的相关度,系统不仅要考虑词本身,而且要考虑这些词所出现的上下文。这不仅提高了信息检索技术的查全率而且也提高了信息检索技术的精确度,从而对被检索的文档中出现的相关信息提供了更加精确的似然(或概率)估算,并由此给信息检索系统提供了更好的性能。
尽管本发明已结合着首选实施例进行了详细的描述,精通本领域的人会知道,在不背离本发明的实质和范围的情况下对本发明在形式和细节上进行适配是可能的。
权利要求
1.一种从与第一类数据存储器中所存储的信息相关的第二类数据存储器中检索信息的方法,其中第二类数据存储器比第一类数据存储器中的数据量要大,该方法包括依据在第一类数据存储器中所存储的信息来提供第一种语言模型;提供第二种语言模型;在给定第一种语言模型的情况下,确定在第二类数据存储器中的一个文档的第一复杂度;在给定第二种语言模型的情况下,确定该文档的第二复杂度;依据第一复杂度和第二复杂度,确定该文档的相关度;以及依据此相关度,有选择地对该文档进行检索。
2.权利要求1的方法还包括针对在第二类数据存储器中的多个文档,重复执行确定第一复杂度和确定第二复杂度以及确定相关度的步骤;以及从具有能满足门限级的相关度的多个文档中检索出相关的文档。
3.权利要求1的方法,其中提供第二种语言模型的步骤包括依据在第二类数据存储器中所存储的信息来提供第二种语言模型。
4.权利要求1的方法,其中确定相关度的步骤包括确定第一复杂度和第二复杂度,彼此的比值;以及依据该比值,确定相关度。
5.权利要求2的方法,其中对相关的文档进行检索的步骤包括按照给每个文档所确定的相关度,将文档进行排序。
6.一种从与第一类数据存储器中所存储的信息相关的第二类数据存储器中检索信息的方法,其中第二类数据存储器比第一类数据存储器中的数据量要大,该方法包括依据在第一类数据存储器中的信息来提供第一种与上下文相关的语言模型;依据在第二类数据存储器中的信息来提供第二种与上下文相关的语言模型;依据被给定的文档的第一种语言模型的预测能力和依据被给定的文档的第二种语言模型的预测能力来确定在第二类数据存储器中的文档的相关度;以及如果该相关度满足相关度门限值,那么对该文档进行检索。
7.权利要求6的方法,其中依据第一种语言模型和第二种语言模型的预测能力来确定文档的相关度的步骤包括依据被给定的文档的第一种语言模型的分支系数和依据被给定的文档的第二种语言模型的分支系数来确定相关度。
8.权利要求6的方法还包括针对在第二种数据存储器中的多个文档,重复执行确定相关度的步骤;将所确定的相关度与相关度门限值进行比较;以及对具有能满足相关度门限值的相关度的文档进行检索。
9.权利要求8的方法还包括依据能满足相关度门限值的一些文档,对相关度门限值进行适配。
10.权利要求6的方法,其中提供第一种语言模型的步骤包括依据在第一类数据存储器中的信息,对第二类数据存储器进行查询;以及依据在第一类数据存储器中的信息和依据由该查询从第二类数据存储器中所检索到的信息,构造第一种语言模型。
11.权利要求6的方法,其中提供第一种语言模型的步骤包括依据在第一类数据存储器中的信息,构造初级语言模型;以及将初级语言模型与第二种语言模型组合起来,获得第一种语言模型。
12.权利要求6的方法,其中提供第二种语言模型的步骤包括依据在第二类数据存储器中所存储的所有信息的子集,构造第二种语言模型。
13.一种从与第一类数据存储器中所存储的信息相关的第二类数据存储器中检索信息的方法,其中第二类数据存储器比第一类数据存储器中的数据量要大,该方法包括依据在第一类数据存储器中所存储的信息来提供第一种语言模型;在给定第一种语言模型的情况下,确定在第二类数据存储器中的一个文档的第一复杂度;依据第一复杂度,确定该文档的相关度;针对在第二类数据存储器中的多个文档,重复执行确定第一复杂度和确定相关度的步骤;以及从具有能满足门限级的相关度的多个文档中检索出相关的文档。
14.权利要求13的方法还包括依据在第二类数据存储器所存储的信息来提供第二种语言模型;在给定第二种语言模型的情况下,确定该文档的第二复杂度;其中确定相关度的步骤包括依据第一复杂度和依据第二复杂度来确定该文档的相关度;以及其中重复执行的步骤包括针对在第二类数据存储器中的多个文档,重复执行确定第一复杂度和确定第二复杂度以及确定相关度的步骤。
15.一种识别语音的方法,包括提供第一类数据存储器;提供第二类数据存储器,第二类数据存储器比第一类数据存储器要大;提供语言模型;依据在第一类数据存储器中所包含的信息,对信息检索查询进行公式化;依据被公式化的查询,对第二类数据存储器进行查询;依据该查询,从第二类数据存储器中检索信息;以及依据被检索到的信息和在第一类数据存储器中的信息,对该语言模型进行适配。
16.权利要求15的方法还包括当用户正在使用该语音识别系统时,间隔地重复执行公式化、查询、检索和适配的步骤。
17.权利要求16的方法,其中重复执行的步骤包括依据时间,间隔地重复执行这些步骤。
18.权利要求16的方法,其中重复执行的步骤包括在文档准备期间,当预定数量的一些词数已经被识别出来后,用户正在利用该语音识别系统准备文档时重复执行这些步骤。
全文摘要
一种语言模型(70)用于一个语音识别系统(60)中,它访问一个第一类、较小的数据存储器(72)和一个第二类、较大的数据存储器(74)。通过公式化表达一个基于包含在上述第一类数据存储器(72)中的信息的信息检索查询和查询上述第二类数据存储器(74),可以对语言模型(70)进行适配。从第二类数据存储器(74)中检索的信息用来适配该语言模型(70)。并且,语言模型用来从上述第二类数据存贮器(74)中检索信息。语言模型是基于第一类数据存储器(72)中的信息和第二类数据存储器(74)中的信息来构建的。在给定第一个语言模型和第二个语言模型之后,在第二类数据存储器(74)中的文档的复杂度就可以被确定了。文档的相关度是根据上述第一和第二复杂度来确定的。检索具有超过某一门限水平的相关度测度的文档。
文档编号G10L15/18GK1474378SQ0310848
公开日2004年2月11日 申请日期1999年2月9日 优先权日1998年3月30日
发明者米林德·V·迈哈简, 米林德 V 迈哈简, 黄学东 申请人:微软公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1