CN103514230B - 一种用于根据语料序列训练语言模型的方法与设备 - Google Patents

一种用于根据语料序列训练语言模型的方法与设备 Download PDF

Info

Publication number
CN103514230B
CN103514230B CN201210226931.4A CN201210226931A CN103514230B CN 103514230 B CN103514230 B CN 103514230B CN 201210226931 A CN201210226931 A CN 201210226931A CN 103514230 B CN103514230 B CN 103514230B
Authority
CN
China
Prior art keywords
language model
sequence
model
target language
target
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.)
Active
Application number
CN201210226931.4A
Other languages
English (en)
Other versions
CN103514230A (zh
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.)
Beijing Baidu Netcom Science and Technology Co Ltd
Original Assignee
Beijing Baidu Netcom Science and Technology Co Ltd
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
Application filed by Beijing Baidu Netcom Science and Technology Co Ltd filed Critical Beijing Baidu Netcom Science and Technology Co Ltd
Priority to CN201210226931.4A priority Critical patent/CN103514230B/zh
Publication of CN103514230A publication Critical patent/CN103514230A/zh
Application granted granted Critical
Publication of CN103514230B publication Critical patent/CN103514230B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/20Natural language analysis
    • G06F40/205Parsing
    • G06F40/216Parsing using statistical methods
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/903Querying
    • G06F16/9032Query formulation
    • G06F16/90332Natural language query formulation or dialogue systems

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Computational Linguistics (AREA)
  • Artificial Intelligence (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Mathematical Physics (AREA)
  • Databases & Information Systems (AREA)
  • Audiology, Speech & Language Pathology (AREA)
  • Health & Medical Sciences (AREA)
  • General Health & Medical Sciences (AREA)
  • Probability & Statistics with Applications (AREA)
  • Data Mining & Analysis (AREA)
  • Machine Translation (AREA)

Abstract

本发明的目的是提供一种根据语料序列训练语言模型的方法与设备;通过获取拟用于训练目标语言模型的语料序列;设置该目标语言模型的初始阶数信息以作为其当前训练阶数,并结合该目标语言模型的最高阶数信息,迭代执行以下操作,直至该当前训练阶数超过该最高阶数信息:根据该当前训练阶数,确定与该目标语言模型相对应的平滑算法;根据该语料序列,通过该平滑算法,对该目标语言模型进行训练处理,以获得更新后的目标语言模型;更新该当前训练阶数。与现有技术相比,本发明根据不同阶语言模型的特性,对不同阶语言模型采用不同的平滑算法,发挥不同平滑算法的优势,得到更好的建模效果;进一步地,还可与语音识别相结合,提高了语音识别的准确率。

Description

一种用于根据语料序列训练语言模型的方法与设备
技术领域
本发明涉及自然语言处理技术领域,尤其涉及一种用于根据语料序列训练语言模型的技术。
背景技术
语言模型建模主要通过统计文本语料中的文法分布,获得对于语言的统计模型,用于描述一个文本串成为自然语言的概率。在语言模型训练中,为了描述对零次的文法赋予一定的概率,通常采用平滑算法,利用“劫富济贫”的思想,将高频文法平滑部分概率到低频文法。
目前,语言模型的平滑算法很多,例如katz平滑算法、KN平滑(Kneser-Ney平滑)算法、加一平滑算法,wb平滑(Witten-Bell平滑)算法等,比较常用的是katz平滑算法和KN平滑算法。每种平滑算法都有其不同的特性,也都存在不同的问题。根据调研发现,katz平滑在训练数据比较充足,然后进行相对熵裁剪后的性能比KN平滑算法效果更好。KN平滑算法则在数据相对稀疏时,性能较好。因此在现有技术中,基本上是从以上二者,或者其他候选平滑算法中选取一种平滑算法,来对语言模型进行训练。然而,在语言模型训练中,不同阶语言模型的特性是不尽相同的,而对不同阶文法采用同一种平滑算法,并不能够取得最好的效果。
因此,如何克服上述不同阶语言模型的特性不同的问题,实现对语言模型的训练,得到更好的建模效果,成为本领域技术人员亟需解决的问题之一。
发明内容
本发明的目的是提供一种用于根据语料序列训练语言模型的方法与设备。
根据本发明的一个方面,提供了一种用于根据语料序列训练语言模型的方法,其中,该方法包括以下步骤:
a获取拟用于训练目标语言模型的语料序列;
b设置所述目标语言模型的初始阶数信息以作为其当前训练阶数,并结合所述目标语言模型的最高阶数信息,迭代执行以下操作,直至所述当前训练阶数超过所述最高阶数信息:
b1根据所述当前训练阶数,确定与所述目标语言模型相对应的平滑算法;
b2根据所述语料序列,通过所述平滑算法,对所述目标语言模型进行训练处理,以获得更新后的所述目标语言模型;
b3更新所述当前训练阶数。
根据本发明的另一方面,还提供了一种用于根据语料序列训练语言模型的模型训练设备,其中,该设备包括:
序列获取装置,用于获取拟用于训练目标语言模型的语料序列;
迭代执行装置,用于设置所述目标语言模型的初始阶数信息以作为其当前训练阶数,并结合所述目标语言模型的最高阶数信息,迭代执行以下装置所执行的操作,直至所述当前训练阶数超过所述最高阶数信息:
算法确定装置,用于根据所述当前训练阶数,确定与所述目标语言模型相对应的平滑算法;
模型训练装置,用于根据所述语料序列,通过所述平滑算法,对所述目标语言模型进行训练处理,以获得更新后的所述目标语言模型;
阶数更新装置,用于更新所述当前训练阶数。
与现有技术相比,本发明根据不同阶语言模型的特性,对不同阶语言模型采用不同的平滑算法,发挥不同平滑算法的优势,得到更好的建模效果;进一步地,本发明还可与语音识别相结合,提高了语音识别的准确率。
附图说明
通过阅读参照以下附图所作的对非限制性实施例所作的详细描述,本发明的其它特征、目的和优点将会变得更明显:
图1示出根据本发明一个方面的用于根据语料序列训练语言模型的设备示意图;
图2示出根据本发明一个优选实施例的用于根据语料序列训练语言模型的设备示意图;
图3示出根据本发明另一个方面的用于根据语料序列训练语言模型的方法流程图;
图4示出根据本发明一个优选实施例的用于根据语料序列训练语言模型的方法流程图。
附图中相同或相似的附图标记代表相同或相似的部件。
具体实施方式
下面结合附图对本发明作进一步详细描述。
图1示出根据本发明一个方面的用于根据语料序列训练语言模型的设备示意图。模型训练设备1包括序列获取装置101、迭代执行装置102、算法确定装置103、模型训练装置104和阶数更新装置105。
其中,序列获取装置101获取拟用于训练目标语言模型的语料序列。具体地,序列获取装置101例如通过调用语料库所提供的应用程序接口(API)等方式,自该语料库获取拟用于训练目标语言模型的语料序列;或者,序列获取装置101例如通过调用语料库所提供的应用程序接口(API)等方式,获取拟用于训练所述目标语言模型的语料信息,再通过切词处理、中文转换处理等方式,对该语料信息进行预处理,获得拟用于训练目标语言模型的语料序列。
在此,该语料库中存储有大量拟用于训练目标语言模型的语料序列或语料信息,该语料库可位于该模型训练设备1中,或与该模型训练设备1通过网络相连接的第三方设备中。
本领域技术人员应能理解上述获取语料序列的方式仅为举例,其他现有的或今后可能出现的获取语料序列的方式如可适用于本发明,也应包含在本发明保护范围以内,并在此以引用方式包含于此。
迭代执行装置102设置所述目标语言模型的初始阶数信息以作为其当前训练阶数,并结合所述目标语言模型的最高阶数信息,迭代执行以下算法确定装置103、模型训练装置104和阶数更新装置105所执行的操作,直至所述当前训练阶数超过所述最高阶数信息。
具体地,迭代执行装置102设置该目标语言模型的初始阶数信息以作为其当前训练阶数,如设置该目标语音模型的初始阶数信息为1,将该阶数1作为当前训练阶数,并结合该目标语言模型的最高阶数信息,迭代执行以下算法确定装置103、模型训练装置104和阶数更新装置105所执行的操作,直至所述当前训练阶数超过所述最高阶数信息,如该目标语音模型为4阶语言模型,则该目标语言模型的最高阶数信息为4,迭代执行装置102从当前训练阶数1开始,迭代执行算法确定装置103、模型训练装置104和阶数更新装置105所执行的操作,直至该阶数更新装置105将该目标语言模型的当前训练阶数更新为超过该最高阶数信息4。
本领域技术人员应能理解上述迭代执行操作的方式仅为举例,其他现有的或今后可能出现的迭代执行操作的方式如可适用于本发明,也应包含在本发明保护范围以内,并在此以引用方式包含于此。
算法确定装置103根据所述当前训练阶数,确定与所述目标语言模型相对应的平滑算法。具体地,算法确定装置103确定与该目标语言模型相对应的平滑算法的方式包括但不限于:
1)直接根据该目标语言模型的当前训练阶数,确定与该目标语言模型相对应的平滑算法。例如,当该目标语言模型的当前训练阶数低于三阶,将katz平滑算法作为与该目标语言模型相对应的平滑算法。又如,当该目标语言模型的当前训练阶数高于二阶,将KN平滑算法作为与该目标语言模型相对应的平滑算法。
2)根据该目标语言模型的当前训练阶数,确定该语料序列在该当前训练阶数下的数据特征信息,再根据该数据特征信息,确定与该目标语言模型相对应的平滑算法。例如,当该语料序列在该当前训练阶数下的数据特征信息高于预定的第一数据数量阈值,将katz平滑算法作为与该目标语言模型相对应的平滑算法。又如,当该语料序列在该当前训练阶数下的数据特征信息低于预定的第二数据数量阈值,将KN平滑算法作为与该目标语言模型相对应的平滑算法。
本领域技术人员应能理解上述确定与目标语言模型相对应的平滑算法的方式仅为举例,其他现有的或今后可能出现的确定与目标语言模型相对应的平滑算法的方式如可适用于本发明,也应包含在本发明保护范围以内,并在此以引用方式包含于此。
模型训练装置104根据所述语料序列,通过所述平滑算法,对所述目标语言模型进行训练处理,以获得更新后的所述目标语言模型。具体地,模型训练装置104根据序列获取装置101所获取的语料序列,通过该算法确定装置103所确定的平滑算法,对该目标语言模型进行训练处理,例如,先计算确定该语料序列的概率值,再通过平滑算法,确定未出现在该语料序列中的目标序列的平滑概率值,再将该语料序列与概率值、该目标序列与平滑概率值存入该目标语言模型,以实现对该目标语言模型的训练处理,获得更新后的目标语言模型。
例如,假设序列获取装置101所获取的语料序列包括A、B,其中,A出现了两次;目标语言模型的当前训练阶数为1,算法确定装置103确定与该一阶目标语言模型相对应的平滑算法为katz平滑算法;模型训练装置104首先计算该语料序列A、B的概率值,如该语料序列A、B的概率值分别为2/3、1/3,再将上述语料序列与词库进行比较,并结合该一阶目标语言模型的当前训练阶数,获得在当前训练阶数为一阶的情况下,在该词库中出现而未在该语料序列中出现的一阶序列C,并将该一阶序列作为在一阶目标语言模型中的待平滑处理的一阶目标序列C,通过该katz平滑算法,平滑计算该语料序列A、B的概率值,该一阶目标序列C的平滑概率值,如,该语料序列A的概率值被平滑为1/2、语料序列B的概率值被平滑为1/3,该一阶目标序列C的平滑概率值为1/6;进而,再将该语料序列A、B与其概率值、该一阶目标序列C与其平滑概率值存入该目标语言模型,以实现对该目标语言模型的训练处理,获得更新后的目标语言模型。
本领域技术人员应能理解,在此,本发明所举的语料序列的数量及字母表示、语料序列的概率值、目标序列的概率值等仅为示例,不应对本发明产生任何限制。
本领域技术人员应能理解上述训练目标语言模型的方式仅为举例,其他现有的或今后可能出现的训练目标语言模型的方式如可适用于本发明,也应包含在本发明保护范围以内,并在此以引用方式包含于此。
阶数更新装置105更新所述当前训练阶数。具体地,当前述算法确定装置103、模型训练装置104完成其对应的操作,阶数更新装置105更新该目标语言模型的当前训练阶数,如将该目标语言模型的当前训练阶数加1、加2等。本领域技术人员应能理解上述更新当前训练阶数的方式仅为举例,其他现有的或今后可能出现的更新当前训练阶数的方式如可适用于本发明,也应包含在本发明保护范围以内,并在此以引用方式包含于此。
以下用一实施例对上述装置的操作进行详细描述:
例如,假设序列获取装置101所获取的语料序列包括A、B、C、AB、ABC,目标语言模型的最高阶数信息为3,即,该目标语言模型为3阶语言模型,迭代执行装置102设置该目标语言模型的初始阶数信息为1,以作为其当前训练阶数;接着,算法确定装置103根据该当前训练阶数为1,确定与该目标语言模型相对应的平滑算法,如katz平滑算法;随后,模型训练装置104根据该语料序列,通过所述平滑算法,对所述目标语言模型进行训练处理,如根据当前训练阶数1,计算A、B和C的概率值,再将该语料序列与词库进行比较,确定在词库中存在而未出现在该语料序列中的目标序列D,该目标序列D即为待平滑处理的目标序列,随后,该模型训练装置104采用katz平滑算法,确定该目标序列D的平滑概率值,分别将该A、B和C的概率值及D的平滑概率值存入该目标语言模型,以实现对该目标语言模型的训练处理,获得更新后的目标语言模型;接着,阶数更新装置105更新该当前训练阶数,将该当前训练阶数更新为2。
随后,迭代执行装置102判断该当前训练阶数2未超过最高阶数信息3,遂迭代执行算法确定装置103的操作,即,根据该当前训练阶数为2,确定与该目标语言模型相对应的平滑算法,如katz平滑算法;模型训练装置104根据当前训练阶数2,计算AB的概率值,再将该语料序列与词库进行比较,确定在词库中存在而未出现在该语料序列中的目标序列BE,该目标序列BE即为待平滑处理的目标序列,随后,该模型训练装置104采用katz平滑算法,确定该目标序列BE的平滑概率值,分别将该AB的概率值及BE的平滑概率值存入该目标语言模型,以实现对该目标语言模型的训练处理,获得更新后的目标语言模型;接着,阶数更新装置105继续更新该当前训练阶数,将该当前训练阶数更新为3。
然后,迭代执行装置102继续判断该当前训练阶数3未超过最高阶数信息3,遂继续迭代执行算法确定装置103的操作,即,根据该当前训练阶数3,确定与该目标语言模型相对应的平滑算法,如KN平滑算法;模型训练装置104根据当前训练阶数3,计算ABC的概率值,再将该语料序列与词库进行比较,确定在词库中存在而未出现在该语料序列中的目标序列ABF,该目标序列ABF即为待平滑处理的目标序列,随后,该模型训练装置104采用KN平滑算法,确定该目标序列ABF的平滑概率值,并分别将该ABC的概率值及ABF的平滑概率值存入该目标语言模型,以实现对该目标语言模型的训练处理,获得更新后的目标语言模型;接着,阶数更新装置105继续更新该当前训练阶数,将该当前训练阶数更新为4。
最后,迭代执行装置102判断该当前训练阶数4已经超过该目标语言模型的最高阶数信息3,遂停止执行迭代操作。
在此,本发明根据不同阶语言模型的特性,对不同阶语言模型采用不同的平滑算法,发挥不同平滑算法的优势,得到更好的建模效果。
优选地,模型训练设备1的各个装置之间是持续不断工作的。具体地,序列获取装置101获取拟用于训练目标语言模型的语料序列;迭代执行装置102设置所述目标语言模型的初始阶数信息以作为其当前训练阶数,并结合所述目标语言模型的最高阶数信息,迭代执行以下装置所执行的操作,直至所述当前训练阶数超过所述最高阶数信息:算法确定装置103根据所述当前训练阶数,确定与所述目标语言模型相对应的平滑算法;模型训练装置104根据所述语料序列,通过所述平滑算法,对所述目标语言模型进行训练处理,以获得更新后的所述目标语言模型;阶数更新装置105更新所述当前训练阶数。在此,本领域技术人员应理解“持续”是指模型训练设备1的各装置分别按照设定的或实时调整的工作模式要求进行语料序列的获取、初始阶数信息的设置、平滑算法的确定、目标语言模型的训练处理及当前训练阶数的更新,直至该模型训练设备1在较长时间内停止获取语料序列。
优选地,算法确定装置103还包括特征确定单元(未示出)和算法确定单元(未示出)。该特征确定单元根据所述当前训练阶数,确定所述语料序列在所述当前训练阶数下的数据特征信息;算法确定单元根据所述数据特征信息,确定与所述目标语言模型相对应的平滑算法。具体地,特征确定单元根据该目标语言模型的当前训练阶数,确定该语料序列在所述当前训练阶数下的数据特征信息,如该语料序列的数据量较为充足、较为稀疏等;算法确定单元根据该语料序列的数据特征信息,确定与该目标语言模型相对应的平滑算法,如当该语料序列的数据量较为充足,则采用katz平滑算法,当该语料序列的数据量较为稀疏,则采用KN平滑算法。
例如,对于一阶目标语言模型,语料序列在该一阶目标语言模型中的一阶语料序列的数据量较为充足,则算法确定单元将katz平滑算法作为与该一阶目标语言模型相对应的平滑算法。对于三阶目标语言模型,其中,该语料序列在该三阶目标语言模型中的三阶语料序列的数据量较为稀疏,则算法确定单元将KN平滑算法作为与该三阶目标语言模型相对应的平滑算法。
例如,对于语料信息ABCDE,序列获取装置101通过对该语料信息进行切词处理,获得一阶语料序列A、B、C、D和E,获得二阶语料序列AB、BC、CD和DE,获得三阶语料序列ABC、BCD和CDE,则特征确定单元确定上述一阶语料序列在一阶目标语言模型中的数据量较为充足,上述二阶语料序列在二阶目标语言模型中的数据量也较为充足,则算法确定单元确定将katz平滑算法作为与该一阶目标语言模型、二阶目标语言模型相对应的平滑算法;相似地,特征确定单元确定上述三阶语料序列在三阶目标语言模型中的数据量较为稀疏,则算法确定单元确定将KN平滑算法作为与该三阶目标语言模型相对应的平滑算法。
更优选地,该算法确定单元当所述数据特征信息高于预定的第一数据数量阈值,将katz平滑算法作为与所述目标语言模型相对应的平滑算法。具体地,模型训练设备1可以设置第一数据数量阈值,该第一数据数量阈值用于判断语料序列在目标语言模型中的数据特征信息是否充足,当该语料序列在该目标语言模型的当前训练阶数下的数据特征信息高于该预定的第一数据数量阈值,如该语料序列的数据量高于该第一数据数量阈值,算法确定单元将katz平滑算法作为与该目标语言模型相对应的平滑算法。
例如,假设第一数据数量阈值为10万,即使对于三阶语料序列,当该三阶语料序列在三阶目标语言模型中的数据特征信息高于10万时,算法确定单元仍将katz平滑算法作为与该三阶目标语言模型相对应的平滑算法。
更优选地,该算法确定单元当所述数据特征信息低于预定的第二数据数量阈值,将KN平滑算法作为与所述目标语言模型相对应的平滑算法。具体地,模型训练设备1可以设置第二数据数量阈值,该第二数据数量阈值用于判断语料序列在目标语言模型中的数据特征信息是否稀疏,当该语料序列在该目标语言模型的当前训练阶数下的数据特征信息低于该预定的第二数据数量阈值,算法确定单元将KN平滑算法作为与所述目标语言模型相对应的平滑算法。
例如,假设第二数据数量阈值为5万,即使对于一阶语料序列,当该一阶语料序列在一阶目标语言模型中的数据特征信息低于5万时,算法确定单元仍将KN平滑算法作为与该一阶目标语言模型相对应的平滑算法。
优选地,算法确定装置103当所述当前训练阶数低于三阶,将katz平滑算法作为与所述目标语言模型相对应的平滑算法。具体地,算法确定装置103还可以直接根据该目标语言模型的当前训练阶数,确定对应的平滑算法,如当该目标语言模型的当前训练阶数低于三阶,算法确定装置103直接将katz平滑算法作为与所述目标语言模型相对应的平滑算法。
优选地,算法确定装置103当所述当前训练阶数高于二阶,将KN平滑算法作为与所述目标语言模型相对应的平滑算法。具体地,算法确定装置103还可以直接根据该目标语言模型的当前训练阶数,确定对应的平滑算法,如当该目标语言模型的当前训练阶数高于二阶,算法确定装置103直接将KN平滑算法作为与所述目标语言模型相对应的平滑算法。
优选地,模型训练装置104根据所述语料序列与词库的比较结果,并结合所述当前训练阶数,确定待平滑处理的目标序列;通过所述平滑算法,确定所述目标序列的平滑概率值;根据所述平滑概率值,对所述目标语言模型进行训练处理,以获得更新后的所述目标语言模型。具体地,模型训练装置104根据序列获取装置101所获取的语料序列,将该语料序列与词库进行比较,获得在该词库中出现而未在该语料序列中出现的序列,再根据该序列,并结合该目标语言模型的当前训练阶数,确定待平滑处理的目标序列,如当该目标语言模型的当前训练阶数为1,则将上述比较获得的序列中的一阶序列作为待平滑处理的目标序列;随后,该模型训练装置104再通过与该目标语言模型相对应的平滑算法,确定该待平滑处理的目标序列的平滑概率值;将该平滑概率值存入该目标语言模型中,以实现对该目标语言模型的训练处理,获得更新后的目标语言模型。
例如,对于语料信息ABCDE,序列获取装置101通过对该语料信息进行切词处理,获得一阶语料序列A、B、C、D和E,获得二阶语料序列AB、BC、CD和DE,获得三阶语料序列ABC、BCD和CDE,模型训练装置104将上述语料序列与词库进行比较,并结合目标语言模型的当前训练阶数,获得在当前训练阶数为一阶的情况下,在该词库中出现而未在该语料序列中出现的一阶序列F、G,并将该一阶序列作为在一阶目标语言模型中的待平滑处理的一阶目标序列F、G,相似地,获得二阶目标语言模型中的待平滑处理的二阶目标序列AF、BH,获得三阶目标语言模型中的待平滑处理的三阶目标序列BCI等。随后,该模型训练装置104再通过与该目标语言模型相对应的平滑算法,确定该待平滑处理的目标序列的平滑概率值,如采用katz算法,确定一阶目标序列F、G及二阶目标序列BH的平滑概率值,采用KN算法,确定三阶目标序列BCI的平滑概率值;进一步地,将上述各目标序列与平滑概率值的映射关系存入该目标语言模型中,以实现对该目标语言模型的训练处理,获得更新后的目标语言模型。
在此,词库中存储有大量的各个阶数的序列,该词库可位于模型训练设备1中,也可位于与该模型训练设备1通过网络相连接的第三方设备中。
在一优选实施例中,序列获取装置101获取拟用于训练所述目标语言模型的语料信息;对所述语料信息进行预处理,以获得所述语料序列;其中,所述预处理包括以下至少任一项:
-切词处理;
-中文转换处理。
具体地,序列获取装置101例如通过调用语料库所提供的应用程序接口(API)等方式,自该语料库获取拟用于训练所述目标语言模型的语料信息,该语料信息例如未经切词处理或未经中文转换处理的一整段文字信息,或未经中文转换处理的多个语料序列;随后,该序列获取装置101对所述语料信息进行预处理,如切词处理、中文转换处理等,以获得拟用于训练所述目标语言模型的语料序列。
例如,当该语料信息为未经切词处理一整段文字信息,序列获取装置101对该段文字信息进行切词处理,以获得与该目标语言模型的当前训练阶数相对应的语料序列,作为拟用于训练该目标语言模型的语料序列,如当该目标语言模型的当前训练阶数为1时,序列获取装置101通过对该段文字信息进行切词处理,获得一阶语料序列,作为拟用于训练该一阶目标语言模型的语料序列;当该目标语言模型的当前训练阶数为2时,序列获取装置101通过对该段文字信息进行切词处理,获得二阶语料序列等,作为拟用于训练该二阶目标语言模型的语料序列。
又如,当该语料信息为未经切词处理及未经中文转换处理的一整段文字信息,序列获取装置101首先对该段文字信息进行中文转换处理,将其中包含的英文序列、阿拉伯数字等非中文的序列转换成中文序列,再对该段经中文转换处理后得到的文字信息进行切词处理,以获得与该目标语言模型的当前训练阶数相对应的语料序列,作为拟用于训练该目标语言模型的语料序列。
再如,当该语料信息为未经中文转换处理的多个语料序列,该多个语料序列中存在非中文的序列,如英文序列、阿拉伯数字等,该序列获取装置101通过中文转换处理,将该非中文的序列转换成中文序列,以将该经中文转换处理后的多个语料序列作为拟用于训练该目标语言模型的语料序列。
在此,本发明对语料信息进行预处理,获得拟用于训练目标语言模型的语料序列,再根据该经预处理后的语料序列,对语言模型进行训练处理,获得更好的建模效果。
本领域技术人员应能理解上述预处理的方式仅为举例,其他现有的或今后可能出现的预处理的方式如可适用于本发明,也应包含在本发明保护范围以内,并在此以引用方式包含于此。
图2示出根据本发明一个优选实施例的用于根据语料序列训练语言模型的设备示意图。该模型训练设备1还包括语音获取装置206、序列确定装置207和信息提供装置208。以下对该优选实施例进行详细描述:具体地,序列获取装置201获取拟用于训练目标语言模型的语料序列;迭代执行装置202设置所述目标语言模型的初始阶数信息以作为其当前训练阶数,并结合所述目标语言模型的最高阶数信息,迭代执行以下装置所执行的操作,直至所述当前训练阶数超过所述最高阶数信息:算法确定装置203根据所述当前训练阶数,确定与所述目标语言模型相对应的平滑算法;模型训练装置204根据所述语料序列,通过所述平滑算法,对所述目标语言模型进行训练处理,以获得更新后的所述目标语言模型;阶数更新装置205更新所述当前训练阶数;语音获取装置206获取用户为目标应用输入的语音序列;序列确定装置207根据所述更新后的目标语言模型,确定与所述语音序列相对应的字符序列;信息提供装置208将与所述字符序列相对应的信息提供给所述用户。其中,序列获取装置201、迭代执行装置202、算法确定装置203、模型训练装置204和阶数更新装置205与图1所示对应装置相同或基本相同,故此处不再赘述,并通过引用的方式包含于此。
其中,语音获取装置206获取用户为目标应用输入的语音序列。具体地,用户例如通过与用户设备的语音采集装置的交互,在目标应用中输入语音序列,语音获取装置206例如通过调用该用户设备所提供的应用程序接口(API)等方式,获取该用户为目标应用所输入的语音序列。
序列确定装置207根据所述更新后的目标语言模型,确定与所述语音序列相对应的字符序列。具体地,序列确定装置207根据该语音获取装置206所获取的语音序列,通过语音识别处理,确定该语音序列的发音信息,进而,根据该发音信息,在该更新后的目标语言模型中进行匹配查询,确定与该语音序列相对应的字符序列。例如,用户通过与用户设备的语音采集装置的交互,输入了语音序列“weibo”,语音获取装置206例如通过调用该用户设备所提供的应用程序接口(API)等方式,获取了该用户输入的语音序列“weibo”;随后,序列确定装置207根据该语音序列“weibo”,通过语音识别处理,确定该语音序列的发音信息“weibo”,进而,根据该发音信息,在该更新后的目标语言模型中进行匹配查询,确定与该语音序列相对应的字符序列“围脖”、“微博”、“微波”、“微薄”等。优选地,序列确定装置207根据该更新后的目标语言模型,确定与该语音序列相对应的多个候选字符序列之后,还可以根据该多个候选字符序列的概率值或平滑概率值,选择对应的字符序列,如选择概率值或平滑概率值大于预定概率阈值的候选字符序列,作为与该语音序列对应的字符序列,或者,按照概率值或平滑概率值从大到小的顺序,为该多个候选字符序列进行排序,将排在前列的候选字符序列作为与该语音序列对应的字符序列,如将排在前五位的候选字符序列作为与该语音序列对应的字符序列。
信息提供装置208将与所述字符序列相对应的信息提供给所述用户。例如,当该目标应用为语音输入应用,该信息提供装置208通过调用诸如JSP、ASP或PHP等动态网页技术,将所述字符序列作为语音输入候选词条提供给该用户;当该目标应用为语音搜索应用;该信息提供装置208通过调用诸如JSP、ASP或PHP等动态网页技术,将根据该字符序列搜索获得的一个或多个搜索结果提供给该用户。
在此,本发明与语音识别相结合,提高了语音识别的准确率。
优选地,该目标应用为语音输入应用;其中,该信息提供装置208将所述字符序列作为语音输入候选词条提供给所述用户。例如,当该目标应用为语音输入应用,用户通过与用户设备的语音采集装置的交互,在语音输入应用中输入了语音序列“weibo”,语音获取装置206例如通过调用该用户设备所提供的应用程序接口(API)等方式,获取了该用户输入的语音序列“weibo”;随后,序列确定装置207根据该语音序列“weibo”,通过语音识别处理,确定该语音序列的发音信息“weibo”,进而,根据该发音信息,在该更新后的目标语言模型中进行匹配查询,确定与该语音序列相对应的字符序列“围脖”、“微博”、“微波”、“微薄”等;进而,信息提供装置208通过调用诸如JSP、ASP或PHP等动态网页技术,将上述字符序列“围脖”、“微博”、“微波”、“微薄”等作为语音输入候选词条提供给该用户,以供该用户选择输入。
优选地,该目标应用为语音搜索应用;其中,该设备还包括搜索获取装置(未示出),该搜索获取装置将所述字符序列作为所述用户的查询序列,获取与所述查询序列相对应的一个或多个搜索结果;其中,所述信息提供装置208将所述一个或多个搜索结果提供给所述用户。具体地,当该目标应用为语音搜索应用,序列确定装置207根据该更新后的目标语言模型,确定与该语音序列相对应的字符序列;搜索获取装置根据该序列确定装置207所确定的字符序列,将该字符序列作为该用户的查询序列,进行匹配查询,获取与该查询序列相对应的一个或多个搜索结果;随后,信息提供装置208通过调用诸如JSP、ASP或PHP等动态网页技术,将该一个或多个搜索结果提供给该用户。
例如,当该目标应用为语音搜索应用,用户通过与用户设备的语音采集装置的交互,在语音输入应用中输入了语音序列“weibo”,语音获取装置206例如通过调用该用户设备所提供的应用程序接口(API)等方式,获取了该用户输入的语音序列“weibo”;随后,序列确定装置207根据该语音序列“weibo”,通过语音识别处理,确定该语音序列的发音信息“weibo”,进而,根据该发音信息,在该更新后的目标语言模型中进行匹配查询,确定与该语音序列相对应的字符序列“围脖”、“微博”、“微波”、“微薄”;进而,搜索获取装置根据该序列确定装置207所确定的字符序列,将该字符序列“围脖”、“微博”、“微波”、“微薄”作为该用户的查询序列,进行匹配查询,获取与该查询序列相对应的一个或多个搜索结果;随后,信息提供装置208通过调用诸如JSP、ASP或PHP等动态网页技术,将与该字符序列“围脖”、“微博”、“微波”、“微薄”相对应的一个或多个搜索结果提供给该用户,供该用户浏览。
图3示出根据本发明另一个方面的用于根据语料序列训练语言模型的方法流程图。
在步骤S301中,模型训练设备1获取拟用于训练目标语言模型的语料序列。具体地,在步骤S301中,模型训练设备1例如通过调用语料库所提供的应用程序接口(API)等方式,自该语料库获取拟用于训练目标语言模型的语料序列;或者,在步骤S301中,模型训练设备1例如通过调用语料库所提供的应用程序接口(API)等方式,获取拟用于训练所述目标语言模型的语料信息,再通过切词处理、中文转换处理等方式,对该语料信息进行预处理,获得拟用于训练目标语言模型的语料序列。
在此,该语料库中存储有大量拟用于训练目标语言模型的语料序列或语料信息,该语料库可位于该模型训练设备1中,或与该模型训练设备1通过网络相连接的第三方设备中。
本领域技术人员应能理解上述获取语料序列的方式仅为举例,其他现有的或今后可能出现的获取语料序列的方式如可适用于本发明,也应包含在本发明保护范围以内,并在此以引用方式包含于此。
在步骤S302中,模型训练设备1设置所述目标语言模型的初始阶数信息以作为其当前训练阶数,并结合所述目标语言模型的最高阶数信息,迭代执行以下步骤S303、S304和S305所执行的操作,直至所述当前训练阶数超过所述最高阶数信息。
具体地,在步骤S302中,模型训练设备1设置该目标语言模型的初始阶数信息以作为其当前训练阶数,如设置该目标语音模型的初始阶数信息为1,将该阶数1作为当前训练阶数,并结合该目标语言模型的最高阶数信息,迭代执行以下步骤S303、S304和S305所执行的操作,直至所述当前训练阶数超过所述最高阶数信息,如该目标语音模型为4阶语言模型,则该目标语言模型的最高阶数信息为4,在步骤S302中,模型训练设备1从当前训练阶数1开始,迭代执行步骤S303、S304和S305所执行的操作,直至在步骤S305中,模型训练设备1将该目标语言模型的当前训练阶数更新为超过该最高阶数信息4。
本领域技术人员应能理解上述迭代执行操作的方式仅为举例,其他现有的或今后可能出现的迭代执行操作的方式如可适用于本发明,也应包含在本发明保护范围以内,并在此以引用方式包含于此。
在步骤S303中,模型训练设备1根据所述当前训练阶数,确定与所述目标语言模型相对应的平滑算法。具体地,在步骤S303中,模型训练设备1确定与该目标语言模型相对应的平滑算法的方式包括但不限于:
1)直接根据该目标语言模型的当前训练阶数,确定与该目标语言模型相对应的平滑算法。例如,当该目标语言模型的当前训练阶数低于三阶,将katz平滑算法作为与该目标语言模型相对应的平滑算法。又如,当该目标语言模型的当前训练阶数高于二阶,将KN平滑算法作为与该目标语言模型相对应的平滑算法。
2)根据该目标语言模型的当前训练阶数,确定该语料序列在该当前训练阶数下的数据特征信息,再根据该数据特征信息,确定与该目标语言模型相对应的平滑算法。例如,当该语料序列在该当前训练阶数下的数据特征信息高于预定的第一数据数量阈值,将katz平滑算法作为与该目标语言模型相对应的平滑算法。又如,当该语料序列在该当前训练阶数下的数据特征信息低于预定的第二数据数量阈值,将KN平滑算法作为与该目标语言模型相对应的平滑算法。
本领域技术人员应能理解上述确定与目标语言模型相对应的平滑算法的方式仅为举例,其他现有的或今后可能出现的确定与目标语言模型相对应的平滑算法的方式如可适用于本发明,也应包含在本发明保护范围以内,并在此以引用方式包含于此。
在步骤S304中,模型训练设备1根据所述语料序列,通过所述平滑算法,对所述目标语言模型进行训练处理,以获得更新后的所述目标语言模型。具体地,在步骤S304中,模型训练设备1根据在步骤S301中所获取的语料序列,通过在步骤S303中所确定的平滑算法,对该目标语言模型进行训练处理,例如,先计算确定该语料序列的概率值,再通过平滑算法,确定未出现在该语料序列中的目标序列的平滑概率值,再将该语料序列与概率值、该目标序列与平滑概率值存入该目标语言模型,以实现对该目标语言模型的训练处理,获得更新后的目标语言模型。
例如,假设在步骤S301中,模型训练设备1所获取的语料序列包括A、B,其中,A出现了两次;目标语言模型的当前训练阶数为1,在步骤S303中,模型训练设备1确定与该一阶目标语言模型相对应的平滑算法为katz平滑算法;在步骤S304中,模型训练设备1首先计算该语料序列A、B的概率值,如该语料序列A、B的概率值分别为2/3、1/3,再将上述语料序列与词库进行比较,并结合该一阶目标语言模型的当前训练阶数,获得在当前训练阶数为一阶的情况下,在该词库中出现而未在该语料序列中出现的一阶序列C,并将该一阶序列作为在一阶目标语言模型中的待平滑处理的一阶目标序列C,通过该katz平滑算法,平滑计算该语料序列A、B的概率值,该一阶目标序列C的平滑概率值,如,该语料序列A的概率值被平滑为1/2、语料序列B的概率值被平滑为1/3,该一阶目标序列C的平滑概率值为1/6;进而,再将该语料序列A、B与其概率值、该一阶目标序列C与其平滑概率值存入该目标语言模型,以实现对该目标语言模型的训练处理,获得更新后的目标语言模型。
本领域技术人员应能理解,在此,本发明所举的语料序列的数量及字母表示、语料序列的概率值、目标序列的概率值等仅为示例,不应对本发明产生任何限制。
本领域技术人员应能理解上述训练目标语言模型的方式仅为举例,其他现有的或今后可能出现的训练目标语言模型的方式如可适用于本发明,也应包含在本发明保护范围以内,并在此以引用方式包含于此。
在步骤S305中,模型训练设备1更新所述当前训练阶数。具体地,当前述步骤S303、S304完成其对应的操作,在步骤S305中,模型训练设备1更新该目标语言模型的当前训练阶数,如将该目标语言模型的当前训练阶数加1、加2等。本领域技术人员应能理解上述更新当前训练阶数的方式仅为举例,其他现有的或今后可能出现的更新当前训练阶数的方式如可适用于本发明,也应包含在本发明保护范围以内,并在此以引用方式包含于此。
以下用一实施例对上述步骤的操作进行详细描述:
例如,假设在步骤S301中,模型训练设备1所获取的语料序列包括A、B、C、AB、ABC,目标语言模型的最高阶数信息为3,即,该目标语言模型为3阶语言模型,在步骤S302中,模型训练设备1设置该目标语言模型的初始阶数信息为1,以作为其当前训练阶数;接着,在步骤S303中,模型训练设备1根据该当前训练阶数为1,确定与该目标语言模型相对应的平滑算法,如katz平滑算法;随后,在步骤S304中,模型训练设备1根据该语料序列,通过所述平滑算法,对所述目标语言模型进行训练处理,如根据当前训练阶数1,计算A、B和C的概率值,再将该语料序列与词库进行比较,确定在词库中存在而未出现在该语料序列中的目标序列D,该目标序列D即为待平滑处理的目标序列,随后,该在步骤S304中,模型训练设备1采用katz平滑算法,确定该目标序列D的平滑概率值,分别将该A、B和C的概率值及D的平滑概率值存入该目标语言模型,以实现对该目标语言模型的训练处理,获得更新后的目标语言模型;接着,在步骤S305中,模型训练设备1更新该当前训练阶数,将该当前训练阶数更新为2。
随后,在步骤S302中,模型训练设备1判断该当前训练阶数2未超过最高阶数信息3,遂迭代执行步骤S303的操作,即,根据该当前训练阶数为2,确定与该目标语言模型相对应的平滑算法,如katz平滑算法;在步骤S304中,模型训练设备1根据当前训练阶数2,计算AB的概率值,再将该语料序列与词库进行比较,确定在词库中存在而未出现在该语料序列中的目标序列BE,该目标序列BE即为待平滑处理的目标序列,随后,在步骤S304中,模型训练设备1采用katz平滑算法,确定该目标序列BE的平滑概率值,分别将该AB的概率值及BE的平滑概率值存入该目标语言模型,以实现对该目标语言模型的训练处理,获得更新后的目标语言模型;接着,在步骤S305中,模型训练设备1继续更新该当前训练阶数,将该当前训练阶数更新为3。
然后,在步骤S302中,模型训练设备1继续判断该当前训练阶数3未超过最高阶数信息3,遂继续迭代执行步骤S303的操作,即,根据该当前训练阶数3,确定与该目标语言模型相对应的平滑算法,如KN平滑算法;在步骤S304中,模型训练设备1根据当前训练阶数3,计算ABC的概率值,再将该语料序列与词库进行比较,确定在词库中存在而未出现在该语料序列中的目标序列ABF,该目标序列ABF即为待平滑处理的目标序列,随后,在步骤S304中,模型训练设备1采用KN平滑算法,确定该目标序列ABF的平滑概率值,并分别将该ABC的概率值及ABF的平滑概率值存入该目标语言模型,以实现对该目标语言模型的训练处理,获得更新后的目标语言模型;接着,在步骤S305中,模型训练设备1继续更新该当前训练阶数,将该当前训练阶数更新为4。
最后,在步骤S302中,模型训练设备1判断该当前训练阶数4已经超过该目标语言模型的最高阶数信息3,遂停止执行迭代操作。
在此,本发明根据不同阶语言模型的特性,对不同阶语言模型采用不同的平滑算法,发挥不同平滑算法的优势,得到更好的建模效果。
优选地,模型训练设备1的各个步骤之间是持续不断工作的。具体地,在步骤S301中,模型训练设备1获取拟用于训练目标语言模型的语料序列;在步骤S302中,模型训练设备1设置所述目标语言模型的初始阶数信息以作为其当前训练阶数,并结合所述目标语言模型的最高阶数信息,迭代执行以下步骤所执行的操作,直至所述当前训练阶数超过所述最高阶数信息:在步骤S303中,模型训练设备1根据所述当前训练阶数,确定与所述目标语言模型相对应的平滑算法;在步骤S304中,模型训练设备1根据所述语料序列,通过所述平滑算法,对所述目标语言模型进行训练处理,以获得更新后的所述目标语言模型;在步骤S305中,模型训练设备1更新所述当前训练阶数。在此,本领域技术人员应理解“持续”是指模型训练设备1的各步骤分别按照设定的或实时调整的工作模式要求进行语料序列的获取、初始阶数信息的设置、平滑算法的确定、目标语言模型的训练处理及当前训练阶数的更新,直至该模型训练设备1在较长时间内停止获取语料序列。
优选地,步骤S303还包括子步骤S3031(未示出)和子步骤S3032(未示出)。在子步骤S3031中,模型训练设备1根据所述当前训练阶数,确定所述语料序列在所述当前训练阶数下的数据特征信息;在子步骤S3032中,模型训练设备1根据所述数据特征信息,确定与所述目标语言模型相对应的平滑算法。具体地,在子步骤S3031中,模型训练设备1根据该目标语言模型的当前训练阶数,确定该语料序列在所述当前训练阶数下的数据特征信息,如该语料序列的数据量较为充足、较为稀疏等;在子步骤S3032中,模型训练设备1根据该语料序列的数据特征信息,确定与该目标语言模型相对应的平滑算法,如当该语料序列的数据量较为充足,则采用katz平滑算法,当该语料序列的数据量较为稀疏,则采用KN平滑算法。
例如,对于一阶目标语言模型,语料序列在该一阶目标语言模型中的一阶语料序列的数据量较为充足,则在子步骤S3032中,模型训练设备1将katz平滑算法作为与该一阶目标语言模型相对应的平滑算法。对于三阶目标语言模型,其中,该语料序列在该三阶目标语言模型中的三阶语料序列的数据量较为稀疏,则在子步骤S3032中,模型训练设备1将KN平滑算法作为与该三阶目标语言模型相对应的平滑算法。
例如,对于语料信息ABCDE,在步骤S301中,模型训练设备1通过对该语料信息进行切词处理,获得一阶语料序列A、B、C、D和E,获得二阶语料序列AB、BC、CD和DE,获得三阶语料序列ABC、BCD和CDE,则在子步骤S3031中,模型训练设备1确定上述一阶语料序列在一阶目标语言模型中的数据量较为充足,上述二阶语料序列在二阶目标语言模型中的数据量也较为充足,则在子步骤S3032中,模型训练设备1确定将katz平滑算法作为与该一阶目标语言模型、二阶目标语言模型相对应的平滑算法;相似地,在子步骤S3031中,模型训练设备1确定上述三阶语料序列在三阶目标语言模型中的数据量较为稀疏,则在子步骤S3032中,模型训练设备1确定将KN平滑算法作为与该三阶目标语言模型相对应的平滑算法。
更优选地,在子步骤S3032中,模型训练设备1当所述数据特征信息高于预定的第一数据数量阈值,将katz平滑算法作为与所述目标语言模型相对应的平滑算法。具体地,模型训练设备1可以设置第一数据数量阈值,该第一数据数量阈值用于判断语料序列在目标语言模型中的数据特征信息是否充足,当该语料序列在该目标语言模型的当前训练阶数下的数据特征信息高于该预定的第一数据数量阈值,如该语料序列的数据量高于该第一数据数量阈值,在子步骤S3032中,模型训练设备1将katz平滑算法作为与该目标语言模型相对应的平滑算法。
例如,假设第一数据数量阈值为10万,即使对于三阶语料序列,当该三阶语料序列在三阶目标语言模型中的数据特征信息高于10万时,在子步骤S3032中,模型训练设备1仍将katz平滑算法作为与该三阶目标语言模型相对应的平滑算法。
更优选地,在子步骤S3032中,模型训练设备1当所述数据特征信息低于预定的第二数据数量阈值,将KN平滑算法作为与所述目标语言模型相对应的平滑算法。具体地,模型训练设备1可以设置第二数据数量阈值,该第二数据数量阈值用于判断语料序列在目标语言模型中的数据特征信息是否稀疏,当该语料序列在该目标语言模型的当前训练阶数下的数据特征信息低于该预定的第二数据数量阈值,在子步骤S3032中,模型训练设备1将KN平滑算法作为与所述目标语言模型相对应的平滑算法。
例如,假设第二数据数量阈值为5万,即使对于一阶语料序列,当该一阶语料序列在一阶目标语言模型中的数据特征信息低于5万时,在子步骤S3032中,模型训练设备1仍将KN平滑算法作为与该一阶目标语言模型相对应的平滑算法。
优选地,在步骤S303中,模型训练设备1当所述当前训练阶数低于三阶,将katz平滑算法作为与所述目标语言模型相对应的平滑算法。具体地,在步骤S303中,模型训练设备1还可以直接根据该目标语言模型的当前训练阶数,确定对应的平滑算法,如当该目标语言模型的当前训练阶数低于三阶,在步骤S303中,模型训练设备1直接将katz平滑算法作为与所述目标语言模型相对应的平滑算法。
优选地,在步骤S303中,模型训练设备1当所述当前训练阶数高于二阶,将KN平滑算法作为与所述目标语言模型相对应的平滑算法。具体地,在步骤S303中,模型训练设备1还可以直接根据该目标语言模型的当前训练阶数,确定对应的平滑算法,如当该目标语言模型的当前训练阶数高于二阶,在步骤S303中,模型训练设备1直接将KN平滑算法作为与所述目标语言模型相对应的平滑算法。
优选地,在步骤S304中,模型训练设备1根据所述语料序列与词库的比较结果,并结合所述当前训练阶数,确定待平滑处理的目标序列;通过所述平滑算法,确定所述目标序列的平滑概率值;根据所述平滑概率值,对所述目标语言模型进行训练处理,以获得更新后的所述目标语言模型。具体地,在步骤S304中,模型训练设备1根据在步骤S301中所获取的语料序列,将该语料序列与词库进行比较,获得在该词库中出现而未在该语料序列中出现的序列,再根据该序列,并结合该目标语言模型的当前训练阶数,确定待平滑处理的目标序列,如当该目标语言模型的当前训练阶数为1,则将上述比较获得的序列中的一阶序列作为待平滑处理的目标序列;随后,在步骤S304中,模型训练设备1再通过与该目标语言模型相对应的平滑算法,确定该待平滑处理的目标序列的平滑概率值;将该平滑概率值存入该目标语言模型中,以实现对该目标语言模型的训练处理,获得更新后的目标语言模型。
例如,对于语料信息ABCDE,在步骤S301中,模型训练设备1通过对该语料信息进行切词处理,获得一阶语料序列A、B、C、D和E,获得二阶语料序列AB、BC、CD和DE,获得三阶语料序列ABC、BCD和CDE,在步骤S304中,模型训练设备1将上述语料序列与词库进行比较,并结合目标语言模型的当前训练阶数,获得在当前训练阶数为一阶的情况下,在该词库中出现而未在该语料序列中出现的一阶序列F、G,并将该一阶序列作为在一阶目标语言模型中的待平滑处理的一阶目标序列F、G,相似地,获得二阶目标语言模型中的待平滑处理的二阶目标序列AF、BH,获得三阶目标语言模型中的待平滑处理的三阶目标序列BCI等。随后,在步骤S304中,模型训练设备1再通过与该目标语言模型相对应的平滑算法,确定该待平滑处理的目标序列的平滑概率值,如采用katz算法,确定一阶目标序列F、G及二阶目标序列BH的平滑概率值,采用KN算法,确定三阶目标序列BCI的平滑概率值;进一步地,将上述各目标序列与平滑概率值的映射关系存入该目标语言模型中,以实现对该目标语言模型的训练处理,获得更新后的目标语言模型。
在此,词库中存储有大量的各个阶数的序列,该词库可位于模型训练设备1中,也可位于与该模型训练设备1通过网络相连接的第三方设备中。
在一优选实施例中,在步骤S301中,模型训练设备1获取拟用于训练所述目标语言模型的语料信息;对所述语料信息进行预处理,以获得所述语料序列;其中,所述预处理包括以下至少任一项:
-切词处理;
-中文转换处理。
具体地,在步骤S301中,模型训练设备1例如通过调用语料库所提供的应用程序接口(API)等方式,自该语料库获取拟用于训练所述目标语言模型的语料信息,该语料信息例如未经切词处理或未经中文转换处理的一整段文字信息,或未经中文转换处理的多个语料序列;随后,在步骤S301中,模型训练设备1对所述语料信息进行预处理,如切词处理、中文转换处理等,以获得拟用于训练所述目标语言模型的语料序列。
例如,当该语料信息为未经切词处理一整段文字信息,在步骤S301中,模型训练设备1对该段文字信息进行切词处理,以获得与该目标语言模型的当前训练阶数相对应的语料序列,作为拟用于训练该目标语言模型的语料序列,如当该目标语言模型的当前训练阶数为1时,在步骤S301中,模型训练设备1通过对该段文字信息进行切词处理,获得一阶语料序列,作为拟用于训练该一阶目标语言模型的语料序列;当该目标语言模型的当前训练阶数为2时,在步骤S301中,模型训练设备1通过对该段文字信息进行切词处理,获得二阶语料序列等,作为拟用于训练该二阶目标语言模型的语料序列。
又如,当该语料信息为未经切词处理及未经中文转换处理的一整段文字信息,在步骤S301中,模型训练设备1首先对该段文字信息进行中文转换处理,将其中包含的英文序列、阿拉伯数字等非中文的序列转换成中文序列,再对该段经中文转换处理后得到的文字信息进行切词处理,以获得与该目标语言模型的当前训练阶数相对应的语料序列,作为拟用于训练该目标语言模型的语料序列。
再如,当该语料信息为未经中文转换处理的多个语料序列,该多个语料序列中存在非中文的序列,如英文序列、阿拉伯数字等,在步骤S301中,模型训练设备1通过中文转换处理,将该非中文的序列转换成中文序列,以将该经中文转换处理后的多个语料序列作为拟用于训练该目标语言模型的语料序列。
在此,本发明对语料信息进行预处理,获得拟用于训练目标语言模型的语料序列,再根据该经预处理后的语料序列,对语言模型进行训练处理,获得更好的建模效果。
本领域技术人员应能理解上述预处理的方式仅为举例,其他现有的或今后可能出现的预处理的方式如可适用于本发明,也应包含在本发明保护范围以内,并在此以引用方式包含于此。
图4示出根据本发明一个优选实施例的用于根据语料序列训练语言模型的方法流程图。以下对该优选实施例进行详细描述:具体地,在步骤S401中,模型训练设备1获取拟用于训练目标语言模型的语料序列;在步骤S402中,模型训练设备1设置所述目标语言模型的初始阶数信息以作为其当前训练阶数,并结合所述目标语言模型的最高阶数信息,迭代执行以下步骤S403、S404和S405所执行的操作,直至所述当前训练阶数超过所述最高阶数信息:在步骤S403中,模型训练设备1根据所述当前训练阶数,确定与所述目标语言模型相对应的平滑算法;在步骤S404中,模型训练设备1根据所述语料序列,通过所述平滑算法,对所述目标语言模型进行训练处理,以获得更新后的所述目标语言模型;在步骤S405中,模型训练设备1更新所述当前训练阶数;在步骤S406中,模型训练设备1获取用户为目标应用输入的语音序列;在步骤S407中,模型训练设备1根据所述更新后的目标语言模型,确定与所述语音序列相对应的字符序列;在步骤S408中,模型训练设备1将与所述字符序列相对应的信息提供给所述用户。其中,步骤S401-S405与图3所示对应步骤相同或基本相同,故此处不再赘述,并通过引用的方式包含于此。
在步骤S406中,模型训练设备1获取用户为目标应用输入的语音序列。具体地,用户例如通过与用户设备的语音采集装置的交互,在目标应用中输入语音序列,在步骤S406中,模型训练设备1例如通过调用该用户设备所提供的应用程序接口(API)等方式,获取该用户为目标应用所输入的语音序列。
在步骤S407中,模型训练设备1根据所述更新后的目标语言模型,确定与所述语音序列相对应的字符序列。具体地,在步骤S407中,模型训练设备1根据在步骤S406中所获取的语音序列,通过语音识别处理,确定该语音序列的发音信息,进而,根据该发音信息,在该更新后的目标语言模型中进行匹配查询,确定与该语音序列相对应的字符序列。例如,用户通过与用户设备的语音采集装置的交互,输入了语音序列“weibo”,在步骤S406中,模型训练设备1例如通过调用该用户设备所提供的应用程序接口(API)等方式,获取了该用户输入的语音序列“weibo”;随后,在步骤S407中,模型训练设备1根据该语音序列“weibo”,通过语音识别处理,确定该语音序列的发音信息“weibo”,进而,根据该发音信息,在该更新后的目标语言模型中进行匹配查询,确定与该语音序列相对应的字符序列“围脖”、“微博”、“微波”、“微薄”等。优选地,在步骤S407中,模型训练设备1根据该更新后的目标语言模型,确定与该语音序列相对应的多个候选字符序列之后,还可以根据该多个候选字符序列的概率值或平滑概率值,选择对应的字符序列,如选择概率值或平滑概率值大于预定概率阈值的候选字符序列,作为与该语音序列对应的字符序列,或者,按照概率值或平滑概率值从大到小的顺序,为该多个候选字符序列进行排序,将排在前列的候选字符序列作为与该语音序列对应的字符序列,如将排在前五位的候选字符序列作为与该语音序列对应的字符序列。
在步骤S408中,模型训练设备1将与所述字符序列相对应的信息提供给所述用户。例如,当该目标应用为语音输入应用,在步骤S408中,模型训练设备1通过调用诸如JSP、ASP或PHP等动态网页技术,将所述字符序列作为语音输入候选词条提供给该用户;当该目标应用为语音搜索应用;在步骤S408中,模型训练设备1通过调用诸如JSP、ASP或PHP等动态网页技术,将根据该字符序列搜索获得的一个或多个搜索结果提供给该用户。
在此,本发明与语音识别相结合,提高了语音识别的准确率。
优选地,该目标应用为语音输入应用;其中,在步骤S408中,模型训练设备1将所述字符序列作为语音输入候选词条提供给所述用户。例如,当该目标应用为语音输入应用,用户通过与用户设备的语音采集装置的交互,在语音输入应用中输入了语音序列“weibo”,在步骤S406中,模型训练设备1如通过调用该用户设备所提供的应用程序接口(API)等方式,获取了该用户输入的语音序列“weibo”;随后,在步骤S407中,模型训练设备1根据该语音序列“weibo”,通过语音识别处理,确定该语音序列的发音信息“weibo”,进而,根据该发音信息,在该更新后的目标语言模型中进行匹配查询,确定与该语音序列相对应的字符序列“围脖”、“微博”、“微波”、“微薄”等;进而,在步骤S408中,模型训练设备1通过调用诸如JSP、ASP或PHP等动态网页技术,将上述字符序列“围脖”、“微博”、“微波”、“微薄”等作为语音输入候选词条提供给该用户,以供该用户选择输入。
优选地,该目标应用为语音搜索应用;其中,该方法还包括步骤S409(未示出),在步骤S409中,模型训练设备1将所述字符序列作为所述用户的查询序列,获取与所述查询序列相对应的一个或多个搜索结果;随后,在步骤S408中,模型训练设备1将所述一个或多个搜索结果提供给所述用户。具体地,当该目标应用为语音搜索应用,在步骤S407中,模型训练设备1根据该更新后的目标语言模型,确定与该语音序列相对应的字符序列;在步骤S409中,模型训练设备1根据在步骤S407中所确定的字符序列,将该字符序列作为该用户的查询序列,进行匹配查询,获取与该查询序列相对应的一个或多个搜索结果;随后,在步骤S408中,模型训练设备1通过调用诸如JSP、ASP或PHP等动态网页技术,将该一个或多个搜索结果提供给该用户。
例如,当该目标应用为语音搜索应用,用户通过与用户设备的语音采集装置的交互,在语音输入应用中输入了语音序列“weibo”,在步骤S406中,模型训练设备1例如通过调用该用户设备所提供的应用程序接口(API)等方式,获取了该用户输入的语音序列“weibo”;随后,在步骤S407中,模型训练设备1根据该语音序列“weibo”,通过语音识别处理,确定该语音序列的发音信息“weibo”,进而,根据该发音信息,在该更新后的目标语言模型中进行匹配查询,确定与该语音序列相对应的字符序列“围脖”、“微博”、“微波”、“微薄”;进而,在步骤S409中,模型训练设备1根据在步骤S407中所确定的字符序列,将该字符序列“围脖”、“微博”、“微波”、“微薄”作为该用户的查询序列,进行匹配查询,获取与该查询序列相对应的一个或多个搜索结果;随后,在步骤S408中,模型训练设备1通过调用诸如JSP、ASP或PHP等动态网页技术,将与该字符序列“围脖”、“微博”、“微波”、“微薄”相对应的一个或多个搜索结果提供给该用户,供该用户浏览。
本发明的软件程序可以通过处理器执行以实现上文所述步骤或功能。同样地,本发明的软件程序(包括相关的数据结构)可以被存储到计算机可读记录介质中,例如,RAM存储器,磁或光驱动器或软磁盘及类似设备。另外,本发明的一些步骤或功能可采用硬件来实现,例如,作为与处理器配合从而执行各个功能或步骤的电路。
另外,本发明的一部分可被应用为计算机程序产品,例如计算机程序指令,当其被计算机执行时,通过该计算机的操作,可以调用或提供根据本发明的方法和/或技术方案。而调用本发明的方法的程序指令,可能被存储在固定的或可移动的记录介质中,和/或通过广播或其他信号承载媒体中的数据流而被传输,和/或被存储在根据所述程序指令运行的计算机设备的工作存储器中。在此,根据本发明的一个实施例包括一个装置,该装置包括用于存储计算机程序指令的存储器和用于执行程序指令的处理器,其中,当该计算机程序指令被该处理器执行时,触发该装置运行基于前述根据本发明的多个实施例的方法和/或技术方案。
对于本领域技术人员而言,显然本发明不限于上述示范性实施例的细节,而且在不背离本发明的精神或基本特征的情况下,能够以其他的具体形式实现本发明。因此,无论从哪一点来看,均应将实施例看作是示范性的,而且是非限制性的,本发明的范围由所附权利要求而不是上述说明限定,因此旨在将落在权利要求的等同要件的含义和范围内的所有变化涵括在本发明内。不应将权利要求中的任何附图标记视为限制所涉及的权利要求。此外,显然“包括”一词不排除其他单元或步骤,单数不排除复数。装置权利要求中陈述的多个单元或装置也可以由一个单元或装置通过软件或者硬件来实现。第一,第二等词语用来表示名称,而并不表示任何特定的顺序。

Claims (22)

1.一种用于根据语料序列训练语言模型的方法,其中,该方法包括以下步骤:
a获取拟用于训练目标语言模型的语料序列;
b设置所述目标语言模型的初始阶数信息以作为其当前训练阶数,并结合所述目标语言模型的最高阶数信息,迭代执行以下操作,直至所述当前训练阶数超过所述最高阶数信息:
b1根据所述当前训练阶数,确定与所述目标语言模型相对应的平滑算法;
b2根据所述语料序列,通过所述平滑算法,对所述目标语言模型进行训练处理,以获得更新后的所述目标语言模型;
b3更新所述当前训练阶数。
2.根据权利要求1所述的方法,其中,所述步骤b1包括:
b11根据所述当前训练阶数,确定所述语料序列在所述当前训练阶数下的数据特征信息;
b12根据所述数据特征信息,确定与所述目标语言模型相对应的平滑算法。
3.根据权利要求2所述的方法,其中,所述步骤b12包括:
-当所述数据特征信息高于预定的第一数据数量阈值,将katz平滑算法作为与所述目标语言模型相对应的平滑算法。
4.根据权利要求2所述的方法,其中,所述步骤b12包括:
-当所述数据特征信息低于预定的第二数据数量阈值,将KN平滑算法作为与所述目标语言模型相对应的平滑算法。
5.根据权利要求1至4中任一项所述的方法,其中,所述步骤b1包括:
-当所述当前训练阶数低于三阶,将katz平滑算法作为与所述目标语言模型相对应的平滑算法。
6.根据权利要求1至4中任一项所述的方法,其中,所述步骤b1包括:
-当所述当前训练阶数高于二阶,将KN平滑算法作为与所述目标语言模型相对应的平滑算法。
7.根据权利要求1至4中任一项所述的方法,其中,所述步骤b2还包括:
-根据所述语料序列与词库的比较结果,并结合所述当前训练阶数,确定待平滑处理的目标序列;
-通过所述平滑算法,确定所述目标序列的平滑概率值;
-根据所述平滑概率值,对所述目标语言模型进行训练处理,以获得更新后的所述目标语言模型。
8.根据权利要求1至4中任一项所述的方法,其中,所述步骤a包括:
-获取拟用于训练所述目标语言模型的语料信息;
-对所述语料信息进行预处理,以获得所述语料序列;
其中,所述预处理包括以下至少任一项:
-切词处理;
-中文转换处理。
9.根据权利要求1至4中任一项所述的方法,其中,该方法还包括:
-获取用户为目标应用输入的语音序列;
-根据所述更新后的目标语言模型,确定与所述语音序列相对应的字符序列;
x将与所述字符序列相对应的信息提供给所述用户。
10.根据权利要求9所述的方法,其中,所述目标应用为语音输入应用;
其中,所述步骤x包括:
-将所述字符序列作为语音输入候选词条提供给所述用户。
11.根据权利要求9所述的方法,其中,所述目标应用为语音搜索应用;
其中,该方法还包括:
-将所述字符序列作为所述用户的查询序列,获取与所述查询序列相对应的一个或多个搜索结果;
其中,所述步骤x包括:
-将所述一个或多个搜索结果提供给所述用户。
12.一种用于根据语料序列训练语言模型的模型训练设备,其中,该设备包括:
序列获取装置,用于获取拟用于训练目标语言模型的语料序列;
迭代执行装置,用于设置所述目标语言模型的初始阶数信息以作为其当前训练阶数,并结合所述目标语言模型的最高阶数信息,迭代执行以下装置所执行的操作,直至所述当前训练阶数超过所述最高阶数信息:
算法确定装置,用于根据所述当前训练阶数,确定与所述目标语言模型相对应的平滑算法;
模型训练装置,用于根据所述语料序列,通过所述平滑算法,对所述目标语言模型进行训练处理,以获得更新后的所述目标语言模型;
阶数更新装置,用于更新所述当前训练阶数。
13.根据权利要求12所述的模型训练设备,其中,所述算法确定装置还包括:
特征确定单元,用于根据所述当前训练阶数,确定所述语料序列在所述当前训练阶数下的数据特征信息;
算法确定单元,用于根据所述数据特征信息,确定与所述目标语言模型相对应的平滑算法。
14.根据权利要求13所述的模型训练设备,其中,所述算法确定单元用于:
-当所述数据特征信息高于预定的第一数据数量阈值,将katz平滑算法作为与所述目标语言模型相对应的平滑算法。
15.根据权利要求13所述的模型训练设备,其中,所述算法确定单元用于:
-当所述数据特征信息低于预定的第二数据数量阈值,将KN平滑算法作为与所述目标语言模型相对应的平滑算法。
16.根据权利要求12至15中任一项所述的模型训练设备,其中,所述算法确定装置用于:
-当所述当前训练阶数低于三阶,将katz平滑算法作为与所述目标语言模型相对应的平滑算法。
17.根据权利要求12至15中任一项所述的模型训练设备,其中,所述算法确定装置用于:
-当所述当前训练阶数高于二阶,将KN平滑算法作为与所述目标语言模型相对应的平滑算法。
18.根据权利要求12至15中任一项所述的模型训练设备,其中,所述模型训练装置用于:
-根据所述语料序列与词库的比较结果,并结合所述当前训练阶数,确定待平滑处理的目标序列;
-通过所述平滑算法,确定所述目标序列的平滑概率值;
-根据所述平滑概率值,对所述目标语言模型进行训练处理,以获得更新后的所述目标语言模型。
19.根据权利要求12至15中任一项所述的模型训练设备,其中,所述序列获取装置用于:
-获取拟用于训练所述目标语言模型的语料信息;
-对所述语料信息进行预处理,以获得所述语料序列;
其中,所述预处理包括以下至少任一项:
-切词处理;
-中文转换处理。
20.根据权利要求12至15中任一项所述的模型训练设备,其中,该设备还包括:
语音获取装置,用于获取用户为目标应用输入的语音序列;
序列确定装置,用于根据所述更新后的目标语言模型,确定与所述语音序列相对应的字符序列;
信息提供装置,用于将与所述字符序列相对应的信息提供给所述用户。
21.根据权利要求20所述的模型训练设备,其中,所述目标应用为语音输入应用;
其中,所述信息提供装置用于:
-将所述字符序列作为语音输入候选词条提供给所述用户。
22.根据权利要求20所述的模型训练设备,其中,所述目标应用为语音搜索应用;
其中,该设备还包括:
搜索获取装置,用于将所述字符序列作为所述用户的查询序列,获取与所述查询序列相对应的一个或多个搜索结果;
其中,所述信息提供装置用于:
-将所述一个或多个搜索结果提供给所述用户。
CN201210226931.4A 2012-06-29 2012-06-29 一种用于根据语料序列训练语言模型的方法与设备 Active CN103514230B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201210226931.4A CN103514230B (zh) 2012-06-29 2012-06-29 一种用于根据语料序列训练语言模型的方法与设备

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201210226931.4A CN103514230B (zh) 2012-06-29 2012-06-29 一种用于根据语料序列训练语言模型的方法与设备

