一种语言模型训练方法、汉语拼音输入方法及装置论文和设计-汪磊

全文摘要

本申请实施例提供了一种语言模型训练方法及装置,该语言模型包括编码器和解码器。该方法包括:获取训练数据,训练数据包括成对的拼音编码序列和汉字编码序列,拼音序列包含多个拼音编码,每个拼音编码对应一个音节,汉字编码序列包含多个汉字编码,每个汉字编码对应一个汉字;以拼音编码序列作为编码器的输入,输出拼音编码序列的全局上下文特征和音节发音特征;以编码器输出的全局上下文特征和音节发音特征以及前序汉字编码序列作为解码器的输入,以汉字编码序列为解码器的目标输出,训练语言模型。从而,将该语言模型应用到输入法中,能够使输入法具备准确的整句输入能力,从而解决了现有技术的汉语拼音输入方法整句输入准确性差的问题。

主设计要求

1.一种语言模型训练方法,其特征在于,所述语言模型包括编码器和解码器,所述训练方法包括:获取训练数据,所述训练数据包括成对的拼音编码序列和汉字编码序列,所述拼音编码序列包含多个拼音编码,每个拼音编码对应一个汉语拼音音节,所述汉字编码序列包含多个汉字编码,每个汉字编码对应一个汉字;以拼音编码序列作为编码器的输入,以拼音编码序列的全局上下文特征和音节发音特征作为编码器的输出,以及,以编码器输出的全局上下文特征和音节发音特征以及前序汉字编码序列作为解码器的输入,以汉字编码序列为解码器的目标输出,训练语言模型;其中,所述训练语言模型包括使用拼音编码序列中的拼音编码和汉字编码序列中的汉字编码对语言模型进行逐音和逐字的步进训练;所述前序汉字编码序列为当前汉字编码之前所有汉字编码组成的汉字编码序列;所述以编码器输出的全局上下文特征和音节发音特征以及前序汉字编码序列作为解码器的输入,以汉字编码序列为解码器的目标输出,包括:获取每个音节的综合特征向量,所述综合特征向量由全局上下文特征向量与音节发音特征向量组合生成;对汉字编码序列进行词嵌入编码,生成每个汉字对应的汉字特征向量;对于每个音节,根据在拼音编码序列中对应的顺序,将音节的综合特征向量与音节对应的前一个汉字的汉字特征向量进行组合,得到音节的解码输入向量;对于每个音节,以对应的解码输入向量作为解码器的输入,训练解码器,输出对应的汉字特征预测向量,并使用所述汉字特征向量对所述汉字特征预测向量的输出进行监督,解码器由多层神经递归神经网络和全连接网络或卷积神经网络组成。

设计方案

1.一种语言模型训练方法,其特征在于,

所述语言模型包括编码器和解码器,所述训练方法包括:

获取训练数据,所述训练数据包括成对的拼音编码序列和汉字编码序列,所述拼音编码序列包含多个拼音编码,每个拼音编码对应一个汉语拼音音节,所述汉字编码序列包含多个汉字编码,每个汉字编码对应一个汉字;

以拼音编码序列作为编码器的输入,以拼音编码序列的全局上下文特征和音节发音特征作为编码器的输出,以及,以编码器输出的全局上下文特征和音节发音特征以及前序汉字编码序列作为解码器的输入,以汉字编码序列为解码器的目标输出,训练语言模型;

其中,所述训练语言模型包括使用拼音编码序列中的拼音编码和汉字编码序列中的汉字编码对语言模型进行逐音和逐字的步进训练;所述前序汉字编码序列为当前汉字编码之前所有汉字编码组成的汉字编码序列;

所述以编码器输出的全局上下文特征和音节发音特征以及前序汉字编码序列作为解码器的输入,以汉字编码序列为解码器的目标输出,包括:

获取每个音节的综合特征向量,所述综合特征向量由全局上下文特征向量与音节发音特征向量组合生成;

对汉字编码序列进行词嵌入编码,生成每个汉字对应的汉字特征向量;

对于每个音节,根据在拼音编码序列中对应的顺序,将音节的综合特征向量与音节对应的前一个汉字的汉字特征向量进行组合,得到音节的解码输入向量;

对于每个音节,以对应的解码输入向量作为解码器的输入,训练解码器,输出对应的汉字特征预测向量,并使用所述汉字特征向量对所述汉字特征预测向量的输出进行监督,解码器由多层神经递归神经网络和全连接网络或卷积神经网络组成。

2.根据权利要求1所述的方法,其特征在于,所述以拼音编码序列作为编码器的输入,以拼音编码序列的全局上下文特征和音节发音特征作为编码层的输出,包括:

对拼音编码序列进行词嵌入编码,生成每个音节对应的拼音特征向量;

对于每个音节,以对应的拼音特征向量作为编码器的输入,所述编码器通过多层递归神经网络输出全局上下文特征向量和音节发音特征向量。

3.根据权利要求2所述的方法,其特征在于,所述使用所述汉字特征向量对所述汉字特征预测向量的输出进行监督,包括:

将汉字特征预测向量与汉字特征向量的交叉熵作为语言模型训练的监督信号;

根据监督信号,采用梯度下降方法对训练过程进行迭代,以优化语言模型的神经网络参数。

4.根据权利要求1所述的方法,其特征在于,

所述拼音编码序列通过以下步骤生成:

获取拼音字符串,所述拼音字符串包含多个音节,每个音节对应一个汉语发音;

根据拼音编码词典将拼音字符串转换成拼音编码序列,所述拼音编码词典包含从音节到拼音编码的映射;

所述汉字编码序列通过以下步骤生成:

获取汉字字符串,所述汉字字符串包含多个汉字,所述汉字与拼音字符串的音节一一对应;

根据汉字编码词典将汉字字符串转换成汉字编码序列,所述汉字编码词典包含从汉字到汉字编码的映射。

