CN116073835A - 地理位置数据压缩方法、装置、电子设备及存储介质 - Google Patents
地理位置数据压缩方法、装置、电子设备及存储介质 Download PDFInfo
- Publication number
- CN116073835A CN116073835A CN202310203540.9A CN202310203540A CN116073835A CN 116073835 A CN116073835 A CN 116073835A CN 202310203540 A CN202310203540 A CN 202310203540A CN 116073835 A CN116073835 A CN 116073835A
- Authority
- CN
- China
- Prior art keywords
- character
- node
- nodes
- characters
- position data
- 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.)
- Granted
Links
Images
Classifications
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M7/00—Conversion of a code where information is represented by a given sequence or number of digits to a code where the same, similar or subset of information is represented by a different sequence or number of digits
- H03M7/30—Compression; Expansion; Suppression of unnecessary data, e.g. redundancy reduction
- H03M7/3084—Compression; Expansion; Suppression of unnecessary data, e.g. redundancy reduction using adaptive string matching, e.g. the Lempel-Ziv method
- H03M7/3091—Data deduplication
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Processing Or Creating Images (AREA)
- Compression, Expansion, Code Conversion, And Decoders (AREA)
Abstract
本发明涉及大数据技术领域,提供了一种地理位置数据压缩方法、装置、电子设备及存储介质,所述方法包括:获取预先构建的字符树,字符树是根据多个地理位置数据中所有不重复字符构建的,字符树包括一个根节点和除根节点之外关联节点和字符节点,每一关联节点用于关联其父节点和子节点,除根节点的子节点之外的每一关联节点均还关联至少一个字符节点,每一字符节点表征一个不重复字符;根据字符树,确定每一地理位置数据中每一字符的编码;将每一地理位置数据中所有字符的编码进行组合,得到每一地理位置数据压缩后的编码。本发明能够对地理位置数据进行有效压缩。
Description
技术领域
本发明涉及大数据技术领域,具体而言,涉及一种地理位置数据压缩方法、装置、电子设备及存储介质。
背景技术
地理位置数据会保存用户所有的驻留信息,以地理位置数据用geohash编码为例,一个人一天大约有4个geohash,若时间跨度超过一年,就会导致驻留信息的数据量非常大,因而占用巨大的存储空间,如何减小地理位置数据占用的存储空间为本领域技术人员亟待解决的问题。
发明内容
本发明的目的在于提供了一种地理位置数据压缩方法、装置、电子设备及存储介质,其能够对地理位置数据进行有效压缩,极大地减少了地理位置数据占用的存储空间。
本发明的实施例可以这样实现:
第一方面,本发明提供一种地理位置数据压缩方法,所述方法包括:
获取预先构建的字符树,所述字符树是根据多个地理位置数据中所有不重复字符构建的,所述字符树包括一个根节点、多个关联节点及与每一所述关联节点关联的至少一个字符节点,每一所述关联节点用于关联其父节点和子节点,每一所述字符节点表征一个所述不重复字符;
根据所述字符树,确定每一所述地理位置数据中每一字符的编码;
将每一所述地理位置数据中所有字符的编码进行组合,得到每一所述地理位置数据压缩后的编码。
在可选的实施方式中,所述字符树包括第一分支和第二分支,所述根节点包括第一子节点和第二子节点,所述第一子节点和所述第二子节点分别与所述第一分支和所述第二分支相关联,所述第一子节点的权重值预先设置为第一预设值、所述第二子节点的权重值预先设置为第二预设值,所述第一分支和所述第二分支均包括多层,每一层包括一个关联节点和至少一个字符节点,处于同一个分支的各层的关联节点的权重值相同,处于同一个分支的各层的位置相同的字符节点的权重值相同,所述根据所述字符树,确定每一所述地理位置数据中每一字符的编码的步骤包括:
对于每一所述地理位置数据中任一目标字符而言,将所述根节点与目标字符节点之间途径节点数最少的路径作为目标路径,所述目标字符节点为表征所述目标字符的字符节点;
按照各节点途径顺序,将各节点的权重值依次排列而成的序列确定为所述目标字符的编码;
将每一所述地理位置数据的每一字符作为所述目标字符,得到每一所述地理位置数据中每一字符的编码。
在可选的实施方式中,所述方法还包括:
获取多个地理位置数据,每一所述地理位置数据包括至少一个字符;
对所有地理位置数据包括的所有字符进行去重,得到所述多个地理位置数据中的不重复字符;
根据所述不重复字符中每一字符在所述多个地理位置数据中出现的次数,计算所述不重复字符中每一字符的权重;
根据所有所述不重复字符的权重,构建所述字符树。
在可选的实施方式中,所述字符树包括第一分支和第二分支,所述根据所有所述不重复字符的权重,构建所述字符树的步骤包括:
生成所述根节点的第一子节点和第二子节点、并将所述第一子节点和所述第二子节点分别与所述第一分支和所述第二分支关联;
基于所述第一子节点和所述第二子节点,根据所有所述不重复字符的权重生成所述第一分支的各层的关联节点和字符节点以及所述第二分支的各层的关联节点和字符节点,得到所述字符树;
将所述第一子节点的权重值设置为第一预设值、将与所述第二子节点的权重值预先设置为第二预设值,将处于同一个分支的各层的关联节点的权重值设置为相同,将处于同一个分支的各层的位置相同的字符节点的权重值设置为相同。
在可选的实施方式中,将所述不重复字符按照其权重从大到小的顺序组成字符序列,并将与所述第一子节点作为第一父节点、将与所述第二子节点作为第二父节点;
所述基于所述第一子节点和所述第二子节点,根据所有所述不重复字符的权重生成所述第一分支的各层的关联节点和字符节点以及所述第二分支的各层的关联节点和字符节点,得到所述字符树的步骤包括:
获取所述字符序列中不重复字符的字符数;
根据所述字符数确定一次需要***的不重复字符的目标数;
若所述字符序列不为空,则从所述字符序列中按照权重从大到小的顺序取出所述目标数个目标不重复字符;
基于所述第一父节点和所述第二父节点将所述目标数个所述目标不重复字符***至所述字符树;
生成所述第一父节点的关联节点和所述第二父节点的关联节点、并用所述第一父节点的关联节点替换所述第一父节点、用所述第二父节点的关联节点替换所述第二父节点,重复所述获取所述字符序列中不重复字符的字符数的步骤,直至所述字符序列为空,得到所述字符树。
在可选的实施方式中,所述根据所述字符数确定一次需要***的不重复字符的目标数的步骤包括:
若所述字符数大于或者等于参考节点数,则将所述参考节点数作为目标数,否则,将所述字符数作为所述目标数,所述参考节点数根据所述第一分支和所述第二分支中任一层包括的字符节点的最大个数确定。
在可选的实施方式中,所述基于所述第一父节点和所述第二父节点将所述目标数个所述目标不重复字符***至所述字符树的步骤:
生成所述目标数个所述第一父节点的字符节点、并生成所述目标数个所述第二父节点的字符节点;
按照所述目标不重复字符的权重的从大到小的顺序,依次为所述第二父节点的字符节点赋值和为所述第一父节点的字符节点赋值,所述第二父节点的字符节点表征的目标不重复字符的权重大于所述第一父节点的字符节点表征的目标不重复字符的权重,以将所述目标不重复字符***至所述字符树。
第二方面,本发明提供一种地理位置数据压缩装置,所述装置包括:
获取模块,用于获取预先构建的字符树,所述字符树是根据多个地理位置数据中所有不重复字符构建的,所述字符树包括一个根节点、多个关联节点及与每一所述关联节点关联的至少一个字符节点,每一所述关联节点用于关联其父节点和子节点,每一所述字符节点表征一个所述不重复字符;
确定模块,用于根据所述字符树,确定每一所述地理位置数据中每一字符的编码;
编码模块,用于将每一所述地理位置数据中所有字符的编码进行组合,得到每一所述地理位置数据压缩后的编码。
第三方面,本发明提供一种电子设备,包括处理器和存储器,所述存储器用于存储程序,所述处理器用于在执行所述程序时,实现如前述实施方式中第一方面所述的地理位置数据压缩方法。
第四方面,本发明提供一种计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现如前述实施方式中第一方面所述的地理位置数据压缩方法。
与现有技术相比,本发明利用预先构建的字符树确定每一地理位置数据中每一字符的编码,再将每一地理位置数据中所有字符的编码进行组合,最终得到每一地理位置数据压缩后的编码,由于字符树是根据多个地理位置数据中所有不重复字符构建的,每一字符节点表征一个不重复字符,字符树包括一个根节点多个关联节点及与每一关联节点关联的至少一个字符节点,每一关联节点用于关联其父节点和子节点,除根节点的子节点之外的每一关联节点均还关联至少一个字符节点,通过字符树能够确定每一地理位置数据中每一个字符的编码,最终将每一地理位置数据中所有字符的编码组合,得到每一地理位置数据压缩后的编码,实现了地理位置数据的有效压缩。
附图说明
为了更清楚地说明本发明实施例的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,应当理解,以下附图仅示出了本发明的某些实施例,因此不应被看作是对范围的限定,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他相关的附图。
图1为本发明实施例提供的地理位置数据压缩方法的流程示例图。
图2为本发明实施例提供的字符树的节点结构的示例图。
图3为本发明实施例提供的一种字符树的示例图。
图4为本发明实施例提供的另一种字符树的示例图。
图5为本发明实施例提供的两种不同结构的字符树的构建示例图。
图6为本发明实施例提供的***目标不重复字符的过程示例图。
图7为本发明实施例为图6中的字符树设置权重值的示例图。
图8为本发明实施例提供的地理位置数据压缩装置的方框示意图。
图9为本发明实施例提供的电子设备的方框示意图。
图标:10-电子设备;11-处理器;12-存储器;13-总线;100-地理位置数据压缩装置;110-获取模块;120-确定模块;130-编码模块;140-构建模块。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。通常在此处附图中描述和示出的本发明实施例的组件可以以各种不同的配置来布置和设计。
因此,以下对在附图中提供的本发明的实施例的详细描述并非旨在限制要求保护的本发明的范围,而是仅仅表示本发明的选定实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
应注意到:相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步定义和解释。
在本发明的描述中,需要说明的是,若出现术语“上”、“下”、“内”、“外”等指示的方位或位置关系为基于附图所示的方位或位置关系,或者是该发明产品使用时惯常摆放的方位或位置关系,仅是为了便于描述本发明和简化描述,而不是指示或暗示所指的装置或元件必须具有特定的方位、以特定的方位构造和操作,因此不能理解为对本发明的限制。
此外,若出现术语“第一”、“第二”等仅用于区分描述,而不能理解为指示或暗示相对重要性。
需要说明的是,在不冲突的情况下,本发明的实施例中的特征可以相互结合。
现有技术中,以地理位置数据用geohash编码为例,一个人一天大约有4个geohash,如果地理位置数据采用如下格式:userId,[geohash_1,geohash_2,geohash_3,geohash_4] ,userId为用户标识,geohash_1~geohash_4为4个geohash,对于一个采用geohash7编码的geohash而言,一个geohash共7个字符,共56个字节。随着用户和天数的增加,数据量在不断增加,计算方式为:56*4*天数*人数,随着时间变长,人数变多,数据量越来越大,占用的存储空间也越来越大。
为了减小地理位置数据占用的存储空间,本发明实施例提供一种地理位置数据压缩方法、装置、电子设备及存储介质,能够对地理位置数据进行有效压缩,极大地减少了地理位置数据占用的存储空间,下面将对其进行详细描述。
请参考图1,图1为本发明实施例提供的地理位置数据压缩方法的流程示例图,该方法包括以下步骤:
步骤S101,获取预先构建的字符树,字符树是根据多个地理位置数据中所有不重复字符构建的,字符树包括一个根节点、多个关联节点及与每一关联节点关联的至少一个字符节点,每一关联节点用于关联其父节点和子节点,除根节点的子节点之外的每一关联节点均还关联至少一个字符节点,每一字符节点表征一个不重复字符。
在本实施例中,多个地理位置数据为待压缩的地理位置数据,一个地理位置数据包括多个字符,字符可以是字母、数字或者其他符合极其组合,例如,地理位置数据为:wx4unu1,其包括7个字符。字符树中的字符节点表征的字符是多个地理位置数据中不重复字符,例如,地理位置数据有3个,分别为:wx4unu1、wtw37qt、wtw37rt,则其中不重复字符为:w、x、4、n、u、1、t、3、7、q、r。
在本实施例中,字符树是一个树形结构,包括一个根节点、多个关联节点和字符节点,关联节点用于建立该关联节点的父节点和该关联节点的子节点之间的关联关系,字符节点用于表征不重复字符,一个字符节点表征一个不重复字符,与关联节点关联的字符节点和该关联节点具有相同的父节点。请参照图2,图2为本发明实施例提供的字符树的节点结构的示例图,图2中,即根节点的子节点1用于关联根节点和关联节点1,根节点的子节点2用于关联根节点和关联节点2,关联节点1用于关联子节点1和关联节点3,关联节点1关联的字符节点为字符节点1,关联节点2关联的字符节点为字符节点2。
需要说明的是,图2只是一个字符树的示例图,事实上,字符树可以包括更多的关联节点和字符节点。
步骤S102,根据字符树,确定每一地理位置数据中每一字符的编码。
在本实施例中,字符树中的每一个关联节点都预设有权重值,每一字符节点也预设有权重值,一种实现方式是:根据根节点到字符节点之间的节点的权重值,能够确定字符节点表示的字符的编码。请参照图3,图3为一种字符树的示例图,图3中,根节点左边的子节点的权重值为0,根节点右边的子节点的权重值为1,第一分支中关联节点的权重值为0、字符节点的权重值为1,第二分支中关联节点的权重值为0、字符节点的权重值为1,对于字符t,从字符树的根节点至字符t之间途径的节点的权重排列成字符t的编码:01,对于字符4,其编码为001。
步骤S103,将每一地理位置数据中所有字符的编码进行组合,得到每一地理位置数据压缩后的编码。
在本实施例中,可以按照每一地理位置数据中各字符在其中的位置依次将各字符的编码进行组合,得到每一地理位置数据压缩后的编码。例如,地理位置数据为:wts44,w的编码为:11、t的编码为01、s的编码为101、4的编码为001,则该地理位置数据压缩后的编码为:1101101001001。
本实施例提供的上述方法,通过字符树能够确定每一地理位置数据中每一个字符的编码,最终将每一地理位置数据中所有字符的编码组合,得到每一地理位置数据压缩后的编码,实现了地理位置数据的有效压缩。
在本实施例中,为了快速地从字符树中确定每一地理位置数据中字符的最合理、最有效的编码,本实施例提供确定每一地理位置数据中任一目标字符的编码的一种实现方式:
首先,将根节点与目标字符节点之间途径节点数最少的路径作为目标路径,目标字符节点为表征目标字符的字符节点;
在本实施例中,字符树包括第一分支和第二分支,根节点包括第一子节点和第二子节点,第一子节点和第二子节点分别与第一分支和第二分支相关联,第一子节点的权重值预先设置为第一预设值、第二子节点的权重值预先设置为第二预设值,第一分支和第二分支均包括多层,每一层包括一个关联节点和至少一个字符节点,处于同一个分支的各层的关联节点的权重值相同,处于同一个分支的各层的位置相同的字符节点的权重值相同。上述图3的字符树中,第一预设值为0、第二预设值为1、关联节点关联的字符节点为一个,第一分支和第二分支的关联节点的权重值均为0、字符节点的权重值均为1。除了图3中关联节点关联的字符节点为一个的情况,关联节点关联的字符节点还可以为多个,请参照图4,图4为本发明实施例提供的另一种字符树的示例图,图4中,第一预设值为0、第二预设值为1,关联节点关联的字符节点为两个,对于第一分支而言,处于第一分支的各层的关联节点的权重值相同,为1,处于第一分支的各层中任一层的字符节点从右到左其权重值为:00、01,对于第二分支而言,处于第二分支的各层的关联节点的权重值相同,为0,处于第二分支的各层中任一层的字符节点从右到左其权重值为:11、10。
其次,按照各节点途径顺序,将各节点的权重值依次排列而成的序列确定为目标字符的编码;
在本实施例中,对于地理位置数据wx4unu1,若w为目标字符,则按照图4的字符树,w的编码为:111。
最后,将每一地理位置数据的每一字符作为目标字符,得到每一地理位置数据中每一字符的编码。
在本实施例中,待压缩的地理位置数据不同,其中不重复字符也会有所差别,各不重复字符在地理位置数据中出现的次数也不一样,为了得到更好的压缩效果,对于出现次数多的字符尽量使其编码的长度短,而对于出现次数少的字符可以适当地使其编码的长度稍微长一些,由此可以实现较好的压缩效果,因此,本实施例还提供了一种构建字符树的实现方式:
首先,获取多个地理位置数据,每一地理位置数据包括至少一个字符;
其次,对所有地理位置数据包括的所有字符进行去重,得到多个地理位置数据中的不重复字符;
第三,根据不重复字符中每一字符在多个地理位置数据中出现的次数,计算不重复字符中每一字符的权重;
在本实施例中,作为一种计算权重的方式:统计所有不重复字符的次数,得到总次数;根据总次数,对每一不重复字符的次数进行归一化处理,得到每一不重复字符的归一化值,并将每一不重复字符的归一化值作为每一不重复字符的权重。
最后,根据所有不重复字符的权重,构建字符树。
在本实施例中,权重越大的不重复字符,则其在字符树中对应的字符节点距离根节点也越近,其编码的长度也越短。
本实施例提供的上述方法,以地理位置数据中使用的字符的次数计算字符的权重,使得最终构建出的字符树能够反映出地理位置数据中使用的字符的使用频率,且权重越大的不重复字符,则其在字符树中对应的字符节点距离根节点也越近,其编码的长度也越短,使最终得到的地理位置数据的编码长度更短,实现了较好的压缩效果。
在可选的实施方式中,一种根据所有不重复字符的权重,构建字符树的方式为:
首先,生成根节点的第一子节点和第二子节点、并将第一子节点和第二子节点分别作为与第一分支关联和第二分支关联;
在本实施例中,根节点有两个子节点:第一子节点和第二子节点。
其次,基于第一子节点和第二子节点,根据所有不重复字符的权重生成第一分支的各层的关联节点和字符节点以及第二分支的各层的关联节点和字符节点,得到字符树;
在本实施例中,第一分支和第二分支均可以包括多层,除最后一层(即距离根节点最远的层)之外,其余各层的结构均相同,即具有相同的关联节点和字符节点,最后一个层的结构可以和其余各层的结构相同,也可以不同,视具体的不重复字符的个数和每一个分支的每一层的字符节点的个数而定。请参照图5,图5为本发明实施例提供的两种不同结构的字符树的构建示例图。图5中,构建方式一:不重复字符为10个,每一个分支的每一层的字符节点为1个,则字符树包括5层,每层的关联节点和字符节点的个数均相同;构建方式二:不重复字符为11个,则字符树第一分支包括3层,最后一层包括1个字符节点,其余各层包括2个字符节点,第二分支包括3层,每一层均包括2个字符节点。
为了更高效地生成字符树,本实施例将不重复字符按照其权重从大到小的顺序组成字符序列,并将与第一分支关联的根节点的子节点作为第一父节点、将与第二分支关联的根节点的子节点作为第二父节点,得到字符树的实现方式可以为:
(1)获取字符序列中不重复字符的字符数;
(2)根据字符数确定一次需要***的不重复字符的目标数;
在可选的实施方式中,根据字符数确定一次需要***的不重复字符的目标数的步骤包括:
若字符数大于或者等于参考节点数,则将参考节点数作为目标数,否则,将字符数作为目标数,参考节点数根据第一分支和第二分支中任一分支中任一层包括的字符节点的最大个数确定。
在本实施例中,作为一种方式,参考节点数=分支数*第一分支和第二分支中任一分支中任一层包括的字符节点的最大个数,由于字符树的层数越多,则从字符树中确定目标字符的编码时,其处理效率越低,例如,不重复字符共有32个,分支数为2,若每一分支中每层的字符节点的最大数为1个,则参考节点数为1*2=2,则每一分支的层数为16层,由此会导致处理效率大大降低,若每一分支中每一层的字符节点的最大数为2个,则参考节点数为2*2=4,则每一分支的层数为8层,由此,层数大大减少,因此,参考节点数也可以视不重复字符的总个数和预期的处理效率确定。
(3)若字符序列不为空,则从字符序列中按照权重从大到小的顺序取出目标数个目标不重复字符;
(4)基于第一父节点和第二父节点将目标数个目标不重复字符***至字符树;
在可选的实施方式中,一种***方式为:生成目标数个第一父节点的字符节点、并生成目标数个第二父节点的字符节点;按照目标不重复字符的权重的从大到小的顺序,依次为第二父节点的字符节点赋值和为第一父节点的字符节点赋值,第二父节点的字符节点的权重大于第一父节点的字符节点的权重,以将目标不重复字符***至字符树。
作为一种实现方式,若第一分支为左分支、第二分支为右分支,将目标不重复字符***字符树时,按照先***右分支再***左分支的顺序***,在***右分支或者左分支时,若每一分支的每一层的字符节点为多个,则按照从右向左的顺序依次***。
(5)生成第一父节点的关联节点和第二父节点的关联节点、并用第一父节点的关联节点替换第一父节点、用第二父节点的关联节点替换第二父节点,重复(1)~(5)步骤,直至字符序列为空,得到字符树。
为了更清楚地说明字符树的生成过程,请参照图6,图6为本发明实施例提供的***目标不重复字符的过程示例图。图6中,字符序列为{w,t,s,4,7,c,5,9,6 },分支为2,每一分支中每一层的字符节点的最大数为2,参考节点数为2*2=4,则第一次从字符序列中选出w,t,s,4,依次***字符节点,在此基础上生成关联节点,第二次从字符序列中选出7,c,5,9,依次***字符节点,在此基础上生成关联节点,第三次从字符序列中选出6将6***右分支的两个字符节点,得到字符树。
最后,将第一子节点的权重值设置为第一预设值、将第二子节点的权重值预先设置为第二预设值,将处于同一个分支的各层的关联节点的权重值设置为相同,将处于同一个分支的各层的位置相同的字符节点的权重值设置为相同。
请参照图7,图7为本发明实施例为图6生成的最终的字符树设置权重值的示例图,根据图6的权重值的设置,各不重复字符的编码如表1所示。
表1
不重复字符 | 编码 |
w | 111 |
t | 110 |
s | 000 |
4 | 010 |
7 | 1011 |
c | 1010 |
5 | 0100 |
9 | 0101 |
6 | 10011 |
采用上述实施例的方式可以实现地理位置数据的有效压缩,例如,压缩前将wx4unu1转换二进制为:“1110111 1111000110100 1110101 1101110 1110101 110001”,长度为56;通过本实施例的编码,压缩后:“111 011111101 001 10000001101111100100000011 1000010”,长度为48,比现有方式节约8个字节;随着时间变长,人数变多;节约的存储越来越大,例如:最终存储值=geohash长度(bit)*4*365*3亿,其中,4表示一个人一天会有4个geohash,一年365天,人数为3亿,geohash长度为编码后的长度,压缩比采用如下方式计算:
压缩前:56/8*4*365*300000000/1024/1024/1024/1024=2.788TB
压缩后:48/8*4*365*300000000/1024/1024/1024/1024=2.390TB
压缩比为:2.788/2.390=0.85
由此可见,本实施例提供的压缩方式,可以获取较好的压缩比。
需要说明的是,对压缩后的数据进行还原时,通过本实施例的字符树生成的编码表将压缩后的数据还原为对应的字符,再转译成geohash值即可。
为了执行上述实施例及各个可能的实施方式中的相应步骤,下面给出一种地理位置数据压缩装置的实现方式。请参照图8,图8为本发明实施例提供的地理位置数据压缩装置100的方框示意图。需要说明的是,本实施例所提供的地理位置数据压缩装置100,其基本原理及产生的技术效果和上述实施例相同,为简要描述,本实施例部分未提及指出。
地理位置数据压缩装置100包括获取模块110、确定模块120、编码模块130和构建模块140。
获取模块110,用于获取预先构建的字符树,字符树是根据多个地理位置数据中所有不重复字符构建的,字符树包括一个根节点、多个关联节点及与每一关联节点关联的至少一个字符节点,每一关联节点用于关联其父节点和子节点,每一字符节点表征一个不重复字符;
确定模块120,用于根据字符树,确定每一地理位置数据中每一字符的编码;
编码模块130,用于将每一地理位置数据中所有字符的编码进行组合,得到每一地理位置数据压缩后的编码。
在可选的实施方式中,字符树包括第一分支和第二分支,根节点包括处于第一分支的子节点和处于第二分支的子节点,根节点包括第一子节点和第二子节点,第一子节点和第二子节点分别与第一分支和第二分支相关联,第一子节点的权重值预先设置为第一预设值、第二子节点的权重值预先设置为第二预设值,第一分支和第二分支均包括多层,每一层包括一个关联节点和至少一个字符节点,处于同一个分支的各层的关联节点的权重值相同,处于同一个分支的各层的位置相同的字符节点的权重值相同,确定模块120具体用于:对于每一地理位置数据中任一目标字符而言,将根节点与目标字符节点之间途径节点数最少的路径作为目标路径,目标字符节点为表征目标字符的字符节点;按照各节点途径顺序,将各节点的权重值依次排列而成的序列确定为目标字符的编码;将每一地理位置数据的每一字符作为目标字符,得到每一地理位置数据中每一字符的编码。
在可选的实施方式中,构建模块140用于:获取多个地理位置数据,每一地理位置数据包括至少一个字符;对所有地理位置数据包括的所有字符进行去重,得到多个地理位置数据中的不重复字符;根据不重复字符中每一字符在多个地理位置数据中出现的次数,计算不重复字符中每一字符的权重;根据所有不重复字符的权重,构建字符树。
在可选的实施方式中,字符树包括第一分支和第二分支,构建模块140具体用于:生成根节点的第一子节点和第二子节点、并将第一子节点和第二子节点分别与第一分支和第二分支关联;基于第一子节点和与第二子节点,根据所有不重复字符的权重生成第一分支的各层的关联节点和字符节点以及第二分支的各层的关联节点和字符节点,得到字符树;将第一子节点的权重值设置为第一预设值、将第二子节点的权重值预先设置为第二预设值,将处于同一个分支的各层的关联节点的权重值设置为相同,将处于同一个分支的各层的位置相同的字符节点的权重值设置为相同。
在可选的实施方式中,将不重复字符按照其权重从大到小的顺序组成字符序列,并将第一子节点作为第一父节点、将第二子节点作为第二父节点;
构建模块140在用于基于第一子节点和第二子节点,根据所有不重复字符的权重生成第一分支的各层的关联节点和字符节点以及所述第二分支的各层的关联节点和字符节点,得到所述字符树时具体用于:获取字符序列中不重复字符的字符数;根据字符数确定一次需要***的不重复字符的目标数;若字符序列不为空,则从字符序列中按照权重从大到小的顺序取出目标数个目标不重复字符;基于第一父节点和第二父节点将目标数个目标不重复字符***至字符树;生成第一父节点的关联节点和第二父节点的关联节点、并用第一父节点的关联节点替换第一父节点、用第二父节点的关联节点替换第二父节点,重复获取字符序列中不重复字符的字符数的步骤,直至字符序列为空,得到字符树。
在可选的实施方式中,构建模块140在用于根据字符数确定一次需要***的不重复字符的目标数时,具体用于:若字符数大于或者等于参考节点数,则将参考节点数作为目标数,否则,将字符数作为目标数,参考节点数根据第一分支和第二分支中任一层包括的字符节点的最大个数确定。
在可选的实施方式中,构建模块140在用于基于第一父节点和第二父节点将目标数个目标不重复字符***至字符树时,具体用于:生成目标数个第一父节点的字符节点、并生成目标数个第二父节点的字符节点;按照目标不重复字符的权重的从大到小的顺序,依次为第二父节点的字符节点赋值和为第一父节点的字符节点赋值,第二父节点的字符节点的权重大于第一父节点的字符节点的权重,以将目标不重复字符***至字符树。
本实施例还提供了一种电子设备10的方框示意图,请参照图9,图9为本发明实施例提供的电子设备10的方框示意图,电子设备10包括处理器11、存储器12、总线13。处理器11、存储器12通过总线13连接。
处理器11可能是一种集成电路芯片,具有信号的处理能力。在实现过程中,上述方法的各步骤可以通过处理器11中的硬件的集成逻辑电路或者软件形式的指令完成。上述的处理器11可以是通用处理器,包括中央处理器(CentralProcessing Unit,简称CPU)、网络处理器(NetworkProcessor,简称NP)等;还可以是数字信号处理器(DSP)、专用集成电路(ASIC)、现成可编程门阵列(FPGA)或者其它可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。
存储器12用于存储程序,例如图8中的地理位置数据压缩装置100,地理位置数据压缩装置100均包括至少一个可以软件或固件(firmware)的形式存储于存储器12中的软件功能模块,处理器11在接收到执行指令后,执行程序以实现本发明实施例中的地理位置数据压缩方法。
存储器12可能包括高速随机存取存储器(RAM:Random AccessMemory),也可能还包括非易失存储器(non-volatilememory)。可选地,存储器12可以是内置于处理器11中的存储装置,也可以是独立于处理器11的存储装置。
总线13可以是ISA总线、PCI总线或EISA总线等。图9仅用一个双向箭头表示,但并不表示仅有一根总线或一种类型的总线。
本发明实施例提供一种计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现如前述实施方式中的地理位置数据压缩方法。
综上所述,本发明实施例提供了一种地理位置数据压缩方法、装置、电子设备及存储介质,所述方法包括:获取预先构建的字符树,字符树是根据多个地理位置数据中所有不重复字符构建的,字符树包括一个根节点、多个关联节点及与每一关联节点关联的至少一个字符节点,每一关联节点用于关联其父节点和子节点,每一字符节点表征一个不重复字符;根据字符树,确定每一地理位置数据中每一字符的编码;将每一地理位置数据中所有字符的编码进行组合,得到每一地理位置数据压缩后的编码。与现有技术相比,本发明实施例通过字符树能够确定每一地理位置数据中每一个字符的编码,最终将每一地理位置数据中所有字符的编码组合,得到每一地理位置数据压缩后的编码,实现了地理位置数据的有效压缩。
以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到的变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应以权利要求的保护范围为准。
Claims (10)
1.一种地理位置数据压缩方法,其特征在于,所述方法包括:
获取预先构建的字符树,所述字符树是根据多个地理位置数据中所有不重复字符构建的,所述字符树包括一个根节点、多个关联节点及与每一所述关联节点关联的至少一个字符节点,每一所述关联节点用于关联其父节点和子节点,每一所述字符节点表征一个所述不重复字符;
根据所述字符树,确定每一所述地理位置数据中每一字符的编码;
将每一所述地理位置数据中所有字符的编码进行组合,得到每一所述地理位置数据压缩后的编码。
2.如权利要求1所述的地理位置数据压缩方法,其特征在于,所述字符树包括第一分支和第二分支,所述根节点包括第一子节点和第二子节点,所述第一子节点和所述第二子节点分别与所述第一分支和所述第二分支相关联,所述第一子节点的权重值预先设置为第一预设值、所述第二子节点的权重值预先设置为第二预设值,所述第一分支和所述第二分支均包括多层,每一层包括一个关联节点和至少一个字符节点,处于同一个分支的各层的关联节点的权重值相同,处于同一个分支的各层的位置相同的字符节点的权重值相同,所述根据所述字符树,确定每一所述地理位置数据中每一字符的编码的步骤包括:
对于每一所述地理位置数据中任一目标字符而言,将所述根节点与目标字符节点之间途径节点数最少的路径作为目标路径,所述目标字符节点为表征所述目标字符的字符节点;
按照各节点途径顺序,将各节点的权重值依次排列而成的序列确定为所述目标字符的编码;
将每一所述地理位置数据的每一字符作为所述目标字符,得到每一所述地理位置数据中每一字符的编码。
3.如权利要求1所述的地理位置数据压缩方法,其特征在于,所述方法还包括:
获取多个地理位置数据,每一所述地理位置数据包括至少一个字符;
对所有地理位置数据包括的所有字符进行去重,得到所述多个地理位置数据中的不重复字符;
根据所述不重复字符中每一字符在所述多个地理位置数据中出现的次数,计算所述不重复字符中每一字符的权重;
根据所有所述不重复字符的权重,构建所述字符树。
4.如权利要求3所述的地理位置数据压缩方法,其特征在于,所述字符树包括第一分支和第二分支,所述根据所有所述不重复字符的权重,构建所述字符树的步骤包括:
生成所述根节点的第一子节点和第二子节点、并将所述第一子节点和所述第二子节点分别与所述第一分支和所述第二分支关联;
基于所述第一子节点和与所述第二子节点,根据所有所述不重复字符的权重生成所述第一分支的各层的关联节点和字符节点以及所述第二分支的各层的关联节点和字符节点,得到所述字符树;
将所述第一子节点的权重值设置为第一预设值、将与所述第二子节点的权重值预先设置为第二预设值,将处于同一个分支的各层的关联节点的权重值设置为相同,将处于同一个分支的各层的位置相同的字符节点的权重值设置为相同。
5.如权利要求4所述的地理位置数据压缩方法,其特征在于,将所述不重复字符按照其权重从大到小的顺序组成字符序列,并将与所述第一子节点作为第一父节点、将与所述第二子节点作为第二父节点;
所述基于所述第一子节点和所述第二子节点,根据所有所述不重复字符的权重生成所述第一分支的各层的关联节点和字符节点以及所述第二分支的各层的关联节点和字符节点,得到所述字符树的步骤包括:
获取所述字符序列中不重复字符的字符数;
根据所述字符数确定一次需要***的不重复字符的目标数;
若所述字符序列不为空,则从所述字符序列中按照权重从大到小的顺序取出所述目标数个目标不重复字符;
基于所述第一父节点和所述第二父节点将所述目标数个所述目标不重复字符***至所述字符树;
生成所述第一父节点的关联节点和所述第二父节点的关联节点、并用所述第一父节点的关联节点替换所述第一父节点、用所述第二父节点的关联节点替换所述第二父节点,重复所述获取所述字符序列中不重复字符的字符数的步骤,直至所述字符序列为空,得到所述字符树。
6.如权利要求5所述的地理位置数据压缩方法,其特征在于,所述根据所述字符数确定一次需要***的不重复字符的目标数的步骤包括:
若所述字符数大于或者等于参考节点数,则将所述参考节点数作为目标数,否则,将所述字符数作为所述目标数,所述参考节点数根据所述第一分支和所述第二分支中任一层包括的字符节点的最大个数确定。
7.如权利要求5所述的地理位置数据压缩方法,其特征在于,所述基于所述第一父节点和所述第二父节点将所述目标数个所述目标不重复字符***至所述字符树的步骤:
生成所述第一父节点的字符节点、并生成所述第二父节点的字符节点;
按照所述目标不重复字符的权重的从大到小的顺序,依次为所述第二父节点的字符节点赋值和为所述第一父节点的字符节点赋值,所述第二父节点的字符节点表征的目标不重复字符的权重大于所述第一父节点的字符节点表征的目标不重复字符的权重,以将所述目标不重复字符***至所述字符树。
8.一种地理位置数据压缩装置,其特征在于,所述装置包括:
获取模块,用于获取预先构建的字符树,所述字符树是根据多个地理位置数据中所有不重复字符构建的,所述字符树包括一个根节点、多个关联节点及与每一所述关联节点关联的至少一个字符节点,每一所述关联节点用于关联其父节点和子节点,每一所述字符节点表征一个所述不重复字符;
确定模块,用于根据所述字符树,确定每一所述地理位置数据中每一字符的编码;
编码模块,用于将每一所述地理位置数据中所有字符的编码进行组合,得到每一所述地理位置数据压缩后的编码。
9.一种电子设备,其特征在于,包括处理器和存储器,所述存储器用于存储程序,所述处理器用于在执行所述程序时,实现如权利要求1-7中任一项所述的地理位置数据压缩方法。
10.一种计算机可读存储介质,其特征在于,其上存储有计算机程序,该计算机程序被处理器执行时实现如权利要求1-7中任一项所述的地理位置数据压缩方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310203540.9A CN116073835B (zh) | 2023-03-06 | 2023-03-06 | 地理位置数据压缩方法、装置、电子设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310203540.9A CN116073835B (zh) | 2023-03-06 | 2023-03-06 | 地理位置数据压缩方法、装置、电子设备及存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN116073835A true CN116073835A (zh) | 2023-05-05 |
CN116073835B CN116073835B (zh) | 2023-08-25 |
Family
ID=86175063
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202310203540.9A Active CN116073835B (zh) | 2023-03-06 | 2023-03-06 | 地理位置数据压缩方法、装置、电子设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN116073835B (zh) |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20140330986A1 (en) * | 2013-05-01 | 2014-11-06 | Red Hat, Inc. | Compression of content paths in a digital certicate |
CN109889205A (zh) * | 2019-04-03 | 2019-06-14 | 杭州嘉楠耘智信息科技有限公司 | 编码方法及***、解码方法及***、编解码方法及*** |
US10558738B1 (en) * | 2019-03-15 | 2020-02-11 | Amazon Technologies, Inc. | Compression of machine learned models |
CN111615149A (zh) * | 2020-05-13 | 2020-09-01 | 和智信(山东)大数据科技有限公司 | 信令轨迹数据压缩方法及装置 |
CN113746487A (zh) * | 2021-08-25 | 2021-12-03 | 山东云海国创云计算装备产业创新中心有限公司 | 一种数据压缩方法、装置及电子设备和存储介质 |
US20220321141A1 (en) * | 2021-03-31 | 2022-10-06 | DRIC Software, Inc. | File compression system |
-
2023
- 2023-03-06 CN CN202310203540.9A patent/CN116073835B/zh active Active
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20140330986A1 (en) * | 2013-05-01 | 2014-11-06 | Red Hat, Inc. | Compression of content paths in a digital certicate |
US10558738B1 (en) * | 2019-03-15 | 2020-02-11 | Amazon Technologies, Inc. | Compression of machine learned models |
CN109889205A (zh) * | 2019-04-03 | 2019-06-14 | 杭州嘉楠耘智信息科技有限公司 | 编码方法及***、解码方法及***、编解码方法及*** |
CN111615149A (zh) * | 2020-05-13 | 2020-09-01 | 和智信(山东)大数据科技有限公司 | 信令轨迹数据压缩方法及装置 |
US20220321141A1 (en) * | 2021-03-31 | 2022-10-06 | DRIC Software, Inc. | File compression system |
CN113746487A (zh) * | 2021-08-25 | 2021-12-03 | 山东云海国创云计算装备产业创新中心有限公司 | 一种数据压缩方法、装置及电子设备和存储介质 |
Non-Patent Citations (2)
Title |
---|
吴晨晖;王映辉;: "一种基于自顶向下的哈夫曼编码方法", 计算机技术与发展, no. 10, pages 51 - 53 * |
王防修;周康;: "基于二叉排序树的哈夫曼编码", 武汉工业学院学报, no. 04, pages 45 - 48 * |
Also Published As
Publication number | Publication date |
---|---|
CN116073835B (zh) | 2023-08-25 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10020913B2 (en) | Polar code encoding method and device | |
CN109409518B (zh) | 神经网络模型处理方法、装置及终端 | |
JP3276860B2 (ja) | データ圧縮/復元方法 | |
US6982661B2 (en) | Method of performing huffman decoding | |
CN104579360B (zh) | 一种数据处理的方法和设备 | |
CN111615149B (zh) | 信令轨迹数据压缩方法及装置 | |
CN110545106A (zh) | 时序数据的编码方法及装置 | |
CN113746487B (zh) | 一种数据压缩方法、装置及电子设备和存储介质 | |
CN115357571A (zh) | 一种数据去重方法、装置、设备及介质 | |
CN113821373B (zh) | 提高磁盘地址转换速度的方法、***、设备和存储介质 | |
CN109981108B (zh) | 数据压缩方法、解压缩方法、装置及设备 | |
CN116073835B (zh) | 地理位置数据压缩方法、装置、电子设备及存储介质 | |
CN112332857B (zh) | 一种用于ldpc码的循环移位网络***及循环移位方法 | |
CN103051480B (zh) | 一种dn的存储方法及dn存储装置 | |
CN112364985A (zh) | 一种基于分布式编码的卷积优化方法 | |
CN109710633B (zh) | 中间人信息的确定方法、装置及智能终端 | |
CN111492586B (zh) | 具有正交行的ldpc码的基矩阵设计方法及装置 | |
CN108092670B (zh) | 编码方法和装置 | |
CN113078910B (zh) | 一种比特位字段的确定方法、装置、介质和电子设备 | |
JP2024503032A (ja) | オーディオコーディング方法とデコーディング方法、オーディオコーディング装置とデコーディング装置 | |
CN104765790B (zh) | 一种数据查询的方法和装置 | |
CN110825927A (zh) | 数据查询方法、装置、电子设备及计算机可读存储介质 | |
US10498358B2 (en) | Data encoder and data encoding method | |
CN113239052B (zh) | 一种联盟链分组方法、装置、设备和介质 | |
CN114640357B (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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |