JP2008209996A - 検索索引作成装置・検索索引作成方法及び検索索引作成プログラム - Google Patents
検索索引作成装置・検索索引作成方法及び検索索引作成プログラム Download PDFInfo
- Publication number
- JP2008209996A JP2008209996A JP2007043684A JP2007043684A JP2008209996A JP 2008209996 A JP2008209996 A JP 2008209996A JP 2007043684 A JP2007043684 A JP 2007043684A JP 2007043684 A JP2007043684 A JP 2007043684A JP 2008209996 A JP2008209996 A JP 2008209996A
- Authority
- JP
- Japan
- Prior art keywords
- index
- type
- word
- document
- index type
- 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.)
- Withdrawn
Links
Images
Landscapes
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
【課題】従来は索引のサイズ縮小のため、分割文書単位で索引を作成するので、索引語の出現位置情報が分割文書の出現位置でなく分割文書単位で検索効率が悪く、また分割単位が全索引語同基準のため、高頻出の索引語は文書量の増加で検索サイズが巨大化する。
【解決手段】索引語抽出部で文書から索引語と索引語の文書中での出現位置を抽出し、索引種類取得部で取得された抽出索引語の索引種類から作成する索引の索引種類を索引種類決定部で決定し、この索引種類で索引語の文書中での出現位置リストと索引種類と索引サイズの索引を索引生成部で作成し索引記憶部に格納する。索引種類取得部は索引記憶部に前記抽出索引語の索引が格納済みの時はその索引種類と索引サイズとを索引記憶部から取得し、索引種類決定部はこの索引種類と索引サイズから作成索引の索引種類を決定することで、索引サイズを上限値以内にする。
【選択図】図1
【解決手段】索引語抽出部で文書から索引語と索引語の文書中での出現位置を抽出し、索引種類取得部で取得された抽出索引語の索引種類から作成する索引の索引種類を索引種類決定部で決定し、この索引種類で索引語の文書中での出現位置リストと索引種類と索引サイズの索引を索引生成部で作成し索引記憶部に格納する。索引種類取得部は索引記憶部に前記抽出索引語の索引が格納済みの時はその索引種類と索引サイズとを索引記憶部から取得し、索引種類決定部はこの索引種類と索引サイズから作成索引の索引種類を決定することで、索引サイズを上限値以内にする。
【選択図】図1
Description
この発明は、電子文書データベースを検索するに際し用いられる索引を作成する装置及びその方法並びに索引を作成するためにコンピュータを実行させるプログラムに関する。
大量の文書から指定された単語あるいは文字列を検索する技術がデータベースやウェブサーチエンジンなどにおいて利用されている。大量の文書から高速に検索を行うためには、単語の文書中での出現位置を記録した索引をあらかじめ作成しておく場合が多い(索引を形成する単語を以下では索引語と呼ぶ)。索引語としては文書中の文字列をバイグラムなどのNグラムに分割したものや、形態素などが用いられる。索引を参照することで文書全体を参照する必要がなく、効率的に検索単語を発見することができる。しかし、一般に文書量が非常に多くなると索引も巨大になり、索引を記憶装置に格納しておくのが困難になる。また、索引の読み込みに時間がかかるので検索効率も悪くなる。
そのため従来の索引作成装置では、ある一定の基準で文書を分割することで索引サイズを縮小している。分割された文書の1つ1つを分割文書と呼ぶことにし、分割文書に一意の識別子をつける。索引語が文書のどこに出現するかという出現位置情報として、分割文書の識別子を記録し、分割文書内に同一の索引語が出現してもそれらを重複して索引に記録しないようにすれば、索引に記録すべき情報は少なくなるので索引サイズは小さくなる(例えば、特許文献1参照)。
従来の検索索引作成装置では、分割文書の単位で索引を作成することで索引全体のサイズを縮小することができるが、全ての索引語に関して分割文書中における出現位置情報を失うことになる。索引語としてバイグラムを用いる場合、例えば「あいうえ」を検索するためには「あい」と「うえ」という索引語の出現位置情報を索引から取得し、それらが連続して出現しているかどうかを検査することになる。索引から取得できる出現位置情報が「文書中の10文字目に索引語が出現する」といった詳細な位置情報である場合、実際に二つの索引語が連続しているかどうか検査するには、それぞれの索引語の出現位置情報だけを照合するだけでよい。しかし、索引から取得できる出現位置情報が分割文書単位である場合、実際に二つの索引語が連続しているかどうか検査するには、分割文書内で「あい」と「うえ」という文字列が出現しているところを分割文書の再走査により列挙して照合しなければならず、検索効率が悪いという問題があった。
また、索引語毎の索引のサイズや索引全体のサイズに上限を設けることができず、分割する単位が全ての索引語に対して同じ基準で設定されるため、高頻出する索引語は入力文書量の増加に応じて索引が巨大化する。特に組込み機器などでは記憶装置や一時記憶装置(メモリ)を十分に確保できない場合が多いので、このような巨大な索引を利用することができず、検索できないという問題があった。
この発明は上記のような問題点を解決するためになされたもので、索引語毎の索引のサイズが上限値以下であることを保障し、高速に索引語の出現位置を同定できる索引を作成する検索索引作成装置を実現することを目的とするものである。
この発明に係る検索索引作成装置は、
文書から索引語と該索引語の文書中での出現位置を抽出する索引語抽出部と、
索引語抽出部で抽出された索引語の索引種類を取得する索引種類取得部と、
索引種類取得部で取得された索引種類から作成する索引の索引種類を決定する索引種類決定部と、
異なる索引種類間で索引種類を変換する索引種類変換部と
決定された索引種類で索引語の文書中での出現位置のリストと索引種類と索引サイズを有する索引を作成する索引生成部と、
索引生成部で生成された索引を格納する索引記憶部とを有し、
索引種類取得部は、索引記憶部に索引語抽出部で抽出された索引語の索引が先に格納されている場合は索引語抽出部で抽出された索引語の索引種類と索引サイズとを索引記憶部から取得し、
索引種類決定部は、索引種類取得部が取得した索引種類と索引サイズから索引生成部が作成する索引の索引種類を決定し、
索引種類変換部は、索引種類決定部で決定された索引種類が索引記憶部の索引種類と異なる場合、索引記憶部の索引種類を索引種類決定部で決定された索引種類に変換する。
文書から索引語と該索引語の文書中での出現位置を抽出する索引語抽出部と、
索引語抽出部で抽出された索引語の索引種類を取得する索引種類取得部と、
索引種類取得部で取得された索引種類から作成する索引の索引種類を決定する索引種類決定部と、
異なる索引種類間で索引種類を変換する索引種類変換部と
決定された索引種類で索引語の文書中での出現位置のリストと索引種類と索引サイズを有する索引を作成する索引生成部と、
索引生成部で生成された索引を格納する索引記憶部とを有し、
索引種類取得部は、索引記憶部に索引語抽出部で抽出された索引語の索引が先に格納されている場合は索引語抽出部で抽出された索引語の索引種類と索引サイズとを索引記憶部から取得し、
索引種類決定部は、索引種類取得部が取得した索引種類と索引サイズから索引生成部が作成する索引の索引種類を決定し、
索引種類変換部は、索引種類決定部で決定された索引種類が索引記憶部の索引種類と異なる場合、索引記憶部の索引種類を索引種類決定部で決定された索引種類に変換する。
この発明によれば、索引種類決定部により索引サイズに基づき索引種類を決めているので、すべての索引語の索引が最大索引サイズ以下にされることが可能で、索引全体のサイズも縮小可能である。また、索引種類の小さい索引ほど、より詳細な出現位置情報を持つため、この発明による索引サイズにより索引種類が決定される索引を用いることで、すべての索引語が一定の基準で分割された分割文書番号しか持たない索引を用いる場合よりも高速に検索することができる。
実施の形態1.
図1はこの発明の実施の形態1による検索索引作成装置を示す構成図である。文書構築部7は入力文書を統括データファイル10に保存されている文書に追加連結するものである。索引語抽出部1は統括データファイル10の文書を走査し索引語とその出現位置を抽出する。索引種類取得部2は索引語抽出部1で抽出された索引語について、索引記憶部6から抽出された索引語の索引を参照し、その索引種類および索引サイズを取得する。索引種類決定部3は索引種類取得部2から得られた索引種類と索引サイズから、作成する索引の索引種類を決定するものである。索引生成部4は決定された索引種類によって指定された索引語の索引を生成する。索引種類変換部5は任意の索引種類で作成された索引を任意の索引種類に変換する。索引記憶部6は索引生成部4で生成された索引を記憶するものである。
図1はこの発明の実施の形態1による検索索引作成装置を示す構成図である。文書構築部7は入力文書を統括データファイル10に保存されている文書に追加連結するものである。索引語抽出部1は統括データファイル10の文書を走査し索引語とその出現位置を抽出する。索引種類取得部2は索引語抽出部1で抽出された索引語について、索引記憶部6から抽出された索引語の索引を参照し、その索引種類および索引サイズを取得する。索引種類決定部3は索引種類取得部2から得られた索引種類と索引サイズから、作成する索引の索引種類を決定するものである。索引生成部4は決定された索引種類によって指定された索引語の索引を生成する。索引種類変換部5は任意の索引種類で作成された索引を任意の索引種類に変換する。索引記憶部6は索引生成部4で生成された索引を記憶するものである。
図2は図1に示す検索索引作成装置による索引作成の手順を示した図である。以下図2を参照して索引作成の手順を説明する。文書構築部7により入力文書を取り込み(図2の1001)、統括データファイル10に保存されている文書に追加連結し(図2の1002)、追加分に対して索引語抽出部1により索引語抽出(図2の1003)を行う。次に索引語種類取得部2により抽出された索引語の索引語種類取得(図2の1004)を行い、索引語種類決定部3により索引生成部4が作成する索引の種類を決定する(図2の1005)。決定した索引種類と既存の索引種類が等しい場合は索引生成部4により索引生成(図2の1007)を行い、異なる場合は索引種類変換部5により索引種類変換(図2の1006)を行った後、索引生成部4により索引生成(図2の1007)を行う。
以下、図3から図9までを参照しつつ、本実施の形態の検索索引作成装置における動作の概要について説明する。
図3は入力文書の例である。文書構築部7はこれらの入力文書を統括データファイル10に保存されている文書に連結する。文書が連結された統括データファイル10の概念図を図4に示す。本実施の形態では図4のように、入力された文書を順に統括データファイル10の末尾に連結する。統括データファイル10内の文書区切り格納テーブル11に各文書の統括データファイル10中での開始位置を格納する。統括データファイル10によりすべての入力文書を1つの連結ファイルとして扱うことにより、後に述べるように、索引語の出現位置情報に統括データファイル10の文書の先頭からの記憶容量数(バイト)を用いることができる。本実施の形態による検索索引作成装置で作成する索引は、この統括データファイル10の文書における位置情報とする。統括データファイル10は、登録した文書の内容を連続的に参照できればよいので、本実施の形態のように1ファイルによって構成する必要はなく、登録文書のリストのような構成になっていてもよい。
図3は入力文書の例である。文書構築部7はこれらの入力文書を統括データファイル10に保存されている文書に連結する。文書が連結された統括データファイル10の概念図を図4に示す。本実施の形態では図4のように、入力された文書を順に統括データファイル10の末尾に連結する。統括データファイル10内の文書区切り格納テーブル11に各文書の統括データファイル10中での開始位置を格納する。統括データファイル10によりすべての入力文書を1つの連結ファイルとして扱うことにより、後に述べるように、索引語の出現位置情報に統括データファイル10の文書の先頭からの記憶容量数(バイト)を用いることができる。本実施の形態による検索索引作成装置で作成する索引は、この統括データファイル10の文書における位置情報とする。統括データファイル10は、登録した文書の内容を連続的に参照できればよいので、本実施の形態のように1ファイルによって構成する必要はなく、登録文書のリストのような構成になっていてもよい。
索引語抽出部1は統括データファイル10の文書に含まれる文字列を取り出し、取り出した文字列から索引語となる部分文字列とその部分文字列の統括データファイル10の文書内での詳細出現位置情報を抽出する。索引語は文書を検索する場合の検索語となりうる単語、あるいはその部分文字列とする。ここでは簡単のため、索引語は統括データファイル10の文書から取り出した文字列中のすべての連続する2文字(バイグラム)とするが、この索引語は2文字以上の連続する文字列(Nグラム)や形態素などでもよい。
詳細出現位置情報は索引語が統括データファイル10の文書内で出現する位置を表現するものとし、統括データファイル10の文書の先頭からの記憶容量数(バイト)とする。図5に入力文書の例とそれから抽出される索引語と詳細出現位置情報を示す。索引語として入力文書の先頭から順に「そら」、「らの」、「のて」とすべての連続する2文字を抽出する。図5に示した詳細出現位置情報は索引語「です」のもので、「です」は34番目、44番目、177番目、211番目に現れるので、入力文書が1文字2バイトの文字列だとすると図5のような詳細出現位置情報になる。
詳細出現位置情報は索引語が統括データファイル10の文書内で出現する位置を表現するものとし、統括データファイル10の文書の先頭からの記憶容量数(バイト)とする。図5に入力文書の例とそれから抽出される索引語と詳細出現位置情報を示す。索引語として入力文書の先頭から順に「そら」、「らの」、「のて」とすべての連続する2文字を抽出する。図5に示した詳細出現位置情報は索引語「です」のもので、「です」は34番目、44番目、177番目、211番目に現れるので、入力文書が1文字2バイトの文字列だとすると図5のような詳細出現位置情報になる。
索引種類取得部2は索引語抽出部1から得られた索引語の索引種類と索引サイズを索引記憶部6に格納されている索引語の索引から取得する。索引記憶部6に格納される索引語毎の索引とは、図6のように 索引語文字列101、ヘッダ部102、出現位置情報のリスト103の組である。ヘッダ部分102は索引種類を表す整数と、索引サイズと等しい整数を格納し、索引サイズは出現位置情報のリスト部分の記憶容量(バイト)とする。ヘッダ部分102は“索引種類,索引サイズ”の順でそれぞれ格納されている。図6の例では索引語文字列は「あい」、索引種類は“0”、索引サイズは“25”である。一般に出現位置情報のリスト103のサイズは登録文書量に応じて大きくなるが、ヘッダ部分102のサイズは変わらないので、ヘッダ部分102のみを取得することで高速に索引種類と索引サイズを取得することができる。索引種類取得部2は対象の索引語に対応する索引が索引記憶部6にない場合は、索引が未作成であるという索引種類を取得する。本実施の形態では索引種類が異なると出現位置情報の解釈方法が異なる。
本実施の形態では索引種類は“0”または“1”または2の累乗の整数“N”を取るものとすると、本実施の形態の出現位置情報は次の意味を持つ。索引種類が“0”の場合は詳細出現位置情報とする。索引種類が1あるいは2の累乗の整数“N”の場合は、規定サイズ(以下、分割単位サイズとする。)のN倍のサイズごとに統括データファイル10の文書を分割した場合に、索引語が含まれる分割文書の連番番号を出現位置情報とする。索引種類が“1”以上の索引を作成する場合に、索引として格納されるべき分割文書の番号を取得するには、実際に文書を分割して保存しておく必要はなく、詳細出現位置情報から直ちに計算することができる。例えば、分割単位サイズが100バイト、索引種類が“2”、詳細出現位置情報が“560”の場合を考える。この場合、0〜99バイトまでの領域が番号“0”の分割文書、100〜199バイトまでの領域が番号“1”の分割文書となり、同様に100バイトごとに番号を振っていくとすると、詳細出現位置情報“560”が含まれる分割文書の番号は“5”と分かる。
索引種類決定部3は索引語に対応する索引種類と索引サイズから、索引に出現位置情報をさらに追加しても索引サイズがあらかじめ設定されたサイズ(以下、最大索引サイズとする。)内に収まるために必要な索引種類を決定する。決定した索引種類が既存の索引の索引種類と同じ場合は、索引種類決定部3は索引生成部4を呼び出し、索引生成部4に索引種類を渡す。決定した索引種類が既存の索引の索引種類と異なる場合は、索引種類決定部3は索引種類変換部5を呼び出す。索引種類変換部5は索引記憶部6に格納されている索引を索引種類決定部3が決定した索引種類の索引に変換し、索引記憶部6に保存する。変換の後、索引種類決定部3は索引生成部4を呼び出し、変換後の索引種類を渡す。
既存の索引がない場合は、索引種類決定部3は索引生成部4を呼び出し、索引が未作成であることを示す索引種類“-1”を渡す。
索引生成部4は索引種類決定部3で決定された索引種類と詳細出現位置情報に基づいて、索引を作成・更新する。索引種類が“-1”の場合は詳細出現位置情報により新規に索引を作成し、索引記憶部6に保存する。索引種類が“0”の場合は詳細出現位置情報を索引記憶部6の該当索引に追加する。索引種類が“N”の場合は、詳細出現位置情報と索引種類より分割文書番号を算出し、索引記憶部6の該当索引に追加する。分割文書番号の算出は(式1)により導出する。ただし、(式1)において[]はガウス記号で、[x]はxを超えない最大の整数を意味する。
索引種類変換部5は索引記憶部6に格納されている既存の索引を、索引種類決定部3で決定された索引種類に変換する。索引種類を“M”から“N”に変換する場合を説明する。ただし、NはMより大きいとする。索引の変換の手順を図7に示す。
まず、索引記憶部6から索引を取得する(図7の1101)。この索引の索引種類が“M”とする。取得した索引の出現位置情報のリスト(図6参照)について各要素を順次参照していき(図7の1102)、変換後の索引種類“N”における索引に変換し(図7の1103)、変換後のリストに未登録であれば登録する(図7の1104)。変換後のリストを索引として索引記憶部6に保存する(図7の1105)。変換前の索引種類が“M”で分割文書番号(出現位置情報)が“I”、変換後の索引種類が“N”の場合、変換後の分割文書番号(出現位置情報)は(式2)により導出することができる。ただし、(式2)において[]はガウス記号で、[x]はxを超えない最大の整数を意味する。
まず、索引記憶部6から索引を取得する(図7の1101)。この索引の索引種類が“M”とする。取得した索引の出現位置情報のリスト(図6参照)について各要素を順次参照していき(図7の1102)、変換後の索引種類“N”における索引に変換し(図7の1103)、変換後のリストに未登録であれば登録する(図7の1104)。変換後のリストを索引として索引記憶部6に保存する(図7の1105)。変換前の索引種類が“M”で分割文書番号(出現位置情報)が“I”、変換後の索引種類が“N”の場合、変換後の分割文書番号(出現位置情報)は(式2)により導出することができる。ただし、(式2)において[]はガウス記号で、[x]はxを超えない最大の整数を意味する。
本実施の形態ではこの変換を簡単にするため索引種類を“0”または“1”または“2の累乗の整数”としたが、分割文書内の索引語の包含関係を判定する手段があれば任意の整数で定義してもよい。分割文書の索引語の包含関係を判定する手段として、例えば分割文書内の索引語を再検索して変換後の分割文書を判定する手段がある。
1つの索引語に関する索引の追加と索引種類の変換について具体的に説明する。例として図8に分割単位サイズが100バイト、最大索引サイズを40バイトとした場合の、索引語「あい」に関する索引を作成する過程と、索引種類による索引と索引サイズの変化を示す。索引語「あい」についての索引を新規に作成する場合は詳細位置情報索引により索引を作成し、索引種類を“0”とする。入力文書が追加され、その文書内に「あい」が出現していると、図2の索引生成1007により出現位置情報のリストが追加され、索引サイズは増加する。詳細位置情報および分割文書番号を4バイトの整数で格納するとすると、図8の[1]では索引が5つあるので索引サイズは20バイトとなる。入力文書が追加され、出現位置情報のリストが追加されると、図8の[2]のように索引サイズは40バイトとなる。
さらに入力文書が追加され、出現位置情報の追加をする場合は最大索引サイズを超えるので索引種類を変更し、索引を変換する。図8の[2]から[3]への変換では100バイト単位で統括データファイル10の文章を分割した分割文書番号による索引に変換している。図8の[2]の索引中、“2,10,14,26,40”は0バイト以上100バイト未満の位置であるので、これらは番号“0”の分割文書内に含まれるということになり、これら5つの詳細出現位置情報は“0”という1つの分割文書番号索引に変換される。同様に“100,150,180”は分割文書番号“1”に、“220”は“2”に、“1580”は“15”に変換される。この結果、図8の[3]における索引サイズは16バイトに縮小され、ヘッダ部分は索引種類が100バイト単位であることを示す“1”と索引サイズが16バイトであることを示す“16”に更新される。以後、索引語「あい」の索引は索引サイズが最大索引サイズに到達するまで索引種類“1”として追加する。
図8の[4]のように最大索引サイズより大きくなると、200バイト単位で統括データファイル10の文章を分割した分割文書番号による索引に変換する。図8の[4]から[5]への変換では、索引種類“1”での出現位置情報“0,1”は0バイト以上200バイト未満の領域に相当するので、索引種類“2”での“0”という1つの分割文書番号索引に変換される。同様の変換により図8の[5]における索引サイズは28バイトに縮小される。
索引記憶部6は図9のように、図6に示す索引を格納する。本実施の形態では、図6における索引語文字列101をキー、ヘッダ部分102および出現位置情報のリスト103を値とするB+tree形式により格納し、索引語から索引を高速に参照できるようにする。この格納形式は他の形式でも良い。
以上の構成により、すべての索引語の索引が最大索引サイズ以下であることが保障され、索引全体のサイズも縮小される。また、索引種類の小さい索引ほど、より詳細な出現位置情報を持つため、この実施の形態の索引を用いることで、すべての索引語が一定の基準で分割された分割文書番号しか持たない索引を用いる場合よりも高速に検索することができる。例えば、索引語「あい」の索引が詳細出現位置情報を持ち、索引語「うえ」の索引が分割文書番号による出現位置情報を持つ場合に「あいうえ」を検索するには次のようにする。両者の出現位置情報を照合して「あい」の詳細出現位置情報のリストのうち、「うえ」の分割文書番号に対応する分割文書の領域に含まれるもののみを取得する。この取得には(式1)を用いることで容易に可能である。取得した詳細出現位置情報に該当する統括データファイル10の文章の位置のみを再検査することによって、「あいうえ」が連続して出現しているかどうか判断することができる。
文書区切り格納テーブル11を参照し、区切りの位置をまたいで検査しないことで、異なる文書をまたがった文字列を検索してしまうことはない。もし、索引語「あい」の索引も分割文書番号による出現位置情報であった場合には、両者を(式2)を用いて照合し、「あい」と「うえ」が含まれる索引種類のより小さい方の分割文書番号のリストを取得する。取得した分割文書番号に対応する分割文書領域に「あいうえ」が連続して出現しているかどうかは、従来通り分割文書内を再検査することで判断できる。
上記に述べた実施の形態において、上記の全ての機能あるいは一部の機能は、パーソナルコンピュータなどのソフトウェアとしてプログラム実行したり、CPU(Central Processor Unit)などの組み込みソフトウェアやファームウェアとしてプログラム実行することで達成することもできる。
また、上記のソフトウェア等は、例えばROM(Read Only Memory)、磁気ディスク、(ハードディスクやリムーバブルディスクなど)、不揮発性半導体メモリなどの記憶手段に予め保持しておいたものであってもよいし、例えばインターネット,LAN(Local Area Network)、赤外線通信、Bluetooth、携帯電話のパッケト通信などの有線・無線通信手段を用いてサーバ上の記憶手段からダウンロードしたり、例えば、CD-ROM(Compact Disc - Read Only Memory)、CD-R(Compact Disc-Recordable)、DVD(Digital Versatile Disk)、MO(Magneto Optical)ディスク、磁気カード等の記憶媒体や、バーコード等が印刷されたカードなどの印刷媒体より配布・提供されるものであってもよい。この場合、記憶媒体等から読み出された上記ソフトウェアのプログラムコードが、上記実施の形態の機能を実現することとなる。
実施の形態2.
実施の形態1では文書を容量で分割し、その分割文書番号をもってヘッダ部分102、出現位置情報のリスト103を構成したが、入力文書がXML(Extended Markup Language)形式のような構造化文書である場合には、構造単位による出現位置情報を用いることができる。以下では構造化文書としてXML、構造単位としてXMLノードを用いる場合を説明する。
実施の形態1では文書を容量で分割し、その分割文書番号をもってヘッダ部分102、出現位置情報のリスト103を構成したが、入力文書がXML(Extended Markup Language)形式のような構造化文書である場合には、構造単位による出現位置情報を用いることができる。以下では構造化文書としてXML、構造単位としてXMLノードを用いる場合を説明する。
図10はこの発明の実施の形態2による検索索引作成装置の構成図を示すものである。図10において、ノード索引生成部21はXMLノードに一意のID(Identification)を付与し(以下ノードIDとする)、ノード索引記憶部22に索引を格納するものである。
ノード索引記憶部22はノードIDからそのノードの階層レベルと親ノードのIDを取得できるように構築する。例えば特開2003-271443号公報に示されるような方法でこのような索引を作成できる。ノード索引記憶部22には統括データファイル10におけるノードの開始位置と終了位置も索引として格納し、取得できるようにする。この開始位置と終了位置は統括データファイル10の文章の先頭からの記憶容量数(バイト)によって定義する。
文書構築部7は入力されたXML文書を統括データファイル10の文章に統合する。本実施の形態では統括データファイル10の文書はXML形式で構築し、入力XML文書は統括データファイル10の文章の末尾に入力XML文書の構造を保ったまま連結する。
実施の形態1では索引語の出現位置情報として統括データファイル10の文章における位置を示す整数あるいは分割文書番号として構成したが、本実施の形態では出現位置情報としてXMLノードのIDを持つ。図11に示すように、索引は索引語文字列201、ヘッダ部分202、出現位置情報のリスト203からなる。ヘッダ部分202には“索引種類,最深階層レベル,索引サイズ”が格納される。索引種類および索引サイズは実施の形態1の場合と同様で、それぞれ索引種類を示す整数と出現位置情報のリスト203の記憶容量(バイト)を示す整数である。最深階層レベルは索引語を含むノードの中で、最も階層が深い(階層レベルが大きい)ものの階層レベルを格納する。階層レベルはXMLのルートノードの階層を“0”とした場合のノードの深さで定義する。図11の場合、索引語「あい」に対する索引種類は“0”、最深階層レベルは“3”、索引サイズは“25”である。
索引種類が“0”の場合、索引語が出現する直属のノードのIDを出現位置情報とする。索引種類が“N”(Nは1以上の整数)の場合は、最深階層レベル以下の階層レベルのノード単位で索引を作成し、そのノードIDを出現位置情報とする。例えば図12のような統括データファイルの場合で、索引語「あい」と「いう」の索引が図13である場合、索引語「あい」は索引種類が“0”なのでノードIDが“c1”、“c1”、“c1”であるようなノードの直下に「あい」が出現することを意味する。以下では説明の便宜上、ノードIDを“ノード名”+“出現順”で定義するが、実際には上記で述べたノード索引記憶部22に格納されたノードIDを用いる。一方、索引語「いう」は索引種類が“1”であるので、最深階層レベル“2”以下のノード単位で出現位置情報を持っていることを意味する。例の場合は出現位置情報のリストにノードID“b1”を持つので、そのノード直下かそのノードに所属するノード内に「いう」が出現することを意味する。また出現位置情報にノードID“a2”を持つのでそのノードの直下に「いう」が出現することを意味する。
索引を作成する過程を説明する。実施の形態1と同様に、ある索引語の索引を新規作成する場合、索引種類を“0”として作成する。例えば図14の場合、索引語「あい」が最初の“<c>”と対応する終了タグ“</c>”で囲まれた領域に出現するので、そのノードID“c1”を出現位置情報として出現位置情報のリスト203に格納する。同様にノードIDの異なる“<c>”要素内に「あい」が出現する場合は、そのノードIDを出現位置情報のリスト203に追加する。ヘッダ部分202にはノードID“c1”のノードの階層レベルである“3”を最深階層レベルとして格納する。もし、要素“<b>”の直下(“<c>”で囲まれていない領域)に索引語「あい」が出現する場合、その要素“<b>”に対応するノードIDを出現位置情報として追加する。このとき、最深階層レベルは“3”のままである。もし階層レベルが4以上のノード内に索引語が出現する場合はそのノードのノードIDを追加し、最深階層レベルを“4”に更新する。
出現位置情報を追加していき、索引が最大索引サイズよりも大きくなると、索引種類変換部5により索引を変換する。索引種類“0”から索引種類“1”へ変換するには次のようにする。最深階層レベルから1減算し、新しい最深階層レベルとしてヘッダ部分202を更新する。出現位置情報のリスト203に格納されたノードIDの内、新しい最深階層レベルより大きい階層レベルを持つノードのものは、その親ノードのIDをノード索引記憶部22から取得し、親ノードIDに置き換える。このとき、すでにそのノードIDが格納されている場合は、重複して格納はしない。図14の場合は、最初の“<c>”要素に対応するノードIDは最初の“<b>”要素に対応するノードIDに置き換える。親ノードの階層レベルが最深階層レベルよりも大きい場合は、親ノードのさらに親のノードのIDを取得し、これに置き換える。最深階層レベルよりも大きい階層レベルを持つノードは出現位置情報のリスト203に格納されていないので、索引種類“0”から索引種類“1”への変換ではこれは起こりえないが、索引種類“0”から索引種類“2”への変換では起こりうる。この変換により、例えば出現位置情報のリストに兄弟ノードが複数含まれていた場合、1つの親ノードに統合されることになり、索引サイズが縮小される。
索引変換後は索引種類“1”として索引を構築する。つまり、最深階層レベル以下のノードのIDを出現位置情報とし、出現位置情報のリストに追加する。索引種類が“1”以上の場合は最深階層レベル以下のノードIDを出現位置情報とする。
一般に索引種類“K”から索引種類“L”への変換では(LはKよりも大きいとする)、新しい最深階層レベルを(式3)で定義する。
1つの索引語に関する索引の追加と索引種類の変換について具体的に説明する。例として図15に最大索引サイズを70バイトした場合の、索引語「あい」に関する索引を作成する過程と、索引種類の変換の過程を示す。ノードIDを格納するのに必要な記憶容量は10バイトとする。索引語「あい」についての索引を初めて作成する場合は、「あい」が出現する直属ノードのノードIDを出現位置情報のリストに追加し、索引種類を“0”として作成する。図15の[1]は索引種類が“0”、最深階層レベルが“3”、索引サイズが20バイトであることを示している。入力文書が追加され、その中に「あい」が出現していると、出現位置情報のリストに追加される。図15の[2]では出現位置情報のリストが追加され、索引サイズが70バイトとなっている。
索引サイズが最大索引サイズに達し、これ以上出現位置情報を追加することはできないので、索引種類の変換を行う。図15の[2]から [3]への変換では索引種類を“0”から“1”に変更し、最深階層レベルを“3”から“2”に変更する。さらに、ノード“c1”、c2”がノード“b1”に含まれ、ノード“c5”、“c6”、“c8”、“c9”がノード“b4”に含まれるとすると、出現位置情報のリスト中の“c1,c2”を“b1”に、“c5,c6,c8,c9”を“b4”に置換する。この結果、索引サイズは30バイトに縮小される。
図15の[3]以降は階層レベル“2”以下のノード単位で出現位置情報のリストに追加する。入力文書が追加され、出現位置情報のリストにノードIDが追加されることで、図15の[4]では索引サイズが再び70バイトになっている。
これ以上出現位置情報を追加することはできないので、再度索引種類の変換を行う。図15の[4]から [5]への変換では索引種類を“1”から“2”に変更し、最深階層レベルを“2”から“1”に変更する。ノード“b4”、“b5”、“b6”がノード“a2”に含まれ、ノード“b12”、“b13”、“b14”がノード“a4”に含まれるとすると、出現位置情報のリスト中の“b4,b4,b6”を“a2”に、“b12,b13,b14”を“a4”に置換する。この結果、索引サイズは30バイトに縮小される。
上記過程で、ノード“c1”がどのノードに含まれるのかは、“c1”の親ノードを取得することで可能である。
以上のように構成することにより、すべての索引語の索引が最大索引サイズ以下であることが保障され、なおかつXMLの構造単位で検索が可能な索引を作成することができる。また、実施の形態1の場合と同様に、索引種類が小さい索引ほど詳細な出現位置情報を持っていることになり、すべての索引語に対して大きい構造単位で索引を作成する場合に比べて高速に検索することができる。
この発明は、データベース、ウェブサーチエンジンや、カーナビゲーションシステムなど大量の文書から指定された単語あるいは文字列を検索するための索引作成に利用できる。
1;索引語抽出部、2;索引種類取得部、3;索引種類決定部、4;索引生成部、5;索引種類変換部、6;索引記憶部、7;文書構築部、10;入力文書を統括データファイル、21;ノード索引生成部、22;ノード索引記憶部。
Claims (6)
- 文書から索引語と該索引語の文書中での出現位置を抽出する索引語抽出部と、
索引語抽出部で抽出された索引語の索引種類を取得する索引種類取得部と、
索引種類取得部で取得された索引種類から作成する索引の索引種類を決定する索引種類決定部と、
異なる索引種類間で索引種類を変換する索引種類変換部と
決定された索引種類で索引語の文書中での出現位置のリストと索引種類と索引サイズを有する索引を作成する索引生成部と、
索引生成部で生成された索引を格納する索引記憶部とを有し、
索引種類取得部は、索引記憶部に索引語抽出部で抽出された索引語の索引が先に格納されている場合は索引語抽出部で抽出された索引語の索引種類と索引サイズとを索引記憶部から取得し、
索引種類決定部は、索引種類取得部が取得した索引種類と索引サイズから索引生成部が作成する索引の索引種類を決定し、
索引種類変換部は、索引種類決定部で決定された索引種類が索引記憶部の索引種類と異なる場合、索引記憶部の索引種類を索引種類決定部で決定された索引種類に変換することを特徴とする検索索引作成装置。 - 索引生成部は、入力文書が構造化文書の場合に、構造単位で索引を作成する構成にされたことを特徴とする請求項1記載の検索索引作成装置。
- 複数の文書に対して索引を作成する場合に、複数の文書を1つの文書に統合する文書構築部を有することを特徴とする請求項1又は2記載の検索索引作成装置。
- 索引種類決定部は、索引種類取得部が取得した索引種類と、すべての索引語の索引サイズの合計に対する上限値から索引生成部が作成する索引の索引種類を決定する構成にされたことを特徴とする請求項1〜3の何れか1項に記載の検索索引作成装置。
- 文書から索引語と該索引語の文書中での出現位置を抽出する索引語抽出工程と、
索引語抽出工程で抽出された索引語の索引種類を取得する索引種類取得工程と、
索引種類取得工程で取得された索引種類から作成する索引の索引種類を決定する索引種類決定工程と、
異なる索引種類間で索引種類を変換する索引種類変換工程と
決定された索引種類で索引語の文書中での出現位置のリストと索引種類と索引サイズを有する索引を作成し、生成された索引を索引記憶部に格納する索引生成工程とを有し、
索引種類取得工程は、索引記憶部に索引語抽出工程で抽出された索引語の索引が先に格納されている場合は索引語抽出工程で抽出された索引語の索引種類と索引サイズとを索引記憶部から取得し、
索引種類決定工程は、索引種類取得工程が取得した索引種類と索引サイズから索引生成工程が作成する索引の索引種類を決定し、
索引種類変換工程は、索引種類決定工程で決定された索引種類が索引記憶部の索引種類と異なる場合、索引記憶部の索引種類を索引種類決定工程で決定された索引種類に変換することを特徴とする検索索引作成方法。 - 検索索引作成するためにコンピュータを
文書から索引語と該索引語の文書中での出現位置を抽出する索引語抽出手段、
索引語抽出手段で抽出された索引語の索引種類を取得する索引種類取得手段、
索引種類取得手段で取得された索引種類から作成する索引の索引種類を決定する索引種類決定手段、
異なる索引種類間で索引種類を変換する索引種類変換手段、
決定された索引種類で索引語の文書中での出現位置のリストと索引種類と索引サイズを有する索引を作成し、生成された索引を格納する索引記憶部とに格納する索引生成手段として機能させ、
さらに、索引種類取得手段は、索引記憶部に索引語抽出手段で抽出された索引語の索引が先に格納されている場合は索引語抽出手段で抽出された索引語の索引種類と索引サイズとを索引記憶部から取得し、
索引種類決定手段は、索引種類取得手段が取得した索引種類と索引サイズから索引生成手段が作成する索引の索引種類を決定し、
索引種類変換手段は、索引種類決定手段で決定された索引種類が索引記憶部の索引種類と異なる場合、索引記憶部の索引種類を索引種類決定手段で決定された索引種類に変換する機能をさせるための検索索引作成プログラム。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2007043684A JP2008209996A (ja) | 2007-02-23 | 2007-02-23 | 検索索引作成装置・検索索引作成方法及び検索索引作成プログラム |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2007043684A JP2008209996A (ja) | 2007-02-23 | 2007-02-23 | 検索索引作成装置・検索索引作成方法及び検索索引作成プログラム |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2008209996A true JP2008209996A (ja) | 2008-09-11 |
Family
ID=39786270
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2007043684A Withdrawn JP2008209996A (ja) | 2007-02-23 | 2007-02-23 | 検索索引作成装置・検索索引作成方法及び検索索引作成プログラム |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2008209996A (ja) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2012064159A (ja) * | 2010-09-17 | 2012-03-29 | Casio Comput Co Ltd | Nグラム検索のための転置インデックスの生成方法および生成装置、当該転置インデックスを用いた検索方法および検索装置、ならびに、コンピュータプログラム |
WO2012120560A1 (ja) * | 2011-03-07 | 2012-09-13 | 株式会社日立製作所 | 検索装置及び検索方法 |
-
2007
- 2007-02-23 JP JP2007043684A patent/JP2008209996A/ja not_active Withdrawn
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2012064159A (ja) * | 2010-09-17 | 2012-03-29 | Casio Comput Co Ltd | Nグラム検索のための転置インデックスの生成方法および生成装置、当該転置インデックスを用いた検索方法および検索装置、ならびに、コンピュータプログラム |
WO2012120560A1 (ja) * | 2011-03-07 | 2012-09-13 | 株式会社日立製作所 | 検索装置及び検索方法 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP5121146B2 (ja) | 構造化文書管理装置、構造化文書管理プログラムおよび構造化文書管理方法 | |
US7822788B2 (en) | Method, apparatus, and computer program product for searching structured document | |
JP2005092889A (ja) | ウェブページのための情報ブロック抽出装置及び情報ブロック抽出方法 | |
JP4860416B2 (ja) | 文書検索装置、文書検索方法および文書検索プログラム | |
US8190632B2 (en) | Computer product, information retrieving apparatus, and information retrieving method | |
JP2008052662A (ja) | 構造化文書管理システム及びプログラム | |
JP5135272B2 (ja) | 構造化文書管理装置、及び方法 | |
JP4247135B2 (ja) | 構造化文書記憶方法、構造化文書記憶装置、構造化文書検索方法 | |
JP2006185408A (ja) | データベース構築装置及びデータベース検索装置及びデータベース装置 | |
JP2005100057A (ja) | 文書変換装置 | |
JP2008209996A (ja) | 検索索引作成装置・検索索引作成方法及び検索索引作成プログラム | |
JP2010250449A (ja) | 情報処理装置、情報処理方法 | |
JP5757551B2 (ja) | 意味分類付与装置、意味分類付与方法、意味分類付与プログラム | |
JP2013218627A (ja) | 構造化文書からの情報抽出方法、装置、及びプログラム | |
JP2005242416A (ja) | 自然言語文の検索方法および検索装置 | |
JP4439496B2 (ja) | 検索処理装置及びプログラム | |
JP2007179329A (ja) | 住所文字列取得方法および住所文字列取得システム | |
CN115796146A (zh) | 一种文件对比方法及装置 | |
JP2008026964A (ja) | 検索処理装置及びプログラム | |
JP6753190B2 (ja) | 文書検索装置及びプログラム | |
JP4904828B2 (ja) | 情報分析知識管理装置、データ構造、情報分析装置、辞書生成方法およびプログラム | |
JP2009140113A (ja) | 辞書編集装置、および辞書編集方法、並びにコンピュータ・プログラム | |
JP4489034B2 (ja) | 構造化文書処理装置、構造化文書処理方法および構造化文書処理プログラム | |
JP5903372B2 (ja) | キーワード関連度スコア算出装置、キーワード関連度スコア算出方法、及びプログラム | |
JP5906810B2 (ja) | 全文検索装置、プログラム及び記録媒体 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20091027 |
|
A761 | Written withdrawal of application |
Free format text: JAPANESE INTERMEDIATE CODE: A761 Effective date: 20110325 |