融合多粒度特征的越南语语法错误纠正方法及装置

allin2022-11-22  32



1.本发明涉及融合多粒度特征的越南语语法错误纠正方法及装置,属于自然语言处理技术领域。


背景技术:

2.文本纠错技术的应用场景十分广阔,除了设计成面向外语学习者的自动在线纠错学习工具外,也可以在其他领域起到重要作用。比如在办公软件上嵌入纠错模块,可以在作者写作时自动检查并提示错误,从而降低因疏忽导致的错误表述;将文本纠错模块嵌入到语音识别系统中,可以自动修正语音识别转文本过程中的错别字,使产品整体体验更佳;新闻媒体行业可以将其用于编辑校对,用于自动纠正新闻文章中的错别字,从而节省大量人工成本。
3.文本语法纠错通常使用序列到序列的文本生成模型来生成语法正确的句子,但是,现有的seq2seq方法存在以下问题:(1)序列生成模型由于曝光偏差的问题,导致生成的句子不稳定,生成的句子与输入句子语法结构上差异较大,使得纠错准确率不高;(2)现有方法无法有效利用越南语的语言特征,使得语法错误的识别较为困难,语法错误检测准确率不高。
4.综上所述,需要提供一种能够有效利用越南语的语言特征并且能够准确识别错误位置以及对错误位置的词进行正确纠正的方法与系统。


技术实现要素:

