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

文本纠错方法、系统、计算机设备及可读存储介质

文献发布时间:2023-06-19 09:44:49


文本纠错方法、系统、计算机设备及可读存储介质

技术领域

本申请涉及自然语言处理领域,特别是涉及文本纠错方法、系统、计算机设备和计算机可读存储介质。

背景技术

中文纠错技术是实现中文语句自动检查、自动纠错的一项重要技术,其目的是提高语言正确性的同时减少人工校验成本。中文纠错技术主要根据字形相似来纠错,是自然语言处理领域检测一段文字是否存在错别字、以及将错别字纠正过来的技术,一般用于文本预处理阶段,同时能显著缓解智能客服等场景下信息获得不准确的问题,例如某些智能问答场景中错别字会影响query理解及对话效果。在通用领域中,中文文本纠错问题是从互联网起始时就一直在寻求解决的问题。在搜索引擎中,一个好的纠错系统能够用户输入的查询词进行纠错提示,或直接展示正确答案。

现有技术中,通过以下几种工具实现文本纠错:(1)错别字词典,构建领域错别字词典;(2)编辑距离,编辑距离采用类似字符串模糊匹配的方法,通过对照正确样本可以纠正部分常见错别字和语病;(3)语言模型,语言模型可以以字或词为纠错粒度。近几年,预训练语言模型开始流行,研究者发现将BERT(Bidirectional Encoder Representationsfrom Transformers,简称BERT)类的模型迁移到了文本纠错中,利用BERT在候选列表中选择一个字符,以在句子的每个位置上进行纠正。

上述几种工具中,构建错别字词典的人工成本较高,仅适用于错别字有限的部分垂直领域;编辑距离的方式通用性不足;语言模型中由于“字粒度”的语义信息相对较弱,其误判率会高于“词粒度”的纠错;“词粒度”则较依赖于分词模型的准确率,为了降低误判率,往往在模型的输出层加入CRF层校对,通过学习转移概率和全局最优路径避免不合理的错别字输出。BERT方法过于粗暴,容易造成高误判率,其BERT的掩码位置是随机选择的,所以并不擅长侦测句子中出现错误的位置,并且BERT纠错未考虑约束条件,导致准确率低。

发明内容

本申请实施例提供了一种文本纠错方法、系统、计算机设备和计算机可读存储介质,结合使用文本的汉字特征和拼音特征,利用Soft-Masked BERT预训练模型进行训练,并结合递归预测及词表过滤对模型进行优化,提高纠错准确率,提升模型效果和性能。

第一方面,本申请实施例提供了一种文本纠错方法,包括:

数据获取步骤,用于获取待纠错文本数据;

负样本构建步骤,用于创建一混淆字表并根据所述混淆字表将所述待纠错文本进行语料替换,生成负样本,具体的,对所述待纠错文本中15%的字符进行随机替换,进一步的,15%被随机替换的字符中,有80%的字符使用所述混淆字表中同音字符进行替换,其余20%的字符使用随机字符进行替换。以这种方式构建样本数据再用于训练模型,能够让训练出的Soft-Masked BERT预训练模型获得较强的同音字混淆错误的纠正能力。

文本纠错步骤,用于将所述待纠错文本数据及所述负样本数据作为训练数据,将所述训练数据的汉字特征和拼音特征分别经一Soft-Masked BERT预训练模型训练后拼接为训练结果,将所述训练结果经一Softmax层计算交叉熵损失并得到纠错结果,其中,所述Soft-Masked BERT预训练模型为一种新提出的神经网络结构,该模型包括一检测网络及一基于BERT的纠正网络,所述Softmax层为机器学习中的函数,用于把输入映射为0-1之间的实数,并且归一化保证和为1。

在其中一些实施例中,所述文本纠错方法还包括模型优化步骤,用于通过递归预测及词表过滤对所述Soft-Masked BERT预训练模型进行优化,为模型训练增加约束,进一步提高纠错准确率及模型的性能。

通过上述步骤,利用Soft-Masked BERT预训练模型,具体使用Soft-Masked BERT预训练模型中的检测网络计算为错误位置的概率,并以概率作为字符特征,提高纠错准确率;使用数据的拼音特征,正确的字一般拼音比较相似,通过使用拼音特征有效缩小搜索正确词的范围;使用了递归预测,降低了误判率;使用了词表过滤,提升了模型的效果和性能。

在其中一些实施例中,所述文本纠错步骤进一步包括:

词向量获取步骤,用于将所述汉字特征和拼音特征分别经Soft-Masked BERT预训练模型训练,得到汉字的词向量和拼音的词向量;

交叉熵损失获取步骤,用于将所述汉字的词向量和拼音的词向量进行拼接后,经一Softmax层计算所述训练数据中各个位置交叉熵损失之和并输出纠错结果。

在其中一些实施例中,所述模型优化步骤进一步包括:

递归预测步骤,用于将经所述文本纠错步骤得到的纠错后的句子再次输入所述Soft-Masked BERT预训练模型进行递归纠错,具体的,所述递归预测步骤包括至少一次递归过程,若两次递归预测结果相同,则停止递归纠错步骤;

词表过滤步骤,用于对所述Soft-Masked BERT预训练模型中的词表进行过滤,使所述Soft-Masked BERT预训练模型纠错时的搜索词语数量≤1000,其中,词表过滤的过滤程度可以调整,优选的,过滤词表中的冠词、介词、副词或连词等字词。

上述实施例考虑到所述Soft-Masked BERT预训练模型为一对一的纠错,即为如果一个句子中有多个错误的位置,一次传播过程可能只纠正了一个位置,因此,通过递归预测提高整个句子的纠错正确率。通过所述词表过滤步骤,显著提升所述Soft-Masked BERT预训练模型的效果和性能。

第二方面,本申请实施例提供了一种文本纠错系统,包括:

数据获取模块,用于获取待纠错文本数据;

负样本构建模块,用于创建一混淆字表并根据所述混淆字表将所述待纠错文本进行语料替换,生成负样本,具体的,对所述待纠错文本中15%的字符进行随机替换,进一步的,15%被随机替换的字符中,有80%的字符使用所述混淆字表中同音字符进行替换,其余20%的字符使用随机字符进行替换。以这种方式构建数据集再用于训练模型,能够让训练出的Soft-Masked BERT预训练模型获得较强的同音字混淆错误的纠正能力。

文本纠错模块,用于将所述待纠错文本数据及所述负样本数据作为训练数据,将所述训练数据的汉字特征和拼音特征分别经一Soft-Masked BERT预训练模型训练后拼接为训练结果,将所述训练结果经一Softmax层计算交叉熵损失并得到纠错结果。

在其中一些实施例中,所述文本纠错系统还包括一模型优化模块,用于通过递归预测及词表过滤对所述Soft-Masked BERT预训练模型进行优化,进一步提高纠错准确率及模型的性能。

通过上述模块,利用Soft-Masked BERT预训练模型,具体使用Soft-Masked BERT预训练模型中的检测网络计算为错误位置的概率,并以概率作为字符特征,提高纠错准确率;使用数据的拼音特征,正确的字一般拼音比较相似,通过使用拼音特征有效缩小搜索正确词的范围;使用了递归预测,降低了误判率;使用了词表过滤,提升了模型的效果和性能。

在其中一些实施例中,所述文本纠错模块进一步包括:

词向量获取模块,用于将所述汉字特征和拼音特征分别经Soft-Masked BERT预训练模型训练,得到汉字的词向量和拼音的词向量;

交叉熵损失获取模块,用于将所述汉字的词向量和拼音的词向量进行拼接后,经一Softmax层计算所述训练数据中各个位置交叉熵损失之和并输出纠错结果。

在其中一些实施例中,所述模型优化模块进一步包括:

递归预测模块,用于将所述文本纠错模块得到的纠错后的句子再次输入所述Soft-Masked BERT预训练模型进行递归纠错,具体的,若两次递归预测结果相同,则停止递归纠错模块;

词表过滤模块,用于对所述Soft-Masked BERT预训练模型中的词表进行过滤,使所述Soft-Masked BERT预训练模型纠错时的搜索词语数量≤1000,其中,词表过滤的过滤程度可以调整,优选的,过滤词表中的冠词、介词、副词或连词等字词。

上述实施例考虑到所述Soft-Masked BERT预训练模型为一对一的纠错,即为如果一个句子中有多个错误的位置,一次传播过程可能只纠正了一个位置,因此,通过递归预测提高整个句子的纠错正确率。通过所述词表过滤步骤,显著提升所述Soft-Masked BERT预训练模型的效果和性能。

第三方面,本申请实施例提供了一种计算机设备,包括存储器、处理器以及存储在所述存储器上并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现如上述第一方面所述的文本纠错方法。

第四方面,本申请实施例提供了一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现如上述第一方面所述的文本纠错方法。

相比于相关技术,本申请实施例提供的文本纠错方法、系统、计算机设备及计算机可读存储介质,利用Soft-Masked BERT预训练模型相较于原生BERT模型提高了纠错效果,本申请使用了数据的拼音特征,正确的字一般拼音比较相似,通过拼音来缩小搜索正确词的范围,进一步提高纠错准确率;另外,还通过递归纠错和词表过滤,显著提升了模型的效果和性能,提升纠正的准确率。

本申请的一个或多个实施例的细节在以下附图和描述中提出,以使本申请的其他特征、目的和优点更加简明易懂。

附图说明

此处所说明的附图用来提供对本申请的进一步理解,构成本申请的一部分,本申请的示意性实施例及其说明用于解释本申请,并不构成对本申请的不当限定。在附图中:

图1是根据本申请实施例的文本纠错方法的流程示意图;

图2是根据本申请实施例的文本纠错系统的结构示意框图;

图3是根据本申请优选实施例的文本文本纠错步骤的原理示意图;

图4是根据本申请优选实施例的Soft-Masked BERT预训练模型原理示意图。

附图说明:

10、数据获取模块;20、负样本构建模块;30、文本纠错模块;

40、模型优化模块;

301、词向量获取模块;302、交叉熵损失获取模块;

401、递归预测模块;402、词表过滤模块。

具体实施方式

为了使本申请的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本申请进行描述和说明。应当理解,此处所描述的具体实施例仅仅用以解释本申请,并不用于限定本申请。基于本申请提供的实施例,本领域普通技术人员在没有作出创造性劳动的前提下所获得的所有其他实施例,都属于本申请保护的范围。

显而易见地,下面描述中的附图仅仅是本申请的一些示例或实施例,对于本领域的普通技术人员而言,在不付出创造性劳动的前提下,还可以根据这些附图将本申请应用于其他类似情景。此外,还可以理解的是,虽然这种开发过程中所作出的努力可能是复杂并且冗长的,然而对于与本申请公开的内容相关的本领域的普通技术人员而言,在本申请揭露的技术内容的基础上进行的一些设计,制造或者生产等变更只是常规的技术手段,不应当理解为本申请公开的内容不充分。

在本申请中提及“实施例”意味着,结合实施例描述的特定特征、结构或特性可以包含在本申请的至少一个实施例中。在说明书中的各个位置出现该短语并不一定均是指相同的实施例,也不是与其它实施例互斥的独立的或备选的实施例。本领域普通技术人员显式地和隐式地理解的是,本申请所描述的实施例在不冲突的情况下,可以与其它实施例相结合。

