编码方法、编码装置、解码方法和解码装置与流程

文档序号:11590331阅读:179来源:国知局

本文中所讨论的实施方式涉及编码程序、编码方法、编码装置、解码程序、解码方法以及解码装置。



背景技术:

例如,已经使用了结构化文档数据例如可扩展标记语言(xml)。xml已经广泛地被扩展为例如用于在不同系统之间交换数据的兼容格式。以结构化格式例如xml来公开各种文档数据。在本文中,结构化文档数据例如采用整体以压缩格式例如zip被压缩的方式来存储,以便减少用于结构化文档数据的存储或通信的数据量。在使用压缩文档数据的情况下,执行对整个压缩文档数据的解压缩,以恢复文档数据,并且对所恢复的文档数据执行各种分析。例如,在搜索特定单词是否被包括在文档数据的特定层次中的情况下,对所恢复的文档数据执行词法分析或结构分析。

日本公开特许公报第2005-215951号

日本公开特许公报第2002-297568号

日本公开特许公报第2005-018672号

然而,在使用文档数据(其中整体已经以压缩格式例如zip被压缩)的情况下,解压缩整个压缩文档数据,并且随后执行各种分析,使得处理量高。可以在具有低处理能力的终端例如移动终端中使用压缩文档数据,并且当使用该终端的处理量高时,处理是耗时的。即使在仅使用结构化文档中的文档结构的一部分的情况下,在整体已经以压缩格式例如zip被压缩的情况下,整个文档也被解压缩。

因此,本发明的实施方式的一个方面中的目的是提供执行与文档结构相对应的编码或解码的编码程序、编码方法、编码装置、解码程序、解码方法以及解码装置。



技术实现要素:

根据实施方式的一方面,一种编码方法包括:识别第一结构化文档的文档结构;以及使用与使用文档结构的特定层次相对应的编码规则来对第一结构化文档的特定层次中的字符串进行编码。

附图说明

图1是示意地图示了编码处理的流程的示图;

图2a是示意性地图示了搜索处理的流程的示图;

图2b是示意性地图示了未创建索引的情况下的搜索处理的流程的示图;

图3是图示了编码装置的配置的示例的示图;

图4是图示了代码的分配的示例的示图;

图5是图示了代码的分配的示例的示图;

图6是图示了模式的示意配置的示图;

图7a是图示了具有由标签指示的文档结构的文档的示例的示图;

图7b是图示了具有通过标签在文档的一部分上提供的元数据的文档的示例的示图;

图8a是图示了编码的示例的示图;

图8b是图示了编码的示例的示图;

图9是示意地图示了编码的流程的示图;

图10a是图示了搜索的示例的示图;

图10b是图示了检索的示例的示图;

图11是图示了编码处理的步骤的示例的流程图;

图12是图示了搜索处理的步骤的示例的流程图;

图13是图示了搜索处理的步骤的示例的流程图;

图14是图示了解码处理的步骤的示例的流程图;

图15是图示了代码的分配的示例的示图;

图16是图示了执行编码程序的计算机的示例的示图;

图17是图示了执行搜索程序的计算机的示图;以及

图18是图示了执行解码程序的计算机的示例的示图。

具体实施方式

将参考附图来说明优选实施方式。权利的范围不受实施方式的限制。只要实施方式的处理内容彼此一致,则可以将相应的实施方式彼此适当地组合。

编码处理

首先,将通过使用图1来描述编码处理的概述。图1是示意性地图示了编码处理的流程的示图。在下文中,将描述对存储有结构化文档的编码目标文件30进行编码的情况作为示例。

编码目标文件30存储通过例如xml结构化的文档。在xml中,以下述这样的方式来使文档结构化:通过文本来描述文档,并且通过标签来限定文档的元素。图1的示例说明了医院中的患者的医疗记录的数据被设置为通过xml结构化的文档的情况。在图1的示例中,用具有元素名称“体温”的标签来记录体温“36.0”。用具有元素名称“概述”的标签来记录患者的“xxx......”的概述。编码目标文件30可以是任何结构化的文档。

在执行对编码目标文件30的编码的情况下,编码装置10的编码处理单元40读取存储在编码目标文件30中的文档,并且识别文档的文档结构(图1(1))。例如,在限定与编码目标文件30相对应的xml的模式(schema)的情况下,编码处理单元40可以从与编码目标文件30相对应的模式识别文档结构,或者可以通过分析文档来识别文档结构。

编码处理单元40根据针对与文档结构相对应的层次结构的编码规则来对已读取的文档进行编码,并且将编码数据存储为编码数据32(图1(2))。

例如,编码处理单元40根据常见编码规则来对限定文档结构的字符串进行编码。在图1的示例中,指示文档结构的标签“<体温>”被编码成代码a1,标签“</体温>”被编码成代码a2,标签“<概述>”被编码成代码a3,并且标签“</概述>”被编码成代码a4。结束标签的代码可以是与开始标签的代码不同的代码,或者可以通过将开始标签的代码与指示标签的结束的代码组合来设置。

例如,编码处理单元40根据与出现在层次中的字符串的特性相对应的编码规则来对每个层次中的字符串进行编码。只要在编码时被分配的代码对于每个编码规则是唯一的则足够了。因此,在根据针对层次的编码规则来对层次中出现的字符串进行编码的情况下,只要代码对于每个层次是唯一的则足够了。因此,由于层次不同,所以可以向不同的字符串分配相同的代码。在图1的示例中,“体温”的层次中的字符串“36.0”被编码成代码b1,并且“概述”的层次中的字符串“xxx......”的“xxx”被编码成代码b1。例如,编码处理单元40根据将具有高出现频率的模式例如字符或词转变成短代码的编码规则来对每个层次中的字符串进行编码。因此,可以在每个层次中将包括在字符串中的各种模式中的具有高出现频率的模式转变成短代码,并且因此可以将整个编码目标文件30转变成短代码。

编码处理单元40将要被转变的字符串和与字符串相对应的代码存储在用于编码规则的词典数据31中。在图1的示例中,字符串“36.0”和代码b1彼此相关联且被存储在词典数据31a中,并且字符串“xxx”和代码b1彼此相关联且被存储在词典数据31b中。

编码处理单元40针对每个编码规则创建指示出现在已编码字符串中的模式的索引33(图1(3))。索引是指示包括模式的文件的数据。索引例如包括将模式或文件与一个位相关联并且存储模式是否基于该位的值而出现的位图类型的索引。索引还包括将模式或文件与多个位相关联并且通过多个位来保存模式的出现数目的信息的计数映射类型的索引。在图1的示例中,编码处理单元40创建计数映射类型的索引33a和33b。索引33a保存“体温”的层次中的字符串中出现的模式的出现数目的信息。索引33b保存“概述”的层次中的字符串中出现的模式的出现数目的信息。在图1的示例中,索引33a和33b中的每一个通过多个位来存储与编码目标文件30的文件编号“1”和代码b1相关联的出现数目。在本实施方式中,尽管描述了在编码时创建索引33a和33b的情况,但是编码处理单元40不限于此并且可以适当地被修改。例如,编码处理单元40可以不创建索引33a和33b。

搜索过程

接下来,将通过使用图2a来描述由根据第一实施方式的编码装置10执行的搜索处理的概述。图2a是示意性地图示了搜索处理的流程的示图。图2a的示例说明了已经在图1中被编码的编码数据32、词典数据31a和31b以及索引33a和33b。在图2a的示例中,为了便于理解编码字符串,在编码数据32中的代码后面标注括号“()”中所包括的编码字符串。

编码装置10的文件搜索单元50接受搜索条件的输入。例如,在图2a的示例中,文件搜索单元50接受搜索条件例如“概述”的层次或字符串“xxx”。

文件搜索单元50搜索满足搜索条件的文件。例如,文件搜索单元50参照通过转变“概述”的层次中的字符串而设置的词典数据31b,并且识别与字符串“xxx”相对应的代码b1(图2a(1))。文件搜索单元50参照通过转变“概述”的层次中的字符串而创建的索引33b,并且识别代码b1出现在其中的文件的文件编号(图2a(2))。在图2a的示例中,索引33与编码目标文件30的文件编号“1”和代码b1相关联,以存储出现数目,并且因此当具有文件编号“1”的编码目标文件30满足搜索条件时,执行搜索。因此,在已被编码的编码数据32中执行对字符串的搜索的情况下,编码装置10可以在不对编码数据32进行解码的情况下搜索字符串,并且因此可以减少使用编码装置10的处理量。

如上所述,可以不创建索引33a和33b。图2b是示意性地图示了在未创建索引的情况下的搜索处理的流程的示图。图2b的示例说明了在图1中已被编码的编码数据32和词典数据31。同样在图2b的示例中,为了便于理解编码字符串,在编码数据32中的代码后面标注括号“()”中所包括的编码字符串。

文件搜索单元50接受搜索条件的输入。例如,在图2b的示例中,文件搜索单元50接受搜索条件例如“概述”的层次或字符串“xxx”。

文件搜索单元50搜索满足搜索条件的文件。例如,文件搜索单元50对通过常见编码规则被编码的标签进行解码。文件搜索单元50参考通过转变“概述”的层次中的字符串而设置的词典数据31b,并且对“概述”的层次中的代码进行部分解码(图2b(1))。文件搜索单元50从已解码部分搜索字符串“xxx”(图2b(2))。同样在这种情况下,文件搜索单元50可以仅对“概述”的层次中的代码进行部分解码,以执行搜索,并且因此,与对整个编码数据进行解码的情况相比,可以减少使用文件搜索单元50的处理量。

装置配置

接下来,将描述编码装置10的配置。图3是图示了编码装置10的配置的示例的示图。编码装置10是执行编码例如压缩结构化文档的装置。编码装置10例如是计算机例如个人计算机或服务器计算机或者信息处理装置例如平板终端或智能电话。编码装置10可以被实现为单个计算机,并且可以被实现为用于多个计算机的云。在本实施方式中,将描述编码装置10是单个计算机的情况作为示例。如图3所示,编码装置10包括存储单元20和控制单元21。编码装置10可以包括除了如上所述的仪器之外的包括在计算机或信息处理装置中的另一仪器。在本实施方式中,虽然将描述由编码装置10执行编码和文件搜索的情况作为示例,但是可以由不同的装置来执行编码和文件搜索。

存储单元20是存储装置例如硬盘、固态驱动器(ssd)或光盘。存储单元20可以是数据可重写半导体存储器例如随机存取存储器(ram)或闪速存储器、非易失性静态随机存取存储器(nvsram)。

存储单元20存储操作系统(os)和由控制单元21执行的各种程序。例如,存储单元20存储用于执行稍后描述的编码处理和搜索处理的程序。存储单元20还存储用于由控制单元21执行的程序的各种数据。例如,存储单元20存储编码目标文件30、词典数据31、编码数据32和索引33。

编码目标文件30是通过存储编码目标的文本数据而提供的数据。例如,通过xml结构化的文档被存储在编码目标文件30中。

