文本纠错方法和系统与流程

文档序号:32411942发布日期:2022-12-02 21:36阅读:232来源:国知局
文本纠错方法和系统与流程

1.本公开涉及文本处理领域,具体涉及文本纠错方法和系统。


背景技术:

2.文本纠错可应用于越来越多的场景。例如,在金融风险监控名单扫描产品中,识别客户信息或交易信息的错误拼写、或者客户有意修改基本信息如人名、地名、公司名等规避行为,能够提高金融风险监控名单扫描的准确性和风险覆盖率。另外,在搜索场景中,用户在输入搜索词时有可能出现错误,此时也需要进行文本纠错。
3.目前文本纠错面临的一个重要挑战是语言特点多样性问题。例如,印尼语与英语发音接近,用户在输入时倾向于按照发音输入,因此很容易将“pampers”错写为“pempes”。此外,越南语有的语音需要使用不同的字母来表示,如c/k/q和d/gi的存在、i和y的并存,拼写上显得有些混乱,容易导致文本错误。
4.目前的文本纠错方案大多数着重于单语种纠错,且存在各种缺陷。对于多语种纠错,现有技术尚没有合适的解决方案。
5.有鉴于此,期望提供一种针对多语种的改进的文本纠错方法和系统。


技术实现要素:

6.以下给出一个或多个方面的简要概述以提供对这些方面的基本理解。此概述不是所有构想到的方面的详尽综览,并且既非旨在标识出所有方面的关键性或决定性要素亦非试图界定任何或所有方面的范围。其唯一的目的是以简化形式给出一个或多个方面的一些概念以作为稍后给出的更详细描述之序言。
7.本公开提出了一种文本纠错方法,包括:接收待纠错文本;使用多种分词方法将待纠错文本切分成多种粒度的子词序列;对每种粒度的子词序列进行纠错以获得每种粒度的候选纠错文本;融合各种粒度的候选纠错文本以确定目标纠错文本;以及输出所确定的目标纠错文本。
8.在本公开的一实施例中,待纠错文本是多语言文本或单语言文本。
9.在本公开的一实施例中,对每种粒度的子词序列进行纠错进一步包括:通过纠错模型对每种粒度的子词序列进行纠错,其中该纠错模型用不同语言的训练数据融合训练。
10.在本公开的一实施例中,训练是通过生成对抗网络来实现的。
11.在本公开的一实施例中,多种分词方法包括以下一者或多者:bie分词方法、bpe分词方法、字符级分词方法。
12.在本公开的一实施例中,纠错包括纠正以下一种或多种错误:拼写错误、语法错误、逻辑错误。
13.在本公开的一实施例中,融合各种粒度的候选纠错文本以确定目标纠错文本进一步包括:对各种粒度的候选纠错文本进行softmax函数处理以确定最优的候选纠错文本作为目标纠错文本。
14.本公开还提出了一种文本纠错系统,包括:接收模块,接收待纠错文本;分词模块,使用多种分词方法将待纠错文本切分成多种粒度的子词序列;候选纠错文本模块,对每种粒度的子词序列进行纠错以获得每种粒度的候选纠错文本;目标纠错文本模块,融合各种粒度的候选纠错文本以确定目标纠错文本;以及输出模块,输出所确定的目标纠错文本。
15.在本公开的一实施例中,待纠错文本是多语言文本或单语言文本。
16.在本公开的一实施例中,候选纠错文本模块还被配置成:通过纠错模型对每种粒度的子词序列进行纠错,其中该纠错模型用不同语言的训练数据融合训练。
17.在本公开的一实施例中,训练是通过生成对抗网络来实现的。
18.在本公开的一实施例中,多种分词方法包括以下一者或多者:bie分词方法、bpe分词方法、字符级分词方法。
19.在本公开的一实施例中,纠错包括纠正以下一种或多种错误:拼写错误、语法错误、逻辑错误。
20.在本公开的一实施例中,目标纠错文本模块还被配置成:对各种粒度的候选纠错文本进行softmax函数处理以确定最优的候选纠错文本作为目标纠错文本。
21.本公开还提出了一种计算机可读存储介质,其存储计算机程序,该计算机程序能被处理器执行以执行前述文本纠错方法。
22.本公开的技术方案提出了一种统一模型以解决不同语种的纠错问题。通过多粒度表征融合,不需要处理未登录词(out-of-vocabulary)问题。同时,多语言融合训练和生成对抗网络能够学习不同语言拼写特性,进一步提高纠错效果。
附图说明
23.结合附图理解下面阐述的详细描述时,本公开的特征、本质和优点将变得更加明显。在附图中,相同附图标记始终作相应标识。要注意,所描述的附图只是示意性的并且是非限制性的。在附图中,一些部件的尺寸可放大并且出于解说性的目的不按比例绘制。
24.图1示出了本公开一实施例的文本纠错的系统示意图。
25.图2示出了使用bie分词的半字符级循环神经网络(scrnn)模型的示意图。
26.图3示出了本公开一实施例的encoder-decoder模块的示意图。
27.图4示出了本公开一实施例的文本纠错方法的示例性流程图。
28.图5示出了本公开一实施例的生成对抗网络的示意图。
29.图6示出了本公开一实施例的文本纠错架构的示意图。
30.图7示出了本公开一实施例的文本纠错系统的框图。
31.图8示出了本公开一实施例的包括文本纠错系统的设备框图。
具体实施方式
32.为使本公开的目的、技术方案和优点更加清楚明白,以下结合具体实施例,并参照附图对本公开进一步详细说明。在以下详细描述中,阐述了许多具体细节以提供对所描述的示例性实施例的透彻理解。然而,对于本领域技术人员显而易见的是,可以在没有这些具体细节中的一些或全部的情况下实践所描述的实施例。在其它示例性实施例中,没有详细描述公知的结构,以避免不必要地模糊本公开的概念。应当理解,本文所描述的具体实施例
仅仅用以解释本公开,并不用于限定本公开。同时,在不冲突的情况下,实施例所描述的各个方面可以任意组合。
33.对于文本错误,现有技术提供了若干文本纠错方法。
34.规则算法采用一些人为定义的规则来进行错误查找和错误纠正。这种算法需要较多的人工干预,并且需要事先知道有哪些错误情况以及简写情况才能设置规则。
35.n-gram算法假设一个字或词的出现仅与前n个词相关(n通过人为设定),句子整体的概率等于所有词语搭配概率的乘积。词语概率的计算方法使用了概率论中的条件概率。此外,n-gram算法用频数计算来计算频率代替概率。通过计算一个词语的n-gram分数来评估该词语是否合理,以此检测错误词语。n-gram算法利用了上下文信息,但是在文本纠错的精度方面受限。
36.word2vec算法生成一个包含语料库中的每个独特单词的向量空间(通常为几百维),在语料库中拥有共同上下文的单词在向量空间中的位置相对靠近。word2vec利用词向量的相似度来进行纠错。然而,word2vec算法在纠错词和实际词的语义相似度相差很大时会无法纠错,而且对于人名、公司名等具有较多未登录词的情况纠错效果有限。
37.rnn(循环神经网络)算法可以根据短文本的输入,自动生成并输出纠错后的序列文本,输出的文本也是通顺的。但rnn无法满足基于输入的短文本来控制输出文本的生成,也无法使输入短文本和纠错后的输出短文本具有良好的相关性。
38.广泛应用于机器翻译场景的seq2seq模型由也可以应用于文本纠错场景。在用户输入错误文本时,可以看作是给定错误文本序列、输出正确文本序列的条件概率最大化问题,因此也是一种序列到序列(sequence-to-sequence)的过程。seq2seq模型容易收敛,对长文本效果较好。然而,seq2seq模型生成的输出文本不受输入文本支持,需要大量训练数据才能实现相对良好的性能。此外,由于seq2seq模型通常逐词生成输出,因此其纠错速度较慢。
39.现有技术的上述文本纠错算法存在各种缺陷,且对于多语种纠错没有很好的效果。由此,本公开提出了一种改进的文本纠错方法和系统。
40.本公开的技术方案通过使用多种分词方法将待纠错文本切分成多种粒度的子词序列,对每种粒度的子词序列进行纠错以获得每种粒度的候选纠错文本,并融合各种粒度的候选纠错文本以确定目标纠错文本。同时,本公开的技术方案将不同语言的训练数据融合在一起进行训练以获得纠错模型,并利用该纠错模型对子词序列进行纠错。本公开的技术方案融合了不同粒度的表达,进一步提高了纠错精度。同时通过多语言联合训练来学习不同语言的拼写特性,使得能够对多语言文本进行纠错。
41.图1示出了本公开一实施例的文本纠错的系统示意图100。
42.如图1所示,训练数据(例如,训练文本)首先经过多种分词方式进行分词,得到相应的子词序列。
43.图1中示出了三种分词方式:bie(begining,internal,ending)分词、bpe(byte pair encoding)分词和char(字符级)分词。这些分词方式具有不同的粒度。关于各个分词方式的详细介绍将在下文进一步描述。
44.训练数据经过分词之后将得到不同粒度的子词序列。这些子词序列随后经过相应的encoder-decoder(编码器-解码器)模块进行纠错,得到的经纠错数据经过softmax融合
处理后输出。
45.应注意,图1的系统示意图仅是示例性的而非限制性的。虽然在图1中示出了三种特定的分词方式,但在实际实现中,可以采用多于或少于三种分词方式,也可以采用其他分词方式(例如,word(单词级)分词方法、基于hmm(隐马尔可夫模型)的分词方法等等)。同时,虽然图1中采用softmax来对各个encoder-decoder模块的输出进行融合处理,但在实际实现中,本领域技术人员也可以采用其他融合处理方式(诸如voting、averaging等等)。
46.结合图2对bie分词进行具体描述。图2示出了使用bie分词的半字符级循环神经网络(semi-character recurrent neural network,scrnn)模型200的示意图。
47.剑桥大学的一项研究表明,对于一个单词而言,字母的顺序并非特别重要,最重要的是首字母和末尾字母一定要在自己的正确位置上。其他位置上的字母即使都是乱序的,读者仍然能够顺畅地阅读,完全不受影响,这被称为剑桥效应。
48.举例而言,对于乱序的文本“aoccdrnig to a rscheearch at cmabrigde uinervtisy”,虽然该文本中多个单词的字母顺序混乱,但各个单词的首尾字母的位置均正确。读者在阅读时可以理解该文本的正确顺序应为“according to a research at cambridge university”。
49.在scrnn模型200中,采用了bie分词方法对待纠错文本进行分词。
50.bie分词将一个单词拆分成了首字符、尾字符、中间字符三部分进行表示。scrnn模型对首字符和尾字符采用独热编码(one-hot encoding),对中间字符使用词袋(bag-of-words)模型。
51.独热编码也被称为一位有效编码,其使用n位状态寄存器来对n个状态进行编码,每个状态都有它独立的寄存器位,并且在任意时刻只有一位有效(即,只有一位是1,其余都是0)。
52.例如,采用独热编码对6个状态进行编码将得到:
53.000001,000010,000100,001000,010000,100000。
54.词袋模型忽略文本的语法和语序等要素,将文本仅仅看作是若干个词汇的集合,文本中每个单词的出现都是独立的。词袋模型使用一组无序的单词来表达一段文本。
55.以下述文本为例:
56.john likes to watch movies.mary likes too.
57.john also likes to watch football games.
58.基于文本中出现的单词,词袋模型可以构建如下词典:
59.{"john":1,"likes":2,"to":3,"watch":4,"movies":5,"also":6,"football":7,"games":8,"mary":9,"too":10}
60.该词典中包含10个单词,每个单词有唯一的索引。上述文本可以用10维向量表示如下:
61.[1,2,1,1,1,0,0,0,1,1]
[0062]
[1,1,1,1,0,1,1,1,0,0]
[0063]
向量中每个元素的数值是词典中每个单词在文本中出现的频率,而每个元素的顺序与原来文本中单词出现的顺序没有关系。
[0064]
举例而言,“orange”通过bie分词可以拆分成首字符“o”、中间字符“rang”和尾字
符“e”三个部分。通过对首字符和尾字符采用独热编码,对中间字符使用词袋模型(假设字符表是26维,分别代表a、b、c、
……
、z这26个字母),则可以得到:
[0065]
o:
[0066]
[0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0],
[0067]
rang:
[0068]
[1,0,0,0,0,0,1,0,0,0,0,0,0,1,0,0,0,1,0,0,0,0,0,0,0,0],
[0069]
e:
[0070]
[0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]。
[0071]
同样地,在图2中,输入单词“aoccdrnig”可以被分成首字符“a”、中间字符“occdrni”和尾字符“g”三个部分。这三个部分经过对应的编码之后输入到lstm(long short term memory,长短期记忆)模型中,输出结果与正确拼写的单词做交叉熵损失,训练得到scrnn模型。
[0072]
从图2可以看出,输入的待纠错文本“aoccdrnig to a rscheearch”经过bie分词后输入相应的lstm模型,经过softmax处理后得到经纠错的正确文本“according to a research”。由此可见,bie分词方式对于首尾字符位置正确的文本具有良好的纠错效果。
[0073]
图3示出了本公开一实施例的encoder-decoder模块300的示意图。
[0074]
如图所示,encoder-decoder模块300主要包括encoder(编码器)和decoder(解码器)两个部分。
[0075]
图3中的每个方框表示一个rnn单元,通常为lstm或gru(gate recurrent unit,循环门单元)。图中的《go》表示decoder端的句子起始标识符。
[0076]
在encoder部分,输入序列(a、b、c、d)首先进行embedding(嵌入),之后传递给rnn单元。rnn单元将输入的文本编码成固定大小的状态向量s,并将s传递给decoder。
[0077]
为了使模块更加稳健,decoder可以包括两个decoder:训练decoder和预测decoder。这两个decoder可以共享参数,训练decoder在训练过程中习得的参数可以由预测decoder用来进行预测。为简单起见,图中仅示出了预测decoder。
[0078]
在训练阶段,训练decoder并不会将每个rnn单元的预测输出作为下一rnn单元的输入,而是直接使用训练数据集中的数据输入到训练decoder的每个rnn单元。
[0079]
在预测阶段,预测decoder将每个rnn单元的预测结果作为下一rnn单元的输入。如图3所示,预测decoder的第一rnn单元的预测结果x可以作为第二rnn单元的输入,而第二rnn单元的预测结果y可以作为第三rnn单元的输入,以此类推。
[0080]
预测decoder通过对从encoder传递的状态向量s进行预测,得到输出序列(x、y、z)。
[0081]
虽然图3示出了特定的encoder-decoder模块,但这仅是示例性的而非限制性的。在具体实现中,本领域技术人员可以采用各种不同的encoder-decoder模块。
[0082]
图4示出了本公开一实施例的文本纠错方法400的示例性流程图。
[0083]
方法400开始于步骤402。在步骤402,接收待纠错文本。
[0084]
在本公开的一实施例中,待纠错文本可以是多语言文本或单语言文本。
[0085]
例如,待纠错文本可以是单一的中文文本、英文文本、或印尼语文本,也可以是同时包含中文、英文和印尼语等多种语言的文本。
[0086]
在本公开中,由于在训练阶段使用不同语言的训练数据进行融合训练,因此得到的纠错模型能够对多种语言进行纠错。由此,本公开的文本纠错方法对于多语言文本和单语言文本两者均适用。
[0087]
在步骤404,使用多种分词方法将待纠错文本切分成多种粒度的子词序列。
[0088]
在本公开的一实施例中,该多种分词方法包括以下一者或多者:bie分词方法、bpe分词方法、字符级分词方法。
[0089]
关于bie分词方法已经在上文结合图2进行了描述。
[0090]
bpe分词方法的大致原理为:在每一步将最常见的一对相邻数据单位替换为该数据中没有出现过的一个新单位,反复迭代直到满足停止条件。
[0091]
举例而言,假设以下输入文本需要进行bpe分词:aaabdaaabac。
[0092]
相邻字节对(相邻数据单位在bpe分词中被视为相邻字节对)aa在该数据中最常出现,因此在第一步使用一个新字节(例如,z)来替换aa。由此得到zabdzabac,其中z=aa。
[0093]
在下一步,最常出现的字节对是ab,因此使用一个新的字节(例如,y)来替换ab。由此得到zydzyac,其中z=aa,y=ab。
[0094]
zydzyac中剩下的唯一字节对是ac,该字节对仅有一个,因此无需对它进行编码。
[0095]
接着,可以递归地使用x来替换zy。由此得到xdxac,其中x=zy,y=ab,z=aa。
[0096]
由于xdxac中没有出现多次的字节对,因此无法进一步迭代。至此,bpe分词结束。
[0097]
bpe分词对文本的错写位置较为敏感,能够将罕见的词语分割成多个频繁出现的子词单元。将这种分词方式应用到文本纠错任务中,有助于解决稀有词和未登录词问题。
[0098]
字符级分词放弃了词语所具有的语义信息,将原始文本拆分成字符。对于英文而言,字符级分词将原始文本拆分成各个字母,比如将"china"拆分为"c","h","i","n","a"。对于中文而言,字符级分词将原始文本拆分成各个汉字,比如将"中国"拆分为"中","国"。
[0099]
字符级分词可以极大地提升能够处理的词汇量,并且能弹性地处理拼写错误和罕见词问题。同时,由于字符级分词的词汇库很小,以英文为例,英文字母总共二十六个,中文常用字也仅有几千个,因此字符级分词的计算成本更低。这种性质使得在预算有限时也能达到较快的训练速度。
[0100]
上述这些分词方法具有不同的分词粒度,且具有各自的优点。这使得经过分词后得到的子词序列具有不同的粒度。通过对这些不同粒度的表达进行融合,可以整合不同分词方法的优点,进一步提高文本纠错的精度。
[0101]
在步骤406,对每种粒度的子词序列进行纠错以获得每种粒度的候选纠错文本。
[0102]
在本公开中,纠错包括纠正以下一种或多种错误:拼写错误、语法错误、逻辑错误。
[0103]
举例而言,用户在搜索场景中有可能将搜索词“orange”错误地输入为“oragne”,该错误即为拼写错误,纠错后为“orange”。如果出现“将近十万多立方米”,此为语法错误,纠错后为“将近十万立方米”或“十万多立方米”。如果出现“徐悲鸿先生是作家”,此为逻辑错误,纠错后为“徐悲鸿先生是画家”。
[0104]
应注意,虽然此处示出了三种错误,但本公开不限于此。在实际实现中,还可以对其他文本错误(例如,标点错误、用法错误等)进行纠错。
[0105]
在本公开的一实施例中,对每种粒度的子词序列进行纠错进一步包括:通过纠错模型对每种粒度的子词序列进行纠错,其中该纠错模型用不同语言的训练数据融合训练。
在训练阶段,通过使用不同语言的训练数据进行融合训练,可以学习不同语言的拼写特性,使得获得的纠错模型能够对多种语言进行纠错。
[0106]
在本公开的一实施例中,该训练是通过生成对抗网络来实现的。关于生成对抗网络的细节将在下文结合图5进一步描述。
[0107]
通过多语言联合训练和生成对抗网络,能够学习不同语言的语言特性,进一步提高纠错性能。
[0108]
在步骤408,融合各种粒度的候选纠错文本以确定目标纠错文本。
[0109]
在本公开的一实施例中,融合各种粒度的候选纠错文本可以包括:对各种粒度的候选纠错文本进行softmax函数处理。通过softmax函数处理得到优选的候选纠错文本作为目标纠错文本。
[0110]
应注意,虽然图4中采用softmax来实现对各种粒度的候选纠错文本的融合,但这仅是示例性的而非限制性的。在实际实现中,本领域技术人员可以根据实际情况采用除了softmax之外的其他融合方式。
[0111]
最后,在步骤410,输出所确定的目标纠错文本。
[0112]
方法400实现了待纠错文本的多粒度表达,不需要处理未登录词问题。同时,方法400通过多语言联合训练和生成对抗网络来学习不同语言的拼写特性,进一步提高了针对多语言文本的纠错效果。
[0113]
图5示出了本公开一实施例的生成对抗网络500的示意图。
[0114]
生成对抗网络(generative adversarial network,简称gan)是一种基于深度学习的生成模型的体系结构,该体系结构主要由generator(生成器)和discriminator(判别器)组成。生成器的作用是通过学习训练集数据的特征,在判别器的指导下,将随机噪声分布尽量拟合为训练数据的真实分布,从而生成具有训练集特征的相似数据。而判别器则负责区分输入的数据是真实的还是生成器生成的假数据,并反馈给生成器。生成器和判别器通过对抗过程交替训练,互相博弈学习并提升各自的性能,直到生成器生成的数据能够以假乱真,并与判别器的能力达到一定均衡。
[0115]
如图5所示,本公开的生成对抗网络500在encoder-decoder框架的基础上增加了一个discriminator。
[0116]
在训练过程中,向encoder同时输入正确文本x和错误文本x'。
[0117]
在本公开的一实施例中,正确文本x和错误文本x'均可以是多语言训练数据集中的多语言文本。例如,训练数据集可以包括中文、英文、印尼语、越南语、马来语、泰语等多种语言。同时,在训练时可以加入语种识别信息,将不同语种的训练数据融合在一起进行联合训练。
[0118]
对于训练数据集中的每个正确文本x,可以有若干个与之对应的错误文本x',以模拟现实中有可能出现的各种错误。
[0119]
举例而言,对于训练数据集中的正确文本“cambridge university”,可以有若干个对应的错误文本,诸如“cmabrigde uinervtisy”、“cambirgde univresity”等等,以模拟现实中有可能出现的各种不同拼写错误。
[0120]
作为另一示例,对于训练数据集中的正确文本“徐悲鸿先生是画家”,可以有若干个对应的错误文本,诸如“徐悲鸿先生是作家”、“徐倍鸿先生是画家”等等,以模拟现实中有
可能出现的逻辑错误和拼写错误。
[0121]
encoder对正确文本x和错误文本x'进行编码之后,输出给decoder和discriminator两者。
[0122]
通过decoder和discriminator的对抗学习,最终使得无论在encoder端输入正确文本还是错误文本,都能够在decoder侧生成正确文本。
[0123]
如图所示,在discriminator和decoder两者的输出侧均定义了相应的损失函数l。
[0124]
通过损失函数l可以估计模型的预测值(例如,由模型预测的正确文本)与真实值(例如,真实的正确文本)的不一致程度。一般而言,损失函数越小,表示模型的稳健性越好。
[0125]
在机器学习领域,可以定义各种不同的损失函数(诸如均方差损失函数、交叉熵损失函数等等)。在本公开的实现中,本领域技术人员可以定义合适的损失函数来指导生成对抗网络的对抗学习。当discriminator和decoder的对抗学习使得损失函数满足预定条件(例如,小于预定阈值)时,可以认为生成对抗网络的性能达到要求,此时可以结束训练。关于生成对抗网络和损失函数的具体实现在本领域是公知的,在此不再赘述。
[0126]
通过图5的生成对抗网络500对多语言训练数据进行融合训练,使得能够在训练过程中学习不同语言的语言特性,从而使最终获得的纠错模型能够对多种语言进行纠错,且具有良好的纠错性能。
[0127]
图6示出了本公开一实施例的文本纠错架构600的示意图。
[0128]
如图6所示,本公开的文本纠错架构600包括三个阶段:融合训练阶段、分词纠错阶段、以及文本纠错阶段。
[0129]
在融合训练阶段,将训练数据输入训练模型(例如,由encoder-decoder框架和discriminator构成的生成对抗网络)进行训练,得到纠错模型。
[0130]
在本公开的一实施例中,训练数据可以包括多语言的训练数据,从而能够在训练过程中对多种语言进行融合训练,使得纠错模型能够对多种语言进行纠错。
[0131]
在分词纠错阶段,首先将待纠错文本切分成多种粒度的子词序列。例如,可以使用上文所述的bie分词方法、bpe分词方法、字符级分词方法来将待纠错文本切分成多种粒度的子词序列。
[0132]
之后,利用融合训练阶段获得的纠错模型对各个粒度的子词序列进行纠错,获得相应粒度的候选纠错文本。
[0133]
以利用bie分词方法、bpe分词方法、字符级分词方法这三种分词为例,在纠错之后可以得到三个对应的候选纠错文本。
[0134]
在文本纠错阶段,将分词纠错阶段获得的多个候选纠错文本进行融合,以确定目标纠错文本。
[0135]
在本公开的一实施例中,可以对各个粒度的候选纠错文本进行softmax函数处理以确定最优的候选纠错文本作为目标纠错文本。最后,输出所确定的目标纠错文本。
[0136]
虽然图6示出了文本纠错架构的三个特定阶段,但应注意,该阶段划分仅是示例性的而非限制性的。
[0137]
图7示出了本公开一实施例的文本纠错系统700的框图。
[0138]
参见图7,系统700可以包括接收模块702、分词模块704、候选纠错文本模块706、目标纠错文本模块708、以及输出模块710。这些模块中的每一者可在一条或多条总线712上直
接或间接地彼此连接或通信。
[0139]
接收模块702可以接收待纠错文本。
[0140]
在本公开的一实施例中,待纠错文本是多语言文本或单语言文本。
[0141]
分词模块704可以使用多种分词方法将待纠错文本切分成多种粒度的子词序列。
[0142]
在本公开的一实施例中,该多种分词方法可以包括以下一者或多者:bie分词方法、bpe分词方法、字符级分词方法。
[0143]
候选纠错文本模块706可以对每种粒度的子词序列进行纠错以获得每种粒度的候选纠错文本。
[0144]
在本公开的一实施例中,纠错包括纠正以下一种或多种错误:拼写错误、语法错误、逻辑错误。
[0145]
在本公开的一实施例中,候选纠错文本模块706还被配置成:通过纠错模型对每种粒度的子词序列进行纠错,其中该纠错模型用不同语言的训练数据融合训练。
[0146]
在本公开的一实施例中,训练是通过生成对抗网络来实现的。
[0147]
目标纠错文本模块708可以融合各种粒度的候选纠错文本以确定目标纠错文本。
[0148]
在本公开的一实施例中,目标纠错文本模块708还被配置成:对各种粒度的候选纠错文本进行softmax函数处理以确定最优的候选纠错文本作为目标纠错文本。
[0149]
输出模块710可以输出所确定的目标纠错文本。
[0150]
虽然图7中示出了系统700的特定模块,但应理解,这些模块仅是示例性的而非限制性的。在不同的实现中,可以组合、拆分、移除这些模块中的一个或多个模块,或者添加另外的模块。例如,在一些实现中,候选纠错文本模块706和目标纠错文本模块708可以被合并成单个模块。在一些实现中,系统700还可以包括附加的模块。
[0151]
图8示出了本公开一实施例的包括文本纠错系统的设备800的框图。
[0152]
该设备示出了一般硬件环境,可在其中根据本公开的示例性实施例应用本公开。
[0153]
现在将参照图8描述设备800,其是可以应用于本公开的各方面的硬件设备的示例性实施例。设备800可以是被配置为执行处理和/或计算的任何机器,可以是但不限于工作站、服务器、台式计算机、膝上型计算机、平板计算机、个人数字助理(pda)、智能电话、或其任何组合。
[0154]
设备800可包括可以经由一个或多个接口与总线812连接或与总线812通信的组件。例如,设备800可包括总线812、处理器802、存储器804、输入设备808、以及输出设备810等等。
[0155]
处理器802可以是任何类型的处理器,并且可包括但不限于通用处理器和/或专用处理器(例如特殊处理芯片)、智能硬件设备(例如,通用处理器、dsp、cpu、微控制器、asic、fpga、可编程逻辑器件、分立的门或晶体管逻辑组件、分立的硬件组件、或其任何组合)。在一些情形中,处理器802可被配置成使用存储器控制器来操作存储器阵列。在其它情形中,存储器控制器(未示出)可被集成到处理器802中。处理器802可以负责管理总线和一般性处理,包括执行存储在存储器上的软件。处理器802还可以被配置成执行本文中所描述的与文本纠错相关的各种功能。例如,处理器802可被配置成:接收待纠错文本;使用多种分词方法将待纠错文本切分成多种粒度的子词序列;对每种粒度的子词序列进行纠错以获得每种粒度的候选纠错文本;融合各种粒度的候选纠错文本以确定目标纠错文本;以及输出所确定
的目标纠错文本。
[0156]
存储器804可以是可实现数据存储的任何存储设备。存储器804可包括但不限于磁盘驱动器、光学存储设备、固态存储器、软盘、软盘、硬盘、磁带或任何其它磁介质、光盘或任何其它光学介质、rom(只读存储器)、ram(随机存取存储器)、高速缓冲存储器和/或任何其它存储器芯片或盒、和/或计算机可从其读取数据、指令和/或代码的任何其它介质。存储器804可存储包括计算机可读指令的计算机可执行软件806,这些指令在被执行时使得处理器执行本文中所描述的与文本纠错相关的各种功能。
[0157]
输入设备808可以是可以用于输入信息的任何类型的设备。
[0158]
输出设备810可以是用于输出信息的任何类型的设备。在一种情形中,输出设备810可以是可显示信息的任何类型的输出设备。
[0159]
本公开的文本纠错方法和系统可以应用于各种领域。例如,在反洗钱制裁名单扫描中,本公开的技术方案可以精确地识别客户信息或交易信息的错误拼写、或者客户有意修改基本信息如人名、地名、公司名等规避行为,从而提高洗钱黑名单扫描的准确性。另外,在搜索场景中,针对用户在输入搜索词时有可能出现的错误,本公开的技术方案也可以精确地进行文本纠错。
[0160]
以上结合附图阐述的详细说明描述了示例而不代表可被实现或者落在权利要求的范围内的所有示例。术语“示例”和“示例性”在本说明书中使用时意指“用作示例、实例或解说”,并不意指“优于或胜过其它示例”。
[0161]
贯穿本说明书引述的“一个实施例”或“一实施例”意指结合该实施例描述的特定特征、结构或特性是包含在本公开的至少一个实施例中的。因此,这些短语的使用可以不仅仅指代一个实施例。此外,所描述的特征,结构或特性可以在一个或多个实施例中以任何合适的方式组合。
[0162]
提供之前的描述是为了使本领域任何技术人员均能够实践本文中所描述的各种方面。对这些方面的各种修改将容易为本领域技术人员所明白,并且在本文中所定义的普适原理可被应用于其它方面。因此,权利要求并非旨在被限定于本文中所示的方面,而是应被授予与语言上的权利要求相一致的全部范围,其中对要素的单数形式的引述除非特别声明,否则并非旨在表示“有且仅有一个”,而是“一个或多个”。除非特别另外声明,否则术语“一些”指的是一个或多个。本公开通篇描述的各个方面的要素为本领域普通技术人员当前或今后所知的所有结构上和功能上的等效方案通过引述被明确纳入于此,且旨在被权利要求所涵盖。
[0163]
还应注意,这些实施例可能是作为被描绘为流程图、流图、结构图、或框图的过程来描述的。尽管流程图可能会把诸操作描述为顺序过程,但是这些操作中有许多操作能够并行或并发地执行。另外,这些操作的次序可被重新安排。
[0164]
虽然已经说明和描述了各种实施例,但是应该理解,实施例不限于上述精确配置和组件。可以在本文公开的设备的布置、操作和细节上作出对本领域技术人员显而易见的各种修改、替换和改进而不脱离权利要求的范围。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1