掌桥专利:专业的专利平台
掌桥专利
首页

文本纠错方法、系统、电子设备以及介质

文献发布时间:2023-06-19 19:28:50


文本纠错方法、系统、电子设备以及介质

技术领域

本公开涉及机器学习和人工智能领域,具体地,涉及文本纠错方法、系统、电子设备以及介质。

背景技术

文本纠错旨在对用户的文本输入进行客观性纠正,如错别字、不规范表达等。通过对大数据的学习,以往的纠错模型会对常见错误进行有效地纠正,却很难学习到尚未见到的错误模式。然而对于一个需要服务于多个不同领域的通用纠错系统,由于领域之间的相关表达和知识具有差别,模型很难在训练中见到所有类型的错误。

发明内容

提供该发明内容部分以便以简要的形式介绍构思,这些构思将在后面的具体实施方式部分被详细描述。该发明内容部分并不旨在标识要求保护的技术方案的关键特征或必要特征,也不旨在用于限制所要求的保护的技术方案的范围。

根据本公开的一些实施例,提供了一种文本纠错方法,包括:获取包括源句和目标句的样本标签,并对样本标签中的源句随机添加掩码,获得带有掩码的源句;将带有掩码的源句输入训练模型,获得预测结果;根据所述样本标签的源句、目标句和预测结果计算精确率和召回率;对多个样本标签的精确率和召回率计算平均精确率和平均召回率,并根据平均精确率和平均召回率计算精确率和召回率的调和平均数F1;以及根据所述调和平均数F1调整所述训练模型,并将调整之后的训练模型作为文本纠错模型。

根据本公开的一些实施例,提供了一种文本纠错系统,包括:掩码添加单元,被配置为获取包括源句和目标句的样本标签,并对样本标签中的源句随机添加掩码,获得带有掩码的源句;预测单元,被配置为将带有掩码的源句输入训练模型,获得预测结果;计算单元,被配置为根据所述样本标签的源句、目标句和预测结果计算精确率和召回率,对多个样本标签的精确率和召回率计算平均精确率和平均召回率,并根据平均精确率和平均召回率计算精确率和召回率的调和平均数F1;以及调整单元,被配置为根据所述调和平均数F1调整所述训练模型,并将调整之后的训练模型作为文本纠错模型。

根据本公开的一些实施例,提供了一种电子设备,包括:存储器;和耦接至存储器的处理器,所述处理器被配置为基于存储在所述存储器中的指令,执行本公开中所述的任一实施例的方法。

根据本公开的一些实施例,提供了一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时执行本公开中所述的任一实施例的方法。

根据本公开的一些实施例,提供了一种计算机程序产品,包括计算机程序,所述计算机程序在被处理器执行时执行本公开中所述的任一实施例的方法。

通过以下参照附图对本公开的示例性实施例的详细描述,本公开的其它特征、方面及其优点将会变得清楚。

附图说明

下面参照附图说明本公开的优选实施例。此处所说明的附图用来提供对本公开的进一步理解,各附图连同下面的具体描述一起包含在本说明书中并形成说明书的一部分,用于解释本公开。应当理解的是,下面描述中的附图仅仅涉及本公开的一些实施例,而非对本公开构成限制。在附图中:

图1示出了相关技术中的纠错模型在EXC上的准确率与在INC上的准确率的对比示意图。

图2示出了通过KL散度表示的利用混淆集的方法对原始数据分布产生的分布差的示意图。

图3示出了根据本公开的示例性实施例,在掩码添加比率尝试取不同值时得到的参数的结果示意图。

图4示出了通过KL散度表示的利用混淆集的方法对原始数据分布产生的分布差与利用本公开的MFT对原始数据分布产生的分布差的比较的示意图。

图5示出了根据本公开的示例性实施例的文本纠错系统的训练方法的示意性流程图。

图6示出了对MFT模型与finetune模型的召回进行比较的示意图。

图7示出了根据本公开的示例性实施例的文本纠错系统的示意性框图。

图8示出了根据本公开的示例性实施例的电子设备的示意性框图。

图9示出了根据本公开的示例性实施例中可采用的计算机系统的示例结构的框图。

应当明白,为了便于描述,附图中所示出的各个部分的尺寸并不一定是按照实际的比例关系绘制的。在各附图中使用了相同或相似的附图标记来表示相同或者相似的部件。因此,一旦某一项在一个附图中被定义,则在随后的附图中可能不再对其进行进一步讨论。

