CN114880523A - 字符串处理方法、装置、电子设备及存储介质 - Google Patents
字符串处理方法、装置、电子设备及存储介质 Download PDFInfo
- Publication number
- CN114880523A CN114880523A CN202210450193.5A CN202210450193A CN114880523A CN 114880523 A CN114880523 A CN 114880523A CN 202210450193 A CN202210450193 A CN 202210450193A CN 114880523 A CN114880523 A CN 114880523A
- Authority
- CN
- China
- Prior art keywords
- character string
- target
- character
- unique identification
- processed
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
- 238000003672 processing method Methods 0.000 title claims abstract description 14
- 238000012545 processing Methods 0.000 claims abstract description 83
- 238000013507 mapping Methods 0.000 claims abstract description 47
- 238000000034 method Methods 0.000 claims description 31
- 238000004590 computer program Methods 0.000 claims description 19
- 230000004048 modification Effects 0.000 claims description 11
- 238000012986 modification Methods 0.000 claims description 11
- 238000012217 deletion Methods 0.000 claims description 8
- 230000037430 deletion Effects 0.000 claims description 8
- 230000006870 function Effects 0.000 description 8
- 238000010586 diagram Methods 0.000 description 6
- 239000003550 marker Substances 0.000 description 6
- 230000008569 process Effects 0.000 description 6
- 230000004044 response Effects 0.000 description 4
- 230000008878 coupling Effects 0.000 description 3
- 238000010168 coupling process Methods 0.000 description 3
- 238000005859 coupling reaction Methods 0.000 description 3
- 238000004891 communication Methods 0.000 description 2
- 238000013461 design Methods 0.000 description 1
- 238000001514 detection method Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 230000003993 interaction Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/90—Details of database functions independent of the retrieved data types
- G06F16/901—Indexing; Data structures therefor; Storage structures
- G06F16/9027—Trees
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/90—Details of database functions independent of the retrieved data types
- G06F16/903—Querying
- G06F16/90335—Query processing
- G06F16/90344—Query processing by using string matching techniques
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/90—Details of database functions independent of the retrieved data types
- G06F16/903—Querying
- G06F16/90335—Query processing
- G06F16/90348—Query processing by searching ordered data, e.g. alpha-numerically ordered data
Landscapes
- Engineering & Computer Science (AREA)
- Databases & Information Systems (AREA)
- Theoretical Computer Science (AREA)
- Data Mining & Analysis (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computational Linguistics (AREA)
- Software Systems (AREA)
- Machine Translation (AREA)
Abstract
本申请适用于计算机技术领域,提供了字符串处理方法、装置、电子设备及存储介质,包括:获取待处理字符串;其中,待处理字符串为目标语言的字符串,目标语言的字符串中每个字符所占的字节数大于1;根据预设的目标映射关系,确定待处理字符串中每个字符对应的唯一标识号;其中,目标映射关系包括目标语言的每个字符与唯一标识号的映射关系,唯一标识号的数据类型为预设数据类型;根据所述待处理字符串的各个字符分别对应的所述唯一标识号以及目标字典树,对所述待处理字符串进行处理,得到目标处理结果;其中,所述目标字典树中的每个节点的数据类型为所述预设数据类型。本申请实施例能够在基于字典树进行字符串处理时节省存储空间。
Description
技术领域
本申请属于计算机技术领域,尤其涉及一种字符串处理方法、装置、电子设备及存储介质。
背景技术
字典树,也称为单词查找树,是一种树形结构,是哈希树的一种变种。字典树可以用于统计,排序和保存大量的字符串,经常应用于搜索引擎系统。它的优点是:利用字符串的公共前缀来减少查询时间,最大限度地减少重复的字符串比较,查询效率比哈希树高。
目前,根据现有的字符编码规则,一些语言文本对应的字符所占的字节数大于1,而现有的字典树的每个节点只能够存储一个字节的数据量,从而导致一个字符的信息需要由多个节点来存储,这种方式内存开销较大。
发明内容
有鉴于此,本申请实施例提供了字符串处理方法、装置、电子设备及存储介质,以解决现有技术中如何在基于字典树进行字符串处理时节省存储空间的问题。
本申请实施例的第一方面提供了一种字符串处理方法,包括:
获取待处理字符串;其中,所述待处理字符串为目标语言的字符串,所述目标语言的字符串中每个字符所占的字节数大于1;
根据预设的目标映射关系,确定所述待处理字符串中每个字符对应的唯一标识号;其中,所述目标映射关系包括目标语言的每个字符与唯一标识号的映射关系,所述唯一标识号的数据类型为预设数据类型;
根据所述待处理字符串的各个字符分别对应的所述唯一标识号以及目标字典树,对所述待处理字符串进行处理,得到目标处理结果;其中,所述目标字典树中的每个节点的数据类型为所述预设数据类型。
可选地,所述待处理字符串包括待存储字符串,所述根据所述待处理字符串的各个字符分别对应的所述唯一标识号以及目标字典树,对所述待处理字符串进行处理,得到目标处理结果,包括:
根据所述待存储字符串的各个字符分别对应的所述唯一标识号,在所述目标字典树的节点中存储所述唯一标识号,得到字符串存储结果。
可选地,所述待处理字符串包括待查找字符串,所述根据所述待处理字符串的各个字符分别对应的所述唯一标识号以及目标字典树,对所述待处理字符串进行处理,得到目标处理结果,包括:
根据所述待查找字符串的各个字符分别对应的所述唯一标识号,在所述目标字典树中进行逐级节点索引,得到字符串查找结果。
可选地,所述待处理字符串包括待删除字符串,所述根据所述待处理字符串的各个字符分别对应的所述唯一标识号以及目标字典树,对所述待处理字符串进行处理,得到目标处理结果,包括:
根据所述待删除字符串的各个字符分别对应的所述唯一标识号,在所述目标字典树中查找与所述待删除字符串对应的第一目标节点,通过对所述第一目标节点进行词标记修改处理或者删除处理,得到字符串删除结果。
可选地,所述待处理字符串包括待修改字符串,所述根据所述待处理字符串的各个字符分别对应的所述唯一标识号以及目标字典树,对所述待处理字符串进行处理,得到目标处理结果,包括:
根据所述待修改字符串的各个字符分别对应的所述唯一标识号,在所述目标字典树中查找与所述待修改字符串对应的第二目标节点,通过对所述第二目标节点的信息进行修改,得到字符串修改结果。
可选地,在所述获取待处理字符串之前,还包括:
根据目标语言包含的字符数量,确定预设数据类型;
为所述目标语言的各个字符分别设置数据类型为所述预设数据类型的唯一标识号,得到所述目标映射关系。
可选地,所述目标语言为中文、韩文、日文中的任意一种语言,所述预设数据类型为短整型。
本申请实施例的第二方面提供了一种字符串处理装置,包括:
获取单元,用于获取待处理字符串;其中,所述待处理字符串为目标语言的字符串,所述目标语言的字符串中每个字符所占的字节数大于1;
映射单元,用于根据预设的目标映射关系,确定所述待处理字符串中每个字符对应的唯一标识号;其中,所述目标映射关系包括目标语言的每个字符与唯一标识号的映射关系,所述唯一标识号的数据类型为预设数据类型;
处理单元,用于根据所述待处理字符串的各个字符分别对应的所述唯一标识号以及目标字典树,对所述待处理字符串进行处理,得到目标处理结果;其中,所述目标字典树中的每个节点的数据类型为所述预设数据类型。
本申请实施例的第三方面提供了一种电子设备,包括存储器、处理器以及存储在所述存储器中并可在所述处理器上运行的计算机程序,当所述处理器执行所述计算机程序时,使得电子设备实现如所述字符串处理方法的步骤。
本申请实施例的第四方面提供了一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,当所述计算机程序被处理器执行时,使得电子设备实现如所述字符串处理方法的步骤。
本申请实施例的第五方面提供了一种计算机程序产品,当计算机程序产品在电子设备上运行时,使得电子设备执行上述第一方面中任一项所述的字符串处理方法。
本申请实施例与现有技术相比存在的有益效果是:本申请实施例中,获取目标语言的待处理字符串,由于目标语言的字符串中每个字符所占的字节数大于1,因此根据预设的目标映射关系,先将该待处理字符串中的每个字符映射为数据类型为预设数据类型的唯一标识号,之后,根据该待处理字符串的各个字符分别对应的该唯一标识号及目标字典树对该待处理字符串进行处理,得到目标处理结果。由于该目标字典树中的每个节点的数据类型为预设数据类型,因此目标字典树的一个节点可以与一个预设数据类型的唯一标识号相对应,相对于目前需要字典树的多个节点共同存储字符串的同一字符的信息的方式,能够使得在基于字典树对字符串进行处理时节省内存空间,提高字符串处理效率。
附图说明
为了更清楚地说明本申请实施例中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍。
图1是本申请实施例提供的一种字符串处理方法的实现流程示意图;
图2是本申请实施例提供的一种目标字典树的示意图;
图3是本申请实施例提供的另一种目标字典树的示意图;
图4是本申请实施例提供的字符串处理装置的示意图;
图5是本申请实施例提供的一种电子设备的示意图。
具体实施方式
以下描述中,为了说明而不是为了限定,提出了诸如特定系统结构、技术之类的具体细节,以便透彻理解本申请实施例。然而,本领域的技术人员应当清楚,在没有这些具体细节的其它实施例中也可以实现本申请。在其它情况中,省略对众所周知的系统、装置、电路以及方法的详细说明,以免不必要的细节妨碍本申请的描述。
为了说明本申请所述的技术方案,下面通过具体实施例来进行说明。
应当理解,当在本说明书和所附权利要求书中使用时,术语“包括”指示所描述特征、整体、步骤、操作、元素和/或组件的存在,但并不排除一个或多个其它特征、整体、步骤、操作、元素、组件和/或其集合的存在或添加。
还应当理解,在此本申请说明书中所使用的术语仅仅是出于描述特定实施例的目的而并不意在限制本申请。如在本申请说明书和所附权利要求书中所使用的那样,除非上下文清楚地指明其它情况,否则单数形式的“一”、“一个”及“该”意在包括复数形式。
还应当进一步理解,在本申请说明书和所附权利要求书中使用的术语“和/或”是指相关联列出的项中的一个或多个的任何组合以及所有可能组合,并且包括这些组合。
如在本说明书和所附权利要求书中所使用的那样,术语“如果”可以依据上下文被解释为“当...时”或“一旦”或“响应于确定”或“响应于检测到”。类似地,短语“如果确定”或“如果检测到[所描述条件或事件]”可以依据上下文被解释为意指“一旦确定”或“响应于确定”或“一旦检测到[所描述条件或事件]”或“响应于检测到[所描述条件或事件]”。
另外,在本申请的描述中,术语“第一”、“第二”、“第三”等仅用于区分描述,而不能理解为指示或暗示相对重要性。
为了更好地说明本申请实施例的字符串处理方法,以下对本申请实施例的一些相关概念进行解释:
1、字典树(TrieTree)
字典树中,每个树叶节点对应一个哈希表,哈希表的key为该节点存储的字符,value是该节点对应的一个字典树子树(包含该节点所有的子节点,即该字符之后的所有后缀字符)。在目前的字典树中,每个节点key值的数据类型为char(字符型),只有一个字节。
通常,字典树具有以下的三个基本性质:
1)根节点(root)不包含字符,除根节点外的每一个子节点都包含一个字符。
2)从根节点到某一个节点,路径上经过的字符连接起来,为该节点对应的字符串。
3)每个节点的所有子节点包含的字符互不相同。
2、UTF-8编码规则
UTF-8(8位元Unicode)是针对Unicode的一种可变长度字符编码。它可以用来表示Unicode(统一字符编码标准)中的任何字符,而且其编码中的第一个字节仍与ASCII(美国信息交换标准代码)相容,使得原来处理ASCII字符的软件无须或只进行少部分修改后,便可继续使用。
通常,对于英文字符,只需1字节进行编码;而对于带有变音符号的语言字符(例如拉丁文、希腊文、阿拉伯文等语言的字符),需要2个字节编码;而对于中日韩、东南亚、中东等国家的语言的字符,通常需要采用3个字节进行编码;还有一些地方的语言的字符需要使用4个字节进行编码。
由于上述采用UTF-8编码规则对字符进行编码时,有些语言的字符需要2个字节进行编码,而现有的字典树中每个节点的key值的数据类型为只能够存储一个字节信息的char类型,因此导致在一些语言的字符存储中,需要占用字典树的多个节点才能够完成一个字符的存储。例如,对于中日韩语言来说,需要3个节点才能完成一个字符的存储。这种情况下,大大增加了存储空间,降低了字符串处理效率。
为了解决上述的技术问题,本申请实施例提供了一种字符串处理方法、装置、电子设备及存储介质,包括:获取待处理字符串;其中,所述待处理字符串为目标语言的字符串,所述目标语言的字符串中每个字符所占的字节数大于1;根据预设的目标映射关系,确定所述待处理字符串中每个字符对应的唯一标识号;其中,所述目标映射关系包括目标语言的每个字符与唯一标识号的映射关系,所述唯一标识号的数据类型为预设数据类型;根据所述待处理字符串的各个字符分别对应的所述唯一标识号以及目标字典树,对所述待处理字符串进行处理,得到目标处理结果;其中,所述目标字典树中的每个节点的数据类型为所述预设数据类型。
由于在对每个字符所占字节数大于1的目标语言的字符串进行处理时,能够先将该字符串的每个字符转换为对应的数据类型为预设数据类型的唯一标识号,并能够设置节点数据类型为预设数据类型的目标字典树,因此能够通过在目标字典树的一个节点存储一个唯一标识号间接地完成对一个字符的存储,相对于目前需要字典树的多个节点共同存储字符串的同一字符的信息的方式,能够使得在基于字典树对字符串进行处理时节省内存空间,提高字符串处理效率。
实施例一:
图1示出了本申请实施例提供的一种字符串处理方法的流程示意图,详述如下:
在S101中,获取待处理字符串;其中,所述待处理字符串为目标语言的字符串,所述目标语言的字符串中每个字符所占的字节数大于1。
本申请实施例中目标语言包括但不限于中日韩语言、东南亚语言、中东语言、拉丁语、希腊语、阿拉伯语等。这些语言的字符经过UTF-8编码,每个字符所占的字节数大于1。
本申请实施例的待处理字符串即为上述的目标语言的字符串。在一个实施例中,可以通过接收用户通过目标语言的输入法输入的信息,得到上述的待处理字符串。
在S102中,根据预设的目标映射关系,确定所述待处理字符串中每个字符对应的唯一标识号;其中,所述目标映射关系包括目标语言的每个字符与唯一标识号的映射关系,所述唯一标识号的数据类型为预设数据类型。
本申请实施例中,目标映射关系包括目标语言的每个字符与数据类型为预设数据类型的唯一标识号(id)的映射关系,该目标映射关系是提前设置并通过映射函数、映射表等方式存储的。示例性地,该预设数据类型可以为整型(int)、短整型(short int)等。
在获取待处理字符串之后,对于待处理字符串的每个字符,均通过查找该预设的目标映射关系,确定该待处理字符串中每个字符依次对应的唯一标识号。
在S103中,根据所述待处理字符串的各个字符分别对应的所述唯一标识号以及目标字典树,对所述待处理字符串进行处理,得到目标处理结果;其中,所述目标字典树中的每个节点的数据类型为所述预设数据类型。
本申请实施例中,目标字典树为定制了节点数据类型的字典树,该目标字典树的节点的数据类型与上述的唯一标识号的数据类型一致,即该目标字典树的节点中,用于存储字符信息的key的数据类型为预设数据类型。
在一个实施例中,该目标字典树中每个节点除了包含其对应的哈希表(哈希表的key为该节点存储的字符信息)外,还包含了该节点的字符对应的词标记,该词标记可以包括词结束标记(例如可以为“True”、“Yes”“1”、“词结束”等任意一种提前设定的标记)、非结束标记(例如可以为“False”、“No”“0”、“非结束”等任意一种提前设定的标记)这两种;当该字符对应的词标记为词结束标记时,表示从根节点到当前节点,路径上经过的字符连接起来,能够组成一个以该当前节点所表示的字符为词结尾的完整词语;相反地,当该字符对应的词标记为非结束标记时,表示从根节点到当前节点,无法组合成一个以该当前节点的字符为词结尾的词语。示例性地,这种情况下一种用于存储中文字符信息的目标字典树的树结构如图2所示,其中节点中的汉字仅表示该节点存储的为该汉字对应的信息,而不表示该节点直接存储该汉字对应的UTF-8编码字符,该节点实际存储的该汉字对应的唯一标识号及其词标记。
在另一个实施例中,该目标字典树中的节点不包含词标记,该目标字典树中的叶子节点为一个词结束标记,该目标字典树中的非叶子节点表示一个字符信息,即这种情况下的目标字典树,是通过对一个节点连接一个存储了表示词结束信息的叶子节点,来表示该节点的字符可以作为词结尾,从根节点到该节点所经过的各个字符能够组成一个完整的词语。示例性地,这种情况下用于存储中文字符信息的目标字典树的树结构如图3所示,其中非叶子节点中的汉字仅表示该节点存储的为该汉字对应的信息,而不表示该节点直接存储该汉字对应的UTF-8编码字符,叶子节点中的“中文结束”标识用于表示该叶子节点的父节点所表示的字符可以作为一个完整词语的结尾。
在确定了待处理字符串中每个字符对应的唯一标识号之后,基于该目标字典树,通过对该待处理字符串每个字符依次对应的各个唯一标识号对该待处理字符串进行处理,得到目标处理结果。其中,对该待处理字符串的处理可以包括:在目标字典树中存储、查找、删除、修改该待处理字符串。
本申请实施例中,由于在对每个字符所占字节数大于1的目标语言的字符串进行处理时,能够先将该字符串的每个字符转换为对应的数据类型为预设数据类型的唯一标识号,并能够设置节点数据类型为预设数据类型的目标字典树,因此能够通过在目标字典树的一个节点存储一个唯一标识号间接地完成对一个字符的存储,相对于目前需要字典树的多个节点共同存储字符串的同一字符的信息的方式,能够使得在基于字典树对字符串进行处理时节省内存空间,提高字符串处理效率。
可选地,所述待处理字符串包括待存储字符串,所述根据所述待处理字符串的各个字符分别对应的所述唯一标识号以及目标字典树,对所述待处理字符串进行处理,得到目标处理结果,包括:
根据所述待存储字符串的各个字符分别对应的所述唯一标识号,在所述目标字典树的节点中存储所述唯一标识号,得到字符串存储结果。
本申请实施例的待处理字符串具体为待存储字符串,即当前需要对获取的字符串进行存储。对于该待存储字符串,在依次确定该待存储字符串中每单个字符对应的唯一标识号后,从该目标字典树的根节点开始,将与待存储字符串的各个字符一一对应的各个唯一标识号按顺序逐级存储于目标字典树的各个节点中,并为存储最后一个字符对应的唯一标识号的节点添加词结束标记或者连接一个用于表示词结束信息的叶子节点,从而完成对该待存储字符串的存储,得到字符串存储结果。在一个实施例中,该字符串存储结果可以包括:表示该待存储字符串存储成功的结果,或者表示该待存储字符串存储失败的结果;当该待存储字符串存储成功时,该字符串存储结果还可以包括该待存储字符串的存储地址等。
本申请实施例中,通过在目标字典树的各个节点依次存储待存储字符串的各个字符对应的唯一标识号,能够间接地通过目标字典树的一个节点完成对一个字符的存储,相对于目前需要字典树的多个节点共同存储字符串的同一字符的信息的方式,能够大量地节省存储字符串所需要的存储空间。
可选地,所述待处理字符串包括待查找字符串,所述根据所述待处理字符串的各个字符分别对应的所述唯一标识号以及目标字典树,对所述待处理字符串进行处理,得到目标处理结果,包括:
根据所述待查找字符串的各个字符分别对应的所述唯一标识号,在所述目标字典树中进行逐级节点索引,得到字符串查找结果。
本申请实施例的待处理字符串具体为待查找字符串,即当前需要根据获取的待查找字符串,查找该目标字典树是否已存储了该待查找字符串的信息。对于该待查找字符串,在依次确定该待查找字符串中每个字符对应的唯一标识号后,从该目标字典树根节点开始,按序对目标字典树的逐级节点进行索引,确定该待查找字符串依次包含的各个字符对应的唯一标识号是否存在于目标字典树对应层级的节点中。若通过按序逐级索引,确定从该目标字典树的根节点到结束节点(例如词标记为词结束标记的节点)路径上经过的字符连接起来能够组成一个与待查找字符串一致的字符串,则确定当前的字符串查找结果为查找成功;否则,确定当前的字符串查找结果为查找失败。
示例性地,设当前的目标字典树如图2所示,待查找字符串为“烦恼”,则确定“烦”字对应的唯一标识号和“恼”字对应的唯一标识号后,从目标字典树的根节点root出发,开始查找该目标字典树的第一级子节点中是否存在已存储了“烦”字对应的唯一标识号的节点;由于第一级子节点的第二个节点存在与“烦”字相对应的唯一标识号,因此可以查找该节点的子节点是否存储了与待查找字符串的第二个字符“恼”对应的唯一标识号,当存在时,则确定当前能够在目标字典树中查找到字符串“烦恼”,确定当前的字符串查找结果为查找成功。而若待查找字符串为:“烦心”、“开心”等,由于无法通过上述逐级索引的方式在目标字典树依次查找到这些字符串的各个字符对应的唯一标识号,因此可以确定字符串查找结果为查找失败。
本申请实施例中,由于目标字典树只需存储字符对应的唯一标识号的信息,即能够间接地通过目标字典树的一个节点完成对一个字符的存储,而在获取待查找字符串后,同样先将该待查找字符串中的每个字符转换为对应的唯一标识号,即可高效准确地在目标字典树中完成字符串索引,在节省字符存储空间的同时,保证基于字典树的字符串检索效率和准确性。
可选地,所述待处理字符串包括待删除字符串,所述根据所述待处理字符串的各个字符分别对应的所述唯一标识号以及目标字典树,对所述待处理字符串进行处理,得到目标处理结果,包括:
根据所述待删除字符串的各个字符分别对应的所述唯一标识号,在所述目标字典树中查找与所述待删除字符串对应的第一目标节点,通过对所述第一目标节点进行删除处理或者词标记修改处理,得到字符串删除结果。
本申请实施例的待处理字符串具体为待删除字符串,即当前需要根据获取的待删除字符串,从该目标字典树定位该待删除字符串并将其进行删除。由于目标字典树对于一个完整字符串的存储,需要在该字符串的最后一个字符对应的节点添加词结束标记或者添加一个用于表示词结尾的叶子节点,因此,本申请实施例只需通过与上述的字符串查找方法,从目标字典树中查找到与该待删除字符串一致的路径节点后,将其最后一个节点作为该字符串对应的第一目标节点,对该第一目标节点进行处理即可实现对该待删除字符串的删除。在一个实施例中,若该第一目标节点为携带词标记的节点,则将该第一目标节点的词标记从“词结束标记”修改为“非结束标记”;例如,设目标字典树如图2所示,待删除字符串“烦恼”,则查找到该目标字典树中第二级子节点中用于存储“恼”字对应的唯一标识号的节点后,将该节点的词标记修改为“非结束标记”,即可实现对该字符串的删除,后续无法从目标字典树中查找到“烦恼”这个字符串。在另一个实施例中,若该第一目标节点为用于表示词结尾的叶子节点,则直接将该第一目标节点进行删除;例如,设目标字典树如图3所示,待删除字符串“烦恼”,则查找到该目标字典树中与第二级子节点“恼”字相连的存储了“[中文结束]”信息的叶子节点后,将该叶子节点进行删除,即可实现对该字符串的删除,后续无法从目标字典树中查找到“烦恼”这个字符串。
本申请实施例中,由于目标字典树只需存储字符对应的唯一标识号的信息,即能够间接地通过目标字典树的一个节点完成对一个字符的存储,而在获取待删除字符串后,先将该待删除字符串中的每个字符转换为对应的唯一标识号,即可高效准确地在目标字典树中定位待删除的字符串,并通过对第一目标节点的词标记修改或者删除,即可完成对该待删除字符串的删除,提高了字符删除效率。
可选地,所述待处理字符串包括待修改字符串,所述根据所述待处理字符串的各个字符分别对应的所述唯一标识号以及目标字典树,对所述待处理字符串进行处理,得到目标处理结果,包括:
根据所述待修改字符串的各个字符分别对应的所述唯一标识号,在所述目标字典树中查找与所述待修改字符串对应的第二目标节点,通过对所述第二目标节点的信息进行修改,得到字符串修改结果。
本申请实施例的待处理字符串具体为待修改字符串,即当前需要根据获取的待修改字符串对目标字典树存储的信息进行修改。对于该待修改字符串,在依次确定该待修改字符串的各个字符对应的唯一标识号后,根据各个唯一标识号通过上述的字符串查找时的逐级节点索引方式,从目标字典树中定位出存储了该待修改字符串的字符对应的唯一标识号的第二目标节点。之后,确定目标字符串(即该待修改字符串所要修改成的字符串)各个字符对应的唯一标识号,将第二目标节点中存储的信息更新为目标字符串中字符对应的唯一标识号的信息,从而实现对待修改字符串的修改,得到字符串修改结果。
本申请实施例中,由于目标字典树只需存储字符对应的唯一标识号的信息,即能够间接地通过目标字典树的一个节点完成对一个字符的存储,而在获取待修改字符串后,先将该待修改字符串中的每个字符转换为对应的唯一标识号,即可高效准确地在目标字典树中定位待修改的字符串,并通过对第二目标节点修改,即可高效准确地实现字符信息修改。
可选地,在所述获取待处理字符串之前,还包括:
根据目标语言包含的字符数量,确定预设数据类型;
为所述目标语言的各个字符分别设置数据类型为所述预设数据类型的唯一标识号,得到所述目标映射关系。
本申请实施例中,在获取待处理字符串之前,先设置并存储目标语言中每个字符与唯一标识号的目标映射关系。
为了保证目标语言中的每个字符均能够与一个对应的唯一标识号唯一对应,该唯一标识号对应的预设数据类型所能够表示的信息数量需要大于或者等于该目标语言所包含的字符数量。因此,本申请实施例中,可以根据目标语言包含的字符数量,确定当前用于设置字符的唯一标识号的预设数据类型。示例性地,设目标语言包含的字符数量小于65536,而短整型的数据类型能够表示从-32768到32767共65536个值,因此目标语言的字符的唯一标识号的预设数据类型可以为短整型。
在确定该预设数据类型之后,依次为目标语言的各个字符分别设置数据类型为上述的预设数据类型的唯一标识号,并将各个字符及其对应的唯一标识号绑定存储于映射表中,得到目标映射关系。
本申请实施例中,由于在获取待处理字符串之前,能够先根据目标语言的字符数量,准确地设置预设数据类型,从而能够准确地设置目标映射关系,方便后续准确地将待处理字符串的字符转换为对应的唯一标识号。
可选地,所述目标语言为中文、韩文、日文中的任意一种语言,所述预设数据类型为短整型。
本申请实施例中,目标语言可以为中文、韩文、日文中的任意一种语言。由于这三种语言对应的字符在UTF-8编码格式中所占的字节为3个字节,因此可以通过本申请实施例的字符串处理方法,先将待处理字符串的各个字符转换为对应的唯一标识号后,再基于各个唯一标识号实现对待处理字符串的处理。而由于这三种语言包含的常用字符数量均小于65536,因此,可以短整型作为预设数据类型,完成各个字符的唯一标识号的设置,得到目标映射关系。
示例性地,以中文词条库为例,统计词条库中的所有单个字符,共有6754个。按顺序依次给这6754个字符设置数据类型为短整型的唯一标识号1~6754,并将各个字符与其对应唯一标识号进行绑定存储,得到目标映射关系。对于汉字“人”,原来在UTF-8编码格式下,需要分别存储147、156、16这三个字节信息的三个节点,才能够完成对该汉字的存储;而通过本申请实施例的方法,先通过目标映射关系确定汉字“人”的唯一标识号“375”,之后,在目标字典树中,只需通过一个节点存储数据类型为短整型的唯一标识号375,相对于原来的方式,节点数量缩小了三倍,因此能够极大地缩小所占据的存储空间。
应理解,上述实施例中各步骤的序号的大小并不意味着执行顺序的先后,各过程的执行顺序应以其功能和内在逻辑确定,而不应对本申请实施例的实施过程构成任何限定。
实施例二:
图4示出了本申请实施例提供的一种字符串处理装置的结构示意图,为了便于说明,仅示出了与本申请实施例相关的部分:
该字符串处理装置包括:获取单元41、映射单元42、处理单元43。其中:
获取单元41,用于获取待处理字符串;其中,所述待处理字符串为目标语言的字符串,所述目标语言的字符串中每个字符所占的字节数大于1。
映射单元42,用于根据预设的目标映射关系,确定所述待处理字符串中每个字符对应的唯一标识号;其中,所述目标映射关系包括目标语言的每个字符与唯一标识号的映射关系,所述唯一标识号的数据类型为预设数据类型。
处理单元43,用于根据所述待处理字符串的各个字符分别对应的所述唯一标识号以及目标字典树,对所述待处理字符串进行处理,得到目标处理结果;其中,所述目标字典树中的每个节点的数据类型为所述预设数据类型。
可选地,所述待处理字符串包括待存储字符串,所述处理单元43,具体用于根据所述待存储字符串的各个字符分别对应的所述唯一标识号,在所述目标字典树的节点中存储所述唯一标识号,得到字符串存储结果。
可选地,所述待处理字符串包括待查找字符串,所述处理单元43,具体用于根据所述待查找字符串的各个字符分别对应的所述唯一标识号,在所述目标字典树中进行逐级节点索引,得到字符串查找结果。
可选地,所述待处理字符串包括待删除字符串,所述处理单元43,具体用于根据所述待删除字符串的各个字符分别对应的所述唯一标识号,在所述目标字典树中查找与所述待删除字符串对应的第一目标节点,通过对所述第一目标节点进行词标记修改处理或者删除处理,得到字符串删除结果。
可选地,所述待处理字符串包括待修改字符串,所述处理单元43,具体用于根据所述待修改字符串的各个字符分别对应的所述唯一标识号,在所述目标字典树中查找与所述待修改字符串对应的第二目标节点,通过对所述第二目标节点的信息进行修改,得到字符串修改结果。
可选地,所述字符串处理装置,还包括:
目标映射关系设置单元,用于根据目标语言包含的字符数量,确定预设数据类型;为所述目标语言的各个字符分别设置数据类型为所述预设数据类型的唯一标识号,得到所述目标映射关系。
可选地,所述目标语言为中文、韩文、日文中的任意一种语言,所述预设数据类型为短整型。
需要说明的是,上述装置/单元之间的信息交互、执行过程等内容,由于与本申请方法实施例基于同一构思,其具体功能及带来的技术效果,具体可参见方法实施例部分,此处不再赘述。
实施例三:
图5是本申请一实施例提供的电子设备的示意图。如图5所示,该实施例的电子设备5包括:处理器50、存储器51以及存储在所述存储器51中并可在所述处理器50上运行的计算机程序52,例如字符串处理程序。所述处理器50执行所述计算机程序52时实现上述各个字符串处理方法实施例中的步骤,例如图1所示的步骤S101至S103。或者,所述处理器50执行所述计算机程序52时实现上述各装置实施例中各模块/单元的功能,例如图4所示获取单元41至43的功能。
示例性的,所述计算机程序52可以被分割成一个或多个模块/单元,所述一个或者多个模块/单元被存储在所述存储器51中,并由所述处理器50执行,以完成本申请。所述一个或多个模块/单元可以是能够完成特定功能的一系列计算机程序指令段,该指令段用于描述所述计算机程序52在所述电子设备5中的执行过程。
所述电子设备5可以是桌上型计算机、笔记本、掌上电脑及云端服务器等计算设备。所述电子设备可包括,但不仅限于,处理器50、存储器51。本领域技术人员可以理解,图5仅仅是电子设备5的示例,并不构成对电子设备5的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件,例如所述电子设备还可以包括输入输出设备、网络接入设备、总线等。
所称处理器50可以是中央处理单元(Central Processing Unit,CPU),还可以是其他通用处理器、数字信号处理器(Digital Signal Processor,DSP)、专用集成电路(Application Specific Integrated Circuit,ASIC)、现场可编程门阵列(Field-Programmable Gate Array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。
所述存储器51可以是所述电子设备5的内部存储单元,例如电子设备5的硬盘或内存。所述存储器51也可以是所述电子设备5的外部存储设备,例如所述电子设备5上配备的插接式硬盘,智能存储卡(Smart Media Card,SMC),安全数字(Secure Digital,SD)卡,闪存卡(Flash Card)等。进一步地,所述存储器51还可以既包括所述电子设备5的内部存储单元也包括外部存储设备。所述存储器51用于存储所述计算机程序以及所述电子设备所需的其他程序和数据。所述存储器51还可以用于暂时地存储已经输出或者将要输出的数据。
所属领域的技术人员可以清楚地了解到,为了描述的方便和简洁,仅以上述各功能单元、模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能单元、模块完成,即将所述装置的内部结构划分成不同的功能单元或模块,以完成以上描述的全部或者部分功能。实施例中的各功能单元、模块可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中,上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。另外,各功能单元、模块的具体名称也只是为了便于相互区分,并不用于限制本申请的保护范围。上述系统中单元、模块的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述或记载的部分,可以参见其它实施例的相关描述。
本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、或者计算机软件和电子硬件的结合来实现。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本申请的范围。
在本申请所提供的实施例中,应该理解到,所揭露的装置/电子设备和方法,可以通过其它的方式实现。例如,以上所描述的装置/电子设备实施例仅仅是示意性的,例如,所述模块或单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通讯连接可以是通过一些接口,装置或单元的间接耦合或通讯连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本申请各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
所述集成的模块/单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请实现上述实施例方法中的全部或部分流程,也可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一计算机可读存储介质中,该计算机程序在被处理器执行时,可实现上述各个方法实施例的步骤。其中,所述计算机程序包括计算机程序代码,所述计算机程序代码可以为源代码形式、对象代码形式、可执行文件或某些中间形式等。所述计算机可读介质可以包括:能够携带所述计算机程序代码的任何实体或装置、记录介质、U盘、移动硬盘、磁碟、光盘、计算机存储器、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、电载波信号、电信信号以及软件分发介质等。需要说明的是,所述计算机可读介质包含的内容可以根据司法管辖区内立法和专利实践的要求进行适当的增减,例如在某些司法管辖区,根据立法和专利实践,计算机可读介质不包括电载波信号和电信信号。
以上所述实施例仅用以说明本申请的技术方案,而非对其限制;尽管参照前述实施例对本申请进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本申请各实施例技术方案的精神和范围,均应包含在本申请的保护范围之内。
Claims (10)
1.一种字符串处理方法,其特征在于,包括:
获取待处理字符串;其中,所述待处理字符串为目标语言的字符串,所述目标语言的字符串中每个字符所占的字节数大于1;
根据预设的目标映射关系,确定所述待处理字符串中每个字符对应的唯一标识号;其中,所述目标映射关系包括目标语言的每个字符与唯一标识号的映射关系,所述唯一标识号的数据类型为预设数据类型;
根据所述待处理字符串的各个字符分别对应的所述唯一标识号以及目标字典树,对所述待处理字符串进行处理,得到目标处理结果;其中,所述目标字典树中的每个节点的数据类型为所述预设数据类型。
2.如权利要求1所述的字符串处理方法,其特征在于,所述待处理字符串包括待存储字符串,所述根据所述待处理字符串的各个字符分别对应的所述唯一标识号以及目标字典树,对所述待处理字符串进行处理,得到目标处理结果,包括:
根据所述待存储字符串的各个字符分别对应的所述唯一标识号,在所述目标字典树的节点中存储所述唯一标识号,得到字符串存储结果。
3.如权利要求1所述的字符串处理方法,其特征在于,所述待处理字符串包括待查找字符串,所述根据所述待处理字符串的各个字符分别对应的所述唯一标识号以及目标字典树,对所述待处理字符串进行处理,得到目标处理结果,包括:
根据所述待查找字符串的各个字符分别对应的所述唯一标识号,在所述目标字典树中进行逐级节点索引,得到字符串查找结果。
4.如权利要求1所述的字符串处理方法,其特征在于,所述待处理字符串包括待删除字符串,所述根据所述待处理字符串的各个字符分别对应的所述唯一标识号以及目标字典树,对所述待处理字符串进行处理,得到目标处理结果,包括:
根据所述待删除字符串的各个字符分别对应的所述唯一标识号,在所述目标字典树中查找与所述待删除字符串对应的第一目标节点,通过对所述第一目标节点进行词标记修改处理或者删除处理,得到字符串删除结果。
5.如权利要求1所述的字符串处理方法,其特征在于,所述待处理字符串包括待修改字符串,所述根据所述待处理字符串的各个字符分别对应的所述唯一标识号以及目标字典树,对所述待处理字符串进行处理,得到目标处理结果,包括:
根据所述待修改字符串的各个字符分别对应的所述唯一标识号,在所述目标字典树中查找与所述待修改字符串对应的第二目标节点,通过对所述第二目标节点的信息进行修改,得到字符串修改结果。
6.如权利要求1任意一项所述的字符串处理方法,其特征在于,在所述获取待处理字符串之前,还包括:
根据目标语言包含的字符数量,确定预设数据类型;
为所述目标语言的各个字符分别设置数据类型为所述预设数据类型的唯一标识号,得到所述目标映射关系。
7.如权利要求1任意一项所述的字符串处理方法,其特征在于,所述目标语言为中文、韩文、日文中的任意一种语言,所述预设数据类型为短整型。
8.一种字符串处理装置,其特征在于,包括:
获取单元,用于获取待处理字符串;其中,所述待处理字符串为目标语言的字符串,所述目标语言的字符串中每个字符所占的字节数大于1;
映射单元,用于根据预设的目标映射关系,确定所述待处理字符串中每个字符对应的唯一标识号;其中,所述目标映射关系包括目标语言的每个字符与唯一标识号的映射关系,所述唯一标识号的数据类型为预设数据类型;
处理单元,用于根据所述待处理字符串的各个字符分别对应的所述唯一标识号以及目标字典树,对所述待处理字符串进行处理,得到目标处理结果;其中,所述目标字典树中的每个节点的数据类型为所述预设数据类型。
9.一种电子设备,包括存储器、处理器以及存储在所述存储器中并可在所述处理器上运行的计算机程序,其特征在于,当所述处理器执行所述计算机程序时,使得电子设备实现如权利要求1至7任一项所述方法的步骤。
10.一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,其特征在于,当所述计算机程序被处理器执行时,使得电子设备实现如权利要求1至7任一项所述方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210450193.5A CN114880523A (zh) | 2022-04-27 | 2022-04-27 | 字符串处理方法、装置、电子设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210450193.5A CN114880523A (zh) | 2022-04-27 | 2022-04-27 | 字符串处理方法、装置、电子设备及存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN114880523A true CN114880523A (zh) | 2022-08-09 |
Family
ID=82670965
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210450193.5A Pending CN114880523A (zh) | 2022-04-27 | 2022-04-27 | 字符串处理方法、装置、电子设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114880523A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117973317A (zh) * | 2024-03-29 | 2024-05-03 | 恒生电子股份有限公司 | 字符串信息处理方法、装置、电子设备及存储介质 |
-
2022
- 2022-04-27 CN CN202210450193.5A patent/CN114880523A/zh active Pending
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117973317A (zh) * | 2024-03-29 | 2024-05-03 | 恒生电子股份有限公司 | 字符串信息处理方法、装置、电子设备及存储介质 |
CN117973317B (zh) * | 2024-03-29 | 2024-06-07 | 恒生电子股份有限公司 | 字符串信息处理方法、装置、电子设备及存储介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US5721899A (en) | Retrieval apparatus using compressed trie node and retrieval method thereof | |
CN111177184A (zh) | 基于自然语言的结构化查询语言转换方法、及其相关设备 | |
US5414841A (en) | Computerized system for representing data items using token identifiers | |
CN103365992B (zh) | 一种基于一维线性空间实现Trie树的词典检索方法 | |
CN108334609B (zh) | Oracle中实现JSON格式数据存取的方法、装置、设备及存储介质 | |
US10482175B2 (en) | Identifying properties of a communication device | |
CN102867049B (zh) | 一种基于单词查找树实现的汉语拼音快速分词方法 | |
TWI604318B (zh) | 資料排序方法 | |
CN110007906B (zh) | 脚本文件的处理方法、装置和服务器 | |
CN112925749A (zh) | 一种数据处理方法、装置、电子设备及存储介质 | |
CN110795069A (zh) | 代码分析方法、智能终端及计算机可读存储介质 | |
CN113408660B (zh) | 图书聚类方法、装置、设备和存储介质 | |
US20240311432A1 (en) | System and method for search discovery | |
CN117349267B (zh) | 一种数据库迁移处理方法及系统 | |
CN114090671A (zh) | 数据导入方法、装置、电子设备及存储介质 | |
CN114490853A (zh) | 数据处理方法、装置、设备、存储介质及程序产品 | |
CN114880523A (zh) | 字符串处理方法、装置、电子设备及存储介质 | |
CN113419721B (zh) | 基于web的表达式编辑方法、装置、设备和存储介质 | |
CN116467047A (zh) | 针对容器配置合规性的检测方法、装置、存储介质及终端 | |
CN111552638B (zh) | 一种代码检测方法及装置 | |
CN115203053A (zh) | 基于频繁序列挖掘的代码克隆检测方法 | |
CN110287147B (zh) | 一种字符串排序方法及装置 | |
CN114817498A (zh) | 用户意图识别方法、装置、设备及存储介质 | |
CN113779932A (zh) | 数字格式化方法、装置、终端设备及存储介质 | |
CN111209747B (zh) | 一种词向量文件加载方法、装置、存储介质及电子设备 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination |