混淆语句的生成方法、终端设备及计算机可读存储介质与流程

文档序号:27072101发布日期:2021-10-24 10:07阅读:96来源:国知局
混淆语句的生成方法、终端设备及计算机可读存储介质与流程

1.本技术属于数据处理技术领域,尤其涉及一种混淆语句的生成方法、终端设备及计算机可读存储介质。


背景技术:

2.随着人工智能技术的发展,自然语言处理技术的应用也越来越广泛。在自然语言处理过程中,随着待处理文本中错误词语的增加,自然语言处理结果的准确度也随之降低。因此,文本纠错是自然语言处理中的关键步骤。文本纠错是指将文本中错误的语句纠正为正确语句的过程。例如:将语句“大会按照会议驿城审议了议案”纠正为“大会按照会议议程审议了议案”。
3.现有技术中,文本纠错主要依赖于混淆字字典,混淆字字典中包括正确词语和每个正确词语的混淆词语。换言之,现有的本文纠错通常是基于词语级别的纠错。对于一个完整语句而言,只进行词语级别的纠错将会丢掉较多的语义信息。例如,上述示例中,“驿城”作为一个独立的词语是正确的,但从整个语句来看,这个词语是错误的。如果对该语句进行词语级别的纠错,纠错结果的准确度较低。因此,构建混淆语句字典是提高语句纠错的准确率的关键。


技术实现要素:

4.本技术实施例提供了一种混淆语句的生成方法、终端设备及计算机可读存储介质,可以自动生成任意语句的混淆语句,有利于实现文本纠错中语句级别的纠错、提高文本纠错的准确率。
5.第一方面,本技术实施例提供了一种混淆语句的生成方法,包括:
6.将目标语句拆分为多个第一词语;
7.按照预设规则从所述多个第一词语中确定出第二词语;
8.生成所述第二词语的混淆词语;
9.将所述混淆词语替换所述目标语句中的所述第二词语,得到所述目标语句的混淆语句。
10.在本技术实施例中,从由目标语句拆分出的多个第一词语中确定出第二词语,然后生成第二词语的混淆词语,并将混淆词语替换原目标语句中的第二词语,得到目标语句的混淆语句。通过上述方法,能够根据目标语句中的不同词语自动生成目标语句的多个混淆语句,该方法能够适应不同的文本纠错环境。进一步的,基于本技术实施例中的方法能够构建语句级别的混淆字典,有利于实现文本纠错中语句级别的纠错,进而提高文本纠错的准确率。
11.在第一方面的一种可能的实现方式中,所述将目标语句拆分为多个第一词语,包括:
12.按照词性将所述目标语句划分为多个第三词语;
13.将满足预设词性的所述第三词语确定为所述第一词语。
14.在第一方面的一种可能的实现方式中,所述第一词语中包括单字词语和多字词语;
15.所述按照预设规则从所述多个第一词语中确定出第二词语,包括:
16.获取第一随机数;
17.若所述第一随机数在第一预设范围内,则从所述单字词语中确定出所述第二词语;
18.若所述第一随机数在第二预设范围内,则从所述多字词语中确定出所述第二词语。
19.在第一方面的一种可能的实现方式中,当所述第二词语为所述单字词语时,所述生成所述第二词语的混淆词语,包括:
20.获取第二随机数;
21.若所述第二随机数在第三预设范围内,则生成所述单字词语的形近字;将所述单字词语的形近字确定为所述第二词语的混淆词语;
22.若所述第二随机数在第四预设范围内,则生成所述单字词语的音近字;将所述单字词语的音近字确定为所述第二词语的混淆词语。
23.在第一方面的一种可能的实现方式中,当所述第二词语为所述多字词语时,所述生成所述第二词语的混淆词语,包括:
24.获取所述多字词语中每个汉字的音节;
25.生成所述每个汉字的音节的第一混淆音节;
26.根据所述每个汉字的所述第一混淆音节生成所述多字词语的所述混淆词语。
27.在第一方面的一种可能的实现方式中,所述生成每个汉字的音节的第一混淆音节,包括:
28.生成所述汉字的音节中声母的第二混淆音节;
29.生成所述汉字的音节中韵母的第三混淆音节;
30.将所述第二混淆音节和所述第三混淆音节组合为所述汉字的第四混淆音节;
31.将所述第四混淆音节中符合读音规则的音节确定为所述汉字的第一混淆音节。
32.在第一方面的一种可能的实现方式中,所述根据所述每个汉字的所述第一混淆音节生成所述多字词语的所述混淆词语,包括:
33.根据所述每个汉字的所述第一混淆音节进行音节组合,得到所述多字词语的第五混淆音节;
34.获取所述第五混淆音节对应的候选词语;
35.若所述候选词语与所述多字词语不同,则将所述候选词语确定为所述多字词语的所述混淆词语。
36.第二方面,本技术实施例提供了一种混淆语句的生成装置,包括:
37.拆分单元,用于将目标语句拆分为多个第一词语;
38.确定单元,用于按照预设规则从所述多个第一词语中确定出第二词语;
39.生成单元,用于生成所述第二词语的混淆词语;
40.混淆单元,用于将所述混淆词语替换所述目标语句中的所述第二词语,得到所述
目标语句的混淆语句。
41.第三方面,本技术实施例提供了一种终端设备,包括存储器、处理器以及存储在所述存储器中并可在所述处理器上运行的计算机程序,其特征在于,所述处理器执行所述计算机程序时实现如上述第一方面中任一项所述的混淆语句的生成方法。
42.第四方面,本技术实施例提供了一种计算机可读存储介质,本技术实施例提供了一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现如上述第一方面中任一项所述的混淆语句的生成方法。
43.第五方面,本技术实施例提供了一种计算机程序产品,当计算机程序产品在终端设备上运行时,使得终端设备执行上述第一方面中任一项所述的混淆语句的生成方法。
44.可以理解的是,上述第二方面至第五方面的有益效果可以参见上述第一方面中的相关描述,在此不再赘述。
附图说明
45.为了更清楚地说明本技术实施例中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本技术的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
46.图1是本技术实施例提供的混淆语句的生成方法的流程示意图;
47.图2是本技术实施例提供的结构树的示意图;
48.图3是本技术实施例提供的多字词语的混淆词语的生成流程示意图;
49.图4是本技术实施例提供的混淆语句的生成流程示意图;
50.图5是本技术实施例提供的混淆语句的生成装置的结构框图;
51.图6是本技术实施例提供的终端设备的结构示意图。
具体实施方式
52.以下描述中,为了说明而不是为了限定,提出了诸如特定系统结构、技术之类的具体细节,以便透彻理解本技术实施例。然而,本领域的技术人员应当清楚,在没有这些具体细节的其它实施例中也可以实现本技术。在其它情况中,省略对众所周知的系统、装置、电路以及方法的详细说明,以免不必要的细节妨碍本技术的描述。
53.应当理解,当在本技术说明书和所附权利要求书中使用时,术语“包括”指示所描述特征、整体、步骤、操作、元素和/或组件的存在,但并不排除一个或多个其它特征、整体、步骤、操作、元素、组件和/或其集合的存在或添加。
54.如在本技术说明书和所附权利要求书中所使用的那样,术语“若”可以依据上下文被解释为“当...时”或“一旦”或“响应于确定”或“响应于检测到”。
55.另外,在本技术说明书和所附权利要求书的描述中,术语“第一”、“第二”、“第三”等仅用于区分描述,而不能理解为指示或暗示相对重要性。
56.在本技术说明书中描述的参考“一个实施例”或“一些实施例”等意味着在本技术的一个或多个实施例中包括结合该实施例描述的特定特征、结构或特点。由此,在本说明书中的不同之处出现的语句“在一个实施例中”、“在一些实施例中”、“在其他一些实施例中”、

在另外一些实施例中”等不是必然都参考相同的实施例,而是意味着“一个或多个但不是所有的实施例”,除非是以其他方式另外特别强调。
57.参见图1,是本技术实施例提供的混淆语句的生成方法的流程示意图,作为示例而非限定,所述方法可以包括以下步骤:
58.s101,将目标语句拆分为多个第一词语。
59.可选的,可以利用python的jieba库对目标语句进行词语的拆分。jieba库分词的原理是:利用一个中文词库,确定汉字之间的关联概率;汉字间概率大的组成词组,形成分词结果。利用jieba库,用户还可以添加自定义的词组,灵活度较高。
60.词语的词性通常分为名词、动词、介词、形容词和助词等。其中,有些词性的词语在语句中通常没有实际含义。示例性的,将“大会按照会议议程审议了议案,并采用现场记名投票表决的方式”这一句话分词,并标注词性,结果为[大会/n,按照/p,会议议程/n,审议/v,了/ul,议案/n,,/x,并/c,采用/v,现场/n,记名投票/n,表决/v,的/ul,方式/n]。其中,助词(ul,如“的”、“了”等)没有实际含义。
[0061]
为了排除对语句没有语义贡献的词语,减少数据处理量,在一个实施例中,s101的步骤可以包括:
[0062]
按照词性将目标语句划分为多个第三词语;将满足预设词性的第三词语确定为第一词语。
[0063]
进一步的,对于人名、公司名和地点名等专有名词以及数词,不应该被混淆替换,否则可能会影响混淆字典的准确性。因此,可选的,s101的步骤还可以包括:删除第三词语中属于专有名词的词语;删除第三词语中属于数词的词语。
[0064]
s102,按照预设规则从多个第一词语中确定出第二词语。
[0065]
单个字可以构成一个词语,多个字也可以构成一个词语。由于单个字构成的词语属于字符级别的混淆,因此,本技术中将第一词语分为单字词语和多字词语两种情况进行讨论。
[0066]
为了平衡单字词语和多字词语的混淆概率,以避免因单字词语或多字词语被混淆的次数较多而导致的混淆语句的覆盖范围较小的问题,在一个实施例中,按照预设规则从多个第一词语中确定出第二词语,可以包括:
[0067]
获取第一随机数;若第一随机数在第一预设范围内,则从单字词语中确定出第二词语;若第一随机数在第二预设范围内,则从多字词语中确定出第二词语。
[0068]
第一预设范围和第二预设范围可以根据单字词语和多字词语的混淆需求进行设定。例如,首先要保证单字词语的混淆概率和多字词语的混淆概率之和为1,那么可以生成0

1的随机数。若需要令单字词语和多字词语的混淆概率分别为50%,那么可以将第一预设范围设置为小于0.5,将第二预设范围设置为大于0.5。
[0069]
s103,生成第二词语的混淆词语。
[0070]
如s102所述,将第二词语分为单字词语和多字词语两种情况,下面分别针对两种情况介绍第二词语的混淆词语的生成方法。
[0071]
由于中文汉字的相近字包括音近字和形近字两种情况,因此,单字词语的混淆词语可以分为音近字和形近字两种情况。为了平衡单字词语的音近字和形近字的混淆概率,以避免因单字词语的音近字过多或形近字过多而导致的混淆语句的覆盖范围较小的问题,
在一个实施例中,当第二词语为单字词语时,生成单字词语的混淆词语,可以包括:
[0072]
获取第二随机数;若第二随机数在第三预设范围内,则生成单字词语的形近字;将单字词语的形近字确定为第二词语的混淆词语。若第二随机数在第四预设范围内,则所述单字词语的音近字;将单字词语的音近字确定为第二词语的混淆词语。
[0073]
第三预设范围和第四预设范围可以根据单字词语的音近字和形近字的混淆需求进行设定。例如,首先要保证音近字的混淆概率和形近字的混淆概率之和为1,那么可以生成0

1的随机数。若需要令音近字的混淆概率为10%,令形近字的混淆概率为90%,那么可以将第三预设范围设置为小于0.1,将第四预设范围设置为大于0.1。
[0074]
在一个实施例中,当生成单字词语的音近字时,可以包括:获取预设的汉字集合,汉字集合中包括多个常见的汉字;生成单字词语的读音特征;根据读音特征确定单字词语在汉字集合中的音近字。
[0075]
可选的,生成单字词语的读音特征的步骤可以包括:
[0076]
根据单字词语每种读音的声调和音节生成单字词语每种读音的读音字符串;将单字词语每种读音的读音字符串确定为单字词语的读音特征。
[0077]
中文汉字存在多音字的情况,一个汉字可能对应多种读音,因此,需要为汉字的每种可能的读音生成读音字符串。这样后续生成的混淆汉字才会更全面、更准确。
[0078]
可选的,根据单字词语任意一种读音的声调和音节生成单字词语在该读音下的读音字符串,可以包括:
[0079]
获取单字词语的读音的声调对应的预设字符;将预设字符和单字词语的读音的音节中的每个字符组合成单字词语在该读音下的读音字符串。
[0080]
中文声调包括阴平(即第一声调,通常用“ˉ”表示)、阳平(即第二声调,通常用“ˊ”表示)、上声(即第三声调,通常用
“ˇ”
表示)和去声(即第四声调,通常用“ˋ”表示)四种。表示不同声调的预设字符可以是可供计算机识别的字符,如数字或字母等。
[0081]
示例性的,假设“薄”的读音为b
á
o,假设阴平对应的预设字符为1、阳平对应的预设字符为2、上声对应的预设字符为3、去声对应的预设字符为4。那么读音b
á
o的声调对应的预设字符为2。该读音的音节bao中包括3个字符。生成的读音b
á
o的读音字符串为“bao2”。
[0082]
实际应用中,可以利用python的pypinyin库中的style.tone2或style.tone3的格式生成读音字符串。pypinyin库可用于将汉字转成拼音,该库具有根据词组智能匹配最正确的拼音、支持多音字、支持繁体、支持注音和支持多种不同的拼音/注音风格的特点。其中,style.tone2是指声调在音节中的韵母之后、用数字1