5.一种汉语拼音输入方法,其特征在于,应用于权利要求1-4任一项训练的语言模型,所述方法包括:

获取拼音字符串,所述拼音字符串包含多个音节,每个音节对应一个汉语发音;

根据预设的拼音编码字典将拼音字符串的音节进行编码,生成拼音编码序列;

根据拼音编码序列,在语言模型的编码器获取每个音节的全局上下文特征和音节发音特征;

根据全局上下文特征和音节发音特征,在语言模型的解码器顺序预测每个音节对应的汉字,并输出汉字字符串。

6.根据权利要求5所述的方法,其特征在于,所述根据全局上下文特征和音节发音特征,在语言模型的解码器顺序预测每个音节对应的汉字,并输出汉字字符串,包括:

对于每个音节,根据音节在拼音编码序列中对应的顺序,将音节的全局上下文特征和音节发音特征与解码器输出的前一个音节的汉字特征预测向量进行组合,得到音节的解码输入向量;

将音节的解码输入向量输入到解码器,得到对应的汉字特征预测向量;

将汉字特征预测向量解码成汉字编码序列,并根据预设的汉字编码词典转换成汉字。

7.根据权利要求5所述的方法,其特征在于,还包括:

获取编码器生成的历史全局上下文特征,所述历史全局上下文特征生成于当前时刻之前的一个历史时段内;

将所述全局上下文特征和历史全局上下文特征组合成全局上下文特征;

将解码器使用的全局上下文特征替换为全局上下文特征。

8.一种语言模型训练装置,其特征在于,

所述语言模型包括编码器和解码器,所述装置包括:

训练准备模块,用于获取训练数据,所述训练数据包括成对的拼音编码序列和汉字编码序列,所述拼音编码序列包含多个拼音编码,每个拼音编码对应一个汉语拼音音节,所述汉字编码序列包含多个汉字编码,每个汉字编码对应一个汉字;

训练模块,以拼音编码序列作为编码器的输入,以拼音编码序列的全局上下文特征和音节发音特征作为编码器的输出,以及,以编码器输出的全局上下文特征和音节发音特征以及前序汉字编码序列作为解码器的输入,以汉字编码序列为解码器的目标输出,训练语言模型;

其中,所述训练语言模型包括使用拼音编码序列中的拼音编码和汉字编码序列中的汉字编码对语言模型进行逐音和逐字的步进训练;所述前序汉字编码序列为当前汉字编码之前所有汉字编码组成的汉字编码序列;

所述以编码器输出的全局上下文特征和音节发音特征以及前序汉字编码序列作为解码器的输入,以汉字编码序列为解码器的目标输出,包括:

获取每个音节的综合特征向量,所述综合特征向量由全局上下文特征向量与音节发音特征向量组合生成;

对汉字编码序列进行词嵌入编码,生成每个汉字对应的汉字特征向量;

对于每个音节,根据在拼音编码序列中对应的顺序,将音节的综合特征向量与音节对应的前一个汉字的汉字特征向量进行组合,得到音节的解码输入向量;

对于每个音节,以对应的解码输入向量作为解码器的输入,训练解码器,输出对应的汉字特征预测向量,并使用所述汉字特征向量对所述汉字特征预测向量的输出进行监督,解码器由多层神经递归神经网络和全连接网络或卷积神经网络组成。

9.一种汉语拼音输入装置,其特征在于,应用于权利要求1-4任一项训练的语言模型,所述装置包括:

获取模块,用于获取拼音字符串,所述拼音字符串包含多个音节,每个音节对应一个汉语发音;

编码模块,用于根据预设的拼音编码字典将拼音字符串的音节进行编码,生成拼音编码序列;

编码器模块,用于根据拼音编码序列,在语言模型的编码器获取每个音节的全局上下文特征和音节发音特征;

解码器模块,用于根据全局上下文特征和音节发音特征,在语言模型的解码器顺序预测每个音节对应的汉字,并输出汉字字符串。

设计说明书

技术领域

本申请涉及自然语言处理技术领域,尤其涉及一种语言模型训练方法、汉语拼音输入方法及装置。

背景技术

目前,实现整句输入是汉语拼音输入法的重要研究方向。现有技术中,汉语拼音输入法通常是在N-gram(N元语法)语言模型和拼音到字的概率表(也可以同时使用词拼音到词的概率表)的基础上,结合使用维特比算法(viterbi algorithm)、波束搜索算法(beamsearch)等来实现整句输入功能。

但是现有技术的汉语拼音整句输入方法存在一些明显的缺陷,例如:拼音到字(词)的概率表中拼音到字(词)的概率得分权重,以及N-gram语言模型中句子概率的得分权重都需要人工调节,无法保证权重的全局最优;另外,常规N-gram语言模型是基于一阶马尔可夫链的概率语言模型,无法捕捉跨字(词)的概率关系,也无法捕捉更长距离的概率关系,影响从汉语拼音生成汉字句子的准确性;并且,现有技术的汉语拼音整句输入方法,主要针对用户当前输入的汉语拼音内容求解,无法利用用户连续输入的上下文信息,从而生成的汉字句子无法匹配上下文语境,准确度难以提升。

可见,由于汉语拼音整句输入方法的上述缺陷,导致汉语拼音整句输入方法生成句子的准确性还有待提高。

发明内容

本申请实施例提供了一种语言模型训练方法、汉语拼音输入方法及装置,以解决现有技术中汉语拼音整句输入方法生成句子的准确性不高的问题。本申请所述语言模型指蕴含了从发音序列到汉字序列的概率信息和汉字序列自身的概率搭配信息的融合语言模型,仅针对汉字序列的模型为常规定义上的语言模型(language model,LM)。

第一方面,本申请实施例提供了一种语言模型训练方法,其中,该语言模型包括编码器(Encoder)和解码器(Decoder)两个主要部分,该方法包括:

获取训练数据,所述训练数据包括成对的拼音编码序列和汉字编码序列,所述拼音序列包含多个拼音编码,每个拼音编码对应一个汉语拼音音节,所述汉字编码序列包含多个汉字编码,每个汉字编码对应一个汉字;

以拼音编码序列作为编码器的输入,以拼音编码序列的全局上下文特征和音节发音特征作为编码层的输出,以及,以编码器输出的全局上下文特征和音节发音特征以及前序汉字编码序列作为解码器的输入,以汉字编码序列为解码器的目标输出,训练语言模型;

其中,所述训练语言模型包括使用拼音编码序列中的拼音编码和汉字编码序列中的汉字编码对语言模型进行逐音和逐字的步进训练;所述前序汉字编码序列为当前汉字编码之前所有汉字编码组成的汉字编码序列。

第二方面,本申请实施例提供了一种语言模型训练装置,其中,该语言模型包括编码器和解码器,该装置包括:

训练准备模块,用于获取训练数据,所述训练数据包括成对的拼音编码序列和汉字编码序列,所述拼音序列包含多个拼音编码,每个拼音编码对应一个汉语拼音音节,所述汉字编码序列包含多个汉字编码,每个汉字编码对应一个汉字;

训练模块,以拼音编码序列作为编码器的输入,以拼音编码序列的全局上下文特征和音节发音特征作为编码层的输出,以及,以编码器输出的全局上下文特征和音节发音特征以及前序汉字编码序列作为解码器的输入,以汉字编码序列为解码器的目标输出,训练语言模型;

其中,所述训练语言模型包括使用拼音编码序列中的拼音编码和汉字编码序列中的汉字编码对语言模型进行逐音和逐字的步进训练;所述前序汉字编码序列为当前汉字编码之前所有汉字编码组成的汉字编码序列。

由以上技术方案可知,本申请实施例提供了一种语言模型训练方法及装置,该语言模型包括编码器和解码器。该方法包括:获取训练数据,所述训练数据包括成对的拼音编码序列和汉字编码序列,所述拼音序列包含多个拼音编码,每个拼音编码对应一个音节,所述汉字编码序列包含多个汉字编码,每个汉字编码对应一个汉字;以拼音编码序列作为编码器的输入,以编码器输出的全局上下文特征和音节发音特征以及前序汉字编码序列作为解码器的输入,以汉字编码序列为解码器的目标输出,训练语言模型。由此,语言模型能够在训练时从训练数据中精准学习到每个汉字和对应拼音音节的上下文特征和音节发音特征,使语言模型具备根据长段拼音字符串准确输出汉字字符串的能力。那么,如果将该语言模型应用到输入法中,就能够使输入法具备准确的整句输入能力,从而解决了现有技术的汉语拼音输入方法整句输入准确性差的问题。

第三方面,本申请实施例提供了一种汉语拼音输入方法,该方法应用于权利要求1-5任一项训练的语言模型,包括以下步骤:

获取拼音字符串,所述拼音字符串包含多个音节,每个音节对应一种汉字发音;

根据预设的拼音编码字典将拼音字符串的音节进行编码,生成拼音编码序列;

根据拼音编码序列,在语言模型的编码器获取每个音节的全局上下文特征和音节发音特征;

根据全局上下文特征和音节发音特征,在语言模型的解码器顺序预测每个音节对应的汉字编码,进而通过汉字编码表反查获得汉字字符串。

第四方面,本申请实施例提供了一种汉语拼音输入装置,该装置应用于权利要求1-5任一项训练的语言模型,包括:

获取模块,用于获取拼音字符串,所述拼音字符串包含多个音节,每个音节对应一个汉语发音;

编码模块,用于根据预设的拼音编码字典将拼音字符串的音节进行编码,生成拼音编码序列;

编码器模块,用于根据拼音编码序列,在语言模型的编码器获取每个音节的全局上下文特征和音节发音特征;

解码器模块,用于根据全局上下文特征和音节发音特征,在语言模型的解码器顺序预测每个音节对应的汉字,并输出汉字字符串。

由以上技术方案可知,本申请实施例提供了一种汉语拼音输入方法及装置,该方法和装置应用于本申请实施例训练的语言模型,能够获取拼音字符串,所述拼音字符串包含多个音节,每个音节对应一个汉语发音;根据预设的拼音编码字典将拼音字符串的音节进行编码,生成拼音编码序列;根据拼音编码序列,在语言模型的编码器获取每个音节的全局上下文特征和音节发音特征;根据全局上下文特征和音节发音特征以及前序汉字编码序列,在语言模型的解码器顺序预测每个音节对应的汉字,并输出汉字字符串。由于语言模型在训练时从训练数据中精准学习到每个汉字和对应拼音音节的上下文特征和音节发音特征,使语言模型具备根据长段拼音字符串准确输出汉字字符串的能力,从而应用了该语言模型的输入法具备准确的整句输入能力,从而解决了现有技术的汉语拼音输入方法整句输入准确性差的问题。

附图说明

为了更清楚地说明本申请的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,显而易见地,对于本领域普通技术人员而言,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。

图1为本申请实施例提供的一种语言模型训练方法的流程图;

图2为本申请实施例提供的实现语言模型的编码层输入和输出的流程图;

图3为本申请实施例提供的实现语言模型的解码层输入和输出的流程图;

图4为本申请实施例提供的一种语言模型训练的监督流程图;

图5为本申请实施例提供的一种汉语拼音输入方法的流程图;

图6为本申请实施例提供的一种语言模型训练方法步骤S240的流程图;

图7为本申请实施例提供的一种语言模型训练装置的结构示意图;

图8为本申请实施例提供的一种汉语拼音输入装置的结构示意图。

具体实施方式

为了使本技术领域的人员更好地理解本申请中的技术方案,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本申请保护的范围。

目前,实现整句输入是汉语拼音输入法的重要研究方向。现有技术中最成熟的能够实现整句输入的汉语拼音输入法,通常是在N-gram(N元语法)语言模型和拼音到字的概率表(也可以同时使用词拼音到词的概率表)的基础上,结合使用维特比算法(viterbialgorithm)、波束搜索(beam search)等算法来实现整句输入功能,虽然该方法具有资源占用小、响应速度快的优点,但也存在明显的缺陷,例如:拼音到字的概率表中拼音到字的概率得分权重,以及N-gram语言模型中句子概率的得分权重都需要人工调节,无法保证权重的全局最优;另外,N-gram语言模型是基于一阶马尔可夫链的概率语言模型,无法捕捉跨单元的概率关系和更长距离的概率关系,影响从汉语拼音生成汉字句子的准确性;并且,现有技术的汉语拼音整句输入方法,主要针对用户当前输入的汉语拼音内容求解,无法利用用户连续输入的上下文信息,从而生成的汉字句子无法匹配上下文语境,准确度难以提升。

为了解决现有技术中存在的问题,本申请实施例提供了一种语言模型训练方法、汉语拼音输入方法及装置。

下面是本申请的方法实施例。

本申请实施例提供了一种语言模型训练方法,该方法训练得到的语言模型包括编码器和解码器。图1为本申请实施例提供的一种语言模型训练方法的流程图,如图1所示,该方法包括以下步骤:

步骤S110,获取训练数据,所述训练数据包括成对的拼音编码序列和汉字编码序列,所述拼音序列包含多个拼音编码,每个拼音编码对应一个汉语拼音音节,所述汉字编码序列包含多个汉字编码,每个汉字编码对应一个汉字。

其中,训练数据可以根据用户在历史输入过程中产生的大规模的文本语料获取。例如,获取用户历史输入的拼音内容和对应生成的汉字内容,并根据获取的拼音内容和汉字内容得到训练数据。

示例地,用户历史输入的拼音内容为:

chuiyanniaoniaoshengqigejiangqianwanli

对应的汉字内容为:

炊烟袅袅升起隔江千万里

那么,首先可以分别对拼音内容和汉字内容进行分词处理,得到成对的拼音字符串和汉字字符串,其中,拼音字符串包含多个音节,每个音节对应一个汉语发音,汉字字符串包含多个汉字,所述汉字与拼音字符串的音节一一对应。

示例地,拼音字符串和汉字字符串分别为:

拼音字符串:chui yan niao niao sheng qi ge jiang qian wan li

汉字字符串:炊烟袅袅升起隔江千万里

其中,例如“chui”即作为一个音节,其对应的汉字为“炊”。

然后,根据预设的拼音编码字典,将拼音字符串转换成拼音编码序列,具体是将拼音字符串中的每个音节转换为拼音编码字典中记录的该音节对应的拼音编码。其中,本申请实施例中的拼音编码字典包含有从音节到拼音编码的映射,例如:

a→001;chui→042;yan→143;音节→xn

从而,由拼音字符串得到的拼音编码序列可以是一个向量形式,即:

X=[x0,x1,x2,…,xn-1,xn]

其中,x0为拼音字符串的开始标识,x1~xn为音节的拼音编码,n为拼音字符串的长度,每个音节的拼音编码唯一且不重复。该拼音编码字典具体可以通过枚举汉语拼音中所有可以成音的音节,并为每个音节分配拼音编码的方式生成。

同时,根据预设的汉字编码词典,将汉字字符串转换成汉字编码序列,具体是将汉字字符串中的每个汉字转换为汉字编码词典中记录的该汉字对应的汉字编码。其中,本申请实施例中的汉字编码字典包含有从汉字到汉字编码的映射,例如:

阿→0001,炊→0855;烟→5210;汉字→yn

从而,由汉字字符串得到的汉字编码序列可以是一个向量形式,即:

Y=[y0,y1,y2,…,yn-1,yn]

其中,y0为汉字字符串的开始标识,y1~yn为汉字的汉字编码,n为汉字字符串的长度,每个汉字的汉字编码唯一且不重复。该汉字编码字典具体可以通过枚举汉语中所有的汉字或者部分常用汉字(例如,国家标准GB2312中的6000多个汉字)并为每个汉字分配汉字编码的方式生成。

另外,训练数据还可以从开放语境中或者限定的一些领域的语境中采集的长文本语料中获取。通过分段、分句等方式将长文本语分割成多个以句子为单位的汉字内容,然后,对汉字内容进行标注拼音、分字或分词等操作得到成对的拼音字符串和汉字字符串,最后,分别使用拼音编码字典和汉字编码词典对拼音字符串和汉字字符串进行映射,得到拼音编码序列和汉字编码序列。

由此,本申请实施例中将汉语拼音和汉字组成的语料转换成了向量形式的拼音编码序列和汉字编码序列,以向量的很小容量的信息表达了复杂的拼音和汉字,并且,将拼音和汉字转换成可供计算机识别的数学形式,便于参与语言模型中涉及的各类运算。

需要补充说明的是,在本申请实施例中,拼音编码序列中的每个编码可以对应一个汉字的音节,也可以对应一个词的音节组合,或是对应拼音中的单个字符(26个字母),同理,汉字编码序列中的每个编码可以对应一个汉字,也可以对应一个词,从而,分别能够使训练出的语言模型具备根据字母串、音节串或者词拼音串,生成汉字串。上述可选方案仅体现在对模型输入输出单元尺度的选择方式上,不影响模型本身的逻辑结构和最终的使用方式,本申请后文均仅以单个音节编码和单个汉字编码为例进行说明。

步骤S120,以拼音编码序列作为编码器的输入,以拼音编码序列的全局上下文特征和音节发音特征作为编码层的输出,以及,以编码器输出的全局上下文特征和音节发音特征以及前序汉字编码序列作为解码器的输入,以汉字编码序列为解码器的目标输出,训练语言模型。

