一种文本数据的处理方法、装置和设备
技术领域
本说明书涉及计算机技术领域,尤其涉及一种文本数据的处理方法、装置和设备。
背景技术
随着终端技术和网络技术的不断发展,网络交易已成为当前的一种重要的交易方式,而网络交易涉及到不同的方面,例如金融支付、信息推荐、物流、交易安全等,这样就可以得到大量的数据,而这些数据中会包含有很多的文本数据,从而孕育出大量文本处理的工作需求。
如何对文本数据进行处理成为电商平台需要解决的重要问题,可以通过BERT(Bidirectional Encoder Representations from Transformers,源于Transformers的双向编码器)机制实现,在使用BERT对应的模型对文本数据进行处理的过程中,可以将文本数据拆分成一个一个的字符,然后,将每一个字符依次输入到BERT对应的模型中,得到相应的输出结果。
不论是BERT对应的简单模型,还是BERT对应的复杂模型,其中包括至少12个网络层,计算量将会非常大,并且,BERT对应的模型是基于字符或字符级别的输入,但是,对于某些语言文字(如中文等)构成的文本数据,如果将文本数据拆分成单个字符,会使得其语义级别较低,从而使得输出结果与实际结果相差较大,为此,需要提供一种能够提高语义级别、并提高输出结果准确性的技术方案。
发明内容
本说明书实施例的目的是提供一种文本数据的处理方法、装置和设备,以提供一种能够提高语义级别、并提高输出结果准确性的技术方案。
为了实现上述技术方案,本说明书实施例是这样实现的:
本说明书实施例提供的一种文本数据的处理方法,所述方法包括:
获取针对指定业务的目标文本数据;
对所述目标文本数据进行分词处理,确定所述目标文本数据中的分词位置;
在所述目标文本数据中的分词位置处插入预定的分隔符;
将插入有所述分隔符的目标文本数据输入到预定的语言模型中,得到与所述指定业务相关的结果数据。
可选地,所述获取针对指定业务的目标文本数据之前,所述方法还包括:
获取针对所述指定业务的样本数据;
对所述样本数据进行分词处理,确定所述样本数据中的分词位置;
在所述样本数据中的分词位置处插入预定的分隔符;
基于插入有所述分隔符的样本数据训练所述语言模型。
可选地,所述基于插入有所述分隔符的样本数据训练所述语言模型之后,所述方法还包括:
获取针对所述指定业务的预定场景下的语料数据;
基于所述预定场景下的语料数据对所述语言模型继续进行训练。
可选地,所述对所述目标文本数据进行分词处理,确定所述目标文本数据中的分词位置,包括:
获取所述目标文本数据中包含的语言种类;
根据所述目标文本数据中包含的语言种类,确定所述目标文本数据的分词策略;
基于确定的分词策略,对所述目标文本数据进行分词处理,确定所述目标文本数据中的分词位置。
可选地,所述语言模型为基于来自于Transformers的双向编码器BERT的语言模型。
可选地,所述语言模型中包含的网络层数小于预定层数阈值,所述预定层数阈值为不大于12的正整数。
可选地,所述语言模型中包含的网络层数为2,每个网络层由Multi-HeadAttention层和全连接层组成。
可选地,所述目标文本数据中包括中文数据。
本说明书实施例提供的一种文本数据的处理装置,所述装置包括:
目标数据获取模块,用于获取针对指定业务的目标文本数据;
第一分词模块,用于对所述目标文本数据进行分词处理,确定所述目标文本数据中的分词位置;
第一分隔符模块,用于在所述目标文本数据中的分词位置处插入预定的分隔符;
结果确定模块,用于将插入有所述分隔符的目标文本数据输入到预定的语言模型中,得到与所述指定业务相关的结果数据。
可选地,所述装置还包括:
样本获取模块,用于获取针对所述指定业务的样本数据;
第二分词模块,用于对所述样本数据进行分词处理,确定所述样本数据中的分词位置;
第二分隔符模块,用于在所述样本数据中的分词位置处插入预定的分隔符;
第一训练模块,用于基于插入有所述分隔符的样本数据训练所述语言模型。
可选地,所述装置还包括:
语料获取模块,用于获取针对所述指定业务的预定场景下的语料数据;
第二训练模块,用于基于所述预定场景下的语料数据对所述语言模型继续进行训练。
可选地,所述第一分词模块,包括:
语言种类获取单元,用于获取所述目标文本数据中包含的语言种类;
分词策略确定单元,用于根据所述目标文本数据中包含的语言种类,确定所述目标文本数据的分词策略;
分词单元,用于基于确定的分词策略,对所述目标文本数据进行分词处理,确定所述目标文本数据中的分词位置。
可选地,所述语言模型为基于来自于Transformers的双向编码器BERT的语言模型。
可选地,所述语言模型中包含的网络层数小于预定层数阈值,所述预定层数阈值为不大于12的正整数。
可选地,所述语言模型中包含的网络层数为2,每个网络层由Multi-HeadAttention层和全连接层组成。
可选地,所述目标文本数据中包括中文数据。
本说明书实施例提供的一种文本数据的处理设备,所述文本数据的处理设备包括:
处理器;以及
被安排成存储计算机可执行指令的存储器,所述可执行指令在被执行时使所述处理器:
获取针对指定业务的目标文本数据;
对所述目标文本数据进行分词处理,确定所述目标文本数据中的分词位置;
在所述目标文本数据中的分词位置处插入预定的分隔符;
将插入有所述分隔符的目标文本数据输入到预定的语言模型中,得到与所述指定业务相关的结果数据。
由以上本说明书实施例提供的技术方案可见,本说明书实施例通过获取针对指定业务的目标文本数据,对目标文本数据进行分词处理,确定目标文本数据中的分词位置,然后,在目标文本数据中的分词位置处插入预定的分隔符,最终,将插入有分隔符的目标文本数据输入到预定的语言模型中,得到与指定业务相关的结果数据,这样,通过对目标文本数据进行分词,并在分词位置增加相应的间隔符,从而使得在目标文本数据中起到分词的作用,进而可以提取到分词中包含的更高级的语义信息,而使得目标文本数据中不仅仅只有单个字符的信息,输出结果可以更加准确,并提高了目标文本数据的语义级别。
附图说明
为了更清楚地说明本说明书实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本说明书中记载的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1为本说明书一种文本数据的处理方法实施例;
图2为本说明书一种Transformer的网络结构的示意图;
图3为本说明书一种BERT的网络结构的示意图;
图4为本说明书一种文本数据的处理系统的结构示意图;
图5为本说明书另一种文本数据的处理方法实施例;
图6为本说明书一种文本数据的处理装置实施例;
图7为本说明书一种文本数据的处理设备实施例。
具体实施方式
本说明书实施例提供一种文本数据的处理方法、装置和设备。
为了使本技术领域的人员更好地理解本说明书中的技术方案,下面将结合本说明书实施例中的附图,对本说明书实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本说明书一部分实施例,而不是全部的实施例。基于本说明书中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都应当属于本说明书保护的范围。
实施例一
如图1所示,本说明书实施例提供一种文本数据的处理方法,该方法的执行主体可以为终端设备或服务器等,其中,该终端设备可以如手机或平板电脑等移动终端设备,还可以如个人计算机等设备。该服务器可以是独立的服务器,也可以是由多个服务器组成的服务器集群,而且,该服务器可以是某网站(如网络购物网站或购物应用等)的后台服务器,或者可以是某业务(如金融业务等)的服务器等。该方法可以用于提供一种文本数据的处理机制,以能够提高语义级别和输出结果准确性。为了提高文本数据的处理效率,本实施例的执行主体可以以服务器为例进行说明,对于执行主体为终端设备的情况,可以根据下述相关内容执行,在此不再赘述。该方法具体可以包括以下步骤:
在步骤S102中,获取针对指定业务的目标文本数据。
其中,指定业务可以是任意业务,例如支付业务、风险防控业务、搜索业务、信息推荐业务、智能交互业务或翻译业务等,具体可以根据实际情况设定,本说明书实施例对此不做限定。目标文本数据可以包含任何相关内容的文本数据,目标文本数据可以通过预定的语言文字构成,例如,目标文本数据可以是由中文书写的文本数据等。
在实施中,随着终端技术和网络技术的不断发展,网络交易已成为当前的一种重要的交易方式,而网络交易涉及到不同的方面,例如金融支付、信息推荐、物流、交易安全等,电商机构会将上述数据,以及卖家的商品数据等关联起来,这样就可以得到大量的数据,而这些数据中会包含有很多的文本数据。
例如,某电商平台中应该会存储有数十亿商品的相关数据,每一个商品的数据中都包含有详细的标题、副标题、详情页、评价区,甚至问答区等,上述数据可以构成一个非常丰富的商品数据和大量的文章(包括各种各样的内容营销数据、直播,以及一些问答的场景数据等),上述文章中可以包含各种各样的标题、正文和评论等数据。上述提到的仅是商品的相关数据,除此外,还有如金融、物流、健康、娱乐等业务的数据,将上述不同业务的数据加在一起可以构成海量的数据,从而孕育出大量文本处理的工作需求。
如何对文本数据进行处理成为电商平台需要解决的重要问题,为此,提出了一种可以对文本数据进行处理的机制,即BERT(Bidirectional Encoder Representationsfrom Transformers,源于Transformers的双向编码器)机制,BERT机制的本质上是通过在海量的语料的基础上运行自监督学习方法,从而为单词学习一个好的特征表示,其中的自监督学习方法可以是指在没有人工标注的数据上运行的监督学习的方法。BERT机制的网络架构使用的是多层Transformer结构,其最大的特点是抛弃了传统的RNN(RecurrentNeural Networks,循环神经网络)和CNN(Convolutional Neural Networks,卷积神经网络),通过Attention机制将任意位置的两个单词的距离转换成1,有效的解决了NLP(Neuro-Linguistic Programming,神经语言程序)领域中棘手的长期依赖问题。
Transformer结构在NLP领域中已经得到了广泛应用,Transformer结构可以如图2所示,Transformer结构可以是一个Encoder-Decoder的结构,可以由若干个编码器和解码器堆叠形成。图2中的左侧部分为编码器,由Multi-Head Attention和一个全连接层组成,用于将输入的语料数据转化成特征向量,图2中的右侧部分是解码器,其输入为上述编码器的输出,以及已经预测的结果,由Masked Multi-Head Attention、Multi-Head Attention和一个全连接层组成,用于输出最后结果的条件概率。基于上述图2所示的Transformer结构,BERT的网络结构可以参见如图3所示,其中的Trm可以表示上述图2中的一个编码器(即左侧部分),在实际应用中,一个编码器也可以称为一个Transformer Block。
BERT对应的模型可以包括简单模型和复杂模型等,其中的简单模型对应的网络层数(即Transformer Block的数量)可以包括12个,隐藏层的数量可以包括768,Multi-HeadAttention中的self-Attention的数量可以为12,参数的总量可以为110M。其中的复杂模型对应的网络层数(即Transformer Block的数量)可以包括24个,隐藏层的数量可以包括1024,Multi-Head Attention中的self-Attention的数量可以为16,参数的总量可以为340M。BERT对应的模型中可以包括两个特殊的符号,即[CLS]和[SEP],其中,[CLS]表示该特征用于分类模型,对非分类模型,该符号可以省略,[SEP]表示分句符号,用于断开输入语料中的两个句子。
在使用BERT对应的模型对文本数据进行处理的过程中,可以将文本数据拆分成一个一个的字符(其中可以包括上述两个特殊的符号[CLS]和[SEP]),然后,将每一个字符依次输入到BERT对应的模型中,得到相应的输出结果。
通过上述内容可知,不论是BERT对应的简单模型,还是BERT对应的复杂模型,其中包括至少12个网络层,计算量将会非常大,而且,在使用BERT对应的模型对文本数据进行处理的过程中,需要进行微调操作,而微调操作要求处理设备的性能较高,并且,BERT对应的模型是基于字符或字符级别的输入,但是,对于某些语言文字(如中文等)构成的文本数据,如果将文本数据拆分成单个字符,会使得其语义级别较低,从而使得输出结果与实际结果相差较大,为此,本说明书实施例提供一种能够提高语义级别、并提高输出结果准确性的技术方案,具体可以包括以下内容:
针对某一项业务(即指定业务,具体如金融业务或支付业务等),可以通过多种方式获取相关的文本数据,具体地,业务提供商可以根据业务需求开发相应的应用程序,如购物或支付业务的应用程序等,该应用程序可以为用户提供一种或多种不同的业务入口,用户可以通过该应用程序处理相应的业务,此外,为了满足用户之间的沟通需求,还可以设置即时通讯页面,或者商品的评价或评论区等,需要进行交易的两个用户可以在即时通讯页面内互发通讯消息,或者,购买了某商品的用户可以在评价或评论区对商品进行评价等。另外,为了及时收集用户主动提供的相关数据(如投诉数据或举报数据等),还可以设置相应的入口,具体如可以设置举报入口或数据上传入口等。如图4所示,基于上述内容,用户的终端设备可以获取需要进行交易的两个用户互发的通讯消息,并可以将该通讯消息的文本数据发送给服务器,或者,用户可以通过应用程序的举报入口或数据上传入口主动上传相应的数据等,通过上述方式服务器可以获取到针对指定业务的文本数据,服务器还可以对该文本数据进行分析,确定该文本数据中所包含的是哪种语言(如汉语和/或英语等),如果该文本数据中包含预定的语言(如汉语),则可以将该文本数据确定为针对指定业务的目标文本数据。
需要说明的是,目标文本数据可以是由用户输入或提供的文本数据确定,还可以是由用户输入或提供的音频数据确定,或者,可以是由用户输入或提供的音频数据,以及输入或提供的文本数据等确定,其中,对于输入或提供的音频数据的情况,还可以预先对该音频数据进行识别,可以将音频数据转换为文本数据,然后,可以得到目标文本数据。此外,目标文本数据可以是一条文本数据,还可以是由多条文本数据组成的数据组合等。
在步骤S104中,对目标文本数据进行分词处理,确定目标文本数据中的分词位置。
在实施中,对于某些预定语言的文本数据(具体如中文文本数据等),由于单个字符将大大降低其语义信息,而词语却可以在一定程度上代表更高级的语义信息,因此,通过上述步骤S102的处理得到针对指定业务的目标文本数据后,可以确定目标文本数据中包含的词语,以此尽可能的保留文本数据的语义信息,为此可以设置分词机制。可以通过分词机制,对目标文本数据进行分词处理,并可以记录目标文本数据中分词的位置,其中,相邻两个分词位置之间包含一个分词,并且,如上述BERT机制的相关内容,可以在目标文本数据中的一个语句的开头设置符号[CLS],在相邻两个语句之间使用符号[SEP]隔开,并可以在目标文本数据的结尾处设置符号[SEP]。
例如,针对指定业务的目标文本数据为“我在蚂蚁金服深度学习部做NLP工作。主要是语义匹配。”,则通过分词机制对上述目标文本数据进行分词,可以得到“[CLS]我/在/蚂蚁金服/深度学习部/做/NLP/工作[SEP]主要/是/语义匹配[SEP]”,其中,“/”可以用于确定分词位置,符号[CLS]或[SEP]与“/”之间包含一个分词,如“我”、“工作”、“主要”和“语义匹配”等,相邻两个“/”之间也包含一个分词,如“在”、“蚂蚁金服”、“深度学习部”、“做”、“NLP”和“是”等。
再例如,针对指定业务的目标文本数据为“我收到短信说做兼职帮忙刷单反佣金!就用QQ联系,给了我几个二维码让扫码支付!支付宝转不了又用QQ钱包让我转账”,则通过分词机制对上述目标文本数据进行分词,可以得到“[CLS]我/收到/短信/说/做/兼职/帮忙/刷/单反/佣金/就/用/QQ/联系/给/了/我/几个/二维码/让/我/扫码/支付/支付宝/转/不了/又/用/QQ/钱包/让/我/转账[SEP]”。其中,符号[CLS]或[SEP]与“/”之间包含一个分词,如“我”和“转账”等,相邻两个“/”之间也包含一个分词,如“收到”“短信”、“说”、“做”、“兼职”、“帮忙”、“刷”、“单反”、“佣金”、“就”、“用”、“QQ”、“联系”、“给”、“了”、“我”、“几个”、“二维码”、“让”、“我”、“扫码”、“支付”、“支付宝”、“转”、“不了”、“又”、“用”、“QQ”、“钱包”、“让”和“我”等。
在步骤S106中,在目标文本数据中的分词位置处插入预定的分隔符。
其中,分隔符可以是用于分割语句中的相邻两个词语的符号,分隔符的具体形式可以多种多样,具体可以根据实际情况设定,例如分隔符可以为[SEW]等。相邻两个分隔符之间可以为一个词语,该词语可以形成一种语义信息,且还可以表征该词语中的多个字符相互之间具有强关联,不同词语之间的关联性较弱等。
在实施中,通过上述步骤S104的处理,确定了目标文本数据中的分词位置,可以在上述确定的分词位置处插入预先设置的分隔符,例如,基于上述步骤S104的示例,带有分词位置的目标文本数据为“[CLS]我/在/蚂蚁金服/深度学习部/做/NLP/工作[SEP]主要/是/语义匹配[SEP]”,则可以将其中的“/”使用分隔符代替,以分隔符为[SEW]为例,则目标文本数据变为“[CLS]我[SEW]在[SEW]蚂蚁金服[SEW]深度学习部[SEW]做[SEW]NLP[SEW]工作[SEP]主要[SEW]是[SEW]语义匹配[SEP]”,这样。相邻两个分隔符[SEW]之间为一个词语,该词语具备一定的语义信息,而且该词语中的多个字符之间具有强关联,例如,词语“深度学习部”,其中的“深”、“度”、“学”、“习”和“部”等字符之间具有强关联,5个字符放在一起可以表达一定的语义信息,而单个字符却很难表达上述语义信息,此外,不同词语(或分词)之间的关联性较弱,例如,词语“深度学习部”与词语“做”之间的关联性较弱或没有必然的关联等。同理,对于带有分词位置的目标文本数据为“[CLS]我/收到/短信/说/做/兼职/帮忙/刷/单反/佣金/就/用/QQ/联系/给/了/我/几个/二维码/让/我/扫码/支付/支付宝/转/不了/又/用/QQ/钱包/让/我/转账[SEP]”,则目标文本数据变为“[CLS]我[SEW]收到[SEW]短信[SEW]说[SEW]做[SEW]兼职[SEW]帮忙[SEW]刷[SEW]单反[SEW]佣金[SEW]就[SEW]用[SEW]QQ[SEW]联系[SEW]给[SEW]了[SEW]我[SEW]几个[SEW]二维码[SEW]让[SEW]我[SEW]扫码[SEW]支付[SEW]支付宝[SEW]转[SEW]不了[SEW]又[SEW]用[SEW]QQ[SEW]钱包[SEW]让[SEW]我[SEW]转账[SEP]”。
在步骤S108中,将插入有上述分隔符的目标文本数据输入到预定的语言模型中,得到与指定业务相关的结果数据。
其中,该语言模型可以是用于对文本数据进行分析处理的模型,该语言模型可以包括多种,例如可以根据不同的功能,将语言模型可以分为用于风险防控的语言模型、用于信息推荐的语言模型和用于信息匹配的语言模型等。该语言模型可以通过预先设定的算法构建,例如可以基于上述BERT机制构建等。
在实施中,针对指定业务,可以通过上述内容,基于BERT机制构建语言模型,BERT对应的模型采用了Transformer的编码器作为主体模型结构,完全基于注意力机制来对一段文本数据进行建模。Transformer所使用的注意力机制的核心思想可以是去计算一个语句中的每个字符对于该语句中所有字符的相互关系,然后认为该字符与字符之间的相互关系在一定程度上反应了该语句中不同字符之间的关联性及重要程度,基于此,可以再利用上述关联性及重要程度来调整每个字符的重要性(或权重)就可以获得每个字符的新表达。该新表征不但蕴含了该字符本身,还蕴含了其他字符与该字符的关系。然而,与单纯的词向量相比,词语是一个更加全局的表达,一个词语(或分词)中的多个字符之间可以具备强关联,不同词语(或分词)之间的关联性相对较弱。
可以通过多种不同的方式获取文本数据(为了将其与前述目标文本数据进行区分,此处的文本数据可以称为历史文本数据),例如,通过购买或奖励等方式收集不同用户的历史文本数据,然后,可以对历史文本数据进行分词处理,确定历史文本数据中的分词位置,可以在历史文本数据中的分词位置处插入预定的分隔符,得到包含分隔符的历史文本数据,然后可以基于包含分隔符的历史文本数据,通过自监督的方式对BERT机制构建的语言模型进行训练,得到训练后的语言模型。
通过上述方式得到基于BERT机制构建的语言模型后,可以将上述步骤S106中得到的插入有上述分隔符的目标文本数据输入到训练后的语言模型中进行计算,其中,如上所述,一个词语(或分词)中的多个字符之间可以具备强关联,不同词语(或分词)之间的关联性相对较弱,这样,可以将目标文本数据中的语义信息代入语言模型中进行计算,从而可以提高更高层的语义信息,而不仅仅只包含单个字符的信息。由于该训练后的语言模型为基于BERT机制构建的模型,因此,该训练后的语言模型可以包括多个网络层(即TransformerBlock),通过多个Transformer Block的处理,可以得到插入有上述分隔符的目标文本数据的处理结果,其中,该处理结果应该与指定业务相关。
本说明书实施例提供一种文本数据的处理方法,通过获取针对指定业务的目标文本数据,对目标文本数据进行分词处理,确定目标文本数据中的分词位置,然后,在目标文本数据中的分词位置处插入预定的分隔符,最终,将插入有分隔符的目标文本数据输入到预定的语言模型中,得到与指定业务相关的结果数据,这样,通过对目标文本数据进行分词,并在分词位置增加相应的间隔符,从而使得在目标文本数据中起到分词的作用,进而可以提取到分词中包含的更高级的语义信息,而使得目标文本数据中不仅仅只有单个字符的信息,输出结果可以更加准确,并提高了目标文本数据的语义级别。
实施例二
如图5所示,本说明书实施例提供一种文本数据的处理方法,该方法的执行主体可以为终端设备或服务器等,其中,该终端设备可以如手机或平板电脑等移动终端设备,还可以如个人计算机等设备。该服务器可以是独立的服务器,也可以是由多个服务器组成的服务器集群,而且,该服务器可以是某网站(如网络购物网站或购物应用等)的后台服务器,或者可以是某业务(如金融业务等)的服务器等。该方法可以用于提供一种文本数据的处理机制,以能够提高语义级别和输出结果准确性。为了提高文本数据的处理效率,本实施例的执行主体可以以服务器为例进行说明,对于执行主体为终端设备的情况,可以根据下述相关内容执行,在此不再赘述。该方法具体可以包括以下步骤:
在步骤S502中,获取针对指定业务的样本数据。
其中,样本数据可以为文本数据。
在实施中,针对指定业务(如信息推荐业务或支付业务等),可以通过多种方式获取与指定业务相关的历史文本数据,并可以将其作为样本数据,例如,可以通过购买或奖励等方式收集不同用户的历史文本数据,具体地,业务提供商可以根据业务需求开发相应的应用程序,如购物或支付业务的应用程序等,可以将该应用程序提供给指定的用户,以收集历史文本数据。该应用程序可以为用户提供一种或多种不同的业务入口,用户可以通过该应用程序处理相应的业务,此外,为了满足用户的需求,还可以设置即时通讯页面,或者商品的评价或评论区等,以便需要进行交易的两个用户可以在即时通讯页面内互发通讯消息,或者,购买了某商品的用户可以在评价或评论区对商品进行评价等。另外,为了及时收集用户主动提供的相关数据(如投诉数据或举报数据等),还可以设置如举报入口或数据上传入口等。用户可以通过终端设备上传通讯消息等数据,从而得到针对指定业务的样本数据。
需要说明的是,样本数据可以是由用户输入或提供的文本数据确定,还可以是由用户输入或提供的音频数据确定,或者,可以是由用户输入或提供的音频数据,以及输入或提供的文本数据等确定,其中,对于输入或提供的音频数据的情况,还可以预先对该音频数据进行识别,可以将音频数据转换为文本数据,然后,可以得到样本数据。
在步骤S504中,对上述样本数据进行分词处理,确定该样本数据中的分词位置。
其中,样本数据中可以包括中文数据(即由中文书写的文本数据),在实际应用中,上述样本数据中可以不仅仅只包含中文数据,还可以包括由其它语言文字书写的、单个字符可能会丧失较多语义信息的文本数据等。
在实施中,对于如中文文本数据等,由于单个字符将大大降低其语义信息,而词语却可以在一定程度上代表更高级的语义信息,因此,通过上述步骤S502的处理得到针对指定业务的样本数据后,可以确定样本数据中包含的词语,为此可以设置分词机制。可以通过分词机制,对样本数据进行分词处理,并可以记录样本数据中分词的位置,其中,相邻两个分词位置之间包含一个分词,并且,如上述BERT机制的相关内容,可以在目标文本数据中的一个语句的开头设置符号[CLS],在相邻两个语句之间使用符号[SEP]隔开,并可以在目标文本数据的结尾处设置符号[SEP]。
在步骤S506中,在上述样本数据中的分词位置处插入预定的分隔符。
上述步骤S506的具体处理过程可以参见上述实施例一中步骤S106的相关内容,在此不再赘述。
在步骤S508中,基于插入有上述分隔符的样本数据训练语言模型。
其中,该语言模型可以为基于BERT的语言模型。基于上述内容,基于BERT的语言模型中包含的网络层数(即Trm的数量,也即是Transformer Block的数量)可以为12或24等,为了进一步提高语言模型的性能,可以适当减少语言模型中包含的网络层数,具体地,语言模型中包含的网络层数可以小于预定层数阈值,其中,该预定层数阈值为不大于12的正整数,具体如10或5等。在本说明书实施例中,该语言模型中包含的网络层数可以为2,即该语言模型中仅包含2个网络层(即包含2个Trm,也即是包含2个Transformer Block)。
在实施中,插入有上述分隔符的样本数据可以包括多条,可以使用每一条插入有上述分隔符的样本数据,通过自监督的方式对上述包含2个网络层的语言模型进行训练,最终可以确定包含2个网络层的语言模型中的各个参数的取值或取值范围,从而得到训练后的语言模型。
此外,为了使得包含2个网络层的语言模型的效果更优,可以使用与指定业务相匹配或相对应的语料数据对上述训练后的语言模型继续进行训练,具体可以参见下述步骤S510和步骤S512的处理。
在步骤S510中,获取针对指定业务的预定场景下的语料数据。
其中,预定场景可以是针对指定业务的场景,例如信息匹配场景或下一语句推测场景等,具体可以根据指定业务的不同而不同。
在实施中,针对指定业务,可以对指定业务进行分析(其中可以包括对指定业务的相关数据进行分析或指定业务的相关功能进行分析等),可以确定指定业务中可能会使用到的业务场景,可以将确定的业务场景作为指定业务的预定场景。然后,可以获取预定场景下的语料数据,其中,该语料数据可以为文本数据。
在步骤S512中,基于上述预定场景下的语料数据对上述语言模型继续进行训练。
在实施中,例如,通过上述步骤S502~步骤S508的处理,得到训练后的语言模型,该训练后的语言模型可以用于确定当前输入的语句是否为上一语句的下一个语句。针对上述场景,如果确定针对指定业务的预定场景为信息匹配场景,则可以使用信息匹配场景下的语料数据对上述训练后的语言模型继续训练,同时,可以将该语言模型的输出修改为用于确定当前输入的语句是否为与预定语句相匹配等。通过上述方式,可以使得语言模型得到由于上述步骤S508训练得到的语言模型。
通过上述步骤S502~步骤S512的处理得到训练的语言模型,然后,可以使用训练的语言模型对指定业务的目标文本数据进行分析处理,确定相应的结果,具体可以参见下述步骤S514~步骤S520的处理。
在步骤S514中,获取针对指定业务的目标文本数据。
其中,目标文本数据中可以包括中文数据,在实际应用中,不仅仅只有中文数据需要进行后续的分词等处理,还可以包括由其它语言文字书写的、单个字符可能会丧失较多语义信息的文本数据等。
在步骤S516中,对目标文本数据进行分词处理,确定该目标文本数据中的分词位置。
在实际应用中,目标文本数据中可以并不一定只包含由一种语言文字书写的文本数据,还可以包括其它多种不同的语言文字书写的数据,可以为不同的语言文字书写的文本数据,设置不同的分词策略,然后,再依据不同的分析策略对目标文本数据进行分词处理,则上述步骤S516的处理具体可以通过下述步骤一~步骤三实现。
步骤一,获取目标文本数据中包含的语言种类。
其中,语言种类可以包括多种,如中文(或汉语)、英语、德语和法语等。
在实施中,可以对目标文本数据进行分析,确定其中包含哪些语言的种类,例如,可以对目标文本数据进行初步分析,确定其中可能存在的不同语言种类的数据,然后,可以从每一种可能存在的语言种类的数据中提取一个或多个字符,然后将该字符与预设字符库中的字符进行比对,确定该字符属于哪一种语言,最终,确定目标文本数据中包含的语言种类。
步骤二,根据目标文本数据中包含的语言种类,确定目标文本数据的分词策略。
其中,不同的语言种类,可以有不同的分词策略,具体如对于中文,可以设置将相邻的一个或上下文中的多个字符构成一个词语,以此来表达完整的语义的分词策略,而对于英语,可以不需要设置任何分词策略(或将分词策略设置为空等)。
在实施中,可以预先设置不同语言种类与分词策略之间的对应关系,可以如表1所示。
表1
语言种类 |
分词策略 |
语言A |
分词策略1 |
语言B |
无分词策略(或空) |
语言C |
分词策略2 |
通过上述步骤一的处理确定目标文本数据中包含的语言种类后,可以在如上述表1的对应关系中,分别查找每一语言种类对应的分词策略,从而得到目标文本数据需要使用的分词策略。
步骤三,基于确定的分词策略,对目标文本数据进行分词处理,确定目标文本数据中的分词位置。
在实施中,对于目标数据中某一语言种类的文本数据,可以使用该语言种类对应的分词策略对目标数据中该语言种类的文本数据进行分词处理,确定目标数据中该语言种类的文本数据中的分词位置。对于目标数据中其它语言种类,可以分别通过上述方式确定目标数据中相应语言种类的文本数据中的分词位置,进而得到目标文本数据中的分词位置。
在步骤S518中,在上述目标文本数据中的分词位置处插入预定的分隔符。
在步骤S520中,将插入有上述分隔符的目标文本数据输入到预定的语言模型中,得到与指定业务相关的结果数据。
其中,该语言模型可以为基于BERT的语言模型。基于上述内容,基于BERT的语言模型中包含的网络层数(即Trm的数量,也即是Transformer Block的数量)可以为12或24等,为了进一步提高语言模型的性能,可以适当减少语言模型中包含的网络层数,具体地,语言模型中包含的网络层数可以小于预定层数阈值,其中,该预定层数阈值为不大于12的正整数,具体如10或5等。在本说明书实施例中,该语言模型中包含的网络层数可以为2,即该语言模型中仅包含2个网络层(即包含2个Trm,也即是包含2个Transformer Block)。
本说明书实施例提供一种文本数据的处理方法,通过获取针对指定业务的目标文本数据,对目标文本数据进行分词处理,确定目标文本数据中的分词位置,然后,在目标文本数据中的分词位置处插入预定的分隔符,最终,将插入有分隔符的目标文本数据输入到预定的语言模型中,得到与指定业务相关的结果数据,这样,通过对目标文本数据进行分词,并在分词位置增加相应的间隔符,从而使得在目标文本数据中起到分词的作用,进而可以提取到分词中包含的更高级的语义信息,而使得目标文本数据中不仅仅只有单个字符的信息,输出结果可以更加准确,并提高了目标文本数据的语义级别。
实施例三
以上为本说明书实施例提供的文本数据的处理方法,基于同样的思路,本说明书实施例还提供一种文本数据的处理装置,如图6所示。
该文本数据的处理装置包括:目标数据获取模块601、第一分词模块602、第一分隔符模块603和结果确定模块604,其中:
目标数据获取模块601,用于获取针对指定业务的目标文本数据;
第一分词模块602,用于对所述目标文本数据进行分词处理,确定所述目标文本数据中的分词位置;
第一分隔符模块603,用于在所述目标文本数据中的分词位置处插入预定的分隔符;
结果确定模块604,用于将插入有所述分隔符的目标文本数据输入到预定的语言模型中,得到与所述指定业务相关的结果数据。
本说明书实施例中,所述装置还包括:
样本获取模块,用于获取针对所述指定业务的样本数据;
第二分词模块,用于对所述样本数据进行分词处理,确定所述样本数据中的分词位置;
第二分隔符模块,用于在所述样本数据中的分词位置处插入预定的分隔符;
第一训练模块,用于基于插入有所述分隔符的样本数据训练所述语言模型。
本说明书实施例中,所述装置还包括:
语料获取模块,用于获取针对所述指定业务的预定场景下的语料数据;
第二训练模块,用于基于所述预定场景下的语料数据对所述语言模型继续进行训练。
本说明书实施例中,所述第一分词模块602,包括:
语言种类获取单元,用于获取所述目标文本数据中包含的语言种类;
分词策略确定单元,用于根据所述目标文本数据中包含的语言种类,确定所述目标文本数据的分词策略;
分词单元,用于基于确定的分词策略,对所述目标文本数据进行分词处理,确定所述目标文本数据中的分词位置。
本说明书实施例中,所述语言模型为基于BERT的语言模型。
本说明书实施例中,所述语言模型中包含的网络层数小于预定层数阈值,所述预定层数阈值为不大于12的正整数。
本说明书实施例中,所述语言模型中包含的网络层数为2,每个网络层由Multi-Head Attention层和全连接层组成。
本说明书实施例中,所述目标文本数据中包括中文数据。
本说明书实施例提供一种文本数据的处理装置,通过获取针对指定业务的目标文本数据,对目标文本数据进行分词处理,确定目标文本数据中的分词位置,然后,在目标文本数据中的分词位置处插入预定的分隔符,最终,将插入有分隔符的目标文本数据输入到预定的语言模型中,得到与指定业务相关的结果数据,这样,通过对目标文本数据进行分词,并在分词位置增加相应的间隔符,从而使得在目标文本数据中起到分词的作用,进而可以提取到分词中包含的更高级的语义信息,而使得目标文本数据中不仅仅只有单个字符的信息,输出结果可以更加准确,并提高了目标文本数据的语义级别。
实施例四
以上为本说明书实施例提供的文本数据的处理装置,基于同样的思路,本说明书实施例还提供一种文本数据的处理设备,如图7所示。
所述文本数据的处理设备可以为上述实施例提供的服务器。
文本数据的处理设备可因配置或性能不同而产生比较大的差异,可以包括一个或一个以上的处理器701和存储器702,存储器702中可以存储有一个或一个以上存储应用程序或数据。其中,存储器702可以是短暂存储或持久存储。存储在存储器702的应用程序可以包括一个或一个以上模块(图示未示出),每个模块可以包括对文本数据的处理设备中的一系列计算机可执行指令。更进一步地,处理器701可以设置为与存储器702通信,在文本数据的处理设备上执行存储器702中的一系列计算机可执行指令。文本数据的处理设备还可以包括一个或一个以上电源703,一个或一个以上有线或无线网络接口704,一个或一个以上输入输出接口705,一个或一个以上键盘706。
具体在本实施例中,文本数据的处理设备包括有存储器,以及一个或一个以上的程序,其中一个或者一个以上程序存储于存储器中,且一个或者一个以上程序可以包括一个或一个以上模块,且每个模块可以包括对文本数据的处理设备中的一系列计算机可执行指令,且经配置以由一个或者一个以上处理器执行该一个或者一个以上程序包含用于进行以下计算机可执行指令:
获取针对指定业务的目标文本数据;
对所述目标文本数据进行分词处理,确定所述目标文本数据中的分词位置;
在所述目标文本数据中的分词位置处插入预定的分隔符;
将插入有所述分隔符的目标文本数据输入到预定的语言模型中,得到与所述指定业务相关的结果数据。
本说明书实施例中,所述获取针对指定业务的目标文本数据之前,还包括:
获取针对所述指定业务的样本数据;
对所述样本数据进行分词处理,确定所述样本数据中的分词位置;
在所述样本数据中的分词位置处插入预定的分隔符;
基于插入有所述分隔符的样本数据训练所述语言模型。
本说明书实施例中,所述基于插入有所述分隔符的样本数据训练所述语言模型之后,还包括:
获取针对所述指定业务的预定场景下的语料数据;
基于所述预定场景下的语料数据对所述语言模型继续进行训练。
本说明书实施例中,所述对所述目标文本数据进行分词处理,确定所述目标文本数据中的分词位置,包括:
获取所述目标文本数据中包含的语言种类;
根据所述目标文本数据中包含的语言种类,确定所述目标文本数据的分词策略;
基于确定的分词策略,对所述目标文本数据进行分词处理,确定所述目标文本数据中的分词位置。
本说明书实施例中,所述语言模型为基于BERT的语言模型。
本说明书实施例中,所述语言模型中包含的网络层数小于预定层数阈值,所述预定层数阈值为不大于12的正整数。
本说明书实施例中,所述语言模型中包含的网络层数为2,每个网络层由Multi-Head Attention层和全连接层组成。
本说明书实施例中,所述目标文本数据中包括中文数据。
本说明书实施例提供一种文本数据的处理设备,通过获取针对指定业务的目标文本数据,对目标文本数据进行分词处理,确定目标文本数据中的分词位置,然后,在目标文本数据中的分词位置处插入预定的分隔符,最终,将插入有分隔符的目标文本数据输入到预定的语言模型中,得到与指定业务相关的结果数据,这样,通过对目标文本数据进行分词,并在分词位置增加相应的间隔符,从而使得在目标文本数据中起到分词的作用,进而可以提取到分词中包含的更高级的语义信息,而使得目标文本数据中不仅仅只有单个字符的信息,输出结果可以更加准确,并提高了目标文本数据的语义级别。
上述对本说明书特定实施例进行了描述。其它实施例在所附权利要求书的范围内。在一些情况下,在权利要求书中记载的动作或步骤可以按照不同于实施例中的顺序来执行并且仍然可以实现期望的结果。另外,在附图中描绘的过程不一定要求示出的特定顺序或者连续顺序才能实现期望的结果。在某些实施方式中,多任务处理和并行处理也是可以的或者可能是有利的。
在20世纪90年代,对于一个技术的改进可以很明显地区分是硬件上的改进(例如,对二极管、晶体管、开关等电路结构的改进)还是软件上的改进(对于方法流程的改进)。然而,随着技术的发展,当今的很多方法流程的改进已经可以视为硬件电路结构的直接改进。设计人员几乎都通过将改进的方法流程编程到硬件电路中来得到相应的硬件电路结构。因此,不能说一个方法流程的改进就不能用硬件实体模块来实现。例如,可编程逻辑器件(Programmable Logic Device,PLD)(例如现场可编程门阵列(Field Programmable GateArray,FPGA))就是这样一种集成电路,其逻辑功能由用户对器件编程来确定。由设计人员自行编程来把一个数字系统“集成”在一片PLD上,而不需要请芯片制造厂商来设计和制作专用的集成电路芯片。而且,如今,取代手工地制作集成电路芯片,这种编程也多半改用“逻辑编译器(logic compiler)”软件来实现,它与程序开发撰写时所用的软件编译器相类似,而要编译之前的原始代码也得用特定的编程语言来撰写,此称之为硬件描述语言(Hardware Description Language,HDL),而HDL也并非仅有一种,而是有许多种,如ABEL(Advanced Boolean Expression Language)、AHDL(Altera Hardware DescriptionLanguage)、Confluence、CUPL(Cornell University Programming Language)、HDCal、JHDL(Java Hardware Description Language)、Lava、Lola、MyHDL、PALASM、RHDL(RubyHardware Description Language)等,目前最普遍使用的是VHDL(Very-High-SpeedIntegrated Circuit Hardware Description Language)与Verilog。本领域技术人员也应该清楚,只需要将方法流程用上述几种硬件描述语言稍作逻辑编程并编程到集成电路中,就可以很容易得到实现该逻辑方法流程的硬件电路。
控制器可以按任何适当的方式实现,例如,控制器可以采取例如微处理器或处理器以及存储可由该(微)处理器执行的计算机可读程序代码(例如软件或固件)的计算机可读介质、逻辑门、开关、专用集成电路(Application Specific Integrated Circuit,ASIC)、可编程逻辑控制器和嵌入微控制器的形式,控制器的例子包括但不限于以下微控制器:ARC 625D、Atmel AT91SAM、Microchip PIC18F26K20以及Silicone Labs C8051F320,存储器控制器还可以被实现为存储器的控制逻辑的一部分。本领域技术人员也知道,除了以纯计算机可读程序代码方式实现控制器以外,完全可以通过将方法步骤进行逻辑编程来使得控制器以逻辑门、开关、专用集成电路、可编程逻辑控制器和嵌入微控制器等的形式来实现相同功能。因此这种控制器可以被认为是一种硬件部件,而对其内包括的用于实现各种功能的装置也可以视为硬件部件内的结构。或者甚至,可以将用于实现各种功能的装置视为既可以是实现方法的软件模块又可以是硬件部件内的结构。
上述实施例阐明的系统、装置、模块或单元,具体可以由计算机芯片或实体实现,或者由具有某种功能的产品来实现。一种典型的实现设备为计算机。具体的,计算机例如可以为个人计算机、膝上型计算机、蜂窝电话、相机电话、智能电话、个人数字助理、媒体播放器、导航设备、电子邮件设备、游戏控制台、平板计算机、可穿戴设备或者这些设备中的任何设备的组合。
为了描述的方便,描述以上装置时以功能分为各种单元分别描述。当然,在实施本说明书一个或多个实施例时可以把各单元的功能在同一个或多个软件和/或硬件中实现。
本领域内的技术人员应明白,本说明书的实施例可提供为方法、系统、或计算机程序产品。因此,本说明书一个或多个实施例可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本说明书一个或多个实施例可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本说明书的实施例是参照根据本说明书实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
在一个典型的配置中,计算设备包括一个或多个处理器(CPU)、输入/输出接口、网络接口和内存。
内存可能包括计算机可读介质中的非永久性存储器,随机存取存储器(RAM)和/或非易失性内存等形式,如只读存储器(ROM)或闪存(flash RAM)。内存是计算机可读介质的示例。
计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(PRAM)、静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)、其他类型的随机存取存储器(RAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、快闪记忆体或其他内存技术、只读光盘只读存储器(CD-ROM)、数字多功能光盘(DVD)或其他光学存储、磁盒式磁带,磁带磁磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算机可读介质不包括暂存电脑可读媒体(transitory media),如调制的数据信号和载波。
还需要说明的是,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、商品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、商品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、商品或者设备中还存在另外的相同要素。
本领域技术人员应明白,本说明书的实施例可提供为方法、系统或计算机程序产品。因此,本说明书一个或多个实施例可采用完全硬件实施例、完全软件实施例或结合软件和硬件方面的实施例的形式。而且,本说明书一个或多个实施例可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本说明书一个或多个实施例可以在由计算机执行的计算机可执行指令的一般上下文中描述,例如程序模块。一般地,程序模块包括执行特定任务或实现特定抽象数据类型的例程、程序、对象、组件、数据结构等等。也可以在分布式计算环境中实践本说明书一个或多个实施例,在这些分布式计算环境中,由通过通信网络而被连接的远程处理设备来执行任务。在分布式计算环境中,程序模块可以位于包括存储设备在内的本地和远程计算机存储介质中。
本说明书中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于系统实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
以上所述仅为本说明书的实施例而已,并不用于限制本说明书。对于本领域技术人员来说,本说明书可以有各种更改和变化。凡在本说明书的精神和原理之内所作的任何修改、等同替换、改进等,均应包含在本说明书的权利要求范围之内。