JP2012064159A - Nグラム検索のための転置インデックスの生成方法および生成装置、当該転置インデックスを用いた検索方法および検索装置、ならびに、コンピュータプログラム - Google Patents

Nグラム検索のための転置インデックスの生成方法および生成装置、当該転置インデックスを用いた検索方法および検索装置、ならびに、コンピュータプログラム Download PDF

Info

Publication number
JP2012064159A
JP2012064159A JP2010210007A JP2010210007A JP2012064159A JP 2012064159 A JP2012064159 A JP 2012064159A JP 2010210007 A JP2010210007 A JP 2010210007A JP 2010210007 A JP2010210007 A JP 2010210007A JP 2012064159 A JP2012064159 A JP 2012064159A
Authority
JP
Japan
Prior art keywords
gram
grams
search
classified
group
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.)
Granted
Application number
JP2010210007A
Other languages
English (en)
Other versions
JP5601116B2 (ja
Inventor
Tomoharu Yamaguchi
倫治 山口
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Casio Computer Co Ltd
Original Assignee
Casio Computer Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Casio Computer Co Ltd filed Critical Casio Computer Co Ltd
Priority to JP2010210007A priority Critical patent/JP5601116B2/ja
Publication of JP2012064159A publication Critical patent/JP2012064159A/ja
Application granted granted Critical
Publication of JP5601116B2 publication Critical patent/JP5601116B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

【課題】文書データ中の所望の文字列を効率的に検索でき、データサイズが適切に抑えられた転置インデックスの生成方法等を提供する。
【解決手段】文書抽出ステップと、分類ステップと、生成ステップと、を備えた転置インデックスの生成方法であって、文書抽出ステップでは、文書データ18から、「N文字の文字列であるNグラム(Nは自然数)」を、当該文書データ中での出現位置と対応付けて抽出し、分類ステップでは、先頭のM文字(MはNより小さい自然数)が共通なNグラムを要素とするNグラム群のいずれかに、抽出されたNグラムを分類し、生成ステップでは、Nグラム群のそれぞれについて、Nグラム群に分類されたNグラムに対応付けられた出現位置を対応付けて、転置インデックスを生成する。
【選択図】図1

Description

本発明は、Nグラム検索に関し、とくにNグラム検索のための転置インデックスの生成方法および生成装置、当該転置インデックスを用いた検索方法および検索装置、ならびにコンピュータプログラムに関する。
文書の電子化の増大に伴い、これまでに蓄積されてきた大量の文書群から所望の文書を見つけ出す検索技術の重要性が高まっている。
英語などの多くの言語においては、単語を索引単位として索引ファイルを作成して、これを用いて高速な検索処理を実現することが一般的である。しかし、日本語の場合、スペース等によって単語の切れ目が明示的に示されないため、しばしば、Nグラムを索引単位とする方法が用いられている。
Nグラムとは、連続するN文字からなる部分文字列のことである。Nグラムによる索引ファイル(以下、転置インデックスと呼称する)の作成には、文字列にのみ基づくため、単語を認識する必要がないという利点がある。しかし、Nグラムによる索引ファイルは、単語を単位とするものに比べて、一般的にはデータサイズが大きくなりやすい。また、検索処理においても、検索時間が増大しやすいという問題がある。
上記のような索引ファイルのデータサイズや検索時間は、NグラムのNの値をどのように設定したかによって変動する。Nの値を大きくすると、文書から抽出されるNグラムの種類が多くなるため、一般的には索引ファイルのデータサイズは増大する。一方で、検索時間については、検索したい文字列の長さとの関係によっても異なるが、Nの値を大きくすると検索時間が短縮される場合が多い。例えば、非特許文献1には、異なるNの値における検索処理の高速化の比較が記載されている。
小川泰嗣,松田透,"n−gram索引を用いた効率的な文書検索法",電子情報通信学会論文誌(D-I),Vol.J82-D-I,No.1,pp.121-129,1999年1月
このようなNグラムを用いた検索において、索引ファイルのデータサイズを抑えつつ、検索処理にかかる検索時間を短縮したい、との要望がある。とくに、例えば携帯電話や電子辞書などのような小型の電子機器では、使用できるデータ容量が限られているため、その中で用いられる索引ファイルはデータサイズを抑制せざるをない。このような限られた環境においても、高速な検索処理の実現が求められている。
本発明は、以上のような課題を解決するためのものであり、文書データ中の所望の文字列を効率的に検索でき、データサイズが適切に抑えられた転置インデックスの生成方法および生成装置、当該転置インデックスを用いた検索方法および検索装置、ならびに、コンピュータプログラムを提供することを目的とする。
上記目的を達成するため、本発明の第1の観点にかかる転置インデックスの生成方法は、
文書データから、「N文字の文字列であるNグラム(Nは自然数)」を、当該文書データ中での出現位置と対応付けて、抽出する文書抽出ステップと、
先頭のM文字(MはNより小さい自然数)が共通なNグラムを要素とするNグラム群のいずれかに、前記抽出されたNグラムを分類する分類ステップと、
前記Nグラム群のそれぞれについて、前記Nグラム群に分類されたNグラムに対応付けられた出現位置を対応付けて、転置インデックスを生成する生成ステップと、
を備えることを特徴とする。
上記生成方法において、
前記分類ステップでは、前記抽出されたNグラムを分類しようとしているNグラム群に分類されたNグラムに対応付けられた出現位置の個数と、前記抽出されたNグラムに対応付けられた出現位置の個数と、の和が所定の第1の個数を超える場合、当該Nグラム群とは異なるNグラム群に前記抽出されたNグラムを分類する、
ことが望ましい。
上記生成方法において、
前記分類ステップでは、前記抽出されたNグラムを分類しようとしているNグラム群に分類されたNグラムの個数が所定の第2の個数である場合、当該Nグラム群とは異なるNグラム群に、前記抽出されたNグラムを分類する、
ことが望ましい。
上記生成方法において、
前記分類ステップでは、前記Nグラム群が所定の条件を満たすと、当該Nグラム群を複数のNグラム群に分割する、
ことが望ましい。
上記目的を達成するため、本発明の第2の観点にかかる転置インデックスの生成装置は、
文書データから、「N文字の文字列であるNグラム(Nは自然数)」を、当該文書データ中での出現位置と対応付けて、抽出する文書抽出手段と、
先頭のM文字(MはNより小さい自然数)が共通なNグラムを要素とするNグラム群のいずれかに、前記抽出されたNグラムを分類する分類手段と、
前記Nグラム群のそれぞれについて、前記Nグラム群に分類されたNグラムに対応付けられた出現位置を対応付けて、転置インデックスを生成する生成手段と、
を備えることを特徴とする。
上記目的を達成するため、本発明の第3の観点にかかる検索方法は、
検索文字列からNグラムを抽出する検索抽出ステップと、
上記の生成方法によって生成された転置インデックスから、前記抽出されたNグラムが分類されたNグラム群に対応付けられた出現位置を取得する位置取得ステップと、
前記取得された出現位置に基づいて、前記文書データ中の前記検索文字列の位置を特定する文書特定ステップと、
を備えることを特徴とする。
上記目的を達成するため、本発明の第4の観点にかかる検索装置は、
検索文字列からNグラムを抽出する検索抽出手段と、
上記の生成方法によって生成された転置インデックスから、前記抽出されたNグラムが分類されたNグラム群に対応付けられた出現位置を取得する位置取得手段と、
前記取得された出現位置に基づいて、前記文書データ中の前記検索文字列の位置を特定する文書特定手段と、
を備えることを特徴とする。
上記目的を達成するため、本発明の第5の観点にかかるコンピュータプログラムは、
コンピュータを、
文書データから、「N文字の文字列であるNグラム(Nは自然数)」を、当該文書データ中での出現位置と対応付けて、抽出する文書抽出手段、
先頭のM文字(MはNより小さい自然数)が共通なNグラムを要素とするNグラム群のいずれかに、前記抽出されたNグラムを分類する分類手段、
前記Nグラム群のそれぞれについて、前記Nグラム群に分類されたNグラムに対応付けられた出現位置を対応付けて、転置インデックスを生成する生成手段、
として機能させる。
上記目的を達成するため、本発明の第6の観点にかかるコンピュータプログラムは、
コンピュータを、
検索文字列からNグラムを抽出する検索抽出手段、
上記の生成方法によって生成された転置インデックスから、前記抽出されたNグラムが分類されたNグラム群に対応付けられた出現位置を取得する位置取得手段、
前記取得された出現位置に基づいて、前記文書データ中の前記検索文字列の位置を特定する文書特定手段、
として機能させる。
本発明によれば、文書データ中の所望の文字列を効率的に検索でき、データサイズが適切に抑えられた転置インデックスの生成方法および生成装置、当該転置インデックスを用いた検索方法および検索装置、ならびに、コンピュータプログラムを提供することができる。
本発明に係る転置インデックスを生成する生成装置の概要構成の例を示す図である。 本発明に係る転置インデックスを搭載した検索装置の概要構成の例を示す図である。 本発明に係る生成装置の生成処理の流れを示すフローチャートである。 文書データから抽出されたNグラムと、Nグラムの文書データ中での出現位置と、の対応関係の例を示す図である。 実施形態1に係る、NグラムをNグラム群へ分類する分類処理を示すフローチャートである。 NグラムがNグラム群へ分類される様子を示す図である。 実施形態1に係る生成装置によって生成された転置インデックスの例を示す図である。 本発明に係る検索装置の検索処理の流れを示すフローチャートである。 実施形態2に係る、NグラムをNグラム群へ分類する分類処理を示すフローチャートである。 実施形態2に係る生成装置によって生成された転置インデックスの例を示す図である。 実施形態3に係る生成装置の生成処理の流れを示すフローチャートである。 本発明に係る転置インデックスを生成する生成装置の概要構成の別の例を示す図である。 本発明に係る転置インデックスを搭載した検索装置の概要構成の別の例を示す図である。
以下、本発明の実施形態に係る転置インデックスの生成方法および生成装置、当該転置インデックスを用いた検索方法および検索装置について説明する。以下に説明する実施形態は説明のためのものであり、本発明の範囲を制限するものではない。
(実施形態1)
本実施形態では、コンピュータ装置を、図1に示されるような転置インデックスの生成装置として構成する。また、図1に示される生成装置10によって、本実施形態に係る転置インデックスの生成方法が実現される。
生成装置10は、CPU(Central Processing Unit)11、ROM(Read Only Memory)12、RAM(Random Access Memory)13、HDD(Hard Disk Drive)14、入力装置15、出力装置16、通信制御装置17により構成される。各構成要素は、命令やデータを転送するための伝送経路であるシステムバスにより、相互に接続されている。
CPU11は、生成装置10全体の動作を制御し、各構成要素と接続され制御信号やデータをやりとりする。
ROM12は、生成装置10全体の動作制御に必要なコンピュータプログラムや各種データを記憶する。
RAM13は、データやコンピュータプログラムを一時的に記憶するためのもので、ROM12から読み出したコンピュータプログラムやデータ、その他処理の進行に必要なデータが保持される。
HDD14は、転置インデックスの生成処理の動作のために必要なデータ等を記憶する。
入力装置15は、例えばキーボードやタッチパネル等によって構成され、ユーザからの各種入力を受け付ける。
出力装置16は、例えばディスプレイ等によって構成され、生成装置10の種々の処理結果を出力する。
通信制御装置17は、生成装置10をインターネット等のコンピュータ通信網に接続するためのものであり、コンピュータ通信網に接続してデータをやり取りする場合に必要となる。
そして、文書データ18がHDD14に記憶される。この文書データ18は、検索の対象であり、ユーザは、所望の文字列がこの文書データ18の中のどこに出現するかを、後述する検索装置20を用いて検索する。このような検索に用いるために、生成装置10は、文書データ18をもとにして、転置インデックスを生成する。
具体的に、本実施形態では、生成装置10の文書抽出手段が、文書データ18から、「N文字の文字列であるNグラム(Nは自然数)」を、当該文書データ18中での出現位置と対応付けて、抽出する。このような文書抽出手段として、例えばCPU11が、HDD14に記憶された文書データ18にアクセスし、ROM12やRAM13と協働することにより、実現される。
例えば、文書データ18が、「あいうえお」という文字列で構成されている場合、この文書データ18から、N=2のときのNグラム(バイグラム)を、「あい」、「いう」、「うえ」、「えお」の4個抽出する。そして、出現位置、すなわち各バイグラムが文書データ18中の先頭の文字から何文字目に出現するかの情報を、各バイグラムに対応付ける。
そして、生成装置10の分類手段が、先頭のM文字(MはNより小さい自然数)が共通なNグラムを要素とするNグラム群のいずれかに、抽出されたNグラムを分類する。このような分類手段として、例えばCPU11が、同じくROM12やRAM13と協働することで機能する。
ここで、Nグラム群とは、いくつかの(1つでもよい)Nグラムをまとめたグループを意味する。ここではNグラム群にまとめることのできる条件として、NグラムのN文字列のうち、先頭のM文字が共通のNグラム同士であることをとり、そうでないNグラム同士は1つのNグラム群には分類しない。
さらに、生成装置10の生成手段が、Nグラム群のそれぞれについて、Nグラム群に分類されたNグラムに対応付けられた出現位置を対応付けて、転置インデックスを生成する。このような生成手段として、CPU11が、ROM12やRAM13と協働しながら、出力装置16やHDD14、あるいは通信制御装置17を介して、生成された転置インデックスを出力することで機能する。
すなわち、Nグラム群に対応付けられる出現位置の数は、そこに分類されたNグラムの出現位置の数の和になる。生成された転置インデックスは、例えばHDD14に記憶されて保存されることになる。
このような生成装置10によって生成された転置インデックスは、検索装置に搭載され、検索処理に用いられる。本実施形態では、コンピュータ装置を、図2に示されるような検索装置として構成する。また、図2に示される検索装置20によって、本実施形態に係る転置インデックスの検索方法が実現される。
検索装置20は、CPU21、ROM22、RAM23、HDD24、入力装置25、出力装置26、通信制御装置27により構成される。各構成要素は、命令やデータを転送するための伝送経路であるシステムバスにより、相互に接続されている。
これらの構成要素は、基本的には図1に示された生成装置10の構成要素と同等なものである。すなわち、図1では、文書データ18から転置インデックスを生成するために機能した各構成要素が、ここでは生成された転置インデックスを用いて検索処理を行うために機能する。
すなわち、CPU21は、検索装置20全体の動作を制御し、各構成要素と接続され制御信号やデータをやりとりする。
ROM22は、検索装置20全体の動作制御に必要なコンピュータプログラムや各種データを記憶する。
RAM23は、データやコンピュータプログラムを一時的に記憶するためのもので、ROM22から読み出したコンピュータプログラムやデータ、その他処理の進行に必要なデータが保持される。
HDD24は、検索処理の動作のために必要なデータ等を記憶する。
入力装置25は、例えばキーボードやタッチパネル等によって構成され、ユーザからの各種入力を受け付ける。
出力装置26は、例えばディスプレイ等によって構成され、検索装置20の種々の処理結果を出力する。
通信制御装置27は、検索装置20をインターネット等のコンピュータ通信網に接続するためのものであり、コンピュータ通信網に接続してデータをやり取りする場合に必要となる。
そして、文書データ18と、生成装置10によって生成された転置インデックス19とが、HDD24に記憶される。検索装置20は、HDD24内の転置インデックス19をもとに、ユーザによって指定された検索文字列が文書データ18の中のどこに出現するかを特定する。
具体的に、本実施形態では、検索装置20の検索抽出手段が、検索文字列からNグラムを抽出する。このような検索抽出手段として、CPU21が、入力装置25を介してユーザから検索文字列を受け付け、ROM22やRAM23と協働することで機能する。
ここで検索文字列は、例えば入力装置25によってユーザから受け付けられ、受け付けられた検索文字列から、例えばCPU21が、一時的記憶領域としてのRAM23と協働することによって、Nグラムを抽出する。
そして、検索装置20の位置取得手段が、転置インデックス19から、抽出されたNグラムが分類されたNグラム群に対応付けられた出現位置を取得する。このような位置取得手段として、CPU21が、HDD24に記憶された転置インデックス19にアクセスし、ROM22やRAM23と協働することで機能する。
すなわち、上記の生成装置10によって生成された転置インデックス19には、Nグラム群と、そこに分類されるNグラムの出現位置と、が対応付けられている。ここでは、上記の検索抽出手段によって抽出されたNグラムについて、分類されたNグラム群を特定する。そして、特定されたNグラム群に対応付けられた出現位置を取得することで、検索抽出手段によって抽出されたNグラムの文書データ18内での出現位置の候補を取得する。
さらに、検索装置20の文書特定手段が、取得された出現位置に基づいて、文書データ18中の検索文字列の位置を特定する。このような文書特定手段として、CPU11が、ROM22やRAM23と協働しながら、出力装置26や通信制御装置27を介して、特定された結果を出力することで機能する。
このような構成によって実現される生成装置10と検索装置20における、処理の流れの詳細を説明する。ここではまず、図3を参照して、転置インデックス19の生成処理について、フローチャートを用いて説明する。
生成装置10が、例えば入力装置15を介してユーザからの生成処理の開始の指示を受け付けることで、転置インデックス19の生成処理を開始する。転置インデックス19の生成処理が開始されると、まず生成装置10の文書抽出手段は、CPU11の機能により、文書データ18からNグラムを抽出する(ステップS101)。すなわち、HDD14などに記録されている文書データ18にアクセスして、文書データ18を構成する文字列から、抽出できるNグラムを抽出する。このとき、文書データ18がNdoc文字の文字列から構成されるとすると、Ndoc−N+1個のNグラムが抽出される。ここでNの値は、生成装置10によって予め定められている1種類の値であり、N=2、N=3、あるいはそれ以外の自然数の値をとるが、以下では説明のために、その都度N=2やN=3などの場合を用いて説明をする。
具体的に、例えば文書データ18が「携帯電話」という文字列で構成されるとする。このとき、N=2の場合、抽出されるNグラム(バイグラム)は、前から順に「携帯」、「帯電」、「電話」、の3個(4−2+1個)である。また、例えば、N=3の場合、抽出されるNグラム(トリグラム)は、前から順に「携帯電」、「帯電話」、の2個(4−3+1個)である。
なお、ここで実際には、N=2の場合は、「携帯電話」という文字列の末尾から「話」というNグラム(モノグラム)も、上記の3個のバイグラムとともに抽出する。また、N=3の場合は、末尾から「電話」というバイグラムと「話」というモノグラムも、上記の2個のトリグラムとともに抽出する。すなわち、文書データ18の末尾の文字列からは、Nより小さいものも抽出する。この理由は、ここで生成された転置インデックス19を用いて検索を行う際に、例えば「話」という検索語が指定された場合に、文書データ18の末尾が正しく特定されるために必要となるからである。
次に、生成装置10の文書抽出手段は、CPU11の機能により、抽出されたNグラムのそれぞれについて、文書データ18中の出現位置を対応付ける(ステップS102)。すなわち、ステップS101で抽出されたNグラムが、文書データ18中のどの位置にあったのかの情報を、抽出されたNグラムそれぞれについて対応付ける。
具体的に、例えば上記のように文書データ18が「携帯電話」という文字列で構成され、そこからバイグラム(N=2)を抽出したとする。このとき、抽出された「携帯」というバイグラムは、文書データ18の先頭に位置するので、例えば「1」という数字が対応付けられる。また、「帯電」というバイグラムは、先頭から2文字目に位置するので、「2」という数字が対応付けられる。さらに、「電話」というバイグラムは、先頭から3文字目に位置するので、「3」という数字が対応付けられる。
なお、ステップS102における対応付けの処理は、ステップS101における抽出処理がすべてのNグラムについて終了した後に行われるように示されているが、本実施形態では必ずしもこれに限られない。すなわち、文書データ18からNグラムを1個抽出するごとに、同時にそのNグラムに出現位置を対応付けながら抽出してもよい。
そして、生成装置10のCPU11は、出現位置が対応付けられたNグラムを、文字の配列順に並べて保持する(ステップS103)。すなわち、Nグラムを構成する文字の配列順(例えば五十音順やアルファベット順)に並べて、それらを例えばRAM13に記憶して保持する。
このように並べられたNグラムと出現位置との対応関係について、図4を参照してより詳細に説明する。図4では、上記のように文書データ18が「携帯電話」という4個の文字で構成されるものではなく、より大きな文書データ18であって、より多数の文字を含む文書データ18を用いた場合を想定している。そして、図4には、このような多数の文字を含む文書データ18から抽出されたバイグラムと、各バイグラムが文書データ18中の何文字目に位置しているかを表す出現位置とが、対応付けられて配置されている。
具体的に、図4では、最初に配置された「ああ」というバイグラムには、「5」、「22」、「33」、「35」、「87」、「120」という6個の出現位置が対応付けられている。これはすなわち、文書データ18中に「ああ」というバイグラムが、先頭からそれぞれの文字列目の位置に6回出現するということを意味するものである。同様に、図4では、次に配置された「あい」というバイグラムには、「69」、「155」が対応付けられ、さらに「あう」というバイグラムには、「10」、「48」、「98」、「134」が対応付けられ、等というように、文書データ18から抽出されるすべてのバイグラムについて、出現位置が対応付けられている。
このように、Nグラム(図4の例ではバイグラム)とそのNグラムが文書データ18中に出現する位置とが対応付けられたものについて、いわゆる通常のNグラム検索においては、これが転置インデックスとして用いられる。すなわち、従来から公知のNグラム検索では、あらかじめ検索対象の文書データ18から、典型的には図4のように構成される転置インデックスを作成し、保持しておく。そして、検索時には、保持された転置インデックスを参照して、検索文字列を構成するNグラムの出現位置を取得し、これをもとに検索文字列が文書データ18中のどの位置にあるのかを特定する。これに対して本発明では、このような従来から公知の転置インデックスをさらに改良して、転置インデックスのデータサイズと検索処理の効率とを、より柔軟に設計可能な転置インデックスの生成方法を提供する。
そのために、図3に戻って、生成装置10の分類手段が、CPU11やRAM13等の機能により、このように出現位置が対応付けられた保持されているNグラムを、Nグラム群に分類する(ステップS104)。ここでNグラム群とは、いくつか(1つでもよい)のNグラムをまとめたグループのことである。以下、このようなグループへ、それぞれのNグラムがどのように分類されていくかの流れの詳細を、図5のフローチャートを参照しながら説明する。
図5において、Nグラムの分類処理が開始されると、生成装置10の分類手段は、まず、最初のNグラムに着目する(ステップS201)。文書データ18から抽出されたNグラムは、ステップS103において文字の配列順に並べられているので、ここでは文字の配列順に先頭のNグラムに着目する。上記の図4を例にとって説明すると、最初のバイグラム「ああ」に着目することになる。
次に、生成装置10の分類手段は、RAM13等を用いて、空のNグラム群を作成し、そこに最初のNグラムを分類する(ステップS202)。すなわちここでは、ステップS201にて着目された最初のNグラムを分類するための最初のNグラム群が作成されることになる。上記の図4の例では、着目された「ああ」というバイグラムを分類するための新たなバイグラム群が作成されることになる。
そして、生成装置10の分類手段は、次のNグラムに着目する(ステップS203)。上記の図4の例では、文字列順に2番目のバイグラムである「あい」に着目することになる。
ここで、生成装置10の分類手段は、CPU11の機能により、着目されたNグラムの先頭のM文字は、最後に作成されたNグラム群に分類されたNグラムの先頭のM文字に、一致するか、を判定する(ステップS204)。ここで、MはNより小さい自然数であるとする。すなわち、上記の図5の例の場合は、Nグラムとしてバイグラムを採用しているので、N=2であり、Mはそれより小さい自然数、すなわちM=1となる。
なお、例えば別の例として、Nが2より大きな値の場合は、Mの値のとり方として、M=1〜N−1まで複数の候補があることになる。この場合は、これら複数の候補のうち、生成装置10によっていずれか1種類の値が予め定められている。そして、そのMの値をもとに、ステップS204では、着目されたNグラムの先頭のM文字が、最後に作成されたNグラム群に分類されたNグラムの先頭のM文字に一致するか、が判定される。
そして、最後に作成されたNグラム群は、ここではステップS202において作成されたNグラム群となり、上記の図4の例の場合は、最初のバイグラム「ああ」が分類されているバイグラム群ということになる。このとき、現在着目されているバイグラム「あい」の先頭の1文字「あ」は、最後に作成されたバイグラム群に分類されたバイグラム「ああ」の先頭の1文字「あ」に、一致しているので、ここでの判定はYESとなる。
このように、一致していると判定されると(ステップS204;YES)、生成装置10の分類手段は、着目されたNグラムをその(最後に作成された)Nグラム群に分類すると、出現位置の個数の和は、所定の個数を超えるか、を判定する(ステップS205)。
具体的に、例えばここでは、所定の個数を「10個」として説明する。このとき、上記の図4の例では、着目されたバイグラム「あい」には2個の出現位置が対応付けられており、最後に作成されたバイグラム群に分類されたバイグラム「ああ」には6個の出現位置が対応付けられているので、出現位置の個数の和は、「8個」となる。これは、所定の個数である「10個」よりも小さいので、ステップS205での判定はNOとなる。
出現位置の個数の和が所定の個数を超えないと判定されると(ステップS205;NO)、生成装置10は、着目されたNグラムを、その(最後に作成された)Nグラム群に分類する(ステップS206)。上記の図4の例では、着目されたバイグラム「あい」を、バイグラム「ああ」がすでに分類されているNグラム群に分類する。その結果、「ああ」と「あい」という2個のバイグラムを要素にもつNグラム群ができる。
この後、生成装置10の分類手段は、すべてのNグラムに着目し終えたか、を判定する(ステップS207)。着目し終えてなければ(ステップS207;NO)、処理はステップS203へ戻り、次のNグラムに着目して、再び分類処理を行うことになる。上記の図4の例では、3番目のバイグラム「あう」が着目されて、2番目のバイグラム「あい」に対して行われた分類処理が行われることになる。
ここでは具体的に、バイグラム「あう」が着目されたとして説明する。まず、着目されたバイグラム「あう」について、ステップS204において、先頭の1文字は、最後に作成されたバイグラム群に分類されたバイグラムの先頭の1文字に、一致するか、が判定される。ここでは、最後に作成されたバイグラム群にはすでに「ああ」と「あい」が分類されており、このバイグラム群に分類されたバイグラムの先頭の1文字「あ」は、着目されたバイグラム「あう」の先頭の1文字「あ」と、一致するので、ここでの判定はYESとなる。
そして、バイグラム「あう」について、ステップS205において、そのバイグラム群に分類すると、出現位置の個数の和は所定の個数を超えるか、が判定される。バイグラム群の要素である「ああ」と「あい」は、図4のようにそれぞれ6個と2個の出現位置が対応付けられている。一方、着目されたバイグラム「あう」は、図4により、出現位置が4個対応付けられている。従って、出現位置の個数の和は、「12個」(6+2+4個)となる。そのため、所定の個数を上記のように「10個」とすると、所定の個数を超えることになるので、ここではYESと判定される。
このように、出現位置の個数の和が所定の個数を超えると判定されると(ステップS205;YES)、生成装置10は、新たなNグラム群を作成し、そこに着目されたNグラムを分類する(ステップS208)。すなわち、ここではすでに存在するNグラム群とは別のNグラム群を作成することになる。具体的に、「ああ」と「あい」という2個のバイグラムを要素とするバイグラム群とは別の新たなバイグラム群を作成して、そこにここで着目されているバイグラム「あう」を分類する。
そして、生成装置10の処理は再びステップS207へ移行し、すべてのNグラムに着目し終えてなければ、またステップS203へ戻って、次のNグラムに着目して分類することになる。
そしてここから、処理がさらに先に進んだ場合について説明する。具体的には、上記の図4の例において、バイグラム「ああ」、「あい」、「あう」からさらに処理が進んで、バイグラム「あ和」までの処理が完了して、次にバイグラム「いあ」がステップS203において着目された場合を例にとる。すなわち、先頭の1文字が「あ」であるバイグラムはすべて分類処理が終了し、先頭の1文字が「い」である最初のバイグラムに着目された場合について、以下に説明する。
このとき、これまでと同様に、ステップS204において、着目されたバイグラム「いあ」の先頭の1文字は、最後に作成されたバイグラム群に分類されたバイグラムの先頭の1文字に、一致するか、が判定される。ここで、最後に作成されたバイグラム群は、少なくとも1個前に着目されたバイグラム「あ和」を要素にもつので、他に要素をもっていたとしても、先頭の1文字が「あ」であるバイグラムを要素にもつことになる。従って、着目されたバイグラム「いあ」の先頭の1文字「い」とは一致しないことになり、ここでの判定はNOとなる。
一致しないと判定されると(ステップS204;NO)、生成装置10の処理は、ステップS208へ移行する。すなわち、「いあ」を分類するべき新たなバイグラム群を作成し、そこに着目されたバイグラムである「いあ」を分類する。
このステップS208には、上述したバイグラム「あう」を例にとって説明したときは、ステップS205でYESと判定されることを経由して到達した。すなわち、着目されているNグラムと、分類しようとしているNグラム群の要素と、の先頭のM文字が一致している場合は、着目されているNグラムをそのNグラム群に分類してしまうと、出現位置の個数の和が所定の個数を超えてしまう場合に、新たなNグラム群を作成した。しかし、着目されているNグラムと、分類しようとしているNグラム群の要素と、の先頭のM文字が一致していない場合は、出現位置の個数の和にかかわらずに、新たなNグラム群を作成して、そこに着目されているNグラムを分類することになる。
このように、着目されたNグラムを、すでにあるNグラム群に分類してよいかを判定していくことで、先頭のM文字が共通なNグラムを要素とし、かつ要素であるNグラムの出現位置の個数の和が所定の個数を超えないNグラム群を作成することができる。
このような分類処理を、抽出されたNグラムの種類の数だけ繰り返し、NグラムをNグラム群に分類していく。そして、ステップS207において、すべてのNグラムに着目し終えたと判定されると(ステップS207;YES)、この分類処理は終了する。
その結果、図6に示されるように、Nグラムが先頭から数個ごとにNグラム群としてまとめられる。すなわち、図6は、図4のように文書データ18中での出現位置が対応付けられて並べられたバイグラムが、図5の分類処理を経て、バイグラム群に分類された後の様子を示している。具体的に、先頭から、バイグラム「ああ」と「あい」が1つのバイグラム群に分類され、「あう」と「あえ」と「あお」が1つのバイグラム群に分類され、というように、すべてのバイグラムがいずれかのバイグラム群に分類されることになる。
このようにNグラム群に分類された後、図3に戻って、転置インデックス19の生成処理はステップS105へ移行する。すなわち、生成装置10は、Nグラム群のそれぞれについて、そこに分類されたNグラムの文書データ18中の出現位置を対応付ける(ステップS105)。すなわち、文書データ18中でのNグラムの出現位置は、図4および図6では個々のNグラムに対応付けられていたが、ここでそれぞれのNグラムが分類されたNグラム群に改めて対応付け直す。
具体的に、図4および図6では、バイグラム「ああ」には、「5」、「22」、「33」、「35」、「87」、「120」という6個の出現位置が対応付けられており、バイグラム「あい」には、「69」、「155」という2個の出現位置が対応付けられている。ここでは、これら2個のバイグラムを要素とするバイグラム群に、これらあわせて8個の出現位置が対応付けられることになる。
そして、最後に生成装置10は、対応付けられた出現位置を昇順に並べて、転置インデックス19を生成する(ステップS106)。その結果、図7に示されるような転置インデックス19が生成される。図7では、図6においてバイグラム群に分類されて、さらにそれまで個々のバイグラムに対応付けられていた出現位置が、バイグラム群に対応付けられている。具体的に、「ああ」と「あい」のバイグラムを要素とするバイグラム群には、「5」、「22」、「33」、「35」、「69」、「87」、「120」、「155」という出現位置が、昇順に並べられて対応付けられている。
このように、本実施形態における生成装置10は、先頭のM文字が共通なNグラムを要素とし、かつ要素であるNグラムの出現位置の個数の和が所定の個数を超えないNグラム群を作成し、それぞれのNグラム群に分類されたNグラムに対応付けられた出現位置が対応付けられた転置インデックス19を生成することができる。
このような転置インデックス19は、Nグラム群に分類されない通常の転置インデックスに比べて、データサイズを小さく抑えることができる。なぜなら、いくつかのNグラムがNグラム群にまとめられている分だけ、種類が少なくなり、1種類あたりに対応付けられる出現位置の個数が多くなって、よりデータの圧縮効率を上げることができるからである。このとき、上述した図5のステップS205において用いられた、1つのNグラム群に分類できる出現位置の個数の上限を表す「所定の個数」を大きな値にすればするほど、1つのNグラム群にまとめられるNグラムの種類が多くなり、よりデータサイズを小さく抑えることができるようになる。
しかし一方で、1つのNグラム群に分類できる「所定の個数」を大きな値にすると、1つのNグラム群に分類される先頭のM文字が共通なNグラムの個数が多くなる。これはすなわち、Mグラムを単位とする転置インデックスが生成されることと、同じことになる。一般的に、単位となるNグラムのNの値が小さくなると、転置インデックスのデータサイズは小さくなるが、それを用いた検索処理の速度が遅くなる場合が多い。データサイズが小さくなる理由については、Nの値が小さいと、上記と同じ理由により、1つのNグラムの単位に対応付けられる出現位置の個数が多くなって、よりデータサイズを小さく抑えることができるからである。一方で、検索処理の速度が遅くなる理由については、後述する検索処理のフローチャートにおいて説明するように、1つのNグラムの単位に対応付けられる出現位置の個数が多くなることで、検索時に、検索したい文字列の文書データ18中での位置の候補が多くなって、絞り込むのに時間がかかるからである。
そのため、本実施形態では、「所定の個数」を適切な値に設定することで、Nグラムを単位とする転置インデックスと、Mグラムを単位とする転置インデックスとの間の特徴をもつ転置インデックス19を生成する。一般的に、「所定の個数」が小さな値のときは、生成される転置インデックス19はNグラムを単位とする転置インデックスに近いものとなり、逆に、「所定の個数」が大きな値のときは、生成される転置インデックス19はMグラムを単位とする転置インデックスに近いものとなる。
そして、ここからは、このようにして生成された転置インデックス19を用いたとき、検索処理がどのようになるかを、以下に図8のフローチャートを参照して、説明する。
図8のフローチャートにおいて、検索処理が開始されると、まず検索装置20は、ユーザから入力された検索文字列を受け付ける(ステップS301)。すなわちここで、ユーザは検索したい文字列を例えば入力装置25を用いて入力する。そして、検索装置20は、その検索文字列を受け付ける。
次に、検索装置20の検索抽出手段は、CPU21とRAM23等の機能により、受け付けられた検索文字列からNグラムを抽出する(ステップS302)。このとき、検索文字列がN文字の文字列であるとすると、NがNよりも大きい場合は、最大でN−N+1個のNグラムが抽出されうる。具体的に、例えばユーザが「あいうえお」という検索文字列を入力したとして、ここからバイグラム(N=2)を抽出する場合を例にとって説明をする。この「あいうえお」という5文字の検索文字列からは、先頭から、「あい」、「いう」、「うえ」、「えお」という4個(5−2+1個)のバイグラムが抽出される。
なお、ここではさらに、検索文字列の末尾の文字である「お」が、モノグラムとして抽出される。このモノグラムは、後述するステップS304において、検索文字列の位置を特定するために必要となるものである。
このように検索文字列からNグラムが抽出された後、検索装置20の位置取得手段は、CPU21とRAM23等の機能により、転置インデックス19を用いて、抽出されたNグラムが分類されたNグラム群を特定し、特定されたNグラム群に対応付けられた出現位置を取得する(ステップS303)。すなわち、生成装置10によって生成され、例えばHDD24に記憶された転置インデックス19にアクセスして、文書データ18中における出現位置の候補を拾い上げる。
この後、検索装置20の文書特定手段は、CPU21の機能により、取得された出現位置に基づいて、文書データ18中の検索文字列の位置を特定する(ステップS304)。すなわち、ステップS303において取得された出現位置は、Nグラム群単位での出現位置であったため、ここではまだ、所望の検索文字列の出現位置の候補である。そのため、ここでは、取得された出現位置の中から、所望の検索文字列の位置を指し示すものを絞り込む。具体的には、Nグラムそれぞれについて取得された出現位置の連続性を調べる。
具体的に、上記のような検索文字列「あいうえお」から4個のバイグラム「あい」、「いう」、「うえ」、「えお」が抽出された例の場合であって、図7のような転置インデックス19が生成装置10によって生成されていた場合について説明する。このとき、バイグラム「あい」が分類されたバイグラム群には、「5」、「22」、「33」、「35」、「69」、「87」、「120」、「155」という8個の出現位置が対応付けられているので、これらを取得する。そして、バイグラム「いう」が分類されたバイグラム群には、「8」、「29」、「50」、「54」、「64」、「70」、「89」、「185」という8個の出現位置が対応付けられているので、これらを取得する。
このとき、取得された「いう」についての8個の出現位置のうち、「あい」についての出現位置との連続性を考慮して、1文字ずれた出現位置にあるものに着目する。具体的に、「あい」の出現位置「69」と、「いう」の出現位置「70」に、着目する。すなわち、これら以外の出現位置については、検索文字列を構成するバイグラムの出現位置ではないとして、候補から除外することになる。
同様に、「うえ」と「えお」についても、転置インデックス19からこれらが分類されたバイグラム群に対応付けられた出現位置を取得する。そして、検索文字列を構成する前後のバイグラムとの連続性を考慮して、取得された出現位置からさらに絞り込む。具体的には、「いう」についての出現位置「70」に対して、1文字ずつずれた位置である「うえ」についての出現位置「71」と、「えお」についての出現位置「72」に、着目する。
さらに、検索文字列の末尾について抽出されたモノグラム「お」についても同様な処理をとる。ここで、上記のようなバイグラムと異なり、この場合だけモノグラムであるため、転置インデックス19のバイグラム群のうち、「お」から始まるバイグラムを要素とするすべてのバイグラム群についての出現位置を取得する。そして、そのような「お」から始まるバイグラム群の中に、上記の「えお」についての出現位置「72」よりも1文字ずれた「73」を出現位置にもつバイグラム群があれば、検索文字列「あいうえお」について抽出されたすべてのバイグラム(およびモノグラム)の出現位置についての連続性があると判断できることになる。
この後、最後に、検索装置20は、特定された位置をユーザへ出力して(ステップS305)、検索処理を終える。すなわち、例えば出力装置26によって、ユーザから受け付けられた検索文字列が文書データ18中のどこにあるのかを検索結果として出力して、検索を終える。
このように、本実施形態における検索装置20は、あらかじめ生成装置10によって生成された転置インデックス19を用いることで、文書データ18にアクセスすることなく、所望の検索文字列が文書データ18内のどの位置にあるのかを検索することができる。
このような検索処理は、上述したように、Nグラムを単位とする転置インデックスを用いた場合と、Mグラムを単位とする転置インデックスを用いた場合との、間の特徴を示すものとなる。この理由を、以下に説明する。
本実施形態における生成装置10によって生成された転置インデックス19は、先頭のM文字(MはNより小さい自然数)が共通のNグラムが、「所定の個数」を上限としてNグラム群を単位として、まとめられている。まず、Nグラム単位の転置インデックスを用いた場合と比べて、1単位に対応付けられた出現位置の個数は多くなるため、図8のステップS303において、検索文字列から抽出されたNグラムについての出現位置を転置インデックス19から取得する際に、多くの出現位置が取得されることになって、ステップS304での位置の特定処理に時間がかかり、検索処理の速度が遅くなることにつながる。一方で、Mグラム単位の転置インデックスを用いた場合と比べて、1単位に対応付けられた出現位置の個数は少なくなるため、上記とは逆の理由により、検索処理の速度が速くなることにつながる。
そのため、生成装置10によって生成された転置インデックス19によって、検索装置20は、Nグラムを単位とする転置インデックスを用いた場合と、Mグラムを単位とする転置インデックスを用いた場合との、間の特徴を示すことになる。
以上により、実施形態1では、生成装置10が、先頭のM文字が共通なNグラムを要素とするNグラム群と、その要素であるNグラムの文書データ18中の出現位置と、が対応付けられた転置インデックス19を生成する。そして、検索装置20が、生成された転置インデックス19に基づいて、ユーザにより指定された検索文字列が文書データ18中のどこに出現するのかを検索する。
このような生成装置10によって生成された転置インデックス19は、Nグラムを単位とする転置インデックスに比べて、データサイズを小さくなり、Mグラムを単位とする転置インデックスに比べて、データサイズが大きくなる。また、このような転置インデックス19を用いた検索装置20では、Nグラムを単位とする転置インデックスを用いた場合に比べて、処理速度が遅くなる場合が多く、Mグラムを単位とする転置インデックスを用いた場合に比べて、処理速度が速くなる場合が多い。
その結果として、Nグラムを用いた場合と、Mグラムを用いた場合と、の間の特徴をもった検索装置等を提供することができる。すなわち、転置インデックスのデータサイズを抑えることと、高い検索処理速度と、を両立することができる。そのため、例えば携帯電話や電子辞書といった小型の電子機器のような、使用可能なデータ容量が制限されている環境においても、転置インデックスのデータサイズを小さく抑えつつ、なるべく高い処理速度で検索したいという要望を満たすことができるようになる。
(実施形態2)
次に、本発明の実施形態2について説明する。実施形態1では、生成装置10は、Nグラムの出現位置の個数と、そのNグラムを分類しようとしているNグラム群にすでに分類されているNグラムの出現位置の個数と、の和が所定の個数を超えている場合に、そのNグラムを分類するための新たなNグラム群を別に作成した。
それに対して、実施形態2では、出現位置の個数ではなく、Nグラム群に分類されているNグラムの個数(何種類のNグラムがあるか)に着目する。すなわち、実施形態2における生成装置10は、Nグラムを分類しようとしているNグラム群にすでに分類されているNグラムの個数が、所定の個数であった場合に、そのNグラムを分類するための新たなNグラム群を別に作成する。以下に、図9のフローチャートを参照して、本実施形態における生成装置10の生成処理の流れを説明する。
図9におけるフローチャートは、上述した実施形態1におけるフローチャート(図5)と基本的には同様のものであるが、ここでは、図5におけるステップS205の処理が、別の処理(図9の点線内)に置き換わっている。
すなわち、ステップS204において、着目されたNグラムの先頭のM文字が、最後に作成されたNグラム群に分類されたNグラムの先頭のM文字に一致すると判定された後(ステップS204;YES)、実施形態1における生成装置10は、着目されたNグラムを、最後に作成されたNグラム群に分類する際に、出現位置の個数の和をとり、その和が所定の個数を超えるか、を判定した。これに対して、本実施形態における生成装置10は、最後に作成されたNグラム群にすでに分類されているNグラムの個数が、所定の個数(実施形態1における所定の個数と同じ個数である必要はない)であるか、を判定する(ステップS401)。
所定の個数でなかった場合は(ステップS401;NO)、着目されたNグラムを、そのNグラム群に分類する(ステップS206)。一方で、所定の個数であった場合は(ステップS401;YES)、新たなNグラム群を作成し、そこに着目されたNグラムを分類する(ステップS208)。すなわち、ここでの「所定の個数」は、1つのNグラム群に分類可能なNグラムの個数の上限に相当するものである。そして、1つのNグラム群がもつNグラムの個数に上限を設けて、分類されたNグラムがその上限に達すると、次のNグラムについては、それを分類するための新たなNグラム群を作成する。
このような生成処理によって生成された転置インデックス19は、図10に示すようなものになる。図10では、例として、1つのバイグラム群に分類可能なバイグラムの個数の上限である「所定の個数」を、「3個」に設定した場合について示している。このとき、1つのバイグラム群には、基本的には3個ずつのバイグラムが分類される。
具体的に、図10では、先頭から、バイグラム「ああ」、「あい」、「あう」が1つのバイグラム群にまとめられ、バイグラム「あえ」、「あお」、「あか」が1つのバイグラム群にまとめられ、というように、3個ずつのバイグラムが1つのバイグラム群にまとめられている。そして、図10では、まとめられたバイグラム群のそれぞれには、文書データ18中における出現位置が対応付けられている。これらの出現位置は、実施形態1と同様に、バイグラム群の要素のバイグラムのいずれかが、文書データ18中において出現する位置に相当し、出現する数だけバイグラム群に対応付けられている。
すなわち、実施形態1において生成された転置インデックス19(図7)は、出現位置の個数の和をもとにして、バイグラムをバイグラム群に分類されていたので、1つのバイグラム群がもつバイグラムの数は一定でなく、1つのバイグラム群に対応付けられた出現位置の個数がほぼ一定なものとなった。これに対して、本実施形態での転置インデックス19(図10)は、1つのバイグラム群に対応付けられた出現位置の個数はあまり一定なものとはならずに、要素となるバイグラムの個数が、ほぼ一定なものとなる。
以上により、実施形態2では、出現位置の個数ではなく、Nグラム群に分類されているNグラムの個数に着目して、Nグラムの個数が上限を超えないように、NグラムをNグラム群に分類していく。その結果、1つのNグラム群にほぼ同じ個数のNグラムが分類された転置インデックス19を生成することができ、この転置インデックス19を用いて、転置インデックスのデータサイズを抑えることと、高い検索処理速度と、を両立させることのできる検索装置20を提供することができる。
(実施形態3)
次に、本発明の実施形態3について説明する。実施形態1および実施形態2では、生成装置10は、NグラムをNグラム群に分類しようとしている際に、そのNグラム群に分類可能かを判断して、分類できなければ、そのNグラムを分類するための新たなNグラム群を作成した。
それに対して、実施形態3では、分類処理のアルゴリズムを変更して、先頭のM文字が共通なすべてのNグラムを1つのNグラム群に分類した後で、そのNグラム群を複数のNグラム群に分割していく。以下に、図11のフローチャートを参照して、本実施形態における生成装置10の生成処理の流れを説明する。
図11におけるフローチャートは、上述した実施形態1における生成装置10の生成処理を説明したフローチャート(図3)と基本的には同様のものであるが、ここでは、図3におけるステップS104の処理が、別の処理(図11の点線内)に置き換わっている。
すなわち、上述した実施形態1および実施形態2では、文書データ18からNグラムを抽出し(ステップS101)、抽出されたNグラムのそれぞれについて、文書データ18中の出現位置を対応付け(ステップS102)、出現位置の対応付けられたNグラムを、文字の配列順に並べて保持(ステップS103)した後、ステップS104において、保持されたNグラムを、Nグラム群に分類する処理へ移行した。
これに対して本実施形態の生成装置10の分類手段は、まず、先頭のM文字が共通なすべてのNグラムを、1つのNグラム群に分類する(ステップS501)。すなわち、これまでは、1つのNグラム群に分類されるNグラムの数に対して、対応付けられた出現位置の個数の和に所定の上限を(実施形態1)、あるいは分類されるNグラムの個数に所定の上限を(実施形態2)設けていた。一方で、本実施形態では、分類されるNグラムの数に上限を設けずに、先頭のM文字が共通なNグラムをすべて、1つのNグラムにまとめる。
その後、生成装置10は、Nグラム群が所定の条件を満たす場合、複数のNグラム群に分割する(ステップS502)。すなわち、ステップS501の時点では、1つのNグラム群は、先頭のM文字が共通なNグラムをすべて要素にもっているので、これを分割して、1つのNグラム群あたりがもつNグラムの数を少なくする。
このときの所定の条件としては、種々の条件を設定することができる。例えば、実施形態1のように出現位置の個数の和に着目して、Nグラム群にすでに分類されているNグラムに対応付けられた出現位置の個数の和が所定の個数を超えた場合に、分割することにしてもよい。あるいは、実施形態2のように要素の個数に着目して、Nグラム群にすでに分類されているNグラムの個数が所定の個数を超えた場合に、分割することにしてもよい。
そして、上記のような所定の条件を満たした場合におけるNグラム群を分割する方法も、種々の方法が考えられる。例えば、Nグラム群に分類されたNグラムを、文字の配列順に先頭から、所定の条件を満たす分だけ抽出していき、それらを新たなNグラム群に分類していってもよい。あるいは、Nグラム群を、そこに分類されたNグラムを文字の配列順に並べ、その中央あたりで2つに分割し、分割されたNグラム群が所定の条件を満たすまでこの分割を繰り返すようにしてもよい。
その後、本実施形態における転置インデックス19の生成処理はステップS105へ移行する。すなわち、上述した実施形態1および実施形態2と同様に、生成装置10は、Nグラム群のそれぞれについて、そこに分類されたNグラムの文書データ18中の出現位置を対応付ける(ステップS105)。そして、最後に生成装置10は、対応付けられた出現位置を昇順に並べて、転置インデックス19を生成する(ステップS106)。
生成された転置インデックス19は、所定の条件として、実施形態1のように出現位置の個数の和に着目して設定した場合には、図7のように、Nグラム群に分類されたNグラムに対応付けられた出現位置の個数の和がほぼ一定なものになる。あるいは、所定の条件として、実施形態2のように要素の個数に着目して設定した場合には、転置インデックス19は、図10のように、Nグラム群に分類されたNグラムの個数がほぼ一定なものになる。
以上により、実施形態3では、Nグラム群を複数に分割する方法によって、所定の条件を満たしたNグラム群を単位とする転置インデックスを生成することができる。そして、この転置インデックス19を用いて、転置インデックスのデータサイズを抑えることと、高い検索処理速度と、を両立させることのできる検索装置20を提供することができる。
なお、本実施形態における生成装置10では、文書データ18は、例えば図1のようにHDD14内に記憶されるなどして生成装置10内に存在することに限られない。すなわち、例えば図12のように、文書データ18は、生成装置10内ではなくインターネット上に存在し、通信制御装置17を介して取得されうるものであってもよい。
また、本実施形態における検索装置20では、上記の生成装置10と同様に、文書データ18は、例えば図2のようにHDD14内に記憶されるなどして検索装置20内に存在することに限られない。すなわち、例えば図13のように、文書データ18は、検索装置20内ではなくインターネット上に存在し、通信制御装置17を介して取得されうるものであってもよい。
このような構成をとることで、図13の実施形態では図2でのものに比べ、検索装置20内に文書データ18を記憶する必要がなく、インターネットに適切に接続可能な環境であれば、小型の電子辞書のような限られた容量の装置においても実現しやすくなる。
また、本発明での実施形態は、上述した実施形態に加え、上記生成装置10としてコンピュータ装置を機能させるためのコンピュータプログラムであってもよい。また、上記検索装置20としてコンピュータ装置を機能させるためのコンピュータプログラムであってもよい。
上記コンピュータプログラムは、コンパクトディスク、フレキシブルディスク、ハードディスク、光磁気ディスク、ディジタルビデオディスク、磁気テープ、半導体メモリ等のコンピュータ読取可能な情報記憶媒体に記憶することができる。
また、上記コンピュータプログラムは、コンピュータプログラムが実行されるコンピュータ装置とは独立して、コンピュータ通信網を介して配付・販売することができる。また、上記情報記憶媒体は、コンピュータ装置とは独立して配付・販売することができる。
10…生成装置、11…CPU、12…ROM、13…RAM、14…HDD、15…入力装置、16…出力装置、17…通信制御装置、18…文書データ、19…転置インデックス、20…検索装置、21…CPU、22…ROM、23…RAM、24…HDD、25…入力装置、26…出力装置、27…通信制御装置

Claims (9)

  1. 文書データから、「N文字の文字列であるNグラム(Nは自然数)」を、当該文書データ中での出現位置と対応付けて、抽出する文書抽出ステップと、
    先頭のM文字(MはNより小さい自然数)が共通なNグラムを要素とするNグラム群のいずれかに、前記抽出されたNグラムを分類する分類ステップと、
    前記Nグラム群のそれぞれについて、前記Nグラム群に分類されたNグラムに対応付けられた出現位置を対応付けて、転置インデックスを生成する生成ステップと、
    を備えることを特徴とする転置インデックスの生成方法。
  2. 前記分類ステップでは、前記抽出されたNグラムを分類しようとしているNグラム群に分類されたNグラムに対応付けられた出現位置の個数と、前記抽出されたNグラムに対応付けられた出現位置の個数と、の和が所定の第1の個数を超える場合、当該Nグラム群とは異なるNグラム群に前記抽出されたNグラムを分類する、
    ことを特徴とする請求項1に記載の転置インデックスの生成方法。
  3. 前記分類ステップでは、前記抽出されたNグラムを分類しようとしているNグラム群に分類されたNグラムの個数が所定の第2の個数である場合、当該Nグラム群とは異なるNグラム群に、前記抽出されたNグラムを分類する、
    ことを特徴とする請求項1または2に記載の転置インデックスの生成方法。
  4. 前記分類ステップでは、前記Nグラム群が所定の条件を満たすと、当該Nグラム群を複数のNグラム群に分割する、
    ことを特徴とする請求項1に記載の転置インデックスの生成方法。
  5. 文書データから、「N文字の文字列であるNグラム(Nは自然数)」を、当該文書データ中での出現位置と対応付けて、抽出する文書抽出手段と、
    先頭のM文字(MはNより小さい自然数)が共通なNグラムを要素とするNグラム群のいずれかに、前記抽出されたNグラムを分類する分類手段と、
    前記Nグラム群のそれぞれについて、前記Nグラム群に分類されたNグラムに対応付けられた出現位置を対応付けて、転置インデックスを生成する生成手段と、
    を備えることを特徴とする転置インデックスの生成装置。
  6. 検索文字列からNグラムを抽出する検索抽出ステップと、
    請求項1から4に記載の生成方法によって生成された転置インデックスから、前記抽出されたNグラムが分類されたNグラム群に対応付けられた出現位置を取得する位置取得ステップと、
    前記取得された出現位置に基づいて、前記文書データ中の前記検索文字列の位置を特定する文書特定ステップと、
    を備えることを特徴とする検索方法。
  7. 検索文字列からNグラムを抽出する検索抽出手段と、
    請求項1から4に記載の生成方法によって生成された転置インデックスから、前記抽出されたNグラムが分類されたNグラム群に対応付けられた出現位置を取得する位置取得手段と、
    前記取得された出現位置に基づいて、前記文書データ中の前記検索文字列の位置を特定する文書特定手段と、
    を備えることを特徴とする検索装置。
  8. コンピュータを、
    文書データから、「N文字の文字列であるNグラム(Nは自然数)」を、当該文書データ中での出現位置と対応付けて、抽出する文書抽出手段、
    先頭のM文字(MはNより小さい自然数)が共通なNグラムを要素とするNグラム群のいずれかに、前記抽出されたNグラムを分類する分類手段、
    前記Nグラム群のそれぞれについて、前記Nグラム群に分類されたNグラムに対応付けられた出現位置を対応付けて、転置インデックスを生成する生成手段、
    として機能させるためのコンピュータプログラム。
  9. コンピュータを、
    検索文字列からNグラムを抽出する検索抽出手段、
    請求項1から4に記載の生成方法によって生成された転置インデックスから、前記抽出されたNグラムが分類されたNグラム群に対応付けられた出現位置を取得する位置取得手段、
    前記取得された出現位置に基づいて、前記文書データ中の前記検索文字列の位置を特定する文書特定手段、
    として機能させるためのコンピュータプログラム。
JP2010210007A 2010-09-17 2010-09-17 Nグラム検索のための転置インデックスの生成方法および生成装置、当該転置インデックスを用いた検索方法および検索装置、ならびに、コンピュータプログラム Active JP5601116B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2010210007A JP5601116B2 (ja) 2010-09-17 2010-09-17 Nグラム検索のための転置インデックスの生成方法および生成装置、当該転置インデックスを用いた検索方法および検索装置、ならびに、コンピュータプログラム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2010210007A JP5601116B2 (ja) 2010-09-17 2010-09-17 Nグラム検索のための転置インデックスの生成方法および生成装置、当該転置インデックスを用いた検索方法および検索装置、ならびに、コンピュータプログラム

Publications (2)

Publication Number Publication Date
JP2012064159A true JP2012064159A (ja) 2012-03-29
JP5601116B2 JP5601116B2 (ja) 2014-10-08

Family

ID=46059765

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2010210007A Active JP5601116B2 (ja) 2010-09-17 2010-09-17 Nグラム検索のための転置インデックスの生成方法および生成装置、当該転置インデックスを用いた検索方法および検索装置、ならびに、コンピュータプログラム

Country Status (1)

Country Link
JP (1) JP5601116B2 (ja)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2012203579A (ja) * 2011-03-24 2012-10-22 Casio Comput Co Ltd Nグラム検索のための転置インデックスの生成方法および生成装置、当該転置インデックスを用いた検索方法および検索装置、ならびに、コンピュータプログラム
JP2019083477A (ja) * 2017-10-31 2019-05-30 富士通株式会社 データ生成プログラム、データ生成方法および情報処理装置

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2003067400A (ja) * 2001-08-27 2003-03-07 Mitsubishi Electric Corp 文書検索装置、文書検索方法および文書検索プログラム
JP2003122794A (ja) * 2001-07-24 2003-04-25 Ricoh Co Ltd 全文検索装置、全文検索方法、プログラム、及び記録媒体
JP2004192546A (ja) * 2002-12-13 2004-07-08 Nippon Telegr & Teleph Corp <Ntt> 情報検索方法、装置、プログラム、および記録媒体
JP2005004560A (ja) * 2003-06-13 2005-01-06 Fujitsu Ltd インバーテッドファイル作成方法
JP2008209996A (ja) * 2007-02-23 2008-09-11 Mitsubishi Electric Corp 検索索引作成装置・検索索引作成方法及び検索索引作成プログラム

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2003122794A (ja) * 2001-07-24 2003-04-25 Ricoh Co Ltd 全文検索装置、全文検索方法、プログラム、及び記録媒体
JP2003067400A (ja) * 2001-08-27 2003-03-07 Mitsubishi Electric Corp 文書検索装置、文書検索方法および文書検索プログラム
JP2004192546A (ja) * 2002-12-13 2004-07-08 Nippon Telegr & Teleph Corp <Ntt> 情報検索方法、装置、プログラム、および記録媒体
JP2005004560A (ja) * 2003-06-13 2005-01-06 Fujitsu Ltd インバーテッドファイル作成方法
JP2008209996A (ja) * 2007-02-23 2008-09-11 Mitsubishi Electric Corp 検索索引作成装置・検索索引作成方法及び検索索引作成プログラム

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2012203579A (ja) * 2011-03-24 2012-10-22 Casio Comput Co Ltd Nグラム検索のための転置インデックスの生成方法および生成装置、当該転置インデックスを用いた検索方法および検索装置、ならびに、コンピュータプログラム
JP2019083477A (ja) * 2017-10-31 2019-05-30 富士通株式会社 データ生成プログラム、データ生成方法および情報処理装置

Also Published As

Publication number Publication date
JP5601116B2 (ja) 2014-10-08

Similar Documents

Publication Publication Date Title
KR101479040B1 (ko) 태그들을 문서에 자동으로 추가하는 방법, 장치 및 컴퓨터 저장 매체
KR101196935B1 (ko) 실시간 인기 키워드에 대한 대표 문구를 제공하는 방법 및 시스템
US8321485B2 (en) Device and method for constructing inverted indexes
US8171029B2 (en) Automatic generation of ontologies using word affinities
JP5550669B2 (ja) 検索装置、検索方法およびプログラム
CN101833547A (zh) 基于个人语料库进行短语级预测输入的方法
CN108874956A (zh) 海量文件检索方法、装置、计算机设备及存储介质
JP2005250980A (ja) 文書検索システム、検索条件入力装置、検索実行装置、文書検索方法、および文書検索プログラム
JP5083367B2 (ja) 検索装置、検索方法、ならびに、コンピュータプログラム
JP5699743B2 (ja) 検索方法、検索装置、ならびに、コンピュータプログラム
JP5601116B2 (ja) Nグラム検索のための転置インデックスの生成方法および生成装置、当該転置インデックスを用いた検索方法および検索装置、ならびに、コンピュータプログラム
JP5418138B2 (ja) 文書検索システム、情報処理装置およびプログラム
US11487817B2 (en) Index generation method, data retrieval method, apparatus of index generation
JP2010198425A (ja) 文書管理方法、装置
JP5601123B2 (ja) Nグラム検索のための転置インデックスの生成方法および生成装置、当該転置インデックスを用いた検索方法および検索装置、ならびに、コンピュータプログラム
JP2009104669A (ja) 文書検索方法、システム及びプログラム
JP5374881B2 (ja) 情報検索システム、情報検索方法およびプログラム
CN108920687B (zh) 一种基于Lucene索引段的合并优化方法
JP5601121B2 (ja) Nグラム検索のための転置インデックスの生成方法および生成装置、当該転置インデックスを用いた検索方法および検索装置、ならびに、コンピュータプログラム
JP5633411B2 (ja) ファイル分類装置
JP4746433B2 (ja) 文書検索方法、文書検索プログラムおよび文書検索装置
JP5533197B2 (ja) 検索装置、ならびに、コンピュータプログラム
JP5898117B2 (ja) 映像要約装置、映像要約方法及び映像要約プログラム
JP5708117B2 (ja) Nグラム検索のための転置インデックスの生成方法および生成装置、当該転置インデックスを用いた検索方法および検索装置、ならびに、コンピュータプログラム
JP2012069070A (ja) Nグラム検索のための転置インデックスの生成方法および生成装置、当該転置インデックスを用いた検索方法および検索装置、ならびに、コンピュータプログラム

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20130912

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20140319

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20140507

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20140702

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20140722

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20140804

R150 Certificate of patent or registration of utility model

Ref document number: 5601116

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150