CN108694159A - 编码方法和编码装置 - Google Patents
编码方法和编码装置 Download PDFInfo
- Publication number
- CN108694159A CN108694159A CN201810240597.5A CN201810240597A CN108694159A CN 108694159 A CN108694159 A CN 108694159A CN 201810240597 A CN201810240597 A CN 201810240597A CN 108694159 A CN108694159 A CN 108694159A
- Authority
- CN
- China
- Prior art keywords
- dynamic
- word
- code
- lexicon
- unit
- 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
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F40/00—Handling natural language data
- G06F40/20—Natural language analysis
- G06F40/237—Lexical tools
- G06F40/242—Dictionaries
-
- 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/3088—Compression; Expansion; Suppression of unnecessary data, e.g. redundancy reduction using adaptive string matching, e.g. the Lempel-Ziv method employing the use of a dictionary, e.g. LZ78
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F40/00—Handling natural language data
- G06F40/10—Text processing
- G06F40/12—Use of codes for handling textual entities
- G06F40/126—Character encoding
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F40/00—Handling natural language data
- G06F40/10—Text processing
- G06F40/12—Use of codes for handling textual entities
- G06F40/14—Tree-structured documents
- G06F40/146—Coding or compression of tree-structured data
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F40/00—Handling natural language data
- G06F40/10—Text processing
- G06F40/12—Use of codes for handling textual entities
- G06F40/151—Transformation
- G06F40/157—Transformation using dictionaries or tables
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F40/00—Handling natural language data
- G06F40/20—Natural language analysis
- G06F40/279—Recognition of textual entities
- G06F40/284—Lexical analysis, e.g. tokenisation or collocates
-
- 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
-
- 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/3066—Compression; Expansion; Suppression of unnecessary data, e.g. redundancy reduction by means of a mask or a bit-map
-
- 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/60—General implementation details not specific to a particular type of compression
- H03M7/6011—Encoder aspects
-
- 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/70—Type of the data to be coded, other than image and sound
- H03M7/707—Structured documents, e.g. XML
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Health & Medical Sciences (AREA)
- Artificial Intelligence (AREA)
- Audiology, Speech & Language Pathology (AREA)
- Computational Linguistics (AREA)
- General Health & Medical Sciences (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Compression, Expansion, Code Conversion, And Decoders (AREA)
- Machine Translation (AREA)
Abstract
本发明涉及编码方法和编码装置。根据本发明的编码装置包括编码单元,被配置成:获取文本数据;基于文本数据中所包括的第一单词的属性信息来指定多个动态词典中的第一动态词典;将与第一动态代码相关联的第一单词登记在第一动态词典中;以及将第一单词编码为第一动态代码。
Description
技术领域
本文所讨论的实施方式涉及编码技术。
背景技术
近年来,在进行数据的编码时,存在以单词为单位进行编码的技术。在以单词为单位的编码中,跨多个单词的编码没有以与基于ZIP的压缩不同的方式执行。通过以单词为单位进行编码,编码数据的一部分可以在保持编码的同时被提取并被重新使用。
这里,在以单词为单位进行编码的情况下,通过使用静态词典和动态词典来进行编码。静态词典是其中代码与具有高出现频率的单词相关联的信息。如果作为编码目标的单词不存在于静态词典中,则通过将这个单词登记在动态词典中并为该单词分配动态代码来进行编码。例如,根据单词出现的顺序来分配动态代码。
例如,在日本特许公开专利公报第2013-150041号、第09-214352号和第11-284517号中公开了相关技术。
发明内容
技术问题
然而,上述相关技术涉及难以有效使用动态词典的问题。
当使用动态词典时分配给单词的动态代码是根据单词的出现顺序分配的。此外,当编码目标从文本扩展到可扩展标记语言(XML)数据等时,除了具有低出现频率的单词和未知单词以外,多种和大量的数字串和字符串(例如数值、标签和路径列表)也被登记在动态词典中作为单词。为此,当编码数据的一部分被提取并重新使用时,整个动态词典被扫描并且确定各自的类型。如果动态词典的大小很大,则处理时间变长并且动态词典不能被有效地使用。
在一个方面中,本文讨论的实施方式旨在提供允许有效使用动态词典的编码程序、方法和装置。
问题的解决方案
根据实施方式的一个方面,编码装置包括编码单元,其被配置成:获取文本数据;基于文本数据中所包括的第一单词的属性信息来指定多个动态词典中的第一动态词典;将与第一动态代码相关联第一单词登记在第一动态词典中;以及将第一单词编码为第一动态代码。
本发明的有益效果
动态词典能够被有效地使用。
附图说明
图1是示出了根据实施方式1的信息处理装置的编码处理的一个示例的图;
图2是示出了根据实施方式1的信息处理装置的配置的功能框图;
图3是示出了根据实施方式1的编码单元的配置的一个示例的功能框图;
图4是示出了静态词典信息的数据结构的一个示例的图;
图5是示出了动态词典信息的数据结构的一个示例的图;
图6是示出了类型表的数据结构的一个示例的图;
图7是示出了根据实施方式1的解压缩单元的配置的一个示例的功能框图;
图8是示出了根据实施方式1的编码单元的处理过程的一个示例的流程图;
图9是示出了根据实施方式1的解压缩单元的处理过程的流程图;
图10是示出了根据实施方式2的信息处理装置的编码处理的一个示例的图;
图11是示出了根据实施方式2的信息处理装置的配置的功能框图;
图12是示出了根据实施方式2的编码单元的配置的一个示例的功能框图;
图13是示出了动态词典信息的数据结构的一个示例的图;
图14是示出了类型表的数据结构的一个示例的图;
图15是示出了根据实施方式2的解压缩单元的配置的一个示例的功能框图;
图16是示出了根据实施方式2的编码单元的处理过程的流程图;
图17是示出了根据实施方式2的解压缩单元的处理过程的流程图;
图18是用于说明编码单元的另一种处理的图;
图19是示出了计算机的硬件配置示例的图;
图20是示出了在计算机上操作的程序的配置示例的图;以及
图21是示出了实施方式的系统中的装置的配置示例的图。
具体实施方式
下面将基于附图详细描述本申请中公开的编码程序、方法和装置的实施方式。本申请的技术不受这些实施方式的限制。
[实施方式1]
图1是示出了根据本实施方式1的信息处理装置的编码处理的一个示例的图。信息处理装置是编码装置的一个示例。信息处理装置读出编码目标的文本文件F1并且经由通过静态词典进行静态编码以及通过动态词典进行动态编码来生成编码文件F2。静态词典是其中具有高出现频率的单词与静态代码相关联的信息。
信息处理装置从文本文件F1中读出单词并执行用静态代码替换在静态词典中产生命中的单词的处理。例如,假设文本文件F1中所包括的单词由空格分隔。在本实施方式中,作为一个示例,以空白三角形表示空格(在本说明书中,三角符号Δ被用作这个空白三角形)。文本文件F1的内容部分是夹在“STX”和“ETX”之间的部分。
例如,假设文本文件F1中所包括的单词“ThisΔ”“isΔ”“aΔ”和“penΔ”中的每个是在静态词典中产生命中的单词。信息处理装置将各个单词“ThisΔ”“isΔ”“aΔ”和“penΔ”转换成静态代码。在图1所示的示例中,省去了与各个单词“ThisΔ”“isΔ”“aΔ”和“penΔ”对应的静态代码的图形表示。
信息处理装置从文本文件F1读出单词。然后,对于在静态词典中未产生命中的单词,信息处理装置从多个动态词典中确定与单词的属性信息相对应的动态词典,并且通过使用所确定的动态词典来进行动态编码。信息处理装置将单词登记在与该单词的属性信息相对应的动态词典中,并且为该单词分配动态代码以用动态代码替换该单词。
在图1所示的示例中,存在与各种属性信息对应的动态词典10至动态词典13。虽然在图1中示出了动态词典10至动态词典13,可以存在与其他种类的属性信息对应的动态词典。动态词典10是当“低频词”经受动态编码时使用的动态词典。例如,“A000h至A0FFh”的动态代码被分配给动态词典10。动态词典11是当“未知单词”经受动态编码时使用的动态词典。例如,“A100h至A1FFh”的动态代码被分配给动态词典11。
动态词典12是当“数值”经受动态编码时使用的动态词典。例如,“A200h至A2FFh”的动态代码被分配给动态词典12。动态词典13是当“标签”经受动态编码时使用的动态词典。例如,“A300h至A3FFh”的动态代码被分配给动态词典13。
将描述其中信息处理装置确定单词的属性信息的一个示例。信息处理装置使用限定有低频词的外部词典,并且当单词在外部词典中产生命中的情况下将单词的属性信息确定为“低频词”。如果给定标签“<,>”被包括在单词中,则信息处理装置将单词的属性信息确定为“标签”。如果单词由数值“1至9”组成,则信息处理装置将单词的属性信息确定为“数值”。如果单词的属性信息与“低频词、标签、数值”不对应,则信息处理装置将单词的属性信息确定为“未知单词”。
信息处理装置通过使用类型表20来确定与属性信息相对应的动态词典。类型表20将属性信息与指针进行关联。指针是指示与属性信息相对应的动态词典的信息。例如,如果属性信息是“低频词”,则指针指示动态词典10的位置。如果属性信息是“未知单词”,则指针指示动态词典11的位置。如果属性信息是“数值”,则指针指示动态词典12的位置。如果属性信息是“标签”,则指针指示动态词典13的位置。
文本文件F1中所包括的单词“MickeyΔ”是在静态词典中未产生命中并且属性信息被认为是“未知单词”的单词。信息处理装置从动态词典10至动态词典13中确定与单词“MickeyΔ”的属性信息“未知单词”相对应的动态词典11。信息处理装置通过为单词“MickeyΔ”分配动态代码“A100h”来进行动态编码。
文本文件F1中所包括的单词“12345Δ”是在静态词典中未产生命中并且属性信息被认为是“数值”的单词。信息处理装置从动态词典10至动态词典13中确定与单词“12345Δ”的属性信息“数值”相对应的动态词典12。信息处理装置通过为单词“12345Δ”分配动态代码“A200h”来进行动态编码。
文本文件F1中所包括的单词“<a href=″#link2H_4_00002″>Δ”是在静态词典中未产生命中并且属性信息被认为是“标签”的单词。信息处理装置从动态词典10至动态词典13中确定与单词“<a href=″#link2H_4_00002″>Δ”的属性信息“标签”相对应的动态词典13。信息处理装置通过为单词“<a href=″#link2H_4_00002″>Δ”分配动态代码“A300h”来进行动态编码。
信息处理装置通过执行上述处理将文本文件F1编码成编码文件F2。头部部分1a、编码数据部分1b和尾部部分1c被包括在编码文件F2中。关于单词出现频率等的信息被包括在头部部分1a中。由信息处理装置生成的编码数据被存储在编码数据部分1b中。关于动态词典10至动态词典13等的信息被包括在尾部部分1c中。
根据本实施方式1的信息处理装置确定与文本文件F1中所包括的单词的属性信息对应的动态词典,并且通过使用所确定的动态词典来进行动态编码。这允许基于单词的属性信息来区分其中单词与动态代码相关联的动态词典,因此可以有效地使用动态词典。
图2是示出了根据本实施方式1的信息处理装置的配置的功能框图。如图2所示,这个信息处理装置100包括编码单元100a、解压缩单元100b和存储单元100c。编码单元100a是登记单元和编码单元的一个示例。
编码单元100a是执行图1中所表示的编码处理的处理单元。解压缩单元100b是对由编码单元100a编码的编码文件进行解压缩(解码)的处理单元。存储单元100c是存储编码目标的文本文件F1、通过编码处理获得的编码文件F2以及通过对编码文件F2进行解压缩获得的解压缩文件F3等的存储单元。存储单元100c对应于诸如随机存取存储器(RAM)、只读存储器(ROM)和闪速存储器的半导体存储器元件以及诸如硬盘驱动器(HDD)的存储装置。
图3是示出了根据本实施方式1的编码单元的配置的一个示例的功能框图。如图3所示,这个编码单元100a包括文件读取单元101、静态词典信息102和静态编码单元103。编码单元100a包括动态词典信息104、类型表105、动态编码单元106和文件写入单元107。
文件读取单元101是读出被存储在存储单元100c中并且变为编码目标的文本文件F1的内容部分的数据的处理单元。文件读取单元101将读出的数据输出至静态编码单元103。
图4是示出了静态词典信息的数据结构的一个示例的图。静态词典信息102包括关于静态词典C2的信息,在静态词典C2中限定有用于出现频率等于或高于阈值的单词的静态代码。如图4所示,这个静态词典信息102包括二元文法(2-gram)、位图、指针、基本单词和静态代码。在这些因素中,二元文法、位图、指针和基本单词对应于比特过滤器C1。此外,基本单词和静态代码对应于静态词典C2。
二元文法是表示两个字符的字符串(或单词)的信息。位图表示与二元文法的字符串对应的位图。例如,与“aa”对应的位图是“0_0_0_0_0”。指针是指示与位图相对应的基本单词的位置的指针。
例如,基本单词是登记在静态词典C2中的具有高频率的单词。静态代码是分配给基本单词的编码数据。在静态词典C2中,除了基本单词和静态代码之外,还可以包括关于字符串长度、单词的出现频率等的信息。
静态编码单元103是处理单元,其将文件读取单元101的文本文件F1的内容数据与静态词典信息102的比特过滤器C1进行比较并且用静态代码替换在比特过滤器C1中产生命中的单词。静态编码单元103将与单词相对应的静态代码输出至文件写入单元107。
此处,将描述静态编码单元103的用于确定单词在比特过滤器C1中是否产生命中的处理的一个示例。例如,如果单词是“ableΔ”,则静态编码单元103将与二元文法“ab”“bl”“le”和“eΔ”对应的位图彼此组合。如果在位图的位处所有位图的值为0,则静态编码单元103将通过组合获得的位图的对应位设置为“0”。相反地,如果甚至在一个位图中包含“1”,则静态编码单元103将相应的位设置为“1”。由此,位图被组合。
例如,假设“ab”的位图是“1_0_0_0_0”并且“bl”的位图是“0_1_0_0_0”并且“le”的位图是“0_0_1_0_0”并且“eΔ”的位图是“0_0_0_1_0。在这种情况下,通过组合各个位图获得的位图是“1_1_1_1_0”。
静态编码单元103将通过组合所获得的位图与比特过滤器C1的指针进行比较,并且识别在与位图相对应的指针指示的位置处的基本单词。静态编码单元103依次从所识别的基本单词中搜索与该单词相对应的基本单词。如果存在与该单词相同的基本单词,则静态编码单元103确定该单词在比特过滤器C1中产生命中。
图5是示出了动态词典信息的数据结构的一个示例的图。动态词典信息104包括与图1中所示的动态词典有关的信息。如图5所示,这个动态词典信息104包括动态比特过滤器D1、动态词典部分D2和缓冲器D3。
动态比特过滤器D1包括二元文法、位图和第一指针。动态词典部分D2包括动态词典10至动态词典13。各个动态词典10至动态词典13将动态代码、第二指针和链接区域相关联。缓冲器D3存储在使用动态代码编码之前的单词。
动态比特过滤器D1的二元文法是表示两个字符(或两个单词)的字符串的信息。位图表示与二元文法的字符串相对应的位图。例如,与“aa”相对应的位图是“0_0_0_0_0”。第一指针是指示与位图相对应的动态代码的位置的指针。与位图和第一指针有关的其他说明类似于对图4中表示的位图和指针的说明。
动态词典部分D2的动态代码是分配给存储在缓冲器D3中的单词的代码。第二指针是指示其中存储有与动态代码相对应的单词的缓冲器D3的位置的信息。例如,与动态代码“A100h”相对应的第二指针指示存储在缓冲器D3中的“Mickey”的开始位置。例如,这表示单词“Mickey”被动态编码为动态代码“A100h”。
动态词典部分D2的链接区域是指示相关字符串等是否与比特过滤器的指针链接的信息。如果相关字符串等未链接,则在链接区域中设置“NULL”。
图6是示出了类型表的数据结构的一个示例的图。如图6所示,这个类型表105包括表105a、代码分配指针105b和管理信息105c。表105a将地址、属性信息和指针进行关联。地址表示分配给与相关属性信息对应的动态词典的地址。属性信息表示单词的上述属性信息。指针指示与属性信息相对应的动态词典的位置。
代码分配指针105b是指示针对每个动态词典的分配给该动态词典的动态代码之中的未使用的动态代码的头部的指针。例如,将对图5所示的动态词典11进行说明。假设动态代码“A100h至A1FFh”被分配给动态词典11,并且这些代码中的动态代码“A100h”被分配给“Mickey”的动态代码。在这种情况下,动态代码“A101h”被设置在代码分配指针105b中。同样,关于其他动态词典,以类似的方式设置指示分配给动态词典的动态代码中未使用的动态代码的头部的指针。
管理信息105c是管理关于每个动态词典的要分配给动态词典的剩余单词数的信息。在本实施方式1中表示的示例中,假设代码区域以“256个区域”为单位被分配给每个动态词典,并且单词被登记。此外,管理信息105c包括关于指示未分配给动态词典的动态代码的位置(未使用的位置)的指针的信息。
返回参照图3,动态编码单元106是将动态代码分配至未由静态编码单元103分配静态代码的单词并进行动态编码的处理单元。动态编码单元106将与该单词对应的动态代码输出到文件写入单元107。下面将描述动态编码单元106的处理的一个示例。
首先,将描述其中动态编码单元106对未在动态词典信息104中登记的单词进行动态编码的情况。当从静态编码单元103获取单词时,动态编码单元106将该单词的属性信息与类型表105进行比较,并且确定与该单词的属性信息相对应的动态词典的位置。动态编码单元106将分配给所确定的动态词典的动态代码当中未分配给其他单词的前导动态代码分配给该单词。此外,动态编码单元106将该单词存储在缓冲器D3中,并将第二指针设置为该单词被存储的位置。此外,动态编码单元106根据与该单词相对应的动态代码的位置来更新动态比特过滤器D1的第一指针。
例如,将描述动态编码单元106对未在动态词典信息104中登记的单词“Mickey”进行动态编码的情况。动态编码单元106将单词“Mickey”的属性信息“未知单词”与图6所示的类型表105进行比较,并且确定与属性信息“未知单词”相对应的动态词典11的位置。
动态编码单元106将分配给动态词典11的动态代码“A100h至A1FFh”中的未分配给其他单词的前导动态代码分配给单词“Mickey”。在图5所示的示例中,动态编码单元106将动态代码“A100h”分配给单词“Mickey”。动态编码单元106将单词“Mickey”存储在缓冲器D3中,并将与动态代码“A100h”相对应的第二指针指定为单词“Mickey”被存储的位置。此外,动态编码单元106更新动态比特过滤器D1。动态编码单元106将分配给单词“Mickey”的动态代码“A100h”输出到文件写入单元107。
随后,将描述其中动态编码单元106对在动态词典信息104中登记的单词进行动态编码的情况。例如,动态编码单元106通过执行以下处理来确定作为动态编码的目标的单词是否登记在动态词典信息104中。动态编码单元106将作为动态编码的目标的单词与动态比特过滤器D1进行比较,并识别由第一指针指示的动态词典部分D2的位置。如果与作为动态编码的目标的单词相同的单词被存储在由与所识别的位置相对应的第二指针指示的缓冲器D3的位置处,则动态编码单元106确定作为动态编码的目标的单词被登记在动态词典信息104中。另一方面,如果没有存储与作为动态编码的目标的单词相同的单词,则动态编码单元106执行上述处理,因为作为动态编码的目标的单词未被登记。
例如,将描述其中动态编码单元106对在动态词典信息104中登记的单词“Mickey”进行动态编码的情况。当动态编码单元106将单词“Mickey”与动态比特过滤器D1进行比较并且参考由动态代码“A100h”的第二指针指示的缓冲器D3的位置时,“Mickey”被存储并且这些单词彼此相对应。因此,动态编码单元106将分配给“Mickey”的动态代码“A100h”输出到文件写入单元107。
文件写入单元107是获取与单词对应的静态代码和动态代码并将所获取的静态代码和动态代码写入编码文件F2的编码数据部分1b的处理单元。此外,文件写入单元107在头部部分1a中存储关于单词的出现频率的信息。文件写入单元107将动态词典信息104等存储在尾部部分1c中。
图7是示出了根据本实施方式1的解压缩单元的配置的一个示例的功能框图。如图7所示,这个解压缩单元100b包括文件读取单元201、自动机生成单元202、解压缩处理单元204和文件写入单元205。此外,解压缩单元100b例如包括第一自动机203a、第二自动机203b、第三自动机203c、第四自动机203d和第五自动机203e。
文件读取单元201是读出存储在编码文件F2的编码数据部分1b中的代码的处理单元。文件读取单元201将读出的代码输出到解压缩处理单元204。此外,文件读取单元201读出存储在头部部分1a中的单词的出现频率的信息,并将该信息输出到自动机生成单元202。文件读取单元201读出存储在尾部部分1c中的动态词典信息104,并将动态词典信息104输出到自动机生成单元202。
自动机生成单元202生成基于关于单词出现频率的信息来将静态代码转换为单词的第一自动机203a。此外,自动机生成单元202生成基于动态词典信息104来将动态代码转换为单词的第二自动机203b至第五自动机203e。
第一自动机203a是将静态代码与单词(高频词)相关联的自动机。例如,如果代码的前四位包括在“0h(0000)至9h(1001)”中,则通过第一自动机203a和代码之间的比较来识别该单词。
第二自动机203b是将动态代码与单词(低频词)相关联的自动机。对应于与属性信息“低频词”相对应的动态词典10来生成第二自动机203b。例如,如果代码的前16位包括在“A000h至A0FFh”中,则通过第二自动机203b和代码之间的比较来识别该单词(低频词)。
第三自动机203c是将动态代码与单词(未知单词)相关联的自动机。对应于与属性信息“未知单词”相对应的动态词典11来生成第三自动机203c。例如,如果代码的前16位包括在“A100h至A1FFh”中,则通过第三自动机203c与代码的比较来识别单词(未知单词)。
第四自动机203d是将动态代码与单词(数值)相关联的自动机。对应于与属性信息“数值”相对应的动态词典12来生成第四自动机203d。例如,如果代码的前16位包括在“A200h至A2FFh”中,则通过第四自动机203d和代码的比较来识别单词(数值)。
第五自动机203e是将动态代码与单词(标签)相关联的自动机。对应于与属性信息“标签”相对应的动态词典13来生成第五自动机203e。例如,如果代码的前16位包括在“A300h至A3FFh”中,则通过第五自动机203e和代码之间的比较来识别单词(标签)。
解压缩处理单元204是处理单元,其基于从文件读取单元201获取的代码和第一自动机203a至第五自动机203e来识别与代码对应的单词。例如,如果代码的前四位包括在“0h(0000)至9h(1001)”中,则解压缩处理单元204通过第一自动机203a和代码之间的比较来识别与代码相对应的单词。
如果代码的前16位包括在“A000h至A0FFh”中,则解压缩处理单元204通过第二自动机203b与代码之间的比较来识别单词(低频词)。
如果代码的前16位包括在“A100h至A1FFh”中,则解压缩处理单元204通过第三自动机203c和代码之间的比较来识别单词(未知单词)。
如果代码的前16位包括在“A200h至A2FFh”中,则解压缩处理单元204通过第四自动机203d和代码之间的比较来识别单词(数值)。
如果代码的前16位包括在“A300h至A3FFh”中,则解压缩处理单元204通过第五自动机203e和代码之间的比较来识别单词(标签)。
解压缩处理单元204通过对从文件读取单元201读出的代码重复执行上述处理来依次识别与代码对应的单词,并且将所识别的单词输出到文件写入单元205。
文件写入单元205是将从解压缩处理单元204获取的解码单词存储在解压缩文件F3中的处理单元。
接下来,将描述根据本实施方式1的编码单元100a的处理过程。图8是示出根据本实施方式1的编码单元的处理过程的流程图。如图8所示,编码单元100a的文件读取单元101以单词为单位读取编码目标的文本文件F1(步骤S101)。
编码单元100a的静态编码单元103确定该单词是否是高频词(步骤S102)。例如,在步骤S102中,如果该单词在静态词典C2中产生命中,则静态编码单元103确定该单词是高频词。
如果该单词是高频词(步骤S102,是),则静态编码单元103通过静态词典C2进行编码(步骤S103)。静态编码单元103将与该单词对应的静态代码输出到文件写入单元107(步骤S104),并转移到步骤S109。另一方面,如果该单词不是高频词(步骤S102,否),则静态编码单元103转移到步骤S105。
编码单元100a的动态编码单元106基于类型表105从多个动态词典中确定与单词的属性信息对应的动态词典(步骤S105)。动态编码单元106将该单词登记在所确定的动态词典的区域中,并且将动态代码分配给该单词(步骤S106)。动态编码单元106通过动态词典进行编码(步骤S107),并将与该单词对应的动态代码输出到文件写入单元107(步骤S108)。
文件写入单元107将代码(静态代码或动态代码)写入编码文件F2的编码数据部分1b(步骤S109)。编码单元100a确定是否已经到达文本文件F1的结束点(步骤S110)。如果尚未到达文本文件F1的结束点(步骤S110,否),则编码单元100a转移到步骤S101。
如果已经到达文本文件F1的结束点(步骤S110,是),则文件写入单元107在编码文件F2的头部部分1a中存储关于该单词的出现频率的信息并且在尾部部分1c中存储动态词典信息104(步骤S111)。
接下来,将描述根据本实施方式1的解压缩单元100b的处理过程。图9是示出根据本实施方式1的解压缩单元的处理过程的流程图。如图9所示,解压缩单元100b的自动机生成单元202生成第一自动机203a至第五自动机203e(步骤S201)。文件读取单元201读取编码文件F2(步骤S202)。
解压缩单元100b的解压缩处理单元204获取代码(步骤S203),并将代码的前四位的值与第一自动机203a进行比较(步骤S204)。如果获得第一自动机203a中的命中(步骤S205,是),则解压缩处理单元204选择第一自动机203a(步骤S206)。解压缩处理单元204基于第一自动机203a将代码转换为单词(步骤S207),并且转移到步骤S210。
另一方面,如果没有获得第一自动机203a中的命中(步骤S205,否),则解压缩处理单元204转移到步骤S208。解压缩处理单元204将代码的头部至第16位的值与每个自动机进行比较,并选择第二自动机203b至第五自动机203e中的相应自动机(步骤S208)。
解压缩处理单元204基于所选自动机将代码转换为单词(步骤S209)。解压缩处理单元204确定编码文件F2的解码是否结束(步骤S210)。如果编码文件F2的解码尚未结束(步骤S210,否),则解压缩处理单元204转移到步骤S203。
如果编码文件F2的解码已经结束(步骤S210,是),则解压缩处理单元204将解码数据写入解压缩文件F3(步骤S211)。
接下来,将描述根据本实施方式1的编码单元100a的效果。编码单元100a确定与文本文件F1中所包括的单词的属性信息相对应的动态词典,并且通过使用所确定的动态词典来进行动态编码。这允许基于单词的属性信息来区分其中单词与动态代码相关联的动态词典,因此可以有效地使用动态词典。例如,基于单词的属性信息,将与动态代码对应的单词区分地登记在各个动态词典中。因此,在进行解码的情况下,可以通过使用与相关动态词典对应的自动机来进行解码。
[实施方式2]
图10是示出根据本实施方式2的信息处理装置的编码处理的一个示例的图。信息处理装置是编码装置的一个示例。信息处理装置读出编码目标的文件F4,并且经由通过静态词典进行静态编码和通过动态词典进行动态编码来生成编码文件F5。静态词典是其中具有高出现频率的单词与静态代码相关联的信息。
在本实施方式2中说明的文件F4是其中多个单词由分隔符分隔成多列的文件。在图10所示的示例中,列20a、列21a和列22a被包括在文件F4中。单词“产品编号”“1242”“2342”和“3324”被包括在列20a中。单词“角色名称”“Mickey”“Alice”和“Becky”被包括在列21a中。单词“单价”“50”“500”和“450”被包括在列22a中。
信息处理装置从文件F4中读出单词并执行用静态代码替换在静态词典中产生命中的单词的处理。假设包含在文件F4中的单词由空格分隔。假设包含在文件F4中的单词“产品编号”“角色名称”和“单价”中的每个是在静态词典中产生命中的单词。信息处理装置将每个单词转换为静态代码。这里,为了便于说明,与单词“产品编号”“角色名称”和“单价”对应的静态代码分别被表示为“(产品编号)”“(角色名称)”和“(单价)”。
信息处理装置从文件F4中读出单词。然后,关于在静态词典中没有产生命中的单词,信息处理装置从多个动态词典中确定与该单词的属性信息相对应的动态词典,并且通过使用所确定的动态词典来进行动态编码。信息处理装置将单词登记在与单词的属性信息相对应的动态词典中,并且将动态代码分配给单词以用动态代码替换该单词。
在图10所示的示例中,存在与各种属性信息对应的动态词典20至动态词典22。尽管在图10中示出了动态词典20至动态词典22,不过可以存在与其他种类的属性信息对应的动态词典。动态词典20是当“列20a的单词”经受动态编码时使用的动态词典。例如,将“A000h至A0FFh”的动态代码分配给动态词典20。动态词典21是当“列21a的单词”经受动态编码时使用的动态词典。例如,将“A100h至A1FFh”的动态代码分配给动态词典21。动态词典22是当“列22a的单词”经受动态编码时使用的动态词典。例如,将“A200h至A2FFh”的动态代码分配给动态词典22。
信息处理装置通过使用类型表25来确定与属性信息对应的动态词典。类型表25将属性信息与指针相关联。指针是指示与属性信息对应的动态词典的信息。例如,如果属性信息是“列20a的单词”,则指针指示动态词典20的位置。如果属性信息是“列21a的单词”,则指针指示动态词典21的位置。如果属性信息是“列22a的单词”,则指针指示动态词典22的位置。
假定包括在文件F4的列20a中的各个单词“1242”“2342”和“3324”是在静态词典中没有产生命中的单词。信息处理装置从动态词典20至动态词典22中确定与属性信息“列20a的单词”相对应的动态词典20。信息处理装置通过分别将相应的动态代码“A000h”“A001h”和“A002h”分配给相应的单词“1242”“2342”和“3324”来进行动态编码。
假设包括在文件F4的列21a中的各个单词“Mickey”“Alice”和“Becky”是在静态词典中没有产生命中的单词。信息处理装置从动态词典20至动态词典22中确定与属性信息“列21a的单词”相对应的动态词典21。信息处理装置通过分别将相应的动态代码“A100h”“A101h”和“A102h”分配给相应的单词“Mickey”“Alice”和“Becky”来进行动态编码。
假设包括在文件F4的列22a中的相应单词“50”“500”和“450”是在静态词典中没有产生命中的单词。信息处理装置从动态词典20至动态词典22中确定与属性信息“列22a的单词”相对应的动态词典22。信息处理装置通过分别将相应的动态代码“A200h”“A201h”和“A202h”分配给相应的单词“50”“500”和“450”来进行动态编码。
信息处理装置通过执行上述处理将文件F4编码为编码文件F5。头部部分2a、编码数据部分2b和尾部部分2c被包括在编码文件F5中。关于单词的出现频率等的信息被包括在头部部分2a中。由信息处理装置生成的编码数据被存储在编码数据部分2b中。关于动态词典20至动态词典22等的信息被包括在尾部部分2c中。
根据本实施方式2的信息处理装置确定与文件F4中所包括的单词的属性信息(列的位置)相对应的动态词典,并且通过使用所确定的动态词典来进行动态编码。这允许基于单词的属性信息来区分其中单词与动态代码相关联的动态词典,因此可以有效地使用动态词典。
图11是示出了根据本实施方式2的信息处理装置的配置的功能框图。如图11所示,这个信息处理装置300包括编码单元300a、解压缩单元300b和存储单元300c。编码单元300a是登记单元和编码单元的一个示例。
编码单元300a是执行图10中表示的编码处理的处理单元。解压缩单元300b是对由编码单元300a编码的编码文件进行解压缩(解码)的处理单元。存储单元300c是存储编码目标的文件F4、通过编码处理获得的编码文件F5、通过解压缩编码文件F5获得的解压缩文件F6等的存储单元。存储单元300c对应于诸如RAM、ROM和闪存的半导体存储元件以及诸如HDD的存储装置。
图12是示出根据本实施方式2的编码单元的配置的一个示例的功能框图。如图12所示,这个编码单元300a包括文件读取单元301、静态词典信息302和静态编码单元303。编码单元300a包括动态词典信息304、类型表305、动态编码单元306和文件写入单元307。
文件读取单元301是读出存储在存储单元300c中并成为编码目标的文件F4的内容部分的数据的处理单元。文件读取单元301将读出的数据输出到静态编码单元303。
静态词典信息302是其中具有高出现频率的单词与静态代码相关联的信息。关于静态词典信息302的说明与关于在本实施方式1中说明的静态词典信息102的说明类似。
静态编码单元303是处理单元,其将文件读取单元301的文件F4的内容的数据与静态词典信息302的比特过滤器C1进行比较,并且通过静态代码替换在比特过滤器C1中产生命中的单词。静态编码单元303将与单词相对应的静态代码输出到文件写入单元307。关于静态编码单元303的其他说明类似于与静态编码单元103有关的说明。
图13是示出了动态词典信息的数据结构的一个示例的图。动态词典信息304包括与图10中所示的动态词典有关的信息。如图13所示,这个动态词典信息304包括动态比特过滤器D1、动态词典部分D2和缓冲器D3。
动态比特滤波器D1包括二元文法、位图和第一指针。动态词典部分D2包括动态词典20至动态词典22。各个动态词典20至动态词典22将动态代码、第二指针和链接区域相关联。缓冲器D3存储在用动态代码编码之前的单词。
动态比特过滤器D1的二元文法是表示两个字符(或两个单词)的字符串的信息。位图表示与二元文法的字符串相对应的位图。例如,与“aa”相对应的位图是“0_0_0_0_0”。第一指针是指示与位图相对应的动态代码的位置的指针。与位图和第一指针有关的其他说明类似于对图4中表示的位图和指针的说明。
动态词典部分D2的动态代码是分配给存储在缓冲器D3中的单词的代码。第二指针是指示其中存储有与动态代码相对应的单词的缓冲器D3的位置的信息。例如,与动态代码“A000h”相对应的第二指针指示存储在缓冲器D3中的“1242”的开始位置。例如,这表示单词“1242”被动态编码为动态代码“A000h”。
动态词典部分D2的链接区域是指示相关字符串等是否与比特过滤器的指针链接的信息。如果相关字符串等未链接,则在链接区域中设置“NULL”。
图14是示出了类型表的数据结构的一个示例的图。如图14所示,这个类型表305包括表305a、代码分配指针305b和管理信息305c。表305a将地址、属性信息和指针相关联。地址表示分配给与相关属性信息对应的动态词典的地址。属性信息表示该单词的上述属性信息。指针指示与属性信息相对应的动态词典的位置。
代码分配指针305b是指示关于每个动态词典的分配给该动态词典的动态代码中未使用的动态代码的头部的指针。例如,将针对图13中所示的动态词典20进行说明。假设动态代码“A000h至A0FFh”被分配给动态词典20并且这些代码中的动态代码“A000h”“A001h”和“A002h”被分配给“1242”“2342”和“3324”的动态代码。在这种情况下,动态代码“A003h”被设置在代码分配指针305b中。同样关于其他动态词典,以类似的方式设置指示分配给动态词典的动态代码中未使用的动态代码的头部的指针。
管理信息305c是管理关于每个动态词典的要分配给动态词典的剩余单词数的信息。在本实施方式2所示的示例中,假设在各动态词典中登记最多“256”个单词。另外,管理信息305c包括关于指针的信息,该指针指示未分配给动态词典的动态代码的位置(未使用的位置)。
返回参照图12,动态编码单元306是对静态编码单元303未分配静态代码的单词分配动态代码并进行动态编码的处理单元。动态编码单元306将与单词相对应的动态代码输出到文件写入单元307。在下文中,将描述动态编码单元306的处理的一个示例。
首先,将描述其中动态编码单元306对未在动态词典信息304中登记的单词进行动态编码的情况。当从静态编码单元303获取单词时,动态编码单元306将该单词的属性信息与类型表305进行比较,并确定与该单词的属性信息相对应的动态词典的位置。动态编码单元306将分配给所确定的动态词典的动态代码当中未分配给另一单词的前导动态代码分配给该单词。此外,动态编码单元306将该单词存储在缓冲器D3中,并将第二指针设置至该单词被存储的位置。此外,动态编码单元306根据与单词对应的动态代码的位置来更新动态比特过滤器D1的第一指针。
例如,将对其中动态编码单元306对未在动态词典信息304中登记的单词“1242”进行动态编码的情况进行描述。动态编码单元306将单词“1242”的属性信息“列20a的单词”与图14所示的类型表305进行比较并且确定与属性信息“列20a的单词”相对应的动态词典20的位置。
动态编码单元306将分配给动态词典20的动态代码“A000h至A0FFh”当中的未分配给另一单词的前导动态代码分配给单词“1242”。在图13所示的示例中,动态编码单元306将动态代码“A000h”分配给单词“1242”。动态编码单元306将单词“1242”存储在缓冲器D3中,并将与动态代码“A000h”对应的第二指针指定至单词“1242”的存储位置。此外,动态编码单元306更新动态比特过滤器D1。动态编码单元306将分配给单词“1242”的动态代码“A000h”输出到文件写入单元307。
随后,将描述其中动态编码单元306对在动态词典信息304中登记的单词进行动态编码的情况。例如,动态编码单元306通过执行以下处理来确定作为动态编码的目标的单词是否为被登记在动态词典信息304中。动态编码单元306将作为动态编码的目标的单词与动态比特过滤器D1进行比较,并识别由第一指针指示的动态词典部分D2的位置。如果与作为动态编码的目标的单词相同的单词被存储在由与识别的位置对应的第二指针所指示的缓冲器D3的位置处,则动态编码单元306确定作为动态编码的目标的单词被登记在动态词典信息304中。另一方面,如果没有存储与作为动态编码的目标的单词相同的单词,则动态编码单元306执行上述处理,因为作为动态编码的目标的单词未被登记。
例如,将描述其中动态编码单元306对登记在动态词典信息304中的单词“1242”进行动态编码的情况。当动态编码单元306将单词“1242”与动态比特过滤器D1进行比较并且参考由动态代码“A000h”的第二指针指示的缓冲器D3的位置时,存储“1242”并且这些单词彼此对应。因此,动态编码单元306将分配给“1242”的动态代码“A000h”输出到文件写入单元307。
文件写入单元307是获取与单词对应的静态代码和动态代码并将所获取的静态代码和动态代码写入编码文件F5的编码数据部分2b的处理单元。此外,文件写入单元307将关于单词的出现频率的信息存储在头部部分2a中。文件写入单元307将动态词典信息304等存储在尾部部分2c中。
图15是示出了根据本实施方式2的解压缩单元的配置的一个示例的功能框图。如图15所示,这个解压缩单元300b包括文件读取单元401、自动机生成单元402、解压缩处理单元404和文件写入单元405。此外,解压缩单元300b例如包括第一自动机403a、第二自动机403b、第三自动机403c以及第四自动机403d。
文件读取单元401是读出存储在编码文件F5的编码数据部分2b中的代码的处理单元。文件读取单元401将读出的代码输出到解压缩处理单元404。此外,文件读取单元401读出存储在头部部分2a中的关于单词的出现频率的信息,并将该信息输出到自动机生成单元402。文件读取单元401读出存储在尾部部分2c中的动态词典信息304并将动态词典信息304输出到自动机生成单元402。
自动机生成单元402生成基于关于单词出现频率的信息将静态代码转换为单词的第一自动机403a。此外,自动机生成单元402生成基于动态词典信息304将动态代码转换为单词的第二自动机403b至第四自动机403d。
第一自动机403a是将静态代码与单词(高频词)相关联的自动机。例如,如果代码的前四位被包括在“0h(0000)到9h(1001)”中,则通过第一自动机403a和代码之间的比较来识别该单词。
第二自动机403b是将动态代码与单词(列20a的单词)相关联的自动机。对应于与属性信息“列20a的单词”相对应的动态词典20来生成第二自动机403b。例如,如果代码的前16位被包括在“A000h至A0FFh”中,则通过第二自动机403b与代码之间的比较来识别单词(列20a的单词)。
第三自动机403c是将动态代码与单词(列21a的单词)相关联的自动机。对应于与属性信息“列21a的单词”相对应的动态词典21来生成第三自动机403c。例如,如果代码的前16位被包括在“A100h至A1FFh”中,则通过第三自动机403c和代码之间的比较来识别单词(列21a的单词)。
第四自动机403d是将动态代码与单词(列22a的单词)相关联的自动机。对应于与属性信息“列22a的单词”相对应的动态词典22来生成第四自动机403d。例如,如果代码的前16位被包括在“A200h至A2FFh”中,则通过第四自动机403d与代码之间的比较来识别单词(列22a的单词)。
解压缩处理单元404是处理单元,其基于从文件读取单元401获取的代码和第一自动机403a至第四自动机403d来识别与代码对应的单词。例如,如果代码的前四位包括在“0h(0000)至9h(1001)”中,则解压缩处理单元404通过第一自动机403a和代码之间的比较来识别与代码相对应的单词。
如果代码的前16位包括在“A000h至A0FFh”中,则解压缩处理单元404通过第二自动机403b和代码之间的比较来识别单词(列20a的单词)。
如果代码的前16位包括在“A100h至A1FFh”中,则解压缩处理单元404通过第三自动机403c和代码之间的比较来识别单词(列21a的单词)。
如果代码的前16位包括在“A200h至A2FFh”中,则解压缩处理单元404通过第四自动机403d和代码之间的比较来识别单词(列22a的单词)。
解压缩处理单元404通过对从文件读取单元401读出的代码重复执行上述处理来依次识别与代码对应的单词,并将所识别的单词输出到文件写入单元405。
文件写入单元405是将从解压缩处理单元404获取的解码单词存储在解压缩文件F6中的处理单元。
接下来,将描述根据本实施方式2的编码单元300a的处理过程。图16是示出了根据本实施方式2的编码单元的处理过程的流程图。如图16所示,编码单元300a的文件读取单元301以单词为单位读取编码目标的文件F4(步骤S301)。
编码单元300a的静态编码单元303确定单词是否是高频词(步骤S302)。例如,在步骤S302中,如果该单词在静态词典C2中产生命中,则静态编码单元303确定该单词是高频词。
如果该单词是高频词(步骤S302,是),则静态编码单元303通过静态词典C2进行编码(步骤S303)。静态编码单元303将与单词对应的静态代码输出到文件写入单元307(步骤S304),并转移到步骤S309。另一方面,如果该单词不是高频词(步骤S302,否),则静态编码单元303转移到步骤S305。
编码单元300a的动态编码单元306基于类型表305从多个动态词典中确定与单词的属性信息相对应的动态词典(步骤S305)。动态编码单元306将该单词登记在所确定的动态词典的区域中,并将动态代码分配给该单词(步骤S306)。动态编码单元306通过动态词典进行编码(步骤S307),并将与该单词对应的动态代码输出至文件写入单元307(步骤S308)。
文件写入单元307将代码(静态代码或动态代码)写入编码文件F5的编码数据部分2b(步骤S309)。编码单元300a确定是否已经到达文件F4的结束点(步骤S310)。如果尚未到达文件F4的结束点(步骤S310,否),则编码单元300a转移到步骤S301。
如果已经到达文件F4的结束点(步骤S310,是),则文件写入单元307将关于单词的出现频率的信息存储在编码文件F5的头部部分2a中,并且将动态词典信息304存储在尾部部分2c中(步骤S311)。
接下来,将描述根据本实施方式2的解压缩单元300b的处理过程。图17是示出了根据本实施方式2的解压缩单元的处理过程的流程图。如图17所示,解压缩单元300b的自动机生成单元202生成第一自动机403a至第四自动机403d(步骤S401)。文件读取单元401读取编码文件F5(步骤S402)。
解压缩单元300b的解压缩处理单元404获取代码(步骤S403),并将代码的前四位的值与第一自动机403a进行比较(步骤S404)。如果获得第一自动机403a中的命中(步骤S405,是),则解压缩处理单元404选择第一自动机403a(步骤S406)。解压缩处理单元404基于第一自动机403a将代码转换为单词(步骤S407),并转移到步骤S410。
另一方面,如果没有获得第一自动机403a中的命中(步骤S405,否),则解压缩处理单元404转移到步骤S408。解压缩处理单元404将代码的头部至第16位的值与各个自动机进行比较,并选择第二自动机403b至第四自动机403d中的相应自动机(步骤S408)。
解压缩处理单元404基于所选择的自动机将代码转换为单词(步骤S409)。解压缩处理单元404确定编码文件F5的解码是否结束(步骤S410)。如果编码文件F5的解码尚未结束(步骤S410,否),则解压缩处理单元404转移到步骤S403。
如果编码文件F5的解码已经结束(步骤S410,是),则解压缩处理单元404将解码数据写入解压缩文件F6(步骤S411)。
接下来,将描述根据本实施方式2的编码单元300a的效果。编码单元300a确定与文件F4中所包括的单词的属性信息(包括单词的列)对应的动态词典,并通过使用所确定的动态词典来进行动态编码。这允许基于单词的属性信息来区分其中单词与动态代码相关联的动态词典,因此可以有效地使用动态词典。例如,基于单词的属性信息,将与动态代码对应的单词区分地登记在相应的动态词典中。因此,在进行解码的情况下,可以通过使用与相关动态词典相对应的自动机来进行解码。
此外,尽管根据本实施方式2的编码单元300a使用作为编码目标的单词的列作为属性信息并且确定与属性信息相对应的动态词典,但是配置不限于此。例如,在对具有分层结构的文本数据进行编码的情况下,编码单元300a可以使用该单词所属的层级的位置作为属性信息。
例如,将描述当对具有第一层级至第三层级的文本数据编码时编码单元300a的处理的一个示例。在对属于第一层级的单词进行动态编码的情况下,编码单元300a将该单词登记在动态词典20中,并为该单词分配动态代码。在对属于第二层级的单词进行动态编码的情况下,编码单元300a将该单词登记在动态词典21中,并为该单词分配动态代码。在对属于第三层级的单词进行动态编码的情况下,编码单元300a将该单词登记在动态词典22中并为该单词分配动态代码。
如上所述,编码单元300a确定与具有分层结构的文本数据中所包括的单词的属性信息(该单词所在的层级)对应的动态词典,并通过使用所确定的动态词典来进行动态编码。这允许基于单词的属性信息来区分其中单词与动态代码相关联的动态词典,因此可以有效地使用动态词典。
顺便提及,在对单词进行动态编码的情况下,上述编码单元100a(300a)可以通过执行下面将要描述的处理来减少存储在缓冲器D3中的数据量。
图18是用于说明编码单元的另一种处理的图。在图18所示的示例中,编码单元100a读出编码目标的文本文件F1,并经由通过静态词典进行静态编码和通过动态词典进行动态编码来生成编码文件F2。这里,在进行动态编码的情况下,编码单元100a通过搜索存储在缓冲器D3中的每个单词来寻找最长的匹配字符串并且将动态代码分配给最长的匹配字符串来减少数据量。
关于利用图18说明的示例,将通过使用动态词典31和动态词典32进行说明。动态词典31是当属性信息“标签”的单词经受动态编码时使用的动态词典。动态词典32是当“最长匹配字符串”经受动态编码时使用的动态词典。
编码单元100a从文本文件F1中读出单词“<a href=″#link01″>”,并选择与该单词的属性信息“标签”相对应的动态词典31。编码单元100a分配动态代码“A100h”并将单词“<a href=″#link01″>”存储在缓冲器D31中。编码单元100a将与动态代码“A100h”相对应的第二指针设置在存储在缓冲器D31中的“<a href=”#link01″>“的开始位置处。编码单元100a将动态代码“A100h”存储在编码文件F2的编码数据部分1b中。
编码单元100a从文本文件F1中读出单词“<a href=″#link012″>”,并选择与该单词的属性信息“标签”相对应的动态词典31。编码单元100a分配动态代码“A101h”并将单词“<a href=″#link012″>”存储在缓冲器D31中。编码单元100a将与动态代码“A101h”相对应的第二指针设置在存储在缓冲器D31中的“<a href=”#link012″>”的开始位置处。编码单元100a将动态代码“A101h”存储在编码文件F2的编码数据部分1b中。
随后,编码单元100a搜索与存储在缓冲器D31中的字符串“<a href=″#link01″><a href=″#link012″>”有关的最长匹配字符串。在这种情况下,“<a href=”#link01”是最长的匹配字符串。
编码单元100a通过使用动态词典32将动态代码分配给最长匹配字符串“<a href=#link01”。例如,编码单元100a将动态代码“A200h”分配给最长匹配字符串“<a href=″#link01"。编码单元100a通过使用动态代码将存储在缓冲器D31中的字符串更新为“<a href=″#link01″>A200h2″>”。例如,编码单元100a将登记在缓存器D31中的字符串所包含的相同最长匹配字符串中的第2或之后的最长匹配字符串转换为动态代码。
编码单元100a将最长匹配字符串“<a href=#link01”存储在缓冲器D32中,并将与动态代码“A200h”相对应的第二指针设置在存储在缓冲器D32中的“<a href='#link01”的开始位置处。
如上所述,在进行动态编码的情况下,编码单元100a可以通过搜索存储在缓冲器D31中的每个单词来搜索最长匹配字符串并将动态代码分配给最长匹配字符串来减少数据量。
下面将描述用于本实施方式的硬件和软件。图19是示出了计算机的硬件配置示例的图。计算机400例如包括处理器401、RAM 402、ROM 403、驱动装置404、存储介质405、输入接口(I/F)406、输入装置407、输出接口F 408、输出装置409、通信接口410、存储区域网络(SAN)接口411以及总线412。各个硬件通过总线412连接。
RAM 402是可读写的存储装置,并且使用诸如静态RAM(SRAM)或动态RAM(DRAM)的半导体存储器。替选地,使用闪存等替代RAM。ROM 403还包括可编程ROM(PROM)等。驱动装置404是对记录在存储介质405中的信息进行读取和写入中的至少一个的装置。存储介质405存储由驱动装置404写入的信息。存储介质405例如是硬盘、诸如固态驱动器(SSD)的闪速存储器、或诸如光盘(CD)、数字多功能盘(DVD)或蓝光盘的存储介质。此外,例如,计算机400针对多种存储介质中的每一种设置有驱动装置404和存储介质405。
输入接口406是耦接到输入装置407并且将从输入装置407接收的输入信号发送至处理器401的电路。输出接口408是耦接到输出装置409并且使输出装置409根据处理器401的指示执行输出的电路。通信接口410是通过网络413进行通信控制的电路。通信接口410例如是网络接口卡(NIC)。SAN接口411是对通过存储区域网络耦接至计算机400存储装置的通信进行控制的电路。例如,SAN接口411是主机总线适配器(HBA)。
输入装置407是根据操作发送输入信号的装置。输入装置407是附接至计算机400的主体的按键装置例如键盘、按钮以及诸如鼠标、触摸板的指示装置。输出装置409是根据计算机400的控制输出信息的装置。输出装置409是诸如显示器的图像输出装置(显示装置)以及诸如扬声器的声音输出装置。另外,诸如触摸屏的输入输出装置被用作输入装置407和输出装置409。另外,输入装置407和输出装置409可以与计算机400集成在一起,或者也可以是例如不包括在计算机400中并且从外部连接到计算机400的装置。
例如,处理器401将存储在ROM 403或存储介质405中的程序读出到RAM402中,并且根据读出程序的处理执行编码单元100a(300a)的处理或者解压缩单元100b(300b)的处理。此时,RAM 402被用作处理器401的工作区域。存储单元100c的功能通过经由ROM 403和存储介质405存储程序文件(稍后要描述的应用程序54、中间件53和操作系统(OS)52)等)和数据文件(压缩目标的文件F1、压缩编码文件F2等)以及使用RAM 402作为处理器401的工作区域来实现。将通过使用图20来描述由处理器401读出的程序。
图20示出了在计算机上操作的程序的配置示例。在计算机400中,控制图19所示的硬件组51(401至411)的OS 52操作。处理器401根据OS 52在过程中操作,并且进行硬件组51的控制和管理。由此,在硬件组51中执行根据应用程序54或中间件53的处理。此外,在计算机400中,中间件53或应用程序54由RAM 402读出以供处理器401来执行。
当调用编码处理功能时,处理器401基于中间件53或应用程序54的至少一部分执行处理(基于用于处理的OS 52来控制硬件组51)。由此,实现编码单元100a(300a)的功能。此外,当调用解压缩功能时,处理器401基于中间件53或应用程序54的至少一部分来执行处理(基于用于处理的OS 52来控制硬件组51)。由此,实现解压缩单元100b(300b)的功能。编码处理功能和解压缩功能可以各自被包括在应用程序54自身中,或者可以是通过根据应用程序54被调用而执行的中间件53的一部分。
图21是示出了实施方式的系统中的装置的配置示例的图。图21的系统包括计算机50a、计算机50b、基站60和网络413。计算机50a至少基于无线系统或有线系统耦接到与计算机50b耦接的网络413。
图2所示的编码单元100a和解压缩单元100b可以被包括在图21所示的计算机50a或计算机50b中。计算机50b可以包括编码单元100a,并且计算机50a可以包括解压缩单元100b。替选地,计算机50a可以包括编码单元100a并且计算机50b可以包括解压缩单元100b。此外,计算机50a和计算机50b二者都可以包括编码单元100a和解压缩单元100b。
下面将描述上述实施方式中的部分修改示例。除了下面要描述的修改示例之外,可以在不偏离本公开的精神的范围内根据需要作出设计变化。除了文件中的数据之外,编码处理的目标可以是从系统输出的监视消息等。例如,通过上述编码处理对依次存储在缓冲器中的监视消息进行编码并将监视消息存储为日志文件等的处理被执行。此外,例如,编码可以以数据库中的页为单位执行,或者编码可以以多个页面为单位统一执行。
参考标记列表
100,300 信息处理装置
100a,300a 编码单元
100b,300b 解压缩单元
100c,300c 存储单元
Claims (10)
1.一种编码装置,包括:
编码单元,被配置成:
获取文本数据;
基于所述文本数据中所包括的第一单词的属性信息来指定多个动态词典中的第一动态词典;
将与第一动态代码相关联的所述第一单词登记在所述第一动态词典中;以及
将所述第一单词编码为所述第一动态代码。
2.根据权利要求1所述的编码装置,所述编码单元还被配置成:
确定所述文本数据中所包括的第二单词是否被包括在静态词典中;以及
当所述第二单词被包括在所述静态词典中时,将所述第二单词编码为与所述静态词典中的所述第二单词相关联的第一静态代码。
3.根据权利要求2所述的编码装置,其中,所述第一单词未被包括在所述静态词典中。
4.根据权利要求1所述的编码装置,所述编码单元还被配置成:
基于所述文本数据中所包括的第三单词的属性信息来指定所述多个动态词典中的第二动态词典;
确定所述第三单词是否被包括在所述第二动态词典中;以及
当所述第三单词被包括在所述第二动态词典中时,将所述第三单词编码为与所述第二动态词典中的所述第三单词相关联的第二动态代码。
5.根据权利要求1所述的编码装置,其中,所述属性信息是指示单词的类型的信息。
6.根据权利要求1所述的编码装置,其中,所述属性信息是所述文本数据中所包括的所述第一单词的位置信息。
7.根据权利要求6所述的编码装置,其中,所述文本数据是具有分层结构的文档,并且所述位置信息指示所述分层结构中的位置。
8.根据权利要求6所述的编码装置,其中,所述文本数据通过分隔符被分割成多个列,并且所述位置信息指示在所述多个列中所述第一单词所在的列。
9.一种由计算机执行的编码方法,所述编码方法包括:
获取文本数据;
基于所述文本数据中所包括的第一单词的属性信息来指定多个动态词典中的第一动态词典;
将与第一动态代码相关联的所述第一单词登记在所述第一动态词典中;以及
将所述第一单词编码为所述第一动态代码。
10.一种存储编码程序的非暂态计算机可读介质,所述编码程序使计算机执行下述处理,所述处理包括:
获取文本数据;
基于所述文本数据中所包括的第一单词的属性信息来指定多个动态词典中的第一动态词典;
将与第一动态代码相关联的所述第一单词登记在所述第一动态词典中;以及
将所述第一单词编码为所述第一动态代码。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2017-077041 | 2017-04-07 | ||
JP2017077041A JP7210130B2 (ja) | 2017-04-07 | 2017-04-07 | 符号化プログラム、符号化方法および符号化装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN108694159A true CN108694159A (zh) | 2018-10-23 |
Family
ID=61655647
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201810240597.5A Pending CN108694159A (zh) | 2017-04-07 | 2018-03-22 | 编码方法和编码装置 |
Country Status (4)
Country | Link |
---|---|
US (1) | US11323132B2 (zh) |
EP (1) | EP3385860A1 (zh) |
JP (1) | JP7210130B2 (zh) |
CN (1) | CN108694159A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110688851A (zh) * | 2019-09-26 | 2020-01-14 | 税友软件集团股份有限公司 | 一种提取地址文本的关键信息的方法、装置及介质 |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP7210130B2 (ja) * | 2017-04-07 | 2023-01-23 | 富士通株式会社 | 符号化プログラム、符号化方法および符号化装置 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20060085737A1 (en) * | 2004-10-18 | 2006-04-20 | Nokia Corporation | Adaptive compression scheme |
CN103258030A (zh) * | 2013-05-09 | 2013-08-21 | 西安电子科技大学 | 基于字典与游长编码的移动设备内存压缩方法 |
CN105808513A (zh) * | 2015-01-19 | 2016-07-27 | 富士通株式会社 | 转换装置和转换方法 |
CN105846825A (zh) * | 2015-01-30 | 2016-08-10 | 富士通株式会社 | 压缩方法、解压缩方法、压缩装置以及解压缩装置 |
Family Cites Families (31)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5455576A (en) * | 1992-12-23 | 1995-10-03 | Hewlett Packard Corporation | Apparatus and methods for Lempel Ziv data compression with improved management of multiple dictionaries in content addressable memory |
JP2536422B2 (ja) * | 1993-08-31 | 1996-09-18 | 日本電気株式会社 | デ―タ圧縮装置及びデ―タ復元装置 |
JPH08153090A (ja) * | 1994-11-29 | 1996-06-11 | Internatl Business Mach Corp <Ibm> | かな漢字変換システム及びその辞書作成方法 |
US5729228A (en) * | 1995-07-06 | 1998-03-17 | International Business Machines Corp. | Parallel compression and decompression using a cooperative dictionary |
JP3277792B2 (ja) * | 1996-01-31 | 2002-04-22 | 株式会社日立製作所 | データ圧縮方法および装置 |
US5809471A (en) * | 1996-03-07 | 1998-09-15 | Ibm Corporation | Retrieval of additional information not found in interactive TV or telephony signal by application using dynamically extracted vocabulary |
EP0928070A3 (en) | 1997-12-29 | 2000-11-08 | Phone.Com Inc. | Compression of documents with markup language that preserves syntactical structure |
US6088699A (en) | 1998-04-22 | 2000-07-11 | International Business Machines Corporation | System for exchanging compressed data according to predetermined dictionary codes |
JP3842913B2 (ja) * | 1998-12-18 | 2006-11-08 | 富士通株式会社 | 文字通信方法及び文字通信システム |
US7076731B2 (en) * | 2001-06-02 | 2006-07-11 | Microsoft Corporation | Spelling correction system and method for phrasal strings using dictionary looping |
DE10301362B4 (de) * | 2003-01-16 | 2005-06-09 | GEMAC-Gesellschaft für Mikroelektronikanwendung Chemnitz mbH | Blockdatenkompressionssystem, bestehend aus einer Kompressionseinrichtung und einer Dekompressionseinrichtung, und Verfahren zur schnellen Blockdatenkompression mit Multi-Byte-Suche |
GB0505942D0 (en) * | 2005-03-23 | 2005-04-27 | Patel Sanjay | Human to mobile interfaces |
US7769729B2 (en) | 2007-05-21 | 2010-08-03 | Sap Ag | Block compression of tables with repeated values |
US8326605B2 (en) * | 2008-04-24 | 2012-12-04 | International Business Machines Incorporation | Dictionary for textual data compression and decompression |
US7663511B2 (en) * | 2008-06-18 | 2010-02-16 | Microsoft Corporation | Dynamic character encoding |
US8108361B2 (en) | 2008-07-31 | 2012-01-31 | Microsoft Corporation | Efficient column based data encoding for large-scale data storage |
NO328657B1 (no) * | 2008-12-22 | 2010-04-19 | Fast Search & Transfer As | Invertert indeks for kontekstuell sok |
US7982636B2 (en) * | 2009-08-20 | 2011-07-19 | International Business Machines Corporation | Data compression using a nested hierachy of fixed phrase length static and dynamic dictionaries |
JP5413153B2 (ja) * | 2009-11-26 | 2014-02-12 | 富士通株式会社 | データ圧縮装置、データ伸長装置、データ圧縮プログラム、及びデータ伸長プログラム |
EP2674874A4 (en) * | 2011-02-08 | 2017-09-06 | Fujitsu Limited | Search program, search apparatus, and search method |
US8456331B2 (en) * | 2011-04-15 | 2013-06-04 | Cavium, Inc. | System and method of compression and decompression |
JP5895545B2 (ja) | 2012-01-17 | 2016-03-30 | 富士通株式会社 | プログラム、圧縮ファイル生成方法、圧縮符号伸張方法、情報処理装置、および記録媒体 |
JP6045415B2 (ja) | 2013-03-22 | 2016-12-14 | Kddi株式会社 | データ構造化方法、データ再構成方法、データ構造化プログラム、データ再構成プログラム及びデータ符号化装置 |
JP6107513B2 (ja) * | 2013-07-29 | 2017-04-05 | 富士通株式会社 | 情報処理システム、情報処理方法、および情報処理プログラム |
JP6319740B2 (ja) * | 2014-03-25 | 2018-05-09 | インターナショナル・ビジネス・マシーンズ・コーポレーションInternational Business Machines Corporation | データ圧縮を高速化する方法、並びに、データ圧縮を高速化するためのコンピュータ、及びそのコンピュータ・プログラム |
JP6550765B2 (ja) | 2015-01-28 | 2019-07-31 | 富士通株式会社 | 文字データ変換プログラム、文字データ変換装置および文字データ変換方法 |
JP6540308B2 (ja) * | 2015-07-13 | 2019-07-10 | 富士通株式会社 | 符号化プログラム、符号化方法、符号化装置、復号化プログラム、復号化方法および復号化装置 |
JP6613669B2 (ja) * | 2015-07-14 | 2019-12-04 | 富士通株式会社 | 圧縮プログラム、圧縮方法、情報処理装置、置換プログラムおよび置換方法 |
JP6648620B2 (ja) * | 2016-04-19 | 2020-02-14 | 富士通株式会社 | 符号化プログラム、符号化装置および符号化方法 |
WO2018066144A1 (ja) * | 2016-10-07 | 2018-04-12 | 富士通株式会社 | インデックス付きデータ生成プログラム、インデックス付きデータ生成方法、インデックス付きデータ生成システム、検索プログラム、検索方法、および検索システム |
JP7210130B2 (ja) * | 2017-04-07 | 2023-01-23 | 富士通株式会社 | 符号化プログラム、符号化方法および符号化装置 |
-
2017
- 2017-04-07 JP JP2017077041A patent/JP7210130B2/ja active Active
-
2018
- 2018-03-08 US US15/915,270 patent/US11323132B2/en active Active
- 2018-03-14 EP EP18161724.2A patent/EP3385860A1/en not_active Ceased
- 2018-03-22 CN CN201810240597.5A patent/CN108694159A/zh active Pending
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20060085737A1 (en) * | 2004-10-18 | 2006-04-20 | Nokia Corporation | Adaptive compression scheme |
CN103258030A (zh) * | 2013-05-09 | 2013-08-21 | 西安电子科技大学 | 基于字典与游长编码的移动设备内存压缩方法 |
CN105808513A (zh) * | 2015-01-19 | 2016-07-27 | 富士通株式会社 | 转换装置和转换方法 |
CN105846825A (zh) * | 2015-01-30 | 2016-08-10 | 富士通株式会社 | 压缩方法、解压缩方法、压缩装置以及解压缩装置 |
Non-Patent Citations (1)
Title |
---|
K.S.NG ET AL.: "Dynamic word based text compression", 《PROCEEDINGS OF THE 4TH INTERNATIONAL CONFERENCE ON DOCUMENT ANALYSIS AND RECOGNITION》 * |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110688851A (zh) * | 2019-09-26 | 2020-01-14 | 税友软件集团股份有限公司 | 一种提取地址文本的关键信息的方法、装置及介质 |
CN110688851B (zh) * | 2019-09-26 | 2023-07-28 | 亿企赢网络科技有限公司 | 一种提取地址文本的关键信息的方法、装置及介质 |
Also Published As
Publication number | Publication date |
---|---|
US11323132B2 (en) | 2022-05-03 |
EP3385860A1 (en) | 2018-10-10 |
JP7210130B2 (ja) | 2023-01-23 |
US20180294820A1 (en) | 2018-10-11 |
JP2018182466A (ja) | 2018-11-15 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN105846825B (zh) | 压缩方法、解压缩方法、压缩装置以及解压缩装置 | |
CN107305586B (zh) | 索引生成方法、索引生成装置及搜索方法 | |
WO2014147672A1 (ja) | 圧縮装置、圧縮方法、辞書生成装置、辞書生成方法、伸長装置、伸長方法、伸長プログラムおよび情報処理システム | |
CN105808513B (zh) | 转换装置和转换方法 | |
CN103326732A (zh) | 压缩数据的方法、解压数据的方法、编码器和解码器 | |
JP6648620B2 (ja) | 符号化プログラム、符号化装置および符号化方法 | |
EP3154202B1 (en) | Encoding program, encoding method, encoding device, decoding program, decoding method, and decoding device | |
JP6540308B2 (ja) | 符号化プログラム、符号化方法、符号化装置、復号化プログラム、復号化方法および復号化装置 | |
US10224958B2 (en) | Computer-readable recording medium, encoding apparatus, and encoding method | |
CN108694159A (zh) | 编码方法和编码装置 | |
JP6536243B2 (ja) | 符号化プログラム、符号化装置、符号化方法、照合プログラム、照合装置および照合方法 | |
US11055328B2 (en) | Non-transitory computer readable medium, encode device, and encode method | |
US20160226516A1 (en) | Non-transitory computer-readable recording medium, compression method, decompression method, compression device, and decompression device | |
CN104584439B (zh) | 存储程序、存储方法、存储装置、解压缩程序、解压缩方法和解压缩装置 | |
US10942934B2 (en) | Non-transitory computer-readable recording medium, encoded data searching method, and encoded data searching apparatus | |
EP4053730A1 (en) | Decoding program creating dynamic dictionary associating codes to words for extraction | |
JP6931442B2 (ja) | 符号化プログラム、インデックス生成プログラム、検索プログラム、符号化装置、インデックス生成装置、検索装置、符号化方法、インデックス生成方法および検索方法 | |
KR102609946B1 (ko) | 프로그램 코드 처리 장치 및 방법 | |
US10318483B2 (en) | Control method and control device | |
CN118202339A (zh) | 一种数据库数据的压缩方法及存储设备 | |
CN108334888A (zh) | 针对比特序列的压缩编码 | |
JPWO2020070943A1 (ja) | パターン認識装置及び学習済みモデル | |
CN106471743A (zh) | 普通ascii数据流的编码 | |
CN115268664B (zh) | 一种纠错词展示的控制方法、装置、设备以及存储介质 | |
CN113656400A (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 |