用于文本压缩和解压缩的方法和设备的制造方法

文档序号:10534796阅读:268来源:国知局
用于文本压缩和解压缩的方法和设备的制造方法
【专利摘要】本公开提供了一种用于文本压缩和解压缩的方法和设备。在根据本公开的一个实施方式中,所述方法包括:接收文本数据;基于文本字典来搜索文本数据中的可压缩文本项,其中文本字典包括多个键值对,多个键值对中的每个键值对包括文本压缩值以及对应的可压缩文本项,且文本压缩值具有比所述可压缩文本项更小的长度;以及将搜索到的文本数据中的可压缩文本项替换为对应的文本压缩值,以便对文本数据进行压缩。在本公开的实施方式中,不但可以获得期望的压缩率,而且压缩后的内容本身仍然是可搜索的文本形式。这提供了在无需解压的情况下进行搜索的可能性,因此可以显著节约存储空间和提高搜索效率,进而降低总所有成本TCO并给用户提供更好的体验。
【专利说明】
用于文本压缩和解压缩的方法和设备
技术领域
[0001] 本公开的实施方式涉及数据压缩技术领域,并且更具体地涉及用于进行文本压缩 的方法、设备和计算机程序产品。
【背景技术】
[0002] 目前,在诸如软件即服务(SaaS)以及大规模的分布式系统的大型软件系统中,每 天会产生大量日志消息,以用于诸如系统监视、用户行为记录和故障诊断等各种目的。这些 日志数据以非常高的吞吐量来产生,该吞吐量通常可以达到例如每小时10GB。这样的日志 流将会占据了大量的I/O容量,而且这很可能成为系统系能的瓶颈。
[0003] 为了改善系统性能,系统管理员通常需要关闭日志记录功能或者降低日志记录的 精细度,例如不记录日志,或者仅仅在出现错误时才记录日志而忽略日常操作相关的日志 信息。这种方式通过牺牲日志信息的细节而换取了系统性能的提升。然而,由于日志详细 信息的缺乏。这却会在需要对系统问题进行识别和跟踪时造成额外的困难。
[0004] 因此,从诸如故障诊断等目的而言,记录完整的日志信息是期望的。然而,这意味 着需要在文件系统中或者需要在系统分析工具中配置巨大的存储空间。例如,在文件系统 中提供存储空间的情况下,根据现有技术,为了节省存储空间日志文件一般被压缩为二进 制文件。已知的是二进制压缩文件时不可搜索的,因而在执行日志分析时,需要在进行分析 工作之前对压缩文件执行解压缩。当日志文件尺寸很大时,解压缩本身将花费很长的时间。 而且还需要管理用于解压缩文件的额外存储空间。另外,由于二进制压缩文件不具有可搜 索性,通常用于存储和对日志进行分析的日志分析工具需要存储不经压缩的原始文件。而 由于巨大的数据量,这继而引发了日志分析工具也需要巨大存储空间以及搜索效率低下的 问题。
[0005] 因此,在本领域存在一种对改进的用于文本压缩和解压缩的方案的需求。

【发明内容】

[0006] 有鉴于此,本公开提供了一种新的用于文本压缩和解压缩的技术方案,以克服或 者缓解如前所述的现有技术中存在的至少一部分缺陷。
[0007] 根据本公开的第一方面,提供了一种用于对文本数据进行压缩的方法。该方法可 以包括:接收文本数据;基于文本字典来搜索所述文本数据中的可压缩文本项,其中所述 文本字典包括多个键值对,所述多个键值对中的每个键值对包括文本压缩值以及对应的可 压缩文本项,且所述文本压缩值具有比所述可压缩文本项更小的长度;以及将搜索到的所 述文本数据中的可压缩文本项替换为对应的文本压缩值,以便对所述文本数据进行压缩。
[0008] 在根据本公开的一个实施方式中,所述文本字典可以是基于所述文本数据的类型 从分别与多种不同类型的文本数据对应的多个文本字典中而选择的。
[0009] 在根据本公开的另一实施方式中,所述文本字典可以具有版本信息,以及所述方 法可以进一步包括:为经过压缩的所述文本数据标记与所述文本字典的版本信息相同的压 缩版本信息
[0010] 在根据本公开的又一实施方式中,所述文本字典可以是通过对多个样本文本数据 进行高频出现信息提取而建立的。
[0011] 在根据本公开的再一实施方式中,所述可压缩文本项可以包括文本数据中频繁出 现的语句、所采用的编程语言所固有的模式和文本类型所固定的格式其中一种或多种。
[0012] 在根据本公开的另一实施方式中,所述文本字典的键值对所包括的可压缩文本项 可以具有大于预定值的长度。
[0013] 在根据本公开的又一实施方式中,所述文本字典的键值对所包括的文本压缩值可 以包括大写字母、小写字母、数字以及符号其中任何一种及其组合,以及其中所述文本压缩 值的长度可以不超过预定值。
[0014] 在根据本公开的再一实施方式中,所述文本字典可以具有预定大小,以及其中可 以基于文本项的权重来确定所述文本字典中的可压缩文本项,所述文本项的权重可以至少 基于所述文本项的长度及其出现频率来确定。
[0015] 在根据本公开的另一实施方式中,所述文本数据可以是文本流形式的日志数据。
[0016] 在根据本公开的再一实施方式中,所述文本数据可以是其中包括可压缩文本项的 针对已压缩文件的文本搜索请求。
[0017] 在根据本公开的又一实施方式中,可以使用与所述文本搜索请求所针对的搜索已 压缩文件的类型和版本信息对应的文本字典来对所述文本搜索请求进行压缩。
[0018] 根据本公开的第二方面,提供了一种用于对压缩文本数据进行解压缩的方法。所 述方法可以包括:接收压缩文本数据;基于文本字典来搜索所述压缩文本数据中的文本压 缩值,其中所述文本字典包括多个键-值对,所述多个键-值对中的每个键值对包括文本压 缩值以及对应的可压缩文本项,且所述文本压缩值具有比所述可压缩文本项更小的长度; 以及将搜索到的所述压缩文本数据中的文本压缩值替换为对应的可压缩文本项,以便对所 述文本数据进行解压缩。
[0019] 根据本公开的第三方面,提供了一种用于对文本数据进行压缩的设备。所述设备 包括:文本数据接收模块,被配置用于接收文本数据;文本项搜索模块,被配置用于基于文 本字典来搜索所述文本数据中的可压缩文本项,其中所述文本字典包括多个键-值对,所 述多个键-值对中的每个键值对包括文本压缩值以及对应的可压缩文本项,且所述文本压 缩值具有比所述可压缩文本项更小的长度;以及文本项替换模块,被配置用于将搜索到的 所述文本数据中的可压缩文本项替换为对应的文本压缩值,以便对所述文本数据进行压 缩。
[0020] 根据本公开的第四方面,提供了一种用于对压缩文本数据进行解压缩的设备。所 述设备可以包括:压缩数据接收模块,被配置为接收压缩文本数据;压缩值搜索模块,被配 置用于基于文本字典来搜索所述压缩文本数据中的文本压缩值,其中所述文本字典包括多 个键值对,所述多个键值对中的每个键值对包括文本压缩值以及对应的可压缩文本项,且 所述文本压缩值具有比所述可压缩文本项更小的长度;以及压缩值替换模块,被配置用于 将搜索到的所述压缩文本数据中的文本压缩值替换为对应的可压缩文本项,以便对所述文 本数据进行解压缩。
[0021] 根据本公开的第五方面,还提供了一种计算机程序产品,其上包括程序代码,当所 述程序代码在处理器上执行时致使所述处理器中执行根据本公开的第一方面的方法。
[0022] 根据本公开的第六方面,还提供了一种计算机程序产品,其上包括程序代码,当所 述程序代码在处理器上执行时致使所述处理器中执行根据本公开的第二方面的方法。
[0023] 在本公开的实施方式中,提供了一种改进的用于对文本数据进行压缩和解压缩的 技术方案。根据该技术方案,将通过将文本数据中的可压缩文本项替换为对应的文本压缩 值来执行文本压缩,而不是采用不可搜索的二进制压缩方式。通过这种压缩方式,不但可以 获得期望的压缩率,而且压缩后的内容本身仍然是可搜索的文本形式。这样,在进行查询 时,就可以将查询请求中的可压缩文本项同样压缩成文本压缩值,并以该文本压缩值对压 缩文件进行搜索,而无需对压缩文件进行解压缩。这意味可以显著节约存储空间和大大提 高搜索效率。因而,根据本公开的技术方案不仅可以降低总所有成本(TC0),而且可以为用 户提供更好的体验。
【附图说明】
[0024] 通过结合附图并参考以下详细说明,本公开各实施方式的特征、优点及其他方面 将变得更加明显,在附图中:
[0025] 图1示意性地示出了根据本公开的一个实施方式的文本数据压缩的方框图;
[0026] 图2示意性地示出了根据本公开的一个实施方式的用于对文本数据进行压缩的 方法的流程图;
[0027] 图3示意性的示出了根据本公开的一个实施方式的示例性文本字典的一部分的 图示;
[0028] 图4示意性地示出了根据本公开的一个实施方式的示例性压缩文本数据分的图 示;
[0029] 图5示意性地示出了根据本公开的一个实施方式的文本数据查询和解压缩的方 框图;
[0030] 图6示意性地示出了根据本公开的一个实施方式的用于对压缩文本数据进行解 压缩的方法的流程图;
[0031] 图7示意性地示出了根据本公开的一个实施方式的用于对文本数据进行压缩的 设备的方框图;
[0032] 图8示意性地示出了根据本公开的一个实施方式的用于对文本数据进行解压缩 的设备的方框图;以及
[0033] 图9示意性地示出了可以在其中实现根据本公开的实施方式的计算机设备的结 构方框图。
【具体实施方式】
[0034] 在下文中,将参考附图详细描述本公开的各个示例性实施方式。应当注意,这些附 图和描述涉及的仅仅是作为示例的优选实施方式。应该指出的是,根据随后描述,很容易设 想出此处公开的结构和方法的替换实施方式,并且可以在不脱离本公开要求保护的公开的 原理的情况下使用这些替代实施方式。
[0035] 应当理解,给出这些示例性实施方式仅仅是为了使本领域技术人员能够更好地理 解进而实现本公开,而并非以任何方式限制本公开的范围。此外,在附图中,出于说明的目 的,将可选的步骤、模块、单元等以虚线框示出。
[0036] 在此使用的术语"包括"、"包含"及类似术语应该被理解为是开放性的术语,即"包 括/包含但不限于"。术语"基于"是"至少部分地基于"。术语"一个实施例"表示"至少一 个实施例";术语"另一实施例"表示"至少一个另外的实施例"。其他术语的相关定义将在 下文描述中给出
[0037] 在下文中,将参考附图通过实施方式来来详细描述根据本公开的实施方式的用于 对文本数据进行压缩和解压缩的技术方案。
[0038] 如前所述,当前的文本压缩方案采用二进制方式压缩,这造成了巨大的存储空间 需求和降低的搜索效率。为此,在本公开中提出了一种新的对文本数据进行压缩和解压缩 的方案。
[0039] 发明人注意到,在诸如日志等的文本内容中包括有大量高频出现的内容,或者称 之为重复内容,诸如各种标准的语句、与所采用的编程语言所固有的模式、文本类型所固定 的格式等。例如,日志记录通常针对同种类型的信息具有相同的语句格式,诸如Java语言 等编程语言,它的包和类名等通常都是固定的,诸如xml文件的日志数据中也具有固定的 格式。而且对于一个已经发布的系统而言,这些信息通常都是基本固定的,即便是随后有可 能加入一些新的日志信息,但是总体的结构并不会发生改变。此外,通常诸如日志的文本数 据的输出,通常集中在一个狭窄的空间,诸如集中在Java应用的i ava日志记录包的流句 柄 streamhandler 处。
[0040] 鉴于上述情况,发明人认为有可能集中对大量的文本数据进行处理。特别地,设想 使用较短的文本字符来替换这些多次重复出现的语句、模式和格式。这样,就可以使得本文 数据的尺寸得以显著降低,同时仍然保持文本数据的可搜索性。
[0041] 图1示意性地示出了根据本公开的一个实施方式的文本数据压缩的方框图。如在 图1的架构中所示,该文本压缩的架构1〇〇中主要涉及是压缩引擎110和文本字典120。压 缩引擎110接收流入的文本流,并基于文本字典120对文本流进行压缩。经过压缩的内容 存储在诸如数据库的存储设备130中。
[0042] 文本字典120是一种映射结构,其中包括大量键值对,即可压缩文本项和对应的 文本压缩值的对。文本字典的详细信息将在下面详细描述,此处不再赘述。
[0043] 接着参考图2来描述根据本公开的一个实施方式的用于对文本数据进行压缩的 方法的流程图。
[0044] 如图2所示,首先在步骤201,接收文本数据。该文本数据例如是来自SaaS或其他 大型分布式系统的日志数据,例如可以是文本流的形式。
[0045] 接着在步骤202,基于文本字典对所述文本数据中的可压缩文本项进行搜索。如前 所述,文本字典本身是一个映射结构,其中包括用于表示文本压缩值与可压缩文本项之间 的对应关系的键值对。可压缩文本项是文本数据中可以被压缩的文本内容,例如语句、模式 或者格式;文本压缩值是可压缩内容被压缩后的文本值。该文本压缩值的长度小于可压缩 文本项,优选地远远低于原始的可压缩文本内容从而提高压缩率。
[0046] 该文本字典可以通过由熟悉应用系统的管理员来手工输入键值对来建立。此外, 也可以通过对大量样本文本数据进行高频信息提取来自动建立文字典。例如,对于一个长 期运行的应用,存在许多已经生成的历史日志,这些日志可以作为样本文本数据来生成文 本字典。此外,也有可能直接使用其他类似已运行的应用的文本字典。
[0047] 例如,首先可以搜索样本文本数据中频繁出现的且字长高于预定值(例如3)的文 本项,然后基于述文本项的长度及其出现频率来确定相应的权重。基于该权重,确定哪些可 压缩文本项可以被包括在文本字典中的。在根据本公开的一个实施方式中,该权重例如可 以被确定为:
[0048] w = f* (len-minNum)
[0049] 其中w指示对应于一个文本项的权重;f指示该文本项在样本文本数据中出现的 频率;len指示该文本项的长度,minNum是一个预定值,指示可以被确定为可压缩文本项的 文本项的最小长度。
[0050] 在根据本公开的一个实施方式中,可以将文本字典的数目限定为预定值,比如 65535。可以根据权重的大小,将权重排序在前65535位的文本项作为字典中的可搜索文本 项。然后,可以针对搜索到的文本项,根据任何适当的预定规则产生相应的键值。
[0051] 在下文中,仅仅出于说明的目的,将在表1和表2中示出一个示例性的原始文本以 及基于其生成的示例键值对。
[0052] 表1示例原始文本内容
[0054] 从表1中示出的原始文本内容可以看出,其中包括语句、模式和格式信息。根据大 量与表1所示的原始文本数据类似的文本内容,可以通过提取高频出现内容来确定可压缩 文本项。然而通过针对相应的可压缩文本确定对应的压缩值来生成键值对,如表2所示,
[0055] 表2示例的键值对
[0056]
[0057] 从表2可以清楚看出,压缩值的长度比可压缩文本项的长度短的多。其中的压缩 值,即键值,可以例如由文本字符构成,例如大写字母、小写字母、符号、数字中的任何一个 或多种组中。具体地,这些文本字符例如可以包括:
[0058] -符号:! "#$%&,
[0059] -数字:0 123456789
[0060] -大写字母:ABCDEFGHIJKLMNOPQRSTUVWXYZ
[0061] -小写字母:abcdefghljkl mnopqrstuvwxyz
[0062] 在利用通常使用的编码格式UTF-8进行编码的日志文件中,上述每个字符占据1 个字节,这能够确保每个键值占据尽可能小的空间。进一步,为了得到更佳的压缩率,可以 为权重较高的可压缩文本项分别较短的键值。此外,键值也可以由系统管理员来进行定义 或者分配,例如对于上面示例的键值对中示出的Ictx},就是系统管理员认为定义的。每个 文本压缩值的大小可以具有预定的大小,例如不超过五个字符。
[0063] 大量这样的键值对构成了将在文本数据压缩时使用的文本字典。出于示出的目 的,在图3中给出了文本字典的一部分的示例。如图3所示,在该文本字典中,包括若干指 示了压缩值与可压缩文本项的键值对,且其中压缩值的长度显著短于比可压缩文本项的长 度。
[0064] 在文本字典建立后,该文本字典可以存储在文件系统中或者存储在诸如数据库的 永久性存储设备中,以供随后使用。
[0065] 用于的不同类型的日志通常在惯用语句、模式和格式方面具有其自身的特性。因 此,如果能够针对不同类型的文件数据产生不同的文本字典将是优选的。例如可以针对记 录用户业务行为的日志生成一个文本字典,针对记录错的日志生成一个文本字典等等。
[0066] 返回参考图1,在形成这样的文本字典后,就可以在步骤102中,基于该文本字典 对可压缩文本项执行搜索操作。具体地,压缩引擎可以根据文本字典在文本数据中搜索可 压缩文本项,即,查找文本数据中包含的、在文本字典中指定的可压缩文本项。如前所述,该 可压缩文本项是文本数据中通常出现的重复出现的内容,诸如各种标准的语句、与所采用 的编程语言所固有的模式、文本类型所固定的格式。
[0067] 在找到文本数据中的可压缩文本项后,可以在步骤103,使用与找到的可压缩文本 项对应的文本形式的压缩值来替换文本数据中的可压缩文本项。通过这种替换来实现对文 本数据的压缩。
[0068] 用于执行该压缩的压缩引擎可以以管道方式进行操作,原始的文本流作为其输 入,而其输出是经过压缩后的文本流。优选地,还可以提供多线程处理来提高压缩引擎的吞 吐量。
[0069] 出于示出的目的,表3示例性地示出了针对表1示出的示例性的原始文本数据进 行压缩后得到的内容。
[0070] 表3压缩后的文本数据
[0072] 如表3所示,诸如{ctx}的压缩值后面是其涉及的相应参数值,例如"cf77d61b-3 7fb-40cc-aab2-cdf621652f69","$ ! "等,其中部分是文本压缩值,部分是原始文本值。需 要说明的是该表3中示出的压缩后的文书数据仅仅是一个示意性的示例。在实际应用中, 可以通过对上述参数值中并非压缩值的原始文本内容也参数化为键值对来进一步提高压 缩效率。这意味着诸如"context id的参数值也可以被压缩,进而获得更高的压缩率。
[0073] 在图4中示意性地示出了具有加高压缩率的文本压缩结果。从图4中示出的压缩 结果可以看出,通过对参数值进行进一步压缩,压缩率可以得到显著提高。
[0074] 此外,为了支持更新能力,可以对文本字典进行版本管理。例如每个文本字典可以 标记有版本信息,在需要更新字典内容时,可以重新产生字典,并且也标记上相应的版本信 息,例如版本号。同时,在利用文本字典对文件执行压缩之后,可以将压缩后的文本文件标 记上与压缩所采用的文本字典相同的版本信息。这样,在解压缩时就可以找到相应的文本 字典。
[0075] 在进行条件查询时,该压缩引擎还可以用于对查询请求中的压缩条件进行压缩, 以便在并不解压缩的情况下对文本数据进行查询。这将在下文中进行进一步地描述。
[0076] 图5示出了根据本公开的一个实施方式的数据查询以及解压缩的框图。如图500 所示,用户输入的查询请求首先进入压缩引擎510。然后与文本数据压缩类似,压缩引擎 510同样基于文本字典520搜索查询请求中的可压缩文本项,通常是查询条件。然后利用对 应的文本压缩值来替换可压缩文本项。因此,这意味着输入日志分析工具550中的查询是 经过压缩的查询。由于查询条件本身也被压缩,而压缩文本数据,本身也是包括文本压缩值 的可搜索文本形式,因此查询操作可以在不对日志文件进行解压缩的情况下直接进行。
[0077] 诸如,如果用户向日志查询工具550的查询输入部件中输入"Big Data"以作为查 询条件。则压缩引擎510会利用与所述文本搜索请求所针对的所述已压缩文件的类型和版 本信息对应的文本字典对该查询条件进行压缩。即系统会在文本字典520中查询与查询条 件匹配的文本压缩值,例如并用对应的文本压缩值Big$@替换压缩条件。另外,如 果"Big Data"包含在关键字"$d"的值中,则"$d"将会被当作另一查询条件进行处理。日 志分析工具550将会使用该压缩后的条件进行文本内容搜索。
[0078] 在完成搜索后,日志分析工具550将会返回执行搜索得到的结果。该搜索结果是 压缩形式的,例如结果中包括像是"$A$a$d,Big$@,細IT"的一条数据的压缩文本数据。
[0079] 解压缩引擎540将会针对压缩形式的查询结果进行解压缩。类似地,基于文本字 典520,从压缩形式的查询结果中搜索文本压缩值,然后将文本压缩值替换为对应的文本压 缩项。在完成解压后,可以将解压缩的查询结果返回给用户,以供用户查看。解压缩的查询 结果例如可以是"EMC-Leading Cloud computing,Big Data and Trusted IT〇"
[0080] 在下文中,出于说明的目的将会参考图6来描述根据本公开的一个实施方式的用 于对压缩文本数据进行解压缩的方法。
[0081] 如图6所示,首先在步骤601,接收压缩文本数据。该文本数据例如是来自分析的 查询结果。也可以是来自其他数据源的压缩文本数据。
[0082] 然后在步骤602,可以基于文本字典搜索所述压缩文本数据中的文本压缩值。该文 本字典如前所述包括多个键-值对,所述多个键-值对中的每个键值对包括文本压缩值以 及对应的可压缩文本项。而且所述文本压缩值具有比所述可压缩文本项更小的长。该文本 字典是前文中描述的执行压缩时采用的文本字典。所述文本字典可以是通过对多个样本文 本数据进行高频出现信息提取而建立的。所述可压缩文本项可以包括文本数据中频繁出现 的语句、所采用的编程语言所固有的模式和文本类型所固定的格式其中一种或多种。所述 键值对所包括的可压缩文本项具有大于预定值的长度。在根据本公开的一个实施方式中, 所述文本字典的所述键值对所包括的文本压缩值包括大写字母、小写字母、数字以及符号 其中任何一种及其组合。通常所述文本压缩值的长度不超过预定值所述文本字典具有预定 长度,以便实现预定的压缩率。所述文本字典中的可压缩文本项可以基于文本项的权重来 确定。所述文本项的权重例如可以至少基于所述文本项的长度及其出现频率来确定。
[0083] 在基于所述文本字典找到文本压缩值后,可以在步骤603将搜索到的所述压缩文 本数据中的文本压缩值替换为文本字典中对应的可压缩文本项,以由此对压缩文本数据进 行解压缩。
[0084] 通过上述解压缩过程就可以恢复原始的文本数据,以便提供给用户进行查看。
[0085] 通过本公开的压缩方案,可以在不进行解压缩的情况下执行各种类型的搜索。例 如可以支持具有通配符的全词搜索,支持日期、时间和数字的比较功能。特别地,还可以支 持对特定文件模式和格式的查询,这例如可以用来有效提高查询效率,特别是对于区域性 查询(诸如特定时间段内的查询)。
[0086] 因此,在本公开的实施方式中,提供了一种改进的用于对文本数据进行压缩和解 压缩的技术方案。根据该技术方案,将通过将文本数据中的可压缩文本项替换为对应的文 本压缩值来执行文本压缩,而不是采用不可搜索的二进制压缩方式。通过这种压缩方式,不 但可以获得期望的压缩率,而且压缩后的内容本身仍然是可搜索的文本形式。这样,在进行 查询时,就可以将查询请求中的可压缩文本项同样压缩成文本压缩值,并以该文本压缩值 对压缩文件进行搜索,而无需对压缩文件进行解压缩。这意味可以显著节约存储空间和大 大提高搜索效率。因而,根据本公开的技术方案不仅可以降低TC0,而且可以为用户提供更 好的体验。
[0087] 图7示出了根据本公开的一个实施方式的用于对文本数据执行压缩的设备的方 框图。如图7所示,用于对文本数据进行压缩的设备700可以包括:文本数据接收模块710、 文本项搜索模块720和文本项替换模块730。特别地,所述文本数据接收模块710被配置用 于接收文本数据。所述文本项搜索模块720被配置用于基于文本字典来搜索所述文本数据 中的可压缩文本项。所述文本字典包括多个键-值对,所述多个键-值对中的每个键值对 包括文本压缩值以及对应的可压缩文本项,且所述文本压缩值具有比所述可压缩文本项更 小的长度。所述文本项替换模块730被配置用于将搜索到所述文本数据中的可压缩文本项 替换为对应的文本压缩值,以便对所述文本数据进行压缩。
[0088] 在根据本公开的实施方式中,所述文本字典可以是基于所述文本数据的类型从分 别与多种不同类型的文本数据对应的多个文本字典中而选择的。此外,所述文本字典还可 以具有版本信息。在这种情况下所述设备可以进一步包括:版本标记模块740,被配置用于 为经过压缩的所述文本数据标记与所述文本字典的版本信息相同的压缩版本信息。
[0089] 在根据本公开的实施方式中,所述文本字典可以是通过对多个样本文本数据进行 高频出现信息提取而建立的。所述文本字典可以具有预定大小。所述文本字典中的可压缩 文本项可以基于文本项的权重来确定。而所述文本项的权重至少基于所述文本项的长度及 其出现频率来确定。
[0090] 图8示出了根据本公开的一个实施方式的用于对压缩文本数据执行解压缩的设 备的方框图。如图8所示,用于对压缩文本数据进行解压缩的设备800可以包括。压缩数 据接收模块810、压缩值搜索模块820和压缩值替换模块830。特别地,所述压缩数据接收 模块810可以被配置为接收压缩文本数据。压缩值搜索模块820可以被配置用于基于文本 字典来搜索所述压缩文本数据中的文本压缩值。所述文本字典包括多个键值对,所述多个 键值对中的每个键值对包括文本压缩值以及对应的可压缩文本项,且所述文本压缩值具有 比所述可压缩文本项更小的长度。所述压缩值替换模块830可以被配置用于将搜索到所 述压缩文本数据中的文本压缩值替换为对应的可压缩文本项,以便对所述文本数据进行解 压缩。在根据本公开的一个实施方式中,所述文本字典是基于所述压缩文本数据的类型及 其压缩的版本信息,从与多种不同类型的文本数据和版本信息对应的多个文本字典中选择 的。所述文本字典例如是通过对多个样本文本数据进行高频出现信息提取而建立的。所述 文本字典优选地具有预定大小,且所述文本字典中的可压缩文本项基于文本项的权重来确 定的。所述文本项的权重例如至少基于所述文本项的长度及其出现频率来确定。
[0091] 需要说明的是,处于简化的目的,上面简要描述了设备700和800的各个部件的操 作。关于这些部件的操作的详细细节,可以参考图1至图6对方法的详细描述中的相关部 分。
[0092] 此外,需要说明的是,本公开的压缩方案还可以通过一种计算机程序产品来实现。 该计算机程序其上包括程序代码,所述程序代码在被处理器上执行时,致使所述处理器执 行根据本公开用于对文本数据进行压缩的方法。
[0093] 另外,还需要说明的是,本公开的解压缩方案也可以通过一种计算机程序产品来 实现。该计算机程序其上包括程序代码,所述程序代码在被处理器上执行时,致使所述处理 器执行根据本公开用于对压缩文本数据进行解压缩的方法。
[0094] 在下文中,将参考图9来描述可以在其中实现本公开的实施方式的计算机设备。 图9示意性地示出了可以实现根据本公开的实施方式的计算机设备的结构方框图。
[0095] 图9中所示的计算机系统包括CPU(中央处理单元)901、RAM(随机存取存储 器)902、ROM(只读存储器)903、系统总线904、硬盘控制器905、键盘控制器906、串行接 口控制器907、并行接口控制器908、显示器控制器909、硬盘910、键盘911、串行外部设备 912、并行外部设备913和显示器914。在这些部件中,与系统总线904相连的有CPU 901、 RAM 902、ROM 903、硬盘控制器905、键盘控制器906、串行接口控制器907、并行接口控制器 908和显示器控制器909。硬盘910与硬盘控制器905相连,键盘911与键盘控制器906相 连,串行外部设备912与串行接口控制器907相连,并行外部设备913与并行接口控制器 908相连,以及显示器914与显示器控制器909相连。需要说明的是,图9所述的结构方框 图仅仅为了示例的目的而示出的,并非是对本公开的限制。在一些情况下,可以根据需要添 加或者减少其中的一些设备。
[0096] 本公开的实施方式可以作为计算机程序代码存储在上计算机的例如硬盘910的 存储设备中,在被载入诸如内存中运行时,将使得CPU 901执行根据本公开的压缩和解压 缩的方法。
[0097] 需要注意的是,本公开的实施方式可以在软件和/或软件与硬件的在上文中结合 附图通过实施方式对本公开提供的压缩和解压缩方案进行了详细说明。然而本领域技术人 员应该理解的是,尽管以文本流形式的日志为例,对文本数据进行了描述,然而本公开并不 仅限于日志数据,事实上任何其他适当的文本数据均可以采用本公开的方案进行压缩,而 且文件数据也不一定是以文件流的形式。此外,在上文中以分布式系统或者SaaS为例子进 行了描述,然而本公开也可以应用他其他类似的场合。此外,在前文示出的权重计算也是示 例性的,实际应用中也可以采用不同的方式来计算该权重,例如采用不同的算法,考虑更多 或者更少的因素等。另外,还可以理解的是,根据此处的公开内容和教导,本领域技术人员 还可以设想到各种修改、变形、替换或等效而并不背离本公开的精神和范围。这些修改、变 形、替换或等效均包括在仅由权利要求书限定的本公开的范围内。
[0098] 组合体中被实施,例如,可采用专用集成电路(ASIC)、通用目的计算机或任何其他 类似硬件设备来实现。在一个实施例中,本公开的软件程序可以通过处理器执行以实现上 文所述步骤或功能。同样地,本公开的软件程序(包括相关的数据结构)可以被存储到计 算机可读记录介质中,例如,RAM存储器,磁或光驱动器或软磁盘及类似设备。另外,本公开 的一些步骤或功能可采用硬件来实现,例如,作为与处理器配合从而执行各个步骤或功能 的电路。
[0099] 另外,本公开的一部分可被应用为计算机程序产品,例如计算机程序指令,当其被 计算机执行时,通过该计算机的操作,可以调用或提供根据本公开的方法和/或技术方案。 而调用本公开的方法的程序指令,可能被存储在固定的或可移动的记录介质中,和/或通 过广播或其他信号承载媒体中的数据流而被传输,和/或被存储在根据所述程序指令运行 的计算机设备的工作存储器中。在此,根据本公开的一个实施例包括一个装置,该装置包括 用于存储计算机程序指令的存储器和用于执行程序指令的处理器,其中,当该计算机程序 指令被该处理器执行时,触发该装置运行基于前述根据本公开的多个实施例的方法和/或 技术方案。
[0100] 对于本领域技术人员而言,显然本公开不限于上述示范性实施例的细节,而且在 不背离本公开的精神或基本特征的情况下,能够以其他的具体形式实现本公开。因此,无论 从哪一点来看,均应将实施例看作是示范性的,而且是非限制性的,本公开的范围由所附权 利要求而不是上述说明限定,因此旨在将落在权利要求的等同要件的含义和范围内的所有 变化涵括在本公开内。不应将权利要求中的任何附图标记视为限制所涉及的权利要求。此 外,显然"包括" 一词不排除其他单元或步骤,单数不排除复数。装置权利要求中陈述的多 个单元或装置也可以由一个单元或装置通过软件或者硬件来实现。第一,第二等词语用来 表示名称,而并不表示任何特定的顺序。
【主权项】
1. 一种用于对文本数据进行压缩的方法,包括: 接收文本数据; 基于文本字典来搜索所述文本数据中的可压缩文本项,其中所述文本字典包括多个键 值对,所述多个键值对中的每个键值对包括文本压缩值以及对应的可压缩文本项,且所述 文本压缩值具有比所述可压缩文本项更小的长度;以及 将搜索到的所述文本数据中的可压缩文本项替换为对应的文本压缩值,以便对所述文 本数据进行压缩。2. 根据权利要求1所述的方法,其中所述文本字典是基于所述文本数据的类型从分别 与多种不同类型的文本数据对应的多个文本字典中而选择的。3. 根据权利要求1所述的方法,其中所述文本字典具有版本信息,以及所述方法进一 步包括: 为经过压缩的所述文本数据标记与所述文本字典的版本信息相同的压缩版本信息。4. 根据权利要求1所述的方法,其中所述文本字典是通过对多个样本文本数据进行高 频出现信息提取而建立的。5. 根据权利要求4所述的方法,其中所述可压缩文本项包括文本数据中频繁出现的语 句、所采用的编程语言所固有的模式和文本类型所固定的格式其中一种或多种。6. 根据权利要求1所述的方法,其中所述文本字典的键值对所包括的可压缩文本项具 有大于预定值的长度。7. 根据权利要求1所述的方法,其中所述文本字典的键值对所包括的文本压缩值包括 大写字母、小写字母、数字以及符号其中任何一种及其组合,以及其中所述文本压缩值的长 度不超过预定值。8. 根据权利要求1所述的方法,其中所述文本字典具有预定大小,以及其中基于文本 项的权重来确定所述文本字典中的可压缩文本项,所述文本项的权重至少基于所述文本项 的长度及其出现频率来确定。9. 根据权利要求1所述的方法,其中所述文本数据是文本流形式的日志数据。10. 根据权利要求1所述的方法,其中所述文本数据是其中包括可压缩文本项的针对 已压缩文件的文本搜索请求。11. 根据权利要求10所述的方法,其中使用与所述文本搜索请求所针对的搜索已压缩 文件的类型和版本信息对应的文本字典来对所述文本搜索请求进行压缩。12. -种用于对压缩文本数据进行解压缩的方法,包括: 接收压缩文本数据; 基于文本字典来搜索所述压缩文本数据中的文本压缩值,其中所述文本字典包括多个 键-值对,所述多个键-值对中的每个键值对包括文本压缩值以及对应的可压缩文本项,且 所述文本压缩值具有比所述可压缩文本项更小的长度;以及 将搜索到的所述压缩文本数据中的文本压缩值替换为对应的可压缩文本项,以便对所 述文本数据进行解压缩。13. 根据权利要求12所述的方法,其中所述文本字典是基于所述压缩文本数据的类型 及其压缩版本信息,从与多种不同类型的文本数据和版本信息对应的多个文本字典中选择 的。14. 根据权利要求12所述的方法,其中所述文本字典是通过对多个样本文本数据进行 高频出现信息提取而建立的。15. 根据权利要求14所述的方法,其中所述可压缩文本项包括文本数据中频繁出现的 语句、所采用的编程语言所固有的模式和文本类型所固定的格式其中一种或多种。16. 根据权利要求12所述的方法,其中所述文本字典的键值对所包括的可压缩文本项 具有大于预定值的长度。17. 根据权利要求12所述的方法,其中所述文本字典的所述键值对所包括的文本压缩 值包括大写字母、小写字母、数字以及符号其中任何一种及其组合,以及其中所述文本压缩 值的长度不超过预定值。18. 根据权利要求12所述的方法,其中所述文本字典具有预定长度,以及其中基于文 本项的权重来确定所述文本字典中的可压缩文本项,所述文本项的权重至少基于所述文本 项的长度及其出现频率来确定。19. 根据权利要求12所述的方法,其中所述压缩文本数据是针对用户的文本搜索请求 的搜索结果。20. -种用于对文本数据进行压缩的设备,包括: 文本数据接收模块,被配置用于接收文本数据; 文本项搜索模块,被配置用于基于文本字典来搜索所述文本数据中的可压缩文本项, 其中所述文本字典包括多个键-值对,所述多个键-值对中的每个键值对包括文本压缩值 以及对应的可压缩文本项,且所述文本压缩值具有比所述可压缩文本项更小的长度;以及 文本项替换模块,被配置用于将搜索到的所述文本数据中的可压缩文本项替换为对应 的文本压缩值,以便对所述文本数据进行压缩。21. 根据权利要求20所述的设备,其中所述文本字典是基于所述文本数据的类型从分 别与多种不同类型的文本数据对应的多个文本字典中而选择的。22. 根据权利要求20所述的方法,其中所述文本字典具有版本信息,以及所述设备进 一步包括: 版本标记模块,被配置用于为经过压缩的所述文本数据标记与所述文本字典的版本信 息相同的压缩版本信息。23. 根据权利要求20所述的方法,其中所述文本字典是通过对多个样本文本数据进行 高频出现信息提取而建立的。24. 根据权利要求20所述的方法,其中所述文本字典具有预定大小,以及其中基于文 本项的权重来确定所述文本字典中的可压缩文本项,所述文本项的权重至少基于所述文本 项的长度及其出现频率来确定。25. -种用于对压缩文本数据进行解压缩的设备,包括: 压缩数据接收模块,被配置为接收压缩文本数据; 压缩值搜索模块,被配置用于基于文本字典来搜索所述压缩文本数据中的文本压缩 值,其中所述文本字典包括多个键值对,所述多个键值对中的每个键值对包括文本压缩值 以及对应的可压缩文本项,且所述文本压缩值具有比所述可压缩文本项更小的长度;以及 压缩值替换模块,被配置用于将搜索到的所述压缩文本数据中的文本压缩值替换为对 应的可压缩文本项,以便对所述文本数据进行解压缩。26. 根据权利要求25所述的方法,其中所述文本字典是基于所述压缩文本数据的类型 及其压缩的版本信息,从与多种不同类型的文本数据和版本信息对应的多个文本字典中选 择的。27. 根据权利要求25所述的方法,其中所述文本字典是通过对多个样本文本数据进行 高频出现信息提取而建立的。28. 根据权利要求25所述的方法,其中所述文本字典具有预定大小,以及其中基于文 本项的权重来确定所述文本字典中的可压缩文本项,所述文本项的权重至少基于所述文本 项的长度及其出现频率来确定。29. -种计算机程序产品,其上包括程序代码,所述程序代码在处理器上执行时,致使 所述处理器执行根据权利要求1至11中任一项所述的方法。30. -种计算机程序产品,其上包括程序代码,所述程序代码在在处理器上执行时,致 使所述处理器执行根据权利要求12至19中任一项所述的方法。
【文档编号】G06F17/22GK105893337SQ201510003759
【公开日】2016年8月24日
【申请日】2015年1月4日
【发明人】袁宏, 张申竣, 王羽嘉, 李振东, 刘霞
【申请人】伊姆西公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1