一种自动生成纠错语料的方法和系统与流程

文档序号:24413594发布日期:2021-03-26 20:19阅读:199来源:国知局
一种自动生成纠错语料的方法和系统与流程

1.本公开涉及信息技术领域,特别涉及一种自动生成纠错语料的方法、系统、电子设备及计算机可读介质。


背景技术:

2.目前,在终端设备上输入汉字的输入法以拼音方式为主,由于诸多客观原因,输入时出错率较高。
3.在某些业务场景中,例如在搜索引擎中搜索关键词,自动纠错的功能就尤为重要。但是,在搜索引擎的自动纠错系统中,一个比较复杂的问题在于如何生产用来训练自动纠错模型的语料。生产的纠错语料越多,准确性越高,越有利于后续基于纠错语料进行模型训练和优化。
4.目前生产纠错语料的方法主要都是人工对齐或者是半自动对齐,这些对齐方法依赖于两次连续用户语料的对齐,需要大量的人力标注成本,并且严重依赖于用户历史行为,导致挖掘出的语料缺少对长尾样本的覆盖。
5.因此,急需一种自动生成纠错语料的方法,通过模拟用户拼音输入行为直接生成纠错语料,无需人工标注,用更低的成本生成更大规模的、更可信的和更符合用户习惯的拼写错误语料的纠错语料数据集。


技术实现要素:

6.有鉴于此,本公开实施例的目的在于提供一种自动生成纠错语料的方法,通过模拟用户拼音输入行为直接生成纠错语料,无需人工标注,用更低的成本生成更大规模的、更可信的和更符合用户习惯的拼写错误语料的纠错语料数据集。
7.根据本公开的第一方面,提供了一种自动生成纠错语料的方法,包括:获取正确的语料,触发一个拼音转移图;根据所述语料的字权重和出错权重,得到改错点;将所述改错点的字符映射为所述拼音转移图的对应节点,以所述对应节点为起点,根据所述拼音转移图的边权重进行转移,得到转移后的拼音节点;根据所述转移后的拼音节点和错误模型,将所述转移后的拼音节点转换为对应的平行语料;将所述平行语料通过分类模型,得到所述平行语料的可信度,根据所述可信度,判断是否采纳所述平行语料作为所述纠错语料。
8.在一个可能的实施例中,其中,所述触发一个拼音转移图包括:基于预设的触发概率,通过均匀分布生成一个随机数,根据所述随机数触发一个拼音转移图。
9.在一个可能的实施例中,其中,所述拼音转移图包括:拼音前缀树转移图,由具有公共前缀的拼音节点组成,以最长拼音前缀为树冠,以
最短拼音前缀为树根,以各个节点间的拼音的编辑距离作为节点的边权重,位于树冠的拼音节点指向位于树根的拼音节点;拼音模糊音转移图,由边权重为1的拼音节点组成,拼音节点之间无指向性;拼音键盘转移图,由分别在九宫格键盘坐标系和二十六键坐标系下,计算得到的拼音节点之间的earth

