首页> 中国专利> 以无模式输入将一种文本形式转换成另一种文本形式的语言输入体系结构

以无模式输入将一种文本形式转换成另一种文本形式的语言输入体系结构

摘要

一种语言输入体系结构把语音文本(例如中文拼音)输入串转换成语言文本(例如中文汉字)输出串,其转换方式使打字错误和从语音文本到语言文本转换过程中发生的转换错误达到最少。该语言输入体系结构有搜索引擎、一个或多个打字模型、一个语言模型、以及一个或多个用于不同语言的字典。每个打字模型在真实数据上受训练并学习打字错误概率。该打字模型被配置成根据概率产生可能用于代替输入串的可能打字候选串列表,这些概率表明有多大可能每个候选串被不正确地输入作为输入串。这些可能的打字候选串可以存储在数据库中。该语言模型根据概率为每个打字候选串提供可能的转换串,这些概率表明一个可能的转换输出串有多大可能代表该候选串。搜索引擎把打字模型和语言模型的概率结合,以找出代表输入串转换后形式的最可能的转换串。通过产生打字候选串,然后使用相关联的转换串去代替输入串,该体系结构可消除许多普遍性的打字错误。当利用多个打字模型时,该体系结构能自动地区分多种语言,无需为输入多种语言而进行模式切换。

著录项

  • 公开/公告号CN1384940A

    专利类型发明专利

  • 公开/公告日2002-12-11

    原文格式PDF

  • 申请/专利权人 微软公司;

    申请/专利号CN00814906.2

  • 发明设计人 李凯夫;陈征;韩建;

    申请日2000-10-13

  • 分类号G06F17/27;G06F17/28;

  • 代理机构中国国际贸易促进委员会专利商标事务所;

  • 代理人吴丽丽

  • 地址 美国华盛顿

  • 入库时间 2023-12-17 14:36:12

法律信息

  • 法律状态公告日

    法律状态信息

    法律状态

  • 2015-12-09

    未缴年费专利权终止 IPC(主分类):G06F17/27 授权公告日:20090527 终止日期:20141013 申请日:20001013

    专利权的终止

  • 2015-05-20

    专利权的转移 IPC(主分类):G06F17/27 变更前: 变更后: 登记生效日:20150506 申请日:20001013

    专利申请权、专利权的转移

  • 2009-05-27

    授权

    授权

  • 2003-03-05

    实质审查的生效

    实质审查的生效

  • 2002-12-11

    公开

    公开

说明书

技术领域

本发明涉及语言输入方法和系统。更具体地说,本发明提供语言输入方法和系统,它对文本录入过程中发生的打字错误和在从一种语言形式到另一种语言形式的转换过程中发生的转换错误都有容错能力(errortolerance)。

背景技术

语言专用文字处理软件已存在多年。更复杂的文字处理器为用户提供了先进的工具,如拼写和语法校正,以协助起草文件。例如,许多文字处理机器能识别拼措的词或语法上不正确的句子结构,而且在一些情况下自动改正识别出的错误。

一般地说,有两种原因使错误被引入到文本中。一个原因是使用者根本不知道正确的拼写或句子结构。文字处理器能提出建议以协助使用者选择正确的拼写或措辞。第二个和更典型的错误原因是使用者不正确地向计算机中送入了词或句子,即使他/她知道正确的拼写或语法结构。在这种场合,在识别不适当送入的字符串和把它们改正为预想的词或短语方面,文字处理器往往相当有用。

在为不采用罗马字符的语言所设计的文字处理器中,录入(entry)错误往往更为普遍。对于许多种语言,不存在语言专用键盘,如英文版QWERTY键盘,因为这些语言拥有的字符比能够方便地作为键安排在键盘中的字符多得多。例如,许多亚洲语言含有数千个字符。在实际上不可能造出一个键盘来支持用于这许多不同字符的单独键。

不是去设计昂贵的语言和方言专用键盘,而是使语言专用文字处理系统允许使用者从一个小字符集键盘(例如QWERTY键盘)输入语音文本并把那个语言文本转换成语言文本。“语音文本”代表说一种给定语言时造成的声音,而“语言文本”代表它们实际出现在文本中时的书写字符。例如,在中文中,“拼音”是语音文本的一个例子,而“汉字”是语言文本的一个例子。通过把语音文本转换成语言文本,许多不同的语言能由语言专用文字处理器使用传统的计算机和标准的QWERTY键盘来处理。

这样,需要语音输入的文字处理器经受两类可能的输入错误。一类输入错误是通常的打字错误。然而,即使该文本没有打字错误,另一类错误是文字处理引擎可能不正确地把语言文本转换成非预想的字符文本。当在同一个语音文本输入串中这两个问题都起作用时,便可能造成一连串错误。在某些场合,如果不对该短语或句子的整个上下文进行长长的研究便不可能容易地发现由打字引发的错误。

这里所描述的发明主要是针对键入语言文本时由使用者造成的前一类输入错误,但也提供了对文字处理引擎造成的转换错误的容错。为了更好地演示伴随这种打字错误出现的问题,考虑一种基于中文的文字处理器,它把语音文本“拼音”转换成语言文本“汉字”。

有若干个理由说明为什么输入语音文本往往打字错误增多。一个理由是在英文键盘上的平均打字准确率在中国要比在英语国家低。第二个理由是语音文本使用得并不那么频繁。在早年的教育中,使用者并不象说英语的使用者受教于拼写英文词那样倾向于研究和学习语音拼写。

在语音文本输入过程中打字错误增多的第三个理由是许多人天生地以地方方言说话,这与标准方言相反。作为语音文本来源的标准方言是第二语言。在某些方言和口音中,说出的词可能不与相应的适当语音文本匹配,这样使得一个使用者更难于键入语音文本,例如,许多中国人说各种中国方言作为他们的第一语言并且被教授“普通话”中文作为第二语言,而“普通话”是“拼音”的来源。例如,在一些中国方言中,在某些上下文中“h”和“w”的发音没有区别;而在其他方言中,“ng”和“n”能被说成一样的;又在其他方言中,“r”不能被清晰地发出。结果,把说“普通话”作为第二语言的中文使用者当试图输入拼音时可能易于发生打字错误。

打字错误多的另一个可能原因是当输入语音文本时难于核查错误。这部分地由于语音文本通常是长的、不可读的字符串,它们是难读的。与看到的内容就是输入的内容的基于英文的文本输入相比,输入的语音文本往往不是“所见即所得”,而是由文字处理器把语音文本转换成语言文本。结果,使用者通常不去检验语音文本中的错误,而是宁肯等待直到语音文本被转换成语言文本。

对于这最后一个理由,在“拼音”输入的情况中打字错误会是特别令人烦恼的。拼音字符串很难检查和纠正,因为在字符之间没有空格。代替的是,拼音字符一起出现,不管由拼音字符形成的词有多少个。此外,拼音到汉字的转换往往不是立即发生的,而是随着送入更多的拼音文本继续去构成正确的解释。这样,如果使用者输入错误的拼音符号,单个错误可能被转换过程组合进去并向下游传播,造成若干个额外的错误。结果,纠错要用更长的时间,因为到这时系统已肯定地转换到汉字字符,然后使用者认识已经出现了一个错误,于是该使用者被迫多次退格,只是要做一次改正。在某些系统中,甚至不能揭示出原始的错误。

由于预期在语音输入过程中会频繁发生错误,故需要一个在语音输入中能容错的系统。希望有这样的系统,即使当语音串含有轻微错误的字符,该系统也能回送一个正确的答案。

除输入问题外语言专用文字处理器还面对另一个问题,它涉及在两种语言之间切换模式(mode)以把来自不同语言的词输入到同一文本。例如,通常会在起草的中文文件中包括英文词,例如技术术语(如Internet)或那些难于翻译的术语(例如缩略语、符号、姓、公司句等)。当输入不同的词时,传统的文字处理器需要使用者从一种语言模式切换到其他语言模式。这样,当一个使用者想要送入一个来自另一种语言的词时,该使用者必须停止思考关于文本输入的事,把模式从一种语言切换到另一种语言,送入该词,然后再把模式切换回第一种语言。这显著降低了使用者的打字速度,并需要使用者在文本输入任务和额外的改变语言模式的控制任务之间转移他/她的注意力。

因此,需要一种无需进行模式切换的“无模式”系统。为避免这些模式,该系统应能检测正被输入的语言,然后以逐个单词为基础把字母序列动态地转换成这种或那种语言。

然而,这不象可能看起来那样容易,因为许多字符串可能适合于两种上下文。例如,许多有效的英文词也是有效的“拼音”串。再有,在拼音输入时,由于在中文字之间以及在中文和英文词之间没有空格,故可能产生更大的混淆。

作为一例,当一使用者输入拼音输入文本串“woshiyigezhongguoren”时,该系统把该字符串转换成中文字:“我是一个中国人”(通常翻译成“我是一个中国人”)。

有时,使用者不是输入“woshiyigezhongguoren”,而是输入如下字符串:

wosiyigezhongguoren(错误是“sh”和“s”混淆);

woshiyigezongguoren(错误是“zh”和“z”混淆);

woshiygezhongguoren(错误是“y”后面略掉“i”);

woshiyigezhonggouren(错误是“ou”并列);

woshiyigezhongguiren(错误是“i”和“o”混淆)。

发明人已开发出一种文字处理系统和方法,使得对困难的外语(如中文)的拼写校正成为可能,而且允许通过自动语言识别无模式地输入多种语言。

发明内容

一种语言输入体系结构把语音文本输入串(例如中文拼音)转换成语言文本输出串(例如中文汉字),其转换方式使在从语音文本到语言文本的转换过程中最少发生打字错误和转换错误。该语言输入体系结构可以在多种领域中实现,包括文字处理程序、电子邮件程序、电子数据表、浏览器等。

在一种实现中,该语言输入体系结构有一个用户界面用于接收字符、符号、或其他文本元素的输入串,该输入串可以包括语音文本和非语音文本,以及一种或多种语言。用户界面允许使用者将输入文本串送入单一编辑行,而无需在不同文本形式或不同语言的输入之间进行模式切换。以这种作法,该语言输入体系结构为方便使用者而提供了多种语言的无模式输入。

该语言输入体系结构还有一个搜索引擎,一个或多个打字模型(model),一种语言模型,以及用于不同语言的一个或多个词典(lexicon)。该搜索引擎从用户界面接收输入串并把该输入串分送到一个或多个打字模型,每个打字模型被配置成产生一个可能代替输入串的可能打字候选串列表,产生该列表的依据是每个候选串有多大可能被作为输入串不正确地输入的打字错误概率。这些可能的打字候选串可存储在数据库中。

打字模型受到从输入训练文本的许多训练者那里收集的数据给予的训练。例如,在中文的情况中,训练者们送入以“拼音”写成的训练文本。观察到的在送入到训练文本过程中造成的错误被用于计算伴随打字候选串的概率,这些打字候选串可能用于校正打字错误。在使用多种打字模型的情况中,每个打字模型可以受到不同语言的训练。

