一种基于bart模型的正则表达式描述生成方法

文档序号:115962 发布日期:2021-10-19 浏览:20次 >En<

阅读说明:本技术 一种基于bart模型的正则表达式描述生成方法 (Regular expression description generation method based on BART model ) 是由 于池 陈翔 杨光 刘珂 于 2021-04-21 设计创作,主要内容包括:本发明提供了一种基于BART模型的正则表达式描述生成方法,包括以下步骤:(1)搜集高质量的正则表达式,对正则表达式人工标注对应的自然语言描述,针对数据进行预处理;(2)将分词输入嵌入层生成最终的特征向量X;(3)改进BART模型。本发明的有益效果为:该方法对输入的正则表达式生成高质量的自然语言描述,从而帮助计算机科学初学者以及开发人员更加快速的理解正则表达式。(The invention provides a regular expression description generation method based on a BART model, which comprises the following steps: (1) collecting a high-quality regular expression, manually marking a corresponding natural language description on the regular expression, and preprocessing data; (2) inputting the participles into an embedding layer to generate a final feature vector X; (3) the BART model was improved. The invention has the beneficial effects that: the method generates high-quality natural language description for the input regular expression, thereby helping computer science beginners and developers to understand the regular expression more quickly.)

一种基于BART模型的正则表达式描述生成方法

技术领域

本发明涉及计算机应用技术领域,尤其涉及一种基于BART模型的正则表达式描述生成方法。

背景技术

在计算机科学领域中,正则表达式是非常重要的概念,通常被用来检索、替换那些符合某个模式(规则)的文本。正则表达式可以描述某些匹配的规则,然后用于确定字符串格式或提取字符串内容。可以用于各种操作系统(如Windows、Linux、Macintosh),并且几乎所有的编程语言(如Python、C语言、Java、PHP)都支持它。正则表达式在不同的场景中被广泛使用(如软件开发、软件维护和软件测试),但对于不熟悉正则表达式语法的学生或开发人员来说,理解这些正则表达式的语义时有挑战性的。尤其是对于一些计算机初学者,正则表达式的语义是比较难理解的。如有一种方法可以快速将输入的正则表达式翻译成自然语言文本描述是解决问题的有效途径。

现阶段,极少有工作解决此类问题,已有的相关方法将输入的自然语言描述翻译成对应的正则表达式,而将正则表达式翻译成自然语言描述仍是难题,因此如何解决上述问题为本发明面临的课题。

发明内容

本发明的目的在于提供一种基于BART模型的正则表达式描述生成方法,该方法可以将开发人员输入的正则表达式翻译成易懂的自然语言描述。

本发明的思想为:本发明提出基于深度学习的正则表达式自然语言描述生成方法,将正则表达式作为文本输入,借助改进后的BART模型来构建机器翻译模型,本发明提出的方法翻译的文本描述质量要比使用其余深度学习模型(例如Transformer,Bert)的方法好。

本发明是通过如下措施实现的:一种基于BART模型的正则表达式描述生成方法,其中,包括以下步骤:

(1)搜集高质量的正则表达式,并对搜集到的正则表达式进行人工标注得到其对应的自然语言描述,生成最终的数据集D,设定数据集D的格式为<正则表达式,自然语言描述>,数据集D中包括10000对高质量的正则表达式和相应的自然语言描述。

(2)使用字节级的BBPE分词(Byte-Level BPE)对正则表达式当成文本进行分词,使用字节级BBPE对正则表达式进行分词可以有效解决OOV(out-of-vocabulary),且由于正则表达式中含有大量特殊字符,使用字节级BBPE分词可以较好的解决分词问题,从而使得BART模型可以分词更好的学习分词的语义;

(3)将分词输入BART模型的嵌入层将分词转换成特征向量,具体包括如下步骤;

(3-1)模型通过词嵌入来生成原始特征向量Word Embedding;

(3-2)通过位置编码学习分词在句子中的位置关系,生成位置向量PositionEmbedding;

(3-3)通过语义编码学习相邻两个句子之间的语义关系向量Segment Embedding,最后将上述三个向量相加生成最终的特征向量X,即X=Position Embedding+SegmentEmbedding+Word Embedding;

(4)对BART模型进行改进,得到具体的正则表达式描述生成模型,具体包括如下改进步骤:

(4-1)本发明使用Norm-Attention机制代替了原始BART模型中的Self-Attention机制,这种注意力机制可以使得softmax函数在不牺牲表达式的情况下不容易发生任意饱和,从而在资源较少的情况下仍能保证BART模型生成自然语言描述的质量;

(4-2)在softmax函数之后的生成部分我们增加了Beam Search束搜索算法,使用Beam Search束搜索算法可以改善生成的自然语言描述质量低下的问题;

