法律状态公告日
法律状态信息
法律状态
2020-04-28
授权
授权
2019-06-14
实质审查的生效 IPC(主分类):G06F17/28 申请日:20190107
实质审查的生效
2019-05-21
公开
公开
技术领域
本发明涉及古文翻译领域,具体涉及一种基于神经网络的古文翻译方法。
背景技术
古人在思想、科学、文艺上所达到的高度和取得的成就是中华民族智慧和血汗的结晶,作为民族瑰宝,是不可丢弃的。这些文化遗产大多以文献的形式所承载,然而古人所用的语言和现代所用的语言有很大的区别,是现代人很难理解的,无形中为古文化研究设立了很高的门槛。过去只能通过古文化学者逐字逐句进行翻译,耗时耗力,成本较高。
发明内容
针对现有技术中的上述不足,本发明提供的一种基于神经网络的古文翻译方法解决了逐字逐句翻译效率低的问题。
为了达到上述发明目的,本发明采用的技术方案为:
提供一种基于神经网络的古文翻译方法,其包括以下步骤:
S1、获取古文篇章及对应的翻译数据作为初始样本,
S2、对初始样本依次进行子句对齐、数据分词和数据增广操作,得到古文翻译语料库;
S3、将古文翻译语料库作为神经机器翻译模型的数据库,对序列到序列模型进行训练,得到训练好的神经网络;
S4、将待翻译的古文作为训练好的神经网络的输入,完成对古文的翻译。
进一步地,步骤S1的具体方法为:
从互联网上爬取古文篇章及对应的翻译数据,并对爬取的数据进行数据清洗,将清洗后的数据作为初始样本。
进一步地,步骤S2中对初始样本进行子句对齐的方法包括以下子步骤:
S2-1-1、对初始样本中的现代汉语进行分词,并按照从左至右的顺序将古文与现代汉语进行匹配;
S2-1-2、将已经匹配的词语从原句中删除,对于没有与现代汉语相对应的古文,引进古文字典建立逆文档频率词典,并获取每个未匹配古文字符的逆文档频率分数;
S2-1-3、检索古文字典定义的每个不匹配的古文字符,并使用它与剩余的现代汉语词汇进行匹配;
S2-1-4、根据公式
获取词法匹配的匹配度L(s,t);其中t表示现代汉语子句;s表示古文子句;|s|表示古文子句的长度;
S2-1-5、建立古文子句与现代汉语子句的翻译对应模型;其中翻译对应模型的翻译对应方式包括1→0方式、0→1方式、1→1方式、1→2方式、2→1方式和2→2方式;→表示翻译对应,→的前端为古文子句对应数目,→的后端为现代汉语子句对应数目;
S2-1-6、对于每个古文子句,获取其翻译对应模型中每种翻译对应方式的概率Pr(a→b);0≤a,b≤2;
S2-1-7、获取每个古文自然段与对应的现代汉语自然段的长度比例,并获取所有长度比例的均值u和标准差σ;
S2-1-8、根据公式
获取统计信息S(s,t);其中
S2-1-9、根据公式
获取编辑距离数值E(s,t);其中EditDis(s,t)为一句古文转译为现代汉语时的操作数,操作数包括插入、删除和替换的总次数;
S2-1-10、根据公式
d(s,t)=L(s,t)+γS(s,t)+λE(s,t)
得到任一古文子句对应到每个现代汉语子句的分值D(i,j);其中D(i,j)具体为第i个古文子句对应到第j个现代汉语子句所得的分数;γ和λ均为权重参数;si为第i个古文子句;si-1为第i-1个古文子句;si-2为第i-2个古文子句;tj为第j个现代汉语子句;tj-1为第j-1个现代汉语子句;tj-2为第j-2个现代汉语子句;NULL表示句子为空,即无对应的子句。
S2-1-11、对于任一古文子句,选取其对应分值最大的现代汉语子句作为其对齐子句,完成子句对齐。
进一步地,步骤S2中数据分词的具体方法为:
分别构建人名词典、地名词典和俗语词典,并根据构建的人名词典、地名词典和俗语词典对古文子句中的人名、地名和俗语进行分词。
进一步地,步骤S2中数据增广的具体方法包括以下子步骤:
S2-2-1、采用word2vec构建近义词词典,对近义词词典中每一个词只选取和它相似度超过0.8的近义词,得到每一条数据由一个词以及和它最相近的两至三个词构成的清洗后近义词词典,完成近义词增广;
S2-2-2、将每条数据和其后面的数据进行拼接,直至句末标点为感叹号、问号或句号,或者拼接的子句数据达到四条,将拼接的子句作为新的子句数据,完成基于子句的增广;
S2-2-3、采用统计机器翻译模型的giza++对齐工具,得到每一句古文的所有词语和其对应现代汉语的所有词语的对位信息,并根据对位信息调整古文语序,得到古文翻译语料库。
进一步地,步骤S3的具体方法包括以下子步骤:
S3-1、将古文翻译语料库中的古文子句转换为向量形式得到古文向量,并将每一个古文子句对应的古文向量作为一个训练基础单元输入序列到序列模型;
S3-2、根据公式
forgetm=sigmoid(W1·[hiddenm-1,m]+b1)
inputm=sigmoid(W2·[hiddenm-1,m]+b2)
outputm=sigmoid(W4·[hiddenm-1,m]+b4)
hiddenm=outputm*tanh(Cm)
获取序列到序列模型的编码器中任一个神经元在输入训练基础单元中第m个古文向量元素后的隐藏层状态hiddenm;其中hiddenm-1为编码器中该神经元在输入第m-1个古文向量元素后的隐藏层状态;sigmoid(·)为sigmoid函数;tanh(·)为双曲正切函数;forgetm、inputm、
S3-3、将序列到序列模型的编码器中每个神经元在输入最后一个古文向量元素后的隐藏层状态组合成向量,得到序列到序列模型的编码器与当前训练基础单元相对应的隐藏层状态向量hiddenM;
S3-4、将与编码器中输入的古文子句相对应的现代汉语子句作为基础校验单元输入解码器,并根据公式
forgetn=sigmoid(W5·[staten-1,n]+b5)
inputn=sigmoid(W6·[staten-1,n]+b6)
outputn=sigmoid(W8·[staten-1,n]+b8)
staten=outputn*tanh(Cn)
获取序列到序列模型的解码器中任一个神经元在输入第n个现代汉语词后相对应的隐藏层状态staten;staten-1为编码器中该神经元在输入第n-1个现代汉语后的隐藏层状态;sigmoid(·)为sigmoid函数;tanh(·)为双曲正切函数;forgetn、inputn、
S3-5、将序列到序列模型的解码器中每个神经元再输入第n个现代汉语词后相对应的隐藏层状态组合成向量,得到序列到序列模型的解码器中与第n个现代汉语词相对应的隐藏层状态向量stateY;
S3-6、根据公式
enM=bmm(stateY,hiddenM)
enx=bmm(stateY,hiddenx)
获取最后一个古文向量元素与第n个现代汉语词共同对应的序列到序列模型的注意力anM;exp(·)为以自然常数e为底的指数函数;enM和enx为中间参数;bmm(·)表示点乘;M为古文向量中的元素个数;hiddenx为编码器输入第m个古文向量元素后的隐藏层状态,hiddenx∈(hidden1,hidden2,...,hiddenM);
S3-7、根据公式
获取输入古文子句对应至第n个现代汉语词的编码器输出的隐藏层状态的加权平均contextn,即对应至第n个现代汉语词的上下文向量;
S3-8、根据公式
将对应至第n个现代汉语词的上下文向量和解码器的隐藏层状态进行级联并送入全连接网络Wcontext,得到级联状态
S3-9、根据公式
获取序列到序列模型对应于第n个现代汉语词的输出
S3-10、根据公式
获取序列到序列模型对应于该句现代汉语的输出
本发明的有益效果为:本发明通过引入多种词典进行分词,能够给翻译模型提供准确的人名地名以及俗语信息,改善专有名词翻译效果,且本发明可以自动进行子句对齐,能够通过注意力机制完成字、词之间的隐式对齐,并通过神经网络对待翻译的古文子句进行翻译,有效提高翻译效率和准确度。
附图说明
图1为本发明的流程示意图。
具体实施方式
下面对本发明的具体实施方式进行描述,以便于本技术领域的技术人员理解本发明,但应该清楚,本发明不限于具体实施方式的范围,对本技术领域的普通技术人员来讲,只要各种变化在所附的权利要求限定和确定的本发明的精神和范围内,这些变化是显而易见的,一切利用本发明构思的发明创造均在保护之列。
如图1所示,该基于神经网络的古文翻译方法包括以下步骤:
S1、获取古文篇章及对应的翻译数据作为初始样本,
S2、对初始样本依次进行子句对齐、数据分词和数据增广操作,得到古文翻译语料库;
S3、将古文翻译语料库作为神经机器翻译模型的数据库,对序列到序列模型进行训练,得到训练好的神经网络;
S4、将待翻译的古文作为训练好的神经网络的输入,完成对古文的翻译。
步骤S1的具体方法为:
从互联网上爬取古文篇章及对应的翻译数据,并对爬取的数据进行数据清洗,将清洗后的数据作为初始样本。
步骤S2中对初始样本进行子句对齐的方法包括以下子步骤:
S2-1-1、对初始样本中的现代汉语进行分词,并按照从左至右的顺序将古文与现代汉语进行匹配;
S2-1-2、将已经匹配的词语从原句中删除,对于没有与现代汉语相对应的古文,引进古文字典建立逆文档频率词典,并获取每个未匹配古文字符的逆文档频率分数;
S2-1-3、检索古文字典定义的每个不匹配的古文字符,并使用它与剩余的现代汉语词汇进行匹配;
S2-1-4、根据公式
获取词法匹配的匹配度L(s,t);其中t表示现代汉语子句;s表示古文子句;|s|表示古文子句的长度;
S2-1-5、建立古文子句与现代汉语子句的翻译对应模型;其中翻译对应模型的翻译对应方式包括1→0方式、0→1方式、1→1方式、1→2方式、2→1方式和2→2方式;→表示翻译对应,→的前端为古文子句对应数目,→的后端为现代汉语子句对应数目;
S2-1-6、对于每个古文子句,获取其翻译对应模型中每种翻译对应方式的概率Pr(a→b);0≤a,b≤2;
S2-1-7、获取每个古文自然段与对应的现代汉语自然段的长度比例,并获取所有长度比例的均值u和标准差σ;
S2-1-8、根据公式
获取统计信息S(s,t);其中
S2-1-9、根据公式
获取编辑距离数值E(s,t);其中EditDis(s,t)为一句古文转译为现代汉语时的操作数,操作数包括插入、删除和替换的总次数;
S2-1-10、根据公式
d(s,t)=L(s,t)+γS(s,t)+λE(s,t)
得到任一古文子句对应到每个现代汉语子句的分值D(i,j);其中D(i,j)具体为第i个古文子句对应到第j个现代汉语子句所得的分数;γ和λ均为权重参数;si为第i个古文子句;si-1为第i-1个古文子句;si-2为第i-2个古文子句;tj为第j个现代汉语子句;tj-1为第j-1个现代汉语子句;tj-2为第j-2个现代汉语子句;NULL表示句子为空,即无对应的子句。
S2-1-11、对于任一古文子句,选取其对应分值最大的现代汉语子句作为其对齐子句,完成子句对齐。
步骤S2中数据分词的具体方法为:
分别构建人名词典、地名词典和俗语词典,并根据构建的人名词典、地名词典和俗语词典对古文子句中的人名、地名和俗语进行分词。
步骤S2中数据增广的具体方法包括以下子步骤:
S2-2-1、采用word2vec构建近义词词典,对近义词词典中每一个词只选取和它相似度超过0.8的近义词,得到每一条数据由一个词以及和它最相近的两至三个词构成的清洗后近义词词典,完成近义词增广;在相似度计算的时候,计算两个词的word2vec向量的两个向量的夹角的余弦值作为相似度的值;
S2-2-2、将每条数据和其后面的数据进行拼接,直至句末标点为感叹号、问号或句号,或者拼接的子句数据达到四条,将拼接的子句作为新的子句数据,完成基于子句的增广;
S2-2-3、采用统计机器翻译模型的giza++对齐工具,得到每一句古文的所有词语和其对应现代汉语的所有词语的对位信息,并根据对位信息调整古文语序,得到古文翻译语料库。
步骤S3的具体方法包括以下子步骤:
S3-1、将古文翻译语料库中的古文子句转换为向量形式得到古文向量,并将每一个古文子句对应的古文向量作为一个训练基础单元输入序列到序列模型;
S3-2、根据公式
forgetm=sigmoid(W1·[hiddenm-1,m]+b1)
inputm=sigmoid(W2·[hiddenm-1,m]+b2)
outputm=sigmoid(W4·[hiddenm-1,m]+b4)
hiddenm=outputm*tanh(Cm)
获取序列到序列模型的编码器中任一个神经元在输入训练基础单元中第m个古文向量元素后的隐藏层状态hiddenm;其中hiddenm-1为编码器中该神经元在输入第m-1个古文向量元素后的隐藏层状态;sigmoid(·)为sigmoid函数;tanh(·)为双曲正切函数;forgetm、inputm、
S3-3、将序列到序列模型的编码器中每个神经元在输入最后一个古文向量元素后的隐藏层状态组合成向量,得到序列到序列模型的编码器与当前训练基础单元相对应的隐藏层状态向量hiddenM;
S3-4、将与编码器中输入的古文子句相对应的现代汉语子句作为基础校验单元输入解码器,并根据公式
forgetn=sigmoid(W5·[staten-1,n]+b5)
inputn=sigmoid(W6·[staten-1,n]+b6)
outputn=sigmoid(W8·[staten-1,n]+b8)
staten=outputn*tanh(Cn)
获取序列到序列模型的解码器中任一个神经元在输入第n个现代汉语词后相对应的隐藏层状态staten;staten-1为编码器中该神经元在输入第n-1个现代汉语后的隐藏层状态;sigmoid(·)为sigmoid函数;tanh(·)为双曲正切函数;forgetn、inputn、
S3-5、将序列到序列模型的解码器中每个神经元再输入第n个现代汉语词后相对应的隐藏层状态组合成向量,得到序列到序列模型的解码器中与第n个现代汉语词相对应的隐藏层状态向量stateY;
S3-6、根据公式
enM=bmm(stateY,hiddenM)
enx=bmm(stateY,hiddenx)
获取最后一个古文向量元素与第n个现代汉语词共同对应的序列到序列模型的注意力anM;exp(·)为以自然常数e为底的指数函数;enM和enx为中间参数;bmm(·)表示点乘;M为古文向量中的元素个数;hiddenx为编码器输入第m个古文向量元素后的隐藏层状态,hfddenx∈(hfdden1,hfdden2,...,hfddenM);
S3-7、根据公式
获取输入古文子句对应至第n个现代汉语词的编码器输出的隐藏层状态的加权平均contextn,即对应至第n个现代汉语词的上下文向量;
S3-8、根据公式
将对应至第n个现代汉语词的上下文向量和解码器的隐藏层状态进行级联并送入全连接网络Wcontext,得到级联状态
S3-9、根据公式
获取序列到序列模型对应于第n个现代汉语词的输出
S3-10、根据公式
获取序列到序列模型对应于该句现代汉语的输出
综上所述,本发明通过引入多种词典进行分词,能够给翻译模型提供准确的人名地名以及俗语信息,改善专有名词翻译效果,且本发明可以自动进行子句对齐,能够通过注意力机制完成字、词之间的隐式对齐,并通过神经网络对待翻译的古文子句进行翻译,有效提高翻译效率和准确度。
机译: 电子设备及基于神经网络的机械翻译方法
机译: 基于神经网络的中文 - 英语翻译方法及其相关设备
机译: 基于神经网络的翻译方法和装置