一种基于BERT的汉语句子简化方法与流程

文档序号:23616223发布日期:2021-01-12 10:25阅读:407来源:国知局

本发明涉及中文文本简化领域,特别涉及一种基于bert的汉语句子简化方法。



背景技术:

随着中国对外开放水平的提高,中文在国际上的影响力越来越大,很多外国人都会通过各种渠道学习中文,而中文作为一种象形语言,学习难度很大,同时,词汇量的缺乏很大程度上影响了对学习者对阅读材料的理解程度。在以往的研究中已经被证实,如果学习者理解了文本中90%的词汇,即使面对长而复杂的文本,文本所表达的意思也很容易被理解。另外,文本简化对母语是中文的人也有很大的帮助,特别是对那些文化程度不高,认知或语言障碍的弱势群体。

句子简化中的词汇简化算法目标是用简单词替代句子中的复杂词,因此,替换后的句子可以大大降低对用户的词汇量要求。目前中文领域暂无公开的中文词汇简化方法。在已有的英文文本简化研究中,词汇简化算法的步骤大致可以分为:复杂词识别、候选词生成、候选词排序。词汇简化算法按照候选替代词的产生,大致可以分为三类:第一类是基于词典的简化算法,该类算法主要利用词典产生复杂词的同义词,作为候选替代词;第二类算法基于并行语料的算法,最常用的并行语料是从正常的维基百科和儿童版的英文维基百科中获取,通过匹配算法分别两个不同维基百科中选择句子作为平行句子对,然后,从平行句子对中获取规则,这些规则用来产生复杂词的候选替代词;第三类算法基于词嵌入模型,从词嵌入模型中获取词语的向量表示,利用词语相似度计算方法,寻找复杂词最相似的词语集合作为候选替代词。

然而,前两类算法具有很大的局限性,首先,词典的构造与维护的代价很大,高质量的并行语料提取非常困难,其次,这两类算法对复杂词的覆盖也是有限的。更重要的是,以上三类算法最大的问题还是产生候选词的过程中,只考虑了复杂词本身,忽略了复杂词的上下文,将不可避免的产生很多不适合的候选词,给系统后面的步骤带来很大干扰。



技术实现要素:

本发明的目的是克服现有技术缺陷,提供一种基于bert的汉语句子简化方法,利用采用普通文本进行预训练的transformer语言模型进行句子简化,充分考虑了复杂词的上下文和复杂词本身,可以更好地产生复杂词的候选替代词,从而更好地对句子进行简化。

本发明的目的是这样实现的:一种基于bert的汉语句子简化方法,包括以下步骤:

步骤1)获取公开的语义资源包括现代汉语常用词词表w及对应的词频、预训练的汉语词嵌入模型chinese-word-embedding、公开的义原数据库openhownet;

步骤2)假设需要简化的句子为s,利用分词工具对s进行分词和词性标注,获取s={(w1,pos1),(w2,pos2),…,(wi,posi),…,(wn,posn)},wi表示s中第i个词,posi表示wi对应的词性,n表示s中词的数目,定义i的初值为1;

步骤3)对s中的词语wi(1≤i≤n),根据词性posi进行筛选;如果posi属于名词、动词、形容词和副词的一种,执行步骤4);否则:令i=i+1,继续执行步骤3);

步骤4)对于句子s和复杂词wi,利用公开的预训练transformer语言模型bert,获取k个候选替代词组成的集合csi={c1,c2,…,ck};

步骤5)采用多个特征对集合csi中的候选替代词进行排序,通过对多个排序结果求平均值,选择排名第一的候选替代词cp和排名第二的候选替代词cq,(k≥p,q≥1);

步骤6)对比排名前二的候选替代词(cp,cq)和原有词语wi,确定是否替换原来的词语。

作为本发明的进一步限定,所述步骤1)包括以下步骤:

步骤1.1)利用公开的现代汉语常用词词频表,获取包含的词语集合w及每个词语w∈w对应的词语频率fw;