词典数据31是用于数据的编码和解码的词典的数据。

在本实施方式中,当结构化文档被编码时,取决于结构或结构的属性来切换编码规则。词典数据31是用于使用词典来执行编码的编码规则的词典的数据。词典数据31被设置用于使用词典来执行编码的每个编码规则。例如,在层次结构化的文档的层次中,词典数据31被设置用于使用词典来执行编码的每个层次或使用词典来执行编码并且层次的数据属性彼此类似的层次中的每一个层次。词典数据31包括静态词典34和动态词典35。

静态词典34是取决于文档的结构或属性来保存与具有高出现频率的模式相对应的代码的数据。动态词典35是取决于文档的结构或属性来保存与具有低出现频率的模式相对应的代码的数据。预先设置静态词典34。根据需要动态地创建动态词典35。

静态词典34根据出现在对应层次中的字符串的特性来存储与字符串相对应的代码。例如,静态词典34存储与通常出现在对应层次中的字符串或模式例如数字相对应的代码。静态词典34存储已经与短代码相关联的对应层次中的具有高出现频率的模式。例如,人体温度通常落在35.0℃至42.0℃的范围内并且以高出现频率位于36.0℃附近。因此,例如,与体温的层次相对应的静态词典34存储已经与代码相关联的数值35.0至42.0,并且存储已经被分配有短代码的约36.0。在本实施方式中,以词为单位对出现在概述中的字符串进行编码。例如,在本实施方式中,分析一般文档,从而将词分类成具有相对高的出现频率的高频词和具有相对低的出现频率的低频词。例如,高频词是出现频率的降序中从顶部到预定排序的基本词,而低频词是从预定排序到底部的基本词。高频词预先被分配有短代码,并且高频词和所分配的代码彼此相关联并被存储在静态词典34中。例如,高频词预先被分配有2字节(16位)代码,并且所分配的代码被预先存储在静态词典34中。当低频词出现时,低频词动态地被分配代码,并且所分配的代码被存储在动态词典35中。也就是说,针对高频词预先登记代码,并且动态地将代码分配并存储在用于低频词的动态词典35中。在概述中出现的字符串或模式例如数字被确定为特定模式的情况下,特定模式与代码彼此相关联并且预先被存储在与概述的层次相对应的静态词典34中。

动态词典35是根据出现在对应层次中的字符串的特性来保存与动态分配的代码有关的各种信息的数据。例如,与概述的层次相对应的动态词典35存储动态地被分配至具有低出现频率的模式例如低频词的代码。

图4是图示了代码的分配的示例的示图。图4图示了2字节(16位)代码的分配的示例。上面部分中并且横向方向上的项指示采用0到f的十六进制符号的第一字节,并且“*”指示第二字节。例如,“1*h”指示第一字节是采用二进制符号的“00000001”。左侧处并且纵向方向上的项指示采用0到f的十六进制符号的第二字节,并且“*”指示第一字节。例如,“*2h”指示第二字节是采用二进制符号的“00000010”。

图4图示了与对应于纵向方向上的项和横向方向上的项的区域中的代码相对应的模式。例如,对于代码“0*h”和“1*h”而言,相同的代码对应于每个层次中的相同的控制代码。对于代码“2*h”到“5*h”而言,相同的代码对应于每个层次中的相同标签。对于代码“6*h”到“f*h”而言,可以将代码单独地分配至每个层次中的模式。例如,在以词为单位对字符串进行编码的情况下,代码“6*h”到“9*h”被分配至预定的高频词。对于代码“a*h”到“f*h”而言,在低频词出现时,动态地分配代码。“e*h”和“f*h”是3字节代码,以便处理代码的缺少。

词典数据31被设置在使用词典来执行编码的每个层次中或使用词典来执行编码并且层次的数据属性彼此类似的层次中的每一个层次中,并且对于代码“6*h”到“f*h”而言,字符串和代码彼此相关联,并且根据出现在层次中的字符串的特性而被存储。

词典数据31可以能够向标签动态地分配代码。图5是图示了代码的分配的示例的示图。在图5的示例中,对于代码“5*h”而言,第一字节能够动态地在特定层次中分配作为标签的代码。

返回到图3,编码数据32是通过对编码目标数据30进行编码而提供的数据。索引33是通过存储出现在编码字符串中的模式的出现数目而提供的数据。例如,索引33被设置用于每个编码规则,并且将编码字符串与出现模式的出现数目和出现文件的文件编号相关联,并且存储编码字符串与出现模式的出现数目和出现文件的文件编号。

控制单元21是控制编码装置10的装置。对于控制单元21而言,可以采用电子电路例如中央处理单元(cpu)或微处理单元(mpu)或集成电路例如专用集成电路(asic)或现场可编程门阵列(fpga)。控制单元21包括用于存储限定各个处理步骤的程序和控制数据并且从而执行各种处理的内部存储器。当各种程序进行操作时,控制单元21用作各种处理单元。例如,控制单元21包括编码处理单元40、文件搜索单元50和解码处理单元60。

编码处理单元40读取存储在编码目标文件30中的结构化文档,并且根据针对与文档结构相对应的层次结构的编码规则来创建通过对读取的文档进行编码而提供的编码数据32。编码处理单元40包括识别单元41、编码单元42和创建单元43。

识别单元41执行各种识别。例如,识别单元41识别存储在编码目标文件30中的xml文档的文档结构。例如,在限定xml的模式以便与编码目标文件30相对应的情况下,识别单元41基于与编码目标文件30相对应的模式来识别文档结构。

图6是图示了模式的一般配置的示图。在xml文档中,指示文档结构的xml模式70被限定。xml模式70描述了对xml文档的文档结构的限定以及对模式语言中的终端元素的类型和约束的限定。在图6的示例中,对于结构限定而言,描述了指示文档结构、对标签的约束等的标签的嵌套关系。在图6的示例中,对于终端元素的类型和约束而言,描述了要被存储的字符串的数据类型、数值的最大值和最小值、串(字符串)的长度、可用字符以及字符串是否用作例如男性、女性等的选择类型。编码目标文件30根据对xml模式70的限定来以xml存储文档。在图6的示例中,xml文档描述了第一行上的字符代码,并且具有与xml模式70相对应的文档结构的文档被存储。xml模式70可以灵活地限定文档结构,并且还可以执行对能够改变编码目标文件30中的标签的数目的限定。例如,编码目标文件30a还可以具有在x标签下存在10个y标签的文档结构,并且编码目标文件30b也可以具有在x标签下存在20个y标签的文档结构。

在xml模式70被限定以便与编码目标文件30相对应的情况下,识别单元41基于xml模式70来识别文档结构。识别单元41可以分析存储在编码目标文件30中的文档,以识别文档结构。

编码单元42执行对存储在编码目标文件30中的文档的编码。例如,编码单元42从编码目标文件30读取具有由识别单元41识别的文档结构的xml文档。编码单元42根据针对与文档结构相对应的层次结构的编码规则来对所读取的文档进行编码。例如,编码单元42连续地向出现在所读取的文档中的标签分配代码,以执行对所读取的文档的编码。在出现在文档结构中的标签被限定的情况下,预先存储用于具有已经彼此相关联的标签和代码的标签的词典数据,并且编码单元42可以使用用于标签的词典数据,以对出现在所读取文档中的标签进行编码。文档结构中的具有高出现频率的一些标签被存储在用于标签的词典数据中,并且编码单元42可以使用用于标签的词典数据,以对具有高出现频率的一些标签进行编码,并且连续地向其他标签分配代码,以执行编码。

在本文中,结构化文档包括具有通过由标签来界定文档元素而指示的文档结构的文档以及具有由标签在文档的一部分上提供的元数据的文档。

图7a是图示了具有由标签指示的文档结构的文档的示例的示图。在图7a的示例中,“概述”和“正文”由示例1的文档中的标签来限定。对于示例1的文档而言,图示了存储与由标签界定的部分“概述”和“正文”中的每一个中的内容相对应的字符串(文本)的文档。在示例2的文档中,“专利”由标签来限定,并且“标题”,“对象”和“优点”以低于“专利”的级别而被限定。对于示例2的文档而言,图示了存储与由标签界定的部分“标题”、“对象”和“优点”中的每一个中的内容相对应的字符串的文档。

编码单元42根据常见编码规则来对标签进行编码。对于示例1的文档而言,根据常见编码规则来对标签“概述”和“正文”进行编码。对于示例2的文档而言,根据常见编码规则来对标签“专利”、“标题”、“对象”和“优点”进行编码。

编码单元42根据与每个层次相对应的编码规则来对由标签界定的部分中的字符串进行编码。例如,编码单元42通过使用与每个层次相对应的词典数据31来对由标签界定的部分中的字符串进行编码。例如,在与层次相对应的词典数据31的静态词典34或动态词典35中已经登记出现在字符串中的词的情况下,编码单元42将出现的词编码成登记在静态词典34或动态词典35中的代码。在出现在字符串中的词没有被登记在与层次相对应的词典数据31的静态词典34或动态词典35中的情况下,编码单元42动态地向该词分配代码,以便出现的词被编码成所分配的代码。编码单元42将出现的词与所分配的代码相互关联,并且将出现的词和所分配的代码登记在动态词典35中。因此,然后,通过在词出现时使用动态词典35来将登记在动态词典35中的词编码成相同的代码。编码单元42可以根据相同的编码规则来对具有类似的数据属性的层次中的字符串进行编码。因此,编码单元42可以基于相同的词典数据31来对具有类似的数据属性的层次中的字符串进行编码。

图7b是图示了具有通过标签在文档的一部分上提供的元数据的文档的示例的示图。在图7b的示例中,示例3的文档说明了以下情况:通过标签来在文档“这是到aaa的链接”中的部分“链接”上提供链接目的地的url作为元数据。示例4的文档说明了以下情况:文档“因为bbb被抱怨,所以ccc被怀疑并且ddd被执行”中的指示医疗状况的部分“bbb”、指示疾病名称的部分“ccc”以及指示药物名称的部分“ddd”通过标签被提供作为元数据。示例5的文档说明了以下情况:文档“suzuki将在2015年3月6日在大阪市被会见”中的指示个人名称的部分“suzuki”、指示地点名称的部分“大阪市”以及指示日期的“2015年3月6日”通过标签被提供作为元数据。

编码单元42根据常见编码规则来对标签进行编码。对于示例3的文档而言,通过常见编码规则来对标签“链接”进行编码。对于示例4的文档而言,根据常见编码规则对标签“医疗状况”、“疾病名称”和“药品名称”进行编码。对于示例5的文档而言,根据常见编码规则来对标签“个人名称”,“地点名称”和“日期”进行编码。编码单元42根据针对每个层次的编码规则来对由标签界定的部分上的字符串进行编码。例如,编码单元42通过使用与每个层次相对应的词典数据31来对由标签界定的部分上的字符串进行编码。

图8a是图示了编码的示例的示图。例如,图8a的示例说明了对字符串数据(其为以比标签“a”更低的级别而被限定的标签“b”)进行编码的示例。在图8a的示例中,通过对字符串数据进行编码而提供的代码被存储在标签“a”的代码与标签“b”的代码之间。在图8a的示例中,通过将起始标签的代码与指示标签的结束的代码组合来提供用于标签“a”或标签“b”的结束标签的代码。

图8b是图示了编码的示例的示图。图8b的示例说明了对字符串数据(其为文档“suzuki将在大阪市被会见”中的指示地点名称的部分“大阪市”以及指示个人名称的部分“suzuki”)进行编码的示例,其中,文档“suzuki将在大阪市被会见”中的指示地点名称的部分“大阪市”以及指示个人名称的部分“suzuki”通过标签被提供作为元数据。在图8b的示例中,“大阪市”被编码成地点名称的起始代码“25h”与结束代码“20h”和“25h”之间的“b0h”。“suzuki”被编码成个人名称的起始代码“26h”与结束代码“20h”和“26h”之间的“b0h”。

编码单元42可以向不同层次中的不同字符串分配相同的代码,并且因此可以在每个层次中将字符串转变成短代码。例如,在图8b的示例中,“大阪”和“suzuki”二者皆被转变成相同的“b0h”。因此,编码单元42可以在每个层次中将字符串转变成短代码,并且可以将整个编码目标文件30转变成短代码。

编码单元42可以取决于字符串的属性或范围而在不使用词典数据31的情况下对由标签界定的部分上的字符串进行编码。例如,在由标签界定的部分上的字符串是指示“0”到“255”的范围内的数值的字符串的情况下,编码单元42可以将指示“0”到“255”的范围内的数值的字符串编码成1字节整数型(例如int类型)代码。也就是说,在字符串指示数值的情况下,编码单元42可以将字符串编码成具有与数值的范围相对应的数据类型的代码。因为表示数值的字符串被编码成具有数值的数据类型的代码,所以即使在字符串的编码状态下也可以执行各种操作例如数值的比较或求和。

在本文中,在xml等的结构化文档中,上下文由标签来限定。结构化文档的上下文由标签来限定,并且通过上下文来确定与数据处理相关联的元素。例如,确定与词典相关联的元素例如数据的类型或值范围或文档的成分(关于语言、日语词、英语词或以另一语言的词)。例如,确定可以如何使用数据内容,即使用数据内容的领域例如搜索或挖掘文本或者数值的平均值、总值或频率分布。如图7a所示,具有由标签指示的文档结构的文档包括通过以下而被识别的上下文:不仅跟踪单个组的标签而且还以从层次的顶层开始的顺序来跟踪层次。例如,在<a><总数>t</总数></a>中,“t”指示a的总数。如图7b所示,具有通过标签提供在文档的一部分上的元数据的文档包括由单个组的标签围住的区域中的除了层次以外的附加上下文。例如,<地点名称>大阪市</地点名称>指示“大阪市”是地点名称。因此,编码单元42根据适合于由标签限定的上下文的编码规则来对由标签界定的部分上的字符串进行编码,并且从而可以减少使用编码单元42的处理量。

编码单元42存储被存储在编码目标文件30中的文档的编码数据作为编码数据32。

创建单元43针对每个编码规则创建指示出现在编码字符串中的模式的索引33。例如,创建单元43连续地向已被编码的编码目标文件30提供文件编号。创建单元43创建与已被编码的编码目标文件30的文件编号相关联的索引33,该索引33存储出现在编码目标文件30中的模式例如数值或词的出现数目。

在本文中,将描述编码的流程。图9是示意性地图示了编码的流程的示图。编码装置10的编码处理单元40读取存储在编码目标文件30中的文档并且识别文档的文档结构。编码处理单元40根据针对与文档结构相对应的层次结构的编码规则来对所读取的文档进行编码。例如,在出现在标签或字符串中的词已被登记在静态词典34或动态词典35中的情况下,编码处理单元40将出现的词编码成登记在静态词典34或动态词典35中的代码。在出现在标签或字符串中的词未被登记在静态词典34或动态词典35中的情况下,编码处理单元40动态地向该词分配代码并且将该标签或出现的词编码成所分配的代码。编码处理单元40使标签或出现的词与所分配的代码彼此相关联,并且将标签或出现的词与所分配的代码登记在动态词典35中。

编码处理单元40将存储在编码目标文件30中的文档的编码数据存储为编码数据32。在图9的示例中,标签“概述”和“正文”的层次中的字符串中的每一个已被编码。编码处理单元40创建与编码目标文件30的文件编号相关联的索引33,该索引33存储出现在编码目标文件30中的模式例如数值或词的出现数目。在图9的示例中,作为与标签“概述”和“正文”的层次相关联的出现数目的总数的结果而创建索引33a和33b。在编码数据32被移动到另一装置的情况下,编码装置10还移动与编码数据32和索引33a和33b相关联而创建的动态词典35。

返回到图3,文件搜索单元50根据指定的搜索条件来搜索文件。文件搜索单元50包括接受单元51、搜索单元52和输出单元53。在下文中,将详细描述文件搜索单元50的每个部件。

接受单元51接受搜索条件。例如,接受单元51提供接受作为搜索条件的关键词或层次的输入的输入接口例如操作屏幕,并且接受单元51接受作为搜索条件的字符串或层次的输入。