在一种实现中,打字模型可以通过读输入文本串并把各音节映射到每个串的相应键入字母而受到训练。保持一个频率计数,该计数表示每个键入字母被映射到这些音节之一的次数,并根据该频率计数计算出每个音节的键入概率。

打字模型回送一组可能的打字候选串,它们构成输入串中存在的可能打字错误。打字候选串以与输入串相同的语言或文本形式写成。

搜索引擎把打字候选串传送到语言模型,它为每个打字候选串提供可能的转换串。更具体地说,该语言模型是一个三字母组(trigram)语言模型,它根据两个先前的文本元素来确定一个可能的转换输出串有多大可能代表候选串的语言文本概率。该转换串以不同于输入串的语言或文本形式写成。例如,输入串可能包含中文拼音或其他语音文本,而输出串可能包含中文汉字或其他语言文本。

根据在打字模型和语言模型中导出的概率,搜索引擎选择相关联的打字候选串以及显示出最高概率的转换候选串。搜索引擎把输入串(例如以语音文本写成的)转换成一个输出串,该输出串包含从语言模型中返回的转换候选串,从而以另一种文本形式(例如语言文本)来代替输入的文本形式(例如语音文本)。以这种方式,可以去掉使用者在输入语音文本过程中造成的任何输入错误。

当使用多种语言时,输出串可以有转换候选串与部分输入串(没有转换)的组合。后一种情况的例子是基于中文的语言输入体系结构输出从拼音到汉字转换后的文本以及没有转换过的英文文本二者。

用户界面在同一编辑行中显示输出文本串,这一编辑行继续用于输入输入串。以这种方式,转换是自动发生的,并且与使用者输入后加的文本同时进行。

附图说明

在全部附图中相同的数字用于代表相似的部件或特征。

图1是一计算机系统的方框图,该系统有一个实现语言输入体系结构的语言专用文字处理器。

图2是该语言输入体系结构的一个实施例的方框图。

图3是被分割或分段为不同音节组的一个文本串以及在假定该文本串含有错误时可以用于代替那些音节的候选串的图形表示。

图4是流程图,说明由语言输入体系结构进行的一般转换操作。

图5是一个训练计算机的方框图,该计算机用于训练该语言输入体系结构中采用的基于概率的模型。

图6是显示一种训练技术的流程图。

图7是该语言输入体系结构另一实施例的方框图,该实施例中采用了多种打字模型。

图8是显示多语种转换过程的流程图。

具体实施方式

本发明涉及一种语言输入系统和方法,它把一种语言形式(例如语音版本)转换成另一种语言形式(例如书写版本)。该系统和方法有容错功能用于文本输入过程中的拼写和打字错误以及在从一种语言形式到另一种语言形式的转换过程中发生的转换错误。为便于讨论,这里在由通用计算机执行的文字处理程序的一般情况中描述本发明。然而,本发明可以在文字处理以外的许多不同环境中实现,并可在许多不同类型的装置上使用。其他情况可能包括电子邮件程序、电子数据表、浏览器等。

该语言输入系统利用一个统计语言模型以实现很高的准确性。在一个实施例中,语言输入体系统构使用统计语言模型加上自动的、基于最大似然的方法来对词分段,选择一个词典,过滤训练数据,以及导出最可能的转换候选串。

然而,统计的、基于句子的语言模型假定使用者的输入是完美无缺的。在实际上,在使用者的输入中存在许多打字和拼写错误。于是,该语音输入体系结构包括一个或多个打字模型,它们利用概率拼写模型去接受正确的打字,同时容许普通的打字和拼写错误。这些打字模型可以针对多种语言(如英文和中文)进行训练,以辨明在多大程度上输入的序列可能是一种语言中的词,而不是另一种语言中的词。两种模型能平行运行并受语言模型(例如中文语言模型)指导,以输出最可能的字符序列(即,英文和中文字)。示例计算机系统

图1显示一个示例计算机系统100,它有中央处理单元(CPU)102、存储器104以及输入/输出(I/O)接口106。CPU102与存储器104及I/O接口106通信。存储器104代表易失性存储器(如RAM)和非易失性存储器(例如ROM、硬盘等)二者。

计算机系统100有经由I/O接口106连接的一个或多个外围装置。示例外围装置包括鼠标110、键盘112(例如字母数字QWERTY键盘,速写键盘等)、显示监视器114、打印机116、外围存储装置118、以及送话器120。例如该计算机系统可以作为通用计算机来实现。于是,计算机系统100实现一个计算机操作系统(未画出),它存储在存储器104中并在CPU102中执行。该操作系统最好是一个支持窗口环境的多任务操作系统。合适的操作系统的一个实例是来自微软公司的Windows操作系统。

应该指出,可以使用其他的计算机系统配置,例如手持装置、多处理器系统、基于微处理器的或可编程的消费者电子设备、网络PC、微型计算机、大型机等。此外,尽管图1中显示的是一台独立的计算机,该语言输入系统还可在分布式计算环境中使用,在分布式环境中,任务由通过通信网络(例如LAN、因特网等)链接的远程处理装置执行。在分布式计算环境中,程序模块可以位于本地的和远程的存储器存储装置中。