其中,编码器具体可以由一个词嵌入(embedding)网络(例如,wordvec等)和一个与词嵌入网络连接的多层递归神经网络(recurrent neural networks,RNN)组成,其中,该多层递归神经网络可以是单向递归神经网络,也可以是双向递归神经网络,该递归神经网络具体还可以选择长短期记忆网络(long short-term memory,LSTM)或者门控机制递归神经网络(gated recurrent unit,GRU)等变体的递归神经网络。

编码器被设置为根据输入的拼音编码序列生成全局上下文特征和音节发音特征。

其中,全局上下文特征是编码器从拼音编码序列中提取的表征整句拼音串的音节的上下文信息和发音信息的多维向量S,可以记作:S=[s0,s1,s2,…,sn-1,sn]。

音节发音特征是编码器从拼音编码序列中提取的表征拼音串的每个音节的发音信息的多维向量C,可以记作:C=[c0,c1,c2,…,cn-1,cn]。

由此,通过提取全局上下文特征和音节发音特征,能够从拼音字符串的全局和局部音节两个维度表征拼音字符串的特征,从而,使解码器能够基于拼音字符串的全局和局部音节两个维度的特征生成汉字,有利于提高语言模型输出长句子的质量。

其中,解码器具体可以由一个词嵌入(embedding)网络(例如,wordvec等)和一个与词嵌入网络连接的多层递归神经网络(recurrent neural networks,RNN)组成,并可以额外连接一个一层或多层全连接网络(fully connected network,FC)或卷积神经网络(convolutional neural network,CNN)(并选择性施加非线性映射层、dropout等手段,后文不再赘述)。其中,该多层递归神经网络可以是单向递归神经网络,也可以是双向递归神经网络,该递归神经网络具体还可以选择长短期记忆网络(long short-term memory,LSTM)或者门控机制递归神经网络(gated recurrent unit,GRU)等变体的递归神经网络。

需要补充说明的是,本申请实施例对语言模型进行训练的过程是一个迭代过程,在编码器和解码器的不断训练过程中,编码器和解码器内部的神经网络的权值被不断优化和更新,从而,根据输入的拼音编码序列生成对应的汉字编码序列的能力不断提高。

需要补充说明的是,上述编码器和解码器构成本申请所述语言模型的整体,训练语言模型包括使用拼音编码序列中的拼音编码和汉字编码序列中的汉字编码对语言模型进行逐音和逐字的步进训练;前序汉字编码序列为当前汉字编码之前所有汉字编码组成的汉字编码序列。

进一步地,本申请中的使用拼音编码序列中的拼音编码和汉字编码序列中的汉字编码对语言模型进行逐音和逐字的步进训练的过程,通过以下内容具体阐述说明:

示例地,在第t(t小于n)次迭代中,编码器输入的拼音编码序列为:Xt=[x0,x1,x2,…,xt-1,xt],编码器输出的全局上下文特征为:St=[s0,s1,s2,…,st-1,st],编码器输出的音节发音特征为Ct=[c0,c1,c2,…,ct-1,ct];解码器输入的全局上下文特征为St=[s0,s1,s2,…,st-1,st],解码器输入的音节发音特征为Ct=[c0,c1,c2,…,ct-1,ct],解码器的输出为根据训练数据生成的汉字编码序列:Yt=[y0,y1,y2,…,yt-1,yt]或者是解码器在t-1次迭代中输出的汉字编码序列Y’t-1=[y’0,y’1,y2’,…,y’t-2,y’t-1],具体地,在训练初始阶段可以使用Yt,在训练的后期解码器和编码器内部神经网络得到较好的更新之后可以使用Y’t-1。

同理,在第t+1(t小于n)次迭代中,编码器输入的拼音编码序列为:Xt+1=[x0,x1,x2,…,xt,xt+1],编码器输出的全局上下文特征为:St+1=[s0,s1,s2,…,st,st+1],编码器输出的音节发音特征为Ct+1=[c0,c1,c2,…,ct,ct+1];解码器输入的全局上下文特征为St+1=[s0,s1,s2,…,st,st+1],解码器输入的音节发音特征为Ct+1=[c0,c1,c2,…,ct,ct+1,],解码器的输出为根据训练数据生成的汉字编码序列:Yt+1=[y0,y1,y2,…,yt,yt+1]或者是解码器在t次迭代中输出的汉字编码序列Y’t=[y’0,y’1,y’2,…,y’t-1,y’t],具体地,在训练初始阶段可以使用Yt+1,在训练的后期解码器和编码器内部神经网络得到较好的更新之后可以使用Y’t。

由此,本申请实施例根据训练语料中汉字和对应拼音音节的顺序对语言模型进行逐字或者逐字训练,从而,能够步进地得到训练语料中每个汉字和对应拼音音节的上下文信息和发音特征信息。例如,第一次训练的是“炊”和“chui”,第二次训练的是“烟”和“yan”,那么,语音模型就会学习到“炊”和“烟”的上下文关系,当用户输入“chuiyan”时,语言模型就会联想到“炊烟”。

由以上技术方案可知,本申请实施例提供了一种语言模型训练方法,该语言模型包括编码器和解码器。该方法包括:获取训练数据,所述训练数据包括成对的拼音编码序列和汉字编码序列,所述拼音序列包含多个拼音编码,每个拼音编码对应一个音节,所述汉字编码序列包含多个汉字编码,每个汉字编码对应一个汉字;以拼音编码序列作为编码器的输入,以编码器输出的全局上下文特征和音节发音特征以及前序汉字编码序列作为解码器的输入,以汉字编码序列为解码器的目标输出,训练语言模型。由此,语言模型能够在训练时从训练数据中精准学习到每个汉字和对应拼音音节的上下文特征和音节发音特征,使语言模型具备根据长段拼音字符串准确输出汉字字符串的能力。那么,如果将该语言模型应用到输入法中,就能够使输入法具备准确的整句输入能力,从而解决了现有技术的汉语拼音输入方法整句输入准确性差的问题。