mover距离的加权和的倒数为边权重的拼音节点组成,拼音节点之间无指向性。
10.在一个可能的实施例中,其中,所述字权重由语料库中每个字符的出现频率的平方根进行归一化后得到;所述出错权重是每个位置的字符的出错概率与字权重的乘积,其中出错概率是指用户拼写错误的发生位置的概率。
11.在一个可能的实施例中,其中,所述错误模型包括:如果转移后的拼音节点没有对应的汉字,则直接将字符转换为拼音;如果转移后的拼音节点有对应的汉字,根据所述字权重,将字符转换为汉字。
12.在一个可能的实施例中,其中,所述分类模型将所述平行语料依然为错误语料的可信度大于或等于阈值的平行语料纳入纠错语料,弃用所述可信度小于阈值平行语料。
13.在一个可能的实施例中,其中,所述分类模型是基于gbdt的二分类机器学习模型,利用特征参数pv、ctr训练得到的,pv是语料的曝光量,ctr是点击语料的次数占总的展示次数的百分比。
14.根据本公开的第二方面,提供了一种自动生成纠错语料的系统,包括:语料获取单元,用于获取正确的语料,触发一个拼音转移图;改错点单元,用于根据所述语料的字权重和出错权重,得到改错点;映射单元,用于将所述改错点的字符映射为所述拼音转移图的对应节点,以所述对应节点为起点,根据所述拼音转移图的边权重进行转移,得到转移后的拼音节点;平行语料单元,用于根据所述转移后的拼音节点和错误模型,将所述转移后的拼音节点转换为对应的平行语料;可信度单元,用于将所述平行语料通过分类模型,得到所述平行语料的可信度,根据所述可信度,判断是否采纳所述平行语料作为所述纠错语料。
15.根据本公开的第三方面,提供一种电子设备,包括:存储器、处理器以及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现如第一方面所述的方法。
16.根据本公开的第四方面,提供一种计算机可读存储介质,所述计算机可读存储介质上存储有可执行指令,该指令被处理器执行时使处理器执行如第一方面所述的方法。
附图说明
17.为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。通过附图所示,本申请的上述及其它目的、特征和优势将更加清晰。在全部附图中相同的附图标记指示相同的部分。并未刻意按实际尺寸等比例缩放绘制附图,重点在于示出本申请的主旨。
18.图1示出了根据本公开实施例的典型的搜索引擎自动纠错场景的示意图。
19.图2示出了根据本公开实施例的典型的自动生成纠错语料的方法的示意图。
20.图3示出了根据本公开实施例的典型的拼音前缀树转移图的示意图。
21.图4示出了根据本公开实施例的典型的拼音模糊音转移图的示意图。
22.图5示出了根据本公开实施例的典型的拼音键盘转移图的示意图。
23.图6示出了根据本公开实施例的典型的自动生成纠错语料的系统的示意图。
24.图7示出了用于实现本公开实施例的电子设备的结构示意图。
具体实施方式
25.以下,将参照附图来描述本公开的实施例。但是应该理解,这些描述只是示例性的,而并非要限制本公开的范围。此外,在以下说明中,省略了对公知结构和技术的描述,以避免不必要地混淆本公开的概念。
26.在此使用的术语仅仅是为了描述具体实施例,而并非意在限制本公开。这里使用的词语“一”、“一个(种)”和“该”等也应包括“多个”、“多种”的意思,除非上下文另外明确指出。此外,在此使用的术语“包括”、“包含”等表明了所述特征、步骤、操作和/或部件的存在,但是并不排除存在或添加一个或多个其他特征、步骤、操作或部件。
27.在此使用的所有术语(包括技术和科学术语)具有本领域技术人员通常所理解的含义,除非另外定义。应注意,这里使用的术语应解释为具有与本说明书的上下文相一致的含义,而不应以理想化或过于刻板的方式来解释。
28.目前,在终端设备上输入汉字的输入法以拼音方式为主,由于诸多客观原因,输入时出错率较高。在某些业务场景中,例如在搜索引擎中搜索关键词,自动纠错的功能就尤为重要。但是,在搜索引擎的纠错系统中,一个比较复杂的问题在于如何生产用来训练自动纠错模型的语料。生产的纠错语料越多,准确性越高,越有利于后续基于纠错语料进行模型训练和优化。
29.现有技术中,通常存在语料可信度和语料构建成本的权衡问题。通过人工标注的方法产生纠错语料的方法虽然可信度高,但是需要大量的人力成本。使用机器翻译系统产生伪数据方法需要较复杂的前置工作来构建两个不同语言之间的翻译模型,并且受到翻译模型训练效果的影响,对于翻译模型不容易出错部分的样本生成能力较差,而且如果不在后续进行人工筛选,往往会难以区分中文中的同义词和近义词,导致语料可信度下降。
30.因此,急需一种自动生成纠错语料的方法,通过模拟用户拼音输入行为直接生成纠错语料,无需人工标注,用更低的成本生成更大规模的、更可信的和更符合用户习惯的拼写错误语料的纠错语料数据集。
31.本公开的技术方案提供了一种完全自动的纠错平行语料方法,通过对用户输入错误进行建模,模拟用户错误的输入行为生成错误的纠错语料。在保证纠错语料正确性的同时,只需要较小的机器成本,能生产大规模纠错语料。
32.以下结合附图详细描述本公开。
33.图1示出了根据本公开实施例的典型的搜索引擎自动纠错场景的示意图。
34.如图1所示,在搜索引擎中的交互窗口101处输入文字时,对于汉字,由于主流的输入法是拼音,用户经常遇到的情况是,输入了同音字,或读音相近的字,或者用户误触了键
盘(包括虚拟键盘),将拼音直接输入了交互窗口,未转换为汉字。在文字区域102处,搜索引擎自动纠错了用户输入的关键词,展示了可能正确的搜索结果。在文字区域103处,用户可以选择仍然显示对输入的关键词的搜索结果,这是为了防止搜索引擎自动纠错功能产生的错误。
35.图2示出了根据本公开实施例的典型的自动生成纠错语料的方法的示意图。
36.该方法包括:步骤201,获取正确的语料,触发一个拼音转移图;步骤202,根据所述语料的字权重和出错权重,得到改错点;步骤203,将所述改错点的字符映射为所述拼音转移图的对应节点,以所述对应节点为起点,根据所述拼音转移图的边权重进行转移,得到转移后的拼音节点;步骤204,根据所述转移后的拼音节点和错误模型,将所述转移后的拼音节点转换为对应的平行语料;步骤205,将所述平行语料通过分类模型,得到所述平行语料的可信度,根据所述可信度,判断是否采纳所述平行语料作为所述纠错语料。
37.在步骤201,获取一个正确的语料,语料可以是中文,可能是一个词或几个词,一句话等,其中“获取一个正确的语料”中“正确”的含义是,语料所表示的含义在社会生活中是具有意义的,能被大多数人理解的,可以包括新产生的词或句子,还未被收入词典的词或句子,自创的但已经广泛传播的词或句子,例如密接,已经广泛使用,代表了密切接触者的意思。
38.在一个可能的实施例中,本公开设置了三种拼音转移图,利用拼音前缀树转移图去模拟用户不小心误触回车,从而导致的错误输入;利用拼音模糊音转移图,去模拟用户口音差异导致的错误输入;利用拼音键盘转移图,去模拟用户不小心误触键盘导致的错误输入。
39.对于一条正确的中文语料,本公开根据用户行为的差异和不同类型错误的纠错成本,预先设定了不同拼音转移图的触发概率。基于该触发概率,通过均匀分布生成一个随机数,根据所述随机数触发三种拼音转移图中的一个。
40.在步骤202,首先,本公开统计了大量的语料中用户拼写错误的发生位置和文本的错误字符数,得到了针对位置的出错概率分布和针对拼写错误的字符数分布。例如针对一个特定的含有6个汉字的语料,从第一位到第六位的汉字的出错概率是0.1、0.1、0.2、0.2、0.3、0.1。而该语料的拼写错误的字符数是1,代表一般情况下,该语料只会出错1个汉字,因此,对于该6个汉字语料来说,本次生成纠错语料,需要改错的字符数是1。
41.因为是基于大量真实语料的统计结果,所以这样做能真实的反应用户使用时的出错情况,使得自动生成的纠错语料,能反应真实用户的出错语料,因而在训练自动纠错模型时,发挥更好的效果。
42.其次,本公开统计了在语料库中每个字符的字频率,将字频率的平方根进行归一化后作为字权重,将每个位置的出错概率和字权重的乘积,作为这段语料中此位置的出错权重,根据出错权重进行采样选择改错点。
43.在一个可能的实施例中,对于语料中的每一位字符,以出错权重为被除数,以该语料中全部字符的出错权重的和为除数,生成一个新的概率分布,以此概率分布进行采样,得到改错点的位置。这样可以在多次实现中以较真实的发生概率去模拟用户输入错误的各种情况,使得产生的改错点符合现实,而不是仅仅在数量上重复。
44.在步骤203,选好了改错点的位置之后,就能得到改错点处的字符,根据步骤201中
触发的拼音转移图,首先将改错点的中文字符映射为拼音转移图的节点。然后以此节点为起点,根据拼音转移图的边权重随机转移一步,从而转移到另一个拼音节点。边权重可以理解为随机转移时的概率,因为一个拼音节点可能与多个拼音节点连接,在随机转移时,以边权重采样,在大量多次的重复实现之后,转移的概率分布应该符合边权重。
45.在步骤204,一个用户在发生拼写错误的时候,不一定会将拼音再转化成汉字。有可能直接使用拼音的方式进行输入,因此本公开统计了拼音错误和汉字错误的发生概率,在完成拼音随机转移后,会对这个转移后的拼音的错误模型进行选择:1.如果此拼音节点为伪拼音节点,即转移后的拼音没有对应的汉字,那么直接将字符转换为拼音,生成一段平行语料。
46.2.如果拼音节点为真实的拼音节点,即转移后的拼音有对应的汉字,那么按照发生概率,决定是否转换为汉字。在一个可能的实施例中,所述发生概率可以是,一个具有相同拼音的多个汉字,每个汉字在大量语料中出现的概率。如果需要转换为汉字,将收集所有匹配此拼音节点的汉字,并基于步骤202中的字权重,进行采样选择一个合适的汉字进行转换,生成一段平行语料。
47.在步骤205,在获取的语料和其转移后的平行语料一起会构成一个平行语料对,输入一个分类模型,得到所述平行语料的可信度,根据所述可信度,判断是否采纳所述平行语料作为所述纠错语料。
48.在一个可能的实施例中,由于平行语料可能依然是一个正确的语料,不符合纠错语料的条件,纠错语料应该是一个与该正确语料有关联的无意义的错误语料。所以,将平行语料为错误语料的标签设置为1,平行语料依然为正确语料的标签设置为0,利用特征参数pv(页面访问量,即语料的曝光量)、ctr(点击率,即点击语料的次数占总的展示次数的百分比)训练gbdt二分类机器学习模型,将预测为标签1的平行语料的可信度大于或等于阈值的平行语料纳入纠错语料,弃用预测为标签1的可信度小于阈值的平行语料。
49.采用上述两个特征参数训练的分类模型,将具备对中文的同义词、近义词的识别能力,并且在分类时融合了用户是否会点击纠错后的语料,还是继续选择未纠错的语料的情况,使得分类结果更加符合真实情况。
50.对于同一个语料,可以多次重复本公开的方法,生成多个纠错语料,将纠错语料形成一个语料集合,作为训练自动纠错模型的语料库。
51.本公开通过对用户拼写错误进行建模,构建了拼音转移图,生成了可靠的纠错语料,以这些纠错语料为训练集合库,能有效提升自动纠错模型的训练效果,同时生成纠错语料时不依赖人工标注、对齐和大量的前置工作,可以用更低的成本生成更大规模的纠错语料数据集。同时,生成纠错语料时,不依赖于用户历史行为,可以使生成的纠错语料实现对长尾样本的覆盖。
52.由于构建拼音转移图时模拟了用户的输入习惯,以及采用了统计手段得到了每一个输入错误情况的概率,每一个语料的出错概率,出错字符数等,所以生成的纠错语料是符合真实情况的,是更可信和更符合用户习惯的拼写错误语料。
53.本公开在真实场景下具有较强的可行性,基于gbdt二分类机器学习的分类模型经过训练,可以很容易的区分中文中的同义词和近义词,无需再次进行人工筛选。
54.图3示出了根据本公开实施例的典型的拼音前缀树转移图的示意图。
55.在一个可能的实施例中,构建拼音前缀树转移图的方法可以是:根据《通用规范汉字表》收集约一万数据量的汉字及其拼音的映射关系。经统计共得到410个不同的去声调的拼音类型。根据字母的排列顺序和拼音间的最大前缀,自下而上地构建拼音前缀树。并且根据节点间的拼音的编辑距离作为节点的边权重,对一个拼音节点和与其具有公共前缀的更短拼音节点,构建拼音前缀树转移图,且该拼音前缀树转移图是有向图,只会从长的拼音转移到短的拼音,即以最长拼音前缀为树冠,以最短拼音前缀为树根,位于树冠的拼音节点指向位于树根的拼音节点。
56.此方法的优点是,尽量真实的模拟了用户少打、漏打拼音的行为,或者误触了回车等,造成拼音还未转换为汉字的情况。且此拼音前缀树转移图考虑了由于不同的字母在键盘的位置不同,从而对用户输入造成的影响,设置了对应的边权重。也可以使用其他方法生成拼音前缀树转移图,本公开对此不作限制。
57.图4示出了根据本公开实施例的典型的拼音模糊音转移图的示意图。
58.在一个可能的实施例中,构建拼音模糊音转移图的方法可以是:由于不同的地区的人对于同一个字可能会有不同的发音,从而导致用户输入过程中常常会根据自己的口音而输入一个相近发音的模糊拼音。本公开根据常见的口音差异,收集了约200种模糊拼音对,例如(zhan,zan)、(kang,kan)。每一个模糊拼音对可以连接成拼音节点,构成拼音模糊音转移图。拼音模糊音转移图上的所有边权重都为1。也可以使用其他方法生成拼音模糊音转移图,本公开对此不作限制。
59.此方法的优点是,由于模拟拼音的随机性太大,为了尽可能多的生成不同的纠错语料,因此将边权重都设置为相同的数值,在多次的重复实现后,每一个模糊拼音都能被采样到。
60.图5示出了根据本公开实施例的典型的拼音键盘转移图的示意图。
61.在一个可能的实施例中,生成拼音键盘转移图的方法可以是:由于移动互联网的兴起,九宫格输入法和二十六键输入法作为用户量最大的两种输入方式。本公开根据这两种不同的输入方法的键位布局,建立九宫格键盘坐标系和二十六键坐标系,以键盘的左下角为原点,向右为x轴,向上位y轴,用earth

mover距离来定义相同坐标系下的两个字母间的距离,并根据不同键盘布局的使用概率,采用两个坐标下的距离进行加权和,权重概率可以是手机端和电脑端的使用比例(即不同键盘布局的使用概率)。将加权和定义为字母间的键盘距离。将键盘距离的倒数作为边权重,连接不同的拼音节点。同时,并在拼音键盘转移图中插入不是拼音,但是可能通过字母转移过去的伪拼音节点。例如对于拼音hao,可以将o转化为j,即将拼音hao转化为伪拼音haj。拼音节点和伪拼音节点共同构成拼音键盘转移图。也可以使用其他方法生成拼音键盘转移图,本公开对此不作限制。
62.此方法的优点是,实际中,除了口音造成的拼写错误,还有一个较多的来源是来自用户的键盘输入错误,通过该方法,尽量模拟了用户敲击键盘时的错误来源,并充分考虑了键盘中字母的位置造成的错误,以及正确与错误字母之间组合后产生错误的多种可能性。
63.图6示出了根据本公开实施例的典型的自动生成纠错语料的系统的示意图。
64.自动生成纠错语料系统600包括:语料获取单元601,用于获取正确的语料,触发一个拼音转移图;改错点单元602,用于根据所述语料的字权重和出错权重,得到改错点;
映射单元603,用于将所述改错点的字符映射为所述拼音转移图的对应节点,以所述对应节点为起点,根据所述拼音转移图的边权重进行转移,得到转移后的拼音节点;平行语料单元604,用于根据所述转移后的拼音节点和错误模型,将所述转移后的拼音节点转换为对应的平行语料;可信度单元605,用于将所述平行语料通过分类模型,得到所述平行语料的可信度,根据所述可信度,判断是否采纳所述平行语料作为所述纠错语料。
65.图7示出了用于实现本公开的实施例的电子设备的结构示意图。如图7所示,电子设备700包括中央处理单元(cpu)701,其可以根据存储在只读存储器(rom)702中的程序或者从存储部分708加载到随机访问存储器(ram)703中的程序而执行各种适当的动作和处理。在ram703中,还存储有电子设备700操作所需的各种程序和数据。cpu 701、rom 702以及ram 703通过总线704彼此相连。输入/输出(i/o)接口705也连接至总线704。
66.以下部件连接至i/o接口705:包括键盘、鼠标等的输入部分706;包括诸如阴极射线管(crt)、液晶显示器(lcd)等以及扬声器等的输出部分707;包括硬盘等的存储部分708;以及包括诸如lan卡、调制解调器等的网络接口卡的通信部分709。通信部分709经由诸如因特网的网络执行通信处理。驱动器710也根据需要连接至i/o接口705。可拆卸介质711,诸如磁盘、光盘、磁光盘、半导体存储器等等,根据需要安装在驱动器710上,以便于从其上读出的计算机程序根据需要被安装入存储部分708。
67.特别地,根据本公开的实施例,上文参考流程图描述的过程可以被实现为计算机软件程序。例如,本公开的实施例包括一种计算机程序产品,包括承载指令的在计算机可读介质,在这样的实施例中,该指令可以通过通信部分709从网络上被下载和安装,和/或从可拆卸介质711被安装。在该指令被中央处理单元(cpu)701执行时,执行本公开中描述的各个方法步骤。
68.尽管已经描述了示例实施例,但是对于本领域技术人员来说显而易见的是,在不脱离本公开构思的精神和范围的情况下,可以进行各种改变和修改。因此,应当理解,上述示例实施例不是限制性的,而是说明性的。
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1