本申请涉及人工智能领域,尤其涉及一种数据处理方法及其装置。
背景技术:
1、已有的自然语言处理系统都会采用byte pair encoding(bpe)或者sentencepiece算法对输入文本进行处理,将文本中的以空格为界的各个字符串按照一定的规律进行切分,也就是将空格作为分隔符插入到文本中。目的是在推理时大幅减少未登录词的出现以及提高语言模型的泛化和容错能力。如果没有进行切分,语言中包含的所有词都必须出现在训练文本中,否则未出现的词(比如拼写错误)在推理的时候会被当做未登录词处理,语言模型的容错和推理能力都会受到很大的影响。此外,没有了分词,某些同源但词型不同的词会被语言模型认为是相互独立的,从而导致这些词共有的语义无法被充分习得,降低了语言模型的泛化能力。
2、然而,这些算法更多关注如何通过建立数学模型来得到更优的子词分布,而(部分)忽略了语言本身的特性给分词造成的不一致性,即同一个单词在不同场景中,可能会有不同的分词结果。通常的解决方案是在分词前(后)引入文本前(后)处理模块。这类方案虽然能较好地解决不一致性的问题,但也常常引入噪音导致有损分词,即输入文本在经过文本前处理、分词、逆分词和文本后处理之后无法得到恢复。
技术实现思路
1、本申请提供了一种数据处理方法,可以使得可以在后处理时准确的删去插入的分隔符,从而实现无损分词。
2、第一方面,本申请提供了一种数据处理方法,所述方法包括:获取文本;向所述文本插入分隔符,所述分隔符为非空格的字符串,所述分隔符用于标识所述文本中文字分隔的位置;对插入所述分隔符后的所述文本进行分词,得到分词结果。
3、本申请实施例中,定义了一个非空格的字符串(或者可以称之为不完全为空格的字符串)作为分隔符,例如,以单个或多个非空格字符起始并以单个或多个空格字符结尾的字符串作为分隔符,由于非空格字符在自然语言中没有空格常见,使得可以在后处理时准确的删去插入的分隔符,从而实现无损分词。
4、在一种可能的实现中,所述分隔符为以非空格的字符串起始,以至少一个空格结尾的字符串。
5、在一种可能的实现中,所述分隔符为源代码为"\u2582"对应的字符。
6、在一种可能的实现中,所述向所述文本插入分隔符,包括:
7、基于如下方法的至少一种,向所述文本插入分隔符:
8、在所述文本包括的标点符号之后的相邻位置插入分隔符;
9、在所述文本中不同语言的转换、且不以空格分隔的位置插入分隔符;
10、在所述文本包括的连续空格中的最后一个的空格之后的相邻位置插入分隔符。
11、在一种可能的实现中,所述方法还包括:根据所述分词结果,通过语言模型,得到所述文本的第一处理结果。
12、此外,还可以直接对分词结果进行后处理(例如包括逆向分词、分隔符移除、字符保护结构的移除)。
13、在一种可能的实现中,所述第一处理结果包括多个分词单元以及所述分隔符;所述方法还包括:
14、对所述第一处理结果进行逆向分词,并去除所述分隔符,得到所述文本的第二处理结果。
15、在一种可能的实现中,文本中可能还存在和分隔符相同的字符的字符串,然而,这部分字符串是属于文本的,不作为分隔符,在后处理时,这部分字符不应该被删除。因此,可以在文本中针对于和分隔符相同的字符的字符串进行保护,也就是构造字符串嵌入结构对出现在输入文本中的上述分隔符中的非空格字符部分进行保护,形成保护字符串。进而所述插入所述分隔符后的所述文本还包括:保护字符串,所述保护字符串用于标识出所述文本中和所述分隔符为相同字符的文本,且指示和所述分隔符为相同字符的文本不为分隔符。
16、在一种可能的实现中,所述第一处理结果还包括所述保护字符串;所述方法还包括:去除所述第一处理结果中的所述保护字符串。
17、第二方面,本申请提供了一种数据处理装置,所述装置包括:
18、获取模块,用于获取文本;
19、处理模块,用于向所述文本插入分隔符,所述分隔符为非空格的字符串,所述分隔符用于标识所述文本中文字分隔的位置;对插入所述分隔符后的所述文本进行分词,得到分词结果。
20、在一种可能的实现中,所述分隔符为源代码为"\u2582"对应的字符。
21、在一种可能的实现中,所述处理模块,具体用于:
22、基于如下装置的至少一种,向所述文本插入分隔符:
23、在所述文本包括的标点符号之后的相邻位置插入分隔符;
24、在所述文本中不同语言的转换、且不以空格分隔的位置插入分隔符;
25、在所述文本包括的连续空格中的最后一个的空格之后的相邻位置插入分隔符。
26、在一种可能的实现中,所述处理模块,还用于:
27、根据所述分词结果,通过语言模型,得到所述文本的第一处理结果。
28、在一种可能的实现中,所述第一处理结果包括多个分词单元以及所述分隔符;所述处理模块,还用于:
29、对所述第一处理结果进行逆向分词,并去除所述分隔符,得到所述文本的第二处理结果。
30、在一种可能的实现中,所述插入所述分隔符后的所述文本还包括:保护字符串,所述保护字符串用于标识出所述文本中和所述分隔符为相同字符的文本,且指示和所述分隔符为相同字符的文本不为分隔符。
31、在一种可能的实现中,所述第一处理结果还包括所述保护字符串;所述处理模块,还用于:
32、去除所述第一处理结果中的所述保护字符串。
33、第三方面,本申请实施例提供了一种数据处理装置,可以包括存储器、处理器以及总线系统,其中,存储器用于存储程序,处理器用于执行存储器中的程序,以执行如上述第一方面及其任一可选的方法。
34、第四方面,本申请实施例提供了一种计算机可读存储介质,所述计算机可读存储介质中存储有计算机程序,当其在计算机上运行时,使得计算机执行上述第一方面及其任一可选的方法。
35、第五方面,本申请实施例提供了一种计算机程序,当其在计算机上运行时,使得计算机执行上述第一方面及其任一可选的方法。
36、第六方面,本申请提供了一种芯片系统,该芯片系统包括处理器,用于支持数据处理装置实现上述方面中所涉及的功能,例如,发送或处理上述方法中所涉及的数据;或,信息。在一种可能的设计中,所述芯片系统还包括存储器,所述存储器,用于保存执行设备或训练设备必要的程序指令和数据。该芯片系统,可以由芯片构成,也可以包括芯片和其他分立器件。
1.一种数据处理方法,其特征在于,所述方法包括:
2.根据权利要求1所述的方法,其特征在于,所述分隔符为以非空格的字符串起始,以至少一个空格结尾的字符串。
3.根据权利要求1或2所述的方法,其特征在于,所述分隔符为源代码为"\u2582"对应的字符。
4.根据权利要求1至3任一所述的方法,其特征在于,所述向所述文本插入分隔符,包括:
5.根据权利要求1至4任一所述的方法,其特征在于,所述方法还包括:
6.根据权利要求1至5任一所述的方法,其特征在于,
7.根据权利要求1至6任一所述的方法,其特征在于,所述插入所述分隔符后的所述文本还包括:保护字符串,所述保护字符串用于标识出所述文本中和所述分隔符为相同字符的文本,且指示和所述分隔符为相同字符的文本不为分隔符。
8.根据权利要求6或7所述的方法,其特征在于,所述第一处理结果还包括所述保护字符串;所述方法还包括:
9.一种数据处理装置,其特征在于,所述装置包括:
10.根据权利要求9所述的装置,其特征在于,所述分隔符为以非空格的字符串起始,以至少一个空格结尾的字符串。
11.根据权利要求9或10所述的装置,其特征在于,所述分隔符为源代码为"\u2582"对应的字符。
12.根据权利要求9至11任一所述的装置,其特征在于,所述处理模块,具体用于:
13.根据权利要求9至12任一所述的装置,其特征在于,所述处理模块,还用于:
14.根据权利要求9至13任一所述的装置,其特征在于,所述第一处理结果包括多个分词单元以及所述分隔符;所述处理模块,还用于:对所述第一处理结果进行逆向分词,并去除所述分隔符,得到所述文本的第二处理结果;或者,
15.根据权利要求9至14任一所述的装置,其特征在于,所述插入所述分隔符后的所述文本还包括:保护字符串,所述保护字符串用于标识出所述文本中和所述分隔符为相同字符的文本,且指示和所述分隔符为相同字符的文本不为分隔符。
16.根据权利要求14或15所述的装置,其特征在于,所述第一处理结果还包括所述保护字符串;所述处理模块,还用于:
17.一种计算机存储介质,其特征在于,所述计算机存储介质存储有一个或多个指令,所述指令在由一个或多个计算机执行时使得所述一个或多个计算机执行权利要求1至8中任一项所述方法的操作。
18.一种计算机程序产品,其特征在于,包括计算机可读指令,当所述计算机可读指令在计算机设备上运行时,使得所述计算机设备执行如权利要求1至8任一所述的方法。
19.一种系统,包括至少一个处理器,至少一个存储器;所述处理器、所述存储器通过通信总线连接并完成相互间的通信;