句子大全

句子大全 > 句子大全

一种自动生成语义相近句子样本的方法与流程

句子大全 2023-09-08 04:10:01
相关推荐

本发明涉及自然语言处理技术领域,尤其涉及一种自动生成语义相近句子样本的方法。

背景技术:

现有技术中,在自然语言的处理过程中,很多处理任务都需要大量语义相近的句子或句式集合,这些语义相近的句子或句式的集合通常需要人工来编写,因此会耗费大量的人力和时间。

随着自动化技术的发展,越来越多的语义相近句子的编写过程可以由自动化的方式实现。目前大批量获得语义相近的句子集合的方式主要有以下几种:

1采用检索式的方式获取大批量的语义相近句子。所谓检索式方式,是指在海量的候选句子中通过一定的检索式找到语义相近的句子集合。这种方法应用的前提首先是需要有海量的候选句子集合,并且在采用检索式查找并生成语义相近句子的过程中对于语义相似度查找模块的性能要求非常高,即语义相似度查找模块的性能决定了采用检索式方式获取的语义相近句子的精确程度。

2采用sequence to sequence的方式获取大批量的语义相近句子。这种方式目前在学术科研领域的研究非常活跃,但是采用这种方式在实际应用中生成的很多句子并不合理,其性能并不是很好,因此缺乏一定的实用性。

技术实现要素:

根据现有技术中存在的上述问题,现提供一种自动生成语义相近句子样本的方法的技术方案,旨在有效地自动生成大批量的语义相近的句子样本,省去了大量的人力工作。

上述技术方案具体包括:

一种自动生成语义相近句子样本的方法,适用于自然语言处理的过程中;其中,预先训练并形成用于处理得到语义相近的词语的词向量模型,以及用于判断生成的所述语义相近句子样本的语义可能性的语言模型,还包括:

步骤S1,获取外部输入的句子样本;

步骤S2,对所述句子样本进行分词处理,以将所述句子样本分解为包括多个依序排列的词语的组合;

步骤S3,采用所述词向量模型,分别得到与所述句子样本中包括的每个所述词语的语义相近的相近词的集合;

步骤S4,分别从与每个所述词语相对应的所述集合中选取一个所述相近词并替换所述词语,以形成关联于所述句子样本的所述语义相近句子样本;

步骤S5,判断所述集合中是否还有尚未被选取的所述相近词:

若有,则返回所述步骤S4;

步骤S6,采用所述语言模型,分别针对每个所述语义相近句子样本生成用于表示所述语义可能性的可能值,并按照所述可能值由高至低对所有所述语义相近句子样本排序;

步骤S7,选取并保留前N个所述语义相近句子样本,以根据被保留的所述语义相近句子样本进行后续处理步骤。

优选的,该自动生成语义相近句子样本的方法,其中,所述句子样本的类型包括:

句子类型,所述句子类型的所述句子样本中包括依序排列的多个所述词语;

句式类型,所述句式类型的所述句子样本中包括依序排列的多个所述词语和多个所述词语的词类标签,或者所述句式类型的所述句子样本中包括依序排列的多个所述词类标签;

所述步骤S1具体包括:

步骤S11,获取外部输入的所述句子样本;

步骤S12,判断所述句子样本的类型:

若所述句子样本为所述句式类型,则转向步骤S13;

若所述句子样本为所述句子类型,则直接转向所述步骤S2;

步骤S13,将所述句子样本中的每个所述词类标签分别替换成对应于所述词类标签的一高频词,以形成完整的所述句子样本,随后转向所述步骤S2。

优选的,该自动生成语义相近句子样本的方法,其中,采用一预设的分词方法预先训练并形成所述词向量模型;

则所述步骤S2中,采用所述预设的分词方法对所述句子样本进行分词处理。

优选的,该自动生成语义相近句子样本的方法,其中,所述步骤S4中,被选取并用于替换的所述相近词与被替换的所述词语之间具有相同的词性。

优选的,该自动生成语义相近句子样本的方法,其中,所述步骤S6中,每个所述语义相近句子样本的所述可能值为用于表示每个所述语义相近句子样本作为一个完整的句子成立的可能性的语义学评分。