除非另作定义,本申请所涉及的技术术语或者科学术语应当为本申请所属技术领域内具有一般技能的人士所理解的通常意义。本申请所涉及的“一”、“一个”、“一种”、“该”等类似词语并不表示数量限制,可表示单数或复数。本申请所涉及的术语“包括”、“包含”、“具有”以及它们任何变形,意图在于覆盖不排他的包含;例如包含了一系列步骤或模块(单元)的过程、方法、系统、产品或设备没有限定于已列出的步骤或单元,而是可以还包括没有列出的步骤或单元,或可以还包括对于这些过程、方法、产品或设备固有的其它步骤或单元。本申请所涉及的“连接”、“相连”、“耦接”等类似的词语并非限定于物理的或者机械的连接,而是可以包括电气的连接,不管是直接的还是间接的。本申请所涉及的“多个”是指两个或两个以上。“和/或”描述关联对象的关联关系,表示可以存在三种关系,例如,“A和/或B”可以表示:单独存在A,同时存在A和B,单独存在B这三种情况。字符“/”一般表示前后关联对象是一种“或”的关系。本申请所涉及的术语“第一”、“第二”、“第三”等仅仅是区别类似的对象,不代表针对对象的特定排序。

本实施例提供了一种文本纠错方法。图1是根据本申请实施例的文本纠错方法的流程示意图,参考图1所示,该流程包括如下步骤:

数据获取步骤S10,用于获取待纠错文本数据;

负样本构建步骤S20,用于创建一混淆字表并根据混淆字表将待纠错文本进行语料替换,生成负样本,具体的,对待纠错文本中15%的字符进行随机替换,进一步的,15%被随机替换的字符中,有80%的字符使用混淆字表中同音字符进行替换,其余20%的字符使用随机字符进行替换。以这种方式构建样本数据再用于训练模型,能够让训练出的Soft-Masked BERT预训练模型获得较强的同音字混淆错误的纠正能力。

文本纠错步骤S30,用于将待纠错文本数据及负样本数据作为训练数据,将训练数据的汉字特征和拼音特征分别经一Soft-Masked BERT预训练模型训练后拼接为训练结果,将所述训练结果经一Softmax层计算交叉熵损失并得到纠错结果。

模型优化步骤S40,用于通过递归预测及词表过滤对Soft-Masked BERT预训练模型进行优化,为模型训练增加约束,进一步提高纠错准确率及模型的性能。

通过上述步骤,利用Soft-Masked BERT预训练模型,具体使用Soft-Masked BERT预训练模型中的检测网络计算为错误位置的概率,并以概率作为字符特征,提高纠错准确率;使用数据的拼音特征,正确的字一般拼音比较相似,通过使用拼音特征有效缩小搜索正确词的范围;使用了递归预测,降低了误判率;使用了词表过滤,提升了模型的效果和性能。

在其中一些实施例中,文本纠错步骤S30进一步包括:

词向量获取步骤S301,用于将汉字特征和拼音特征分别经Soft-Masked BERT预训练模型训练,得到汉字的词向量和拼音的词向量;

交叉熵损失获取步骤S302,用于将汉字的词向量和拼音的词向量进行拼接后,经一Softmax层计算训练数据中各个位置交叉熵损失之和并输出纠错结果。

在其中一些实施例中,模型优化步骤S40进一步包括:

递归预测步骤S401,用于将步骤S30纠错后的句子再次输入Soft-Masked BERT预训练模型进行递归纠错,具体的,若两次递归预测结果相同,则停止递归纠错步骤;

词表过滤步骤S402,用于对Soft-Masked BERT预训练模型中的词表进行过滤,使Soft-Masked BERT预训练模型纠错时的搜索词语数量≤1000,其中,词表过滤的过滤程度可以调整,优选的,过滤词表中的冠词、介词、副词或连词等字词。

上述实施例考虑到Soft-Masked BERT预训练模型为一对一的纠错,即为如果一个句子中有多个错误的位置,一次传播过程可能只纠正了一个位置,因此,通过递归预测提高整个句子的纠错正确率。通过词表过滤步骤,显著提升Soft-Masked BERT预训练模型的效果和性能。

下面通过优选实施例对本申请实施例进行描述和说明。