具体实施方式

下面将结合本公开实施例中的附图,对本公开实施例中的技术方案进行清楚、完整地描述,但是显然,所描述的实施例仅仅是本公开一部分实施例,而不是全部的实施例。以下对实施例的描述实际上也仅仅是说明性的,决不作为对本公开及其应用或使用的任何限制。应当理解的是,本公开可以通过各种形式来实现,而且不应该被解释为限于这里阐述的实施例。

应当理解,本公开的方法实施方式中记载的各个步骤可以按照不同的顺序执行,和/或并行执行。此外,方法实施方式可以包括附加的步骤和/或省略执行示出的步骤。本公开的范围在此方面不受限制。除非另外具体说明,否则在这些实施例中阐述的部件和步骤的相对布置、数字表达式和数值应被解释为仅仅是示例性的,不限制本公开的范围。

本公开中使用的术语“包括”及其变型意指至少包括后面的元件/特征、但不排除其它元件/特征的开放性术语,即“包括但不限于”。此外,本公开使用的术语“包含”及其变型意指至少包含后面的元件/特征、但不排除其它元件/特征的开放性术语,即“包含但不限于”。因此,包括与包含是同义的。术语“基于”意指“至少部分地基于”。

整个说明书中所称“一个实施例”、“一些实施例”或“实施例”意味着与实施例结合描述的特定的特征、结构或特性被包括在本公开的至少一个实施例中。例如,术语“一个实施例”表示“至少一个实施例”;术语“另一实施例”表示“至少一个另外的实施例”;术语“一些实施例”表示“至少一些实施例”。而且,短语“在一个实施例中”、“在一些实施例中”或“在实施例中”在整个说明书中各个地方的出现不一定全都指的是同一个实施例,但是也可以指同一个实施例。

需要注意,本公开中提及的“第一”、“第二”等概念仅用于对不同的装置、模块或单元进行区分,并非用于限定这些装置、模块或单元所执行的功能的顺序或者相互依存关系。除非另有指定,否则“第一”、“第二”等概念并非意图暗示如此描述的对象必须按时间上、空间上、排名上的给定顺序或任何其它方式的给定顺序。

需要注意,本公开中提及的“一个”、“多个”的修饰是示意性而非限制性的,本领域技术人员应当理解,除非在上下文另有明确指出,否则应该理解为“一个或多个”。

本公开实施方式中的多个装置之间所交互的消息或者信息的名称仅用于说明性的目的,而并不是用于对这些消息或信息的范围进行限制。

下面结合附图对本公开的实施例进行详细说明,但是本公开并不限于这些具体的实施例。下面这些具体实施例可以相互结合,对于相同或者相似的概念或过程可能在某些实施例不再赘述。此外,在一个或多个实施例中,特定的特征、结构或特性可以由本领域的普通技术人员从本公开将清楚的任何合适的方式组合。

相关技术中纠错模型在多领域的场景下通用性差的问题可归结为:以往的纠错模型会对常见错误进行有效地纠正,却很难学习到尚未见到的错误模式。例如,在SIGHAN的测试集中,67%的样本中的错误,在训练集中出现过一模一样的(这部分被记为INC(inclusive)),剩余33%的样本则没有出现过(这部分被记为EXC(exclusive))。

以往的纠错模型对于那些在训练集中出现过的编辑点拟合得不错,然而在EXC上的准确率非常低,如图1所示。图1中,从左至右分别是精确率(Precision)、召回率(Recall)、F1,它们在EXC上都产生了骤降。其中精确率为正确预测为正的占全部预测为正的比例,召回率为正确预测为正的占全部实际为正的比例,F1为精确率和召回率的调和平均数。根据本公开的优选实施例,可以通过等式:

以上问题被称为泛化能力,泛化能力指的是模型在尚未见过的数据上的表现好坏。

利用混淆集生成更广泛类型的错误,对原有的纠错训练数据进行扩充的方法能够简单有效地生成较为常见的错误模型,使模型能够有更好的性能。举一个简单的例子,目标句:今天天气不错。根据混淆集,“错”有一定概率会被写成“戳”,从而进行替换得到源句:今天天气不戳。

数据扩充是一种增进纠错模型学习效率的方法,对于纠错数据而言,一句话里的含错量是很低的(通常0-1个错),因此模型学习效率较低。一种传统的对纠错数据进行扩充的方式是利用混淆集对句子中的字进行替换,增加含错量,如“今田天气不戳。”→“今天天气不错。”。