图2为本申请实施例提供的实现语言模型的编码层输入和输出的流程图。

如图2所示,在一种可选择的实施方式中,实现语言模型的编码层输入和输出可以包括以下步骤:

步骤S121,对拼音编码序列进行词嵌入编码,生成每个音节对应的拼音特征向量。

具体地,词嵌入模型可以是整个模型的一部分,其模型参数也是整个模型参数的一部分,参与训练;也可以使用预训练的词嵌入模型,如使用word2vec模型对拼音编码序列进行词嵌入编码作为编码器的输入,该word2vec模型具体可以是CBOW模型(基于上下文的拼音编码预测当前拼音编码的拼音特征向量)或者Skip-gram模型(基于当前拼音编码预测上下文的拼音编码的拼音特征向量)。本申请实施例中对步骤S131使用的词嵌入编码方式不做具体限定,能够在此处应用的设计均没有超出本申请实施例的保护范围。

通过词嵌入编码,能够将离散状态表征的拼音编码序列映射到一个数学定义上的多维的特征向量空间中,从而,有利于通过拼音特征向量对拼音编码序列进行各种神经网络的数学计算,得到全局上下文特征向量和音节发音特征向量。

步骤S122,对于每个音节,以对应的拼音特征向量作为编码器的输入,所述编码器通过多层递归神经网络输出全局上下文特征向量和音节发音特征向量。

其中,全局上下文特征向量和音节发音特征向量用于作为解码器输入的全部或者部分。

图3为本申请实施例提供的实现语言模型的解码层输入和输出的流程图。

如图3所示,在一种可选择的实施方式中,实现语言模型的解码层输入和输出包括以下步骤:

步骤S131,获取每个音节的综合特征向量,所述综合特征向量由全局上下文特征向量与音节发音特征向量组合生成。

具体地,一种组合方式是对全局上下文特征向量与音节发音特征向量进行首尾的直接拼接,得到综合特征向量,即:

综合特征向量encX=[全局上下文特征向量S,音节发音特征向量C]

其中,对于全局上下文特征向量与音节发音特征向量的拼接顺序,本申请实施例中不做具体限定,本领域技术人员在本申请实施例的技术方案时可以任意约定一种拼接顺序,能够在此处应用的设计均没有超出本申请实施例的保护范围。

此外,另一种组合方式是对全局上下文特征向量与音节发音特征向量采用线性变换的方式(包括按对应维度的值直接相加的方式)得到综合特征向量,具体可以是使用一个或者多个线性变换矩阵以及结合softmax以及拼接方式和变换方式的组合使用等方式实现,本申请实施例对综合特征向量的形成方式不做具体限定,能够在此处应用的设计均没有超出本申请实施例的保护范围。

步骤S132,对汉字编码序列进行词嵌入编码,生成每个汉字对应的汉字特征向量。

具体地,可以使用word2vec模型对汉字编码序列进行词嵌入编码,该word2vec模型具体可以是CBOW模型(基于上下文的汉字编码预测当前汉字编码的汉字特征向量)或者Skip-gram模型(基于当前汉字编码预测上下文的汉字编码的汉字特征向量)。本申请实施例中对步骤S132使用的词嵌入编码方式不做具体限定,能够在此处应用的设计均没有超出本申请实施例的保护范围。

通过词嵌入编码,能够将离散状态表征的汉字编码序列映射到一个数学定义上的多维的特征向量空间中,从而,有利于通过汉字特征向量对汉字编码序列进行各种神经网络的数学计算,从而使解码器的神经网络权重能够得到训练优化。

步骤S133,对于每个音节,根据音节在拼音编码序列中对应的顺序,将音节的综合特征向量与前一个音节对应的汉字特征向量进行组合,得到音节的解码输入向量。

示例地,在训练的第t个计算步骤中,对应的第t个音节的综合特征向量为encX[t],第t-1个音节对应的汉字特征向量为embY[t-1](由汉字编码向量Yt-1经过词嵌入编码得到)。那么在第t个步骤中,音节的解码输入向量compXY[t]为综合特征向量为encX[t]和汉字特征向量为embY[t-1]的组合,具体可以使用首尾直接拼接或者线性变换的方式实现,本申请实施例中不再具体赘述。在模型的使用过程中(指模型已训练完成的应用阶段,如输入法应用),上述Yt-1由t-1计算步骤所获得的实际预测结果pred_Y代替。

步骤S134,对于每个音节,以对应的解码输入向量作为解码器的输入,输出对应的汉字特征预测向量,并使用所述汉字特征向量对所述汉字特征预测向量的输出进行监督,联合训练编码器、解码器,所述解码器由多层递归神经网络和全连接网络或卷积神经网络组成。

具体地,解码输入向量compXY[t]输入到解码器之后,经过解码器内部的神经网络权重,能够预测输出一个对应的汉字特征预测向量pred_Y[t],使用汉字特征向量Y[t]对应的pred_Y[t],从而优化整个模型的神经网络权重,即训练整个模型。

图4为本申请实施例提供的一种语言模型训练的监督流程图。

如图4所示,在一种可选择的实施方式中,使用所述汉字特征向量对所述汉字特征预测向量的输出进行监督,可以包括以下步骤:

步骤S1441,将汉字特征预测向量与汉字特征向量的交叉熵作为语言模型训练的监督信号。

因为使用交叉熵作为监督信号,必然的,需在解码器的输出层施加softmax操作,以获得每一个解码步骤的预测对应所有汉字的概率(所有汉字指模型所使用的汉字集中存在的所有汉字)。

步骤S1442,根据监督信号,采用梯度下降方法对训练过程进行迭代,以优化语言模型的神经网络参数。