4表示,如ba2o。style.tone3格式是指,读音的声调在音节之后、用数字1

4表示。当然,也可以自行设定读音字符串的格式,如令声调在声母之后或之前(b2ao或2bao)。
[0083]
可选的,根据读音特征确定单字词语在汉字集合中的音近字,可以包括以下步骤:
[0084]
根据读音特征计算单字词语与每个非目标字之间的第一编辑距离,非目标字为汉字集合中除单字词语外的任意一个汉字;根据第一编辑距离计算单字词语与每个非目标字之间的相似度;根据相似度从非目标字中确定出单字词语的音近字。
[0085]
由于读音特征可能包括多个读音字符串,因此,需要计算单字词语的每个读音字符串与非目标字的每个读音字符串之间的第一编辑距离。
[0086]
编辑距离,是用来度量两个序列相似程度的指标。通俗地来讲,编辑距离指的是在
两个字符串<w1,w2>之间,由其中一个字符串w1转换为另一个字符串w2所需要的最少单字符编辑操作次数。其中,单字符编辑操作有且仅有三种:插入、删除和替换。
[0087]
可选的,可以利用levenstein算法计算第一编辑距离。公式如下:
[0088][0089]
其中,lev
a,b
(a
i
,b
i
)表示读音字符串a中第i个字符a
i
和读音字符串b中第j个字符b
j
之间的第一编辑距离。公式中min中的三个公式分别对应字符串的插入、删除和替换操作,每个操作都会导致编辑距离加1。表示当a
i
≠b
j
时取值为1,当a
i
=b
j
时取值为0。最后计算出的lev
a,b
(|a|,|b|)为读音字符串a和读音字符串b的第一编辑距离,|a|为读音字符串a中字符的个数,|b|为读音字符串b中字符的个数。
[0090]
由于读音字符串的长度不同,长的读音字符串之间的编辑距离一般比短的读音字符串之间的编辑距离大。为了统一度量标准,提高音近字判别的可靠性,可选的,根据第一编辑距离计算单字词语与任意一个非目标字之间的相似度,可以包括以下步骤:
[0091]
计算每个第一编辑距离对应的最大字符长度,其中,最大字符长度为单字词语的读音字符串的长度和非目标字的读音字符串的长度中的最大值;根据最大字符长度计算每个第一编辑距离对应的读音距离比率;将目标比率中的最大值确定为单字词语与非目标字之间的相似度,其中,目标比率为单字词语与非目标字之间的第一编辑距离对应的读音距离比率。
[0092]
具体的,读音距离比率的计算公式如下:
[0093][0094]
其中,sim
a,b
为读音字符串a和读音字符串b的第一编辑距离lev
a,b
(|a|,|b|)对应的读音距离比率,max(|a|,|b|)表示第一编辑距离lev
a,b
(|a|,|b|)对应的最大字符长度。
[0095]
示例性的,根据上述方法,“薄”字的读音字符串bao2、bo、bu4和bo4这四个读音字符串与“保”字的读音字符串bao3之间的读音距离比率分别为:1

1/4=0.75,1

2/4=0.5,1

3/4=0.25,1