(5)按照8:1:1的比例将数据集划分成训练集,验证集和测试集,使用划分的训练集对构建的基于改进BART模型进行训练,得到正则表达式描述生成模型:

所述正则表达式描述生成模型的参数设置如下:

所述正则表达式描述生成模型的dropout设置为0.1;

所述正则表达式描述生成模型的激活函数设置为gelu;

所述正则表达式描述生成模型的attention-heads设置为16;

所述正则表达式描述生成模型的词嵌入维度设置为1024;

所述正则表达式描述生成模型的隐藏层层数设置为12;

所述正则表达式描述生成模型的vocab_size设置为50265;

所述正则表达式描述生成模型的编码器-解码器层数设置为12。

与现有技术相比,本发明的有益效果为:本发明提出的一种基于BART模型的正则表达式描述生成方法通过改进BART模型来构建正则表达式描述生成模型,使用新提出的Norm-Attention机制代替原BART模型中的Self-Attention机制,并且增加了BeamSearch束搜索算法来改善了翻译的自然语言描述质量低下的问题。因此本发明的方法在性能上是可观的,翻译生成的自然语言描述经过各项指标衡量证明可以高质量的解释正则表达式含义,从而帮助计算机理论初学者更好的学习正则表达式。

附图说明

附图用来提供对本发明的进一步理解,并且构成说明书的一部分,与本发明的实施例一起用于解释本发明,并不构成对本发明的限制。

图1为本发明提供的一种基于BART模型的正则表达式描述生成方法的系统框架图。

图2为本发明提供的方法中的嵌入层的流程图。

图3为本发明提供的方法的编码器的结构图。

图4为本发明使用的Norm-Attention机制的结构图。

具体实施方式

为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。当然,此处所描述的具体实施例仅用以解释本发明,并不用于限定本发明。

实施例1

参照图1所示的一种基于BART模型的正则表达式描述生成方法,具体包括以下内容:

(1)搜集高质量的正则表达式并通过人工标注的方式对其添加对应的自然语言描述,该数据集中包括10000对正则表达式和相应的自然语言描述,表1显示了数据集中正则表达式的长度统计信息,表2显示了数据集中正则表达式对应的自然语言描述长度的统计信息。

表1

表2

(2)使用字节级的BBPE(Byte-Level BPE)算法对正则表达式进行分词,原正则表达式为“(([0-9])+).*(dog).*”,分词后的结果为“((”“[”“0”“.”“9”“])”“*”“).”“(”“dog”“).”“*”,使用字节级BBPE算法可以有效解决OOV问题且分词效果好;

(3)如图2所示,经过嵌入层将输入的分词转换成对应的特征向量X,特征向量的公式如下:

特征向量X=Position Embedding+Segment Embedding+Word Embedding;

(4)将数据集按照8:1:1的比例将数据集划分成训练集、验证集和测试集,在这里训练集用于训练和微调模型,验证集用于执行模型优化,测试集用于评估所构建的模型的性能。

(5)对BART模型进行改进,使用Norm-Attention替代编码器和解码器中原来的Self-Attention,编码器的结构如图3所示;在softmax函数之后的生成部分我们增加了Beam Search束搜索算法,Beam Search束搜索算法搜索一次可以考虑多个结果,因此可以得到比其他搜索算法更好的输出结果;

(6)基于上述构建的数据集,对构建的基于改进BART模型进行训练,得到正则表达式描述生成模型:

所述正则表达式描述生成模型的参数设置如下:

所述正则表达式描述生成模型的dropout设置为0.1;

所述正则表达式描述生成模型的激活函数设置为gelu;

所述正则表达式描述生成模型的attention-heads设置为16;

所述正则表达式描述生成模型的词嵌入维度设置为1024;

所述正则表达式描述生成模型的隐藏层层数设置为12;

所述正则表达式描述生成模型的vocab_size设置为50265;

(7)将步骤(4)中训练生成的特征向量X输入进步骤(6)的正则表达式描述生成模型中,对正则表达式进行自然语言描述生成,使用BLEU,METEOR,ROUGE-L,CIDEr四种指标对翻译的结果进行衡量:

表3基于四种指标的实验结果

经实验表明,本发明所提出的基于BART模型的正则表达式描述生成方法和其余使用Transformer、Bert模型构建的自然语言描述生成模型相比,在各项指标上均为最佳。

以上所述仅为本发明的较佳实施例,并不用以限制本发明,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

9页详细技术资料下载
上一篇:一种医用注射器针头装配设备
下一篇:一种基于大数据共享的英语翻译装置

网友询问留言

已有0条留言

还没有人留言评论。精彩留言会获得点赞!

精彩留言,会给你点赞!