由此,利用交叉熵在语言模型中进行反向传播,并采用梯度下降方法对语言模型的神经网络参数进行迭代更新,使神经网络参数的迭代方向朝着能够生成输入拼音序列所对应的正确汉字序列的方向去迭代更新,提高语言模型的输出精度。

其中,对于梯度下降方法的具体实现方案(包括但不限于随机梯度下降、自适应梯度下降等),本申请实施例中不做具体限定,本领域技术人员在本申请实施例的技术方案时可以任意选择一种,能够在此处应用的设计均没有超出本申请实施例的保护范围。

本申请还提供了一种汉语拼音输入方法,该方法应用于本申请实施例训练的语言模型。图5为本申请实施例提供的一种汉语拼音输入方法的流程图,如图5所示,该方法包括以下步骤:

步骤S210,获取拼音字符串,所述拼音字符串包含多个音节,每个音节对应一个汉语发音。

其中,拼音字符串是用户在输入法面板或者键盘上输入的拼音内容,例如:

chuiyanniaoniaoshengqigejiangqianwanli

步骤S220,根据预设的拼音编码字典将拼音字符串的音节进行编码,生成拼音编码序列。

具体地,使用预设的拼音编码字典,对拼音字符串中的每个音节进行匹配,并将匹配到的每个音节根据拼音编码字典对应的拼音编码进行映射转换,从而得到向量形式的拼音编码序列,例如:

X=[x0,x1,x2,…,xn-1,xn]

步骤S230,根据拼音编码序列,在语言模型的编码器获取每个音节的全局上下文特征和音节发音特征。

具体地,将拼音编码序列输入到编码器,编码器通过一个词嵌入(embedding)网络将拼音编码序列转换成拼音特征向量embX,然后使用多层递归神经网络(recurrentneural networks,RNN)生成拼音特征向量embX对应的全局上下文特征向量S,音节发音特征向量C。

步骤S240,根据全局上下文特征和音节发音特征,在语言模型的解码器顺序预测每个音节对应的汉字,并输出汉字字符串。

具体地,解码器对全局上下文特征向量与音节发音特征向量进行组合,例如进行首尾的直接拼接,得到综合特征向量,即:

综合特征向量encX=[全局上下文特征向量S,音节发音特征向量C]。

然后,使综合特征向量encX经过一个多层递归神经网络(recurrent neuralnetworks,RNN)和一个全连接网络(fully connected layers,FC)输出每个计算步对所有汉字预测的概率,选取其中概率最大的一个作为当前解码步的确定输出(贪心搜索,GreedySearch),对该输出所对应的编码进行反查,还原成汉字字符串输出。另外的,上述贪心搜索也可以改为波束搜索(Beam Search)方式,即在计算步骤推进过程中,除最大概率的选择之外,还可以保留更多概率相对比较大的选择作为备选,可使得最终的句子路径的选择更接近于全局最优。

另外,作为一种可选择的实施方式,本申请实施例还可以将输入法历史生成的全局上下文特征向量,例如前一句生成的全局上下文特征向量S[d-1]与当前生成的全局上下文特征向量S进行组合(相加或者拼接),得到全局上下文特征向量S’,并使用全局上下文特征向量S’与音节发音特征向量C组合得到综合特征向量encX,从而使输入法在生成句子时能够参考到历史输入信息,进一步提高输入法整句输入的精度。

由以上技术方案可知,本申请实施例提供了一种汉语拼音输入方法,该方法应用于本申请实施例训练的语言模型,能够获取拼音字符串,所述拼音字符串包含多个音节,每个音节对应一个汉语发音;根据预设的拼音编码字典将拼音字符串的音节进行编码,生成拼音编码序列;根据拼音编码序列,在语言模型的编码器获取每个音节的全局上下文特征和音节发音特征;根据全局上下文特征和音节发音特征,在语言模型的解码器顺序预测每个音节对应的汉字,并输出汉字字符串。由于语言模型在训练时从训练数据中精准学习到每个汉字和对应拼音音节的上下文特征和音节发音特征,使语言模型具备根据长段拼音字符串准确输出汉字字符串的能力,从而应用了该语言模型的输入法具备准确的整句输入能力,从而解决了现有技术的汉语拼音输入方法整句输入准确性差的问题。

图6为本申请实施例提供的一种语言模型训练方法步骤S240的流程图。

如图6所示,在一种可选择的实施方式中,步骤S240可以包括以下步骤:

步骤S241,对于每个音节,根据音节在拼音编码序列中对应的顺序,将音节的全局上下文特征和音节发音特征与解码器输出的前一个音节的汉字特征预测向量进行组合,得到音节的解码输入向量。

具体地,可以对全局上下文特征向量与音节发音特征向量进行首尾的直接拼接,得到综合特征向量,即:

综合特征向量encX=[全局上下文特征向量S,音节发音特征向量C]

其中,对于全局上下文特征向量与音节发音特征向量的拼接顺序,本申请实施例中不做具体限定,本领域技术人员在本申请实施例的技术方案时可以任意约定一种拼接顺序,能够在此处应用的设计均没有超出本申请实施例的保护范围。

然后,将综合特征向量encX[t]与解码器输出的前一个音节的汉字特征预测向量进行组合embY[t-1],得到所述解码输入向量compXY[t]。其中t为当前正在被预测的汉字在用户要输入的句子中的位置。

步骤S242,将音节的解码输入向量输入到解码器,得到对应的汉字特征预测向量。

具体地,解码输入向量compXY[t]输入到解码器之后,经过解码器内部的神经网络权重,能够预测输出一个对应的汉字特征预测向量pred_Y[t],即预测出句子中的第t个汉字的汉字特征,由此,通过逐字步进预测的方式,得到拼音字符串对应的所有汉字特征。

