CN115329784B - 基于预训练模型的句子复述生成*** - Google Patents
基于预训练模型的句子复述生成*** Download PDFInfo
- Publication number
- CN115329784B CN115329784B CN202211245822.7A CN202211245822A CN115329784B CN 115329784 B CN115329784 B CN 115329784B CN 202211245822 A CN202211245822 A CN 202211245822A CN 115329784 B CN115329784 B CN 115329784B
- Authority
- CN
- China
- Prior art keywords
- sentence
- model
- generation
- module
- chinese
- 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
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F40/00—Handling natural language data
- G06F40/40—Processing or translation of natural language
- G06F40/58—Use of machine translation, e.g. for multi-lingual retrieval, for server-side translation for client devices or for real-time translation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/30—Information retrieval; Database structures therefor; File system structures therefor of unstructured textual data
- G06F16/35—Clustering; Classification
- G06F16/355—Class or cluster creation or modification
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F40/00—Handling natural language data
- G06F40/20—Natural language analysis
- G06F40/205—Parsing
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F40/00—Handling natural language data
- G06F40/20—Natural language analysis
- G06F40/237—Lexical tools
- G06F40/247—Thesauruses; Synonyms
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F40/00—Handling natural language data
- G06F40/30—Semantic analysis
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Audiology, Speech & Language Pathology (AREA)
- Computational Linguistics (AREA)
- General Health & Medical Sciences (AREA)
- Health & Medical Sciences (AREA)
- Artificial Intelligence (AREA)
- Data Mining & Analysis (AREA)
- Databases & Information Systems (AREA)
- Machine Translation (AREA)
Abstract
本发明公开了基于预训练模型的句子复述生成***,包括复述生成模块、流利度过滤模块和语义过滤模块,复述生成模块用于生成复述,复述生成模块包括翻译生成、模型生成和同义词替换生成模块,翻译生成模块通过直译和回译两种方法生成复述,模型生成模块通过直接训练中文复述生成模型生成复述和利用英文复述生成模型间接生成中文复述,同义词生成模块通过替换原句中的同义词生成复述,本发明充分利用开源的预训练模型资源,利用翻译模型进行直接翻译生成复述和回译生成复述,提高生成复述的效率和多样性,利用预训练的语言模型将英语复述生成模型应用到中文复述生成中,使用多项措施确保生成高质量复述。
Description
技术领域
本发明属于自然语言处理的技术领域,具体涉及一种基于预训练模型的句子复述生成***。
背景技术
复述生成任务是要生成与原句语义相同但表达不同的句子。生成的句子称为原句的复述。复述生成可以在问答、翻译和自然语言生成等任务中发挥重要作用。在问答***中,对于用户输入的问题,可以用复述生成对问题进行扩充,使得问答库更容易匹配到相似的问题。在训练翻译模型时,复述生成可以扩充训练数据和标签数据。在自然语言生成任务中,对生成的句子进行复述生成来产生丰富多样的表达。
目前复述生成的方法主要有基于规则、基于统计和基于神经网络的方法。
基于规则的生成方法根据规则对原句子进行改写,在保持语义与原句相同的情况下改变句子的措辞和结构来生成复述。例如在原句的适当位置增加或***适当的语气助词、对句子做语序的更换、对句子中的词做同义词替换等方法。对句子中的词做同义词替换可以生成丰富的复述,但是对于多义词而言,它的语义通常跟上下文有关,它的同义词有些不适合原语的语境。如果盲目的拿同义词替换原词,会导致生成的复述句子出现语义变化,语法不通的问题。
基于统计的方法主要是基于统计机器翻译的复述生成方法。复述生成方法可以认为是源语言和目标语言相同的翻译任务。利用统计机器翻译模型,将原句翻译成语义相同表达不同的句子生成复述。随着深度学习的发展,基于神经网络训练的翻译模型表现超过了基于统计的机器翻译模型,利用神经网络翻译模型来生成复述是更好的选择。
深度学习的发展还为复述生成提供了新的思路和方法,可以微调预训练的语言模型来生成复述。在大规模的语料上预训练过的语言模型,对文本通用特征的提取能力很强。基于这样的模型在复述生成数据集上微调可以取得很好的效果。随着深度学习的发展,开源了越来越多的预训练模型。这些模型特征提取能力强大,对下游任务的提升有很大帮助,是值得利用的宝贵资源。
自然语言处理随着人工智能和深度学习的发展受到了越来越多的关注。复述生成作为自然语言处理的一个研究方向也有越来越多的学者进行研究。目前而言,中文复述生成的研究还比较少,不如英文复述生成的研究。英文复述生成的研究有较长的技术积累和更广的研究群体。目前已有一些开源的框架和模型实现英文复述生成,而且能生成优质的英文复述,这些也是值得利用的资源。
目前复述生成任务缺乏较好的自动评价方法。最有说服力的方法是人工评价,但是这种方法费时费力,成本很高。如何自动评估生成的复述质量,特别是复述是否通顺流利,复述的语义是否与原句相同是一个值得深入研究的问题。
发明内容
针对现有技术不足,本发明提出了基于预训练模型的句子复述生成***。
为实现上述目的,本发明的技术方案为:
一种基于预训练模型的句子复述生成***,包括依次连接的复述生成模块、流利度过滤模块和语义过滤模块;所述的复述生成模块用于生成复述;所述的流利度过滤模块用于计算复述的流利度,过滤得到流利度不低于阈值的复述;所述的语义过滤模块用于计算复述与原句的语义相似度,过滤得到语义相似度不低于阈值的复述。
进一步的,所述复述生成模块包括翻译生成模块、模型生成模块和同义词替换生成模块;所述的翻译生成模块通过直译生成和回译生成两种方式生成复述,所述的模型生成模块通过语言模型生成复述,所述的同义词替换生成模块通过替换原句中的同义词生成复述。
进一步的,所述的直译生成方式通过将输入句子翻译为文言文、粤语和繁体中文生成复述,所述的回译生成方式通过将输入的中文句子翻译为英语句子,再将英语句子翻译为中文生成复述;所述的回译生成方法还利用多语言翻译模型,将输入句子翻译为德语句子,再将德语句子翻译为中文生成复述。
进一步的,所述的模型生成模块包括直接训练中文复述生成模型来生成复述和利用英文复述生成模型间接生成中文复述两种方式,所述利用英文复述生成模型间接生成中文复述的方式是将中文句子翻译成英文,输入英文复述生成模型生成英文复述,再将英文复述翻译成中文生成中文复述。
进一步的,同义词替换生成模块包括分词、命名实体识别、可替换词过滤、同义词查找、同义词过滤、同义词替换模块所述的同义词替换生成模块包括分词子模块、命名实体识别子模块、可替换词过滤子模块、同义词查找子模块、同义词过滤子模块、同义词替换子模块。
进一步的,同义词替换生成模块中可替换词过滤模块将作品名(nw)、其他专名(nz)、标点符号(w)、人名(PER)、地名(LOC)、机构名(ORG)和时间(TIME)这些实体类型组成的集合作为不可替换实体类型集合,类型属于该集合的实体将不做同义词替换。
进一步的,同义词替换生成模块中同义词过滤模块引入在大规模语料上预训练的掩码语言模型(Masked Language Model)来过滤同义词,具体包含以下步骤:
S1:将句子中的原词替换为与同义词长度相同的掩码,得到掩码句子;
S2:将掩码句子输入预训练掩码语言模型,计算掩码位置对应的输出生成同义词对应字的概率,用同义词各字生成概率的几何平均数作为置信度;
S3:设置置信度阈值;
S4:滤除置信度小于阈值的同义词,得到适用于当前语境的同义词。
进一步的,流利度过滤模块利用预训练的掩码语言模型计算流利度,设置流利度阈值,过滤得到流利的复述。流利度计算方法为逐个掩盖句子中的每个字,计算模型输出的掩码位置生成原字的概率。基于得到的生成概率计算困惑度,再用指数函数将1减去困惑度得到的值映射到区间[0,1]。流利度计算方法用公式表示为:
其中flu为流利度,N为句子长度,i为第i个位置,p为生成概率,s为句子,为句子的第i个字。
进一步的,语义过滤模块用Sentence Bert模型对句子进行编码得到句向量,通过句向量间的余弦值来判断语义是否相同。设置余弦值阈值,当且仅当句向量间的余弦值大于等于阈值时,认为语义相同。
语义过滤模块训练独立的、与句子生成无关的Sentence Bert模型来判断语义。构造包含强负样本和弱负样本的数据集训练模型,并将Sentence Bert模型训练时三元目标函数改进为如下形式:
其中为改进的损失值,表示句子a的句向量,表示句子p的句向量,表示句子n的句向量;句子p是a的正例,即p与a的语义相同。句子n是a的负例,即n与a的语义不同;表示距离度量,表示设定的边际值。
本发明的有益效果为:
(1)充分利用开源的预训练模型资源,利用翻译模型进行直接翻译生成复述和回译生成复述,利用多语言翻译模型提高生成复述的效率和多样性,利用预训练的语言模型进行微调训练中文复述生成模型,将英语复述生成模型应用到中文复述生成中。
(2)进行同义词替换时,将实体类型组成的集合作为不可替换实体类型集合,类型属于该集合的实体将不做同义词替换,避免了专有名词和关键信息被替换导致句子语义改变。
(3)引入在大规模语料上预训练的掩码语言模型(Masked Language Model)来过滤同义词,得到适用于当前语境的同义词,避免不符合语境的同义词使句子不通顺或改变句子语义。
(4)利用预训练的掩码语言模型计算流利度,设置流利度阈值,过滤得到流利度不低于阈值的复述,从而滤除不通顺的句子,得到流利通顺的复述句子。
(5)训练独立的、与句子生成无关的Sentence Bert模型来判断语义,从而避免生成过程影响评估结果,使用多项措施确保生成高质量复述,包括收集不可替换实体组成集合、定义同义词置信度和流利度计算方法、改进Sentence Bert损失函数。
附图说明
图1为本发明所述的***结构图;
图2为复述生成模块结构图;
图3为翻译生成模块结构图;
图4为直译生成模块结构图;
图5为回译生成模块结构图;
图6为模型生成模块结构图;
图7为同义词替换生成模块结构图;
图8为同义词过滤模块结构图。
具体实施方式
下面结合附图,对本发明提出的基于预训练模型的句子复述生成***进行详细说明。
本发明所述的一种基于预训练模型的句子复述生成***,包括依次连接的复述生成模块、流利度过滤模块和语义过滤模块;所述的复述生成模块用于生成复述;所述的流利度过滤模块用于计算复述的流利度,过滤得到流利度不低于阈值的复述;所述的语义过滤模块用于计算复述与原句的语义相似度,过滤得到语义相似度不低于阈值的复述。
其中,所述复述生成模块包括翻译生成模块、模型生成模块和同义词替换生成模块;所述的翻译生成模块通过直译生成和回译生成两种方式生成复述,所述的模型生成模块通过语言模型生成复述,所述的同义词替换生成模块通过替换原句中的同义词生成复述。
其中,所述的直译生成方式通过将输入句子翻译为文言文、粤语和繁体中文生成复述,所述的回译生成方式通过将输入的中文句子翻译为英语句子,再将英语句子翻译为中文生成复述;所述的回译生成方法还利用多语言翻译模型,将输入句子翻译为德语句子,再将德语句子翻译为中文生成复述。
其中,所述的模型生成模块包括直接训练中文复述生成模型来生成复述和利用英文复述生成模型间接生成中文复述两种方式,所述利用英文复述生成模型间接生成中文复述的方式是将中文句子翻译成英文,输入英文复述生成模型生成英文复述,再将英文复述翻译成中文生成中文复述。
其中,同义词替换生成模块包括分词、命名实体识别、可替换词过滤、同义词查找、同义词过滤、同义词替换模块所述的同义词替换生成模块包括分词子模块、命名实体识别子模块、可替换词过滤子模块、同义词查找子模块、同义词过滤子模块、同义词替换子模块。
其中,同义词替换生成模块中可替换词过滤模块将作品名(nw)、其他专名(nz)、标点符号(w)、人名(PER)、地名(LOC)、机构名(ORG)和时间(TIME)这些实体类型组成的集合作为不可替换实体类型集合,类型属于该集合的实体将不做同义词替换。
其中,同义词替换生成模块中同义词过滤模块引入在大规模语料上预训练的掩码语言模型(Masked Language Model)来过滤同义词,具体包含以下步骤:
S1:将句子中的原词替换为与同义词长度相同的掩码,得到掩码句子;
S2:将掩码句子输入预训练掩码语言模型,计算掩码位置对应的输出生成同义词对应字的概率,用同义词各字生成概率的几何平均数作为置信度;
S3:设置置信度阈值;
S4:滤除置信度小于阈值的同义词,得到适用于当前语境的同义词。
其中,流利度过滤模块利用预训练的掩码语言模型计算流利度,设置流利度阈值,过滤得到流利的复述。流利度计算方法为逐个掩盖句子中的每个字,计算模型输出的掩码位置生成原字的概率。基于得到的生成概率计算困惑度,再用指数函数将1减去困惑度得到的值映射到区间[0,1]。流利度计算方法用公式表示为:
其中flu为流利度,N为句子长度,i为第i个位置,p为生成概率,s为句子,为句子的第i个字。
其中,语义过滤模块用Sentence Bert模型对句子进行编码得到句向量,通过句向量间的余弦值来判断语义是否相同。设置余弦值阈值,当且仅当句向量间的余弦值大于等于阈值时,认为语义相同。
语义过滤模块训练独立的、与句子生成无关的Sentence Bert模型来判断语义。构造包含强负样本和弱负样本的数据集训练模型,并将Sentence Bert模型训练时三元目标函数改进为如下形式:
其中为改进的损失值,表示句子a的句向量,表示句子p的句向量,表示句子n的句向量;句子p是a的正例,即p与a的语义相同。句子n是a的负例,即n与a的语义不同;表示距离度量,表示设定的边际值。
实施例1
本实施例1涉及到的预训练模型名字,使用的是huggingface模型库中模型的命名。可以通过huggingface的transformers框架根据模型名字加载模型。例如模型Vamsi/T5_Paraphrase_Paws,可以通过以下方式加载:
from transformers import AutoTokenizer, AutoModelForSeq2SeqLM
tokenizer = AutoTokenizer.from_pretrained("Vamsi/T5_Paraphrase_Paws")
model = AutoModelForSeq2SeqLM.from_pretrained("Vamsi/T5_Paraphrase_Paws")
涉及到将句子输入模型或由模型生成句子的表述时,例如“将掩码句子输入预训练掩码语言模型”、“计算自编码模型输出的掩码位置生成原字的概率”和“将英语句子输入Vamsi/T5_Paraphrase_Paws模型生成英语复述”,这是为了方便表达,避免赘述的简写。省略了前后加入分隔符([CLS]、[SEP])、将字符映射成整数索引、补零填充长度(pad)、生成模型输入所需的字类型索引列表(token type id)和注意力掩码列表(attention mask)或者将整数索引映射成字符的步骤。省略的这些步骤对于相关从业人员来说不言自明,无需赘述。
基于预训练模型的句子复述生成***,输入简体中文普通话句子,输出语义相同措辞不同的句子,实施步骤包括:
1.搭建百度翻译接口调用模块,实现将中文普通话翻译为文言文、粤语和繁体中文功能;
2.基于Helsinki-NLP/opus-mt-zh-en模型实现中文翻译为英语功能,基于Helsinki-NLP/opus-mt-en-zh模型实现英语翻译为中文功能;
3.基于Helsinki-NLP/opus-mt-zh-de模型实现中文翻译为德语功能,基于Helsinki-NLP/opus-mt-de-ZH模型实现德语翻译为中文的普通话、粤语、地方方言功能;
4.通过爬虫和人工标注的方法收集语义相同的句子对,作为中文复述生成数据集。基于thu-coai/CDial-GPT_LCCC-large模型微调训练中文复述生成模型;
5.基于Vamsi/T5_Paraphrase_Paws模型实现英语复述生成功能;结合步骤2中实现的翻译功能,实现将中文句子翻译为英语句子,将英语句子输入Vamsi/T5_Paraphrase_Paws模型生成英语复述,再将英语复述翻译为中文的功能;
6.利用百度LAC(Lexical Analysis of Chinese)工具对句子进行分词和命名实体识别,对实体类型属于作品名(nw)、其他专名(nz)、标点符号(w)、人名(PER)、地名(LOC)、机构名(ORG)和时间(TIME)的实体,标记为不可替换实体,否则标记为可替换实体;
7.基于哈工大信息检索研究室同义词词林扩展版实现同义词查找功能,对于标记为可替换词的实体词,查找出其同义词;
8.基于chinese-roberta-wwm-ext模型实现掩码位置生成字的概率计算功能,输入带掩码的句子,输出掩码位置处生成同义词对应字的概率并计算几何平均数作为置信度。设置置信度阈值为0.0015,实现滤除置信度低于阈值的同义词功能;
9.实现将句子中原词替换成同义词的功能;
10.基于chinese-roberta-wwm-ext模型实现计算流利度功能;设置流利度阈值为,实现滤除流利度低于阈值的复述的功能;
11.利用第4步收集的复述生成数据,对于每一个句子,构造一个强负样本和弱负样本,生成新的数据集。基于新的数据集,利用改进的三元目标函数训练Sentence-BERT模型;
12.基于第11步训练的模型对句子进行编码,计算原句与复述句向量余弦值。设置余弦值阈值为0.85,实现滤除与原句子余弦值低于阈值的复述的功能。
本发明提出的基于预训练模型的句子复述生成***如图1所示,包括复述生成模块、流利度过滤模块和语义过滤模块。其中:复述生成模块用于生成复述;流利度过滤模块计算复述的流利度,过滤得到流利度不低于阈值的复述;语义过滤模块计算复述与原句的语义相似度,过滤得到语义相似度不低于阈值的复述。
复述生成模块结构如图2所示,包括翻译生成、模型生成和同义词替换生成模块。
翻译生成模块如图3所示,包括直译生成模块和回译生成模块。在本实施例中,输入为简体中文普通话。直译生成是指只经过一次翻译进行复述生成,回译生成是指先将中文翻译为其他语言,再将其他语言翻译回中文的复述生成。
直译生成模块如图4所示,翻译的目标语言包括文言文、粤语和繁体中文。利用开源模型raynardj/wenyanwen-chinese-translate-to-ancient将输入翻译为文言文。利用百度通用翻译API将输入翻译为粤语和繁体中文。
回译生成模块如图5所示,利用Helsinki-NLP/opus-mt-zh-en模型将中文翻译为英文,再利用Helsinki-NLP/opus-mt-en-zh模型将英文翻译为中文以生成回复。多语言翻译模型能将输入语言翻译为多种目标语言,利用这个特点将多语言翻译模型用于复述生成,可以生成丰富的复述并提高生成效率。本实施例采用Helsinki-NLP/opus-mt-de-ZH模型。它是一个可以将德语翻译为普通话、粤语、地方方言的多语言翻译模型。为了利用Helsinki-NLP/opus-mt-de-ZH模型,先要用Helsinki-NLP/opus-mt-zh-de模型将中文翻译为德语,再用Helsinki-NLP/opus-mt-de-ZH将德语翻译为普通话、粤语、地方方言等中文生成复述。
模型生成模块如图6所示,包括直接训练中文复述生成模型来生成复述和利用英文复述生成模型间接生成中文复述两种方法。图6中的GPT模块是基于thu-coai/CDial-GPT_LCCC-large模型微调训练得到的中文复述生成模型。thu-coai/CDial-GPT_LCCC-large是开源的中文语言模型,经LCCC-large数据集训练,能够生成高质量的对话回复。通过网络爬取和人工标注的方法收集语义相同措辞不同的句子对,作为中文复述数据集。用中文复述数据集微调thu-coai/CDial-GPT_LCCC-large模型得到中文复述生成模型。
目前,英文复述生成的研究比中文复述生成更深,已经有很多开源的模型和框架能够生成高质量的复述。这些开源模型和框架虽然是英文复述生成的资源,但在中文复生成任务中依然很有价值。要将这些资源利用到中文复述生成中,最自然的想法是将中文句子翻译成英文,输入英文复述生成模型生成英文复述,再将英文复述翻译成中文生成中文复述。本实施例选取Vamsi/T5_Paraphrase_Paws模型,用翻译生成模块中的翻译方法将中文翻译为英文,将英文句子输入Vamsi/T5_Paraphrase_Paws模型生成英文复述,再将英文复述用翻译生成模块中的翻译方法将英文翻译为中文生成中文复述。
同义词替换模块如图7所示,包括分词、命名实体识别、可替换词过滤、同义词查找、同义词过滤、同义词替换模块。同意词替换模块生成复述的思想是将句子中的词替换成同义词,这样可以保持句子语义不变的情况下改变句子措辞,生成复述。但是词的词意与所在的句子上下文有关,有些情况下做同义词替换会改变句子语义。例如“联想是什么时候上市的”这句话,对于“联想”一词,它的同义词有“感想”、 “畅想”、 “构想”、“遐想”等。句子中的“联想”是机构名,将“联想”替换成同义词会改变句子语义。为了避免这种情况,需要统计一个不可替换实体类型集合,属于不可替换实体类型集合的实体词将不做同义词替换。用百度LAC(Lexical Analysis of Chinese)工具对句子进行分词和命名实体识别。将作品名(nw)、其他专名(nz)、标点符号(w)、人名(PER)、地名(LOC)、机构名(ORG)和时间(TIME)这些实体类型组成的集合作为不可替换实体类型集合,类型属于该集合的实体将不做同义词替换。
对于可替换的词,通过哈工大信息检索研究室同义词词林扩展版寻找同义词。哈工大信息检索研究室同义词词林扩展版是哈工大信息检索研究室对《同义词词林》进行扩充后的版本,包含77343条词语。扩展版词林文本中,同一行的词语要么词义相同,要么词义有很强的相关性。因此可以基于扩展版词林来查找同义词。给定某个词,可以通过查询该词的行数,将这行的其他词作为给定词的同义词。例如 “大豆”一词,可以查询到同义词“毛豆”和“黄豆”。
然而对于多义词而言,它表达的意思与所在上下文有关。从词林中查询到的同义词有些会不适用于当前语境。例如“几”和“或多或少”都可以是“多少”的同义词,在“图中有多少人”这句话中“或多或少”不能作为“多少”的同义词;在“他多少有点生气”这句话中,“几”不能作为“多少”的同义词。因此需要对查询到的同义词进行过滤,得到适用于当前语境的同义词。与不适用于当前语境的同义词相比,将适用于当前语境的同义词替换原词后,句子依然通顺流利。从统计的角度看,与不适用于当前语境的同义词相比,适用于当前语境的同义词在当前语境中应该有更高的出现概率。基于这个思想,引入在大规模语料上预训练的掩码语言模型(Masked Language Model)来过滤同义词。具体的,将句子中的原词替换为与同义词长度相同的掩码,得到掩码句子。将掩码句子输入预训练掩码语言模型,计算掩码位置对应的输出生成同义词对应字的概率,用同义词各字生成概率的几何平均数作为置信度,用公式表示为:
其中conf为置信度,n为掩码长度,p为生成概率,i为第i个掩码位置,w为同义词,为同义词的第i个字。
有了同义词置信度后,设置置信度阈值。滤除置信度小于阈值的同义词,得到适用于当前语境的同义词。以“图中有多少人”为例,将句子中“多少”替换成与同义词长度相同的掩码得到掩码句子。对于同义词“几”,得到掩码句子“图中有[MASK]人”,对于同义词“或多或少”,得到掩码句子“图中有[MASK][MASK][MASK][MASK]人”。将掩码句子输入预训练掩码语言模型,本实施例选取chinese-roberta-wwm-ext模型。计算掩码位置处对应的输出生成同义词的概率,如图8所示。对于掩码句子“图中有[MASK]人”,掩码位置生成“几”的概率为,“几”的置信度为。对于掩码句子“图中有[MASK][MASK][MASK][MASK]人”,掩码位置分别生成“或多或少”的概率为。“或多或少”的置信度为
。
设置阈值conft=0.0015,,因此保留“几”,滤除“或多或少”。
得到适用于语境的同义词后,同义词替换模块用同义词替换原词生成复述。例如,对于句子“图中有多少人”,得到“图”的同义词“画”,“多少”的同义词“几”、“几多”。同义词替换模块将生成6条复述:图中有多少人、图中有几人、图中有几多人、画中有多少人、画中有几人、画中有几多人。
复述生成模块通过翻译生成、模型生成和同义词替换生成复述。对这些复述进行去重后输入流利度过滤模块,过滤出流利通顺的复述。与同义词过滤模块思路相似,利用预训练的掩码语言模型计算流利度。具体的,逐个掩盖句子中的每个字,计算模型输出的掩码位置生成原字的概率。基于得到的生成概率计算困惑度,再用指数函数将1减去困惑度得到的值映射到区间[0,1]。流利度计算方法用公式表示为:
其中flu为流利度,N为句子长度,i为第i个位置,p为生成概率,s为句子,为句子的第i个字。
本实施例选取自编码模型chinese-roberta-wwm-ext搭建流利度过滤模块。以“图中有多少人”为例,将“[MASK]中有多少人”输入模型,得到模型输出在[MASK]位置生成“图”的概率为。再将“图[MASK]有多少人”输入模型,得到模型输出在[MASK]位置生成“中”的概率为。依此类推,得到概率,。计算出流利度。对于“人中有多少图”,分别计算出概率,,,计算得到流利度。设置流利度阈值为。示例句子的流利度有,“图中有多少人”能通过流利度过滤,“人中有多少图”将被滤除。
过滤得到流利的复述后,还需要保证复述与原句语义相同。有方法通过生成模型生成复述,再利用生成模型得到原句和复述的句向量,通过句向量间的余弦值来判断复述与原句的语义是否相同。这种方法不能把生成和评估任务区分开。生成模型基于原句生成了复述就表明生成模型认为该复述的语义与原句相同,再用生成模型得到句向量去判断原句与复述语义,容易趋向于判断语义相同。为了避免生成过程影响评估结果,语义过滤模块应该训练独立的、与句子生成无关的模型来判断语义。
采用Sentence Bert结构,构造数据集来训练模型。利用训练中文复述模型时构造的数据集。该数据集中的每一对句子都是正样本。对于每个句子,从数据集中随机采样一个句子与其配对作为负样本。随机采样配对形成的负样本绝大部分句子间的语义和用词都相差很大,称这种样本为强负样本。为了更好的训练模型,对于每个句子,再从数据集中选出与它用词类似但语义不同的句子配对作为负样本,称为弱负样本。选取方法为先提取句子的tf-idf向量,根据句子间tf-idf向量的余弦值召回最相似的10条句子,人工从这10条句子中选出与当前句子语义不同的一条句子。如果召回的10条句子中没有语义不同的句子,则继续召回余弦值靠后的10条句子进行筛选,直到选出语义不同的句子为止。构造出新的数据集后,开始训练模型。Sentence Bert模型训练时包括分类目标函数(ClassificationObjective Function)、回归目标函数(Regression Objective Function)和三元目标函数(Triplet Objective Function)。常规的三元目标函数是要最小化如下损失函数:。其中loss为损失值,表示句子a的句向量,表示句子p的句向量,表示句子n的句向量。句子p是a的正例,即p与a的语义相同。句子n是a的负例,即n与a的语义不同。表示距离度量,表示设定的边际值。
损失函数表达式中的设定使至少比离更近的距离。该损失函数能拉开和的距离,但不足以拉开和的距离。例如当和的距离为,且位于和正中间时,,训练时模型将不会再优化。而当输入句子p,想要查找与p语义相同的句子时,句子a和n在句向量空间离p一样近。对于句子p而言,不能根据句向量间的距离判断a和n哪句与自己语义相同。作为句子a的正例,p有着与a相同的语义。可以认为句子p与a是等价的,互换p和a应该不会也不能影响损失函数的计算结果。为了体现这种思想,将三元目标函数改进为如下形式:。其中为改进的损失值,其余各字符含义与原三元目标函数相同。当和的距离为,且位于和正中间时,,训练时模型会继续优化。
改进的三元目标函数表达式具有句子a和p的轮换对称性,并且使和的距离比和、和的距离至少小。改进的三元目标函数使语义相同的句子在句向量空间更紧密,语义不同的句子更远离。
利用分类目标函数、回归目标函数和改进的三元目标函数训练得到SentenceBert模型,设置余弦值阈值,当且仅当两个句子间句向量的余弦值大于等于阈值时,认为两句语义相同。以原句“图中有多少人”和复述“图中有几人”、“图中有多少树”为例。原句与“图中有几人”的句向量余弦值为0.86368716,与“图中有多少树”的句向量余弦值为0.14648251。设置余弦值阈值为0.85,过滤得到“图中有几人”为原句的复述,滤除“图中有多少树”。
将上述各个模块组合搭建成本实施例的复述生成***,***生成的复述示例如下表所示。
表1 本实施例复述生成示例
以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明保护的范围之内。
Claims (8)
1.一种基于预训练模型的句子复述生成***,其特征在于:包括依次连接的复述生成模块、流利度过滤模块和语义过滤模块;所述的复述生成模块用于生成复述;所述的流利度过滤模块用于计算复述的流利度,过滤得到流利度不低于阈值的复述;所述的语义过滤模块用于计算复述与原句的语义相似度,过滤得到语义相似度不低于阈值的复述;
所述的流利度过滤模块利用预训练的掩码语言模型计算流利度,设置流利度阈值,过滤得到流利的复述;流利度计算方法为逐个掩盖句子中的每个字,计算模型输出的掩码位置生成原字的概率;基于得到的生成概率计算困惑度,再用指数函数将1减去困惑度得到的值映射到区间[0,1];流利度计算方法用公式表示为:
其中flu为流利度,N为句子长度,i为第i个位置,p为生成概率,s为句子, 为句子的第i个字;
所述的语义过滤模块训练独立的、与句子生成无关的Sentence Bert模型来判断语义,构造包含强负样本和弱负样本的数据集训练模型,并将Sentence Bert模型训练时三元目标函数改进为如下形式:
其中为改进的损失值, 表示句子a的句向量, 表示句子p的句向量, 表示句子n的句向量;句子p是a的正例,即p与a的语义相同;句子n是a的负例,即n与a的语义不同; 表示距离度量, 表示设定的边际值。
2.根据权利要求1所述的一种基于预训练模型的句子复述生成***,其特征在于:所述复述生成模块包括翻译生成模块、模型生成模块和同义词替换生成模块;所述的翻译生成模块通过直译生成方式和回译生成方式两种方式生成复述,所述的模型生成模块通过语言模型生成复述,所述的同义词替换生成模块通过替换原句中的同义词生成复述。
3.根据权利要求2所述的一种基于预训练模型的句子复述生成***,其特征在于:所述的直译生成方式通过将输入句子翻译为中文生成复述,所述的回译生成方式通过利用多语言翻译模型将输入的中文句子翻译为外语句子,再将外语句子翻译为中文生成复述。
4.根据权利要求2所述的一种基于预训练模型的句子复述生成***,其特征在于:所述的模型生成模块包括直接训练中文复述生成模型来生成复述和利用英文复述生成模型间接生成中文复述两种方式,所述利用英文复述生成模型间接生成中文复述的方式是将中文句子翻译成英文,输入英文复述生成模型生成英文复述,再将英文复述翻译成中文生成中文复述。
5.根据权利要求2所述的一种基于预训练模型的句子复述生成***,其特征在于:所述的同义词替换生成模块包括分词子模块、命名实体识别子模块、可替换词过滤子模块、同义词查找子模块、同义词过滤子模块、同义词替换子模块。
6.根据权利要求5所述的一种基于预训练模型的句子复述生成***,其特征在于:所述的可替换词过滤子模块将作品名、其他专名、标点符号、人名、地名、机构名和时间组成的集合作为不可替换实体类型集合,类型属于该集合的实体不做同义词替换。
7.根据权利要求5所述的一种基于预训练模型的句子复述生成***,其特征在于:所述的同义词过滤子模块引入在大规模语料上预训练的掩码语言模型来过滤同义词,具体包含以下步骤:
S1:将句子中的原词替换为与同义词长度相同的掩码,得到掩码句子;
S2:将掩码句子输入预训练掩码语言模型,计算掩码位置对应的输出生成同义词对应字的概率,用同义词各字生成概率的几何平均数作为置信度;
S3:设置置信度阈值;
S4:滤除置信度小于阈值的同义词,得到适用于当前语境的同义词。
8.根据权利要求1所述的一种基于预训练模型的句子复述生成***,其特征在于:所述的语义过滤模块用Sentence Bert模型对句子进行编码得到句向量,通过句向量间的余弦值判断语义是否相同;设置余弦值阈值,当且仅当句向量间的余弦值大于等于阈值时,认为语义相同。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211245822.7A CN115329784B (zh) | 2022-10-12 | 2022-10-12 | 基于预训练模型的句子复述生成*** |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211245822.7A CN115329784B (zh) | 2022-10-12 | 2022-10-12 | 基于预训练模型的句子复述生成*** |
Publications (2)
Publication Number | Publication Date |
---|---|
CN115329784A CN115329784A (zh) | 2022-11-11 |
CN115329784B true CN115329784B (zh) | 2023-04-07 |
Family
ID=83915134
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202211245822.7A Active CN115329784B (zh) | 2022-10-12 | 2022-10-12 | 基于预训练模型的句子复述生成*** |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN115329784B (zh) |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102455786A (zh) * | 2010-10-25 | 2012-05-16 | 三星电子(中国)研发中心 | 一种对中文句子输入法的优化***及方法 |
CN109558597A (zh) * | 2018-12-17 | 2019-04-02 | 北京百度网讯科技有限公司 | 文本翻译方法及装置、设备及存储介质 |
CN113590786A (zh) * | 2021-07-28 | 2021-11-02 | 平安科技(深圳)有限公司 | 一种数据预测方法、装置、设备及存储介质 |
CN114417825A (zh) * | 2022-01-19 | 2022-04-29 | 上海一者信息科技有限公司 | 一种融合词典和上下文信息的英文同义词推荐方法 |
Family Cites Families (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20070043553A1 (en) * | 2005-08-16 | 2007-02-22 | Microsoft Corporation | Machine translation models incorporating filtered training data |
CN102650987A (zh) * | 2011-02-25 | 2012-08-29 | 北京百度网讯科技有限公司 | 一种基于源语言复述资源的机器翻译方法及装置 |
CN110555203B (zh) * | 2018-05-31 | 2023-05-30 | 北京百度网讯科技有限公司 | 文本复述方法、装置、服务器及存储介质 |
CN110543639B (zh) * | 2019-09-12 | 2023-06-02 | 扬州大学 | 一种基于预训练Transformer语言模型的英文句子简化算法 |
CN111027331B (zh) * | 2019-12-05 | 2022-04-05 | 百度在线网络技术(北京)有限公司 | 用于评估翻译质量的方法和装置 |
CN111814451A (zh) * | 2020-05-21 | 2020-10-23 | 北京嘀嘀无限科技发展有限公司 | 文本处理方法、装置、设备和存储介质 |
CN113553824A (zh) * | 2021-07-07 | 2021-10-26 | 临沂中科好孕智能技术有限公司 | 一种句子向量模型训练方法 |
CN113971394A (zh) * | 2021-10-26 | 2022-01-25 | 上海交通大学 | 文本复述改写*** |
CN114416984A (zh) * | 2022-01-12 | 2022-04-29 | 平安科技(深圳)有限公司 | 基于人工智能的文本分类方法、装置、设备及存储介质 |
-
2022
- 2022-10-12 CN CN202211245822.7A patent/CN115329784B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102455786A (zh) * | 2010-10-25 | 2012-05-16 | 三星电子(中国)研发中心 | 一种对中文句子输入法的优化***及方法 |
CN109558597A (zh) * | 2018-12-17 | 2019-04-02 | 北京百度网讯科技有限公司 | 文本翻译方法及装置、设备及存储介质 |
CN113590786A (zh) * | 2021-07-28 | 2021-11-02 | 平安科技(深圳)有限公司 | 一种数据预测方法、装置、设备及存储介质 |
CN114417825A (zh) * | 2022-01-19 | 2022-04-29 | 上海一者信息科技有限公司 | 一种融合词典和上下文信息的英文同义词推荐方法 |
Non-Patent Citations (1)
Title |
---|
基于句子级BLEU指标挑选数据的半监督神经机器翻译;叶绍林等;《模式识别与人工智能》;20171015(第10期);全文 * |
Also Published As
Publication number | Publication date |
---|---|
CN115329784A (zh) | 2022-11-11 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109359294B (zh) | 一种基于神经机器翻译的古汉语翻译方法 | |
WO2022057116A1 (zh) | 一种基于Transformer深度学习模型的多语种地名词根汉译方法 | |
CN110209818B (zh) | 一种面向语义敏感词句的分析方法 | |
Patel et al. | ES2ISL: an advancement in speech to sign language translation using 3D avatar animator | |
Bertaglia et al. | Exploring word embeddings for unsupervised textual user-generated content normalization | |
Dien et al. | POS-tagger for English-Vietnamese bilingual corpus | |
Ren et al. | Detecting the scope of negation and speculation in biomedical texts by using recursive neural network | |
Sun et al. | VCWE: visual character-enhanced word embeddings | |
CN111339772B (zh) | 俄语文本情感分析方法、电子设备和存储介质 | |
CN109948144A (zh) | 一种基于课堂教学情境的教师话语智能处理的方法 | |
Tawfik et al. | Morphology-aware word-segmentation in dialectal Arabic adaptation of neural machine translation | |
Liu | Research on the development of computer intelligent proofreading system based on the perspective of English translation application | |
CN115858750A (zh) | 基于自然语言处理的电网技术标准智能问答方法及*** | |
CN108491399A (zh) | 基于语境迭代分析的汉译英机器翻译方法 | |
CN113408307B (zh) | 一种基于翻译模板的神经机器翻译方法 | |
CN117251524A (zh) | 一种基于多策略融合的短文本分类方法 | |
CN115329784B (zh) | 基于预训练模型的句子复述生成*** | |
CN109960782A (zh) | 一种基于深度神经网络的藏文分词方法及装置 | |
CN115310433A (zh) | 一种针对中文文本校对的数据增强方法 | |
Li et al. | New word discovery algorithm based on n-gram for multi-word internal solidification degree and frequency | |
Jafar Tafreshi et al. | A novel approach to conditional random field-based named entity recognition using Persian specific features | |
CN113886521A (zh) | 一种基于相似词汇表的文本关系自动标注方法 | |
CN112085985A (zh) | 一种面向英语考试翻译题目的学生答案自动评分方法 | |
CN110569510A (zh) | 一种对用户请求数据的命名实体识别的方法 | |
Satpathy et al. | Analysis of Learning Approaches for Machine Translation Systems |
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 |