CN1288581C - 用缩减大小的索引进行文献检索的设备 - Google Patents
用缩减大小的索引进行文献检索的设备 Download PDFInfo
- Publication number
- CN1288581C CN1288581C CNB021315280A CN02131528A CN1288581C CN 1288581 C CN1288581 C CN 1288581C CN B021315280 A CNB021315280 A CN B021315280A CN 02131528 A CN02131528 A CN 02131528A CN 1288581 C CN1288581 C CN 1288581C
- Authority
- CN
- China
- Prior art keywords
- occurrence
- word
- index
- piece
- gram
- 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.)
- Expired - Fee Related
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/30—Information retrieval; Database structures therefor; File system structures therefor of unstructured textual data
- G06F16/31—Indexing; Data structures therefor; Storage structures
- G06F16/316—Indexing structures
- G06F16/328—Management therefor
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/30—Information retrieval; Database structures therefor; File system structures therefor of unstructured textual data
- G06F16/31—Indexing; Data structures therefor; Storage structures
- G06F16/316—Indexing structures
- G06F16/319—Inverted lists
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y10—TECHNICAL SUBJECTS COVERED BY FORMER USPC
- Y10S—TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y10S707/00—Data processing: database and file management or data structures
- Y10S707/99931—Database or file accessing
- Y10S707/99933—Query processing, i.e. searching
- Y10S707/99935—Query augmenting and refining, e.g. inexact access
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y10—TECHNICAL SUBJECTS COVERED BY FORMER USPC
- Y10S—TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y10S707/00—Data processing: database and file management or data structures
- Y10S707/99941—Database schema or data structure
- Y10S707/99942—Manipulating data structure, e.g. compression, compaction, compilation
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y10—TECHNICAL SUBJECTS COVERED BY FORMER USPC
- Y10S—TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y10S707/00—Data processing: database and file management or data structures
- Y10S707/99941—Database schema or data structure
- Y10S707/99944—Object-oriented database structure
- Y10S707/99945—Object-oriented database structure processing
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Data Mining & Analysis (AREA)
- Databases & Information Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Business, Economics & Management (AREA)
- General Business, Economics & Management (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
一种用于在多个登记文献中检索包括查询字符串的文献的文献检索设备,包括:文本切分单元,将登记的文献和查询字符串分成n-gram和字;n-gram索引,其中在特定n-gram的基础上存储与登记文献中出现的n-gram的具体值有关的信息;字边界位置索引,其中以压缩形式存储与登记文献中出现的字边界的具体值有关的信息;基于字符串的搜索单元,通过在所述n-gram索引中查找一个或多个n-gram的查询字符来识别包括查询字符串的一个或多个登记文献;以及基于字的搜索单元,通过在所述字边界位置索引中查找一个或多个字的查询字符串来检查查询字符串是否作为字出现在所述一个或多个识别的登记文献中,从而识别包括作为字的查询字符串的登记文献。
Description
技术领域
本发明一般地涉及文献检索设备,文献检索方法,程序以及其中包含该程序的计算机可读媒体,尤其涉及用于从一组已登记的文献中检索包括查询字符串的文献的文献检索设备,文献检索方法,程序以及其中包含该程序的计算机可读媒体。
背景技术
从一组已登记的文献中检索想要的文献的文献检索方法包括基于字符串的检索方法和基于字的检索方法。
基于字符串的检索方法搜索包括与用户指定的字符串(下文称为查询字符串)匹配的字符串的文献。为了提高基于字符串的检索方法的速度,已知的方法利用n-gram索引,这种索引利用设置为索引单位的n-字符提前准备出来。n-gram索引在一个索引接一个索引的基础上记录相关文献的标识符和在文献中的具体值位置。
基于字的检索方法搜索包括与用户指定的字符串匹配的字的文献。为了提高基于字的检索速度,已知的方法利用字索引,这种字索引用文献字作为索引单位提前准备出来。字索引在一个索引接一个索引的基础上记录相关文献的标识符和在文献中具体值的位置。
两种检索方法都有自己的缺陷。在基于字符串的检索方法的情况下,忽略字边界进行搜索,导致搜索结果包括不能正确体现用户意图的文献。例如,用查询字符串“tainden”(电气化)会导致检索到“ketaidenwa”(蜂窝电话)。
在基于字的检索方法的情况下,因为在日语句子中没有清楚地指示字边界,所以在生成索引时需要通过形态学分析抽取字。但是,在目前科技水平上,形态学分析不能避免错误。这种形态学分析中的错误可能是搜索错误的原因。例如,形态学分析应该将“tokyotoniarukiyomizudera”转换成“/to/Kyoto/ni/aru/kiyomizudera/”。如果产生错误的分析结果“/Tokyo/to/ni/aru/kiyomizu/dera/”,则在查询字符串为“Kyoto”时不能检索到句子“tokyotoniarukiyomizudera”。
为了避免上述问题,系统可以提供两种检索方法,以便允许用户根据用户需要选择其中的一个检索方法。日本专利申请No.2000-67070公开了这种现有技术检索方法。在该文献中,在句子登记时在字之间插入特殊的段标记字符,从其中插入具有段标记字符的数据中提取n-gram,接着生成索引。在这样做的过程中,通过连接跨越段标记字符的字而形成的n-gram也作为索引被提取和登记。当用户选择基于字的索引方法时,搜索过程不忽略其中包括段标记的n-gram。另一方面,当选择基于字符串的检索方法时,搜索过程忽略其中包括段标记的n-gram。
日本专利申请No.7-85033公开了另一个现有技术。在该技术中,在特定字符的基础上识别其中具有具体值的字符的文献,并记录在文献中的具体值位置。而且,记录标记来指示具体值位置是在字的开头还是在字的结尾。搜索时,根据特定字符具体值的位置来实现基于字符串的搜索,此外,通过查询表示字开头或结尾的标记来完成基于字的搜索。
日本专利申请No.2000-67070教导的方案有以下缺陷。根据该公开内容,字边界用段标记字符表示。由于字符通常用固定长度码(例如,当用Unicode(UCS2)时是2字节)表示,因此在将任何可能值作为具有很多含义的字符来处理的地方,该方法是不适用的。
日本专利申请No.7-85033教导的方案有以下缺陷。由于基于字符串的检索是以字符搜索为基础进行的,搜索速度比用n-gram索引时的速度慢。
两种方案的共同问题如下。当切分字的形态学分析系统更新时(或字典更新时),边界的位置可能改变,导致可能重新生成整个索引。因此,索引的维护耗时。
考虑到这个问题,已经提出的文献检索方法是:利用字边界位置索引来提供基于字的检索,这种索引不同于基于字符串的检索所用的n-gram索引,从而实现高速索引,而且索引容易维护。这种方法被转让给该申请的受让人。
但是,当使用这种字边界位置索引时,索引大小可能由于字边界位置索引需要记录大量的字具体值位置而变得相当大。
因此,需要能减小字边界位置索引大小的文献检索设备,文献检索方法,及其中记录有程序的计算机可读媒体。
此外,还需要能提高搜索速度的文献检索设备,文献检索方法和其中记录有程序的计算机可读媒体。
发明内容
本发明的一般目的是提供能基本消除由于现有技术的局限和缺陷所造成的一个或多个问题的文献检索设备,文献检索方法,及其中记录有程序的计算机可读媒体。
本发明的另一个和更具体的目的是提供能减小字边界位置索引大小的文献检索设备,文献检索方法,及其中记录有程序的计算机可读媒体。
为了实现本发明的上述目的,一种文献检索设备,用于在多个登记的文献中检索包括查询字符串的文献,包括:文本切分单元,将登记的文献和查询字符串分成n-gram和字;n-gram索引,其中在特定n-gram的基础上存储与登记文献中出现的n-gram的具体值有关的信息;字边界位置索引,其中以压缩形式存储与登记文献中出现的字边界的具体值有关的信息;基于字符串的搜索单元,通过在所述n-gram索引中查找一个或多个n-gram的查询字符来识别包括查询字符串的一个或多个登记文献;以及基于字的搜索单元,在所述字边界位置索引中通过查找一个或多个字的查询字符串来检查查询字符串是否作为字出现在所述一个或多个所识别的登记文献中,从而识别包括作为字的查询字符串的登记文献。
在上述设备中,基于字的搜索功能通过字边界位置检索来实现,字边界位置索引与为基于字符串搜索目的而使用的n-gram索引分开。因此,本发明可适用于任何字符码,并提供高速搜索和更容易进行索引维护。此外,由于与具体值有关的信息以压缩形式存储在字边界位置索引中,因此可以将索引的大小作小。
根据本发明的另一个方面,上述文献检索设备是使所述字边界位置索引由多个块组成,这些块分别包含压缩形式的字边界具体值的位置。
由于字边界具体值的位置存储在分开的块中,与以搜索时需要长度扩展时间的直接方式压缩整个字边界位置索引的情况相比,减少了扩展所需的时间。
根据本发明的另一个方面,如上所述的文献检索设备是使多个块具有固定块长度。
根据这种设备,用块存储字边界具体值的位置变得更容易实施。
根据本发明的另一个方面,如上所述的文献检索设备是使多个块具有固定的块长度,在一系列多个块中只有位于最后的一个块的长度比固定块长度短。
这有可能进一步缩减索引的大小。
根据本发明的另一个方面,如上所述的文献检索设备是使每个块包括给定具体值位置的压缩数据和对于给定具体值以外的具体值在具体值位置和在前具体值位置之间差别的压缩数据,所述给定具体值是块中第一个具体值或块中最后一个具体值。
在如上所述设备中,只扩展块开头或结尾的数据直至识别出块有可能包括查询字符串的具体值位置为止。这样,可以减少需要扩展的数据量。
根据本发明的另一个方面,如上所述文献检索设备是使每个块包括给定具体值位置的未压缩数据和对于给定具体值以外的具体值在具体值位置和在前具体值位置之间差别的压缩数据,所述给定具体值是块中第一个具体值或块中最后一个具体值。
由于非差别数据形式的第一具体值或最后具体值的位置不进行数据压缩地得以存储,因此可进一步提高搜索速度。
根据本发明的另一个方面,上述文献检索设备是使每个块包括块中最后一个具体值位置的数据、和具体值位置与相关于除最后一个具体值以外的具体值的前一个具体值位置之间差别的压缩数据,除了最后一个块不带最后一个具体值的位置数据之外。
根据这种设备,可提高搜索速度同时减少数据量。
根据本发明的另一个方面,上述文献检索设备是使所述n-gram索引中以压缩形式存储与n-gram的具体值有关的信息,这种压缩形式是通过应用不同于所述字边界位置索引所应用的编码方法的编码方法来获得的。
根据这种设备,可实现有效的数据压缩。
此外,上面提到的目的也可以通过在多个登记文献中检索包括查询字符串的文献的方法来实现。该方法包括以下步骤:将登记文献和查询字符串切分成n-gram和字,以特定n-gram为基础将与登记文献中出现的n-gram的具体值有关的信息存储在n-gram索引中,以压缩形式将登记文献中出现的与字边界具体值有关的信息存储在字边界位置索引中,通过在所述n-gram索引中查找一个或多个n-gram的查询字符串来识别包括查询字符串的一个或多个登记文献,通过在所述字边界位置索引中查找一个或多个字的查询字符串来检查查询字符串在所述一个或多个识别的登记文献中作为字出现,从而作为字识别包括查询字符串的登记文献。
此外,上述目的也可以通过其中包括了执行上述步骤的程序的计算机可读记录媒体来实现。
以下结合附图对本发明进行详细说明,可以使其他目的和特征更明显。
附图说明
图1是根据本发明的文献检索设备的硬件配置的示意方框图;
图2是表示文献检索设备执行的功能的功能块的方框图;
图3A-3D是登记过程的示例图;
图4是压缩过程的流程图;
图5A是具体值位置的示例图;
图5B是具体值位置的差别的示例图;
图5C是对差别进行可变长度编码所得到的结果示例图;
图6是基于字的搜索过程的流程图;
图7是根据第二实施例的表示具体值位置的压缩信息的示例图;
图8是在字边界位置索引中找出具体值位置的过程流程图,该位置相当于通过n-gram索引搜索发现的查询字符串的具体值的位置;
图9是字边界位置索引的示例图;
图10是使用具有较短长度的最后一个块的示意图;
图11是解释根据第三实施例压缩信息的示意图;
图12是在字边界位置索引中找出具体值位置的过程流程图,该位置相当于通过n-gram索引搜索找出的查询字符串的具体值的位置;
图13是一例字边界位置索引的示例图;
图14是解释根据第四实施例压缩信息的示意图;
图15是在字边界位置索引中找出具体值位置的过程流程图,该位置相当于通过n-gram索引搜索找出的查询字符串的具体值的位置。
具体实施方式
下面,参考附图描述本发明的实施例。
图1是根据本发明的文献检索设备的硬件配置的示意方框图。
图1的文献检索设备1包括CPU(中央处理器)2,用于集中控制文献检索设备1的每个单元。CPU2经总线5连接到其中存储BIOS等的ROM(只读存储器)3和以可重写方式存储各种数据的RAM(随机存储器)4。总线5还经I/O接口(未示出)连接到用做外部数据存储的HDD(硬盘驱动器)6、读出CD-ROM(致密盘ROM)7的CD-RAM驱动器8、在文献检索设备1和网络9之间通信的通信控制装置10,输入装置11包括键盘、鼠标等,输出装置12包括CRT(阴极射线管)、LCD(液晶显示器)等。
RAM4可以以可重写方式存储不同的数据以便为CPU2提供工作区域,用做输入缓冲器、分析缓冲器等。HDD6中存储包含不同程序的程序文件。
图1的CD-ROM7可以包含本发明的存储媒体,其中存储程序。CPU2通过CD-ROM驱动器8读出存储在CD-ROM7中的程序,在HDD6中安装该程序。该安装使文献检索设备1完成不同的过程,这将在下文描述。
作为记录媒体,除CD-ROM 7以外可以使用各种媒体,包括光盘例如DVD,磁光盘,磁盘例如软盘,半导体存储器等。此外,可以经通信控制装置10从网络9例如因特网上下载程序安装在HDD6中。在这种情况下,在传输端服务器中存储了程序的存储装置也构成本发明的存储媒体。程序可以在预定的操作系统中运行,可以让操作系统接管一些过程,这将在下文描述。此外,可以将程序合并为应用软件,例如字处理程序的一部分,或者合并为构成操作它的一组程序文件的一部分。
下面,对在程序基础上由文献检索设备1的CPU2完成的各种过程进行描述。本发明的文献检索设备1利用基于程序操作的CPU2实现各种功能。图2是表示文献检索设备1完成的功能的功能块方框图。
图2中,当用户通过输入装置11或CD-ROM驱动器8输入作为查询的一部分或者作为登记文献给出文本时,文本切分单元21将文本分成n-gram和字。利用形态学分析来切分成字。为了达到这个目的,可以使用任何已知的形态学分析方法。
为实现检索目的,n-gram索引22中存储与登记文献分开的与n-gram有关的信息。
为实现检索目的,字边界位置索引23中存储与由切分登记文献产生的字边界的具体值有关的信息。
基于字符串的搜索单元24基于由文本切分单元21与查询字符串切分的n-gram利用n-gram索引22搜索表现查询字符串的文献。
基于字的搜索单元25确定查询串是否作为字出现在基于字符串的搜索单元24产生的基于字符串的搜索结果中。该确定是利用字边界位置索引23作出的。
下面,描述基于程序通过文献检索设备1的CPU2执行的登记过程。文本切分单元21、n-gram索引22和字边界位置索引23一起使用来执行登记过程。在登记过程中,给出的文献通过文本切分单元21切分成n-gram和字,与具体值有关的信息存储在n-gram索引22和字边界位置索引23中。图3A-3D是登记过程的例图。
图3A示出了登记的文献DOCUMENT1的内容,其中为了解释,一起示出了日语句子和英文字母音译。图3B示出了对文献DOCUMENT1施加的形态学分析的结果。由于在该例中搜索单元是双-gram(即,两个字符组:n=2的n-gram),该文献划分成“keitai”和“taiden”这样的双-gram,从而产生如图3C所示的n-gram索引22。在图3C中,左手侧上的字符串(例如“keitai”)表示双-gram,是搜索单位,右手侧的数字是包括在该搜索单元中的文献标识符、在标识的文献中的具体值数字和具体值的位置(在文献开始处通过从1开始的顺序号识别位置)。例如,“taiden”的(1,1,(5))表示在文献DOCUNMENT1中发现一个具体值,具体值的位置在第五个字符上。应注意,n-gram索引22可以利用除n=2的双-gram以外的n-gram来配置。可以根据字符类型改变系数n。由于要搜索的数据量大,最好压缩数据使其紧密。压缩n-gram索引22的方法,例如日本专利申请2000-348059所公开的方法。
图3D示出了通过字边界位置索引23作为形态学分析获得的字边界位置。数据符号与n-gram索引22情况中的相同。(1,5,(1,3,4,6,8)意味着在第1、第3、第4、第6和第8字符的位置上在文献DOCUMENT1中发现总共5个具体值。属于第8个字符的最后一个位置相当于最后一个字的末端位置。
由于需要在字边界位置索引23中记录大量字具体值的位置,最好压缩记录在字边界位置索引23中的信息。下面,描述字边界位置索引23的压缩。
在记录在字边界位置索引23中的信息中,文献中字边界具体值的位置更需要大量数据。图4是压缩过程的流程图。
在步骤S1中,获得具体值当前位置和具体值前一个位置之间的差别。在开头,将具体值后面的位置看成“0”。
在步骤S2,利用可变长度的码表示具体值位置的差别。
在图3D所示的字边界位置索引23的例子中,具体值位置是(1,3,4,6和8)。图5A示出了具体值的位置,图5B示出了具体值位置的差别。图5C论证了对差别进行可变长度编码得到的结果。在该例中,γ编码用做可变长度编码,这在I.H.Witten等的“管理千兆字节(第二版)”,Morgan Kaufmannp.p.117)中有描述。
下面,描述基于程序由文献检索设备1的CPU2执行的基于字符串的搜索。基于字符串的搜索由基于字符串的搜索单元24完成。在该基于字符串的搜索中,利用涉及文本切分单元21划分的n-gram的只与具体值有关的信息或与具体值加具体值位置有关的信息来确定包括查询字符串的文献。下面用图3A-3D的例子解释基于字符串的搜索。
当“tai den”是查询字符串时,由于该查询字符串本身是双-gram,因此文本切分单元21提取“tai den”。基于字符串的搜索单元24搜索n-gram索引22,发现“tai den”出现在文献DOCUMENT1中,从而产生表示文献DOCUMENT1的搜索结果。如果查询字符串是“kei tai den wa”,则文本切分单元21提取三个双-gram,即“kei tai”,“tai den”和“den wa”。接着,如果该文献在连续位置上出现这些双-gram,则基于字符串的搜索单元24识别包括所有这些双-gram的文献,产生表示该文献的搜索结果。在该例中,在连续位置上,“kei tai”,“tai den”和“den wa”的具体值的位置分别是4,5,6。由此查明,“kei tai den wa”出现在文献DOCUMENT1中的位置4上,从而能作为搜索结果识别文献DOCUMENT1。
下面,描述基于程序由文献检索设备1的CPU2执行的基于字的搜索。基于字的搜索单元25执行基于字的搜索。在该基于字的搜索中,检查基于字符串的搜索单元24得到的查询字符串的具体值是否是作为字的一个具体值。图6是基于字的搜索过程的流程图。
在步骤S11中,对查询字符串进行形态学分析来识别其中的字边界。
在步骤S12中,进行查询字符串的搜索来识别包括查询字符串的文献。这里,如果程序从步骤S13返回,则识别包括查询字符串的下一篇文献。如果未发现文献(在步骤S12为N),则程序结束。
在步骤S13,获得关于在步骤S12找到的文献的查询字符串的具体值位置。如果程序从步骤S14返回,则获得查询字符串的下一个具体值位置。如果未发现位置(在步骤S13为N),则程序回到S12。
在步骤S14,从字边界位置索引23获得在步骤S13得到的包括从具体值开始位置到具体值结束位置的字边界。
在步骤S15,检查在步骤S14获得的字边界的相关位置是否对应于在步骤S11获得的查询字符串的字边界。如果它们匹配(在步骤S15为Y),则在步骤S12识别的文献加到搜索结果中(步骤S16),接着程序返回步骤S12。如果相关位置不匹配查询字符串的字边界(在步骤S15为N),则程序返回S13。
下面参考查询字符串“tai den”的例子进行详细描述。通过形态学分析得到结果“tai den”,在该例中的字边界是第一和第三个字符(即,开头的位置是第一个字符,最后一个位置是字的长度(即2字符)加开头的位置)。当搜索字符串并发现文献DOCUMENT1时,将具体值的位置识别成第5字符至第7字符。但是,在该文献中,在第4和第6个字符处的字边界不匹配以上字边界。不能找到具体值或文献的其他位置,因此,基于字的搜索以表现未标识的文献的搜索结果而告终。即,“tai den”没有作为一个字出现。
下面参考使用查询字符串“kei tai den wa”的另一个例子再进行描述。通过形态学分析获得结果“kei tai”和“den wa”,在该例中的字边界是第1、第3和第5个字符。当搜索字符串并找到文献DOCUMENT1时,具体值的位置被识别成第4个字符至第8个字符。字边界是具体值附近的第4、第6和第8个字符,匹配查询字符串的字边界。所以,将文献DOCUMENT1加入搜索结果。在这种方法中,字边界用序号表示,这些序号是通过从文献开头计数字符获得的,不需要使用特殊字符,因此这种方法适用于任何字符码。由于字边界的产生和管理是与对基于字符串的搜索的n-gram索引分开的,因此在形态学分析系统被改变时能仅重建字边界位置索引。
由于使用与基于字符串的搜索的n-gram索引22分开的字边界位置索引23进行基于字的搜索,因此可普遍适用于任何字符代码。此外,还能实现高速搜索,也使索引的维护更容易。由于与具体值有关的信息以压缩形式记录在字边界位置索引23中,因此字边界位置索引23的大小可以更紧凑。
下面,描述本发明的第二实施例。在该描述中,与前面实施例相同的元件用相同的数字表示,描述从略。第二实施例是用于记录在文献检索设备1的字边界位置索引23上的信息压缩的变形例。
在日语中,字的平均长度约为2-3个字符。文献越长,文献中的具体值数越大。如果查询字出现在文献末尾附近,第一实施例的方法需要扩展大数据量以便检查查询字的具体值位置是否匹配字边界。这使搜索时间拉长。因此,在第二实施例中,将压缩信息(表示具体值的位置)分成块,以便减少扩展出来的负荷,从而提高搜索速度。
图7示出了根据第二实施例的压缩信息(表示具体值的位置)的图。如图7所示,记录在文献检索设备1的字边界位置索引23中的具体值位置利用根据第二实施例的规定长度块来压缩的。块的第一部分以压缩形式记录具体值的位置,而不取出与前一个具体值位置相关的差别,块的其余部分以压缩形式记录与前一个具体值位置相关的差别。将差别尽可能多地插入块中。这里,通过以压缩形式记录块数可以容易地识别块的总数。或者,用于以压缩形式表示具体值位置的位数可以记录下来,以便能从块大小容易地获得块数。
图8是字边界位置索引中具体值位置找出过程的流程图,该字边界位置对应于n-gram索引搜索找到的查询字符串的具体值位置,联系图6的S15来描述。
在步骤S21中,检查是否仅有一个块还是有两个或多个块。
在步骤S22中,如果仅有一个块(在步骤S21中为Y),则搜索与查询字符串的具体值位置相对应的具体值位置同时扩展块的数据。然后程序结束(无论发现或未发现具体值位置)。
在步骤S23中,如果有两个或多个块(在步骤S21中为N),则检查在当前块开头通过扩展数据得到的具体值位置是否与查询字符串的具体值位置相同。如果匹配(步骤S23为Y),则程序结束。
如果不匹配(在步骤S23为N),则在步骤S24检查在当前块开头处通过扩展数据得到的具体值位置是否大于查询字符串的具体值位置。如果回答是yes(在步骤S24为Y),则程序进入步骤S25。
在步骤S25,由于具体值的位置必须位于前一个块中,因此将前一个块看成当前块。搜索与查询字符串的具体值位置相对应的具体值位置同时扩展当前块的数据。然后,程序结束(无论发现或未发现具体值位置)。
如果在当前块开头处通过扩展数据得到的具体值的位置不大于查询字符串的具体值位置(步骤S24为N),则在步骤S26检查是否存在下一个块。如果有下一个块(步骤S26为Y),则程序返回步骤S23。
如果当前块是最后一个块(步骤S26为N),则查明查询字符串的具体值位置必须位于当前块中。因此,在步骤S27,搜索与查询字符串的具体值位置相对应的具体值位置同时扩展当前块的数据。然后,程序结束(无论发现或未发现具体值位置)。
在上述过程中,仅扩展块开头处的数据直至识别出块中有可能包括查询字符串的具体值位置。因此需要扩展的数据量可以减少。
例如,图9示出了具体值位置是(1,3……,203,205,……385,388,……450,452,……500)且压缩在具有固定块长度的三个独立块中的情况。图9中,为了简化说明,以非压缩形式示出了每个块开头出的具体值位置。例如,如果字“tai den“出现在位置“450”,则容易说出位置“450”位于块BLOCK3中。在这种情况下,则仅能观察BLOCK1和BLOCK2开头处的具体值位置。
以这种方式,将在文献中表示字边界的具体值位置记录在块中。根据这种操作,与以搜索时需要拉长扩展过程的直接方式压缩信息的情况相比,可缩短扩展所需时间,提高搜索速度。
此外,块包括表示该块中第一个具体值位置的压缩数据,包括表示关于除块中第一个具体值以外的其它具体值的给定位置和前一个具体值之间差别的压缩数据。直至识别出其中有可能包括具体值位置的块,才能在每个块中仅扩展第一个具体值位置。这减少了需要被扩展的数据量。
在该实施例中,使用具有固定长度的块,其中以压缩形式记录具体值位置和前一个具体值位置之间的差别。或者,最后一个块的长度比固定长度(即,需要以压缩形式包含其他具体值位置的长度)短。这进一步减小了索引的大小。图10示出了使用具有更短长度的最后一个块的图。
下面,描述本发明的第三实施例。第三实施例是一种适用于文献检索设备1的字边界位置索引23中记录的信息压缩的变形。
根据在第二实施例中使用的信息压缩方法,块的第一个数据需要扩展,以便识别其中有可能包括查询字符串的具体值位置的块。而且在某些情况下,程序需要回到前一个块。这些因素妨碍了搜索速度。考虑到这个问题,第三实施例的目的是进一步提高搜索速度。
图11示出了解释根据第三实施例的压缩信息的图。如图11所示,利用根据第三实施例的块压缩记录在文献检索设备1的字边界位置索引23中的具体值位置。块的第一部分以压缩形式记录与前一个具体值位置有关的差别,作为块的最后一部分的剩余部分以非压缩形式记录具体值的位置而不取出与前一个具体值位置相关的差别。将差别尽可能多地插入该块中。
图12是在字边界位置索引中找到具体值位置的过程的流程图,所述具体值位置相当于通过n-gram索引搜索发现的查询字符串的具体值位置,联系图6的S15来描述。
在步骤S31中,检查在当前块的末尾处的具体值位置是否与查询字符串的具体值位置相同。如果匹配(在步骤S31为Y),则程序结束。
如果不匹配(在步骤S31为N),则在步骤S32检查当前块末尾处的具体值位置是否大于查询字符串的具体值位置。如果答案是yes(在步骤S32为Y),在程序进入步骤S33。
在步骤S33,查明查询字符串的具体值位置,如果有,必须位于当前块中,以便搜索与查询字符串的具体值位置相对应的具体值位置,同时扩展当前块的数据。然后程序结束(无论发现或未发现具体值位置)。
如果在当前块的末尾处具体值位置不大于查询字符串的具体值位置(在步骤S32为N),则程序进入步骤S34。
在步骤S34,下一个块被看作当前块,程序返回步骤S31。
查询字符串的具体值位置总是小于最后一个块末尾处的具体值位置,使得上述程序成功结束。此外,如果当前块是最后一个块,则程序在步骤S31结束或者经步骤S32在步骤S33结束。因此,在步骤S34,毫无例外地存在下一个块。
例如,图13示出了具体值位置是(1,3,……,203,205,……385,388,……450,452,……500)且压缩在三个独立块中的情况。例如如果字“tai den”出现在位置“450”,则容易说出位置“450”位于其末端具体值位置是500的块BLOCK3中。在这种情况下,不需要扩展块BLOCK1和BLOCK2的数据。
块包括表示该块中最后一个具体值位置的非压缩数据,包括表示与除块中最后一个具体值以外的其它具体值的给定位置和前一个位置之间差别的压缩数据。由于不是差别的块中最后一个具体值的位置是未经压缩记录的,因此能进一步提高搜索速度。
下面,描述本发明的第四实施例。第四实施例是记录在文献检索设备1中的字边界位置索引23的信息压缩的变形。
根据第三实施例的信息压缩方法,在每个块的末端处的具体值位置是未经压缩记录的,从而容易执行查询字符串的匹配过程。但是,表示具体值位置所需的数据量却增加了。第四实施例在提高搜索速度的同时减少了数据量。
图14示出了解释根据第四实施例的压缩信息的图。如图14所示,利用根据第四实施例的块压缩文献检索设备1的字边界位置索引23中记录的具体值位置。块的第一部分以压缩形式记录与前一个具体值位置有关的差别,作为块的最后一个部分的其余部分以非压缩形式记录具体值位置而不取出与前一个具体值位置有关的差别。将差别尽可能多地插入块中。在该实施例中,在最后一个块中不提供块末端处的具体值位置。
图15是在字边界位置索引中找到具体值位置的过程的流程图,所述具体值位置相当于通过n-gram索引搜索发现的查询字符串的具体值位置,联系图6的S15来描述。
在步骤S41中,检查当前块是否是最后一个块。如果是最后一个块(在步骤S41为Y),则搜索与查询字符串的具体值位置相对应的具体值位置,同时在进行搜索时(步骤S42)扩展当前块的数据。然后,程序结束,不管找没找到具体值的位置。
如果当前块不是最后一个块(在步骤S41为N),程序进入步骤S43。
在步骤S43,检查当前块末尾处的具体值位置是否与查询字符串的具体值位置相同。如果匹配(在步骤S43为Y),则程序结束。
如果不匹配(在步骤S43为N),则在步骤S44检查当前块末尾处的具体值位置是否大于查询字符串的具体值位置。如果答案时yes(在步骤S44为Y),则程序进入步骤S45。
在步骤S45,查明查询字符串的具体值位置,如果有,则必须位于当前块中,以便搜索与查询字符串的具体值位置相对应的具体值位置同时扩展块的数据。然后程序结束(无论发现或未发现具体值位置)。
如果在当前块末尾处的具体值位置不大于查询字符串的具体值位置(在步骤S44为N),则程序进入步骤S46。
在步骤S46,将下一个块看成当前块,程序返回步骤S41。
如果当前块是最后一个块,则程序在步骤S41结束。在步骤S46,则毫无例外地存在下一个块。
在上述实施例中,在最后一个块中不提供在块末尾处具体值的位置。这能减少数据量同时提高搜索速度。
在上述实施例中,裁定待压缩数据分布的编码方法最好能够减小索引22和23的大小。例如,在字边界位置索引23的情况下,具体值位置的差别表示字的长度,使得差别具有落在小范围内的集中分布。另一方面,n-gram索引22的n-gram将具有随机具体值位置,使得具体值位置的差别具有覆盖宽范围的宽分布。因此,可以对n-gram索引22和字边界位置索引23分别采用不同的编码方法,从而实现有效编码。
此外,本发明不限于这些实施例,可以在不脱离本发明精神的范围内作出各种修改和变形。
本申请基于2001年8月10日在日本特许厅申请的日本在先专利申请2001-243854,这里引入其全文以供参考。
Claims (8)
1.一种用于在多个登记文献中检索包括查询字符串的文献的文献检索设备,包括:
文本切分单元,将登记的文献和查询字符串分成n-gram和字;
n-gram索引存储装置,其中在特定n-gram的基础上存储与登记文献中出现的n-gram的具体值有关的信息;
字边界位置索引存储装置,其中以压缩形式存储与登记文献中出现的字边界的具体值有关的信息;
基于字符串的搜索单元,通过在所述n-gram索引中查找一个或多个n-gram的查询字符来识别包括查询字符串的一个或多个登记文献;以及
基于字的搜索单元,在所述字边界位置索引中通过查找一个或多个字的查询字符串来检查查询字符串是否作为字出现在所述一个或多个识别的登记文献中,从而识别包括作为字的查询字符串的登记文献。
2.根据权利要求1所述的文献检索设备,其中,所述字边界位置索引包括以压缩形式单独包含字边界具体值位置的多个块。
3.根据权利要求2所述的文献检索设备,其中,所述多个块具有固定块长度。
4.根据权利要求2所述的文献检索设备,其中,所述多个块具有固定块长度,除了一系列多个块中位于最后的块的长度小于固定块长度以外。
5.根据权利要求2所述的文献检索设备,其中,每个块包括给定具体值位置的压缩数据、和具体值位置与相关于除给定具体值以外的具体值的前一个具体值位置之间差别的压缩数据,所述给定具体值是块中的第一个具体值或块中的最后一个具体值。
6.根据权利要求2所述的文献检索设备,其中,每个块包括给定具体值位置的非压缩数据、和具体值位置与相关于除给定具体值以外的具体值的前一个具体值位置之间差别的压缩数据,所述给定具体值是块中的第一个具体值或块中的最后一个具体值。
7.根据权利要求2所述的文献检索设备,其中,每个块包括块中最后一个具体值位置的数据、和具体值位置与相关于除最后一个具体值之外的具体值的前一个具体值位置之间差别的压缩数据,除了最后一个块不提供最后一个具体值位置的数据以外。
8.根据权利要求1所述的文献检索设备,其中,所述n-gram索引中以压缩形式存储通过使用与所述字边界位置索引所用的编码方法不同的编码方法获得的与n-gram的具体值有关的信息。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2001243854A JP4342753B2 (ja) | 2001-08-10 | 2001-08-10 | 文書検索装置、文書検索方法、プログラム及びコンピュータに読み取り可能な記憶媒体 |
JP243854/2001 | 2001-08-10 | ||
JP243854/01 | 2001-08-10 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN1402160A CN1402160A (zh) | 2003-03-12 |
CN1288581C true CN1288581C (zh) | 2006-12-06 |
Family
ID=19073882
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CNB021315280A Expired - Fee Related CN1288581C (zh) | 2001-08-10 | 2002-08-10 | 用缩减大小的索引进行文献检索的设备 |
Country Status (4)
Country | Link |
---|---|
US (1) | US7072889B2 (zh) |
EP (1) | EP1288799A3 (zh) |
JP (1) | JP4342753B2 (zh) |
CN (1) | CN1288581C (zh) |
Families Citing this family (37)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7490092B2 (en) | 2000-07-06 | 2009-02-10 | Streamsage, Inc. | Method and system for indexing and searching timed media information based upon relevance intervals |
US7702666B2 (en) * | 2002-06-06 | 2010-04-20 | Ricoh Company, Ltd. | Full-text search device performing merge processing by using full-text index-for-registration/deletion storage part with performing registration/deletion processing by using other full-text index-for-registration/deletion storage part |
US7284009B2 (en) * | 2002-12-13 | 2007-10-16 | Sun Microsystems, Inc. | System and method for command line prediction |
US7454431B2 (en) * | 2003-07-17 | 2008-11-18 | At&T Corp. | Method and apparatus for window matching in delta compressors |
JP4646289B2 (ja) * | 2004-07-14 | 2011-03-09 | 株式会社リコー | データベースマネジメントシステム |
JP4682627B2 (ja) * | 2005-01-27 | 2011-05-11 | 富士ゼロックス株式会社 | 文書検索装置および方法 |
JP4314204B2 (ja) * | 2005-03-11 | 2009-08-12 | 株式会社東芝 | 文書管理方法、システム及びプログラム |
JP4347264B2 (ja) * | 2005-05-20 | 2009-10-21 | キヤノン株式会社 | 文書管理システム |
JP4861078B2 (ja) * | 2006-06-30 | 2012-01-25 | 富士通株式会社 | 索引作成プログラム、索引作成装置および索引作成方法 |
US8261200B2 (en) * | 2007-04-26 | 2012-09-04 | Fuji Xerox Co., Ltd. | Increasing retrieval performance of images by providing relevance feedback on word images contained in the images |
JP2009037359A (ja) * | 2007-07-31 | 2009-02-19 | Hitachi Ltd | データ登録検索方法、データ登録検索プログラムおよびデータベースシステム |
JP5224851B2 (ja) * | 2008-02-27 | 2013-07-03 | インターナショナル・ビジネス・マシーンズ・コーポレーション | 検索エンジン、検索システム、検索方法およびプログラム |
KR101255557B1 (ko) * | 2008-12-22 | 2013-04-17 | 한국전자통신연구원 | 음절 분리에 기반한 문자열 검색 시스템 및 그 방법 |
US8713016B2 (en) | 2008-12-24 | 2014-04-29 | Comcast Interactive Media, Llc | Method and apparatus for organizing segments of media assets and determining relevance of segments to a query |
US9442933B2 (en) | 2008-12-24 | 2016-09-13 | Comcast Interactive Media, Llc | Identification of segments within audio, video, and multimedia items |
US11531668B2 (en) | 2008-12-29 | 2022-12-20 | Comcast Interactive Media, Llc | Merging of multiple data sets |
US8176043B2 (en) | 2009-03-12 | 2012-05-08 | Comcast Interactive Media, Llc | Ranking search results |
US20100250614A1 (en) * | 2009-03-31 | 2010-09-30 | Comcast Cable Holdings, Llc | Storing and searching encoded data |
US8533223B2 (en) | 2009-05-12 | 2013-09-10 | Comcast Interactive Media, LLC. | Disambiguation and tagging of entities |
US9892730B2 (en) | 2009-07-01 | 2018-02-13 | Comcast Interactive Media, Llc | Generating topic-specific language models |
US8914385B2 (en) * | 2010-02-24 | 2014-12-16 | Mitsubishi Electric Corporation | Search device and search program |
JP5441791B2 (ja) * | 2010-03-30 | 2014-03-12 | 株式会社日立ソリューションズ | 検索機能付きファイルストレージ装置及びプログラム |
JP5101759B2 (ja) * | 2010-11-10 | 2012-12-19 | 楽天株式会社 | 関連語登録装置、情報処理装置、関連語登録方法、関連語登録装置用プログラム、および、記録媒体 |
US9424351B2 (en) | 2010-11-22 | 2016-08-23 | Microsoft Technology Licensing, Llc | Hybrid-distribution model for search engine indexes |
US8478704B2 (en) | 2010-11-22 | 2013-07-02 | Microsoft Corporation | Decomposable ranking for efficient precomputing that selects preliminary ranking features comprising static ranking features and dynamic atom-isolated components |
US8713024B2 (en) | 2010-11-22 | 2014-04-29 | Microsoft Corporation | Efficient forward ranking in a search engine |
US9529908B2 (en) | 2010-11-22 | 2016-12-27 | Microsoft Technology Licensing, Llc | Tiering of posting lists in search engine index |
US8620907B2 (en) | 2010-11-22 | 2013-12-31 | Microsoft Corporation | Matching funnel for large document index |
JP5733285B2 (ja) * | 2012-09-20 | 2015-06-10 | カシオ計算機株式会社 | 検索装置、検索方法及びプログラム |
JP5900367B2 (ja) * | 2013-01-30 | 2016-04-06 | カシオ計算機株式会社 | 検索装置、検索方法及びプログラム |
US9535983B2 (en) * | 2013-10-29 | 2017-01-03 | Microsoft Technology Licensing, Llc | Text sample entry group formulation |
US9535883B2 (en) * | 2014-10-24 | 2017-01-03 | Dropbox, Inc. | Modifying native document comments in a preview |
GB201421674D0 (en) * | 2014-12-05 | 2015-01-21 | Business Partners Ltd | Real time document indexing |
US10565182B2 (en) * | 2015-11-23 | 2020-02-18 | Microsoft Technology Licensing, Llc | Hardware LZMA compressor |
US10380195B1 (en) * | 2017-01-13 | 2019-08-13 | Parallels International Gmbh | Grouping documents by content similarity |
KR102326121B1 (ko) | 2017-09-20 | 2021-11-12 | 삼성에스디에스 주식회사 | 텍스트 컨텐츠 인덱싱 방법 및 그 장치 |
US12061637B2 (en) * | 2022-09-11 | 2024-08-13 | Microsoft Technology Licensing, Llc | Heuristic identification of shared substrings between text documents |
Family Cites Families (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5020019A (en) | 1989-05-29 | 1991-05-28 | Ricoh Company, Ltd. | Document retrieval system |
JPH03129472A (ja) | 1989-07-31 | 1991-06-03 | Ricoh Co Ltd | 文書検索装置における処理方法 |
JP3415214B2 (ja) | 1993-09-09 | 2003-06-09 | 株式会社東芝 | 文書検索装置 |
US5706365A (en) | 1995-04-10 | 1998-01-06 | Rebus Technology, Inc. | System and method for portable document indexing using n-gram word decomposition |
US6006221A (en) * | 1995-08-16 | 1999-12-21 | Syracuse University | Multilingual document retrieval system and method using semantic vector matching |
US6014464A (en) * | 1997-10-21 | 2000-01-11 | Kurzweil Educational Systems, Inc. | Compression/ decompression algorithm for image documents having text graphical and color content |
JP2000067070A (ja) | 1998-08-24 | 2000-03-03 | Matsushita Electric Ind Co Ltd | 情報検索方法、検索ファイル作成方法及び情報検索装置 |
JP3696745B2 (ja) * | 1999-02-09 | 2005-09-21 | 株式会社日立製作所 | 文書検索方法及び文書検索システム及び文書検索プログラムを記録したコンピュータ読み取り可能な記録媒体 |
JP2000348059A (ja) | 1999-06-09 | 2000-12-15 | Ricoh Co Ltd | 文書検索方法 |
CN1156779C (zh) | 1999-06-09 | 2004-07-07 | 株式会社理光 | 文献检索的方法和装置 |
JP3636941B2 (ja) * | 1999-07-19 | 2005-04-06 | 松下電器産業株式会社 | 情報検索方法と情報検索装置 |
JP4115048B2 (ja) | 1999-08-17 | 2008-07-09 | 株式会社リコー | 文書検索システム |
-
2001
- 2001-08-10 JP JP2001243854A patent/JP4342753B2/ja not_active Expired - Fee Related
-
2002
- 2002-07-31 US US10/207,816 patent/US7072889B2/en not_active Expired - Fee Related
- 2002-07-31 EP EP20020255373 patent/EP1288799A3/en not_active Ceased
- 2002-08-10 CN CNB021315280A patent/CN1288581C/zh not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
EP1288799A3 (en) | 2006-04-12 |
US20030033297A1 (en) | 2003-02-13 |
EP1288799A2 (en) | 2003-03-05 |
CN1402160A (zh) | 2003-03-12 |
JP2003058578A (ja) | 2003-02-28 |
JP4342753B2 (ja) | 2009-10-14 |
US7072889B2 (en) | 2006-07-04 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN1288581C (zh) | 用缩减大小的索引进行文献检索的设备 | |
CN1139884C (zh) | 信息处理方法和装置 | |
CN1227613C (zh) | 注释数据生成、音素或字搜索及添加的相应设备与方法 | |
CN110532347B (zh) | 一种日志数据处理方法、装置、设备和存储介质 | |
CN1924858A (zh) | 一种获取新词的方法、装置以及一种输入法系统 | |
CN1912872A (zh) | 一种提取新词的方法和系统 | |
CN1612136A (zh) | 文件转换系统以及文件转换方法 | |
CN1316707A (zh) | 数据压缩与检索方法和数据检索设备及记录媒体 | |
CN1203398A (zh) | 多语言输入系统 | |
CN1664818A (zh) | 用于单词拆分的新词收集方法和系统 | |
CN1330333A (zh) | 汉语输入变换处理装置及输入变换处理方法和记录介质 | |
CN1266246A (zh) | 输入字符串的设备和方法 | |
CN1838113A (zh) | 翻译处理方法、文档翻译装置和程序 | |
CN1367896A (zh) | 文件处理方法、数据处理装置及存储介质 | |
CN1831825A (zh) | 文档管理方法和装置以及文档搜索方法和装置 | |
CN1868127A (zh) | 数据压缩系统和方法 | |
CN109712613B (zh) | 语义分析库更新方法、装置及电子设备 | |
CN1744087A (zh) | 搜索文档的文档处理装置及其控制方法 | |
CN1102779C (zh) | 中文简繁体字文件转换装置 | |
CN1487448A (zh) | 文件处理方法,数据处理装置和存储介质 | |
CN1949225A (zh) | Xml文件预处理方法、装置、文件结构、读取方法和装置 | |
US11244000B2 (en) | Information processing apparatus and non-transitory computer readable medium storing program for creating index for document retrieval | |
CN1369877A (zh) | 用于在不切分的文本中识别新词的属性的方法和系统 | |
CN100346606C (zh) | 一种设备配置信息解析方法 | |
CN1645372A (zh) | 一种实时内存数据库通用约束的实现方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20061206 Termination date: 20170810 |
|
CF01 | Termination of patent right due to non-payment of annual fee |