步骤S243,将汉字特征预测向量解码成汉字编码序列,并根据预设的汉字编码词典转换成汉字。

具体地,对语言模型输出的完整句子的汉字特征预测向量pred_Y进行词嵌入解码。还原出对应的汉字编码序列,然后根据预设的汉字编码词典转换成汉字字符串并输出。

下面是本申请的装置实施例,可用于执行本申请的方法实施例。对于本申请装置实施例中未披露的细节,请参照本申请方法实施例。

本申请实施例提供了一种语言模型训练装置,该装置训练得到的语言模型包括编码器和解码器。图7为本申请实施例提供的一种语言模型训练装置的结构示意图,如图7所示,该装置包括:

训练准备模块310,用于获取训练数据,所述训练数据包括成对的拼音编码序列和汉字编码序列,所述拼音序列包含多个拼音编码,每个拼音编码对应一个汉语拼音音节,所述汉字编码序列包含多个汉字编码,每个汉字编码对应一个汉字;

训练模块320,用于以拼音编码序列作为编码器的输入,以拼音编码序列的全局上下文特征和音节发音特征作为编码层的输出,以及,以编码器输出的全局上下文特征和音节发音特征以及前序汉字编码序列作为解码器的输入,以汉字编码序列为解码器的目标输出,训练语言模型。

其中,所述训练语言模型包括使用拼音编码序列中的拼音编码和汉字编码序列中的汉字编码对语言模型进行逐音和逐字的步进训练;所述前序汉字编码序列为当前汉字编码之前所有汉字编码组成的汉字编码序列。

由以上技术方案可知,本申请实施例提供了一种语言模型训练装置,该语言模型包括编码器和解码器,能够获取训练数据,所述训练数据包括成对的拼音编码序列和汉字编码序列,所述拼音序列包含多个拼音编码,每个拼音编码对应一个音节,所述汉字编码序列包含多个汉字编码,每个汉字编码对应一个汉字;以拼音编码序列作为编码器的输入,训练编码器,输出拼音编码序列的全局上下文特征和音节发音特征;以编码器输出的全局上下文特征和音节发音特征以及前序汉字编码序列作为解码器的输入,以汉字编码序列为解码器的目标输出,训练语言模型。由此,语言模型能够在训练时从训练数据中精准学习到每个汉字和对应拼音音节的上下文特征和音节发音特征,使语言模型具备根据长段拼音字符串准确输出汉字字符串的能力。那么,如果将该语言模型应用到输入法中,就能够使输入法具备准确的整句输入能力,从而解决了现有技术的汉语拼音输入方法整句输入准确性差的问题。

本申请还提供了一种汉语拼音输入装置,该装置应用于本申请实施例训练的语言模型。图8为本申请实施例提供的一种汉语拼音输入装置的结构示意图,如图8所示,该装置包括:

获取模块410,用于获取拼音字符串,所述拼音字符串包含多个音节,每个音节对应一个汉语发音;

编码模块420,用于根据预设的拼音编码字典将拼音字符串的音节进行编码,生成拼音编码序列;

编码器模块430,用于根据拼音编码序列,在语言模型的编码器获取每个音节的全局上下文特征和音节发音特征;

解码器模块440,用于根据全局上下文特征和音节发音特征,在语言模型的解码器顺序预测每个音节对应的汉字,并输出汉字字符串。

由以上技术方案可知,本申请实施例提供了一种汉语拼音输入装置,该装置应用于本申请实施例训练的语言模型,能够获取拼音字符串,所述拼音字符串包含多个音节,每个音节对应一个汉语发音;根据预设的拼音编码字典将拼音字符串的音节进行编码,生成拼音编码序列;根据拼音编码序列,在语言模型的编码器获取每个音节的全局上下文特征和音节发音特征;根据全局上下文特征和音节发音特征,在语言模型的解码器顺序预测每个音节对应的汉字,并输出汉字字符串。由于语言模型在训练时从训练数据中精准学习到每个汉字和对应拼音音节的上下文特征和音节发音特征,使语言模型具备根据长段拼音字符串准确输出汉字字符串的能力,从而应用了该语言模型的输入法具备准确的整句输入能力,从而解决了现有技术的汉语拼音输入方法整句输入准确性差的问题。

本领域技术人员在考虑说明书及实践这里公开的申请后,将容易想到本申请的其它实施方案。本申请旨在涵盖本申请的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本申请的一般性原理并包括本申请未公开的本技术领域中的公知常识或惯用技术手段。说明书和实施例仅被视为示例性的,本申请的真正范围和精神由下面的权利要求指出。

应当理解的是,本申请并不局限于上面已经描述并在附图中示出的精确结构,并且可以在不脱离其范围进行各种修改和改变。本申请的范围仅由所附的权利要求来限制。

设计图

一种语言模型训练方法、汉语拼音输入方法及装置论文和设计

相关信息详情

申请码:申请号:CN201910024064.8

申请日:2019-01-10

公开号:CN109739370A

公开日:2019-05-10

国家:CN

国家/省市:11(北京)

授权编号:CN109739370B

授权时间:20190903

主分类号:G06F 3/023

专利分类号:G06F3/023;G06F17/22;G06N3/04;G06N3/08

范畴分类:40B;

申请人:北京帝派智能科技有限公司

第一申请人:北京帝派智能科技有限公司

申请人地址:100107 北京市朝阳区北苑路甲13号院1号楼16层

发明人:汪磊

第一发明人:汪磊

当前权利人:北京帝派智能科技有限公司

代理人:逯长明;许伟群

代理机构:11363

代理机构编号:北京弘权知识产权代理事务所(普通合伙)

优先权:关键词:当前状态:审核中

类型名称:外观设计

标签:;  ;  ;  ;  ;  ;  ;  ;  

一种语言模型训练方法、汉语拼音输入方法及装置论文和设计-汪磊
下载Doc文档

猜你喜欢