2/4=0.5。将其中的最大值0.75作为“薄”与“保”之间的相似度。
[0096]
上述方法中,考虑了多音字的情况,统计每种读音的读音字符串;并通过读音距离比率的计算方式将读音字符串的编辑距离有效统一,避免了长短读音字符串的编辑距离存在差异的情况。通过上述实施例,能够获取较准确、较全面的音近字。
[0097]
在一个实施例,当生成单字词语的形近字时,可以包括:获取预设的汉字集合,汉字集合中包括多个常见的汉字;生成单字词语的结构特征;根据结构特征确定单字词语在汉字集合中的形近字字。
[0098]
可选的,生成单字词语的结构特征的步骤可以包括:
[0099]
按照预设的结构规则将单字词语拆分为多个偏旁部首;将偏旁部首生成结构树,
其中,每个偏旁部首为结构树的一个节点;将结构树确定为单字词语的结构特征。
[0100]
预设的结构规则可以是汉字的笔画结构。例如:汉字的笔画结构包括左右、上下、上中下、半包围和全包围等。按照笔画结构将汉字“乔”拆分为“夭”、“丿”和“丨”这三个偏旁部首。当然,还可以将每个偏旁部首继续拆分为多个基本笔画(如横、竖、撇、捺、点、折等)。但是拆分的细粒度越高,后续生成混淆汉字的数据处理量越大,效率越低。由于利用偏旁部首已经足够判断两个汉字的相似度,因此,将汉字拆分至偏旁部首即可,这样有利于减少混淆汉字生成方法的数据处理量、提高处理效率。
[0101]
可以按照汉字书写的顺序,将偏旁部首生成结构树。具体的,可以将排在书写顺序中第一位的偏旁部首作为结构树中的根节点,将排在书写顺序中第二位的偏旁部首作为根节点的子节点,依次类推。示例性的,参见图2,是本技术实施例提供的结构树的示意图。如图2中的(a)所示,“乔”字的结构树的根节点为“夭”,“夭”的子节点为“丿”和“丨”。
[0102]
还可以,将汉字的笔画结构作为结构树中的根节点,然后按照笔画结构依次确定每个子节点。如图2中的(b)所示,“乔”字的笔画结构为上下结构,将上下结构对应的标识作为结构树中的根节点;上部分的“夭”根节点下的一个子节点,下部分结构又由一个左右结构组成,将该左右结构对应的标识作为根节点下的另一个子节点;将“丿”和“丨”分别作为该左右结构的节点下的两个子节点。上述示例中,为了便于表示,结构的标识用图形的形式展示。实际应用中,结构的标识通常用可供计算机识别的符号来表示。例如,可以用不同的数字或字母表示不同的笔画结构,然后将数字或字母作为节点。
[0103]
通过上述实施例,生成了可供计算机处理的汉字的读音特征和结构特征,为后续的混淆汉字的生成提供了可靠的数据依据。
[0104]
可选的,根据结构特征确定单字词语在汉字集合中的形近字,可以包括以下步骤:
[0105]
计算单字词语的结构树和每个非目标字的结构树之间的第二编辑距离;按照第二编辑距离从小到大的顺序对非目标字进行排序,得到第二汉字序列;将第二汉字序列中的前m个汉字确定为单字词语的形近字,其中,m为正整数。
[0106]
计算结构树之间的编辑距离,是指将一颗结构树映射到另一颗结构树所需的最小操作数。但是结构树之间的编辑距离的计算方式要复杂得多,可选的,本技术实施例中,利用apted算法计算结构树之间的编辑距离。
[0107]
apted算法的基本思路是:首先自左向右、自右向左分别递归结构树中包含的所有子树;然后分别匹配两个结构树中的节点,以确定两个结构树之间的相同节点,并计算节点变换所需的步数;最后根据结构树的节点数量和节点变换所需的步数计算结构树之间的编辑距离。
[0108]
例如,利用上述方法计算出的“乔”字与“不”的第二编辑距离为0.935,与“介”的第二编辑距离为0.935,与“齐”的第二编辑距离为0.935,与“万”的第二编辑距离为0.875。假设m=1,将最小的第二编辑距离对应的汉字确定为“乔”的形近字,即“万”。
[0109]
多字词语的混淆通常是由于音节的相似或相同导致的。例如,“mu ban”这个音节对应的词语有“模板”、“木板”和“母版”。基于该规律,本技术一个实施例中提供了一种混淆词语的生成方法,参见图3,是本技术实施例提供的多字词语的混淆词语的生成流程示意图。如图3所示,具体可以包括:
[0110]
获取多字词语中每个汉字的音节;生成每个汉字的音节的第一混淆音节;根据每
个汉字的第一混淆音节生成多字词语的混淆词语。
[0111]
由于多字词语中包括至少两个汉字,而每个汉字都可能存在其混淆音节。因此,需要考虑多字词语中每个汉字的混淆音节。可选的,对于多次词语中任意一个汉字的第一混淆音节的生成方式可以包括:
[0112]
生成汉字的音节中声母的第二混淆音节;生成汉字的音节中韵母的第三混淆音节;将第二混淆音节和第三混淆音节组合为汉字的第四混淆音节;将第四混淆音节中符合读音规则的音节确定为汉字的第一混淆音节。
[0113]
可以通过大数据分析方法统计声母和韵母各自常见的混淆音节,还可以基于音节的发音习惯(如方言口音、口齿不清的发音和平仄无法区分的发音等情况)统计声母和韵母各自常见的混淆音节,还可以统计拼音输入时由于误输入(如键盘位置邻接等)导致的声母和韵母各自常见的混淆音节。
[0114]
示例性的,声母的常见混淆音节如下:
[0115]
'b':['g','h','f','n','p'],
[0116]
'p':['l','b'],
[0117]
'm':['n','j','k','l'],
[0118]
'f':['d','c','g','r'],
[0119]
'd':['c','f','r','s','x'],
[0120]
't':['r','f','g','h'],
[0121]
'n':['b','m','h','j','l'],
[0122]
'l':['k','n','p'],
[0123]
'g':['f','b','h','y','t'],
[0124]
'k':['j','m','l'],
[0125]
'h':['g','b','n','j','y'],
[0126]
'j':['h','n','m','k'],
[0127]
'q':['w'],
[0128]
'x':['z','s','d','c'],
[0129]
'zh':['z','h','ch','sh'],
[0130]
'ch':['c','h','zh','sh'],
[0131]
'sh':['s','h','zh','ch'],
[0132]
'r':['d','f','t'],
[0133]
'z':['x','s','zh'],
[0134]
'c':['x','d','f','ch'],
[0135]
's':['z','x','d','w','sh']。
[0136]
韵母的常见混淆音节如下:
[0137]
'a':['e','an','ao','ai'],
[0138]
'e':['a','ie','ei','er','en'],
[0139]
'i':['o','u'],
[0140]
'o':['i','u'],
[0141]
'u':['i','o','v','un','ui','iu'],
[0142]
'v':['u','ve','vn'],
[0143]
'ai':['a','i','an','ei','ui'],
[0144]
'ei':['e','i','ai','ie','ui','en','er'],
[0145]
'ui':['u','i','iu','un','ai','ei'],
[0146]
'ao':['a','o','ai','an'],
[0147]
'ou':['o','u','iu'],
[0148]
'iu':['i','u','ui','ie','in','ou'],
[0149]
'ie':['i','e','ei','iu','in','ve'],
[0150]
've':['v','e','vn','ie'],
[0151]
'er':['e','en','ei'],
[0152]
'an':['a','ai','ao','en','in','un','vn','ang'],
[0153]
'en':['e','ei','er','an','in','un','vn','eng'],
[0154]
'in':['i','iu','ie','an','en','un','vn','ing'],
[0155]
'un':['u','ui','an','en','in','vn'],
[0156]
'vn':['v','ve','an','en','in','un'],
[0157]
'ang':['an','eng','ing','ong'],
[0158]
'eng':['en','ang','ing','ong'],
[0159]
'ing':['in','ang','eng','ong'],
[0160]
'ong':['ang','ing','eng','uang']。
[0161]
上述示例构成了如图3所示的声母和韵母的混淆音节的候选集。
[0162]
假设多字词语为股东,音节为“gu dong”,根据上述常见混淆音节,获得声母“g”的第二混淆音节有['f','b','h','y','t']共5个,“d”的第二混淆音节有['c','f','r','s','x']共5个,韵母“u”的第三混淆音节有['i','o','v','un','ui','iu']共6个,“ong”的第三混淆音节有['ang','ing','eng','uang']共4个。
[0163]
可选的,可以按照排列组合的方式将第二混淆音节和第三混淆音节组合为汉字的第四混淆音节。上述示例中,可以组合出5
×5×6×
4=600个第四混淆音节。
[0164]
但是组合出的第四混淆音节中可能存在不符合读音规则的音节,如xang、xong等。因此,可以根据读音规则对第四混淆音节进行过滤,以去除第四混淆音节中的噪声数据,为后续的数据处理提供可靠的数据依据。
[0165]
确定了多字词语中每个汉字的第一混淆音节后,需要进一步根据第一混淆音节确定多字词语的混淆词语。可选的,根据每个汉字的第一混淆音节生成多字词语的混淆词语的一种实现方式可以包括:
[0166]
根据每个汉字的第一混淆音节进行音节组合,得到多字词语的第五混淆音节(如图3所示的混淆读音);获取第五混淆音节对应的候选词语;若候选词语与多字词语不同,则将候选词语确定为多字词语的混淆词语。
[0167]
具体的,可以采用排列组合的方式将每个汉字的音节和第一混淆音节进行音节组合。例如,“gu”的第一混淆音节有“hu”,“dong”的第一混淆音节有“song”和“fong”。组合出的多字词语的第五混淆音节有“hu song”、“hu fong”和“hu dong”。
[0168]
实际应用中,可能存在第五混淆音节没有对应的词语的情况,如“hu fong”。因此,
为了数据的准确性,还需要进一步筛选。可选的,获取第五混淆音节对应的候选词语,可以包括:获取预设的语料库;从语料库中查找第五混淆音节对应的候选词语;若未查找到,则删除将该第五混淆音节。
[0169]
进一步的,如果多字词语与其候选词语之间只有一个汉字不同,则属于字符级别的混淆情况,应该归属到单字词语的混淆。因此,在本技术实施例中,判断候选词语与多字词语是否相同,包括:判断候选词语与多字词语是否存在多个不同的汉字;若存在多个不同的汉字,则表示候选词语与多字词语不同;若存在一个不同的汉字或不存在不同的汉字,则表示候选词语与多字词语相同。
[0170]
s104,将混淆词语替换目标语句中的第二词语,得到目标语句的混淆语句。
[0171]
在本技术实施例中,从由目标语句拆分出的多个第一词语中确定出第二词语,然后生成第二词语的混淆词语,并将混淆词语替换原目标语句中的第二词语,得到目标语句的混淆语句。通过上述方法,能够根据目标语句中的不同词语自动生成目标语句的多个混淆语句,该方法能够适应不同的文本纠错环境。进一步的,基于本技术实施例中的方法能够构建语句级别的混淆字典,有利于实现文本纠错中语句级别的纠错,进而提高文本纠错的准确率。
[0172]
参见图4,是本技术实施例提供的混淆语句的生成流程示意图。如图4所示,先利用jieba分词,并进行词性筛选,得到符合给定词性(即预设词性)的词语;然后对于符合给定词性的词语中的任意一个词语,根据随机数a(即第一随机数)决定是采用单字级别混淆(对应单字词语),还是词语级别混淆(对应多字词语)。当进行单字级别混淆时,根据随机数a1(即第二随机数)确定是生成音近字还是形近字。最后将混淆词语替换原目标语句中的第二词语,得到混淆的纠错句子(相当于混淆语句)。
[0173]
应理解,上述实施例中各步骤的序号的大小并不意味着执行顺序的先后,各过程的执行顺序应以其功能和内在逻辑确定,而不应对本技术实施例的实施过程构成任何限定。
[0174]
对应于上文实施例所述的方法,图5是本技术实施例提供的混淆语句的生成装置的结构框图,为了便于说明,仅示出了与本技术实施例相关的部分。
[0175]
参照图5,该装置包括:
[0176]
拆分单元51,用于将目标语句拆分为多个第一词语.
[0177]
确定单元52,用于按照预设规则从所述多个第一词语中确定出第二词语。
[0178]
生成单元53,用于生成所述第二词语的混淆词语。
[0179]
混淆单元54,用于将所述混淆词语替换所述目标语句中的所述第二词语,得到所述目标语句的混淆语句。
[0180]
可选的,拆分单元51还用于:按照词性将所述目标语句划分为多个第三词语;将满足预设词性的所述第三词语确定为所述第一词语。
[0181]
可选的,所述第一词语中包括单字词语和多字词语。
[0182]
所述确定单元52还用于:
[0183]
获取第一随机数;若所述第一随机数在第一预设范围内,则从所述单字词语中确定出所述第二词语;若所述第一随机数在第二预设范围内,则从所述多字词语中确定出所述第二词语。
[0184]
可选的,所述确定单元52还用于:
[0185]
获取第二随机数;若所述第二随机数在第三预设范围内,则生成所述单字词语的形近字;将所述单字词语的形近字确定为所述第二词语的混淆词语;若所述第二随机数在第四预设范围内,则生成所述单字词语的音近字;将所述单字词语的音近字确定为所述第二词语的混淆词语。
[0186]
可选的,生成单元53还用于:
[0187]
获取所述多字词语中每个汉字的音节;生成所述每个汉字的音节的第一混淆音节;根据所述每个汉字的所述第一混淆音节生成所述多字词语的所述混淆词语。
[0188]
可选的,生成单元53还用于:
[0189]
生成所述汉字的音节中声母的第二混淆音节;生成所述汉字的音节中韵母的第三混淆音节;将所述第二混淆音节和所述第三混淆音节组合为所述汉字的第四混淆音节;将所述第四混淆音节中符合读音规则的音节确定为所述汉字的第一混淆音节。
[0190]
可选的,生成单元53还用于:
[0191]
根据所述每个汉字的所述第一混淆音节进行音节组合,得到所述多字词语的第五混淆音节;获取所述第五混淆音节对应的候选词语;若所述候选词语与所述多字词语不同,则将所述候选词语确定为所述多字词语的所述混淆词语。
[0192]
需要说明的是,上述装置/单元之间的信息交互、执行过程等内容,由于与本技术方法实施例基于同一构思,其具体功能及带来的技术效果,具体可参见方法实施例部分,此处不再赘述。
[0193]
另外,图5所示的装置可以是内置于现有的终端设备内的软件单元、硬件单元、或软硬结合的单元,也可以作为独立的挂件集成到所述终端设备中,还可以作为独立的终端设备存在。
[0194]
所属领域的技术人员可以清楚地了解到,为了描述的方便和简洁,仅以上述各功能单元、模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能单元、模块完成,即将所述装置的内部结构划分成不同的功能单元或模块,以完成以上描述的全部或者部分功能。实施例中的各功能单元、模块可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中,上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。另外,各功能单元、模块的具体名称也只是为了便于相互区分,并不用于限制本技术的保护范围。上述系统中单元、模块的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
[0195]
图6是本技术实施例提供的终端设备的结构示意图。如图6所示,该实施例的终端设备6包括:至少一个处理器60(图6中仅示出一个)处理器、存储器61以及存储在所述存储器61中并可在所述至少一个处理器60上运行的计算机程序62,所述处理器60执行所述计算机程序62时实现上述任意各个方法实施例中的步骤。
[0196]
所述终端设备可以是桌上型计算机、笔记本、掌上电脑及云端服务器等计算设备。该终端设备可包括,但不仅限于,处理器、存储器。本领域技术人员可以理解,图6仅仅是终端设备6的举例,并不构成对终端设备6的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件,例如还可以包括输入输出设备、网络接入设备等。
[0197]
所称处理器60可以是中央处理单元(central processing unit,cpu),该处理器
60还可以是其他通用处理器、数字信号处理器(digital signal processor,dsp)、专用集成电路(application specific integrated circuit,asic)、现成可编程门阵列(field

programmable gate array,fpga)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。
[0198]
所述存储器61在一些实施例中可以是所述终端设备6的内部存储单元,例如终端设备6的硬盘或内存。所述存储器61在另一些实施例中也可以是所述终端设备6的外部存储设备,例如所述终端设备6上配备的插接式硬盘,智能存储卡(smart media card,smc),安全数字(secure digital,sd)卡,闪存卡(flash card)等。进一步地,所述存储器61还可以既包括所述终端设备6的内部存储单元也包括外部存储设备。所述存储器61用于存储操作系统、应用程序、引导装载程序(boot loader)、数据以及其他程序等,例如所述计算机程序的程序代码等。所述存储器61还可以用于暂时地存储已经输出或者将要输出的数据。
[0199]
本技术实施例还提供了一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,所述计算机程序被处理器执行时实现可实现上述各个方法实施例中的步骤。
[0200]
本技术实施例提供了一种计算机程序产品,当计算机程序产品在终端设备上运行时,使得终端设备执行时实现可实现上述各个方法实施例中的步骤。
[0201]
所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本技术实现上述实施例方法中的全部或部分流程,可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一计算机可读存储介质中,该计算机程序在被处理器执行时,可实现上述各个方法实施例的步骤。其中,所述计算机程序包括计算机程序代码,所述计算机程序代码可以为源代码形式、对象代码形式、可执行文件或某些中间形式等。所述计算机可读介质至少可以包括:能够将计算机程序代码携带到装置/终端设备的任何实体或装置、记录介质、计算机存储器、只读存储器(rom,read

only memory)、随机存取存储器(ram,random access memory)、电载波信号、电信信号以及软件分发介质。例如u盘、移动硬盘、磁碟或者光盘等。在某些司法管辖区,根据立法和专利实践,计算机可读介质不可以是电载波信号和电信信号。
[0202]
在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述或记载的部分,可以参见其它实施例的相关描述。
[0203]
本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、或者计算机软件和电子硬件的结合来实现。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本技术的范围。
[0204]
在本技术所提供的实施例中,应该理解到,所揭露的装置/终端设备和方法,可以通过其它的方式实现。例如,以上所描述的装置/终端设备实施例仅仅是示意性的,例如,所述模块或单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另
一点,所显示或讨论的相互之间的耦合或直接耦合或通讯连接可以是通过一些接口,装置或单元的间接耦合或通讯连接,可以是电性,机械或其它的形式。
[0205]
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
[0206]
以上所述实施例仅用以说明本技术的技术方案,而非对其限制;尽管参照前述实施例对本技术进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本技术各实施例技术方案的精神和范围,均应包含在本技术的保护范围之内。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1