Publications (2)

Publication Number Publication Date
CN103514230A CN103514230A (zh) 2014-01-15
CN103514230B true CN103514230B (zh) 2018-06-05

Family

ID=49896961

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201210226931.4A Active CN103514230B (zh) 2012-06-29 2012-06-29 一种用于根据语料序列训练语言模型的方法与设备

Country Status (1)

Country Link
CN (1) CN103514230B (zh)

Families Citing this family (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105608083B (zh) * 2014-11-13 2019-09-03 北京搜狗科技发展有限公司 获得输入库的方法、装置及电子设备
KR102167719B1 (ko) * 2014-12-08 2020-10-19 삼성전자주식회사 언어 모델 학습 방법 및 장치, 음성 인식 방법 및 장치
CN106126521B (zh) 2016-06-06 2018-06-19 腾讯科技(深圳)有限公司 目标对象的社交账号挖掘方法及服务器
CN106257441B (zh) * 2016-06-30 2019-03-15 电子科技大学 一种基于词频的skip语言模型的训练方法
CN108509406B (zh) * 2017-02-24 2023-04-18 北京搜狗科技发展有限公司 一种语料抽取方法、装置和电子设备
CN108737324B (zh) * 2017-04-13 2021-03-02 腾讯科技(深圳)有限公司 生成人工智能服务组件的方法、装置及相关设备、系统
CN108021712B (zh) * 2017-12-28 2021-12-31 中南大学 N-Gram模型的建立方法
CN108563669B (zh) * 2018-01-09 2021-09-24 高徐睿 一种自动实现app操作的智能系统
CN111210816B (zh) * 2019-12-16 2023-09-05 北京淇瑀信息科技有限公司 一种智能语音配置管理方法、装置及电子设备
CN111402864A (zh) * 2020-03-19 2020-07-10 北京声智科技有限公司 语音处理方法及电子设备
CN113807098B (zh) * 2021-08-26 2023-01-10 北京百度网讯科技有限公司 模型训练方法和装置、电子设备以及存储介质

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101271450A (zh) * 2007-03-19 2008-09-24 株式会社东芝 裁剪语言模型的方法及装置
CN102509549A (zh) * 2011-09-28 2012-06-20 盛乐信息技术(上海)有限公司 语言模型训练方法及系统

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8655647B2 (en) * 2010-03-11 2014-02-18 Microsoft Corporation N-gram selection for practical-sized language models

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101271450A (zh) * 2007-03-19 2008-09-24 株式会社东芝 裁剪语言模型的方法及装置
CN102509549A (zh) * 2011-09-28 2012-06-20 盛乐信息技术(上海)有限公司 语言模型训练方法及系统

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
面向大规模语料的语言模型研究新进展;骆卫华 等;《计算机研究与发展》;20091015;第46卷(第10期);第1704-1712页 *

Also Published As

Publication number Publication date
CN103514230A (zh) 2014-01-15

Similar Documents

Publication Publication Date Title
CN103514230B (zh) 一种用于根据语料序列训练语言模型的方法与设备
US10997370B2 (en) Hybrid classifier for assigning natural language processing (NLP) inputs to domains in real-time
CN110210029A (zh) 基于垂直领域的语音文本纠错方法、系统、设备及介质
CN105701120B (zh) 确定语义匹配度的方法和装置
CN109408526A (zh) Sql语句生成方法、装置、计算机设备及存储介质
CN105336324B (zh) 一种语种识别方法及装置
CN103914548B (zh) 信息搜索方法和装置
CN106571139B (zh) 基于人工智能的语音搜索结果处理方法及装置
JP2015506515A (ja) タグをドキュメントに自動的に追加するための方法、装置およびコンピュータ記憶媒体
CN103577386B (zh) 一种基于用户输入场景动态加载语言模型的方法及装置
CN103927329B (zh) 一种即时搜索方法和系统
US20160124936A1 (en) Grammar compiling methods, semantic parsing methods, devices, computer storage media, and apparatuses
CN110147544B (zh) 一种基于自然语言的指令生成方法、装置以及相关设备
CN107704102A (zh) 一种文本输入方法及装置
CN106371624A (zh) 一种用于提供输入候选项的方法与装置
CN103871402B (zh) 语言模型训练系统、语音识别系统及相应方法
CN106227714A (zh) 一种基于人工智能的获取生成诗词的关键词的方法和装置
CN110176230A (zh) 一种语音识别方法、装置、设备和存储介质
CN103744889B (zh) 一种用于对问题进行聚类处理的方法与装置
CN106257441A (zh) 一种基于词频的skip语言模型的训练方法
CN102693279A (zh) 一种快速计算评论相似度的方法、装置及系统
CN107784014A (zh) 信息搜索方法、设备及电子设备
CN103136445A (zh) 一种openEHR信息到关系数据库的转换方法
CN110222194A (zh) 基于自然语言处理的数据图表生成方法和相关装置
JP2021093120A (ja) 二言語コーパススクリーニング方法及び装置、並びに記憶媒体

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant