CN110516244B - 一种基于bert的句子自动填充方法 - Google Patents
一种基于bert的句子自动填充方法 Download PDFInfo
- Publication number
- CN110516244B CN110516244B CN201910792474.7A CN201910792474A CN110516244B CN 110516244 B CN110516244 B CN 110516244B CN 201910792474 A CN201910792474 A CN 201910792474A CN 110516244 B CN110516244 B CN 110516244B
- Authority
- CN
- China
- Prior art keywords
- sentence
- word
- bert
- network
- sentences
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/04—Architecture, e.g. interconnection topology
- G06N3/044—Recurrent networks, e.g. Hopfield networks
Abstract
本发明公开了一种基于BERT的句子自动填充方法,获取用于生成训练数据的完整原始句子,使用分词工具和句法分析树对句子分别进行二阶处理;结合先验,对处理后的句子中的词语进行判断,将不符合先验的词语替换为占位符,由此得到筛选后的关键词组;将筛选后的词组和原始句子组合构造出训练数据;使用预训练好的BERT作为编码器,使用Transformer作为解码器构建出主网络,使用训练数据训练该网络;利用已训练好的主网络对新的关键词组进行测试,得到最终根据关键词组进行填充的句子即为最终结果。本发明具有很好的根据关键词组填充句子的能力,并且具有填充后的句子语义通顺的优点,可以应用于各种类型的根据关键词进行句子补充的问题。
Description
技术领域
本发明属于自然语言处理技术领域,具体涉及一种基于BERT的句子自动填充方法。
背景技术
句子填充处理属于自然语言处理中的文本生成方向,而文本生成是自然语言处理(NLP)中一个重要的研究领域,具有广阔的应用前景。国内外已经有诸如AutomatedInsights、Narrative Science以及“小南”机器人和“小明”机器人等文本生成系统投入使用。这些系统根据格式化数据或自然语言文本生成新闻、财报或者其他解释性文本。例如,Automated Insights的WordSmith技术已经被美联社等机构使用,帮助美联社报道大学橄榄球赛事、公司财报等新闻。这使得美联社不仅新闻更新速度更快,而且在人力资源不变的情况下扩大了其在公司财报方面报道的覆盖面。同时文本生成技术又需要对文本有较好的理解,因此该方向比自然语言处理中的另一大方向自然语言理解要更加困难。
近年来,随着深度学习取得了突破式的发展,作为深度学习最先取得应用的研究领域,图像处理和NLP领域也得到了爆发式的研究进展。2006年开始,有人利用深层神经网络在大规模无标注语料上无监督的为每个词学到了一个分布式表示,形式上把每个单词表示成一个固定维数的向量,当作词的底层特征。在此特征基础上,完成了词性标注、命名实体识别和语义角色标注等多个任务,后来有人利用递归神经网络完成了句法分析、情感分析和句子表示等多个任务,这也为语言表示提供了新的思路。在过去的几年中,深度学习架构和算法在NLP中的应用起初并不那么令人印象深刻,但现在已经证明可以做出重大贡献,为一些常见的NLP任务提供最先进的结果。在NLP中,语言模型是可以估计一组语言单元(通常是单词序列)的概率分布的模型。这些是有趣的模型,因为它们可以以很低的成本构建,并且显著改进了几个NLP任务,例如机器翻译,语音识别和解析。
之前,最著名的方法是马尔可夫模型和n-gram模型。随着深度学习的出现,出现了一些基于长短期记忆网络(LSTM)的更强大的模型。虽然高效,但现有模型通常是单向的,这意味着只有单词的左(或右)的有序序列才会被考虑。
发明内容
本发明所要解决的技术问题在于针对上述现有技术中的不足,提供一种基于BERT的句子自动填充方法,利用预训练的BERT强大的语言表征能力来提升句子填充质量,以提高根据关键词对句子进行填充的质量。
本发明采用以下技术方案:
一种基于BERT的句子自动填充方法,包括以下步骤:
S1、获取用于生成训练数据的完整原始句子S,使用分词工具Cs对句子进行一阶处理,得到一阶处理后的句子Sc;再使用句法分析树Ts对Sc进行二阶处理,得到二阶处理后的句子Sct;
S2、结合先验M对句子Sct中每个分好的词语进行判断,保留符合M的词语,并将不符合M的词语统一使用占位符替换,得到替换后的句子Sr;
S3、将Sr作为训练样本,将原始句子S作为训练标签,共同组成训练数据;
S4、使用预训练的BERT作为编码器E,并使用Transformer作为解码器D,共同构建网络NED,使用训练数据Sr和对应标签S来训练网络NED;
S5、将关键词和占位符组成的句子Stest作为测试样本输入步骤S4训练好的网络NED,得到根据关键词补充出的完整句子Sfill。
具体的,步骤S1中,使用分词工具Cs对句子进行一阶处理,得到一阶处理后的句子Sc的步骤如下:
S101、下载安装jieba分词库作为Cs;
S102、调用Cs中的分词函数postcut对S进行处理,得到分词并带有词性标注句子作为一阶处理后的句子,即为Sc=postcut(S)。
具体的,步骤S1中,用句法分析树Ts对Sc进行二阶处理,得到二阶处理后的句子Sct的步骤如下:
S103、下载安装HIT LTP句法分析库作为Ts;
S104、调用Ts中的parser函数对Sc进行处理,得到对Sc句法结构标注的结果作为二阶处理后的句子,即为Sct=parser(Sc)。
具体的,完整原始句子S的batch为16。
具体的,步骤S4具体为:
S401、根据数据的特点定义句法结构先验集合Mparse,Mparse=[主谓关系,动宾关系,并列关系,介宾关系];
S402、根据数据的特点定义词性先验集合Mword,Mword=[名词,动名词,动词,数词];
S403、根据定义的Mparse对Sct进行筛选;
S405、根据定义的Mword对Sct进行筛选。
进一步的,步骤S405中,对Sct中的词语依次进行判断,若其词性属于Mword,则保留该词语。否则将该词语替换为占位符##。经过Mword筛选后的句子作为Sr。
具体的,步骤S5具体为:
S501、搭建由12个Transformer单元堆叠组成的深度网络BERT结构,使用公开的预训练权重对该模型进行初始化,将初始化后的BERT作为编码器E;
S502、使用6层Transformer组成解码器D,编码器E和D共同构成网络NED。
进一步的,步骤S502中,Transformer网络单元和编码器E中的相同,包括多头注意力层、前向传播层和layer norm层。
更进一步的,多头注意力层为:
MultiHead(Q,K,V)=Concat(head1,...,headh)
headi=Attention(QWi Q,KWi K,VWi V)
其中,Q,K和V是输入的词向量和词向量的经过之前Transformer的编码,dk为K的维度,Wi为Attention中的权值;
前向传播层为:
FFN(x)=max(0,xW1+b1)W2+b2。
与现有技术相比,本发明至少具有以下有益效果:
本发明一种基于BERT的句子自动填充方法,充分利用了BERT具有强大的语言表征能力的特点,使用预训练的BERT直接作为编码器,在更好利用了大量预训练语料信息的同时,一定程度降低了对所需训练数据量的依赖,同时提升了句子填充的准确性,具有很高的灵活性,其所提出的基于BERT的填充方法在不修改损失函数的情况下可以直接用于其余的生成式任务。
进一步的,在预处理数据时提出了一种二段的句子主干提取方法,首先利用句法分析树从句法结构角度保留句子主干,再用词性对句法分析的结果做出约束,这种二段主干保留方式灵活结合了现有技术的同时,很好的提升了主干提取的准确性。让后续的句子补全更加顺利。
进一步的,将batch设置为16是考虑到batchnorm的加速和内存占用后的平衡结果。
进一步的,S4步骤主要根据迁移学习的思想,使用预训练过的BERT来生成编码,缓解了训练数据不足问题的同时利用了从海量预训练数据学习到的特征。
进一步的,通过句法结构树选出需要让网络学习的关键词语,从而达到构建训练样本的目的。
进一步的,由于步骤S403中单纯的句法分析树选出的结果可能是不完善的,所以以步骤S405中词性的补充判断可以让结果更加准确。
进一步的,使用训练好的网络得到测试结果,即实际使用时的操作步骤。
进一步的,通过步骤S502构建出整体的网络模型,以便于训练和测试。
进一步的,多头注意力机制是一种先进的特殊神经网络技术,其最大的优势是可以提取时序上较长的距离关系并且并行计算,这极大的提升了处理序列数据的效率,并且取得的结果也处于当前最优程度。
综上所述,本发明将经典的句法分析树和最新的深度网络技术BERT相结合,很好的结合了二者优势,将这两个技术结合起来完成句子关键词补充的任务据我们所知是开创性的,并且达到了较好的效果。
下面通过附图和实施例,对本发明的技术方案做进一步的详细描述。
附图说明
图1为本发明的总流程图;
图2为本发明所用到的部分训练文本的截图;
图3为对图2进行处理的结果,其中,(a)为一阶处理,(b)为二阶处理;
图4为本发明的主网络测试时所用到的关键词组的截图;
图5为本发明中主网络测试时对图4中词组进行填充的结果。
具体实施方式
本发明提供了一种基于BERT的句子自动填充方法,主要解决NLP生成任务中句子填充准确度不高以及句子填充时需要用到的训练数据的问题。其实现过程是:获取用于生成训练数据的完整原始句子,使用分词工具和句法分析树对句子分别进行二阶处理;结合先验,对处理后的句子中的词语进行判断,将不符合先验的词语替换为占位符,由此得到筛选后的关键词组;将筛选后的词组和原始句子组合构造出训练数据;使用预训练好的BERT作为编码器,使用Transformer作为解码器构建出主网络,使用训练数据训练该网络;利用已训练好的主网络对新的关键词组进行测试,得到最终根据关键词组进行填充的句子即为最终结果。本发明具有很好的根据关键词组填充句子的能力,并且具有填充后的句子语义通顺的优点,可以应用于各种类型的根据关键词进行句子补充的问题。
请参阅图1,本发明一种基于BERT的句子自动填充方法,包括以下步骤:
S1、获取用于生成训练数据的完整原始句子S,使用分词工具Cs对句子进行一阶处理(分词和标注词性),得到一阶处理后的句子Sc。再使用句法分析树Ts对Sc进行二阶处理(标注句法结构),得到二阶处理后的句子Sct;
获取一个batch的完整原始句子S,其中batch大小为16,如图2所示。
S101、下载安装某一种分词库(常见的分词库如jieba,stanfordNLP,HanLP等),该处使用的是jieba分词库作为Cs;
S102、调用Cs中的分词函数postcut对S进行处理,即可得到分词并带有词性标注句子,即为一阶处理后的句子。即为Sc=postcut(S);
S103、下载安装HIT LTP句法分析库作为Ts;
S104、调用Ts中的parser函数对Sc进行处理,得到对Sc句法结构标注的结果作为二阶处理后的句子,即为Sct=parser(Sc)。
S2、结合先验M对句子Sct中每个分好的词语进行判断,保留符合M的词语,并将不符合M的词语统一使用占位符(如##)替换,得到替换后的句子Sr;
S3、将Sr作为训练样本,将原始句子S作为训练标签,共同组成训练数据;
S4、使用预训练的BERT作为编码器E,并使用Transformer作为解码器D,共同构建出主要网络NED。使用训练数据Sr和对应标签S来训练NED;
S401、根据数据的特点,定义句法结构先验集合Mparse。Mparse即为,通常情况下在句子中比较重要的句法关系,比如主谓关系,动宾关系等。此处选择的有Mparse=[主谓关系,动宾关系,并列关系,介宾关系等];
S402、根据数据的特点,定义词性先验集合Mword。Mword即为,通常情况下在句子中比较重要的某些词性,比如名词,动词等。此处选择的有Mword=[名词,动名词,动词,数词等];
S403、根据定义的Mparse,对Sct进行筛选。具体即为对Sct中的词语依次进行判断,若其句法关系属于Mparse,则保留该词语。否则将该词语替换为占位符##。定义经过Mparse筛选后得到的句子为
S405、根据定义的Mword,对Sct进行筛选。具体即为对Sct中的词语依次进行判断,若其词性属于Mword,则保留该词语。否则将该词语替换为占位符##。经过Mword筛选后的句子作为Sr。
S5、将关键词和占位符组成的句子Stest作为测试样本输入训练好的网络NED,即可得到根据关键词补充出的完整句子Sfill。
S501、搭建出BERT结构,这是一种由12个Transformer单元堆叠组成的深度网络,并使用公开的预训练权重对该模型进行初始化,将初始化后的BERT作为编码器E;
S502、使用6层Transformer组成解码器D。至此E和D共同构成主要网络NED。此处使用的Transformer和E中的Transformer是同一种网络单元。
该网络单元由三种类型的基础单元组成:
①多头注意力层;
②前向传播层;
③layer norm层。
多头注意力层具体可表示如下:
MultiHead(Q,K,V)=Concat(head1,...,headh)headi=Attention(QWi Q,KWi K,VWi V)
其中,Q,K和V是输入的词向量和词向量的经过之前Transformer的编码,dk为K的维度。Wi为Attention中的权值。
前向传播层具体可表示为:
FFN(x)=max(0,xW1+b1)W2+b2。
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。通常在此处附图中的描述和所示的本发明实施例的组件可以通过各种不同的配置来布置和设计。因此,以下对在附图中提供的本发明的实施例的详细描述并非旨在限制要求保护的本发明的范围,而是仅仅表示本发明的选定实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
为了说明本发明的有效性和适应性,实验通过使用一定量的文本经过处理后来训练本发明中的主网络,如图3所示,并利用该训练好的网络对图4中的词组进行填充,结果如图5所示,由于文本量较大,仅在此展示出部分样例,如图2所示。
从图5可以看出,使用本发明提出的句子处理策略可以较好的保留句子的关键词,同时使用该关键词和原始句子匹配对来训练本发明提出的主网络可以让网络很好的学习到句子补充能力,经过训练后的网络可以很好的对新关键词组进行填充。同时可以看出,用本发明的方法做句子填充能够达到令人满意的效果。
综上所述,使用部分原始文本数据对本发明方法进行训练后,本发明中的主网络可以较好的学到文本连接关系,并且网络可以利用该能力很好的完成关键词补充的任务。
以上内容仅为说明本发明的技术思想,不能以此限定本发明的保护范围,凡是按照本发明提出的技术思想,在技术方案基础上所做的任何改动,均落入本发明权利要求书的保护范围之内。
Claims (7)
1.一种基于BERT的句子自动填充方法,其特征在于,包括以下步骤:
S1、获取用于生成训练数据的完整原始句子S,使用分词工具Cs对句子进行一阶处理,得到一阶处理后的句子Sc;再使用句法分析树Ts对Sc进行二阶处理,得到二阶处理后的句子Sct;
S2、结合先验M对句子Sct中每个分好的词语进行判断,保留符合M的词语,并将不符合M的词语统一使用占位符替换,得到替换后的句子Sr,具体为:
根据数据的特点定义句法结构先验集合Mparse,Mparse=[主谓关系,动宾关系,并列关系,介宾关系];
根据数据的特点定义词性先验集合Mword,Mword=[名词,动名词,动词,数词];
根据定义的Mword对Sct进行筛选,对Sct中的词语依次进行判断,若其词性属于Mword,则保留该词语;否则将该词语替换为占位符##;经过Mword筛选后的句子作为Sr;
S3、将Sr作为训练样本,将原始句子S作为训练标签,共同组成训练数据;
S4、使用预训练的BERT作为编码器E,并使用Transformer作为解码器D,共同构建网络NED,使用训练数据Sr和对应标签S来训练网络NED;
S5、将关键词和占位符组成的句子Stest作为测试样本输入步骤S4训练好的网络NED,得到根据关键词补充出的完整句子Sfill。
2.根据权利要求1所述的基于BERT的句子自动填充方法,其特征在于,步骤S1中,使用分词工具Cs对句子进行一阶处理,得到一阶处理后的句子Sc的步骤如下:
S101、下载安装jieba分词库作为Cs;
S102、调用Cs中的分词函数postcut对S进行处理,得到分词并带有词性标注句子作为一阶处理后的句子,即为Sc=postcut(S)。
3.根据权利要求1所述的基于BERT的句子自动填充方法,其特征在于,步骤S1中,用句法分析树Ts对Sc进行二阶处理,得到二阶处理后的句子Sct的步骤如下:
S103、下载安装HIT LTP句法分析库作为Ts;
S104、调用Ts中的parser函数对Sc进行处理,得到对Sc句法结构标注的结果作为二阶处理后的句子,即为Sct=parser(Sc)。
4.根据权利要求1或2或3所述的基于BERT的句子自动填充方法,其特征在于,完整原始句子S的batch为16。
5.根据权利要求1所述的基于BERT的句子自动填充方法,其特征在于,步骤S4具体为:
S401、搭建由12个Transformer单元堆叠组成的深度网络BERT结构,使用公开的预训练权重对该模型进行初始化,将初始化后的BERT作为编码器E;
S402、使用6层Transformer组成解码器D,编码器E和D共同构成网络NED。
6.根据权利要求5所述的基于BERT的句子自动填充方法,其特征在于,步骤S402中,Transformer网络单元和编码器E中的相同,包括多头注意力层、前向传播层和layer norm层。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910792474.7A CN110516244B (zh) | 2019-08-26 | 2019-08-26 | 一种基于bert的句子自动填充方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910792474.7A CN110516244B (zh) | 2019-08-26 | 2019-08-26 | 一种基于bert的句子自动填充方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110516244A CN110516244A (zh) | 2019-11-29 |
CN110516244B true CN110516244B (zh) | 2023-03-24 |
Family
ID=68627962
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910792474.7A Active CN110516244B (zh) | 2019-08-26 | 2019-08-26 | 一种基于bert的句子自动填充方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110516244B (zh) |
Families Citing this family (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111444725B (zh) * | 2018-06-22 | 2022-07-29 | 腾讯科技(深圳)有限公司 | 语句的生成方法、装置、存储介质和电子装置 |
CN111506595B (zh) * | 2020-04-20 | 2024-03-19 | 金蝶软件(中国)有限公司 | 一种数据查询方法、系统及相关设备 |
CN111680169A (zh) * | 2020-06-03 | 2020-09-18 | 国网内蒙古东部电力有限公司 | 一种基于bert模型技术的电力科技成果数据抽取方法 |
CN111401037B (zh) * | 2020-06-05 | 2020-11-06 | 平安国际智慧城市科技股份有限公司 | 自然语言的生成方法、装置、电子设备及存储介质 |
CN111680493B (zh) * | 2020-08-12 | 2021-05-07 | 江西风向标教育科技有限公司 | 英语文本分析方法、装置、可读存储介质及计算机设备 |
CN112560476A (zh) * | 2020-12-09 | 2021-03-26 | 中科讯飞互联(北京)信息科技有限公司 | 文本补全方法以及电子设备、存储装置 |
CN113283250A (zh) * | 2021-05-26 | 2021-08-20 | 南京大学 | 一种基于句法成分分析的自动化机器翻译测试方法 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2018174815A1 (en) * | 2017-03-24 | 2018-09-27 | Agency For Science, Technology And Research | Method and apparatus for semantic coherence analysis of texts |
CN109271626A (zh) * | 2018-08-31 | 2019-01-25 | 北京工业大学 | 文本语义分析方法 |
CN109522411A (zh) * | 2018-11-12 | 2019-03-26 | 南京德磐信息科技有限公司 | 一种基于神经网络的写作辅助方法 |
-
2019
- 2019-08-26 CN CN201910792474.7A patent/CN110516244B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2018174815A1 (en) * | 2017-03-24 | 2018-09-27 | Agency For Science, Technology And Research | Method and apparatus for semantic coherence analysis of texts |
CN109271626A (zh) * | 2018-08-31 | 2019-01-25 | 北京工业大学 | 文本语义分析方法 |
CN109522411A (zh) * | 2018-11-12 | 2019-03-26 | 南京德磐信息科技有限公司 | 一种基于神经网络的写作辅助方法 |
Non-Patent Citations (2)
Title |
---|
一种基于迁移学习及多表征的微博立场分析方法;周艳芳等;《计算机科学》;20180915(第09期);全文 * |
基于LSTM-Attention神经网络的文本特征提取方法;赵勤鲁等;《现代电子技术》;20180412(第08期);全文 * |
Also Published As
Publication number | Publication date |
---|---|
CN110516244A (zh) | 2019-11-29 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110516244B (zh) | 一种基于bert的句子自动填充方法 | |
CN110210032B (zh) | 文本处理方法及装置 | |
CN108829722A (zh) | 一种远程监督的Dual-Attention关系分类方法及系统 | |
CN109635124A (zh) | 一种结合背景知识的远程监督关系抽取方法 | |
CN112559702B (zh) | 基于Transformer的土木建筑信息领域自然语言问题生成方法 | |
CN112069295B (zh) | 相似题推荐方法、装置、电子设备和存储介质 | |
CN112115687B (zh) | 一种结合知识库中的三元组和实体类型的生成问题方法 | |
CN113343683B (zh) | 一种融合自编码器和对抗训练的中文新词发现方法及装置 | |
CN110516530A (zh) | 一种基于非对齐多视图特征增强的图像描述方法 | |
CN114676234A (zh) | 一种模型训练方法及相关设备 | |
CN113657123A (zh) | 基于目标模板指导和关系头编码的蒙语方面级情感分析方法 | |
CN111444328B (zh) | 一种带有解释生成的自然语言自动预测推断方法 | |
CN114969278A (zh) | 一种基于知识增强图神经网络的文本问答模型 | |
CN115374270A (zh) | 一种基于图神经网络的法律文本摘要生成方法 | |
CN109979461A (zh) | 一种语音翻译方法及装置 | |
CN115204143B (zh) | 一种基于prompt的文本相似度计算方法及系统 | |
CN115906818A (zh) | 语法知识预测方法、装置、电子设备和存储介质 | |
CN115309886A (zh) | 基于多模态信息输入的人工智能文本创作方法 | |
CN115526149A (zh) | 一种融合双注意力和生成对抗网络的文本摘要方法 | |
CN114595700A (zh) | 融合零代词与篇章信息的汉越神经机器翻译方法 | |
CN112464673A (zh) | 融合义原信息的语言含义理解方法 | |
Billingsley et al. | Improvements to Training an RNN parser | |
CN114139531B (zh) | 一种基于深度学习的医疗实体预测方法及系统 | |
Shaheen et al. | Russian natural language generation: Creation of a language modelling dataset and evaluation with modern neural architectures | |
CN114996424B (zh) | 一种基于深度学习的弱监督跨域问答对生成方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |