具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
附图中所示的流程图仅是示例说明,不是必须包括所有的内容和操作/步骤,也不是必须按所描述的顺序执行。例如,有的操作/步骤还可以分解、组合或部分合并,因此实际执行的顺序有可能根据实际情况改变。
应当理解,在此本申请说明书中所使用的术语仅仅是出于描述特定实施例的目的而并不意在限制本申请。如在本申请说明书和所附权利要求书中所使用的那样,除非上下文清楚地指明其它情况,否则单数形式的“一”、“一个”及“该”意在包括复数形式。
还应当理解,在本申请说明书和所附权利要求书中使用的术语“和/或”是指相关联列出的项中的一个或多个的任何组合以及所有可能组合,并且包括这些组合。
本申请的实施例提供了一种文本标点检测方法、计算机设备及存储介质。本申请实施例提供的文本标点检测方法可用于对文本进行标点检测,能够提高文本标点检测的准确性。
在说明本申请实施例提供的文本标点检测方法、计算机设备及存储介质之前,对现有技术中存在的问题进行示例性地解释。应理解,断句错误在文章中,尤其学生作文中经常出现的一类标点错误。如小学生在学写作文的时候,经常会忽略句号、逗号等标点符号的正确使用,从而使得子句的句法结构不清晰、语义逻辑混乱,严重影响作文内容的表达,降低作文整体的质量。
通常将断句错误可以细分为以下三种类型的错误:一是句逗误用错误,即该使用句号的地方使用了逗号,或该使用逗号的地方使用了句号;二是句逗冗余错误,即不该使用句号、逗号的地方使用了句号、逗号;三是句逗缺失错误,即该使用句号、逗号的地方没有使用句号、逗号。这三类错误的示例如表1所示:
表1 断句错误示例表
目前,常见的自然语言处理技术主要有以下三种:一是基于规则的标点检错技术;二是子句切分(Sentence Segmentation)技术;三是标点恢复(Punctuation Restoration)技术。
其中,基于规则的标点检错技术通常依赖于人工设计的标点错误模式,并采用正则匹配技术对待检测的文本进行规则匹配。如果待检测的文本能够匹配出人工设计的错误模式,就可以认为待检测的文本中含有标点错误。
子句切分技术是自然语言处理领域的一项基础技术。其目的是将一个段落的文本切分为一个个在句法和语义上比较完整的子句片段,从而便于对文本进行分词、词性标注、命名实体识别、句法分析等其它更为高级的分析与处理。在英文中,切分子句的标点符号通常具有歧义。例如,英文点号“.”既可以作为子句的边界又可以用在缩略语中,如“U.S.”等。因此,传统的基于规则的子句切分技术很难完美的解决子句切分问题,一些研究者开始将子句切分问题建模为二元分类问题,使用机器学习技术、深度学习技术去预测文本中那些有可能作为子句边界的标点符号是否是真正的子句边界。在中文中,作为子句边界的标点符号基本上不会存在歧义,但是,很多非规范的中文文本中不太注意句号、逗号的使用,经常会出现“一逗到底”的现象。这些问题也会给句法分析、机器翻译、篇章分析等其它高级的自然语言处理任务造成一定的影响。因此,子句切分技术在中文自然处理领域也具有十分广阔的应用空间,一些决策树、支持向量机、贝叶斯分类,最大熵分类等机器学习算法也相继被研究者应用。
标点恢复技术是语音识别领域经常使用的一项后处理技术。其目的是给语音识别后的没有任何标点的文本串添加上正确的标点符号,从而使得语音识别后的文本更易于人类阅读。标点恢复任务通常被视为序列标注任务,即对文本串中每个字符所需要添加的标点符号进行预测。如果不需要添加标点符号,只需要预测一个特殊的标记符,表示不需要添加标点符号即可。随着基于预训练语言模型技术的发展,现在的标点恢复技术通常依赖于使用BERT、ELECTRA等大规模预训练语言模型进行序列标注,实现标点恢复。
应理解,断句错误检测是一项语义层面的自然语言处理任务。由于自然语言的复杂性和歧义性,基于规则的标点检错技术很难有效地解决涉及语义的断句错误。因此,现有的标点检错系统通常只能检测标点连续使用、成对标点不匹配等规范性的标点错误,大大地限制了标点检错系统的能力以及应用场景。
而子句切分技术虽然可以应用于断句错误检测,但是子句切分技术只能解决断句错误中的句逗误用错误,不能解决句逗冗余错误和句逗缺失错误。并且,训练子句切分二元分类器需要依赖人工标注的训练数据,即训练数据中应标注出哪些句号、逗号使用正确,哪些句号、逗号使用错误。这些因素在一定程度上限制了子句切分技术在断句错误检测任务中的应用。
标点恢复技术可以处理句逗误用、句逗冗余、句逗缺失三种类型的断句错误。但是,将标点恢复技术应用到文章断句,尤其是小学作文断句错误检测任务中还存在以下两点挑战:一是缺少适用于小学作文领域的可用于训练标点恢复模型的训练数据;二是现有的标点恢复技术仅仅依赖使用预训练语言模型,忽略了对子句信息、词性信息、等文本信息的使用,而这些信息对断句错误检测任务是十分有价值的。通过子句位置信息,模型可以学习到子句的位置、长度与标点符号使用的关联关系,例如段落开始的一个较短的子句后面使用逗号的概率较大。通过词性信息,模型可以学习到词性与标点符号使用的关联关系,例如人称代词之前使用句号的概率较大,连词之后使用逗号的概率较大等。
鉴于以上几点,我们提出了一种以标点恢复技术为核心的断句错误检测方法,一方面使用了回译技术对文本中部分标点进行修正,获得了一批文本领域标点质量较高的数据。另一方面,为了加强对文本信息的利用,我们设计了一种融合子句信息的联合词性标注的标点恢复模型。
下面结合附图,对本申请的一些实施方式作详细说明。在不冲突的情况下,下述的实施例及实施例中的特征可以相互组合。
为了更好地理解本申请实施例公开的一种文本标点检测方法、计算机设备及存储介质,下面首先结合图1对本申请实施例提供的文本标点检测方法的应用场景以及场景架构进行示例性地描述。
请参阅图1,图1是本申请一实施例公开的文本标点检测方法的应用场景架构示意图。如图1所示,文本标点检测方法可应用于计算机设备10,在所述计算机设备10中集成有文本标点检测系统11。其中,所述计算机设备10可以是服务器或者终端设备,所述服务器可以是远程服务器、云端服务器或者服务器集群等可以用于运行文本标点检测系统11的服务器。所述终端设备可以是个人电脑、笔记本、PAD、机器人或者具有一定计算能力的手持智能终端设备。所述终端设备也可以用于运行文本标点检测系统11。所述文本标点检测系统11为集成在计算机设备10上的具有文本标点检测功能的应用程序。
应理解,本申请实施例中所描述的文本标点检测方法可以适用于所有在计算机设备10中集成文本标点检测系统11,通过文本标点检测系统11对文本进行标点检测的应用场景。
示例性地,请参阅图2所示,图2是本申请实施例提供的文本标点检测系统的结构示意图。由图2可知,文本标点检测系统11包括:
获取模块111,用于获取预设数量的目标训练样本,所述目标训练样本为基于回译数据增强策略对文本数据进行标点修正后,得到的文本数据;
训练模块112,用于基于所述目标训练样本对预设语言模型进行训练,得到目标语言模型,所述预设语言模型融合了用于分析文本中字符的上下文信息和词性的网络层;
分析模块113,用于基于所述目标语言模型分析待识别文本中字符的上下文信息和词性,得到所述待识别文本的标点标签序列;
识别模块114,用于基于所述标点标签序列对所述待识别文本进行标点检测。
由于上述各模块的功能,本申请实施例提供的文本标点检测系统可提高对文本标点检测的准确性,进一步可应用于对文章,如学生作文的标点检测,实现对作文标点检测的准确性。
此外,所述文本标点检测系统11可以由多个子系统组成,例如,所述文本标点系统11包括训练子系统101和检测子系统102。应理解,所述训练子系统101和所述检测子系统102均可以集成在一段计算机程序中,在计算机设备10中,所述文本标点检测系统11作为应用程序用于完成对文本标点的检测。或者,在计算机设备10中,所述训练子系统101和所述检测子系统102集成在同一应用程序中,用于完成对文本标点的检测。
应理解,训练子系统101和检测子系统102也可以以两个不同的应用程序分别集成在计算机设备10中,计算机设备10通过分别调用对应的应用程序完成各自的功能。示例性地,计算机设备10通过调用训练子系统101对应的应用程序完成对目标语言模型的训练,计算机设备10通过调用检测子系统102对应的应用程序完成基于目标语言模型对待识别文本的标点检测。
应理解,当计算机设备10具有较高的计算能力时,例如为服务器或者服务器集群时,对应的训练子系统101和检测子系统102可以均集成在计算机设备10中。当计算机设备10为计算能力有限的终端设备如手持智能终端设备时,可以考虑在终端设备中仅集成测试子系统102,而将训练子系统101部署在与终端设备通讯连接的云端。
示例性地,如图3所示,图3是本申请另一实施例提供的文本标点检测方法的应用场景示意图。在图3中,文本标点检测方法由云平台20和计算机设备10共同实现。需要说明的是,云平台20包括云数据中心和云服务平台(图中未示出),云数据中心包括云服务提供商拥有的大量基础资源,例如预设语言模型;云数据中心包括的计算资源可以是大量的计算机设备,例如服务器或者服务器集群。
在本实施例中,云服务平台上部署有预设语言模型,云数据中心上部署有训练子系统。训练子系统可以对云服务平台上的预设语言模型进行训练,得到目标语言模型,以保证对目标语言模型的训练效率。
在一些实施例中,训练子系统用于根据目标训练样本,对云服务平台中预设语言模型进行训练,得到目标语言模型。其中,所述目标训练样本为基于回译数据增强策略对文本数据进行标点修正后,得到的文本数据。现有的文本数据中标点质量较高的为人民日报、维基百科、百度百科等一些通用领域的数据。而对于写作者的文章,如学生的作文,由于文章质量层次不齐,缺少适用于训练标点恢复模型的数据,导致标点恢复模型应用于写作领域时的性能下降。为了解决这一问题,本案采用了基于回译技术的领域数据增强策略对文章的部分标点进行修正后,得到目标训练样本,可以提高写作领域训练数据的质量。
请参阅图4所示,图4是本申请一实施例提供的文本标点检测方法的实现流程示意图。本实施例提供的文本标点检测方法可以由图1所示计算机设备10完成。详述如下:
S401,获取待识别文本,将所述待识别文本输入预训练的目标语言模型。
其中,所述目标语言模型为基于目标训练样本对预设语言模型进行训练后,得到的融合了用于分析文本中字符的上下文信息和词性的网络层,所述目标训练样本为基于回译数据增强策略对文本数据进行标点修正后,得到的文本数据。
其中,基于回译数据增强策略为通过翻译引擎对文本数据进行翻译,以不同的语言标注标点的标准对文本数据进行标点修正的技术。例如,可以将文本数据输入到汉译英的翻译引擎中获取文本数据对应的英文,再使用英译汉的翻译引擎将对应的英文翻译为中文,通过对文本数据的回译,完成对文本数据标点的修正。由于英文的句法结构相对于中文的句法结构来说,相对清晰且标点符号的使用规则较为简单,在英文文本中,通常会在主谓宾结构完整的文本片段后添加句号,很少出现中文中较为普遍的只用逗号的现象。因此,首先将文本数据翻译为英文,对文本中的部分标点进行修正,可以提高文本数据的质量。尤其是对作文中出现多个逗号的问题,能够进行有效的修正,提高作文数据的质量。
示例性地,基于回译数据增强策略对文本数据进行标点修正,包括:将所述文本数据进行段落拆分处理,得到至少一个第一段落;分别将各个所述第一段落输入第一翻译引擎中,得到各个所述第一段落对应的英文;将各个所述第一段落对应的英文分别输入第二翻译引擎中,得到各个所述第一段落的修正文本数据;其中,所述修正文本数据为对各个所述第一段落进行标点修正之后得到的所述文本数据。
应理解,第一翻译引擎为汉译英引擎,第二翻译引擎为英译汉引擎。通过回译数据增强策略对文本数据进行标点修正后,可以将文本中的部分标点进行修正且文本的语义基本不会发生变化,以基于回译数据增强策略对文本数据修正后得到的目标文本数据为训练样本,可以有效提高目标语言模型的对文本数据标点修正的精度。尤其是在作文标点修正过程中,以基于回译数据增强策略对原始作文进行标点修正后,训练得到的用于作文标点修正的目标语言模型可以有效对作为中的标点进行修正,可以应用于对学生作文的自动批改,辅助学生发现作文中的断句错误,增强学生使用标点符号的意识和能力,进而帮助学生写出更加清晰、流畅的作文。此外,该技术还可以应用于学生作文的自动评分,为作文自动评分提供有价值的特征,使得作文自动评分的结果更加合理。
应理解,在将所述待识别文本输入预训练的目标语言模型之前,需要基于所述目标训练样本对预设语言模型进行训练,得到目标语言模型,其中,所述预设语言模型融合了用于分析文本中字符的上下文信息和词性的网络层。
示例性地,在本申请的实施例中,预设语言模型为融合了子句信息的联合词性标注的标点恢复模型,该模型由三个网络层(也可以称为子模块)组成,分别为:第一网络层、第二网络层和第三网络层。其中,第一网络层为融合子句信息的字符表示层,该第一网络层可以将文本串中的每个字符编码为低维稠密的向量,并将每个字符所属的子句信息融合到每个字符的向量中表示;第二网络层是基于预训练语言模型BERT的上下文表示层,该第二网络层可以由12层Transformer编码器组成,这些编码器的参数用预训练好的参数进行初始化,并在训练标点恢复任务时进行微调;第三网络层是标点预测模块,该第三网络层由2个线性层堆叠而成,底层的线性层执行词性标注任务,上层的线性层执行标点恢复任务。
示例性地,如图5所示,图5是本申请实施例提供的预设语言模型的结构示意图。由图5可知,第一网络层501用于将目标训练样本504中的各字符进行向量表示,得到各个字符对应的第一向量;第二网络层502用于分析所述第一向量,得到表示各字符的上下文信息的第二向量;第三网络层503用于根据所述第二向量中各个上下文信息的词性标签,预测所述各个上下文信息对应的字符后面的标点标签,得到标点标签序列。
需要说明的是,图5中的子句位置编码代表的是某个字符所在子句在整个段落中的位置。其中,子句是指以逗号为分隔的文本片段,如“是新时代的宠儿,因此,......”这个文本片段中,包括的第一个子句是“是新时代的宠儿”;第二个子句是“因此”。在这个文本片段中,第一个子句里面的所有字符的子句位置编码都是0。第二个子句里面的所有字符的子句位置编码都是1。应理解,如果上面文本片段还包括第三个子句,则第三个子句里面的所有字符的子句位置编码都是2,以此类推,可以对文本片段中的所有子句里面的所有字符的子句位置编码进行表示。位置编码是指对文本片段中的字符按照顺序进行编码。例如,首位字符的位置编码为0,第二位字符的位置编码为1,然后依次递增。
进一步地,如图5所示,需要说明的是,词性预测层输出的v n nn u n n p p代表的是每个字符所在词的词性。其中,V代表动词、n代表名词、u代表助词等。标点预测层后面的0 0 0 0 0 0 0 E 0代表的是每个字符后面所需要添加的标点符号。例如O表示不需要添加标点符号、E表示需要添加句号等。
应理解,在对预设语言模型进行训练过程中,需采用一个参数来评估模型的性能,进而确定是否对预设语言模型训练结束。在本实施例中,采用损失函数来评估模型的性能。具体地,所述预设语言模型还包括输出层和损失函数。
示例性地,如图6所示,图6是本申请实施例提供的目标语言模型训练的实现流程图。由图6可知,基于所述目标训练样本对预设语言模型进行训练,得到目标语言模型的过程包括S4021至S4024。详述如下:
S4021,将所述目标训练样本输入所述第一网络层进行分析,获取所述各个所述第一向量。
其中,所述第一网络层包括字符嵌入层、字符位置嵌入层和子句位置嵌入层;所述将所述目标训练样本输入所述第一网络层进行分析,获取各个所述第一向量,包括:对所述目标训练样本进行段落拆分处理,得到多个第二段落;针对任意一个所述第二段落,去除所述第二段落中的预设类型标点,得到所述第二段落的字符串;将所述字符串输入所述字符嵌入层进行分析,得到所述字符串中各个字符的字符信息;将所述字符串输入所述字符位置嵌入层进行分析,得到所述字符串中各个字符在所述第二段落中的第一位置信息;将所述字符串输入所述子句位置嵌入层进行分析,得到所述字符串中各个字符所属子句在所述第二段落中的第二位置信息;基于所述字符信息、所述第一位置信息和所述第二位置信息生成所述字符串中各个字符的所述第一向量。
其中,所述字符串中各个字符的字符信息表示的是各个字符在对应字符串中本身的语义信息。
应理解,第一网络层用于表示融合子句信息的字符,其输入是以段落为单位的去除句号、逗号的文本串。对于文本串中的每个字符,通过使用字符本身的信息、字符在段落中的位置信息、字符所在子句的位置信息对每个字符进行表示。对于字符本身的信息和字符在段落中的位置信息,可以使用预训练语言模型BERT中的字符嵌入层E
char和字符位置嵌入层E
char-pos对每个字符进行表示。对于字符所在子句的位置信息,我们使用一个随机初始化的子句位置嵌入层E
clause-pos对字符所在子句的位置信息进行编码。字符嵌入层、字符位置嵌入层、字符所在子句的位置嵌入层都会随着整个模型的训练不断优化。对于段落中的任意一个字符c
i,其最终的向量表示
的计算方法如下公式所示:
其中,Echar(ci)表示对第i个字符本身的信息进行编码得到的编码信息,Echar-pos(ci)表示对第i个字符在文本串中的位置信息进行编码得到的编码信息,Eclause-pos(ci)表示对第i个字符所在子句的位置信息进行编码得到的编码信息。
S4022,将各个所述第一向量输入所述第二网络层进行分析,获取各个所述第二向量。
其中,所述第二网络层为基于多头注意力机制的编码层;示例性地,所述将各个所述第一向量输入所述第二网络层进行分析,获取各个所述第二向量,包括:针对每个所述第一向量,通过多头注意力机制确定所述第一向量的各个注意力权重,所述各个注意力权重为所述第一向量对应的字符与其所属字符串中其它字符之间的注意力权重;对所述各个注意力权重进行加权求和,得到所述第一向量对应的字符在其所属字符串中的上下文信息;基于所述上下文信息生成对应的第二向量。
应理解,第二网络层为基于预训练语言模型BERT的上下文表示模块的输入是每个字符的向量表示
每个字符的向量表示通过多头自注意力机制获得每个字符含上下文信息的向量表示。在本申请的实施例中,通过多头自注意力机制,每个字符都可以学习到其与上下文中所有字符的注意力权重,并根据这些注意力权重对上下文中所有字符的向量进行加权求和,从而获得每个字符的含上下文信息的向量表示
其计算过程可以如下公式所示:
其中,
表示第i个字符的向量,
表示第i个字符在当前上下文语境中的信息。
S4023,将各个所述第二向量输入所述第三网络层进行分析,通过所述输出层输出标点标签序列,并检测所述损失函数的值。
其中,所述第三网络层包括词性预测层和标点预测层;示例性地,所述将各个所述第二向量输入所述第三网络层进行分析,包括:基于所述词性预测层对所述第二向量中各个上下文信息的词性进行预测,生成词性标签;基于所述标点预测层对所述词性标签进行分析,预测所述各个上下文信息对应字符后面的标点标签,得到标点标签序列。
应理解,第三网络层为层次化的标点预测层,对应的输入是每个字符的上下文信息的向量表示
在本申请的实施例中,具体通过2个堆叠的线性层Linear
pos、Linear
punc,在对预设语言模型进行训练时自底向上依次完成词性标注任务和标点恢复任务的预测。示例性地,对词性标注任务的预测过程可以由以下公式表示:
对标点恢复任务的预测过程可以由以下公式表示:
应理解,在执行词性标注任务预测时,可以假设使用“BI+词性标签”的标签集合。其中,B代表的是一个词语中的首位字符,I代表除首位字符之外的其它字符。例如,若文本串中有4个连续的字符可以组成一个名词(对应地,名词的词性标签记为“n”),这4个字符的标签依次可以表示为“B-n”,“I-n”,“I-n”,“I-n”。应理解,字符的词性标签,由词性预测层输出。
在执行标点恢复任务时,假设使用的标签集合为“MEO”,如果一个字符的后面需要添加逗号,该字符的标签就为“M”,如果一个字符后面需要添加句号,该字符的标签就为“E”,如果一个字符后面不需要添加句号或逗号,该字符的标签就为“O”。
S4024,若所述损失函数的值小于预设阈值,则停止对所述预设语言模型的训练,得到所述目标语言模型。
示例性地,所述损失函数可以是基于多任务学习的交叉熵(Cross Entropy,CE)损失函数,该损失函数的计算过程如下所示:
其中,λ为控制不同任务损失重要性的超参数
表示
和
交叉熵损失值,
表示
和
的交叉熵损失值,
表示第i个词的预测词性,
表示第i个词的实际词性,
表示第i个词后需恢复的预测标点,
表示第i词后需恢复的实际标点。
应理解,当所述交叉熵损失函数的值小于预设阈值,例如0.3时,说明预测的词性与实际词性,以及需恢复的预测标点与需恢复的实际标点相同的概率接近99.7百分之,也就是说,模型的预测概率接近100百分之。因此,可以基于交叉熵损失函数的值确定对预设语言模型的训练完成,得到具有标点预测精度较高的目标语言模型。
S402,基于所述目标语言模型分析待识别文本中字符的上下文信息和词性,得到所述待识别文本的标点标签序列。
示例性地,基于目标语言模型分析待识别文本,获得目标语言模型预测的所述待识别文本的标点标签序列。
S403,基于所述标点标签序列对所述待识别文本进行标点检测。
将目标语言模型预测的标点标签序列与待识别文本中的标点标签序列进行比对,如果预测的标点标签序列中有标点标签和待识别文本的标点标签序列中对应位置处的标点标签不一致,则认为对应位置处存在标点错误。由于标点标签序列包括每个需添加标点位置处的标点符号,通过对标点标签序列的对比,可以实现对文本中所有位置标点的校验,提高标点校验准确性的同时,能够保证标点校验的效率。
示例性地,如图7所示,图7是图4中S403的具体实现流程图。由图7可知,S403包括S4031与S4032。详述如下:
S4031,将所述标点标签序列中的各个第一标点,依次与所述待识别文本中对应的第二标点进行比对。
S4032,若所述待识别文本中有目标位置处的第二标点与所述标点标签序列中在所述目标位置处的第一标点不同,则确定在所述目标位置处存在标点错误。
通过上述分析可知,本申请实施例提供的文本标点检测方法,首先通过目标语言模型分析待识别文本中字符的上下文信息和词性,得到所述待识别文本的标点标签序列;然后基于所述标点标签序列对所述待识别文本进行标点检测,由于目标语言模型为基于目标训练样本对预设语言模型进行训练后,得到的融合了用于分析文本中字符的上下文信息和词性的网络层,且其对应的目标训练样本为基于回译数据增强策略对文本数据进行标点修正后,得到的文本数据,因此,通过目标语言模型可以对待识别文本中字符的上下文信息和词性的进行分析,进而根据待识别文本中字符的上下文信息和词性来预测待识别文本的标点标签序列,提高对文本标点检测的准确性。
请参阅图8所示,图8是本申请另一实施例提供的文本标点检测方法的实现流程示意图。本实施例提供的文本标点检测方法可以由图3所示的云平台和计算机设备完成。详述如下:
S801,云平台获取预设数量的目标训练样本,所述目标训练样本为基于回译数据增强策略对文本数据进行标点修正后,得到的文本数据。
S802,云平台基于所述目标训练样本对预设语言模型进行训练,得到目标语言模型,所述预设语言模型融合了用于分析文本中字符的上下文信息和词性的网络层。
S803,计算机设备基于所述目标语言模型分析待识别文本中字符的上下文信息和词性,得到所述待识别文本的标点标签序列。
S804,计算机设备基于所述标点标签序列对所述待识别文本进行标点检测。
需要说明的是,所属领域的技术人员可以清楚地了解到,为了描述的方便和简洁,上述各步骤的具体实现过程,可以参考图4所示实施例中对应各步骤的具体实现过程,在此不再赘述。
应理解,使用自然语言处理技术自动识别文本,尤其是小学作文中的断句错误就成为一项十分有价值的技术。一方面,该技术可以应用于小学作文的自动批改,辅助学生发现作文中的断句错误,增强学生使用标点符号的意识和能力,从而帮助学生写出更加清晰、流畅的作文。另一方面,该技术可以应用于小学作文的自动评分,为作文自动评分提供有价值的特征,使得作文自动评分的结果更加合理。
通过上述分析可知,本申请实施例提供的文本标点检测方法,首先通过获取预设数量的目标训练样本,所述目标训练样本为基于回译数据增强策略对文本数据进行标点修正后,得到的文本数据;然后基于所述目标训练样本对预设语言模型进行训练,得到目标语言模型,所述预设语言模型融合了用于分析文本中字符的上下文信息和词性的网络层;再基于所述目标语言模型分析待识别文本中字符的上下文信息和词性,得到所述待识别文本的标点标签序列;最后基于所述标点标签序列对所述待识别文本进行标点检测。通过基于目标训练样本,对融合了用于分析文本中字符的上下文信息和词性的网络层的预设语言模型进行训练,并以训练得到的目标语言模型进行文本标点检测,提高对文本标点检测的准确性。
请参阅图9,图9是本申请实施例提供的计算机设备的结构示意图。所述计算机设备10包括通过系统总线连接的处理器、存储器和网络接口,其中,存储器可以包括非易失性存储介质和内存储器。
非易失性存储介质可存储操作系统和计算机程序。该计算机程序包括程序指令,该程序指令被执行时,可使得处理器执行文本标点检测方法。
处理器用于提供计算和控制能力,支撑整个计算机设备的运行。
内存储器为非易失性存储介质中的计算机程序的运行提供环境,该计算机程序被处理器执行时,可使得处理器执行文本标点检测方法。
该网络接口用于进行网络通信,如发送分配的任务等。本领域技术人员可以理解,图9中示出的结构,仅仅是与本申请方案相关的部分结构的框图,并不构成对本申请方案所应用于其上的计算机设备的限定,具体的计算机设备可以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。
应当理解的是,处理器可以是中央处理单元(Central Processing Unit,CPU),该处理器还可以是其他通用处理器、数字信号处理器(Digital Signal Processor,DSP)、专用集成电路(Application Specific Integrated Circuit,ASIC)、现场可编程门阵列(Field-Programmable Gate Array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。其中,通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。
其中,在一个实施例中,所述处理器用于运行存储在存储器中的计算机程序,以实现如下步骤:
获取待识别文本,将所述待识别文本输入预训练的目标语言模型,其中,所述目标语言模型为基于目标训练样本对预设语言模型进行训练后,得到的融合了用于分析文本中字符的上下文信息和词性的网络层,所述目标训练样本为基于回译数据增强策略对文本数据进行标点修正后,得到的文本数据;
基于所述目标语言模型分析待识别文本中字符的上下文信息和词性,得到所述待识别文本的标点标签序列;
基于所述标点标签序列对所述待识别文本进行标点检测。
在一实施例中,所述基于回译数据增强策略对文本数据进行标点修正,包括:
将所述文本数据进行段落拆分处理,得到至少一个第一段落;
分别将各个所述第一段落输入第一翻译引擎中,得到各个所述第一段落对应的英文;
将各个所述第一段落对应的英文分别输入第二翻译引擎中,得到各个所述第一段落的修正文本数据;
其中,所述修正文本数据为对各个所述第一段落进行标点修正之后得到的所述文本数据。
在一实施例中,所述预设语言模型包括第一网络层、第二网络层和第三网络层;
所述第一网络层用于将目标训练样本中的各字符进行向量表示,得到各个字符对应的第一向量;
所述第二网络层用于分析所述第一向量,得到表示各字符的上下文信息的第二向量;
所述第三网络层用于根据所述第二向量中各个上下文信息的词性标签,预测所述各个上下文信息对应的字符后面的标点标签,得到标点标签序列。
在一实施例中,所述预设语言模型还包括输出层和损失函数;
所述基于所述目标训练样本对预设语言模型进行训练,得到目标语言模型,包括:
将所述目标训练样本输入所述第一网络层进行分析,获取所述各个所述第一向量;
将各个所述第一向量输入所述第二网络层进行分析,获取各个所述第二向量;
将各个所述第二向量输入所述第三网络层进行分析,通过所述输出层输出标点标签序列,并检测所述损失函数的值;
若所述损失函数的值小于预设阈值,则停止对所述预设语言模型的训练,得到所述目标语言模型。
在一实施例中,所述第一网络层包括字符嵌入层、字符位置嵌入层和子句位置嵌入层;
所述将所述目标训练样本输入所述第一网络层进行分析,获取各个所述第一向量,包括:
对所述目标训练样本进行段落拆分处理,得到多个第二段落;
针对任意一个所述第二段落,去除所述第二段落中的预设类型标点,得到所述第二段落的字符串;
将所述字符串输入所述字符嵌入层进行分析,得到所述字符串中各个字符的字符信息;
将所述字符串输入所述字符位置嵌入层进行分析,得到所述字符串中各个字符在所述第二段落中的第一位置信息;
将所述字符串输入所述子句位置嵌入层进行分析,得到所述字符串中各个字符所属子句在所述第二段落中的第二位置信息;
基于所述字符信息、所述第一位置信息和所述第二位置信息生成所述字符串中各个字符的所述第一向量。
在一实施例中,所述第二网络层为基于多头注意力机制的编码层;
所述将各个所述第一向量输入所述第二网络层进行分析,获取各个所述第二向量,包括:
针对每个所述第一向量,通过多头注意力机制确定所述第一向量的各个注意力权重,所述各个注意力权重为所述第一向量对应的字符与其所属字符串中其它字符之间的注意力权重;
对所述各个注意力权重进行加权求和,得到所述第一向量对应的字符在其所属字符串中的上下文信息;
基于所述上下文信息生成对应的第二向量。
在一实施例中,所述第三网络层包括词性预测层和标点预测层;
所述将各个所述第二向量输入所述第三网络层进行分析,包括:
基于所述词性预测层对所述第二向量中各个上下文信息的词性进行预测,生成词性标签;
基于所述标点预测层对所述词性标签进行分析,预测所述各个上下文信息对应字符后面的标点标签,得到标点标签序列。
在一实施例中,所述基于所述标点标签序列对所述待识别文本进行标点检测,包括:
将所述标点标签序列中的各个第一标点,依次与所述待识别文本中对应的第二标点进行比对;
若所述待识别文本中有目标位置处的第二标点与所述标点标签序列中在所述目标位置处的第一标点不同,则确定在所述目标位置处存在标点错误。
本申请的实施例中还提供一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,所述计算机程序中包括程序指令,所述处理器执行所述程序指令,实现本申请图4所示实施例提供的文本标点检测方法。
其中,所述计算机可读存储介质可以是前述实施例所述的计算机设备的内部存储单元,例如所述计算机设备的硬盘或内存。所述计算机可读存储介质也可以是所述计算机设备的外部存储设备,例如所述计算机设备上配备的插接式硬盘,智能存储卡(SmartMedia Card,SMC),安全数字(Secure Digital,SD)卡,闪存卡(Flash Card)等。
以上所述,仅为本申请的具体实施方式,但本申请的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本申请揭露的技术范围内,可轻易想到各种等效的修改或替换,这些修改或替换都应涵盖在本申请的保护范围之内。因此,本申请的保护范围应以权利要求的保护范围为准。