然而,混淆集会严重改变数据的原始分布,导致在多领域上的训练性能不可控,从而带来负面效果。

下面利用KL(Kullback–Leibler)散度衡量数据扩充前后,训练集和测试集的分布差异。KL散度是衡量两个分布之间的差异的统计量,它的值越大说明差异越大。

参考图2,用KL指代KL散度,可看到利用混淆集的方法对原始数据分布会产生较大的分布差。

基于此,本公开提出了一种掩码式微调(MFT:Masked Fine Tuning)纠错系统,能够解决纠错模型泛化能力欠佳的问题,同时不会对原始数据分布产生任何影响。其中MFT是一种训练的目标,即模型训练时的优化目标。

传统纠错的训练目标的输入,即源句(source),就是原本需要纠错的句子。纠错模型需要检测并纠正源句中的错误,并输出结果,即目标句(target)。例如,“今天天气不戳。”→“今天天气不错。”,前者是源句,后者是目标句。

根据本公开的实施例,MFT在源句中随机添加掩码(如[MASK]),即对源句中的字进行随机遮盖。使用掩码对源句中的字进行替换,也可被视为一种数据扩充。纠错模型不仅需要对错字进行纠正,还需要根据上下文还原出这些被遮盖位置原有的字。

根据本公开的实施例,MFT对源句中的字进行随机遮盖一般会出现两种情况。第一种情况是遮盖了正确的字,比如“今天天[MASK]不戳。”→“今天天气不错。”,这种情况下,MFT需要通过上下文推测出[MASK]的位置是“气”。第二种情况是遮盖到了错的字,如“今天天气不[MASK]。”→“今天天气不错。”,这种情况下,MFT是不知道源句中有没有错的,需要通过上下文推测出[MASK]的位置是“错”。

也就是说,MFT不仅需要学习纠正错别字,还需要学习句子中的上下文以还原出被随机遮盖的字。根据本公开的实施例,MFT更倾向于让模型通过上下文进行纠错,而不是通过学习错别字。如上面例子中的“不戳”->“不错”,如果模型过分地去记住这种错别字的映射,将损害最终的通用性,因为现实中的情况是多种多样的,“不戳”在一些上下文中,是不需要被纠正的,因此模型真正需要学习的是通过上下文,进行合理地纠错。这增强了纠错模型的泛化能力,从而使它更具有通用性。

根据本公开的实施例,MFT主要应用于预训练语言模型的微调阶段。

在掩码添加上,应该排除那些特殊符号以及英文字母,只去遮盖纯文本,但是判断一个位置的字是不是纯文本,会降低运行效率,并且经过实验发现,只遮盖纯文本所带来的收益是十分有限的。因此,本公开的实施例优选采用最为简单快速的实现方式,均匀选取输入句子中一定比率的字进行遮盖,即用[MASK]替换。

在语言纠错领域,通常用精确率和召回率的调和平均数F1来衡量一个纠错模型的好坏。本文在此基础上提出了袋内F1(inclusive F1)和袋外F1(exclusive F1),可分别缩写为I-F1和E-F1。其中I-F1指的是模型在那些训练时见过的错误上的F1,关键点是“模型见过”。E-F1指的是模型在那些训练时没有见过的错误上的F1,关键点是“模型没有见过”。通过用I-F1和E-F1来表征,能够更好地衡量纠错模型的泛化能力。

关于掩码添加的比率,本公开尝试了不同的取值(0.1、0.2、0.3、0.4、0.5)。如图3所示,其中在掩码的添加比率取0.3时,F1、I-F1和E-F1都最高。当比率过高时,如当比率取0.4、0.5时,性能将出现明显下降,原因在于,过多的掩码会破坏上下文,让模型无法正确预测。

然而,如图3所示,在超过0.2后,误检率(FPR:False Negative Rate)会显著上升。其中误检率为模型将原本对的字认为错的比率。在实际应用中需要误检率比较低。

因此,综合来看,掩码的添加比率取0.2时F1与FPR的综合表现最佳。

虽然图3中未示出,但本公开对掩码的添加比率取值为0.15时的参数也进行了实验,得到在0.15时F1=75.6,I-F1=83.1,E-F1=64.8,FPR=13.5,可知其F1、I-F1和E-F1值均比0.2时要低,FPR却比0.2时要高,因此其各参数表现均不如取0.2时的。

