普通话中的多音字歧义消除旨在为多音字从多个候选项中获取正确的发音。 它是人类语言技术(如文本到语音合成)的重要组成部分。 由于大多数多音字的发音可以根据文本中的上下文轻松决定,因此在本文中,我们将多音字消歧问题作为序列任务来解决。 具体而言,我们建议使用双向长短期记忆(BLSTM)神经网络来编码过去和未来对字符序列的观察作为其输入并预测发音。 我们还通过实证研究(1)建模不同长度的上下文,(2)BLSTM层的数量和(3)part-o-speech(POS)标签的粒度作为特征的影响。 我们的结果表明,使用深度BLSTM能够在polyphone消歧中实现最先进的性能。
Index Terms: Polyphone disambiguation, Grapheme-to-phoneme conversion, Sequence tagging, Bi-directional LSTM,Text-to-Speech
字母到音素(G2P)转换旨在预测单词的正字法的发音,即一系列字符或字素。 它是人类语言技术的重要组成部分,特别是在语音合成和语音识别方面。 在诸如英语之类的字母语言中,G2P模块面临的主要问题是为词汇外(OOV)词[1,2,3,4,5,6,7]生成发音。但是, 在汉语中,一种基于字符的语言,大多数字符只有一个固定的发音,每个字符都发音为音调音节。 因此,中文G2P转换的难点在于多音素消歧,其目的是为多音字从多个候选者中挑选出一个正确的发音[8]
已经提出了各种方法来解决多音字消歧问题。 它们可以被分类为基于知识和基于学习的方法。 丰富的发音字典和人类规则在基于知识的系统中是必不可少的。 该词典旨在尽可能多地列出多音字及其发音[9]。 但是这本词典无法涵盖该语言中的所有复调案例。 因此,语言专家制定了一些规则来处理这些案例。 在运行期间,首先在词典中搜索多语音的发音。 如果找不到,请查看手册规则以确定发音。
基于知识的方法在很大程度上依赖于人的专业知识,而基于学习的方法旨在从一组数据中自动学习多音字消歧模型。与英语中的G2P转换类似,联合n-gram模型可用于多音素消歧。由于复音字符的相对较小的发音基数,即2到4,可以从训练集中可靠地获得n-gram统计,从而导致合理的性能。这种n-gram模型通常被实现为加权有限状态换能器(WFST)。 多音字消歧可以被视为分类任务。基于为polyphone提取的一组特征,通过决策树(DT)[10]或最大熵(Maxent)模型[11]从一组候选者预测其发音。一项研究表明,Maxent模型在多音素消歧中胜过DT [11]。基于学习的方法可以与基于知识的方法相结合,形成混合方法[12],其中大多数多音字被学习模型消除歧义,但是一些复调字符的发音由人类规则决定。
由于大多数复音字符的发音可以很容易地从它们的上下文中确定,因此在本文中,我们将polyphone消歧任务称为连续的标记(或标记)任务,该任务模拟重要的上下文信息。具体来说,我们建议使用双向长短期记忆(BLSTM)神经网络来确定普通话中的多音字发音。我们的方法是由最近BLSTM模型在英语G2P转换[1] [13]以及各种顺序学习任务[14,15,16,17]中取得的巨大成功所推动的。 LSTM使用专门设计的门来控制信息流,因此具有特殊的上下文建模能力[18]。 BLSTM由前向LSTM和后向LSTM组成,因此它可以对过去和未来的上下文进行建模。然而,英语G2P中使用的LSTM模型并不适用于普通话中的polyphone消歧。首先,除了两种语言之间的巨大差异之外,我们还将确定在任务中建模的最佳上下文。其次,最近的研究表明,使用多个隐藏层可以学习分层特征并提高性能。我们想研究使用深BLSTM架构是否可以使这项任务受益。我们的结果表明,使用深度双向LSTM能够实现多功能电话消歧的最先进性能。
在汉语中,复音字符的发音通常可以由包含它的单词及其相邻单词来确定。对于表1中的示例,如果显示包含polyphone的单词,我们可以轻松获得polyphone的发音。因此,包含polyphone的单词的标识是一个重要特征。然而,在表1中,我们仍然无法区分“(zhao1)”和“chao2”,但这两个词可以被区分(并且可以确定多音素的发音)。 )如果我们有词性(POS)信息。如果单词被标记为 ‘ns’ 那么这个多音字“朝”在词组“朝阳”中读“chao2”。如果标记 ‘n’ 那么“朝”在词组“朝阳”中读“zhao1”。因此,POS标签是是一个重要特征在多音字消歧中。因此,我们只是使用包含polyphone的单词的标识,并将其作为特征标记为POS标记。
表2显示左右的上下文对于polyphone消歧也非常有用。 在该示例中,字符 “转” 可以用作具有不同含义和不同发音的两个动词。 但是,如果我们观察它们的上下文(不同的POS标签),则可以容易地区分这两个 “转” 的发音。 这也是促使我们使用循环网络对多音字消歧任务中的上下文进行建模的原因。
我们将polyphone消歧作为序列标记任务处理。 在G2P转换任务[1,2,3,4,5,6,7]中,神经网络接受字符序列并输出发音序列。 在普通话的polyphone消歧中,输入是内部有一个或多个复音字符的字符序列,而复音字符和其他非复音字符的输出是预测的发音和NULL符号(’ - '), 具体而言,如表3所示
具体来说,我们使用LSTM递归神经网络(RNN)来进行序列标记。 允许在前馈神经网络中进行循环连接,我们获得了循环神经网络,如图1所示.RNNs,尤其是那些具有LSTM细胞的网络,最近在包括语言建模在内的各种任务上产生了有希望的结果[19] [20],语音识别[21]和其他顺序标记任务[14,15,16,17,22,23,24]。 LSTM [18]使用专门构建的存储单元来存储信息,这些信息旨在模拟大范围的上下文。 LSTM由一组反复连接的存储器块组成,每个块由一个或多个自连接存储器单元和三个乘法门组成,即输入门,忘记门和输出门,如图2所示。三个门 旨在通过使用非线性求和单元捕获远程上下文信息。 对于LSTM,循环隐藏层功能实现如下:
其中Xt是输入特征向量; σ是元素方式的逻辑sigmoid函数; i,f,o和c分别表示输入门,忘记门,输出门和存储单元,它们都与LSTM输出向量h的大小相同; Wxi是输入门矩阵,Whc是隐藏单元矩阵,依此类推; ⊙是相乘。
LSTM的一个缺点是它是单向的:它只使用前面的文章。 但在polyphone消歧中,过去和未来的文章都很重要(如第4.3节所示)。 因此,双向LSTM(BLSTM)架构用于多音字消歧,如图3所示。BLSTM由前向LSTM和后向LSTM组成,然后组合两个子网的输出[21]。 给定输入序列(x1,x2,…,xn),前向LSTM从左到右读取它,但后向L STM以相反的顺序读取它。 这两个网络具有不同的参数。 BLSTM可以在特定时间利用过去的输入和未来的输入。
图4显示了基于LSTM的多音字消歧系统的流程图。给定输入字符序列,首先我们执行分词和POS标记。在这项研究中,我们将包含复音字符的单词作为序列的中心,并将单词的左右相邻单词视为上下文。在图4所示的例子中,“古都” 是包含多音字 ‘都’ 作为居中字,而它的左右邻居是单词 ‘在’ 和 “西安”。然后,我们从POS标签序列生成一个token序列,如果它有多个字符,则中心字被分成几个tokens。在这个例子中,“古都_n“ 分为 ”古_ n“ 和 ”都_n”。在token序列中,左右词被视为单个token(如果有多个字符,则不会分开),我们只使用其POS标签作为特征。我们发现相邻单词的POS标签对于polyphone消歧更有用。然后将token序列表示为特征向量序列。每个特征向量具有字符标识子向量,多音素辨识子向量和POS标签子向量。最后,将特征向量序列送到BLSTM网络中,产生具有多音字预测的发音序列。网络输出由posterior向量表示,posterior向量由所考虑的多音手的所有可能发音组成(在本研究中,79个具有186个发音的多音字)和一个NULL标签。我们选择具有最高后验的发音作为结果。
我们选择79个最常用的多音字进行多音字消歧实验。 我们从互联网上抓取174899个句子,并手动标记这些句子中出现的79个和弦字符的发音(即拼音)。 我们手动将语料库划分为具有167221个句子(179410复音字符)的训练集和具有7678个句子(10500复音字符)的测试集。
我们使用NLPIR工具包[25]对文本执行POS标记。采用Kaldi工具包[26]来实现神经网络。为了加速训练,我们使用并行数据,每个小批量使用512个字符序列。我们的网络具有混合结构,其中一个前馈层位于前 K 个 BLSTM层,其中通过实验凭经验选择最佳K.我们的实证研究表明,这种网络结构可以保证培训的稳定性。每个隐藏层中的节点数设置为512.隐藏激活函数为sigmoid,输出激活函数为softmax。我们使用交叉熵作为训练中的误差函数。初始学习率设置为0.01,但如果交叉熵得分没有改善,我们将学习率减半。我们还实现了联合n-gram 方法 [2](n = 2)和Maxent方法[11]进行比较。训练和测试集与BLSTM模型训练中的训练和测试集保持一致。
我们研究了不同上下文输入的影响,结果总结在表4中。在这个实验中,我们使用两个LSTM / BLSTM层(K = 2)和测试差异上下文。 BLSTM可以对过去和未来的上下文进行建模,而前向和后向(单向)LSTM可以分别模拟仅过去和仅未来的上下文。 从结果中,我们可以清楚地看到,没有过去和未来的输入(0个字),BLSTM的准确度降低到与联合n-gram方法相同的水平,并且单向LSTM具有更低的准确度。 最好的表现是通过1个单词的上下文实现的。 但是进一步将上下文扩展到2个单词会导致明显的准确性降级。 与单向LSTM相比,BLSTM始终具有更高的精度。 这一观察结果表明,过去和未来情境的使用对于电话消歧都是必不可少的。
我们进一步测试具有不同BLSTM层的网络。 在本实验中,输入上下文设置为±1个单词。 结果如表5所示。我们注意到一层BLSTM已经可以获得良好的性能,但是具有两个BLSTM层的更深层网络可以实现最佳性能。 此外,加深网络对3层有负面影响。 我们认为这可能是由于数据有限造成的。
正如我们在第2节中讨论的那样,POS标签是多音字消歧的关键特征。 因此,我们在基于BLSTM的多音字消歧任务中检查来自POS标记粒度的影响。 在实验中,我们使用2层BLSTM(即K = 2)和±1字的上下文。 我们研究了2组POS标签作为网络输入。 表6提供了两种POS标记工具的准确性,即LTP [27]和NLPIR [25]。 LTP标签器输出28个不同的POS标签,而NLPIR输出90个不同的POS标签。 我们可以清楚地看到带有NLPIR标签的BLSTM优于带有LTP标签的BLSTM。 这意味着POS标签中更精细的粒度可以带来更好的polyphone消歧性能。
表7总结了不同方法的Polyphone消歧准确度。在BLSTM中,K设置为2,上下文设置为±1个字。 从表7中,我们清楚地看到BLSTM方法明显优于联合n-gram方法[2]和Maxent方法[11](特征类似于BLSTM)。 paired t-tests的差异在95%的自信水平上显着。 与联合n-gram方法和Maxent方法相比,相对准确度分别提高了4.7%和5.5%。
在本文中,我们将polyphone消歧问题作为顺序标记任务来解决。 具体来说,我们建议使用双向长短期记忆(BLSTM)神经网络来编码过去和未来对字符序列的观察作为其输入并预测发音。我们的结论如下。 1)通过对输入的过去和未来上下文进行建模,双向LSTM在多音素消歧中显着地优于单向LSTM。2)2层BLSTM模型实现了优越的性能。 3)POS标签中更精细的粒度能够带来更好的性能。 与联合n-gram方法和Maxent方法相比,我们观察到相对准确度分别提高了4.7%和5.5%。 将来,研究一个简单的循环神经网络是否可以达到类似的性能可能很有意义。