步骤1.2)利用词嵌入模型word2vector在大规模语料中训练好的汉语词嵌入模型chinese-word-embedding,得到词语集合u及每个词语u∈u对应的向量表示vu,每个向量由300维组成;

步骤1.3)获取公开的对词语进行义原表示的数据库openhownet,得到包含的词语集合t及每个词语t∈t包含的义原树集合semt={s1,s2,…,sm},m表示词语t在openhownet中包含的义原树数目。

作为本发明的进一步限定,所述步骤4)包括以下步骤:

步骤4.1)获取公开的汉语预训练transformer语言模型bert-base-chinese;

步骤4.2)计算复杂词所含字数chnum,当chnum=1或chnum=2,执行步骤4.3)-4.15);当chnum=3,执行步骤4.11)-4.15);当chnum=4,执行步骤4.11)-4.21);

步骤4.3)用一个“[mask]”标签替换原句s中的复杂词wi,记替换后的句子为s’;

步骤4.4)依次连接符号“[cls]”、句子s、符号“[sep]”、句子s’和符号“[sep]”,连接后的序列记为s;

步骤4.5)利用bert中的分词器berttokenizer,对s以字为单位进行分词,分词后的集合称之为t;

步骤4.6)利用berttokenizer将t转化为对应的id特征;

步骤4.7)获取集合t的长度len,定义一个长度为len的数组,所有的值都为1,称之为mask特征;

步骤4.8)定义一个长度为len的数组,其中第一个符号“[sep]”相对应位置之前的内容都赋值为0,剩下的内容都赋值为1,称之为type特征;

步骤4.9)传输id特征、mask特征和type特征给bert的掩码语言模型,获取“[mask]”对应字表中所有字的得分sc,从sc中选择最高得分的m个字,得到集合scs={c1,c2,…,cm};

步骤4.10)将scs添加至集合csi;

步骤4.11)用两个“[mask]”标签替换s中的wi,记替换后的句子为s’;

步骤4.12)重复步骤4.4)-4.8),传输id特征、mask特征和type特征给bert的掩码语言模型,获取当前第一个“[mask]”对应字表中所有字的得分sc1;从sc1中选择高得分的m个字,得到集合scs1={c1,c2,…,cj,…,cm};定义j的初值为1;

步骤4.13)将第一个“[mask]”替换为cj,用替换后的句子代替s’;重复步骤4.4)-4.8),传输id特征、mask特征和type特征给bert,获取下一个“[mask]”对应字表中所有字的得分sc2,选择高得分的m个字,得到集合scs2={d1,d2,…,dk,…,dm};定义k的初值为1;

步骤4.14)将第一个字cj与第二个字dk拼接为一个词,添加至集合csi,k=k+1,重复此步骤直至k=m;

步骤4.15)j=j+1,重复步骤4.13)-4.14),若j=m,跳转至步骤4.22);

步骤4.16)用四个“[mask]”标签替换s中的wi,记替换后的句子为s’;

步骤4.17)重复步骤4.4)-4.8),传输id特征、mask特征和type特征给bert的掩码语言模型,获取当前第一个“[mask]”对应字表中所有字的得分sc1,从sc1中选择高得分的m个字,得到集合scs1={c1,c2,…,cj,…,cm};定义j的初值为1;

步骤4.18)将当前第一个“[mask]”替换为cj,将替换后的句子记为s’;重复步骤4.4)-4.8),传输id特征、mask特征和type特征给bert的掩码语言模型,获取下一个“[mask]”对应字表中所有字的得分sc2,选择最高得分的字,记为d1;

步骤4.19)将当前第一个“[mask]”替换为d1,将替换后的句子记为s’;重复步骤4.4)-4.8),传输id特征、mask特征和type特征给bert的掩码语言模型,获取下一个“[mask]”对应字表中所有字的得分sc3,选择最高得分的字,记为d2;