图4中示出了在图2的基础上添加本公开提出的MFT后的对比。参考图4可知,利用混淆集的方法会对原始数据分布产生较大的分布差,而本公开的MFT不会对原始数据分布产生任何影响。

本公开用理论证明了纠错语言模型是在原始语言模型分布下的替换方法,是基于混淆集方法的通用形式。换句话说,混淆集是MFT的一个近似情况。混淆集的方法,一般会默认权重是均匀的,即

图5示出了根据本公开的实施例的文本纠错系统的训练方法的示意性流程图500。

如图5所示,在步骤S510处,获取样本标签,并对样本标签中的源句随机添加掩码,获得带有掩码的源句。这里,样本标签包括源句和目标句。

根据本公开的一个示例实施例,源句为“今天天气不戳。”,目标句为“今天天气不错。”。如前面所记载的,随机添加掩码的比率优选取0.2。“今天天气不戳”共6个字,则可添加一个掩码。例如,经过随机添加掩码获得的带有掩码的源句为“今天天[MASK]不戳。”。

在步骤S520处,将带有掩码的源句输入训练模型,获得预测结果。此处的训练模型可为本领域常用的训练模型。

依然以上述示例进行说明,获得预测结果“今天天气不错。”。

在步骤S530处,根据所述样本标签的源句、目标句和预测结果计算精确率和召回率。

在上述示例中,预测结果“今天天气不错。”与目标句“今天天气不错。”一致,MFT纠错系统的精确率P和召回率R都为100%。

在另一个示例中,样本标签的源句为“今天天七不错。”,目标句为“今天天气不错。”,在随机添加掩码的基础上,预测结果为“今天天七不错。”,则MFT纠错系统的精确率P和召回率R都为0。

在又一示例中,样本标签的源句为“今天天七不错。”,目标句为“今天天气不错。”,在随机添加掩码的基础上,预测结果为“今天天起不错。”,则MFT纠错系统的精确率P和召回率R分别为0和100%。

在步骤S540处,对多个样本标签的精确率和召回率计算平均精确率和平均召回率,并根据平均精确率和平均召回率计算F1。

根据本公开的实施例,根据公式

在步骤S550处,根据F1调整所述训练模型,并将调整之后的训练模型作为文本纠错模型。根据本公开的实施例,只有在F1高于一定阈值的情况下,训练模型才能被用作文本纠错模型。例如在应用于不同的纠错基准时阈值可以是不同的,在不同的领域(例如法律、医疗保健、公文写作等)使用时阈值也可以是不同的。用户可根据所应用的纠错基准和/或所应用的领域,根据实际需要来设置该阈值。

根据本公开的实施例,在获得F1高于一定阈值的文本纠错模型后,可以将待纠错的源句输入所述文本纠错模型,获得纠错后的句子。

根据本公开的优选实施例,可以将样本标签分成两部分,一部分是训练模型见过其中的错误的,另一部分是训练模型没见过其中的错误的。也就是说,源句中的错误对于训练模型是否是第一次出现将多个样本标签分成两类,第一类为源句中的错误对于训练模型是第一次出现,第二类为源句中的错误对于训练模型不是第一次出现。分别对这两类中的各个样本标签的精确率和召回率取平均,得到第一类样本标签的平均精确率和平均召回率以及第二类样本标签的平均精确率和平均召回率。然后根据第一类样本标签的平均精确率和平均召回率计算E-F1,并且根据第二类样本标签的平均精确率和平均召回率计算I-F1,其中E-F1为训练模型在那些训练时没有见过的错误上的F1,并且I-F1为训练模型在那些训练时见过的错误上的F1。

本公开提出的掩码式微调纠错训练的学习方法,能够大幅度提升模型的学习效率,从而有着更强的通用性。本公开中的掩码式微调纠错学习方法可以应用于任何语种的纠错模型。

将本公开中的MFT纠错训练方法应用于常用的中文纠错基准国际计算语言学会中文语言处理小组(SIGHAN:Special Interest Group for Chinese Language Processingof the Association for Computational Linguistics)与另一中文纠错基准错误一致拼写(ECSpell:Error Consistent Spelling),性能均能达到最高水平。将本公开中的MFT纠错训练方法应用于少样本(甚至零样本)学习,性能也远超基线模型(BERT)。

