编程语言翻译模型的训练方法、装置、设备及存储介质转让专利
申请号 : CN202110021389.8
文献号 : CN112346737B
文献日 : 2021-04-13
发明人 : 刘玉 , 徐国强
申请人 : 深圳壹账通智能科技有限公司
摘要 :
权利要求 :
1.一种编程语言翻译模型的训练方法,其特征在于,所述编程语言翻译模型包括编码层和解码层,所述编码层包括第一编码层和第二编码层,所述编程语言翻译模型通过第一解答代码集和第二解答代码集训练得到,所述第一解答代码集和所述第二解答代码集一一对应,所述第一解答代码集中每个第一解答代码的编程语言为第一编程语言,所述第二解答代码集中每个第二解答代码的编程语言为第二编程语言,所述第一编程语言不同于所述第二编程语言,所述方法包括:
针对所述第一解答代码集中每个第一解答代码,将所述第一解答代码输入所述第一编码层,以通过所述第一编码层对所述第一解答代码中的每个单词进行编码,得到所述第一解答代码中每个单词对应的第一特征向量;
针对所述第二解答代码集中每个第二解答代码,将所述第二解答代码输入所述第二编码层,以通过所述第二编码层对所述第二解答代码中的每个单词进行编码,得到所述第二解答代码中每个单词对应的第二特征向量;
将所述第一解答代码中每个单词对应的第一特征向量和所述第二解答代码中对应单词的第二特征向量输入所述解码层,以预测所述第一解答代码对应的代码翻译结果;
根据所述第一解答代码对应的代码翻译结果,调整所述编程语言翻译模型的模型参数,以对所述编程语言翻译模型进行训练;
在针对所述第一解答代码集中每个第一解答代码,将所述第一解答代码输入所述第一编码层,以通过所述第一编码层对所述第一解答代码中的每个单词进行编码,得到所述第一解答代码中每个单词对应的第一特征向量之前,所述方法还包括:通过网络爬虫从互联网中获取N个编程题中每个编程题对应的M个解答代码以及M个标签,所述N和所述M均为大于0的整数,所述M个解答代码和所述M个标签一一对应,所述M个标签中的每个标签用于指示所述M个解答代码中每个解答代码所采用的编程语言;
根据所述N个编程题中每个编程题对应的所述M个标签,从所述N个编程题中每个编程题对应的所述M个解答代码中,确定编程语言为所述第一编程语言的第一解答代码集和编程语言为所述第二编程语言的第二解答代码集。
2.根据权利要求1所述的方法,其特征在于,所述N个编程题中的一个编程题为第一编程题,所述根据所述N个编程题中每个编程题对应的所述M个标签,从所述N个编程题中每个编程题对应的所述M个解答代码中,确定编程语言为所述第一编程语言的第一解答代码集和编程语言为所述第二编程语言的第二解答代码集,包括:根据所述第一编程题对应的M个标签,从所述第一编程题对应的所述M个解答代码中,选择第三解答代码,所述第三解答代码为所述第一解答代码集中任意一个代码;
根据所述第一编程题对应的M‑1个标签,从所述第一编程题对应的M‑1个解答代码中,选择第四解答代码,所述第一编程题对应的M‑1个标签为所述第一编程题对应的所述M个标签中除所述第三解答代码对应的标签之外的其他标签,所述第一编程题对应的所述M‑1个解答代码为所述第一编程题对应的所述M个解答代码中除所述第三解答代码之外的其他解答代码,所述第四解答代码为所述第二解答代码集中与所述第三解答代码对应的解答代码。
3.根据权利要求1所述的方法,其特征在于,所述第一解答代码包括K个单词,所述K为大于0的整数,所述将所述第一解答代码中每个单词对应的第一特征向量和所述第二解答代码中对应单词的第二特征向量输入所述解码层,以预测所述第一解答代码对应的代码翻译结果,包括:
S1:设置i的初始值为1;
S2:若所述i小于或等于所述K,则执行步骤S3;若所述i大于所述K,则执行步骤S6;
S3:将所述第一解答代码中第i个单词对应的第一特征向量和所述第二解答代码中对应单词的第二特征向量输入所述解码层中,以预测所述第i个单词对应的代码翻译结果,其中,所述解码层包括第一隐向量和第二隐向量,所述第一隐向量是根据所述第一解答代码中所有单词的上下文信息确定的,所述第二隐向量是根据所述第二解答代码中所有单词的上下文信息确定的;
S4:将所述第i个单词对应的代码翻译结果保存在代码翻译结果库中;
S5:令i=i+1,返回执行步骤S2;
S6:从所述代码翻译结果库中,获取所述第一解答代码中每个单词对应的代码翻译结果,将所述第一解答代码中每个单词对应的代码翻译结果进行映射,以得到所述第一解答代码对应的代码翻译结果;
S7:结束预测所述第一解答代码对应的代码翻译结果。
4.根据权利要求3所述的方法,其特征在于,所述编程语言翻译模型还包括注意力层,所述方法还包括:
将所述第一解答代码中每个单词对应的第一特征向量和所述第一隐向量输入所述注意力层,以通过所述注意力层确定所述第一解答代码中每个单词对应的第一特征向量和所述第一隐向量之间的相似度;
根据所述第一解答代码中每个单词对应的第一特征向量和所述第一隐向量之间的相似度从高到低的顺序,对所述K个单词进行排序,得到排序后的所述K个单词。
5.根据权利要求4所述的方法,其特征在于,所述将所述第一解答代码中第i个单词对应的第一特征向量和所述第二解答代码中对应单词的第二特征向量输入所述解码层中,以预测所述第一解答代码中第i个单词对应的代码翻译结果,包括:将所述排序后的所述K个单词中第i个单词对应的第一特征向量和所述第二解答代码中对应单词的第二特征向量输入所述解码层中,以预测所述第i个单词对应的代码翻译结果。
6.根据权利要求1‑5任意一项所述的方法,其特征在于,所述根据所述第一解答代码对应的代码翻译结果,调整所述编程语言翻译模型的模型参数,以对所述编程语言翻译模型进行训练,包括:
根据预设损失函数、所述第一解答代码中每个单词对应的代码翻译结果以及所述第二解答代码中对应单词,确定所述第一解答代码中每个单词对应的损失值;
根据所述第一解答代码中每个单词对应的损失值的平均值,调整所述编程语言翻译模型的模型参数,以对所述编程语言翻译模型进行训练。
7.一种编程语言翻译模型的训练装置,其特征在于,所述编程语言翻译模型包括编码层和解码层,所述编码层包括第一编码层和第二编码层,所述编程语言翻译模型通过第一解答代码集和第二解答代码集训练得到,所述第一解答代码集和所述第二解答代码集一一对应,所述第一解答代码集中每个第一解答代码的编程语言为第一编程语言,所述第二解答代码集中每个第二解答代码的编程语言为第二编程语言,所述第一编程语言不同于所述第二编程语言,所述训练装置包括第一输入模块,第二输入模块、第三输入模块和处理模块,
所述第一输入模块,用于针对所述第一解答代码集中每个第一解答代码,将所述第一解答代码输入所述第一编码层,以通过所述第一编码层对所述第一解答代码中的每个单词进行编码,得到所述第一解答代码中每个单词对应的第一特征向量;
所述第二输入模块,用于针对所述第二解答代码集中每个第二解答代码,将所述第二解答代码输入所述第二编码层,以通过所述第二编码层对所述第二解答代码中的每个单词进行编码,得到所述第二解答代码中每个单词对应的第二特征向量;
所述第三输入模块,用于将所述第一解答代码中每个单词对应的第一特征向量和所述第二解答代码中对应单词的第二特征向量输入所述解码层,以预测所述第一解答代码对应的代码翻译结果;
所述处理模块,用于根据所述第一解答代码对应的代码翻译结果,调整所述编程语言翻译模型的模型参数,以对所述编程语言翻译模型进行训练;
在针对所述第一解答代码集中每个第一解答代码,将所述第一解答代码输入所述第一编码层,以通过所述第一编码层对所述第一解答代码中的每个单词进行编码,得到所述第一解答代码中每个单词对应的第一特征向量之前,所述训练装置还包括获取模块和确定模块,
所述获取模块,用于通过网络爬虫从互联网中获取N个编程题中每个编程题对应的M个解答代码以及M个标签,所述N和所述M均为大于0的整数,所述M个解答代码和所述M个标签一一对应,所述M个标签中的每个标签用于指示所述M个解答代码中每个解答代码所采用的编程语言;
所述确定模块,用于根据所述N个编程题中每个编程题对应的所述M个标签,从所述N个编程题中每个编程题对应的所述M个解答代码中,确定编程语言为所述第一编程语言的第一解答代码集和编程语言为所述第二编程语言的第二解答代码集。
8.一种电子设备,其特征在于,包括处理器、存储器、通信接口以及一个或多个程序,其中,所述一个或多个程序被存储在所述存储器中,并且被生成由所述处理器执行,以执行权利要求1‑6任一项方法中的步骤的指令。
9.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质用于存储计算机程序,所述存储计算机程序被处理器执行,以实现权利要求1‑6任一项所述的方法。
说明书 :
编程语言翻译模型的训练方法、装置、设备及存储介质
技术领域
背景技术
运用方式也十分灵活。因此,亟需一种可以将一种编程语言翻译为另一种编程语言的技术
手段。
言编写的代码,那么就需要人工构建C语言以及Python语言涉及到的各种规则。这种模型的
构建效率低,不适用于未来更多应用场景。
发明内容
型通过第一解答代码集和第二解答代码集训练得到,所述第一解答代码集和所述第二解答
代码集一一对应,所述第一解答代码集中每个第一解答代码的编程语言为第一编程语言,
所述第二解答代码集中每个第二解答代码的编程语言为第二编程语言,所述第一编程语言
不同于所述第二编程语言,所述方法包括:
第一解答代码中每个单词对应的第一特征向量;
第二解答代码中每个单词对应的第二特征向量;
型通过第一解答代码集和第二解答代码集训练得到,所述第一解答代码集和所述第二解答
代码集一一对应,所述第一解答代码集中每个第一解答代码的编程语言为第一编程语言,
所述第二解答代码集中每个第二解答代码的编程语言为第二编程语言,所述第一编程语言
不同于所述第二编程语言,所述训练装置包括第一输入模块,第二输入模块、第三输入模块
和处理模块,
单词进行编码,得到所述第一解答代码中每个单词对应的第一特征向量;
单词进行编码,得到所述第二解答代码中每个单词对应的第二特征向量;
对应的代码翻译结果;
行,以执行一种编程语言翻译模型的训练方法任一项方法中的步骤的指令。
的训练方法任一项所述的方法。
而避免了现有方案中需要人工构建规则导致的模型构建效率低的问题。同时,通过采用两
个编码层同时对不同的代码集进行处理,提高了编码效率,进而也提高了模型构建效率。
附图说明
申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以
根据这些附图获得其他的附图。
具体实施方式
本申请中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他
实施例,都属于本申请保护的范围。
于覆盖不排他的包含。例如包含了一系列步骤或单元的过程、方法、系统、产品或设备没有
限定于已列出的步骤或单元,而是可选地还包括没有列出的步骤或单元,或可选地还包括
对于这些过程、方法、产品或设备固有的其它步骤或单元。
计算设备或连接到无线调制解调器的其他处理设备,以及各种形式的用户设备(User
Equipment,UE),移动台(Mobile Station,MS),终端设备(terminal device)等,在此不做
限制。
1101和第二编码层1102。其中,第一编码层1101和第二编码层1102可以为TransCoder模型
的编码层。解码层120可以为TransCoder模型的解码层。
码层,所述编程语言翻译模型通过第一解答代码集和第二解答代码集训练得到,所述第一
解答代码集和所述第二解答代码集一一对应,所述第一解答代码集中每个第一解答代码的
编程语言为第一编程语言,所述第二解答代码集中每个第二解答代码的编程语言为第二编
程语言,所述第一编程语言不同于所述第二编程语言。
若第一编程语言为C语言,第二编程语言为PHP语言;若第一编程语言为Python语言,第二编
程语言为Java语言。
所述第一解答代码中每个单词对应的第一特征向量。
的所述第一解答代码;将所述新的所述第一解答代码输入所述第一编码层,以通过所述第
一编码层对所述新的所述第一解答代码中的每个单词进行编码,得到所述新的所述第一解
答代码中每个单词对应的第一特征向量。
所述第二解答代码中每个单词对应的第二特征向量。
所述第二解答代码输入所述第二编码层,以通过所述第二编码层对所述新的所述第二解答
代码中的每个单词进行编码,得到所述新的所述第二解答代码中每个单词对应的第二特征
向量。
代码插入开始符号[CLS]和结束符号[SEP]时,第二解答代码集中对应第二解答代码只需要
插入开始符号[CLS],而无需插入结束符号[SEP]。
果。
测所述第一解答代码对应的代码翻译结果。
而避免了现有方案中需要人工构建规则导致的模型构建效率低的问题。同时,通过采用两
个编码层同时对不同的代码集进行处理,提高了编码效率,进而也提高了模型构建效率。
编码层,所述编程语言翻译模型通过第一解答代码集和第二解答代码集训练得到,所述第
一解答代码集和所述第二解答代码集一一对应,所述第一解答代码集中每个第一解答代码
的编程语言为第一编程语言,所述第二解答代码集中每个第二解答代码的编程语言为第二
编程语言,所述第一编程语言不同于所述第二编程语言。
若第一编程语言为C语言,第二编程语言为PHP语言;若第一编程语言为Python语言,第二编
程语言为Java语言。
所述M个标签中的每个标签用于指示所述M个解答代码中每个解答代码所采用的编程语言。
网络爬虫(Deep Web Crawler)等,在此不做限制。
标签2用于指示第二编程题对应的解答代码2所采用的编程语言为第二编程语言;标签3用
于指示第二编程题对应的解答代码3所采用的编程语言为不同于第一编程语言和第二编程
语言的编程语言。那么,可以根据第二编程题对应的3个标签,确定编程语言为第一编程语
言的解答代码1和编程语言为第二编程语言的解答代码2。
代码,第二标签用于指示所述M个解答代码中编程语言为第二编程语言的解答代码。若第一
标签为“0”比特,第二标签可以为“1”比特;或,若第一标签为“1”比特,第二标签可以为“0”
比特。
码集和编程语言为所述第二编程语言的第二解答代码集。
写的解答代码,在此不做限制。
答代码,所述第三解答代码为所述第一解答代码集中任意一个代码;根据所述第一编程题
对应的M‑1个标签,从所述第一编程题对应的M‑1个解答代码中,选择第四解答代码,所述第
一编程题对应的M‑1个标签为所述第一编程题对应的所述M个标签中除所述第三解答代码
对应的标签之外的其他标签,所述第一编程题对应的所述M‑1个解答代码为所述第一编程
题对应的所述M个解答代码中除所述第三解答代码之外的其他解答代码,所述第四解答代
码为所述第二解答代码集中与所述第三解答代码对应的解答代码。
代码进行编码,并将编码后的特征向量输入解码层,以实现对编程语言翻译模型的训练,从
而避免了现有方案中需要人工构建规则导致的模型构建效率低的问题。同时,通过采用两
个编码层同时对不同的代码集进行处理,提高了编码效率,进而也提高了模型构建效率。
量输入所述解码层,以预测所述第一解答代码对应的代码翻译结果,包括:
果,其中,所述解码层包括第一隐向量和第二隐向量,所述第一隐向量是根据所述第一解答
代码中所有单词的上下文信息确定的,所述第二隐向量是根据所述第二解答代码中所有单
词的上下文信息确定的;
解答代码对应的代码翻译结果;
平台、平台产品服务层以及应用服务层等。
为一个节点,每个节点都允许获得一份完整的数据库拷贝。节点基于一套共识机制,通过竞
争计算共同维护整个区块链。任一节点失效,其余节点仍能正常工作。其中,去中心化与去
信任意为区块链由众多节点共同组成一个端到端的网络,不存在中心化的设备和管理机
构。节点之间数据交换通过数字签名技术进行验证,无需互相信任,只要按照系统既定的规
则进行,节点之间不能也无法欺骗其他节点。其中,透明与双方匿名意为区块链的运行规则
是公开的,所有的数据信息也是公开的,因此每一笔交易都对所有节点可见。由于节点与节
点之间是去信任的,因此节点之间无需公开身份,每个参与的节点都是匿名的。其中,不可
篡改和可追溯意为每个甚至多个节点对数据库的修改无法影响其他节点的数据库,除非能
控制整个网络中超过51%的节点同时修改,这是几乎不可能发生的。区块链中的,每一笔交
易都通过密码学方法与相邻两个区块串联,因此可以追溯到任何一笔交易记录。
脚本代码组成的智能合约来编程和操作数据的一种全新的分布式基础架构与计算方式。因
此,区块链技术不可篡改的特性从根本上改变了中心化的信用创建方式,有效提高了数据
的不可更改性以及安全性。其中,由于智能合约使得所有的条款编写为程序,这些条款可在
区块链上自动执行,保证了当存在触发智能合约的条件时,区块链能强制根据智能合约中
的内容执行,且不受任何外力阻挡,从而保证了合约的有效性和执行力,不仅能够大大降低
成本,也能提高效率。区块链上的各个节点都有相同的账本,能够确保账本记录过程是公开
透明的。区块链技术可以实现了一种点对点的、公开透明的直接交互,使得高效率、大规模、
无中心化代理的信息交互方式成为了现实。
4所示,先将[s1]对应的第一特征向量和第二解答代码中对应单词的第二特征向量输入该
解码层,以预测[s1]对应的代码翻译结果;然后再将[s2]对应的第一特征向量和第二解答代
码中对应单词的第二特征向量输入该解码层,以预测[s2]对应的代码翻译结果;最后将[s3]
对应的第一特征向量和第二解答代码中对应单词的第二特征向量输入该解码层,以预测
[s3]对应的代码翻译结果。
的解答代码同时输入解码层,进而使得训练后的编程语言翻译模型能够更好的进行编程语
言的翻译,提高了代码翻译的精准性,也提高了训练后的编程语言翻译模型的泛化能力。
和所述第一隐向量之间的相似度;
的第一特征向量和所述第一隐向量之间的相似度。可以理解的,针对第一解答代码集中每
个第一解答代码,其开始符号和结束符号分别对应的第一特征向量和所述第一隐向量之间
的相似度均相同。
量之间的相似度。可以理解的,针对第二解答代码集中每个第二解答代码,其开始符号对应
的第二特征向量和所述第二隐向量之间的相似度均相同。
序。
个单词对应的代码翻译结果,包括:
译结果。
输入模块502、第三输入模块503和处理模块504。
所述第一解答代码集和所述第二解答代码集一一对应,所述第一解答代码集中每个第一解
答代码的编程语言为第一编程语言,所述第二解答代码集中每个第二解答代码的编程语言
为第二编程语言,所述第一编程语言不同于所述第二编程语言。
码中的每个单词进行编码,得到所述第一解答代码中每个单词对应的第一特征向量;
个单词进行编码,得到所述第二解答代码中每个单词对应的第二特征向量;
代码对应的代码翻译结果;
而避免了现有方案中需要人工构建规则导致的模型构建效率低的问题。同时,通过采用两
个编码层同时对不同的代码集进行处理,提高了编码效率,进而也提高了模型构建效率。
码,得到所述第一解答代码中每个单词对应的第一特征向量之前,所述训练装置还包括获
取模块505和确定模块506,所述获取模块505,用于通过网络爬虫从互联网中获取N个编程
题中每个编程题对应的M个解答代码以及M个标签,所述N和所述M均为大于0的整数,所述M
个解答代码和所述M个标签一一对应,所述M个标签中的每个标签用于指示所述M个解答代
码中每个解答代码所采用的编程语言;所述确定模块506,用于根据所述N个编程题中每个
编程题对应的所述M个标签,从所述N个编程题中每个编程题对应的所述M个解答代码中,确
定编程语言为所述第一编程语言的第一解答代码集和编程语言为所述第二编程语言的第
二解答代码集。
码中,确定编程语言为所述第一编程语言的第一解答代码集和编程语言为所述第二编程语
言的第二解答代码集方面,所述确定模块506,具体用于根据所述第一编程题对应的M个标
签,从所述第一编程题对应的所述M个解答代码中,选择第三解答代码,所述第三解答代码
为所述第一解答代码集中任意一个代码;根据所述第一编程题对应的M‑1个标签,从所述第
一编程题对应的M‑1个解答代码中,选择第四解答代码,所述第一编程题对应的M‑1个标签
为所述第一编程题对应的所述M个标签中除所述第三解答代码对应的标签之外的其他标
签,所述第一编程题对应的所述M‑1个解答代码为所述第一编程题对应的所述M个解答代码
中除所述第三解答代码之外的其他解答代码,所述第四解答代码为所述第二解答代码集中
与所述第三解答代码对应的解答代码。
量输入所述解码层,以预测所述第一解答代码对应的代码翻译结果方面,所述第三输入模
块503,具体用于S1:设置i的初始值为1;S2:若所述i小于或等于所述K,则执行步骤S3;若所
述i大于所述K,则执行步骤S6;S3:将所述第一解答代码中第i个单词对应的第一特征向量
和所述第二解答代码中对应单词的第二特征向量输入所述解码层中,以预测所述第i个单
词对应的代码翻译结果,其中,所述解码层包括第一隐向量和第二隐向量,所述第一隐向量
是根据所述第一解答代码中所有单词的上下文信息确定的,所述第二隐向量是根据所述第
二解答代码中所有单词的上下文信息确定的;S4:将所述第i个单词对应的代码翻译结果保
存在代码翻译结果库中;S5:令i=i+1,返回执行步骤S2;S6:从所述代码翻译结果库中,获取
所述第一解答代码中每个单词对应的代码翻译结果,将所述第一解答代码中每个单词对应
的代码翻译结果进行映射,以得到所述第一解答代码对应的代码翻译结果;S7:结束预测所
述第一解答代码对应的代码翻译结果。
的解答代码同时输入解码层,进而使得训练后的编程语言翻译模型能够更好的进行编程语
言的翻译,提高了代码翻译的精准性,也提高了训练后的编程语言翻译模型的泛化能力。
通过所述注意力层确定所述第一解答代码中每个单词对应的第一特征向量和所述第一隐
向量之间的相似度;根据所述第一解答代码中每个单词对应的第一特征向量和所述第一隐
向量之间的相似度从高到低的顺序,对所述K个单词进行排序,得到排序后的所述K个单词。
序,从而在利用解码层进行预测时避免语序颠倒的问题。
个单词对应的代码翻译结果方面,所述第三输入模块503,具体用于将所述排序后的所述K
个单词中第i个单词对应的第一特征向量和所述第二解答代码中对应单词的第二特征向量
输入所述解码层中,以预测所述第i个单词对应的代码翻译结果。
于根据预设损失函数、所述第一解答代码中每个单词对应的代码翻译结果以及所述第二解
答代码中对应单词,确定所述第一解答代码中每个单词对应的损失值;根据所述第一解答
代码中每个单词对应的损失值的平均值,调整所述编程语言翻译模型的模型参数,以对所
述编程语言翻译模型进行训练。
行,以执行包括任一项编程语言翻译模型的训练方法中的步骤的指令。其中,如图6所示,本
申请的实施例涉及的硬件运行环境的电子设备可以包括:
通信模块用于实现存储器602内部各组件之间的通信,以及与电子设备内部其他硬件和软
件之间通信。
所述第一解答代码集和所述第二解答代码集一一对应,所述第一解答代码集中每个第一解
答代码的编程语言为第一编程语言,所述第二解答代码集中每个第二解答代码的编程语言
为第二编程语言,所述第一编程语言不同于所述第二编程语言,在图6所示的电子设备中,
处理器601用于执行存储器602中一个或多个程序,实现以下步骤:
第一解答代码中每个单词对应的第一特征向量;
第二解答代码中每个单词对应的第二特征向量;
一解答代码集和第二解答代码集训练得到,所述第一解答代码集和所述第二解答代码集一
一对应,所述第一解答代码集中每个第一解答代码的编程语言为第一编程语言,所述第二
解答代码集中每个第二解答代码的编程语言为第二编程语言,所述第一编程语言不同于所
述第二编程语言,所述计算机可读存储介质用于存储计算机程序,所述存储计算机程序被
所述处理器执行,以实现以下步骤:
第一解答代码中每个单词对应的第一特征向量;
第二解答代码中每个单词对应的第二特征向量;
为依据本申请,某些步骤可以采用其他顺序或者同时进行。其次,本领域技术人员也应所述
知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作和模块并不一定是本申
请所必须的。
述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些
修改或者替换,并不使相应技术方案的本质脱离本申请各实施例技术方案的范围。