CN112214989A - 一种基于bert的汉语句子简化方法 - Google Patents
一种基于bert的汉语句子简化方法 Download PDFInfo
- Publication number
- CN112214989A CN112214989A CN202011116726.3A CN202011116726A CN112214989A CN 112214989 A CN112214989 A CN 112214989A CN 202011116726 A CN202011116726 A CN 202011116726A CN 112214989 A CN112214989 A CN 112214989A
- Authority
- CN
- China
- Prior art keywords
- word
- words
- mask
- sentence
- bert
- 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.)
- Withdrawn
Links
- 238000000034 method Methods 0.000 title claims abstract description 25
- 239000013598 vector Substances 0.000 claims abstract description 33
- 238000012549 training Methods 0.000 claims abstract description 14
- 230000011218 segmentation Effects 0.000 claims abstract description 9
- 238000012216 screening Methods 0.000 claims abstract description 4
- 238000004364 calculation method Methods 0.000 claims description 14
- 238000006467 substitution reaction Methods 0.000 claims description 5
- 238000012935 Averaging Methods 0.000 claims description 3
- 230000009191 jumping Effects 0.000 claims description 3
- 230000009467 reduction Effects 0.000 claims description 2
- 238000001914 filtration Methods 0.000 abstract description 3
- 230000007547 defect Effects 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 238000005457 optimization Methods 0.000 description 2
- 230000008569 process Effects 0.000 description 2
- 238000013459 approach Methods 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 230000002457 bidirectional effect Effects 0.000 description 1
- 230000019771 cognition Effects 0.000 description 1
- 208000010877 cognitive disease Diseases 0.000 description 1
- 238000010276 construction Methods 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 238000000605 extraction Methods 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 208000011977 language disease Diseases 0.000 description 1
- 238000012423 maintenance Methods 0.000 description 1
- 239000000463 material Substances 0.000 description 1
- 238000007781 pre-processing Methods 0.000 description 1
- 238000011160 research Methods 0.000 description 1
- 230000009466 transformation Effects 0.000 description 1
- 238000000844 transformation Methods 0.000 description 1
Classifications
-
- 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
- G06F40/211—Syntactic parsing, e.g. based on context-free grammar [CFG] or unification grammars
-
- 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
- G06F40/216—Parsing using statistical methods
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F40/00—Handling natural language data
- G06F40/20—Natural language analysis
- G06F40/279—Recognition of textual entities
- G06F40/284—Lexical analysis, e.g. tokenisation or collocates
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F40/00—Handling natural language data
- G06F40/20—Natural language analysis
- G06F40/279—Recognition of textual entities
- G06F40/289—Phrasal analysis, e.g. finite state techniques or chunking
-
- 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)
- Health & Medical Sciences (AREA)
- Artificial Intelligence (AREA)
- Audiology, Speech & Language Pathology (AREA)
- Computational Linguistics (AREA)
- General Health & Medical Sciences (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Probability & Statistics with Applications (AREA)
- Document Processing Apparatus (AREA)
Abstract
本发明公开了一种基于BERT的汉语句子简化方法,包括以下步骤:步骤1)获取汉语常用词词频表,预训练汉语嵌入模型,义元数据库并获取词语集合,词频,词向量表示与义元表示;步骤2)假设需要简化的句子为s,利用分词工具对s进行分词和词性标注;步骤3)根据词性对内容词进行筛选;步骤4)对句子中的内容词,利用BERT中文模型,获取该词的候选替代词语集合并过滤噪声词;步骤5)利用多个特征,对每个复杂词的候选替代词语集合进行排序;步骤6)确定最终的替代词。本发明没有利用任何标注的平行语料,充分利用预训练语言模型,填补了中文文本简化领域的空白并取得了良好的效果。
Description
技术领域
本发明涉及中文文本简化领域,特别涉及一种基于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)计算掩藏后序列的交叉熵损失值;
最后根据式(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)包括以下步骤:
式(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.3)令i=i+1,返回步骤3),直至CSi中的所有词都处理完毕。
本发明采用以上技术方案,与现有技术相比,有益效果在于:
1.本发明利用基于预训练Transformer语言模型BERT产生词的候选词,BERT是利用海量文本语料库,通过掩码语言模型(Masked Language modeling,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/xiandaihaiyuchangyongc ibiao.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-training of deepbidirectional transformers for language understanding”,发表时间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采用了下一句预测(Next sentence prediction)进行优化模型,其更擅长处理双句问题;
步骤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)计算掩藏后序列的交叉熵损失值;
最后根据式(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;
式(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;具体来说,该步骤参考了《AnApproach of Hybrid Hierarchical Structure for Word Similarity Computing byHowNet》中提出的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.3)令i=i+1,返回步骤3),直至CSi中的所有词都处理完毕。
综上所述,本发明提出一种基于BERT的汉语句子简化方法,该方法无需任何词典和并行简化语料,利用采用普通文本进行预训练的Transformer语言模型进行句子简化,充分考虑了复杂词的上下文和复杂词本身,可以更好地产生复杂词的候选替代词,从而更好地对句子进行简化。
本发明并不局限于上述实施例,在本发明公开的技术方案的基础上,本领域的技术人员根据所公开的技术内容,不需要创造性的劳动就可以对其中的一些技术特征作出一些替换和变形,这些替换和变形均在本发明的保护范围内。
Claims (8)
1.一种基于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,确定是否替换原来的词语。
2.根据权利要求1所述的一种基于BERT的汉语句子简化方法,其特征在于,所述步骤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中包含的义原树数目。
3.根据权利要求1所述的一种基于BERT的汉语句子简化方法,其特征在于,所述步骤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中的词。
4.根据权利要求1或2所述的一种基于BERT的汉语句子简化方法,其特征在于,所述步骤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.根据权利要求4所述的一种基于BERT的汉语句子简化方法,其特征在于,所述步骤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)计算掩藏后序列的交叉熵损失值;
最后根据式(2)求W’所有字的交叉熵损失值的平均值lossj;
步骤5.2.3)j=j+1,重复执行步骤5.2.1)和5.2.2),直至CSi中所有词的计算完毕;
步骤5.2.4)对所有的损失值loss1,loss2,…,lossk排序,得到rank1,其中最小的值排序第一,依次类推。
7.根据权利要求4所述的一种基于BERT的汉语句子简化方法,其特征在于,所述步骤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,其中最大的值排序第一,依次类推。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011116726.3A CN112214989A (zh) | 2020-10-19 | 2020-10-19 | 一种基于bert的汉语句子简化方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011116726.3A CN112214989A (zh) | 2020-10-19 | 2020-10-19 | 一种基于bert的汉语句子简化方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN112214989A true CN112214989A (zh) | 2021-01-12 |
Family
ID=74055749
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202011116726.3A Withdrawn CN112214989A (zh) | 2020-10-19 | 2020-10-19 | 一种基于bert的汉语句子简化方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112214989A (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112990388A (zh) * | 2021-05-17 | 2021-06-18 | 成都数联铭品科技有限公司 | 基于概念词的文本聚类方法 |
CN113177402A (zh) * | 2021-04-26 | 2021-07-27 | 平安科技(深圳)有限公司 | 词语替换方法、装置、电子设备和存储介质 |
CN114117056A (zh) * | 2022-01-29 | 2022-03-01 | 腾讯科技(深圳)有限公司 | 一种训练数据的处理方法、装置以及存储介质 |
-
2020
- 2020-10-19 CN CN202011116726.3A patent/CN112214989A/zh not_active Withdrawn
Cited By (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113177402A (zh) * | 2021-04-26 | 2021-07-27 | 平安科技(深圳)有限公司 | 词语替换方法、装置、电子设备和存储介质 |
WO2022227166A1 (zh) * | 2021-04-26 | 2022-11-03 | 平安科技(深圳)有限公司 | 词语替换方法、装置、电子设备和存储介质 |
CN113177402B (zh) * | 2021-04-26 | 2024-03-01 | 平安科技(深圳)有限公司 | 词语替换方法、装置、电子设备和存储介质 |
CN112990388A (zh) * | 2021-05-17 | 2021-06-18 | 成都数联铭品科技有限公司 | 基于概念词的文本聚类方法 |
CN112990388B (zh) * | 2021-05-17 | 2021-08-24 | 成都数联铭品科技有限公司 | 基于概念词的文本聚类方法 |
CN114117056A (zh) * | 2022-01-29 | 2022-03-01 | 腾讯科技(深圳)有限公司 | 一种训练数据的处理方法、装置以及存储介质 |
CN114117056B (zh) * | 2022-01-29 | 2022-04-08 | 腾讯科技(深圳)有限公司 | 一种训练数据的处理方法、装置以及存储介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110543639B (zh) | 一种基于预训练Transformer语言模型的英文句子简化算法 | |
CN110298037B (zh) | 基于增强注意力机制的卷积神经网络匹配的文本识别方法 | |
CN107967257B (zh) | 一种级联式作文生成方法 | |
CN108287822B (zh) | 一种中文相似问题生成系统与方法 | |
CN108363743B (zh) | 一种智能问题生成方法、装置和计算机可读存储介质 | |
CN108549658B (zh) | 一种基于语法分析树上注意力机制的深度学习视频问答方法及系统 | |
CN106599032B (zh) | 一种结合稀疏编码和结构感知机的文本事件抽取方法 | |
CN109960804B (zh) | 一种题目文本句子向量生成方法及装置 | |
CN111125349A (zh) | 基于词频和语义的图模型文本摘要生成方法 | |
CN112214989A (zh) | 一种基于bert的汉语句子简化方法 | |
CN107870901A (zh) | 从翻译源原文生成相似文的方法、程序、装置以及系统 | |
CN112699216A (zh) | 端到端的语言模型预训练方法、系统、设备及存储介质 | |
KR20200105057A (ko) | 질의 문장 분석을 위한 질의 자질 추출 장치 및 방법 | |
CN112905736A (zh) | 一种基于量子理论的无监督文本情感分析方法 | |
CN114818717A (zh) | 融合词汇和句法信息的中文命名实体识别方法及系统 | |
CN111125333A (zh) | 一种基于表示学习与多层覆盖机制的生成式知识问答方法 | |
CN112784878A (zh) | 一种中文议论文智能批改方法及系统 | |
CN114428850A (zh) | 一种文本检索匹配方法和系统 | |
CN112818106A (zh) | 一种生成式问答的评价方法 | |
CN114254645A (zh) | 一种人工智能辅助写作系统 | |
CN115905487A (zh) | 文档问答方法、系统、电子设备及存储介质 | |
CN116910272B (zh) | 基于预训练模型t5的学术知识图谱补全方法 | |
CN113486143A (zh) | 一种基于多层级文本表示及模型融合的用户画像生成方法 | |
CN115204143B (zh) | 一种基于prompt的文本相似度计算方法及系统 | |
CN112989803A (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 | ||
WW01 | Invention patent application withdrawn after publication |
Application publication date: 20210112 |
|
WW01 | Invention patent application withdrawn after publication |