根据本公开的一个示例性实施例,对本公开的MFT模型与finetune模型进行了比较。

如图6所示,针对同样的源句“吴阿姨年级大了”、“新的机器有可能声影少一点”和“每个人的自由跟权力怎么办”,本公开的MFT模型与finetune模型召回的候选字不同。

MFT模型能够召回多个符合当前语境的候选,如“年纪”、“声响”,而finetune模型更倾向于召回错别字,如“年机”(同音)、“声景”(同形)。

如下面表1-表4所示,通过与各种不同模型应用于不同纠错基准时的对比可以看出,通过应用本公开的MFT,使得各种性能不光在E-F1上显著得到提升,在I-F1上同样得到提升,表明本公开中提出的训练方法确实提高了模型的泛化能力。其中表1-表4中的各参数均是在掩码添加比率为0.2的基础上获得的。

表1:精确率、召回率与F1参数比较

表2:在法律、医疗保健和公文写作领域的F1比较

表3:在法律、医疗保健和公文写作领域的F1比较

表4:在法律、医疗保健和公文写作领域的I-F1与E-F1比较

图7示出了根据本公开的示例性实施例的文本纠错系统700的框图。

如图7所示,该文本纠错系统700包括掩码添加单元71,配置为获取样本标签,并对样本标签中的源句随机添加掩码,获得带有掩码的源句。这里,样本标签包括源句和目标句。如前面所记载的,优选地,随机添加掩码的比率取0.2。

如图7所示,该文本纠错系统700还包括预测单元72,配置为将带有掩码的源句输入训练模型,获得预测结果。

如图7所示,该文本纠错系统700还包括计算单元73,配置为根据样本标签的源句、目标句和预测结果计算精确率和召回率,对多个样本标签的精确率和召回率计算平均精确率和平均召回率,以及根据平均精确率和平均召回率计算F1。

如图7所示,该文本纠错系统700还包括调整单元74,配置为根据F1调整所述训练模型,并将调整之后的训练模型作为文本纠错模型。

根据本公开的实施例,该调整单元74将F1与一定阈值进行比较,只有在F1高于该阈值的情况下,才将该训练模型用作文本纠错模型。例如在应用于不同的纠错基准时阈值可以是不同的,在不同的领域(例如法律、医疗保健、公文写作等)使用时阈值也可以是不同的。用户可根据所应用的纠错基准和/或所应用的领域,根据实际需要来设置该阈值。

根据本公开的实施例,在获得F1高于一定阈值的文本纠错模型后,该预测单元72还可以被配置为将待纠错的源句输入所述文本纠错模型,获得纠错后的句子。

如图7所示,该文本纠错系统700还可以包括分类单元75,配置为根据源句中的错误对于训练模型是否是第一次出现将多个样本标签分成两类,第一类为源句中的错误对于训练模型是第一次出现,第二类为源句中的错误对于训练模型不是第一次出现。

此外,根据本公开的实施例,该计算单元73还可以被配置为分别对第一类和第二类中的多个样本标签的精确率和召回率取平均,得到第一类样本标签的平均精确率和平均召回率以及第二类样本标签的平均精确率和平均召回率,以及根据第一类样本标签的平均精确率和平均召回率计算E-F1,并且根据第二类样本标签的平均精确率和平均召回率计算I-F1。其中E-F1为训练模型在那些训练时没有见过的错误上的F1,并且I-F1为训练模型在那些训练时见过的错误上的F1。

本公开的实施例提供的文本纠错系统可以实现上述实施例提供的掩码式微调纠错训练的学习方法,其实现原理与技术效果类似,此处不再赘述。

本申请公开的掩码式微调中文纠错系统可服务于各个场景,如聊天、新闻、游戏对话、论坛,以提升内容的质量。

本公开的一些实施例还提供一种电子设备。图8示出了本公开的电子设备8的一些实施例的框图。该电子设备可用来实现根据本公开的任一实施例所述的方法。

例如,在一些实施例中,电子设备8可以为各种类型的设备,例如可以包括但不限于诸如移动电话、笔记本电脑、数字广播接收器、PDA(个人数字助理)、PAD(平板电脑)、PMP(便携式多媒体播放器)、车载终端(例如车载导航终端)等等的移动终端以及诸如数字TV、台式计算机等等的固定终端。例如,电子设备8可以包括显示面板,以用于显示根据本公开的方案中所利用的数据和/或执行结果。例如,显示面板可以为各种形状,例如矩形面板、椭圆形面板或多边形面板等。另外,显示面板不仅可以为平面面板,也可以为曲面面板,甚至球面面板。