搜索单元52搜索满足搜索条件的文件。例如,搜索单元52参考与搜索条件的层次相对应的词典数据31的静态词典34和动态词典35来识别与搜索条件的关键词相对应的代码。搜索单元52参考与搜索条件的层次相对应的索引33来识别其中出现有识别的代码的文件的文件编号。在搜索条件的关键词包括多个词或数值的情况下,搜索单元52将关键词分解成词或数值,以对词或数值进行编码,并且识别与词或数值中的每一个相对应的代码。搜索单元52参考与搜索条件的层次相对应的索引33来识别具有与出现的词或数值中的每一个相对应的代码的文件的文件编号。在本文中,对于索引33而言,可能不能确认包括在搜索条件的字符串中的多个词或数值的出现次序是否正确。因此,例如,搜索单元50搜索搜索条件的字符串是否被包括在具有识别的文件编号的编码目标文件30中。搜索单元52可以对与识别的文件编号相对应的编码数据32的搜索条件的层次进行解码,以搜索搜索条件的字符串是否包括在其中。

图10a是图示了搜索的示例的示图。图10a的示例说明了指定文件是否包括“概述”中的关键词“xxx”,以及是否包括“正文”中的关键词“yyy”的情况。搜索单元52参考与“概述”的层次相对应的词典数据31的静态词典34和动态词典35来识别与“xxx”相对应的代码。搜索单元52参考与“概述”的层次相对应的索引33来识别与“xxx”相对应的代码的出现是否被记录在指定文件的文件编号中。搜索单元52参考与“正文”的层次相对应的词典数据31的静态词典34和动态词典35来识别与“yyy”相对应的代码。搜索单元52参考与“正文”的层次相对应的索引33来识别与“yyy”相对应的代码的出现是否被记录在指定文件的文件编号中。在与“xxx”相对应的代码以及与yyy”相对应的代码的出现的记录被包括在指定文件的文件编号中的情况下,搜索单元52搜索关键词“xxx”是否被包括在“概述”中以及关键词“yyy”是否被包括在“正文”中。

图10b是图示了搜索的示例的示图。图10b的示例说明了搜索包括“概述”中的关键词“zzz”的文件的情况。搜索单元52参照与“概述”的层次相对应的词典数据31的静态词典34和动态词典35来识别与“zzz”相对应的代码。搜索单元52参考与“概述”的层次相对应的索引33来识别具有与其中出现的“zzz”相对应的代码的文件的文件编号。

因此,文件搜索单元50可以在不对编码数据32进行解码的情况下执行搜索,并且因此可以减少用于搜索的处理量,以便可以减少用于搜索的处理时间。

在没有创建索引33的情况下,文件搜索单元50仅对指定的层次进行解码,以搜索指定的字符串。在这种情况下,文件搜索单元50也可以通过仅对指定的层次进行解码来执行搜索,并且因此,与对整个编码数据进行编码的情况相比,可以减少使用文件搜索单元50的处理量,以便可以减少用于搜索的处理时间。

输出单元53执行对搜索结果的输出。例如,在由搜索单元52识别文件编号的情况下,输出单元53输出具有所识别的文件编号的文件的文件名称,作为搜索的结果。另一方面,在搜索单元52未识别文件编号的情况下,输出单元53不输出对应文件,作为搜索的结果。

返回到图3,解码处理单元60对编码数据32进行解码。解码处理单元60包括接受单元61和解码单元62。在下文中,将详细描述解码处理单元60的每个部件。

接受单元61接受解码的指令。例如,接受单元61提供接受对编码数据32(其为用于解码的目标)的指定的输入接口例如操作屏幕,并且接受对编码数据32(其为用于解码的目标)的指定。接受单元61可以接受对用于解码的层次的指定以及作为用于解码的目标的编码数据32。

解码单元62对已被指定的编码数据32进行解码。例如,解码单元62根据针对层次的编码规则来对编码数据32的每个层次中的代码数据进行解码。例如,解码单元62通过使用与层次相对应的词典数据31的静态词典34和动态词典35来将编码数据32的每个层次中的代码数据解码成字符串。例如,解码单元62根据常见编码规则来对标签的代码数据进行解码。解码单元62参考与层次相对应的词典数据31的静态词典34和动态词典35来将由标签界定的每个层次中的代码数据解码成字符串。在由接受单元61接受对用于解码的层次的指定的情况下,解码单元62可以仅对指定层次中的代码数据进行解码。

处理流程

将描述根据本实施方式的用于对编码目标文件30进行编码的编码装置10的编码处理的流程。图11是图示了编码处理的步骤的示例的流程图。这样的编码处理在预定的定时例如在执行预定操作(其指定编码目标文件30并且指示开始对编码目标文件30的编码)时的定时处被执行。

如图11所示,识别单元41识别存储在编码目标文件30中的结构化文档的文档结构(s10)。编码单元42根据针对与文档结构相对应的层次结构的编码规则来对具有所识别的文档结构的文档的每个层次中的字符串进行编码(s11)。例如,编码单元42根据常见编码规则来对标签进行编码。编码单元42根据针对每个层次的编码规则来对由标签界定的部分上的字符串进行编码。编码单元42将编码数据存储在编码数据32中(s12)。创建单元43针对每个编码规则创建指示在编码字符串中出现的模式的索引33(s13),并且处理结束。

接下来,将描述根据本实施方式的用于搜索满足搜索条件的文件的编码装置10的搜索处理的流程。首先,将描述在没有针对搜索条件指定层次的情况下的搜索处理的流程。图12是图示了搜索处理的步骤的示例的流程图。这样的搜索处理在预定定时例如在执行预定操作(其指定搜索条件并指示开始搜索)时的定时处被执行。