步骤4.20)将当前第一个“[mask]”替换为d2,将替换后的句子记为s’;重复步骤4.4)-4.8),传输id特征、mask特征和type特征给bert的掩码语言模型,获取下一个“[mask]”对应字表中所有字的得分sc4,选择最高得分的字,记为d3;

步骤4.21)将第一个字cj,第二个字d1,第三个字d2,第四个字d3拼接成四字词idiomj,添加至集合csi,j=j+1,重复步骤4.18)-4.20),直至j=m,继续执行步骤4.22);

步骤4.22)将得到的csi与词表w对比,滤去不在词表w中的词。

作为本发明的进一步限定,所述步骤5)包括以下步骤:

步骤5.1)采用四个特征对每个候选替代词csi进行排序,分别为语言模型特征、词向量相似度、义原相似度和词频;定义变量all_ranks,初值为空集;csi={c1,c2,c3,…,cj,…,ck};令j的初值为1;

步骤5.2)从句子s中选择复杂词wi的前后至多m个词作为上下文,组成新的序列seq=wi-m,…,wi-1,wi,,wi+1,…,wi+m;设序列中包含的字符数为x,那么满足(i-m)≥1和x≥(i+m);

步骤5.3)采用词向量相似度对csi中所有词进行排序,得到rank2,并增加到集合all_ranks;令j的初值为1;

步骤5.4)采用义原相似度对所有的词进行排序,得到rank3,并增加到集合all_ranks;令j的初值为1;

步骤5.5)采用词频特征对csi中所有词进行排序;利用步骤1.1)中获取的词频,获取中csi中所有词的频率f(c1),f(c2),…,f(ck);按词频大小排序,其中最大的值排序第一,依次类推得到rank4,并增加到集合all_ranks;

步骤5.6)利用all_ranks中四个特征的排序,计算csi中每个词的平均排序值:

选择排名最靠前的候选替代词cp和排名第二的候选替代词cq。

作为本发明的进一步限定,所述步骤5.2)包括以下步骤:

步骤5.2.1)用候选替代词cj替代seq中的复杂词wi,组成新的序列seq’=wi-m,…,wi-1,cj,wi+1,…,wi+m;

步骤5.2.2)从前到后依次掩藏seq’的每一个字wl(i-m≤l≤i+m),输入bert并用式(1)计算掩藏后序列的交叉熵损失值;

式(1)中y是原有字的one-hot概率分布,为bert预测的概率分布,n代表模型字表长度;

最后根据式(2)求w’所有字的交叉熵损失值的平均值lossj;

步骤5.2.3)j=j+1,重复执行步骤5.2.1)和5.2.2),直至csi中所有词的计算完毕;

步骤5.2.4)对所有的损失值loss1,loss2,…,lossk排序,得到rank1,其中最小的值排序第一,依次类推。

作为本发明的进一步限定,所述步骤5.3)包括以下步骤:

步骤5.3.1)从词向量模型中,获取cj和wi的向量表示若cj或wi不在词语集合u中,那么cosj=0;

步骤5.3.2)采用余弦相似度计算方法计算的相似度值

式(3)中,g为词向量模型中向量的维数;

步骤5.3.3)j=j+1,重复执行步骤5.3.1)和5.3.2),直到csi中所有词的计算完毕;

步骤5.3.4)对所有的相似度值cos1,cos2,…,cosk排序,得到rank2,其中最大的值排序第一,依次类推。

作为本发明的进一步限定,所述步骤5.4)包括以下步骤:

步骤5.4.1)获得cj和wi的义原树集s1={s11,s12,…,s1i,…,s1m},s2={s21,s22,…,s2j,…,s2n},若cj或wi不在词语集合t中,则simwj(cj,wi)=0;

步骤5.4.2)采用式(2)计算cj和wi的义原相似度:

式(5)中n代表n种不同的关系,即为第k种关系,亦即s1,s2的子节点相似度;βrela≥0,βs≥0,βrela+βs=1;式(6)中depth(s1i)代表s1i中关系k的节点在义原树中的深度,dist(s1i,s2j)代表关系k的两个节点在义原树中的距离;式(7)中sims(s1i,s2j)为义原树根节点相似度;

步骤5.4.3)j=j+1,重复执行步骤5.4.1)和5.4.2),直到csi中所有词的计算完毕;

步骤5.4.4)对所有的义原相似度值simw1,simw2,…,simwk排序,得到rank3,其中最大的值排序第一,依次类推。

作为本发明的进一步限定,所述步骤6)包括以下步骤:

步骤6.1)如果cp不等于复杂词wi,则cp替换句子中原有词语wi,继续执行步骤6.3);否则,向下执行步骤6.2);

步骤6.2)比较wi与排名第二的候选替代词cq的词频;若wi或cq不属于词语集合w,则令相对应的词频为0;如果那么将cq替换句子中原有词语wi;否则,仍然保留原有词语wi;

步骤6.3)令i=i+1,返回步骤3),直至csi中的所有词都处理完毕。

本发明采用以上技术方案,与现有技术相比,有益效果在于:

1.本发明利用基于预训练transformer语言模型bert产生词的候选词,bert是利用海量文本语料库,通过掩码语言模型(maskedlanguagemodeling,mlm)进行训练,mlm通过随机掩藏句子中少部分字并预测掩藏的字,进行优化训练;对于中文词汇简化算法,通过用不同数目的标签掩藏复杂词,利用mlm逐个预测每个标签位上的字,进而将较高概率的字组合连接作为候选替代词。因此,该方法相对已有的算法,不是仅仅利用复杂词本身,而是在原有的句子基础上,产生复杂词的候选替代词,可以更好的获取复杂词的候选替代词,从而克服了传统方法中只针对复杂词本身进行候选词生成产生的缺陷。

2.本发明利用了语言模型特征、词向量相似度、义原相似度和词频四个特征,对候选词进行选择,不仅考虑了候选词和复杂词的相关性、候选词与原有的上下文之间的连贯性,还考虑了候选词的简化程度,从而能够更准确的找到最适合的替代词。

3.本发明首次将义原相似度引入词简化的候选词排序过程中,有效弥补了单一词向量相似度度量语义相似度时可能出现的失效情况。

具体实施方式

一种基于bert的汉语句子简化方法,包括以下步骤:

步骤1)获取公开的以下语义资源包括现代汉语常用词词表w及对应的词频、预训练的汉语词嵌入模型chinese-word-embedding、公开的义原数据库openhownet。

步骤1.1)利用公开的现代汉语常用词词频表,获取包含的词语集合w及每个词语w∈w对应的词语频率fw;fw表示词语w在大语料库中的出现次数;在文本简化领域中,可以用词语的在大语料库中出现的频率度量词语的复杂程度;一般地,词的频率越高,该词越容易理解;因此,词频可以用来从词语w的高相似的词语集合中寻找最容易理解的词。现代汉语常用词词表由中华人民共和国教育部发布,可以从“https://github.com/liangqi/chinese-frequency-word-list/blob/master/xiandaihaiyuchangyongcibiao.txt”获取。

步骤1.2)利用词嵌入模型word2vector在大规模语料中训练好的汉语词嵌入模型chinese-word-embedding,得到词语集合u及每个词语u∈u对应的向量表示vu,每个向量由300维组成,这里word2vector是一种用来获取词的向量表达的算法。具体算法实现可以参考“https://code.google.com/archive/p/word2vec/”。利用该词嵌入模型,可以获取词语w的向量表示vu,其中每个向量是300维;预训练的汉语词嵌入模型可以从“https://drive.google.com/file/d/1ksal4_aog3_6ayu7krm0nk66ugdszdnk/view”获取。

步骤1.3)获取公开的对词语进行义原表示的数据库openhownet,得到包含的词语集合t及每个词语t∈t包含的义原树集合semt={s1,s2,…,sm},m表示词语t在openhownet中包含的义原树数目;openhownet由清华大学自然语言实验室在义原数据库hownet的基础上开发;以往的研究已经表明,义原是最小的语义单元,在openhownet中,每个词语的每个意义都拥有其对应的义原树进行语义表征,公开的openhownet包可以从“https://github.com/thunlp/openhownet”下载。

步骤2)假设需要简化的句子为s,利用分词工具对s进行分词和词性标注,获取s={(w1,pos1),(w2,pos2),…,(wi,posi),…,(wn,posn)},wi表示s中第i个词,posi表示wi对应的词性,n表示s中词的数目,定义i的初值为1;这里的分词与词性标注选择python语言的jieba包。

步骤3)对s中的词语wi(1≤i≤n),根据词性posi进行筛选;如果posi属于名词、动词、形容词和副词的一种,执行步骤4);否则:令i=i+1,继续执行步骤3);这一步的目的是为了过滤出句子中具有实际含义的词,避免对无实际意义的词进行不必要的简化。

步骤4)对于句子s和复杂词wi,利用公开的预训练transformer语言模型bert,获取k个候选替代词组成的集合csi={c1,c2,…,ck};bert是一种预训练的transformer语言模型,该模型的训练方法可以参考devlin等人编写的论文“bert:pre-trainingofdeepbidirectionaltransformersforlanguageunderstanding”,发表时间2018年。

步骤4.1)获取公开的汉语预训练bert模型;这里选用了基于pytorch实现的bert算法与预训练好的“bert-base,chinese”模型,预训练模型可以从“https://huggingface.co/bert-base-chinese”中获取;

步骤4.2)计算复杂词所含字数chnum,当chnum=1或chnum=2,执行步骤4.3)-4.15);当chnum=3,执行步骤4.11)-4.15);当chnum=4,执行步骤4.11)-4.21);这里针对不同字数的复杂词,本发明设计了不同的替代词生成方案;

步骤4.3)用一个“[mask]”标签替换原句s中的复杂词wi,记替换后的句子为s’;“[mask]”符号表示掩藏符号,mlm模型就通过预测该符号,并通过对比预测值与原有词来优化bert模型;

步骤4.4)依次连接符号“[cls]”、句子s、符号“[sep]”、句子s’和符号“[sep]”,连接后的序列记为s;在这里“[cls]”为序列起始标识符,“[sep]”为两句句子之间的分隔符,这里连接两句句子主要有两个优点:一是双句可以保留复杂词自身的语义特征,二是bert采用了下一句预测(nextsentenceprediction)进行优化模型,其更擅长处理双句问题;

步骤4.5)利用bert中的分词器berttokenizer,对s以字为单位进行分词,分词后的集合称之为t;这是制作以下几个特征的预处理步骤;

步骤4.6)利用berttokenizer将t转化为对应的id特征;这里id特征就是将t中的每一个字用“bert-base,chinese”预训练模型字表中该字对应的数字编号替换后组成的序列;

步骤4.7)获取集合t的长度len,定义一个长度为len的数组,所有的值都为1,称之为mask特征;mask特征可以让模型识别有用信息的位置;

步骤4.8)定义一个长度为len的数组,其中第一个符号“[sep]”相对应位置之前的内容都赋值为0,剩下的内容都赋值为1,称之为type特征,type特征用来区分两句句子;

步骤4.9)传输id特征、mask特征和type特征给bert的掩码语言模型,获取“[mask]”对应字表中所有字的得分sc,从sc中选择最高得分的m个字,得到集合scs={c1,c2,…,cm};

步骤4.10)将scs添加至集合csi;

步骤4.11)用两个“[mask]”标签替换s中的wi,记替换后的句子为s’;

步骤4.12)重复步骤4.4)-4.8),传输id特征、mask特征和type特征给bert的掩码语言模型,获取当前第一个“[mask]”对应字表中所有字的得分sc1;从sc1中选择高得分的m个字,得到集合scs1={c1,c2,…,cj,…,cm};定义j的初值为1;

步骤4.13)将第一个“[mask]”替换为cj,用替换后的句子代替s’;重复步骤4.4)-4.8),传输id特征、mask特征和type特征给bert,获取下一个“[mask]”对应字表中所有字的得分sc2,选择高得分的m个字,得到集合scs2={d1,d2,…,dk,…,dm};定义k的初值为1;

步骤4.14)将第一个字cj与第二个字dk拼接为一个词,添加至集合csi,k=k+1,重复此步骤直至k=m;

步骤4.15)j=j+1,重复步骤4.13)-4.14),若j=m,跳转至步骤4.22);

步骤4.16)用四个“[mask]”标签替换s中的wi,记替换后的句子为s’;

步骤4.17)重复步骤4.4)-4.8),传输id特征、mask特征和type特征给bert的掩码语言模型,获取当前第一个“[mask]”对应字表中所有字的得分sc1,从sc1中选择高得分的m个字,得到集合scs1={c1,c2,…,cj,…,cm};定义j的初值为1;

步骤4.18)将当前第一个“[mask]”替换为cj,将替换后的句子记为s’;重复步骤4.4)-4.8),传输id特征、mask特征和type特征给bert的掩码语言模型,获取下一个“[mask]”对应字表中所有字的得分sc2,选择最高得分的字,记为d1;

步骤4.19)将当前第一个“[mask]”替换为d1,将替换后的句子记为s’;重复步骤4.4)-4.8),传输id特征、mask特征和type特征给bert的掩码语言模型,获取下一个“[mask]”对应字表中所有字的得分sc3,选择最高得分的字,记为d2;

步骤4.20)将当前第一个“[mask]”替换为d2,将替换后的句子记为s’;重复步骤4.4)-4.8),传输id特征、mask特征和type特征给bert的掩码语言模型,获取下一个“[mask]”对应字表中所有字的得分sc4,选择最高得分的字,记为d3;

步骤4.21)将第一个字cj,第二个字d1,第三个字d2,第四个字d3拼接成四字词idiomj,添加至集合csi,j=j+1,重复步骤4.18)-4.20),直至j=m,继续执行步骤4.22);

步骤4.22)将得到的csi与词表w对比,滤去不在词表w中的词;过滤是为了剔除不是中文常用词的噪声词。

步骤5)采用多个特征对集合csi中的候选替代词进行排序,通过对多个排序结果求平均值,选择排名第一的候选替代词cp和排名第二的候选替代词cq,(k≥p,q≥1);

步骤5.1)采用四个特征对每个候选替代词csi进行排序,分别为语言模型特征、词向量相似度、义原相似度和词频;定义变量all_ranks,初值为空集;csi={c1,c2,c3,…,cj,…,ck};令j的初值为1;

步骤5.2)从句子s中选择复杂词wi的前后至多m个词作为上下文,组成新的序列seq=wi-m,…,wi-1,wi,,wi+1,…,wi+m;设序列中包含的字符数为x,那么满足(i-m)≥1和x≥(i+m);这里即是从句子中截取一个大小至多为2m的窗口。

步骤5.2.1)用候选替代词cj替代seq中的复杂词wi,组成新的序列seq’=wi-m,…,wi-1,cj,wi+1,…,wi+m;

步骤5.2.2)从前到后依次掩藏seq’的每一个字wl(i-m≤l≤i+m),输入bert并用式(1)计算掩藏后序列的交叉熵损失值;

式(1)中y是原有字的one-hot概率分布,为bert预测的概率分布,n代表模型字表长度;

最后根据式(2)求w’所有字的交叉熵损失值的平均值lossj;这里计算替换后句子的交叉熵总和是为了度量句子被候选词替代后句子的通顺程度;

步骤5.2.3)j=j+1,重复执行步骤5.2.1)和5.2.2),直至csi中所有词的计算完毕;

步骤5.2.4)对所有的损失值loss1,loss2,…,lossk排序,得到rank1,其中最小的值排序第一,依次类推,损失值越小说明句子越通顺,该特征的得分也就越高;

步骤5.3)采用词向量相似度对csi中所有词进行排序,得到rank2,并增加到集合all_ranks;令j的初值为1;

步骤5.3.1)从词向量模型中,获取cj和wi的向量表示若cj或wi不在词语集合u中,那么cosj=0;

步骤5.3.2)采用余弦相似度计算方法计算的相似度值

式(3)中,g为词向量模型中向量的维数;这里余弦相似度通过计算两个词向量的夹角余弦值来评估他们的相似度;

步骤5.3.3)j=j+1,重复执行步骤5.3.1)和5.3.2),直到csi中所有词的计算完毕;

步骤5.3.4)对所有的相似度值cos1,cos2,…,cosk排序,得到rank2,其中最大的值排序第一,依次类推,相似度越高说明词越相关,该特征的得分也就越高;

步骤5.4)采用义原相似度对所有的词进行排序,得到rank3,并增加到集合all_ranks;令j的初值为1;

步骤5.4.1)获得cj和wi的义原树集s1={s11,s12,…,s1i,…,s1m},s2={s21,s22,…,s2j,…,s2n},若cj或wi不在词语集合t中,则simwj(cj,wi)=0;具体来说,该步骤参考了《anapproachofhybridhierarchicalstructureforwordsimilaritycomputingbyhownet》中提出的hownet相似度算法,但略去了其中对于义原的定义相似度(defsimilarity)的考虑;

步骤5.4.2)采用式(2)计算cj和wi的义原相似度:

式(5)中n代表n种不同的关系,即为第k种关系,亦即s1,s2的子节点相似度;βrela≥0,βs≥0,βrela+βs=1;式(6)中depth(s1i)代表s1i中关系k的节点在义原树中的深度,dist(s1i,s2j)代表关系k的两个节点在义原树中的距离;式(7)中sims(s1i,s2j)为义原树根节点相似度;

步骤5.4.3)j=j+1,重复执行步骤5.4.1)和5.4.2),直到csi中所有词的计算完毕;

步骤5.4.4)对所有的义原相似度值simw1,simw2,…,simwk排序,得到rank3,其中最大的值排序第一,依次类推,相似度越高说明词越相关,该特征的得分也就越高;

步骤5.5)采用词频特征对csi中所有词进行排序;利用步骤1.1)中获取的词频,获取中csi中所有词的频率f(c1),f(c2),…,f(ck);按词频大小排序,其中最大的值排序第一,依次类推得到rank4,并增加到集合all_ranks;词频越高说明词出现的越频繁,一般来说就越简单,该特征的得分也就越高;

步骤5.6)利用all_ranks中四个特征的排序,计算csi中每个词的平均排序值:

选择排名最靠前的候选替代词cp和排名第二的候选替代词cq。

步骤6)对比排名前二的候选替代词(cp,cq)和原有词语wi,确定是否替换原来的词语。

步骤6.1)如果cp不等于复杂词wi,则cp替换句子中原有词语wi,继续执行步骤6.3);否则,向下执行步骤6.2);

步骤6.2)比较wi与排名第二的候选替代词cq的词频;若wi或cq不属于词语集合w,则令相对应的词频为0;如果那么将cq替换句子中原有词语wi;否则,仍然保留原有词语wi;

步骤6.3)令i=i+1,返回步骤3),直至csi中的所有词都处理完毕。

综上所述,本发明提出一种基于bert的汉语句子简化方法,该方法无需任何词典和并行简化语料,利用采用普通文本进行预训练的transformer语言模型进行句子简化,充分考虑了复杂词的上下文和复杂词本身,可以更好地产生复杂词的候选替代词,从而更好地对句子进行简化。

本发明并不局限于上述实施例,在本发明公开的技术方案的基础上,本领域的技术人员根据所公开的技术内容,不需要创造性的劳动就可以对其中的一些技术特征作出一些替换和变形,这些替换和变形均在本发明的保护范围内。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1