如图8所示,该实施例的电子设备8包括:存储器81以及耦接至该存储器81的处理器82。应当注意,图8所示的电子设备8的组件只是示例性的,而非限制性的,根据实际应用需要,该电子设备8还可以具有其它组件。处理器82可以控制电子设备8中的其它组件以执行期望的功能。

在一些实施例中,存储器81用于存储一个或多个计算机可读指令。处理器82用于运行计算机可读指令时,计算机可读指令被处理器82运行时实现根据上述任一实施例所述的方法。关于该方法的各个步骤的具体实现以及相关解释内容可以参见上述的实施例,重复之处在此不作赘述。

例如,处理器82和存储器81之间可以直接或间接地互相通信。例如,处理器82和存储器81可以通过网络进行通信。网络可以包括无线网络、有线网络、和/或无线网络和有线网络的任意组合。处理器82和存储器81之间也可以通过系统总线实现相互通信,本公开对此不作限制。

例如,处理器82可以体现为各种适当的处理器、处理装置等,诸如中央处理器(CPU)、图形处理器(Graphics Processing Unit,GPU)、网络处理器(NP)等;还可以是数字信号处理器(DSP)、专用集成电路(ASIC)、现场可编程门阵列(FPGA)或者其它可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。中央处理元(CPU)可以为X86或ARM架构等。例如,存储器81可以包括各种形式的计算机可读存储介质的任意组合,例如易失性存储器和/或非易失性存储器。存储器81例如可以包括系统存储器,系统存储器例如存储有操作系统、应用程序、引导装载程序(Boot Loader)、数据库以及其它程序等。在存储介质中还可以存储各种应用程序和各种数据等。

另外,根据本公开的一些实施例,根据本公开的各种操作/处理在通过软件和/或固件实现的情况下,可从存储介质或网络向具有专用硬件结构的计算机系统,例如图9所示的计算机系统900安装构成该软件的程序,该计算机系统在安装有各种程序时,能够执行各种功能,包括诸如前文所述的功能等等。图9示出了根据本公开的实施例中可采用的计算机系统的示例结构的框图。

在图9中,中央处理单元(CPU)901根据只读存储器(ROM)902中存储的程序或从存储部分908加载到随机存取存储器(RAM)903的程序执行各种处理。在RAM 903中,也根据需要存储当CPU 901执行各种处理等时所需的数据。中央处理单元仅仅是示例性的,其也可以是其它类型的处理器,诸如前文所述的各种处理器。ROM 902、RAM 903和存储部分908可以是各种形式的计算机可读存储介质,如下文所述。需要注意的是,虽然图9中分别示出了ROM902、RAM 903和存储装置908,但是它们中的一个或多个可以合并或者位于相同或不同的存储器或存储模块中。

CPU 901、ROM 902和RAM 903经由总线904彼此连接。输入/输出接口905也连接到总线904。

下述部件连接到输入/输出接口905:输入部分906,诸如触摸屏、触摸板、键盘、鼠标、图像传感器、麦克风、加速度计、陀螺仪等;输出部分907,包括显示器,比如阴极射线管(CRT)、液晶显示器(LCD),扬声器,振动器等;存储部分908,包括硬盘,磁带等;和通信部分909,包括网络接口卡比如LAN卡、调制解调器等。通信部分909允许经由网络比如因特网执行通信处理。容易理解的是,虽然图9中示出的计算机系统900中的各个装置或模块是通过总线904来通信的,但它们也可以通过网络或其它方式进行通信,其中,网络可以包括无线网络、有线网络、和/或无线网络和有线网络的任意组合。

根据需要,驱动器910也连接到输入/输出接口905。可拆卸介质911比如磁盘、光盘、磁光盘、半导体存储器等等根据需要被安装在驱动器910上,使得从中读出的计算机程序根据需要被安装到存储部分908中。

在通过软件实现上述系列处理的情况下,可以从网络比如因特网或存储介质比如可拆卸介质911安装构成软件的程序。