一个数据或文字处理程序130存储在存储器104中并在CPU 102上执行。其他程序、数据、文件等也可以存储在存储器104中,但为易于讨论而未画出。文字处理程序130被配置成接收语音文本并自动把它转换成语言文本。更具体地说,文字处理程序130实现一个语言输入体系结构131,为了讨论目的,它是作为存储在存储器并且可在处理器上执行的计算机软件来实现的。除了体系结构131外,文字处理程序130还可以包括其他部件,但这些部件被认为是文字处理程序的标准部件,故不予详细显示或讨论。

文字处理程序130的语言输入体系结构131有一个用户界面(UI)132、一个搜索引擎134、一个或多个打字模型135、一个语言模型136、以及用于各种语言的一个或多个字典137。体系结构131是独立于语言的。UI 132和搜索引擎134是通用的,能用于任何语言。通过改变语言模型136、打字模型135以及字典137,体系结构131可适用于一种特定的语言。

搜索引擎134和语言模型136一起形成语音文本到语言文本转换器138。利用打字模型135的协助,转换器138变得对使用者的打字错误和拼写错误能够容错。为了本公开内容中的使用,“文本”是指一个或多个字符和/或非字符符号。“语音文本”一般是指代表说一种给定语言时发出的声音的字母数字文本。“语言文本”是代表书写语言的字符和非字符符号。“非语音文本”是不代表说一种给定语言时发出的声音的字母数字文本。非语音文本可以包括标点符号、特殊符号、以及代表不是语言文本的一种书写语言的字母数字文本。

或许可以更一般地说,语音文本可以是以基于罗马字的字符集(例如英文字母)表示的任何字母数字文本,它代表说一种给定语言时发出的声音,而这给定的语言在书写时不利用这基于罗马字的字符集。语言文本是与这给定的语言对应的书写符号。

为便于讨论,在基于中文的文字处理器情况中描述文字处理器130,而语言输入体系结构131被配置成把“拼音”转换成“汉字”。就是说,语音文本是拼音,而语言文本是汉字。然而,该语言输入体系结构是独立于语言的,可以用于其他语言。例如,语音文本可以是口头日语,而语言文本代表一种日语书写语言,例如“汉字”(Kanji)。存在许多其他例子,包括,但不限于,阿拉伯语、朝鲜语、印度语、其他亚洲语言等等。

语音文本的输入是通过一个或多个外围输入装置进行的,例如鼠标110、键盘112或送话器120。以这种方式,使用者被允许使用键入方式或口说方式输入语音文本。在口说输入的情况中,计算机系统可以进一步实现一个语音识别模块(未画出)来接收说出的词并把它们转换成语音文本。下面的讨论假定通过键盘112的文本输入在全尺寸,标准字母数字QWERTY键盘上进行。

在语音文本被输入的过程中,UI 132显示该语音文本。该UI最好是图形用户界面。对UI 132的更详细讨论可在共同待决申请序列号No._中找到,该待决申请题为“语言输入用户界面”,被纳入这里作为参考。

用户界面132把语音文本(P)传送到搜索引擎134,搜索引擎134再把语音文本传送到打字模型137。打字模型137产生各种打字候选串(TC1,…TCN),它们可能是使用者预想的语音文本的适当的版本,但已知该语音文本可能包括错误。打字模型137把具有合理概率的多个打字候选串回送给搜索引擎134,搜索引擎134把这些打字候选串传送到语言模型136上。语言模型136在正在进行的句子的上下文中评估这些打字候选串并产生以语言文本书写的各种转换候选串(CC1,…CCN),它们可能代表使用者预想的语音文本的转换后的形式。转换候选串与打字候选串相关联。

从语音文本到语言文本的转换不是一对一的转换。相同或相似的语音文本可能代表语言文本中的若干字符或符号。这样,在转换到语言文本之前要解释语音文本的上下文。另一方面,非语音文本通常将被一对一地直接转换,其中显示出的字母数字文本与字母数字输入相同。

转换候选串(CC1…CCN)被传送回搜索引擎134,由它进行统计分析以确定打字和转换候选串中哪能一个表现出作为使用者预想的那一个的最高概率。一旦计算出概率,搜索引擎134便选择具有最高概率的候选串并把转换候选串的语言文本返回到UI 132。然后,UI 132在显示的同一行中用转换候选串的语言文本代替其语音文本。与此同时,在该行中继续在新插入的语言文本前面显示新输入的语音文本。

如果使用者希望改变由搜索引擎134选定的那一个语言文本,则用户界面132呈现出第一列表,其中以实际被选为预想答案的可能性大小的顺序列出其他高概率候选串。如果使用者仍不满意这些可能的候选串,则UI 132呈现出第二列表,它提供全部可能的选择。这第二列表可以按概率或其他尺度(如中文字中的笔划数或复杂性)排序。语言输入体系结构

图2更详细地显示语言输入体系结构131。体系结构131支持对语言输入的容错,包括打字错误和转换错误。除了UI 132、搜索引擎134、语言模型136及打字模型135外,体系结构131进一步包括编辑器204和句子上下文模型216。句子上下文模型216与搜索引擎134耦合。

用户界面132从一个或多个外围装置(例如键盘、鼠标、送话器)接收输入文本,如语音文本(例如中文拼音文本)和非语音文本(例如英文),并把输入文本传送给编辑器204。编辑器204请求搜索引擎132结合打字模型135和语言模型136把输入文本转换成输出文本,如语言文本(例如中文汉字文本)。编辑器204把输出文本传送回UI 132供显示。

一从用户界面132收到输入文本串,搜索引擎134便把该输入文本串中发送到一个或多个打字模型135和句子上下文模型216。打字模型135测量输入文本中打字错误的先验概率。打字模型135产生和输出用于由使用者输入的输入文本的可能打字候选串,有效地设法纠正输入错误(例如打字错误)。在一个实现中,打字模型在候选串数据库210中寻找可能的候选串。在另一个实现中,打字模型135使用基于统计的模型来产生输入文本的可能候选串。

句子上下文模型216可以任选地把该句子中的任何先前输入文本发送到搜索引擎132,以供打字模型135使用。以这种方式,打字模型可以根据新的文本串和该句子中先前输入的文本串的组合来产生可能的打字候选串。

应该理解,术语“输入错误”、“打字错误”和“拼写错误”可以交换使用以表示用键盘输入输入文本过程中造成的错误。在口头输入的情况中,这种错误可能是由语音输入的不适当识别造成的。

打字模型135可以返回全部可能的打字候选串,或者删去有较低概率的可能打字候选串,从而只把有较高概率的可能打字候选串返回给搜索引擎134。还应该理解,由搜索引擎134而不是打字模型135来完成这种删除功能。

根据本发明的一个方面,使用真实数据对打字模型135进行训练,这些真实数据是从数百或数千个训练者那里收集的,他们被要求输入一些句子以观察共同的打字错误。将在下文中的“训练打字模型”标题下更详细地描述该打字模型及其训练。

搜索引擎134把打字模型135返回的可能打字候选串列表发送到语言模型136。简单化地说,语言模型测量在给定上下文(如短语或句子)内这些词或文本串的似然性。就是说,语言模型可以取一些项目(词、字符、字母等)的任何序列并估计该序列的概率。语言模型136把来自搜索引擎134的可能打字候选串与先前的文本结合,产生一个或多个与打字候选串对应的语言文本候选串。

语料库数据(corpus data)或其他类型数据214用于训练该三字母组(trigram)语言模型136。训练语料库214可以是任何类型的一般数据,如新闻文章等的每日文本,或环境特定的数据,如针对特定领域(例如医学)的文本。训练语言模型136在文字处理技术领域是已知的,在此不予详细描述。

语言输入体系结构131容许在输入一个输入文本串过程中造成的错误,并试图返回对于该输入串的最可能的词和句。语言模型136帮助打字模型135确定哪个句子对于由使用者输入的输入串是最合理的。这两个模型在统计上可描述为被输入的文本串S是字典中一个可识别的和有效的词的概率,或P(w|s)。使用贝叶斯(Bayes)公式,概率P(w|s)被描述为: >>P>>(>w>|>s>)>>=>>>P>>(>s>|>w>)>>·>P>>(>w>)>>>>P>>(>s>)>>>>>s>

为了对给定的输入串比较可能的预想词,分母P(s)保持相同。于是,分析只关注分子的乘积P(s|w)·P(w),这里概率P(s|w)代表拼写或打字模型,而概率P(w)代表语言模型。更具体地说,打字模型P(s|w)描述有多大可能一个人想要输入X但代之以输入Y;而语言模型P(w)描述对给定的句子上下文有多大可能要产生出一个特定词。

在把“拼音”转换成“汉字”的具体情况中,概率P(w|s)可重新表述为P(H|P),这里H代表汉字串,P代表拼音串。目标是找出最可能的中文字H’,从而使P(H|P)达到最大。这样,概率P(H|P)为输入的拼音串P是有效汉字串H的似然性。由于P是固定的,因此P(P)对给定的拼音串为常数,贝叶斯公式约简概率P(H|P),如下所示:

H’=arg maxHP(H|P)=arg maxHP(P|H)*P(H)

概率P(P|H)代表拼写或打字模型。通常,汉字串H能被进一步分解为多个词W1,W3,…WM,而概率P(P|H)能被估计为:

Pr(P|H)∏P(Pf(i)/Wi)这里Pf(i)是与词Wi对应的拼音字符序列。

在先有技术的基于统计的拼音到汉字转换系统中,如果Pf(i)是词Wi的可接受的拼写,则概率P(Pf(i)|Wi)设为1,如果不是词Wi的可接受的拼写,则概率设为0。结果,传统的系统对任何错误输入的字符不提供容错。某些系统有“南方混淆发音”特性来处理这一问题,不过这还是利用了预设概率值1和0。此外,这样的系统只解决了一小部分打字错误,因为它不同由数据驱动的(从真实打字错误中学会的)。

与此相对照的是,这里所描述的语言体系结构利用打字模型和语言模型二者进行转换。打字模型通过从实际语料库训练概率P(Pf(i)|Wi)使能对错误的输入字符容错。有许多建立打字模型的途径。在理论上,所有可能的P(Pf(i)|Wi)都能被训练;但在实践中,存在的参数太多了。为减少需要训练的参数个数,一种途径是只考虑单字符词并把具有等同发音的所有字符映射到单一音节。在中文语言中,约有406个音节,所以这在实质上是训练P(拼音文本|音节),然后把每个字符映射到它的相应音节。在下文中的“训练打字模型”标题下将更详细地描述这一点。

利用语言体系结构131,计算出大范围的概率。拼音到汉字转换的一个目标是找出使概率P(P|H)取最大值的汉字串H。这是通过选择产生最大概率的Wi作为最佳汉字序列来完成的。在实践中,可以使用有效的搜索,如众所周知的Viterbi集束(Viterbi Beam)搜索。为得到关于Viterbi集束搜索的更多信息,读者可参考Kai-Fu Lee的文章,题为“自动语音识别”,Kluwer Academic Pulishers,1989,以及Chin-Hui Lee,Frank K.Soong,Kuldip K.Paliwal的文章,题为“自动语音和说话者识别—高级论题”,Kluwer Academic Publisher,1996。

概率P(H)代表语言模型,它度量任何给定词串的先验概率。构建统计语言模型的通常途径是利用一个前缀树状数据结构从已知的训练文本集构建一个N字母组语言模型。一个广泛使用的统计语言模型的例子是N字母组马尔科夫模型,在“用于语音识别的统计模型”一文中对它进行了描述,作者Frederick Jelinek,MIT出版社,Cambridge,Massachusetts,1997。使用前缀树数据结构(a.ka.后缀树,或PAT树)使一个高级应用程序能快速地遍历该语言模型,提供上述基本上实时的性能特性。N字母组语言模型对整个文本中的一个串(大小为N)中的特定项目(词、字符等)发生的次数进行计数。该计数被用于计算该项目串的使用概率。

语言模型136最好是一个三字母组语言模型(即一个N字母组,这里N=3),不过在一些上下文中二字母组可以是适用的。三字母组语言模型对英文是适用的,对中文也很适合,假设它利用大的训练语料库。

三字母组模型考虑文本串中两个最先前的字符来预测下一个字符,步骤如下:

(a)利用预先确定的字典把字符(C)分段成单独的语言文本或词(W),这里每个W在树中被映射到一个或多个C;

(b)由前两个词预测一个词序列(W1,W2,…WM)的概率:

P(W1,W2,…WM)≈∏P(Wn|Wn-1,Wn-2)           (1)这里P()代表该语言文本的概率;

Wn是当前词

Wn-1是前一个词

Wn-2是Wn-1之前的一个词。

图3显示一个输入文本300的例子,它由使用者输入并传送给打字模型135和语言模型136。一收到输入文本300,打字模型135便以不同的方式对输入文本300分段,产生可能的打字候选串302的列表,这些候选串考虑了键盘输入过程中造成的打字错误。打字候选串302在每个时间帧中有不同的分段,使得前一个词的结束时间是当前词的起始时间。例如,候选串302的项上一行把输入串300“mafangnitryyis…”分段为“ma”,“fan”,“ni”,“try”,“yi”等。打字候选串302的第二行把输入串“mafangnitryyis…”不同地分段为“ma”,“fang”,“nit”,“yu”,“xia”,等。

这些候选串可存在数据库或某种其他可访问的存储器中。应该理解,图3只是一个例子,对于该输入文本可能有不同数量的可能打字候选串。

语言模型136评估该句子上下文中可能打字候选串302的每一段,并产生相应的语言文本。为了便于显示,可能打字文本302的每一段和相应的可能语言文本被组合到方框中。

搜索引擎134从这些候选串进行统计分析,以确定哪个候选串表现出作为使用者预想串的最高概率。每行中的打字候选串彼此没有关系,所以搜索引擎可自由地从任何行中选择不同的段以确定可接受的转换候选串。在图3的例子中,搜索引擎已确定被突显的打字候选串304、306、308、310、312及314表现出最高概率。这些候选串可以从左到右串联起来,从而使候选串304后面跟随候选串306,如此等等,以形成对输入文本300的一个可接受的解释。

一旦计算出概率,搜索引擎134选择具有最高概率的候选串。然后,搜索引擎把输入的语音文本转换成与选择选串相关的语言文本。例如,搜索引擎把输入文本300转换成方框304、306、308、310、312和314中显示的语言文本,并经由编辑器204把语言文本返回给用户界面132。一旦在用户界面收到标点符号,即新的输入文本串在一个新的句子中,则打字模型135开始对新句子中的新文本串进行操作。一般性转换

图4显示把语音文本(例如拼音)转换成语言文本(例如汉字)的一般过程400。该过程由语言输入体系结构131实现,并附带参考图2进行描述。

在步骤402,用户界面132接收由使用者输入的语音文本串,如拼音。该输入文本串包含一个或多个打字错误。UI 132经由编辑器204把输入文本传送到搜索引擎134,搜索引擎134把该输入文本分配给打字模型135和句子上下文模型216。

在步骤404,打字模型135根据输入文本产生可能的打字候选串。导出候选串的一种方式是把输入文本串分段成不同的部分,并在数据库中寻找与输入串分段最相象的候选串。例如,在图3中,候选串302有一个分段,它规定了可能的分段“ma”,“fan”,等。

可能的打字候选串被返回到搜索引擎134,搜索引擎134再把这些候选串传递给语言模型136。语言模型136把可能的打字候选串与先前的文本组合,并产生对应于打字候选串的一个或多个语言文本候选串。例如,参考图3中的候选串302,语言模型返回方框302中的语言文本作为可能的输出文本。

在步骤406,搜索引擎134进行统计分析以确定哪个候选串表现出作为使用者预想串的最高概率。一旦为语音文本选定了最可能的打字候选串,搜索引擎便把输入的语音文本转换成与打字候选串对应的语言文本。以这种方式,可以消除输入语音文本过程中由使用者造成的任何输入错误。搜索引擎134经由编辑器204向UI 132返回无错误的语言文本。在步骤408,转换后的语言文本被显示在屏幕上使用者继续输入语音文本的同一行位置上。训练打字模型

如前面指出的那样,打字模型135是基于概率P(s|w)。打字模型为不同的打字候选串计算其概率,它们能用于把输入文本转换成输出文本并选择可能的候选串。以这种方式,打字模型即使在存在打字错误的情况下也返回输入文本的可能打字候选串,由此实现打字模型的容错。

本发明的一个方面涉及由实际数据训练打字模型P(s|w)。该打字模型是在由尽可能多的训练者(如数百个,最好是数千个)输入的文本之上被开发或训练的。训练者们输入相同或不同的训练数据,而输入的和训练的数据之间的任何差别都被抓住作为打字错误。其目标是让他们输入相同的训练文本,并根据他们的打字中的错误数或打字候选串数来确定概率。以这种方式,打字模型学习训练者打字错误的概率。

图5显示一个训练计算机500,它有处理器502,易失性存储器504。以及非易失性存储器506。训练计算机500运行训练程序508以从使用者输入的数据510中产生概率512(即P(s|w))。训练程序508显示为在处理器502上执行,不过它是从非易失性存储器506上的存储器加载到处理器中的。训练计算机500可以被配置成在数据510的输入过程中在数据510上进行训练,或者在它被收集和存储到存储器中之后再训练。

为便于讨论,考虑一个为中文语言定制的打字模型,这里中文拼音文本被转换成中文字文本。在这种情况中,有数千人被邀请输入拼音文本。最好是,从每个人收集数百个句子,其目标是让他们在其打字中有类似的错误类型和错误数量。打字模型被配置成从搜索引擎接收拼音文本,并提供用于代替输入串中的字符的可能的候选串。

能用各种技术去训练打字模型135。在一种途径中,直接通过考虑单个字符文本和把所有等同发音的字符文本映射到单个音节,来训练打字模型。例如,在中文拼音中有超过四百个音节。对于一个给定音节,其语音文本的概率(例如P(拼音文本|音节))被训练,然后每个字符文本被映射到它的相应音节。

图6显示音节映射训练技术600,在步骤602,训练程序508读一个由训练者输入的文本串。该文本串可以是一个句子或者词和/或字符的某种其他组合。程序508把音节对准或映射到文本串中的相应字母(步骤604)。对于每个文本串,映射到每个音节的字母频度被更新(步骤606)。对训练者们输入的训练数据中包含的每个文本串重复这一步骤,如从步骤608中分出的“是”分支所代表的那样。最终的结果是,输入的文本串将代表中文拼音中的许多或全部音节。一旦读出所有串,如从步骤608中分出的“否”分支所代表的那样,该训练程序确定使用者输入每个音节的概率P(拼音文本|音节)(步骤610)。在一个实现中,打字概率是由首先规格化全部音节来确定的。

每个音节可以表示为隐式马尔科夫模型(HMM)。每个输入键可以被看作是映射在HMM中的状态序列。正确的输入和实际的输入被对准,以确定状态之间的转换概率。不同的HMM能用于模拟不同技术水平的打字者。

为训练中文中的全部406个音节,需要大量数据。为减小这一数据需求,在不同音节中的相同字母被连系起来作为一个状态。这把状态数减至27个(即从“a”到“z”26个字母,加上一个状态代表一个未知字母)。这一模型能被集成到利用一个三字母组语言模型的Viterbi集束搜索。

在另一种训练技术中,训练是基于单个字母编辑的概率,例如一个字母的插入(即φ→x)、一个字母的删除(即x→φ),以及一个字母代替另一个字母(x→y)。这种单个字母编辑的概率在统计上能表示为:

替代:P(x由y替代)

插入:P(x插在y之前/之后)

删除:P(在y之前/之后的x被删除)

每个概率(P)实质上是一个二字母组打字模型,但也能扩展为N字母组打字模型,它考虑相邻字符外的广得多的文本上下文。于是,对于任何可能的输入文本串,该打字模型有一个产生每个可能字母序列的概率——其作法是首先提供正确的字母序列,然后使用动态编程确定最低代价路径,以把这正确的字母序列转换成给定的字母序列。代价可确定为最小数量的错误字符,或某种其他度量。在实践中,这一错误模型能作为Viterbi集束搜索方法的一部分来实现。

应该理解,在本发明范围内,除了打字错误或拼写错误外,任何其他类型的错误也能被训练。还有,应该理解,能使用不同的训练技术来训练打字模型而不离开本发明的范围。无模式输入的多语种训练

困扰语言输入系统的另一个令人烦恼的问题是当输入两种或更多种语言时需要在各模式之间切换。例如,在以中文打字的使用者可能希望输入英文词。传统的输入系统要求使用者在输入英文词和中文词之间切换模式。不幸的是,使用者们容易忘记进行切换。

语言输入体系结构131(图1)能被训练为接受混合的语言输入,因此消除了在多语种文字处理系统中在两种或更多种语言之间的模式转换。这称为“无模式输入”。

该语言输入体系结构实现一个拼写/打字模型,它自动区分不同语言的词,如辨别哪个词是中文,哪个词是英文。这是不容易的,因为许多合法的英文词也是合法的拼音串。此外,由于在拼音、英文和中文字之间没有空格,在输入时能产生更多的混淆。使用贝叶斯规则:

H’=arg maxHP(H|P)=arg maxHP(P|H)*P(H)

目标函数可以用两部分来表征:一个用于英文的拼写模型P(P|H)和一个用于中文的语言模型P(H)。

处理混合语言输入的一种方式是把来自第二种语言(例如英文)的词看作第一种语言的一个特殊类别,由此来训练用于第一种语言的语言模型。例如,来自第二种语言的词被看作第一种语言中的单个词。