5.为解决上述问题,本发明提供了一种融合多粒度特征的越南语语法错误纠正方法及装置,本发明在纠错准确率、召回率和f值等指标上的表现均优于基线模型,纠错的准确率有很大的提升。
6.本发明的技术方案是:第一方面,本发明提供一种融合多粒度特征的越南语语法错误纠正方法,所述方法的具体步骤如下:
7.step1、越南语文本数据获取并对其进行预处理;
8.step2、对输入的越南语句子进行词嵌入表示,并且融合额外的特征向量;对输入的越南语句子进行语法错误检测;
9.step3、根据检测结果利用mbert掩码语言模型对错误位置的词进行纠正,得到数个候选句子;利用n-gram语言模型对候选句子打分,选出得分最高的纠正候选句子输出。
10.作为本发明的进一步方案,所述step1的具体步骤如下:
11.step1.1、利用爬虫程序从维基百科词条目录(http://www.wikipedia.org)以及越南的各大新闻网站(http://www.vnexpress.net、https://thanhnien.vn)爬取文本数据,得到大规模的越南语原始语料,大小约为1.5gb;
12.step1.2、对爬取到的语料进行数据清洗,先将得到的文本进行断句,得到152万个句子,然后删除含有特殊字符和非越南语字符的句子,再筛选出句子长度不超过40个音节
并且音节重复率低于90%的句子,最终得到语法正确的句子108万句;
13.step1.3、利用开源工具underthesea(https://github.com/undertheseanlp/underthesea)对step1.2预处理后的句子进行分词和词性标注,根据分词和词性标注结果构建越南语词性词典,根据越南语拼写和发音规则构建音节混淆集词典;
14.step1.4、设计并实现一个基于不同错误类型的错误数据生成算法,利用该算法和step1.3得到的音节混淆集词典对语法正确的句子进行造错,人工构造了规模为20.8万的“错误-纠正”平行句对,并对错误位置进行标注,得到错误句子中每个词对应的标签;
15.作为本发明的进一步方案,所述step2的具体步骤如下:
16.step2.1、对于输入的包含语法错误的句子x=(x1,...,xi,...,xn),利用多语言bert模型(mbert)对输入句子的每个音节xi进行词嵌入初始化,得到编码后的隐状态表示:
[0017][0018]
其中,表示mbert编码器最后一层的隐状态输出,l表示隐层网络层数。
[0019]
step2.2、对输入的每个音节xi进行字符特征嵌入,首先对xi(c1,c2,....,cm)进行字符拆分,得到当前音节的每个字符cj,然后对每个字符cj进行one-hot编码,得到音节xi对应的字符特征向量ci:
[0020][0021]
其中,m表示音节的字符总数,dc表示字符特征维度大小,fk(x)表示第k维的one-hot编码。
[0022]
step2.3、对输入的每个音节xi进行音节特征嵌入,音节特征包括每个音节对应的词性和它的声调,先判断输入音节的词性标签pi和声调标签ti,然后分别根据词性和声调标签进行one-hot编码,得到词性特征向量pi和声调特征向量ti,最后将pi和ti进行拼接操作得到音节特征向量si:
[0023][0024]
si=concat(pi,ti)
[0025]
其中,fk(x)表示第k维的one-hot编码,d
p
表示词性特征维度,d
t
表示声调特征维度。
[0026]
step2.4、对输入的每个音节xi进行句子特征嵌入,句子特征包括短语成分特征和相邻音节匹配度特征,用一个矩阵表示第i个音节对应的短语成分特征矩阵,其中,ds表示成分标注集大小,dm表示短语成分特征维度,第k维的权重参数从一个服从上的均匀分布进行随机采样,采样样本数为dm;
[0027]
step2.5、使用相邻音节匹配度(adjacent syllable matching,asm)来表示输入句子中两个相邻音节之间的语法正确程度,首先使用点互信息(pointwise mutual information,pmi)来表示相邻音节之间的相关性:
[0028]
[0029]
其中,p(s1,s2)表示两个音节s1和s2在语料库中同时出现的概率,p(s)表示某个音节s在语料库中单独出现的概率。
[0030]
step2.6、用一个矩阵表示第i个音节的相邻音节匹配度特征,其中,dm表示特征维度,矩阵中的每个权重参数用相邻音节匹配度(asm)进行初始化:
[0031][0032]
step2.7、将第i个音节的短语成分特征向量和相邻音节匹配度特征向量进行拼接,得到句子特征向量gi,然后再将字符特征向量ci、音节特征向量si和句子特征向量gi按照最大维度填充(pad)后再拼接(concatenation),得到音节xi对应的特征向量f(xi):
[0033][0034]
f(xi)=pad_concat(ci,si,gi)
[0035]
step2.8、得到每个音节xi的特征嵌入f(xi)后,再将其和mbert编码器的最后一层隐状态输出进行拼接,得到最终的隐状态表示xi,然后将送入一个softmax层去计算每个音节xi的预测标签概率li:
[0036][0037]
li=softmax(woxi+bo)
[0038]
其中,wo是softmax层的矩阵权重参数,bo是偏置项权重参数。
[0039]
作为本发明的进一步方案,所述step3的具体步骤如下:
[0040]
利用mbert掩码语言模型和n-gram语言模型进行语法纠错的方法;
[0041]
step3.1、根据step2中得到的预测标签序列l=(l1,l2,...,ln)进行语法错误纠正,首先遍历检测结果标签序列中的每个标签li,如果li为“o”(无错标记),则纠正句子中对应位置处的音节保持不变,否则将对应位置处的音节替换为“mask”标记;
[0042]
step3.2、利用mbert掩码语言模型(mbert masked language model)对“mask”标记位置的词进行重新预测,给出5个候选纠正项{a1,a2,a3,a4,a5};
[0043]
step3.3、原输入句子x的“mask”标记处分别用5个纠正候选项进行替换,得到对应的5个纠正候选句子{y1,y2,y3,y4,y5};
[0044]
step3.4、利用n-gram语言模型对得到的5个纠正候选句子进行打分:
[0045][0046][0047]
其中,s表示输入的候选句子,p(x)表示利用n-gram语言模型计算出的某个音节x在语料库中出现的概率。
[0048]
step3.5、选择5个候选句子中得分最高的作为最终的纠正句子输出:
[0049]yout
=max{score(y1),score(y2),score(y3),score(y4),score(y5)}
[0050]
第二方面,本发明实施例还提供了融合多粒度特征的越南语语法错误纠正装置,该装置包括用于执行上述第一方面的方法的模块。
[0051]
具体的可以为,提供一种基于“错误检测-错误纠正”pipeline模式的越南语语法错误纠正装置,包括以下几个模块:
[0052]
词嵌入模块:用于将输入的越南语句子序列x=(x1,x2,...,xn)中的每个音节转换为词向量,词向量的权重参数使用mbert模型的编码器对每个音节进行初始化,编码器由多个transformer encoder组成,经过mbert编码后可得到每个音节对应的隐状态表示向量,该向量根据step2.1计算得到。
[0053]
特征嵌入模块:用于对输入的句子x进行多粒度的特征表示,这些特征主要包含三个粒度:字符粒度、音节粒度、句子粒度,字符特征是指对输入音节的每个字符进行进一步编码表示,音节特征是指对输入音节的词性和声调进行进一步编码表示,句子特征是指对输入句子x的短语结构信息和相邻音节匹配度进行进一步编码表示,整个特征嵌入的计算步骤如下:
[0054]
1、根据step2.2计算每个音节的字符特征向量;
[0055]
2、根据step2.3计算每个音节的词性特征向量和声调特征向量;
[0056]
3、根据step2.5和step2.6计算输入句子的相邻音节匹配度特征向量;
[0057]
4、根据step2.7计算得到每个音节对应的特征向量;
[0058]
语法错误检测模块:用于使用基于mbert的序列标注模型对输入句子x的每个音节进行标签预测,将词嵌入模块得到的隐状态表示向量和特征嵌入模块得到的特征向量拼接后送入一个softmax层去计算每个音节预测标签的概率,预测概率根据step2.8计算得到。
[0059]
语法错误纠正模块:用于根据语法错误检测模块计算出的预测概率,得到输入句子x对应的预测标签序列l=(l1,l2,...,ln)。遍历标签序列l,如果l中没有错误标记,则表示输入句子x语法正确,x原样输出;如果l中含有错误标记,则表示x含有语法错误,用“mask”标记替换错误位置的标签,再利用mbert掩码语言模型对“mask”标记处的词进行重新预测,得到5个纠正候选词,用这5个候选词分别替换原来错误位置的词,得到5个纠正候选句子,最后利用n-gram语言模型和step3.4以及step3.5计算选出句子得分最高的候选句子y作为纠正句子输出。
[0060]
词嵌入模块、特征嵌入模块、语法错误检测模块和语法错误纠正模块,通过级联方式串接起来,共同构成一个“错误检测-错误纠正”pipeline模式的越南语语法错误纠正装置。
[0061]
本发明的有益效果是:
[0062]
本发明将语法纠错任务视为语法错检测和语法错误纠正两个子任务,在语法错误检测网络的编码端融入额外的越南语特征向量,包括了字符、音节和句子粒度的不同特征,能够有效识别出传统序列标注模型识别不到的越南语语法错误;根据语法错误检测的输出结果对输入句子进行修改,而非直接利用序列生成模型生成结果,这种方式不会对输入句子的整体语法结构作大量修改,有效避免了序列生成模型的曝光偏差问题。
[0063]
本发明提出的方法及装置结构对于越南语的词序错误、音节混淆错误以及虚词误
用错误有很好的纠正效果,语法错误的识别准确率和语法错误纠正准确率均优于基线模型。
附图说明
[0064]
图1为本发明中的语法错误纠正模型构建示意图;
[0065]
图2为本发明中的特征融合流程示意图;
[0066]
图3为本发明中的错误数据生成算法流程示意图;
[0067]
图4为本发明中的装置结构示意图;
[0068]
图5为本发明中的流程示意图。
具体实施方式
[0069]
实施例1:如图1-图5所示,融合多粒度特征的越南语语法错误纠正方法,所述方法包括:对越南语文本数据进行预处理;对输入的越南语句子进行词嵌入表示,并且融合额外的特征向量;对输入的越南语句子进行语法错误检测;根据检测结果利用mbert掩码语言模型对错误位置的词进行纠正,得到数个候选句子;利用n-gram语言模型对候选句子打分,选出得分最高的纠正候选句子输出。
[0070]
具体步骤为:
[0071]
step1、利用爬虫程序从维基百科词条目录(http://www.wikipedia.org)以及越南的各大新闻网站(http://www.vnexpress.net、https://thanhnien.vn)爬取大小约为1.5gb的原始语料,使用开源工具underthesea(https://github.com/undertheseanlp/underthesea)对爬取到的语料进行数据清洗,首先对文本数据进行断句,得到152万个句子,然后过滤掉含有特殊字符的句子,再筛选出句子长度不超过40个音节并且音节重复率低于90%的句子,最终得到语法正确的句子108万句。利用开源工具underthesea对这些句子进行分词和词性标注,根据分词和词性标注结果构建越南语词性词典,根据越南语拼写和发音规则构建音节混淆集词典。
[0072]
将语法正确的108万个句子作为种子语料,针对越南语中的连词错误、介词错误、关联词错误、词序错误、音节混淆错误等5种错误类型,设计了一个基于不同错误类型的错误数据生成算法,算法流程如图3所示。首先对语法正确的种子语料cs进行分句,得到句子集合{s},遍历每个句子s,然后依概率pe判断是否对s进行造错,依概率pu、pm、ps判断是否对s引入替换错误(介词、连词、关联词错误)、词序错误和音节混淆错误,其中,音节混淆错误根据混淆集词典中的选项进行替换,概率pe、pu、pm、ps均为人工设置的参数,在本发明中分别设置为0.5、0.25、0.25、0.25。根据错误数据生成算法得到的含有语法错误的句子示例如表1所示。
[0073]
表1越南语语法错误类型示例
[0074][0075]
本发明主要针对表1中的5种错误类型进行语法纠错,利用错误数据生成算法对种子语料进行造错,以错误句子为源端,以正确句子为目标端,人工构造规模为20.8万的“错误-纠正”平行句对。然后对含有语法错误句子进行标注,采用bio标注方案,用“b
‑”
前缀表示语法错误的起始位置,“i
‑”
前缀表示语法错误部分的中间和结尾部分,“o”标记表示不含语法错误的部分。采用6种不同的标签来分别表示连词错误、介词错误、关联词错误、词序错误和音节混淆错误。详细的标注方案如表2所示。
[0076]
表2纠错语料标注方案
[0077][0078]
根据表2的标注方案,对人工构造的20.8万的“错误-纠正”平行句对进行标注,得到可用于语法错误检测模型训练和预测的数据以及后续用于语法错误纠正模型训练的平行句对。
[0079]
step2、接下来对语法错误检测模型进行建模,首先对输入句子进行词嵌入表示,直接采用多语言bert(mbert)模型预训练好的词嵌入权重参数对输入句子的每个音节进行初始化,mbert模型来自于hugging face提供的transformers代码库,bert下载地址:https://cdn.huggingface.co/bert-base-multilingual-cased-pytorch_model.bin。对于输入的包含语法错误的句子x=(x1,x2,...,xn),利用mbert模型对输入句子的每个音节xi进行词嵌入初始化,得到编码后的隐状态表示:
[0080]
[0081]
其中,表示mbert编码器最后一层的隐状态输出,l表示隐层网络层数。
[0082]
然后对输入句子的每个音节进行特征嵌入,得到特征向量并将特征向量融入mbert模型的编码端,特征融合过程如图2所示。这些特征包括字符特征、音节特征和句子特征,各个粒度的特征嵌入过程如下:
[0083]
1、字符特征嵌入,首先对xi(c1,c2,....,cm)进行字符拆分,得到当前音节的每个字符cj,然后对每个字符cj进行one-hot编码,得到xi对应的字符特征向量ci:
[0084][0085]
其中,m表示音节的字符总数,dc表示字符特征维度大小,fk(x)表示第k维的one-hot编码。
[0086]
2、音节特征嵌入,音节特征包括每个音节对应的词性和它的声调,先判断输入音节的词性标签pi和声调标签ti,然后分别根据词性和声调标签进行one-hot编码,得到词性特征向量pi和声调特征向量ti,最后将pi和ti进行拼接操作得到音节特征向量si:
[0087][0088]
si=concat(pi,ti)
ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ
(4)
[0089]
其中,d
p
表示词性特征维度,d
t
表示声调特征维度。词性标签利用前面提到的开源工具underthesea对输入句子标注后得到,一共有10种,声调标签根据音节的加符字符判断,每个音节只有一种声调,声调包括横声、玄声、锐声、问声、跌声和重声6种。
[0090]
3、句子特征嵌入,句子特征包括输入句子的短语成分特征和相邻音节匹配度,用一个矩阵表示音节xi对应的短语成分特征矩阵,其中,ds表示成分标注集大小,dm表示短语成分特征维度,第k维的权重参数从一个服从上的均匀分布进行随机采样,采样样本数为dm;再用一个矩阵表示音节xi的相邻音节匹配度特征,其中,dm表示特征维度,矩阵中的每个权重参数用相邻音节匹配度(adjacent syllable matching,asm)进行初始化:
[0091][0092][0093]
其中,p(s1,s2)表示两个音节s1和s2在语料库中同时出现的概率,p(s)表示某个音节s在语料库中单独出现的概率。
[0094]
4、将音节xi对应的短语成分特征向量和相邻音节匹配度特征向量进行拼接,得到句子特征向量gi,然后再将字符特征向量ci、音节特征向量si和句子特征向量gi按照最大维度填充(pad)后再拼接(concatenation),得到音节xi对应的特征向量f(xi):
[0095][0096]
f(xi)=pad_concat(ci,si,gi)
ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ
(8)
[0097]
得到每个音节xi的特征嵌入f(xi)后,再将其和mbert编码器的最后一层隐状态输出进行拼接,得到最终的隐状态表示xi,然后将送入一个softmax层去计算每个音节xi的预测标签概率li:
[0098][0099]
li=softmax(woxi+bo)
ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ
(10)
[0100]
其中,wo是softmax层的矩阵权重参数,bo是偏置项权重参数。语法错误检测模型在训练阶段使用如公式(11)所示的交叉熵损失对检测模型进行优化:
[0101][0102]
其中,y表示正确类别的softmax输入,c表示标签类别数,yj表示第j个标签的预测概率。在模型推理阶段,最后的softmax输出层直接输出越南语句子x对应的预测标签序列l=(l1,l2,...,ln)。
[0103]
step3、最后,根据检测标签序列l,利用mbert掩码语言模型和n-gram语言模型进行语法纠错。首先遍历检测结果标签序列中的每个标签li,如果li为“o”(无错标记),则纠正句子中对应位置处的音节保持不变,否则将对应位置处的音节替换为“mask”标记;利用mbert掩码语言模型(mbert masked language model)对“mask”标记位置的词进行重新预测,给出5个候选纠正项{a1,a2,a3,a4,a5};原输入句子x的“mask”标记处分别用5个纠正候选项进行替换,得到对应的5个纠正候选句子{y1,y2,y3,y4,y5};利用n-gram语言模型对得到的5个纠正候选句子进行打分:
[0104][0105][0106]
其中,s表示输入的候选句子,p(x)表示利用n-gram语言模型计算出的某个音节x在语料库中出现的概率。越南语的n-gram语言模型使用开源工具kenlm和获取的大规模越南语文本数据训练得到,kenlm地址为:https://github.com/kpu/kenlm。在本发明中,使用kenlm训练了一个5-gram的语言模型,mbert掩码语言模型使用transformers代码库中提供的bertformaskedlm模型参数,最后选择候选句子中得分最高的作为输出:
[0107]yout
=max{score(y1),score(y2),score(y3),score(y4),score(y5)}
ꢀꢀꢀꢀꢀꢀꢀꢀ
(14)
[0108]
整个语法纠错的网络模型需要训练语法错误检测网络部分,训练数据必须包含表1所示的5种错误类型,本发明将数据预处理部分人工构建的带有标注的“错误-纠正”平行句对作为模型的训练和验证数据,具体的数据统计信息如表3所示。检测网络采用基于mbert的序列标注模型,模型的参数设置如表4所示。
[0109]
表3数据集详细统计信息
[0110][0111]
表4模型参数设置
[0112][0113]
在模型的评价指标方面,使用m
2 scorer工具(https://github.com/nusnlp/m2scorer)进行纠错准确率、召回率和f值的计算,具体介绍如下:
[0114]
语法纠错模型的评估采用m2评价指标,该指标通过计算语法纠错系统的输出的编辑集合与参考的纠正编辑集合之间的匹配程度来衡量系统的整体性能。该工具的评价指标计算仍然采用准确率p,召回率r和f值的方式,但是计算方式与一般分类任务略有不同,对于n个纠错系统输出的句子,p、r和f值的计算方式如下:
[0115][0116][0117][0118]
其中,|gi∩ei|表示语法纠错系统输出的第i个句子的编辑集合与参考编辑集合之间的交集,m2评价指标严格要求修改后的每个字符串相同才算作交集,ei和gi分别表示纠错系统输出的第i个句子的编辑集合和第i个句子的参考纠正的编辑集合。
[0119]
为了验证本发明的有效性,将以下模型与本发明提出的模型进行对比实验:
[0120]
(1)lstm-seq2seq:一种基于lstm结构的序列到序列模型,实验中分别对比了使用word2vec单音节词向量和glove单音节词向量的效果。
[0121]
(2)bi-lstm with attention:一种带有注意力机制的基于双向lstm网络的序列
生成模型,使用glove预训练的单音节词向量。
[0122]
(3)transformer:经典的基于自注意力机制的编码器-解码器模型,能够适应各种序列生成任务,包括语法纠错。
[0123]
表5不同方法在测试集上的效果对比(单位:%)
[0124][0125]
表5展示了在测试集上不同方法的评测结果。结果表明,同基线方法相比,本发明提出的方法在测试集上的准确率和召回率均为最高,分别为42.53%和42.82%;在基线方法中,transformer模型是基线方法中效果最好的模型,在准确率和召回率上远高出传统的基于lstm网络的seq2seq模型,本章的方法与transformer模型相比在准确率、召回率、f
0.5
值和f1值上分别高出15.86%、19.59%、16.69%和17.84%,表明采用“错误检测-错误纠正”pipeline方式的方法要比直接端到端的序列生成方法效果要好。
[0126]
表6越南语语法纠错实例
[0127][0128]
表6展示了两个越南语语法纠错的具体实例。从表6可以看出,本发明提出的语法纠错模型整体效果优于transformer序列生成模型。在第一个例子中,输入句子存在音节混淆错误,错误音节为正确音节为正确词组为(所有)”,transformer模型虽然改对了该词组,但是将后面不应修改的部分修改了,本发明提出的模型改对了整个句子。在第二个例子中,一共有两处错误,transformer模型未对其进行修改,而提出的模型只改对了一处错误。
[0129]
第二方面,本发明实施例还提供了融合多粒度特征的越南语语法错误纠正装置,该装置包括用于执行上述第一方面的方法的模块。
[0130]
具体的可以为,提供一种基于“错误检测-错误纠正”pipeline模式的越南语语法
错误纠正装置,如图4所示,包括以下几个模块:
[0131]
词嵌入模块:用于将输入的越南语句子序列x=(x1,x2,...,xn)中的每个音节转换为词向量,词向量的权重参数使用mbert模型的编码器对每个音节进行初始化,经过mbert编码后可得到每个音节对应的词嵌入向量,该向量根据公式(1)计算得到。
[0132]
特征嵌入模块:用于对输入的句子x进行多粒度的特征表示,这些特征主要包含三个粒度:字符粒度、音节粒度、句子粒度。字符特征包括组成输入音节的每个字符的编码,字符特征向量根据公式(2)计算得到;音节特征包括输入音节的词性和声调,词性特征向量和音节特征向量根据公式(3)计算得到,将词性特征向量和音节特征向量拼接后得到输入音节的音节特征向量;句子特征包括输入句子的短语成分特征和相邻音节匹配度,短语成分特征向量的表示方式与之前介绍的特征嵌入过程相同,相邻音节匹配度特征向量根据公式(4)计算得到,将两者拼接后得到句子特征向量。最后,将字符特征向量、音节特征向量和句子特征向量进行填充对齐和拼接操作得到输入音节对应的特征向量。
[0133]
语法错误检测模块:用于使用基于mbert的序列标注模型对输入句子x的每个音节进行标签预测,将词嵌入模块得到的词嵌入向量和特征嵌入模块得到的特征向量拼接后送入一个softmax层去计算每个音节预测标签的概率,预测概率根据公式(10)计算得到。
[0134]
语法错误纠正模块:用于根据语法错误检测模块计算出的预测概率,得到输入句子x对应的预测标签序列l=(l1,l2,...,ln)。遍历标签序列l,如果l中没有错误标记,则表示输入句子x语法正确,x原样输出;如果l中含有错误标记,则表示x含有语法错误,用“mask”标记替换错误位置的标签,再利用mbert掩码语言模型对“mask”标记处的词进行重新预测,得到5个纠正候选词,用这5个候选词分别替换原来错误位置的词,得到5个纠正候选句子,最后利用n-gram语言模型和公式(12-13)计算出每个候选句子的得分,选出句子得分最高的候选句子y作为纠正句子输出。
[0135]
词嵌入模块、特征嵌入模块、语法错误检测模块和语法错误纠正模块,通过级联方式串接起来,实现了对输入的越南语句子进行语法错误检测和纠正的功能,从而共同组成一个基于“错误检测-错误纠正”pipeline模式的越南语语法错误纠正装置。
[0136]
上面结合附图对本发明的具体实施方式作了详细说明,但是本发明并不限于上述实施方式,在本领域普通技术人员所具备的知识范围内,还可以在不脱离本发明宗旨的前提下做出各种变化。

技术特征:
1.融合多粒度特征的越南语语法错误纠正方法,其特征在于,所述方法的具体步骤如下:step1、越南语文本数据获取并对其进行预处理;step2、对输入的越南语句子进行词嵌入表示,并且融合额外的特征向量;对输入的越南语句子进行语法错误检测;step3、根据检测结果利用mbert掩码语言模型对错误位置的词进行纠正,得到数个候选句子;利用n-gram语言模型对候选句子打分,选出得分最高的纠正候选句子输出。2.根据权利要求1所述的融合多粒度特征的越南语语法错误纠正方法,其特征在于,所述step1的具体步骤如下:step1.1、利用爬虫程序从维基百科词条目录以及越南的各大新闻网站爬取文本数据,得到越南语原始语料;step1.2、对爬取到的语料进行数据清洗,先将得到的文本进行断句,得到152万个句子,然后删除包含有特殊字符和非越南语字符的句子,再筛选出句子长度不超过40音节的句子和音节重复率低于90%的句子,最终得到语法正确的越南语句子108万句;step1.3、利用开源工具对step1.2预处理后的句子进行分词和词性标注,根据分词和词性标注结果构建越南语词性词典,根据越南语拼写和发音规则构建音节混淆集词典;step1.4、设计并实现一个基于不同错误类型的错误数据生成算法,利用该算法和step1.3得到的音节混淆集词典对语法正确的句子进行造错,人工构造了规模为20.8万的“错误-纠正”平行句对,并对错误位置进行标注,得到错误句子中每个词对应的标签。3.根据权利要求1所述的融合多粒度特征的越南语语法错误纠正方法,其特征在于,所述step2的具体步骤如下:step2.1、对于输入的包含语法错误的句子x=(x1,...,x
i
,...,x
n
),利用多语言bert模型mbert对输入句子的每个音节x
i
进行词嵌入初始化,得到编码后的隐状态表示:其中,表示mbert编码器最后一层的隐状态输出,l表示隐层网络层数;step2.2、对输入的每个音节x
i
进行字符特征嵌入,首先对x
i
(c1,c2,....,c
m
)进行字符拆分,得到当前音节的每个字符c
j
,然后对每个字符c
j
进行one-hot编码,得到音节x
i
对应的字符特征向量c
i
:其中,m表示音节的字符总数,d
c
表示字符特征维度大小,f
k
(x)表示第k维的one-hot编码;step2.3、对输入的每个音节x
i
进行音节特征嵌入,音节特征包括每个音节对应的词性和它的声调,先判断输入音节的词性标签p
i
和声调标签t
i
,然后分别根据词性和声调标签进行one-hot编码,得到词性特征向量p
i
和声调特征向量t
i
,最后将p
i
和t
i
进行拼接操作得到音节特征向量s
i

s
i
=concat(p
i
,t
i
)
ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ
(4)其中,f
k
(x)表示第k维的one-hot编码,d
p
表示词性特征维度,d
t
表示声调特征维度;step2.4、对输入的每个音节x
i
进行句子特征嵌入,句子特征包括短语成分特征和相邻音节匹配度特征,用一个矩阵表示第i个音节对应的短语成分特征矩阵,其中,d
s
表示成分标注集大小,d
m
表示短语成分特征维度,第k维的权重参数从一个服从上的均匀分布进行随机采样,采样样本数为d
m
;step2.5、使用相邻音节匹配度asm来表示输入句子中两个相邻音节之间的语法正确程度,首先使用点互信息pmi来表示相邻音节之间的相关性:其中,p(s1,s2)表示两个音节s1和s2在语料库中同时出现的概率,p(s)表示某个音节s在语料库中单独出现的概率;step2.6、用一个矩阵表示第i个音节的相邻音节匹配度特征,其中,d
m
表示特征维度,矩阵中的每个权重参数用相邻音节匹配度asm进行初始化:step2.7、将第i个音节的短语成分特征向量和相邻音节匹配度特征向量进行拼接,得到句子特征向量g
i
,然后再将字符特征向量c
i
、音节特征向量s
i
和句子特征向量g
i
按照最大维度填充(pad)后再拼接,得到音节x
i
对应的特征向量f(x
i
):f(x
i
)=pad_concat(c
i
,s
i
,g
i
)
ꢀꢀꢀꢀꢀꢀꢀ
(8)step2.8、得到每个音节x
i
的特征嵌入f(x
i
)后,再将其和mbert编码器的最后一层隐状态输出进行拼接,得到最终的隐状态表示x
i
,然后将送入一个softmax层去计算每个音节x
i
的预测标签概率l
i
:l
i
=softmax(w
o
x
i
+b
o
)
ꢀꢀꢀꢀꢀꢀ
(10)其中,w
o
是softmax层的矩阵权重参数,b
o
是偏置项权重参数。4.根据权利要求1所述的融合多粒度特征的越南语语法错误纠正方法,其特征在于,所述step3的具体步骤如下:step3.1、根据step2中得到的预测标签序列l=(l1,l2,...,l
n
)进行语法错误纠正,首先遍历检测结果标签序列中的每个标签l
i
,如果l
i
为“o”(无错标记),则纠正句子中对应位置处的音节保持不变,否则将对应位置处的音节替换为“mask”标记;step3.2、利用mbert掩码语言模型对“mask”标记位置的词进行重新预测,给出5个候选纠正项{a1,a2,a3,a4,a5};
step3.3、原输入句子x的“mask”标记处分别用5个纠正候选项进行替换,得到对应的5个纠正候选句子{y1,y2,y3,y4,y5};step3.4、利用n-gram语言模型对得到的5个纠正候选句子进行打分:gram语言模型对得到的5个纠正候选句子进行打分:其中,s表示输入的候选句子,p(x)表示利用n-gram语言模型计算出的某个音节x在语料库中出现的概率;step3.5、选择5个候选句子中得分最高的作为最终的纠正句子输出:y
out
=max{score(y1),score(y2),score(y3),score(y4),score(y5)}
ꢀꢀꢀꢀꢀ
(13)。5.融合多粒度特征的越南语语法错误纠正装置,其特征在于,包括用于执行如权利要求1-4任一项权利要求所述方法的模块。

技术总结
本发明涉及融合多粒度特征的越南语语法错误纠正方法及装置,属自然语言处理领域。本发明在模型编码端融入额外的越南语字符、音节和句子特征嵌入,然后利用一个序列标注网络预测输入句子的错误位置,再使用多语言BERT的掩码语言模型重新预测错误位置的词,得到数个纠正候选句子,最后利用N-gram语言模型对候选句子打分,选出得分最高的句子作为纠正句子输出。该方法避免了直接生成句子,而是根据错误检测结果对输入句子进行修改,不会改变输入句子的基本语法结构。实验结果表明本发明比基于Transformer模型的基线方法的F


技术研发人员:余正涛 张洲 朱俊国
受保护的技术使用者:昆明理工大学
技术研发日:2022.03.22
技术公布日:2022/7/5
转载请注明原文地址: https://www.8miu.com/read-4217.html

最新回复(0)