根据本公开的实施例,上文参考流程图描述的过程可以被实现为计算机软件程序。例如,本公开的实施例包括一种计算机程序产品,其包括承载在计算机可读介质上的计算机程序,该计算机程序包含用于执行流程图所示的方法的程序代码。在这样的实施例中,该计算机程序可以通过通信装置909从网络上被下载和安装,或者从存储装置908被安装,或者从ROM 902被安装。在该计算机程序被CPU 901执行时,执行本公开实施例的方法中限定的上述功能。

需要说明的是,在本公开的上下文中,计算机可读介质可以是有形的介质,其可以包含或存储以供指令执行系统、装置或设备使用或与指令执行系统、装置或设备结合地使用的程序。计算机可读介质可以是计算机可读信号介质或者计算机可读存储介质或者是上述两者的任意组合。计算机可读存储介质例如可以是,但不限于:电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。计算机可读存储介质的更具体的例子可以包括但不限于:具有一个或多个导线的电连接、便携式计算机磁盘、硬盘、随机访问存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、光纤、便携式紧凑磁盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本公开中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。而在本公开中,计算机可读信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了计算机可读的程序代码。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。计算机可读信号介质还可以是计算机可读存储介质以外的任何计算机可读介质,该计算机可读信号介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。计算机可读介质上包含的程序代码可以用任何适当的介质传输,包括但不限于:电线、光缆、RF(射频)等等,或者上述的任意合适的组合。

上述计算机可读介质可以是上述电子设备中所包含的;也可以是单独存在,而未装配入该电子设备中。

在一些实施例中,还提供了一种计算机程序,包括:指令,指令当由处理器执行时使处理器执行上述任一个实施例的方法。例如,指令可以体现为计算机程序代码。

在本公开的实施例中,可以以一种或多种程序设计语言或其组合来编写用于执行本公开的操作的计算机程序代码,上述程序设计语言包括但不限于面向对象的程序设计语言,诸如Java、Smalltalk、C++,还包括常规的过程式程序设计语言,诸如“C”语言或类似的程序设计语言。程序代码可以完全地在用户计算机上执行、部分地在用户计算机上执行、作为一个独立的软件包执行、部分在用户计算机上部分在远程计算机上执行、或者完全在远程计算机或服务器上执行。在涉及远程计算机的情形中,远程计算机可以通过任意种类的网络(,包括局域网(LAN)或广域网(WAN))连接到用户计算机,或者,可以连接到外部计算机(例如利用因特网服务提供商来通过因特网连接)。

附图中的流程图和框图,图示了按照本公开各种实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段、或代码的一部分,该模块、程序段、或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个接连地表示的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或操作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。

描述于本公开实施例中所涉及到的模块、部件或单元可以通过软件的方式实现,也可以通过硬件的方式来实现。其中,模块、部件或单元的名称在某种情况下并不构成对该模块、部件或单元本身的限定。

本文中以上描述的功能可以至少部分地由一个或多个硬件逻辑部件来执行。例如,非限制性地,可以使用的示例性的硬件逻辑部件包括:现场可编程门阵列(FPGA)、专用集成电路(ASIC)、专用标准产品(ASSP)、片上系统(SOC)、复杂可编程逻辑设备(CPLD)等等。

根据本公开的一些实施例,提供了一种文本纠错方法,包括:获取包括源句和目标句的样本标签,并对样本标签中的源句随机添加掩码,获得带有掩码的源句;将带有掩码的源句输入训练模型,获得预测结果;根据所述样本标签的源句、目标句和预测结果计算精确率和召回率;对多个样本标签的精确率和召回率计算平均精确率和平均召回率,并根据平均精确率和平均召回率计算精确率和召回率的调和平均数F1;以及根据所述调和平均数F1调整所述训练模型,并将调整之后的训练模型作为文本纠错模型。

根据本公开的一些实施例,其中调和平均数

根据本公开的一些实施例,该文本纠错方法还包括:根据源句中的错误对于训练模型是否是第一次出现将多个样本标签分成两类,第一类为源句中的错误对于训练模型是第一次出现,第二类为源句中的错误对于训练模型不是第一次出现。

根据本公开的一些实施例,该文本纠错方法还包括:分别对第一类和第二类中的多个样本标签的精确率和召回率取平均,得到第一类样本标签的平均精确率和平均召回率以及第二类样本标签的平均精确率和平均召回率;以及根据第一类样本标签的平均精确率和平均召回率计算E-F1,并且根据第二类样本标签的平均精确率和平均召回率计算I-F1,其中E-F1为训练模型在那些训练时没有见过的错误上的精确率和召回率的调和平均数F1,并且I-F1为训练模型在那些训练时见过的错误上的精确率和召回率的调和平均数F1。

根据本公开的一些实施例,其中对源句随机添加掩码的比率为0.1-0.3,优选取0.2。

根据本公开的一些实施例,该文本纠错方法还包括:将待纠错的源句输入所述文本纠错模型,获得纠错后的目标句。

根据本公开的一些实施例,提供了一种文本纠错系统,包括:掩码添加单元,被配置为获取包括源句和目标句的样本标签,并对样本标签中的源句随机添加掩码,获得带有掩码的源句;预测单元,被配置为将带有掩码的源句输入训练模型,获得预测结果;计算单元,被配置为根据所述样本标签的源句、目标句和预测结果计算精确率和召回率,对多个样本标签的精确率和召回率计算平均精确率和平均召回率,并根据平均精确率和平均召回率计算精确率和召回率的调和平均数F1;以及调整单元,被配置为根据所述调和平均数F1调整所述训练模型,并将调整之后的训练模型作为文本纠错模型。

根据本公开的一些实施例,其中调和平均数

根据本公开的一些实施例,所述文本纠错系统,还包括:分类单元,被配置为根据源句中的错误对于训练模型是否是第一次出现将多个样本标签分成两类,第一类为源句中的错误对于训练模型是第一次出现,第二类为源句中的错误对于训练模型不是第一次出现。

根据本公开的一些实施例,其中所述计算单元还被配置为:分别对第一类和第二类中的多个样本标签的精确率和召回率取平均,得到第一类样本标签的平均精确率和平均召回率以及第二类样本标签的平均精确率和平均召回率;以及根据第一类样本标签的平均精确率和平均召回率计算E-F1,并且根据第二类样本标签的平均精确率和平均召回率计算I-F1,其中E-F1为训练模型在那些训练时没有见过的错误上的精确率和召回率的调和平均数F1,并且I-F1为训练模型在那些训练时见过的错误上的精确率和召回率的调和平均数F1。

根据本公开的一些实施例,其中对源句随机添加掩码的比率为0.1-0.3,优选取0.2。

根据本公开的一些实施例,其中所述预测单元还被配置为:将待纠错的源句输入所述文本纠错模型,获得纠错后的目标句。

根据本公开的一些实施例,提供了一种电子设备,包括:存储器;和耦接至所述存储器的处理器,所述存储器中存储有指令,所述指令当由所述处理器执行时,使得所述电子设备执行本公开中所述的任一实施例的方法。

根据本公开的一些实施例,提供了一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序在被处理器执行时执行本公开中所述的任一实施例的方法。

根据本公开的一些实施例,提供了一种计算机程序产品,包括计算机程序,所述计算机程序在被处理器执行时执行本公开中所述的任一实施例的方法。

以上描述仅为本公开的一些实施例以及对所运用技术原理的说明。本领域技术人员应当理解,本公开中所涉及的公开范围,并不限于上述技术特征的特定组合而成的技术方案,同时也应涵盖在不脱离上述公开构思的情况下,由上述技术特征或其等同特征进行任意组合而形成的其它技术方案。例如上述特征与本公开中公开的(但不限于)具有类似功能的技术特征进行互相替换而形成的技术方案。

在本文提供的描述中,阐述了许多特定细节。然而,理解的是,可以在没有这些特定细节的情况下实施本公开的实施例。在其它情况下,为了不模糊该描述的理解,没有对众所周知的方法、结构和技术进行详细展示。

此外,虽然采用特定次序描绘了各操作,但是这不应当理解为要求这些操作以所示出的特定次序或以顺序次序执行来执行。在一定环境下,多任务和并行处理可能是有利的。同样地,虽然在上面论述中包含了若干具体实现细节,但是这些不应当被解释为对本公开的范围的限制。在单独的实施例的上下文中描述的某些特征还可以组合地实现在单个实施例中。相反地,在单个实施例的上下文中描述的各种特征也可以单独地或以任何合适的子组合的方式实现在多个实施例中。

虽然已经通过示例对本公开的一些特定实施例进行了详细说明,但是本领域的技术人员应该理解,以上示例仅是为了进行说明,而不是为了限制本公开的范围。本领域的技术人员应该理解,可在不脱离本公开的范围和精神的情况下,对以上实施例进行修改。本公开的范围由所附权利要求来限定。

技术分类

06120115928786