作为举例,假定基于中文的文字处理系统使用英文键盘作为输入装置。在这个基于中文的文字处理系统中利用的打字模型是在混有英文词和中文词的文本上进行训练的中文语言模型。

处理混合语言输入的第二种方式是在该语言输入体系结构中实现两种打字模型,即一个中文打字模型和一个英文打字模型,并对每个模型单独进行训练。就是说,中文打字模型是通过训练者按上述方式输入键盘输入流(如语音串)进行训练的,而英文打字模型是在说英语的训练者输入的英文文体上被训练的。

英文打字模型可以实现为下列的组合:

1.在中文语言文本中插入的实际英文上受过训练的单字母组语言模型。这个模型能处理许多频繁使用的英文词,但不能预测未见过的英文词。

2.三音节概率的英文拼写模型。这一模型对于每个三音节序列应有非零概率,但对于象是英文的词产生较高的概率。这也能由真正英语词进行训练,并能处理未见过的英文词。

这些英文模型一般为英文文本返回很高的概率,为看来象英文文本的字母串返回高概率,而为非英文文本返回低概率。

图7显示的语言输入体系结构700是从图2中的体系结构131修改而成的,它利用多个打字模型135(1)-135(N)。每个打字模型被配置成用于一种特定语言。每个打字模型135使用对该特定语言有共同性的词和错误进行单独训练。于是,单独的训练数据212(1)-212(N)被提供给相应的打字模型135(1)-135(N)。在该示例情况中,只使用了两种打字模型:一种用于英文,一种用于中文。然而,应该理解,该语言输入体系结构可被修改成包括多于两种打字模型以适应于多于两种语言的输入。还应该指出,该语言输入体系结构可以用于许多其他类型的多语种文字处理系统,如日文、朝鲜文、法文、德文等。

在该语言输入体系结构的操作过程中,英文打字模型与中文打字模型平行操作。这两种打字模型彼此竞争,通过计算被输入文本串可能是中文串(包括错误)的概率或可能是英文串(也潜在地包括错误)的概率,辨别输入文本是英文或是中文。

当输入文本串或序列清楚地是中文拼音文本时,中文打字模型返回一个比英文打字模型高得多的概率。这样,语言输入体系结构把输入的拼音文本转换成汉字文本。当一个输入文本串或序列清楚地是英文(例如姓,缩写(“IEEE”),公司名(“Microsoft”)、技术术语(“INTERNET”)等)时,英文打字模型表现出比中文打字模型高得多的概率。因此,该体系结构基于英文打字模型把这个输入文本转换成英文文本。

当一个输入文本串或序列是含混的情况时,中文和英文打字模型继续计算概率直至进一步的上下文提供更多的信息来区分中文和英文。当输入文本串或序列既不象中文也不象英文时,中文打字模型的容错弱于英文打字模型。结果,英文打字模型比中文打字模型有更高的概率。

为说明多语言转换,假定使用者输入一个文本串“woaiduinternetzazhi”,它的意思是“我爱读INTERNET杂志”。收到开头的串“woaidu”,中文打字模型产生的概率高于英文打字模型,并把这部分输入文本转换成“我爱读”。该体系结构继续发现接下来输入的部分“interne”是含混不清的,直至字母“t”被输入。在这时,英文打字模型为“INTERNET”返回一个高于中文打字模型的概率,于是语言输入体系结构把这一部分输入文本转换成“INTERNET”。接下来,对于“zazhi”,中文打字模型表现出高于英文打字模型的概率,于是该语言输入体系结构把那部分输入文本转换成“杂志”。多语言输入转换

图8显示过程800,该过程把输入的带有打字错误的多语种输入文本串转换成没有错误的多语种输出文本串。该过程是语言输入体系结构700实现的,这里补充参考图7描述该过程。

在步骤802,用户界面132接收多语种输入文本串。它包含语音词(例如拼音)和至少一种其他语言(例如英文)的词。该输入文本还可能包括使用者输入语音词和第二种语言词时造成的打字错误。UI 132经由编辑器204,把该多语种输入文本串传送到搜索引擎134,搜索引擎134把输入文本分配给打字模型135(1)-135(N),以及句子上下文模型216。

每个打字模型根据输入文本产生可能的打字候选串,如步骤804(1)-804(N)代表的那样。在步骤806,具有合理概率的可能的打字候选串被返回到搜索引擎134。在步骤808,搜索引擎134向语言模型136发送带有打字概率的打字候选串。在步骤810,该语言模型把可能的打字候选串与先前文本结合,以提供基于句子的上下文,并通过选择一个穿过打字候选串的路径产生与打字候选串对应的语言文本的一个或多个转换候选串,如上文针对图3描述的那样。在步骤812,搜索引擎134进行统计分析,以选择具有作为使用者预想串的最高概率的转换候选串。

在步骤814,该文本串的最可能的转换候选串被转换成输出文本串。输出文本串包括语言文本(例如汉字)和第二种语言(例如英文),但去掉了打字错误。搜索引擎134经由编辑器204把无错误的输出文本返回到UI 132。在步骤816,转换后的语言文本被显示在UI 132上使用者继续输入语音文本的同一行的位置上。

在上述例子中,中文语言是主要语言,英文是辅助语言。应该理解,这两种语言能都被指定为主要语言。再有,可由多于两种的语言构成混合输入文本串。结论

虽然上文的描述所使用的语言是针对结构特性和/或方法性操作活动的,但应该理解,在所附权利要求中定义的本发明并不限于所描述的特定特性或操作。相反,这些特定的特性和操作是作为实现本发明的示例形式公开的。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号