如图12所示,搜索单元52参考词典数据31的静态词典34和动态词典35来确定是否存在与搜索条件的关键词相对应的代码(s20)。在不存在代码的情况下(s20:否),搜索单元52将关键词分解成词或数值,以对词或数值中的每一个进行编码,并且识别与词或数值中的每一个相对应的代码(s21)。搜索单元52参考每个索引33来识别具有与其中出现的词或数值中的每一个相对应的代码的文件的文件编号(s22)。搜索单元52搜索搜索条件的字符串是否被包括在具有所识别的文件编号的编码目标文件30中(s23)。

另一方面,在存在代码的情况下(s20:是),搜索单元52参考索引33来识别其中出现有识别代码的文件的文件编号(s24)。

输出单元53输出搜索的结果,并且处理结束(s25)。例如,在搜索包括搜索条件的字符串的编码目标文件30的情况下或在编码目标文件30的文件编号由搜索单元52识别的情况下,输出单元53输出编码目标文件30的文件名称。

接下来,将描述在针对搜索条件指定层次的情况下的搜索处理的流程。图13是图示了搜索处理的步骤的示例的流程图。这样的搜索处理在预定定时例如在执行预定操作(其指定搜索条件并且指示开始搜索)时的定时处被执行。

如图13所示,搜索单元52参考词典数据31的静态词典34和动态词典35来确定是否存在与搜索条件的关键词相对应的代码(s30)。在不存在代码的情况下(s30:否),搜索单元52将关键词分解成词或数值,以对词或数值中的每一个进行编码,并且识别与词或数值中的每一个相对应的代码(s31)。搜索单元52参考指定层次中的索引33来识别具有与其中出现的词或数值中的每一个相对应的代码的文件的文件编号(s32)。搜索单元52搜索搜索条件的字符串是否被包括在具有所识别的文件编号的编码目标文件30中(s33)。

另一方面,在存在代码的情况下(s30:是),搜索单元52参考指定层次中的索引33来识别其中出现有识别代码的文件的文件编号(s34)。

输出单元53输出搜索的结果,并且处理结束(s35)。例如,在搜索包括搜索条件的字符串的编码目标文件30的情况下或在编码目标文件30的文件编号由搜索单元52识别的情况下,输出单元53输出编码目标文件30的文件名称。

接下来,将描述根据本实施方式的用于对编码数据32进行解码的编码装置10的解码处理的流程。图14是图示了解码处理的步骤的示例的流程图。这种解码处理在预定定时例如在执行预定操作(其指定作为用于解码的目标的解码数据32并且指示开始解码)时的定时处被执行。

解码单元62从已被指定的编码数据32读取代码数据(s40)。解码单元62通过使用与层次相对应的词典数据31的静态词典34和动态词典35来将所读取的代码数据解码成字符串(s41)。解码单元62确定编码数据32的读取是否已经完成(s42)。在未完成读取的情况下(s42:否),执行转到s40。另一方面,在已经完成读取的情况下(s42:是),处理结束。优点

如上所述,根据本实施方式的编码装置10识别结构化文档的文档结构。编码装置10采用针对与文档结构相对应的层次结构的编码规则来对具有所识别的文档结构的文档中的特定层次中的字符串进行编码。因此,编码装置10可以仅对特定层次部分中的代码进行解码,并且因此可以减少使用编码装置10的处理量。

根据本实施方式的编码装置10根据常见编码规则来对在文档中限定文档结构的字符串进行编码。因此,编码装置10可以采用常见编码规则来执行解码,以采用相同的编码规则来恢复在文档中限定文档结构的字符串,并且因此可以快速地识别文档结构,以便可以提取特定层次中的数据。

根据本实施方式的编码装置10采用相同的编码规则来对具有类似的数据属性的层次中的字符串进行编码。因此,编码装置10可以通过相同的词典数据31来对具有类似的数据属性的层次中的字符串进行编码。

根据本实施方式的编码装置10根据与出现在特定层次中的字符串的特性相对应的编码规则来对特定层次中的字符串进行编码。因此,编码装置10可以采用与特定层次中的字符串的特性相对应的编码规则来对特定层次中的字符串进行编码。

在具有类似的数据属性的单个层次或多个层次中,根据本实施方式的编码装置10根据将具有高出现频率的模式转变成短代码的编码规则来执行编码。因此,编码装置10可以以高压缩率来对编码目标文件30进行编码。

根据本实施方式的编码装置10创建指示出现在编码字符串中的模式的索引33。因此,编码装置10可以基于索引33来识别具有出现模式的编码目标文件30。

虽然上面已经描述了与所公开的装置相关的实施方式,但是所公开的技术可以以除了上述实施方式以外的各种不同的实施方式来实现。在下文中,将描述被包括在本发明中的其他实施方式。

例如,虽然在如上所述的实施方式中已经描述了词典数据31的静态词典34中预先存储有与具有高出现频率的模式相对应的代码的情况,但这并非限制性的。例如,可以通过文档的每个层次中的分析来获得每个出现模式(例如字符串中的词或数字)的出现频率,以便向具有高出现频率的模式分配短代码,以便对该模式进行编码。词典数据31可以将出现的模式和所分配的代码相互关联并且存储出现的模式和所分配的代码。