图3是根据本申请优选实施例的文本文本纠错步骤的原理示意图,图4是根据本申请优选实施例的Soft-Masked BERT预训练模型原理示意图,结合参考图1、图3及图4,本实施例将通过步骤S10、S20得到待纠错文本数据及负样本数据作为训练数据,将训练数据的汉字特征x1、x2、x3及x4输入到Soft-Masked BERT预训练模型进行汉字Soft-Masked BERT得到汉字的词向量,而拼音特征x1’、x2’、x3’及x4’则是通过Soft-Masked BERT预训练模型进行拼音Soft-Masked BERT重新训练得到拼音的词向量,二者经concat拼接后经过Softmax层,计算交叉熵损失。

其中,参考图4所示的Soft-Masked BERT预训练模型具体包括检测网络(Detection Network)和纠正网络(Correction Network)两部分,检测网络用于预测字符为错别字的概率,纠正网络用于预测错误校正的概率,具体的,该检测网络由双向GRU网络(英文简称Bi-GRU)组成,用于充分学习输入的上下文信息,输出是每个位置i可能为错别字的概率,即为图中的p

e

式中,e

将上述e

举例而非限制,若待纠错文本数据为“机器学习是人工智能的一个分知”,将该句与负样本输入至Soft-Masked BERT预训练模型中,由检测网络输出每个位置可能是错别字的概率,这里“分知”的“知”是错别字,这里输出的概率就比较大,Soft-Masked BERT预训练模型的Soft-Masked即为Soft-Masking部分将每个位置是错误的概率结合masking字符特征,输出到纠正网络,纠正网络从词表候选词中输出概率最大的认为是正确的字符,具体该待纠错文本对于分知的知输出为“支”,实现文本纠错。

需要说明的是,在上述流程中或者附图的流程图中示出的步骤可以在诸如一组计算机可执行指令的计算机系统中执行,并且,虽然在流程图中示出了逻辑顺序,在某些情况下,也可以以不同于此处的顺序执行所示出或描述的步骤。

本实施例还提供了一种文本纠错系统。图2是根据本申请实施例的文本纠错系统的结构框图。如图2所示,该文本纠错系统包括:数据获取模块10、负样本构建模块20、文本纠错模块30、模型优化模块40等模块。本领域技术人员可以理解,图2中示出的文本纠错系统结构并不构成对文本纠错系统的限定,可以包括比图示更多或更少的模块,或者组合某些模块,或者不同的模块布置。

下面结合图2对文本纠错系统的各个构成模块进行具体的介绍:

数据获取模块10,用于获取待纠错文本数据;

负样本构建模块20,用于创建一混淆字表并根据混淆字表将待纠错文本进行语料替换,生成负样本,具体的,对待纠错文本中15%的字符进行随机替换,进一步的,15%被随机替换的字符中,有80%的字符使用混淆字表中同音字符进行替换,其余20%的字符使用随机字符进行替换。以这种方式构建数据集再用于训练模型,能够让训练出的Soft-MaskedBERT预训练模型获得较强的同音字混淆错误的纠正能力。

文本纠错模块30,用于将待纠错文本数据及负样本数据作为训练数据,将训练数据的汉字特征和拼音特征分别经Soft-Masked BERT预训练模型训练后拼接为训练结果,将该训练结果经一Softmax层计算交叉熵损失并得到纠错结果;

模型优化模块40,用于通过递归预测及词表过滤对Soft-Masked BERT预训练模型进行优化,进一步提高纠错准确率及模型的性能。