优选的,该自动生成语义相近句子样本的方法,其中,所述语义相近句子样本的类型包括:

句子类型,所述句子类型的所述语义相近句子样本中包括依序排列的多个所述词语;

句式类型,所述句式类型的所述语义相近句子样本中包括依序排列的多个所述词语和多个所述词语的词类标签,或者所述句式类型的所述句子样本中包括依序排列的多个所述词类标签;

则所述步骤S7具体包括:

步骤S71,选取并保留前N个所述语义相近句子样本;

步骤S72,判断是否需要输出所述句式类型的所述语义相近句子样本:

若是,则转向步骤S73;

若否,则转向步骤S74;

步骤S73,将所述语义相近句子样本中包括的词语替换成对应的所述词类标签,以形成完整的所述语义相近句子样本,随后进行后续处理步骤;

步骤S74,根据被保留的所述语义相近句子样本进行后续处理步骤。

上述技术方案的有益效果是:提供一种自动生成语义相近句子样本的方法,能够在不需要海量的后续句子集合的情况下自动生成大批量的语义相近的句子样本,省去了大量的人力工作。

附图说明

图1是本发明的较佳的实施例中,一种自动生成语义相近句子样本的方法的总体流程示意图;

图2是本发明的较佳的实施例中,于图1的基础上,获取外部输入的句子样本并进行处理的流程示意图;

图3是本发明的较佳的实施例中,于图1的基础上,选取并保留语义相近句子样本的同时对输出的语义相近句子样本进行处理的流程示意图。

具体实施方式

下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动的前提下所获得的所有其他实施例,都属于本发明保护的范围。

需要说明的是,在不冲突的情况下,本发明中的实施例及实施例中的特征可以相互组合。

下面结合附图和具体实施例对本发明作进一步说明,但不作为本发明的限定。

基于现有技术中存在的上述问题,现提供一种自动生成语义相近句子样本的方法,该方法适用于自然语言处理的过程中。

上述方法中,预先训练并形成用于处理得到语义相近的词语的词向量模型,以及用于判断生成的语义相近句子样本的语义可能性的语言模型。

上述方法具体如图1所示,包括:

步骤S1,获取外部输入的句子样本;

步骤S2,对句子样本进行分词处理,以将句子样本分解为包括多个依序排列的词语的组合;

步骤S3,采用词向量模型,分别得到与句子样本中包括的每个词语的语义相近的相近词的集合;

步骤S4,分别从与每个词语相对应的集合中选取一个相近词并替换词语,以形成关联于句子样本的语义相近句子样本;

步骤S5,判断集合中是否还有尚未被选取的相近词:

若有,则返回步骤S4;

步骤S6,采用语言模型,分别针对每个语义相近句子样本生成用于表示语义可能性的可能值,并按照可能值由高至低对所有语义相近句子样本排序;

步骤S7,选取并保留前N个语义相近句子样本,以根据被保留的语义相近句子样本进行后续处理步骤。

本实施例中,上述词向量模型可以采用一些将词表征为实数值向量的工具形成,例如Word2vec,该工具可以利用深度学习的思想,通过训练把对文本内容的处理简化为K维向量空间中的向量运算,而向量空间上的相似度可以用来表示文本语义上的相似度。上述词向量是指采用神经网络对语言模型进行建模,同时获得一种单词在向量空间上的表示,采用词向量对词语进行处理就能根据词语之间的相似度获得该词语的相近词。

具体地,本实施例中,训练形成上述词向量模型的训练样本可以为大量的文本数据,这些文本数据可以来源于爬取的不同论坛上的文本数据,并且在输入前需要经过分词处理。

在经过上述词向量模型后,输出的应当为用于表示词语的低维度的实数向量,训练语料中每个词都应当对应一个低维度的实数向量。

上述实数向量通常可以表示成[0.792, 0.177, 0.107,0.109, 0.542,...]或类似的形式,维度以50维和100维比较常见。则词与词之间的向量的距离可以用最传统的欧氏距离来衡量,也可以用cos夹角来衡量。用这种方式表示的向量,“麦克”和“话筒”的距离会远远小于“麦克”和“天气”。例如。可以采用计算cos夹角的方式来计算相似度,从而得到指定词语的相近词。计算其他词与指定词的相似度的过程中,相似度较高的即为相近词。

相应地,本实施例中,上述语言模型可以为用来计算一个句子的成句概率的模型,例如表示为PW1,W2,...Wk。利用语言模型,可以确定哪个词序列是句子的可能性更大,或者给定若干个词,可以预测下一个最可能出现的词语。简单说,语言模型用来判断几个词组成的词序列是不是符合人说话的习惯,即该词序列是句子的可能性。在本发明的一个较佳的实施例中,上述语言模型可以采用n gram模型实现。

具体地,在对语言模型进行训练的过程中,输入模型的是经过分词处理的各文本句子,输出的可以为各文本句子中词语搭配组合的概率。

则本实施例中,上述步骤S1中,获取外部输入的句子样本有可能是通过人工输入的,也有可能通过连接外部的句子样本数据库获得。所获取的句子样本可以为纯随机的句子样本,只需要遵循最基本的语义学规则即可,例如符合语义学上构成句子的必要条件,并且是一句通顺的句子即可。

本实施例中,上述步骤S2中,对每个句子样本分别进行分词处理,因此能够把一个句子样本分解成包括多个依序排列的词语的组合。例如对于一个句子样本“我要听周杰伦的青花瓷”,则经过分词后形成的即为“我+要+听+周杰伦+的+青花瓷”,其中需要在后续步骤中关注的应该为具有具体含义的词语,例如名词“周杰伦”和名词“青花瓷”。进一步地,在上述句子样本中的每个词语都具有一对应的词类标签,例如“周杰伦”的词类标签为“歌手”在计算机处理过程中可能以“singer”来表示,“青花瓷”的词类标签为“歌曲”在计算机处理过程中可能以“song”来表示等。本实施例中,上述词类标签也可以被称为该词语的标签。

本实施例中,对句子样本进行分词处理完毕后,根据每个词语采用词向量模型处理得到其对应的相近词的集合。具体地,所谓相近词,是指与该词语的词类一致的语义相近的词语,例如对于“周杰伦”来说,其标签为“歌手”,则根据词向量模型处理得到的对应该标签的相近词可能有“王力宏”、“陶喆”、“陈奕迅”以及“那英”等,则根据词向量模型能够处理得到上述相近词的集合并输出。相应地,若对于“周杰伦”来说其标签为“男歌手”在计算机处理过程中可能以“male Singer”来表示,则对应该标签的相近词可能有“王力宏”、“陶喆”以及“陈奕迅”等。换言之,不同词语对应的标签决定了该词语的相近词的集合。

本实施例中,上述步骤S4中,分别从与每个词语相对应的集合中选取一个相近词并替换词语,以形成关联于句子样本的语义相近句子样本。例如,对应一个句子样本可能存在a个词语,即一个句子样本由a个词语依序排列形成,并且针对每个词语具有一个相近词集合,每个集合内部具有b个语义与该词语最相近的相近词,则一个句子样本可能对应存在ba个语义相近句子样本,即针对一个句子样本存在一个语义相近句子样本的集合,针对多个句子样本就可能存在多个语义相近句子样本的集合,因此能够实现自动生成大批量的语义相近句子样本。

本实施例中,上述步骤S5为对相近词集合的循环选择,即上述步骤S4 S5实现的为针对一批输入的句子样本生成大批量的语义相近句子样本的操作。

本实施例中,在生成语义相近句子样本时,有些语义相近句子样本可能由于单纯相近词的堆砌造成语义上的不通畅,从而不能作为一个正常的句子样本进入后续处理。因此在上述步骤S6中,在生成语义相近句子样本后,需要采用上述预先训练并生成的语言模型对每个语义相近句子样本的语义可能性进行分析,最终可以针对每个语义相近句子样本生成用于表示该句子的语义可能性的可能值,该可能值可以用于表示该句子在语义学上的合理性。随后根据该可能值由高至低对语义相近句子样本进行排列。具体地,对于给定句子S=W1,W2,...,Wk,其中S用于标记句子,Wkk=1,2,3……用于表示该句子中的第k个词语。

则上述句子的可能值可以表示为:PS=PW1,W2,…,Wk~PW1PW2W1…PWkW1,W2,…,Wk 1,上述公式中的“PW1”、“PW2W1”等概率是由上述语言模型训练形成的。因此可以通过语言模型针对每个句子S处理得到其可能值PS,该可能值也可以视为该句子的语义学得分。

最后在上述步骤S7中,选取前N个语义相近句子样本并保留,随后对被保留的语义相近句子样本进行后续处理步骤,舍弃其他未被保留的语义相近句子样本。上述N可以为自然数,并且其取值可以由使用者根据实际情况自由设定。

具体地,针对上述步骤S7,本发明的一个较佳的实施例中,可以针对每个输入的句子样本均保留前N个语义相近句子样本。本发明的另一个实施例中,还可以针对所有形成的语义相近句子样本仅保留前N个。上述选取的对象范围可以由使用者根据需要自行设定。

本发明的较佳的实施例中,上述输入的句子样本的类型包括:

句子类型,句子类型的句子样本中包括依序排列的多个词语;

句式类型,句式类型的句子样本中包括依序排列的多个词语和词类标签,或者仅包括多个依序排列的词类标签;

则上述步骤S1具体如图2所示,包括:

步骤S11,获取外部输入的句子样本;

步骤S12,判断句子样本的类型:

若句子样本为句式类型,则转向步骤S13;

若句子样本为句子类型,则直接转向步骤S2;

步骤S13,将句子样本中的每个词类标签分别替换成对应于词类标签的一高频词,以形成完整的句子样本,随后转向步骤S2。

具体地,本实施例中,上述句子样本的类型可以包括句子类型和句式类型。

所谓句子类型,是指包括依序排列的多个词语的句子,例如“我要听周杰伦的青花瓷”就为一个句子。

所谓句式类型,是指包括依序排列的多个词语和词类标签,或者仅包括依序排列的多个词类标签的句子,例如“我要听‘歌手’的‘歌曲’”就为一个句式,其中“歌手”和“歌曲”均为词类标签。

进一步地,只要在句子样本中出现一个词类标签,该句子样本就为一句式类型的句子样本。例如“我要听周杰伦的‘song’”就为一个句式类型的句子样本。

则本实施例中,对于句子样本无需做任何处理就能进入上述步骤S2中进行后续操作。

而对于句式样本,需要将其中的词类标签替代成对应该标签的词语,以形成一个完整的句子,再送入上述步骤S2中进行后续处理。

具体地,上述步骤S13中,将被判断为句式类型的句子样本中的词类标签替代成该标签中的高频词,以形成完整的句子样本。所谓高频词,是指在由统计数据得到的在一个词类标签下出现次数较多、使用较为频繁的词语,采用这些高频词替代句式类型的句子样本中的相应的词类标签,可以形成一个比较合理且完整的句子样本。

本发明的较佳的实施例中,采用一预设的分词方法预先训练并形成词向量模型;

则上述步骤S2中,采用预设的分词方法对句子样本进行分词处理。

具体地,本实施例中,采用与训练形成上述词向量模型相同的分词方法来对句子样本进行分词处理,能够在后续的处理步骤中减少集外词,因此有助于提升最终的处理效果。

本发明的一个较佳的实施例中,上述预设的分词方法可以采用基于大词典的正向最大匹配思想进行分词的处理方法:从左向右取待切分的句子中的m个字符作为匹配字段,m为大词典中最长词语的词长度;查找大词典进行匹配,如果匹配成功,将匹配成功的字段作为一个词切分出来;若匹配不成功,将匹配字段的最后一个字去掉,剩下的字符串作为新的匹配字段,进行再次匹配,重复上述过程,直至切分出所有词为止。

本发明的另一个较佳的实施例中,上述预设的分词方法可以采用基于大词典的逆向最大匹配思想进行分词的处理方法,具体为:从右向左取待切分的句子的m个字符作为匹配字段,m为大词典中最长词语的词长度;查找大词典进行匹配,如果匹配成功,将匹配成功的字段作为一个词切分出来;若匹配不成功,将匹配字段的最前一个字去掉,剩下的字符串作为新的匹配字段,进行再次匹配,重复上述过程,直至切分出所有词为止。

本发明的另一个较佳的实施例中,上述预设的分词方法还可以采用基于大词典的双向最大匹配思想进行分词的处理方法,即结合上述正向最大匹配思想和逆向最大匹配思想进行分词处理的方法。具体为:

若正向最大匹配和逆向最大匹配的结果相同,取任意一个的结果并输出;

若正向最大匹配和逆向最大匹配的结果不同,首先选择分词后的词数较少的那个结果;如果词数相同,选择逆向最大匹配的结果。

上述实施例中所谓的“大词典”是指通过收集整理后形成的一个收录大量词语的词典数据库。

本发明的其他实施例中,其他分词方法也可以适用于本发明中,并不影响本发明的保护范围。

本发明的较佳的实施例中,上述步骤S4中,被选取并用于替换的相近词与被替换的词语之间具有相同的词性,例如同样为名词或者同样为动词,因此可以保证替换操作的精准性,避免经过替换后的句子逻辑不合理。

本发明的较佳的实施例中,上述语义相近句子样本的类型包括:

句子类型,句子类型的语义相近句子样本中包括依序排列的多个词语;

句式类型,句式类型的语义相近句子样本中包括依序排列的多个词语和词类标签,或者仅包括多个依序排列的词类标签;

则如图3所示,上述步骤S7具体包括:

步骤S71,选取并保留前N个语义相近句子样本;

步骤S72,判断是否需要输出句式类型的语义相近句子样本:

若是,则转向步骤S73;

若否,则转向步骤S74;

步骤S73,将语义相近句子样本中包括的词语替换成对应的词类标签,以形成完整的语义相近句子样本,随后进行后续处理步骤;

步骤S74,根据被保留的语义相近句子样本进行后续处理步骤。

具体地,类似上文中所述,上述语义相近句子样本同样包括句子类型和句式类型。则在本实施例中,使用者可以自行设定最终输出的语义相近句子样本为句子类型还是句式类型:

若使用者设定最终输出的语义相近句子样本为句子类型,则直接输出通过语言模型筛选的语义相近句子样本并进行后续处理步骤。

若使用者设定最终输出的语义相近句子样本为句式类型,则需要将语义相近句子样本中包括的词语替换成对应的词类标签,以形成完整的句式类型的语义相近句子样本,随后再进行后续处理步骤。

本发明的较佳的实施例中,上文中所述的后续处理步骤,可以包括根据自动生成的大批量的语义相近句子样本进行语义开放平台的开发,或者进行语义相似度的计算等。

具体地,本发明的较佳的实施例中,语义开放平台的功能在于将语义的接口开放给其他开发者,帮助开发者完成具体项目的开发。当用户输入一个句子或者句式时,采用上文中所述的方法可以自动生成大量相似的句子或者句式,从而增加语义泛化能力,增强语义理解能力,并且降低了大量的人工操作,节省时间,提升效率。

相应地,本发明的较佳的实施例中,在语义相似度的计算过程中,需要使用到大量的语义相近的句子或者句式,则使用上文中所述的方法能够大批量地生成用于语义相似度计算的训练过程的句子样本。

本发明的较佳的实施例中,上述步骤S7中,最终可以输出包括被保留的语义相近句子样本的集合,以供后续进行处理。

以上所述仅为本发明较佳的实施例,并非因此限制本发明的实施方式及保护范围,对于本领域技术人员而言,应当能够意识到凡运用本发明说明书及图示内容所作出的等同替换和显而易见的变化所得到的方案,均应当包含在本发明的保护范围内。

阅读剩余内容
网友评论
相关内容
拓展阅读
最近更新