虽然在上述实施方式中已经描述了以层次为单位将代码存储在词典数据31中的情况,但这不是限制性的。例如,可以使用常见词典数据31。可以以层次为单位在词典数据31中共同地登记并且管理代码的一部分。图15是图示了代码的分配的示例的示图。图15图示了在以层次为单位在词典数据31中共同地登记并且管理代码的一部分的情况下的代码的分配的示例。对于代码“8*h”到“a*h”而言,在每个层次中共同地登记并且管理代码。例如,通过常见词典数据31来管理整个文件中的代码可以是高效的。例如,作为数值的信息的na(非输入)或空值(在字符串或数值中常见的无值)可以由另一值来表示。在这种情况下,可以通过常见词典数据31来整体地管理代码。即使在整体地管理代码的情况下,0.0可以是针对数值的na,并且可以将-99.9分配到针对另一值的na。优选的是,整体地管理在遍及整个文档出现时的字符串的代码。例如,在电子书的小说中的主要人物的名称出现在概述、正文和评论中的情况下,优选的是,整体地管理主要人物的名称的代码。另一方面,以层次为单位来管理代码可以是高效的。例如,在以层次为单位来限定适当的范围的情况下,优选的是,以层次为单位来管理代码。在偏离适当的范围的情况下,执行编码成na或null。例如,在35.0至42.0的范围内准备词典数据31作为针对人体温度的词典。在34.8作为体温出现的情况下,向体温分配na或null,或者动态地分配代码以便编码。在120.0到222.3的范围内准备词典数据31作为针对人体高度的词典。在值231.2作为身高出现的情况下,向身高分配na或null,或者动态地分配代码以便编码。

如附图中所示的每个装置的每个部件在功能上是概念性的,并且不要求如附图中所示的那样物理地被配置。也就是说,每个装置中的分散或整体的特定状态不限于附图中所示的那样,并且可以以下述这样的方式来提供每个装置的配置:可以取决于各种负载、用途等使其全部或一部分在功能上或物理上分散或集成在任意单元中。例如,作为识别单元41、编码单元42、创建单元43、接受单元51、搜索单元52、输出单元53、接受单元61和解码单元62的编码装置10的各自的处理单元可以适当地被集成。编码装置10的上面所提及的处理单元中的每一个的处理可以适当地被分成用于多个处理单元的处理。在每个处理单元中执行的每个处理功能的全部或任何部分可以由cpu和由cpu分析并执行或由基于有线逻辑的硬件实现的程序来实现。

编码程序

还可以通过在计算机系统例如个人计算机或工作站中执行预先准备的程序来实现针对如上所述的实施方式所描述的各种处理。在下文中,将描述执行具有与上述实施方式的功能相同的功能的程序的计算机系统的示例。首先,将描述用于执行编码处理的编码程序。图16是图示了执行编码程序的计算机的示例的示图。

如图16所示,计算机400包括中央处理单元(cpu)410、硬盘驱动器(hdd)420和随机存取存储器(ram)440。这些单元410至440中的每一个通过总线500相互连接。

hdd420预先存储实现与如上所述的编码装置10的识别单元41、编码单元42和创建单元43的功能类似的功能的编码程序420a。可以适当地划分编码程序420a。

hdd420存储各种信息。例如,hdd420存储用于os或编码的各种数据。

cpu410从hdd420读取编码程序420a,并且执行编码程序420a,以便执行与实施方式的每个处理单元的操作类似的操作。也就是说,编码程序420a执行与识别单元41、编码单元42和创建单元43的操作类似的操作。

不要求从开始起将如上所述的编码程序420a存储在hdd420中。

搜索程序

接下来,将描述用于搜索编码数据32的搜索程序。图17是图示了执行搜索程序的计算机的示例的示图。与图16的部分相同的部分将被设置有相同的符号,以省略对相同部分的描述。

如图17所示,hdd420预先存储实现与如上所述的编码装置10的接受单元51、搜索单元52和输出单元53的功能类似的功能的搜索程序420b。可以适当地划分搜索程序420b。

hdd420存储各种信息。例如,hdd420存储用于os或搜索的各种数据。

cpu410从hdd420读取搜索程序420b,并且执行搜索程序420b,以便执行与实施方式的每个处理单元的操作类似的操作。也就是说,搜索程序420b执行与接受单元51、搜索单元52和输出单元53的操作类似的操作。

也不要求从开始起将如上所述的搜索程序420b存储在hdd420中。解码程序

接下来,将描述用于对满足搜索条件的文件进行解码的解码程序。图18是图示了执行解码程序的计算机的示例的示图。与图16和图17的部分相同的部分将被设置有相同的符号,以省略对相同的部分的描述。

如图18所示,hdd420预先存储实现与如上所述的编码装置10的接受单元61和解码单元62的功能类似的功能的解码程序420c。可以适当地划分解码程序420c。

hdd420存储各种信息。例如,hdd420存储用于os或解码的各种数据。

cpu410从hdd420读取解码程序420c,并且执行解码程序420c,以便执行与实施方式的每个处理单元的操作类似的操作。也就是说,解码程序420c执行与接受单元61和解码单元62的操作类似的操作。

也不要求从开始起将如上所述的解码程序420c存储在hdd420中。

例如,编码程序420a、搜索程序420b、解码程序420c可以被存储在被插入到计算机400中的“便携式物理介质”例如软盘(fd)、cd-rom、dvd盘、磁光盘或ic卡中。计算机400可以从便携式物理介质读取程序,并且执行该程序。

程序被存储在通过公共线路、互联网、lan、wan等连接到计算机400的“另一计算机(或服务器)”等中。计算机400可以从另一计算机(或服务器)读取程序,并且执行该程序。

根据一个实施方式,提供了可以执行与文档结构相对应的编码的优点。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1