其中,文本纠错模块30进一步包括:词向量获取模块301,用于将汉字特征和拼音特征分别经Soft-Masked BERT预训练模型训练,得到汉字的词向量和拼音的词向量;交叉熵损失获取模块302,用于将汉字的词向量和拼音的词向量进行拼接后,经一Softmax层计算训练数据中各个位置交叉熵损失之和并输出纠错结果。模型优化模块40进一步包括:递归预测模块401,用于将纠错后的句子再次输入Soft-Masked BERT预训练模型进行递归纠错,具体的,若两次递归预测结果相同,则停止递归纠错模块;词表过滤模块402,用于对Soft-Masked BERT预训练模型中的词表进行过滤,使Soft-Masked BERT预训练模型纠错时的搜索词语数量≤1000,其中,词表过滤的过滤程度可以调整,优选的,过滤词表中的冠词、介词、副词或连词等字词。

上述实施例考虑到Soft-Masked BERT预训练模型为一对一的纠错,即为如果一个句子中有多个错误的位置,一次传播过程可能只纠正了一个位置,因此,通过递归预测提高整个句子的纠错正确率。通过词表过滤步骤,显著提升Soft-Masked BERT预训练模型的效果和性能。

另外,结合图1描述的本申请实施例文本纠错方法可以由计算机设备来实现。计算机设备可以包括处理器以及存储有计算机程序指令的存储器。

具体地,上述处理器可以包括中央处理器(CPU),或者特定集成电路(ApplicationSpecific Integrated Circuit,简称为ASIC),或者可以被配置成实施本申请实施例的一个或多个集成电路。

其中,存储器可以包括用于数据或指令的大容量存储器。举例来说而非限制,存储器可包括硬盘驱动器(Hard Disk Drive,简称为HDD)、软盘驱动器、固态驱动器(SolidState Drive,简称为SSD)、闪存、光盘、磁光盘、磁带或通用串行总线(Universal SerialBus,简称为USB)驱动器或者两个或更多个以上这些的组合。在合适的情况下,存储器可包括可移除或不可移除(或固定)的介质。在合适的情况下,存储器可在数据处理装置的内部或外部。在特定实施例中,存储器是非易失性(Non-Volatile)存储器。在特定实施例中,存储器包括只读存储器(Read-Only Memory,简称为ROM)和随机存取存储器(Random AccessMemory,简称为RAM)。在合适的情况下,该ROM可以是掩模编程的ROM、可编程ROM(Programmable Read-Only Memory,简称为PROM)、可擦除PROM(Erasable ProgrammableRead-Only Memory,简称为EPROM)、电可擦除PROM(Electrically Erasable ProgrammableRead-Only Memory,简称为EEPROM)、电可改写ROM(Electrically Alterable Read-OnlyMemory,简称为EAROM)或闪存(FLASH)或者两个或更多个以上这些的组合。在合适的情况下,该RAM可以是静态随机存取存储器(Static Random-Access Memory,简称为SRAM)或动态随机存取存储器(Dynamic Random Access Memory,简称为DRAM),其中,DRAM可以是快速页模式动态随机存取存储器(Fast Page Mode Dynamic Random Access Memory,简称为FPMDRAM)、扩展数据输出动态随机存取存储器(Extended Date Out Dynamic RandomAccess Memory,简称为EDODRAM)、同步动态随机存取内存(Synchronous Dynamic Random-Access Memory,简称SDRAM)等。

存储器可以用来存储或者缓存需要处理和/或通信使用的各种数据文件,以及处理器所执行的可能的计算机程序指令。

处理器通过读取并执行存储器中存储的计算机程序指令,以实现上述实施例中的任意一种文本纠错方法。

另外,结合上述实施例中的文本纠错方法,本申请实施例可提供一种计算机可读存储介质来实现。该计算机可读存储介质上存储有计算机程序指令;该计算机程序指令被处理器执行时实现上述实施例中的任意一种文本纠错方法。

以上所述实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。

以上所述实施例仅表达了本申请的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本申请构思的前提下,还可以做出若干变形和改进,这些都属于本申请的保护范围。因此,本申请专利的保护范围应以所附权利要求为准。

相关技术
  • 文本纠错方法、系统、计算机设备及可读存储介质
  • 一种文本纠错方法、装置、设备及计算机可读存储介质
技术分类

06120112281008