专利名称:一种文本摘要生成的方法及系统
专利类型:发明专利
专利申请号:CN202110824660.1
专利申请(专利权)人:武汉众智数字技术有限公司
权利人地址:湖北省武汉市东湖新技术开发区珞喻路546号
专利发明(设计)人:张宇
专利摘要:一种文本摘要生成的方法和系统,将待生成摘要的文本组成集合,并对文本进行预处理;对预处理后的文本按预设第一规则进行聚类,得到不同类别文本的集合;通过对不同类别的文本集合采用文本摘要生成模型进行摘要生成;对生成的文本摘要进行合并输出。本发明由于引入了领域数据并对多话题或事实文本进行了聚类,可以克服领域专有名称溢出和文本生成模型对多话题或事实描述文本生成摘要效果不理想的问题。
主权利要求:
1.一种文本摘要生成的方法,其特征在于,包括:
S100.将待生成摘要的文本组成集合,并对文本进行预处理;
S200.对预处理后的文本按预设第一规则进行聚类,得到不同类别文本的集合;S200中,对预处理后的文本按预设第一规则进行聚类,包括:首先对待聚类的文本进行分词操作,然后根据待聚类的文本及每个字符片段在各待聚类文本中出现的次数构建待聚类文本的特征矩阵,对待聚类的文本特征矩阵进行特征提取的操作,得到原始特征矩阵;将特征矩阵输入到K‑Means聚类模型中,进行迭代计算,收敛后得到一个聚类结果矩阵;
S300.通过对不同类别的文本集合,采用文本摘要生成模型进行摘要生成;
S400.对生成的文本摘要进行合并输出;
S300中,通过预训练领域语言模型和文本摘要生成模型,按类别对文本进行摘要生成;
预训练领域语言模型工作流程为:采用通用的语言模型BERT在领域数据上训练掩码语言模型,掩码语言模型训练过程就是将文本输入到BERT模型的编码器之前,随机的将文本中的词语按一定的比例替换成掩码标识[Mask],然后进行BERT编码,最终来预测被替换成掩码标识的词,然后计算预测词和标记词的交叉熵损失,循环往复直到模型收敛,就得到了第一预训练领域语言模型;在第一预训练语言模型的基础上针对上游任务在领域标注的训练数据上进行微调得到第二预训练领域语言模型;
文本摘要生成模型由编码组件和解码组件组成,编码组件和解码组件又拆分成多个编码器和解码器;其中,编码组件为预训练领域语言模型,解码组件的参数由训练文本摘要生成任务得到;编码器和解码器生成摘要文本的工作流程为:对待生成摘要的文本进行切分、转换得到输入文本的向量表示;将输入文本的向量表示输入到文本摘要模型的编码组件进行编码,得到待生成摘要文本的语义表示;待生成摘要文本的语义表示输入到解码组件中进行解码得到生成的摘要文本;将输入文本的向量表示输入到文本摘要模型的编码组件进行编码,具体包括:将输入文本的向量表示通过编码器中的多头注意力层、求和与归一化层、全连接层和求和与归一化层进行编码计算得到第一文本编码表示。
2.如权利要求1所述的一种文本摘要生成的方法,其特征在于,S100中,对文本进行预处理为对文本进行清洗操作,去除文本中的无用字符,至少包括:停顿词和感叹词。
3.一种文本摘要生成的系统,采用权利要求1或2所述文本摘要生成的方法,其特征在于,包括:文本数据预处理模块、文本聚类模块、文本摘要生成模块、文本摘要合并输出模块;其中:文本数据预处理模块,用于将待生成摘要的文本组成集合,并对文本进行预处理;
文本聚类模块,用于对预处理后的文本按预设第一规则进行聚类,得到不同类别文本的集合;
文本摘要生成模块,用于通过不同类别文本的集合,按类别对文本摘要进行生成;
文本摘要合并输出模块,用于对生成的文本摘要进行合并输出。 说明书 : 一种文本摘要生成的方法及系统技术领域[0001] 本发明涉及的是文本生成领域,特别涉及一种文本摘要生成的方法及系统。背景技术[0002] 文本摘要生成技术可以高效的生成精简的摘要文本,方便我们快速的获取有用的信息,因此具有很高的商业价值。现有的文本摘要生成方法主要可以分为抽取式和生成式两种。前者选取文本中的关键句子构成文本的摘要,虽然生成的摘要可读性强,但是包含的冗余信息很多。后者通过深度神经网络模拟人类的思维方式,使得生成的摘要信息更加新颖简洁。但是目前开放域的文本生成模型迁移到特定领域会出现领域专有名词溢出的问题。此外,一段文本往往描述了多个事实或者话题,因此如何让文本摘要生成系统更好的处理多话题或者事实描述文本生成可读且简短的摘要成为了一个势待解决的问题。发明内容[0003] 鉴于上述问题,提出了本发明以便提供一种克服上述问题或者至少部分地解决上述问题的一种文本摘要生成的方法及系统。[0004] 为了解决上述技术问题,本申请实施例公开了如下技术方案:[0005] 一种文本摘要生成的方法,包括:[0006] S100.将待生成摘要的文本组成集合,并对文本进行预处理;[0007] S200.对预处理后的文本按预设第一规则进行聚类,得到不同类别文本的集合;[0008] S300.通过对不同类别的文本集合,采用文本摘要生成模型进行摘要生成;[0009] S400.对生成的文本摘要进行合并输出。[0010] 进一步地,S100中,对文本进行预处理为对文本进行清洗操作,去除文本中的无用字符,至少包括:停顿词和感叹词。[0011] 进一步地,S200中,对预处理后的文本按预设第一规则进行聚类,包括:首先对待聚类的文本进行分词操作,然后根据待聚类的文本及每个字符片段在各待聚类文本中出现的次数构建待聚类文本的特征矩阵,对待聚类的文本特征矩阵进行特征提取的操作,得到原始特征矩阵;将特征矩阵输入到K‑Means聚类模型中,进行迭代计算,收敛后得到一个聚类结果矩阵。[0012] 进一步地,S300中,通过预训练领域语言模型和文本摘要生成模型,按类别对文本摘要进行生成。[0013] 进一步地,预训练领域语言模型工作流程为:采用通用的语言模型BERT在领域数据上训练掩码语言模型,掩码语言模型训练过程就是将文本输入到BERT模型的编码器之前,随机的将文本中的词语按一定的比例替换成掩码标识[Mask],然后进行BERT编码,最终来预测被替换成掩码标识的词,然后计算预测词和标记词的交叉熵损失,循环往复直到模型收敛,就得到了第一预训练领域语言模型;在第一预训练语言模型的基础上针对下游任务在领域标注的训练数据上进行微调得到第二预训练领域语言模型。[0014] 进一步地,文本摘要生成模型由编码组件和解码组件组成,编码组件和解码组件又可以拆分成多个编码器和解码器;其中,编码组件为预训练领域语言模型,解码组件的参数由训练文本摘要生成任务得到。[0015] 进一步地,编码器和解码器生成摘要文本的工作流程为:对待生成摘要的文本进行切分、转换得到输入文本的向量表示;将输入文本的向量表示输入到文本摘要模型的编码组件进行编码,得到待生成摘要文本的语义表示;待生成摘要文本的语义表示输入到解码组件中进行解码得到生成的摘要文本。[0016] 进一步地,将输入文本的向量表示输入到文本摘要模型的编码组件进行编码,具体包括:将输入文本的向量表示通过编码器中的多头注意力层、求和与归一化层、全连接层和求和与归一化层进行编码计算得到第一文本编码表示。[0017] 进一步地,待生成摘要文本的语义表示输入到解码组件中进行解码得到生成的摘要文本,具体包括:对于解码标识首先进行向量表示计算,然后与待生成摘要文本的语义表示一同输入到解码组件中进行计算;解码计算过程依次进行Mask多头注意力层、求和归一化层、多头注意力层、求和归一化层、全连接层和求和归一化层的计算得到第一文本解码表示。[0018] 本发明还公开了一种文本摘要生成的系统,包括:文本数据预处理模块、文本聚类模块、文本摘要生成模块、文本摘要合并输出模块;其中:[0019] 文本数据预处理模块,用于将待生成摘要的文本组成集合,并对文本进行预处理;[0020] 文本聚类模块,用于对预处理后的文本按预设第一规则进行聚类,得到不同类别文本的集合;[0021] 文本摘要生成模块,用于通过不同类别文本的集合,按类别对文本摘要进行生成;[0022] 文本摘要合并输出模块,用于对生成的文本摘要进行合并输出。[0023] 本发明实施例提供的上述技术方案的有益效果至少包括:[0024] 本发明公开的一种文本摘要生成的方法,将待生成摘要的文本组成集合,并对文本进行预处理;对预处理后的文本按预设第一规则进行聚类,得到不同类别文本的集合;通过不同类别文本的集合,按类别对文本摘要进行生成;对生成的文本摘要进行合并输出。本发明由于引入了领域数据并对多话题或事实文本进行了聚类,因此可以克服领域专有名称溢出和文本生成模型对多话题或事实描述文本生成摘要效果不理想的问题。[0025] 下面通过附图和实施例,对本发明的技术方案做进一步的详细描述。附图说明[0026] 附图用来提供对本发明的进一步理解,并且构成说明书的一部分,与本发明的实施例一起用于解释本发明,并不构成对本发明的限制。在附图中:[0027] 图1为本发明实施例1中,一种文本摘要生成的方法的流程图;[0028] 图2为本发明实施例1中,生成预训练语言模型模型流程图;[0029] 图3为本发明实施例2中,文本摘要生成模型结构图;[0030] 图4为本发明实施例2中,编码器和解码器结构图。具体实施方式[0031] 下面将参照附图更详细地描述本公开的示例性实施例。虽然附图中显示了本公开的示例性实施例,然而应当理解,可以以各种形式实现本公开而不应被这里阐述的实施例所限制。相反,提供这些实施例是为了能够更透彻地理解本公开,并且能够将本公开的范围完整的传达给本领域的技术人员。[0032] 为了解决现有技术中存在的问题,本发明实施例提供一种文本摘要生成的方法和系统。[0033] 实施例1[0034] 一种文本摘要生成的方法,如图1,包括:[0035] S100.将待生成摘要的文本组成集合,并对文本进行预处理;具体的,文本数据预处理模块主要是对输入文本集合中的文本进行清洗操作,去除文本中的无用字符,如停用词和语气词等。[0036] S200.对预处理后的文本按预设第一规则进行聚类,得到不同类别文本的集合。文本聚类的目的是将描述相同事实的句子聚集在一起。一般来讲对文本采用K‑Means来实现。分词之后,需要根据每个句子中各个词语在词典中出现的位置和次数将句子表示成以词典为长度以句子中出现的次数为特征值的向量表示,然后采用聚类算法对句子向量集进行聚类,从而得到聚类之后的文本。[0037] 在本实施例中,对预处理后的文本按预设第一规则进行聚类,包括:首先对待聚类的文本进行分词操作,然后根据待聚类的文本及每个字符片段在各待聚类文本中出现的次数构建待聚类文本的特征矩阵,对待聚类的文本特征矩阵进行特征提取的操作,得到原始特征矩阵;将特征矩阵输入到K‑Means聚类模型中,进行迭代计算,收敛后得到一个聚类结果矩阵。[0038] 具体的,对于分词操作,我们采用JIEBA分词器辅助领域专有名词字典对待聚类的文本进行分词操作,并且引入文本的n‑gram特征。此处的n可以根据实际的需求具体设置。[0039] 以文本“资源库表创建及数据接入”为例,JIEBA分词器得到的结果为“资源库、表、创建、及、数据、接入”;1‑Gram特征词为:“资、源、库、表、创、建、及、数、据、接、入”;2‑Gram特征词为:“资源、源库、库表、表创、创建、建及、及数、数据、据接、接入”;最终的分词结果为结巴分词器的输入、1‑Gram特征词和2‑Gram特征词三者合并之后的结果,即:“资源库、表、创建、及、数据、接入、资、源、库、表、创、建、及、数、据、接、入、资源、源库、库表、表创、创建、建及、及数、数据、据接、接入”。[0040] 对于文本向量表示,将待聚类的文本进行分词操作之后可以根据待聚类的文本及每个字符片段在各待聚类文本中出现的次数构建待聚类文本的特征矩阵。特征矩阵的每一行表示一个待聚类文本的向量表示,每一类表示各个待聚类文本的特征列,及词典中的某一个词在各个待聚类文本中出现的次数。比如特征矩阵X为一个n*m的矩阵,其中n为待聚类的文本数量,m为字典的长度,第n行m列的数值表示词典中第m个词在第n个文本中出现的次数。[0041] 假设有2个待聚类的文本,分别为文本1“资源库表创建及数据接入”和文本2“编写人口相关表清洗脚本”。对两个待聚类文本进行分词操作,文本1的分词结果为“资源库、表、创建、及、数据、接入、资、源、库、表、创、建、及、数、据、接、入、资源、源库、库表、表创、创建、建及、及数、数据、据接、接入”;文本2的分词结果为“编写、写人、人口、口相、相关、关表、表清、清洗、洗脚、脚本、编写、人口、相关、表、清洗、脚本、编、写、人、口、相、关、表、清、洗、脚、本”。两个待聚类文本的分词结果组成字典共计42个词,即:“表创、洗、数、据接、资源库、库表、创建、资源、清、关、建、源、人口、编、脚、创、资、相关、表清、据、及数、人、本、写、源库、口相、关表、表、接入、相、入、建及、口、库、接、及、写人、清洗、洗脚、脚本、数据、编写”。那么待聚类的文本特征矩阵X可以表示为如下:[0042] X=[[1,0,1,1,1,1,2,1,0,0,1,1,0,0,0,1,1,0,0,1,1,0,0,0,1,0,0,2,2,0,1,1,0,1,1,2,0,0,0,0,2,0],[0,1,0,0,0,0,0,0,1,1,0,0,2,1,1,0,0,2,1,0,0,1,1,1,0,1,1,2,0,1,0,0,1,0,0,0,1,2,1,2,0,2]]。[0043] 其中特征矩阵的第一行为待聚类文本1的表示向量,第二行为待聚类文本2的表示向量。[0044] 对于文本特征抽取,在得到待聚类文本的特征矩阵之后,可以将特征矩阵输入到聚类模型中进行聚类。但是实际应用中,往往词典会很大,得到的文本表示向量是高维且稀疏的。因此,在进行聚类之前我们还会对待聚类的文本特征矩阵进行特征提取的操作,得到原始特征矩阵的低秩表示。这样做的目的是得到待聚类文本的有意义的特征表示,降低特征维度也可以加速聚类的计算。[0045] 对待聚类的文本特征矩阵进行特征提取与降维处理可以使用预先设定的降维算法,比如NMF(Non‑negativeMatrixFactorization)等。对于n*m的特征矩阵,采用NMF进行降维之后可以得到一个n*r的特征表示矩阵S,其中r远小于m。[0046] 对于文本聚类,聚类算法是针对文本特征抽取之后的特征矩阵S进行的,矩阵S的每一行表示一个待聚类的文本特征表示。将特征矩阵S输入到K‑Means++聚类模型中,进行迭代计算,收敛后得到一个聚类结果矩阵C,矩阵中的某个值表示第i个样本数据属于第j个类别的概率。关于聚类类别数的确定采用手肘法(从某个类别数范围内选取样本到聚类中心距离最小的类别数)自动的确定最优的类别数。[0047] S300.通过不同类别文本的集合,按类别对文本摘要进行生成。[0048] 在本实施例中,通过预训练领域语言模型和文本摘要生成模型,按类别对文本摘要进行生成。[0049] 具体的,对于预训练领域语言模型,采用通用语言模型BERT在领域数据上进行无监督掩码语言模型+领域监督任务训练得到领域语言模型。[0050] 采用通用的语言模型BERT在领域数据上训练掩码语言模型(MaskedLanguageModel,MLM),BERT的模型结构为12层编码器组成。领域预训练语言模型训练方式如图2所示,掩码语言模型训练过程就是将文本输入到BERT模型的编码器之前,随机的将文本中的词语按一定的比例替换成掩码标识[Mask],然后进行BERT编码,最终来预测被替换成掩码标识的词,然后计算预测词和标记词的交叉熵损失,循环往复直到模型收敛,就得到了第一预训练领域语言模型。第一预训练语言模型的结构与原始的BERT模型结构一样,但模型的参数进行了迭代学习。[0051] 在第一预训练语言模型的基础上针对下游任务在领域标注的训练数据上进行微调得到第二预训练领域语言模型。模型训练的这里的下游任务根据领域需要来进行构建,一般有命名实体识别任务、文本分类任务等。第二预训练领域语言模型即为最终的预训练领域语言模型。相比通用语言模型的改进:在通用语言模型的基础上引入领域数据进行再次的预训练。针对文本粒度的大小,引入了一些面向领域的特定任务训练。例如:命名实体识别、文本分类等。[0052] 对于文本摘要生成模型,文本摘要生成模型的结构如图3所示,由编码组件和解码组件组成,编码组件和解码组件又可以拆分成多个编码器和解码器。其中,编码组件为预训练领域语言模型,解码组件的参数由训练文本摘要生成任务得到,编码器和解码器结构如图4所示。[0053] 本方法通过Seq2Seq框架,以“文本‑摘要”对组成训练数据,实现了一个自动生成文本摘要的系统。文本摘要模型通过编码组件对输入的待生成摘要文本进行编码操作,获得其中间语义向量。然后,通过解码组件对中间语义向量进行解码,生成其对应的摘要文本。具体做法如下:[0054] a.对待生成摘要的文本进行切分、转换得到输入文本的向量表示。[0055] 输入文本采用分词器(Tokenizer)进行切分后得到输入文本的词索引列表(Token_ids)和多句分隔标识列表(Segment_ids)。然后对Token_ids进行词嵌入操作得到输入文本的第一向量表示,其大小为[batch_size,seq_length,embedding_size]。然后计算文本的位置编码表示,其大小为[batch_size,seq_length,embedding_size],最后将文本的第一向量表示与文本的位置编码表示求和得到输入文本的向量表示。[0056] b.将输入文本的向量表示输入到文本摘要模型的编码组件进行编码,得到待生成摘要文本的语义表示。[0057] 将输入文本的向量表示通过编码器中的多头注意力层、求和与归一化层、全连接层和求和与归一化层进行编码计算得到第一文本编码表示。编码器的内部结构如图3所示。依次通过L个编码器进行编码,得到最终的第L文本编码表示,即为待生成摘要文本的语义表示。[0058] c.待生成摘要文本的语义表示输入到解码组件中进行解码得到生成的摘要文本。[0059] 对于解码标识首先进行向量表示计算,然后与待生成摘要文本的语义表示一同输入到解码组件中进行计算。解码计算过程依次进行Mask多头注意力层、求和归一化层、多头注意力层、求和归一化层、全连接层和求和归一化层的计算得到第一文本解码表示。解码器的内部结构如图3所示。依次通过L个解码器进行解码,得到最终的第L文本解码表示,最后进行全连接层的计算,得到当前状态t在字典上的概率分布,取概率最大的字作为当前状态t的生成输出。将当前状态t的输出字符表示与t‑1步的字符表示,以及待生成摘要文本的语义表示输入一同输入到解码组件,预测t+1步的生成输出,直到当前状态的输出字符为或者达到预设定的文本生成长度,则文本解码过程终止,期间得到的输出字符按顺序合并为当前输入文本的摘要输出。[0060] S400.对生成的文本摘要进行合并输出。对于多个小句子集合采用文本摘要生成之后需要对结果进行合并,并输出得到最终的摘要文本。我们希望多个小句子集合生成的摘要文本是具有差异性的,因此会选择互斥的句子,过滤掉相似性高的句子作为最终的输出。具体合并的过程可以直接人工筛选手动合并或者机器自动去重。[0061] 本实施例还公开了一种文本摘要生成的系统,包括:文本数据预处理模块、文本聚类模块、文本摘要生成模块、文本摘要合并输出模块;其中:[0062] 文本数据预处理模块,用于将待生成摘要的文本组成集合,并对文本进行预处理;[0063] 文本聚类模块,用于对预处理后的文本按预设第一规则进行聚类,得到不同类别文本的集合;[0064] 文本摘要生成模块,用于通过不同类别文本的集合,按类别对文本摘要进行生成;[0065] 文本摘要合并输出模块,用于对生成的文本摘要进行合并输出。[0066] 其中,文本数据预处理模块、文本聚类模块、文本摘要生成模块和文本摘要合并输出模块具体的工作流程和结构已在前面进行了详细描述,在此不再进行赘述。[0067] 本实施例公开的一种文本摘要生成的方法和系统,将待生成摘要的文本组成集合,并对文本进行预处理;对预处理后的文本按预设第一规则进行聚类,得到不同类别文本的集合;通过不同类别文本的集合,按类别对文本摘要进行生成;对生成的文本摘要进行合并输出。本发明由于引入了领域数据并对多话题或事实文本进行了聚类,因此可以克服领域专有名称溢出和文本生成模型对多话题或事实描述文本生成摘要效果不理想的问题。[0068] 应该明白,公开的过程中的步骤的特定顺序或层次是示例性方法的实例。基于设计偏好,应该理解,过程中的步骤的特定顺序或层次可以在不脱离本公开的保护范围的情况下得到重新安排。所附的方法权利要求以示例性的顺序给出了各种步骤的要素,并且不是要限于所述的特定顺序或层次。[0069] 在上述的详细描述中,各种特征一起组合在单个的实施方案中,以简化本公开。不应该将这种公开方法解释为反映了这样的意图,即,所要求保护的主题的实施方案需要清楚地在每个权利要求中所陈述的特征更多的特征。相反,如所附的权利要求书所反映的那样,本发明处于比所公开的单个实施方案的全部特征少的状态。因此,所附的权利要求书特此清楚地被并入详细描述中,其中每项权利要求独自作为本发明单独的优选实施方案。[0070] 本领域技术人员还应当理解,结合本文的实施例描述的各种说明性的逻辑框、模块、电路和算法步骤均可以实现成电子硬件、计算机软件或其组合。为了清楚地说明硬件和软件之间的可交换性,上面对各种说明性的部件、框、模块、电路和步骤均围绕其功能进行了一般地描述。至于这种功能是实现成硬件还是实现成软件,取决于特定的应用和对整个系统所施加的设计约束条件。熟练的技术人员可以针对每个特定应用,以变通的方式实现所描述的功能,但是,这种实现决策不应解释为背离本公开的保护范围。[0071] 结合本文的实施例所描述的方法或者算法的步骤可直接体现为硬件、由处理器执行的软件模块或其组合。软件模块可以位于RAM存储器、闪存、ROM存储器、EPROM存储器、EEPROM存储器、寄存器、硬盘、移动磁盘、CD‑ROM或者本领域熟知的任何其它形式的存储介质中。一种示例性的存储介质连接至处理器,从而使处理器能够从该存储介质读取信息,且可向该存储介质写入信息。当然,存储介质也可以是处理器的组成部分。处理器和存储介质可以位于ASIC中。该ASIC可以位于用户终端中。当然,处理器和存储介质也可以作为分立组件存在于用户终端中。[0072] 对于软件实现,本申请中描述的技术可用执行本申请所述功能的模块(例如,过程、函数等)来实现。这些软件代码可以存储在存储器单元并由处理器执行。存储器单元可以实现在处理器内,也可以实现在处理器外,在后一种情况下,它经由各种手段以通信方式耦合到处理器,这些都是本领域中所公知的。[0073] 上文的描述包括一个或多个实施例的举例。当然,为了描述上述实施例而描述部件或方法的所有可能的结合是不可能的,但是本领域普通技术人员应该认识到,各个实施例可以做进一步的组合和排列。因此,本文中描述的实施例旨在涵盖落入所附权利要求书的保护范围内的所有这样的改变、修改和变型。此外,就说明书或权利要求书中使用的术语“包含”,该词的涵盖方式类似于术语“包括”,就如同“包括,”在权利要求中用作衔接词所解释的那样。此外,使用在权利要求书的说明书中的任何一个术语“或者”是要表示“非排它性的或者”。
专利地区:湖北
专利申请日期:2021-07-21
专利公开日期:2024-07-26
专利公告号:CN113688230B