(57)【特許請求の範囲】
【請求項１】
文書の文書番号のリストを、前記リストを示すポインタと関連付けて記憶する文書番号記憶手段と、
文書中の単語の属性を示すタグと、前記タグに該当する単語の文書中での位置を示す位置情報と、前記タグに該当する単語を含む文書の文書番号のリストへのポインタと、前記文書番号のリストのうち少なくとも最小文書番号および最大文書番号を含む複数の文書番号をリストにおける文書番号の順位とともに記述した文書番号サンプルデータとを記憶するタグ位置管理手段と、
タグを含むクエリに応じて文書を検索する検索手段とを備え、
前記検索手段は、
文書番号記憶手段およびタグ位置管理手段が記憶している情報に基づいて、前記クエリに該当する文字列の文書中での位置と、前記クエリ中の各タグに関する検索対象とを含む情報である問い合わせ情報を生成する問い合わせ情報生成手段と、
前記問い合わせ情報で定められた各タグ毎の検索対象の積集合を求める検索実行手段とを備え、
前記問い合わせ情報生成手段は、
タグを含むクエリに対して、クエリ内のタグ毎に、タグに対応する位置情報、ポインタ、および文書番号サンプルデータを前記タグ位置管理手段から読み込み、位置情報で示される並びがクエリ内のタグの並びと一致しているそれぞれのタグに対応するポインタおよび文書番号サンプルデータを含むとともに前記クエリに該当する文字列の文書中での位置を含む問い合わせタスクを生成し、
問い合わせタスク中のタグ毎に、文書番号サンプルデータが示す文書番号を番号順に二つずつ取り出し、その二つの文書番号の範囲が他のタグに対応する文書番号サンプルデータにおける最小文書番号と最大文書番号の範囲内であることを条件に、前記二つの文書番号のリスト中における順位の間の範囲をタグに関する検索対象として定め、前記クエリに該当する文字列の文書中での位置とタグ毎の検索対象とを含む問い合わせ情報を生成する
ことを特徴とする文書検索システム。
【請求項２】
単語と、前記単語を含む文書の文書番号と、前記文書中での前記単語の位置を示す位置情報とを記憶する単語インデックス記憶手段を備え、
問い合わせ情報生成手段は、
タグおよび単語を含むクエリに対して、クエリ内のタグ毎に、タグに対応する位置情報、ポインタ、および文書番号サンプルデータをタグ位置管理手段から読み込み、クエリ内の単語毎に、文書番号および位置情報を単語インデックス記憶手段から読み込み、位置情報で示される並びがクエリ内のタグおよび単語の並びと一致しているそれぞれのタグに対応するポインタおよび文書番号サンプルデータを含み、位置情報で示される並びがクエリ内のタグおよび単語の並びと一致しているそれぞれの単語に対応する文書番号を含むとともに前記クエリに該当する文字列の文書中での位置を含む問い合わせタスクを生成し、
問い合わせタスク中のタグ毎に、文書番号サンプルデータが示す文書番号を番号順に二つずつ取り出し、その二つの文書番号の範囲が他のタグに対応する文書番号サンプルデータにおける最小文書番号と最大文書番号の範囲内であり、その二つの文書番号の範囲内に前記クエリ内の単語に対応する文書番号が属していることを条件に、前記二つの文書番号のリスト中における順位の間の範囲をタグに関する検索対象として定め、
前記クエリに該当する文字列の文書中での位置と各タグ毎の検索対象とを含み、問い合わせタスクでそれぞれの単語に対応する文書番号として定められた文書番号をそれぞれの単語に関する検索対象として含む問い合わせ情報を生成し、
検索実行手段は、
タグおよび単語を含むクエリに対して、前記問い合わせ情報で定められた各タグおよび各単語毎の検索対象の積集合を求める
請求項１に記載の文書検索システム。
【請求項３】
タグを組み合わせた連結パターンと、前記連結パターンに該当する文字列の文書中での位置を示す位置情報と、前記連結パターンに該当する文字列を含む文書の文書番号のリストへのポインタと、前記文書番号のリストのうち少なくとも最小文書番号および最大文書番号をリストにおける文書番号の順位とともに記述した文書番号サンプルデータとを記憶するＮ連結位置管理手段を備え、
問い合わせ情報生成手段は、
Ｎ連結位置管理手段が記憶する連結パターンを含むクエリを、連結パターンと、前記連結パターンに属さないタグとに分解し、前記連結パターンに対応する位置情報、ポインタ、および文書番号サンプルデータをＮ連結位置管理手段から読み込み、前記連結パターンに属さないタグ毎に、タグに対応する位置情報、ポインタ、および文書番号サンプルデータをタグ位置管理手段から読み込み、位置情報で示される並びがクエリ内のタグと連結パターンの並びと一致しているそれぞれの連結パターンに対応するポインタおよび文書番号サンプルデータと、位置情報で示される並びがクエリ内のタグと連結パターンの並びと一致しているそれぞれのタグに対応するポインタおよび文書番号サンプルデータとを含むとともに前記クエリに該当する文字列の文書中での位置を含む問い合わせタスクを生成し、
問い合わせタスク中の連結パターンおよび前記連結パターンに属さないタグ毎に、文書番号サンプルデータが示す文書番号を番号順に二つずつ取り出し、その二つの文書番号の範囲が他のタグまたは連結パターンに対応する文書番号サンプルデータにおける最小文書番号と最大文書番号の範囲内であることを条件に、前記二つの文書番号のリスト中における順位の間の範囲を連結パターンまたはタグに関する検索対象と定め、前記クエリに該当する文字列の文書中での位置と各タグおよび各連結パターンの検索対象を含む問い合わせ情報を生成し、
検索実行手段は、タグと連結パターンとを含むクエリに対して、前記問い合わせ情報で定められた各タグおよび各連結パターン毎の検索対象の積集合を求める
請求項１に記載の文書検索システム。
【請求項４】
クエリに対する検索結果である文書番号のリストを、前記リストを示すポインタと関連付けて文書番号記憶手段に記憶させ、前記クエリと、前記クエリに該当する文字列の文書中での位置を示す位置情報と、前記ポインタと、前記リストに関する文書番号サンプルデータとをＮ連結位置管理手段に記憶させる検索結果登録手段を備える
請求項３に記載の文書検索システム。
【請求項５】
タグと、前記タグに該当する単語を含む文書の文書番号と、前記文書中での前記タグに該当する単語の文書中での位置を示す位置情報とを記憶するタグ転置インデックス記憶手段と、
タグに該当する単語を含む文書の文書番号がタグ転置インデックス記憶手段に記憶されているか文書番号記憶手段に記憶されているかをタグ毎に定めたタグ種別情報を記憶する種別記憶手段とを備え、
問い合わせ情報生成手段は、クエリ内のタグのうち、タグに該当する単語を含む文書の文書番号がタグ転置インデックス記憶手段に記憶されているタグを前記タグ種別情報によって判定し、前記タグに関する検索対象として、タグ転置インデックス記憶手段に記憶されている前記タグに該当する単語を含む文書の文書番号を定める
請求項１から請求項４のうちのいずれか１項に記載の文書検索システム。
【請求項６】
文書の文書番号のリストを、前記リストを示すポインタと関連付けて記憶する文書番号記憶手段と、文書中の単語の属性を示すタグと、前記タグに該当する単語の文書中での位置を示す位置情報と、前記タグに該当する単語を含む文書の文書番号のリストへのポインタと、前記文書番号のリストのうち少なくとも最小文書番号および最大文書番号を含む複数の文書番号をリストにおける文書番号の順位とともに記述した文書番号サンプルデータとを記憶するタグ位置管理手段とを備えた文書検索システムに適用される文書検索方法であって、
文書番号記憶手段およびタグ位置管理手段が記憶している情報に基づいて、前記クエリに該当する文字列の文書中での位置と、前記クエリ中の各タグに関する検索対象とを含む情報である問い合わせ情報を生成し、
前記問い合わせ情報で定められた各タグ毎の検索対象の積集合を求め、
前記問い合わせ情報を生成するときに、
タグを含むクエリに対して、クエリ内のタグ毎に、タグに対応する位置情報、ポインタ、および文書番号サンプルデータを前記タグ位置管理手段から読み込み、位置情報で示される並びがクエリ内のタグの並びと一致しているそれぞれのタグに対応するポインタおよび文書番号サンプルデータを含むとともに前記クエリに該当する文字列の文書中での位置を含む問い合わせタスクを生成し、
問い合わせタスク中のタグ毎に、文書番号サンプルデータが示す文書番号を番号順に二つずつ取り出し、その二つの文書番号の範囲が他のタグに対応する文書番号サンプルデータにおける最小文書番号と最大文書番号の範囲内であることを条件に、前記二つの文書番号のリスト中における順位の間の範囲をタグに関する検索対象として定め、前記クエリに該当する文字列の文書中での位置とタグ毎の検索対象とを含む問い合わせ情報を生成する
ことを特徴とする文書検索方法。
【請求項７】
単語と、前記単語を含む文書の文書番号と、前記文書中での前記単語の位置を示す位置情報とを記憶する単語インデックス記憶手段を備えた文書検索システムに適用される文書検索方法であって、
タグおよび単語を含むクエリに対して、クエリ内のタグ毎に、タグに対応する位置情報、ポインタ、および文書番号サンプルデータをタグ位置管理手段から読み込み、クエリ内の単語毎に、文書番号および位置情報を単語インデックス記憶手段から読み込み、位置情報で示される並びがクエリ内のタグおよび単語の並びと一致しているそれぞれのタグに対応するポインタおよび文書番号サンプルデータを含み、位置情報で示される並びがクエリ内のタグおよび単語の並びと一致しているそれぞれの単語に対応する文書番号を含むとともに前記クエリに該当する文字列の文書中での位置を含む問い合わせタスクを生成し、
問い合わせタスク中のタグ毎に、文書番号サンプルデータが示す文書番号を番号順に二つずつ取り出し、その二つの文書番号の範囲が他のタグに対応する文書番号サンプルデータにおける最小文書番号と最大文書番号の範囲内であり、その二つの文書番号の範囲内に前記クエリ内の単語に対応する文書番号が属していることを条件に、前記二つの文書番号のリスト中における順位の間の範囲をタグに関する検索対象として定め、
前記クエリに該当する文字列の文書中での位置と各タグ毎の検索対象とを含み、問い合わせタスクでそれぞれの単語に対応する文書番号として定められた文書番号をそれぞれの単語に関する検索対象として含む問い合わせ情報を生成し、
タグおよび単語を含むクエリに対して、前記問い合わせ情報で定められた各タグおよび各単語毎の検索対象の積集合を求める
請求項６に記載の文書検索方法。
【請求項８】
タグを組み合わせた連結パターンと、前記連結パターンに該当する文字列の文書中での位置を示す位置情報と、前記連結パターンに該当する文字列を含む文書の文書番号のリストへのポインタと、前記文書番号のリストのうち少なくとも最小文書番号および最大文書番号をリストにおける文書番号の順位とともに記述した文書番号サンプルデータとを記憶するＮ連結位置管理手段を備えた文書検索システムに適用される文書検索方法であって、
Ｎ連結位置管理手段が記憶する連結パターンを含むクエリを、連結パターンと、前記連結パターンに属さないタグとに分解し、前記連結パターンに対応する位置情報、ポインタ、および文書番号サンプルデータをＮ連結位置管理手段から読み込み、前記連結パターンに属さないタグ毎に、タグに対応する位置情報、ポインタ、および文書番号サンプルデータをタグ位置管理手段から読み込み、位置情報で示される並びがクエリ内のタグと連結パターンの並びと一致しているそれぞれの連結パターンに対応するポインタおよび文書番号サンプルデータと、位置情報で示される並びがクエリ内のタグと連結パターンの並びと一致しているそれぞれのタグに対応するポインタおよび文書番号サンプルデータとを含むとともに前記クエリに該当する文字列の文書中での位置を含む問い合わせタスクを生成し、
問い合わせタスク中の連結パターンおよび前記連結パターンに属さないタグ毎に、文書番号サンプルデータが示す文書番号を番号順に二つずつ取り出し、その二つの文書番号の範囲が他のタグまたは連結パターンに対応する文書番号サンプルデータにおける最小文書番号と最大文書番号の範囲内であることを条件に、前記二つの文書番号のリスト中における順位の間の範囲を連結パターンまたはタグに関する検索対象と定め、前記クエリに該当する文字列の文書中での位置と各タグおよび各連結パターンの検索対象を含む問い合わせ情報を生成し、
タグと連結パターンとを含むクエリに対して、前記問い合わせ情報で定められた各タグおよび各連結パターン毎の検索対象の積集合を求める
請求項６に記載の文書検索方法。
【請求項９】
クエリに対する検索結果である文書番号のリストを、前記リストを示すポインタと関連付けて文書番号記憶手段に記憶させ、前記クエリと、前記クエリに該当する文字列の文書中での位置を示す位置情報と、前記ポインタと、前記リストに関する文書番号サンプルデータとをＮ連結位置管理手段に記憶させる
請求項８に記載の文書検索方法。
【請求項１０】
タグと、前記タグに該当する単語を含む文書の文書番号と、前記文書中での前記タグに該当する単語の文書中での位置を示す位置情報とを記憶するタグ転置インデックス記憶手段と、タグに該当する単語を含む文書の文書番号がタグ転置インデックス記憶手段に記憶されているか文書番号記憶手段に記憶されているかをタグ毎に定めたタグ種別情報を記憶する種別記憶手段とを備えた文書検索システムに適用される文書検索方法であって、
クエリ内のタグのうち、タグに該当する単語を含む文書の文書番号がタグ転置インデックス記憶手段に記憶されているタグを前記タグ種別情報によって判定し、前記タグに関する検索対象として、タグ転置インデックス記憶手段に記憶されている前記タグに該当する単語を含む文書の文書番号を定める
請求項６から請求項９のうちのいずれか１項に記載の文書検索方法。
【請求項１１】
文書の文書番号のリストを、前記リストを示すポインタと関連付けて記憶する文書番号記憶手段と、文書中の単語の属性を示すタグと、前記タグに該当する単語の文書中での位置を示す位置情報と、前記タグに該当する単語を含む文書の文書番号のリストへのポインタと、前記文書番号のリストのうち少なくとも最小文書番号および最大文書番号を含む複数の文書番号をリストにおける文書番号の順位とともに記述した文書番号サンプルデータとを記憶するタグ位置管理手段とを備えたコンピュータに搭載される文書検索プログラムであって、
前記コンピュータに、
文書番号記憶手段およびタグ位置管理手段が記憶している情報に基づいて、前記クエリに該当する文字列の文書中での位置と、前記クエリ中の各タグに関する検索対象とを含む情報である問い合わせ情報を生成する問い合わせ情報生成処理、および、
前記問い合わせ情報で定められた各タグ毎の検索対象の積集合を求める検索実行処理を実行させ、
前記問い合わせ情報生成処理で、
タグを含むクエリに対して、クエリ内のタグ毎に、タグに対応する位置情報、ポインタ、および文書番号サンプルデータを前記タグ位置管理手段から読み込ませ、位置情報で示される並びがクエリ内のタグの並びと一致しているそれぞれのタグに対応するポインタおよび文書番号サンプルデータを含むとともに前記クエリに該当する文字列の文書中での位置を含む問い合わせタスクを生成させ、
問い合わせタスク中のタグ毎に、文書番号サンプルデータが示す文書番号を番号順に二つずつ取り出させ、その二つの文書番号の範囲が他のタグに対応する文書番号サンプルデータにおける最小文書番号と最大文書番号の範囲内であることを条件に、前記二つの文書番号のリスト中における順位の間の範囲をタグに関する検索対象として定めさせ、前記クエリに該当する文字列の文書中での位置とタグ毎の検索対象とを含む問い合わせ情報を生成させる
ための文書検索プログラム。
【請求項１２】
単語と、前記単語を含む文書の文書番号と、前記文書中での前記単語の位置を示す位置情報とを記憶する単語インデックス記憶手段を備えたコンピュータに、
問い合わせ情報生成処理で、
タグおよび単語を含むクエリに対して、クエリ内のタグ毎に、タグに対応する位置情報、ポインタ、および文書番号サンプルデータをタグ位置管理手段から読み込ませ、クエリ内の単語毎に、文書番号および位置情報を単語インデックス記憶手段から読み込ませ、位置情報で示される並びがクエリ内のタグおよび単語の並びと一致しているそれぞれのタグに対応するポインタおよび文書番号サンプルデータを含み、位置情報で示される並びがクエリ内のタグおよび単語の並びと一致しているそれぞれの単語に対応する文書番号を含むとともに前記クエリに該当する文字列の文書中での位置を含む問い合わせタスクを生成させ、
問い合わせタスク中のタグ毎に、文書番号サンプルデータが示す文書番号を番号順に二つずつ取り出させ、その二つの文書番号の範囲が他のタグに対応する文書番号サンプルデータにおける最小文書番号と最大文書番号の範囲内であり、その二つの文書番号の範囲内に前記クエリ内の単語に対応する文書番号が属していることを条件に、前記二つの文書番号のリスト中における順位の間の範囲をタグに関する検索対象として定めさせ、
前記クエリに該当する文字列の文書中での位置と各タグ毎の検索対象とを含み、問い合わせタスクでそれぞれの単語に対応する文書番号として定められた文書番号をそれぞれの単語に関する検索対象として含む問い合わせ情報を生成させ、
検索実行処理で、
タグおよび単語を含むクエリに対して、前記問い合わせ情報で定められた各タグおよび各単語毎の検索対象の積集合を求めさせる
請求項１１に記載の文書検索プログラム。
【請求項１３】
タグを組み合わせた連結パターンと、前記連結パターンに該当する文字列の文書中での位置を示す位置情報と、前記連結パターンに該当する文字列を含む文書の文書番号のリストへのポインタと、前記文書番号のリストのうち少なくとも最小文書番号および最大文書番号をリストにおける文書番号の順位とともに記述した文書番号サンプルデータとを記憶するＮ連結位置管理手段を備えたコンピュータに、
問い合わせ情報生成処理で、
Ｎ連結位置管理手段が記憶する連結パターンを含むクエリを、連結パターンと、前記連結パターンに属さないタグとに分解させ、前記連結パターンに対応する位置情報、ポインタ、および文書番号サンプルデータをＮ連結位置管理手段から読み込ませ、前記連結パターンに属さないタグ毎に、タグに対応する位置情報、ポインタ、および文書番号サンプルデータをタグ位置管理手段から読み込ませ、位置情報で示される並びがクエリ内のタグと連結パターンの並びと一致しているそれぞれの連結パターンに対応するポインタおよび文書番号サンプルデータと、位置情報で示される並びがクエリ内のタグと連結パターンの並びと一致しているそれぞれのタグに対応するポインタおよび文書番号サンプルデータとを含むとともに前記クエリに該当する文字列の文書中での位置を含む問い合わせタスクを生成させ、
問い合わせタスク中の連結パターンおよび前記連結パターンに属さないタグ毎に、文書番号サンプルデータが示す文書番号を番号順に二つずつ取り出させ、その二つの文書番号の範囲が他のタグまたは連結パターンに対応する文書番号サンプルデータにおける最小文書番号と最大文書番号の範囲内であることを条件に、前記二つの文書番号のリスト中における順位の間の範囲を連結パターンまたはタグに関する検索対象と定めさせ、前記クエリに該当する文字列の文書中での位置と各タグおよび各連結パターンの検索対象を含む問い合わせ情報を生成させ、
検索実行処理で、
タグと連結パターンとを含むクエリに対して、前記問い合わせ情報で定められた各タグおよび各連結パターン毎の検索対象の積集合を求めさせる
請求項１１に記載の文書検索プログラム。
【請求項１４】
コンピュータに、
クエリに対する検索結果である文書番号のリストを、前記リストを示すポインタと関連付けて文書番号記憶手段に記憶させ、前記クエリと、前記クエリに該当する文字列の文書中での位置を示す位置情報と、前記ポインタと、前記リストに関する文書番号サンプルデータとをＮ連結位置管理手段に記憶させる
請求項１３に記載の文書検索プログラム。
【請求項１５】
タグと、前記タグに該当する単語を含む文書の文書番号と、前記文書中での前記タグに該当する単語の文書中での位置を示す位置情報とを記憶するタグ転置インデックス記憶手段と、タグに該当する単語を含む文書の文書番号がタグ転置インデックス記憶手段に記憶されているか文書番号記憶手段に記憶されているかをタグ毎に定めたタグ種別情報を記憶する種別記憶手段とを備えたコンピュータに、
問い合わせ情報生成処理で、
クエリ内のタグのうち、タグに該当する単語を含む文書の文書番号がタグ転置インデックス記憶手段に記憶されているタグを前記タグ種別情報によって判定し、前記タグに関する検索対象として、タグ転置インデックス記憶手段に記憶されている前記タグに該当する単語を含む文書の文書番号を定めさせる
請求項１１から請求項１４のうちのいずれか１項に記載の文書検索プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、文書検索システム、文書検索方法および文書検索プログラムに関し、特に、タグが付加されている文書をタグを含むクエリにより検索する文書検索システム、文書検索方法および文書検索プログラムに関する。
【背景技術】
【０００２】
文書中の単語にタグが付加され、タグにより文書を検索する場合がある。タグとは、単語の属性を示すデータである。タグは、文書中の一つ以上の単語に付加される。なお、文書は、少なくとも、その文書に対するユニークな識別子と、本文となる文字列とを含むものとする。以下、識別子が文書番号である場合を例にして説明する。
【０００３】
図２２は、タグ付けされた文書の例を示す説明図である。図２２に例示する文書番号「８９１」の文書では、「運動会は良いですね」という文字列を含む文書において、先頭（第０位置）から第３位置までの「運動会」に対して「名詞」というタグが付加され、第３位置から第４位置までの「は」に対して「助詞」というタグが付加されている。なお、第ｎ位置とは、文字同士の間に順番に割り当てた位置情報である。具体的には、第ｎ位置とは、ｎ文字目とｎ＋１文字目との間の位置を表す。また、第０位置は、最初の文字の直前を意味する。このように、文字同士の間に割り当てた位置情報で文書中における文字の位置を特定している。上記の「名詞」や「助詞」のような、タグが表す単語の具体的な属性をタグ名と呼ぶことにする。タグ名は、文字列で表される。
【０００４】
また、単語は、本文を形態素解析によって分割したり、本文をＮグラムにより分割したり（すなわち本文をＮ文字毎に区切ったり）する等の一定の基準に基づいて、文書の本文から分割される部分文字列を意味する。タグを用いたフレーズによる文書検索では、タグ名や文字列を含む連続した文字列を入力とし、該当するフレーズを含む文書集合を出力とする。タグを用いたクエリの一例として、「［企業名］が［形容詞］」が挙げられる。この構文では「［」と「］」で囲まれた文字列をタグ名として捉えるものとする。本例では、「企業名」というタグが付加された任意の語と、「が」という語と、「形容詞」というタグが付加された任意の語とが連続して登場する文書検索を要求するクエリとなる。
【０００５】
このようなタグを用いた文書検索方法が、例えば、非特許文献１に記載されている。非特許文献１に記載された方法では、転置インデックスを用いている。転置インデックスは、タグや単語の文書における登場位置のリストを表している。転置インデックスに、頻度（キーとなるタグや単語を含む文書数）が含まれていてもよい。図２３は、一般的な転置インデックスの例を示す説明図である。図２３（ａ）は、単語に関する一般的な転置インデックスの例を示し、図２３（ｂ）は、タグに関する一般的な転置インデックスの例を示している。
【０００６】
単語に関する転置インデックスは、ある単語をキーとし、その単語の登場位置を示す情報とを含む（図２３（ａ）参照）。ここでは、単語に関する転置インデックスが、頻度も含む場合を例にして説明する。図２３（ａ）に示す単語に関する転置インデックスにおいて、頻度は、その単語が登場した文書の数である。また、登場位置を示す情報とは、その単語が登場する文書の文書番号と開始位置をリスト化したものである。文書番号とは、キーとなる単語が登場する文書を示す識別子であり、通常、正の整数で表現される。開始位置とは、キーとなる単語の文書内での位置を示す情報であり、通常、文書の先頭からの文字数で表現される。
【０００７】
また、タグに関する転置インデックスは、あるタグをキーとし、そのタグの登場位置を示す情報とを含む（図２３（ｂ）参照）。ここでは、タグに関する転置インデックスが頻度も含む場合を例にして説明する。図２３（ｂ）に示すタグに関する転置インデックスにおいて、頻度はそのタグが登場した文書の数である。また、タグの登場位置を示す情報は、文書番号、開始位置、および終了位置で表現される。文書番号および開始位置は、単語に関する転置インデックスの場合と同様に表現される。終了位置は、キーとなるタグが終了する位置を示す情報であり、文書の先頭からの文字数あるいは開始位置からの文字数で表現される。
【０００８】
なお、以下の説明では、図２３に示すように、単一の単語または単一のタグをキーとする転置インデックスを単一インデックスと呼ぶ。また、転置インデックス内に含まれる登場位置のリストを登場位置リストと呼ぶ。
【０００９】
この転置インデックスにより検索を行う検索装置の動作として、以下に示す動作が考えられる。例えば、クエリとして「［企業名］［助詞］［人名］」というフレーズが与えられた場合、検索装置は、クエリを複数の検索条件に分解する。例示したクエリの場合、「企業名というタグがあること」、「助詞というタグが含まれること」、「人名というタグがあること」という３つの検索条件に分解される。次に、この検索装置は、各条件を基にそれぞれタグの転置インデックスを参照し、各タグの登場位置のリストを得る。便宜的に、「企業名」タグの登場位置のリストをＡリストと呼び、「助詞」タグの登場位置のリストをＢリストと呼び、「人名」タグの登場位置のリストをＣリストと呼ぶことにする。次に、この検索装置は、Ａリスト、Ｂリスト、Ｃリストの中から、文書番号が等しく、Ａリスト内の「企業名」の登場位置、Ｂリスト内の「助詞」の登場位置、Ｃリスト内の「人名」の登場位置の位置関係がクエリと同じ順序で連続しているものを取り出す。
【００１０】
また、２語の組み合わせをキーとする転置インデックスを用いる検索方法が特許文献１に記載されている。例えば、「運動会、は、良い」という３語からなる文があるとすると、「運動会＄は」というパターンに対する登場位置を含むインデックスと、「は＄良い」というパターンに対する登場位置を含むインデックスとを作成しておく。検索要求として３単語以上からなるフレーズが入力された場合、そのフレーズの２語の連毎に検索を行い、その積集合をとる。２語の組み合わせで限定した登場位置リストを作成できるため、検索時に読み込む登場位置の量を少なくすることができる。その結果、フレーズに対する検索を高速化することができる。
【００１１】
なお、以下の説明では、Ｎ個の単語やタグの組み合わせを基に作成した転置インデックスをＮ連結インデックスと呼ぶ。
【００１２】
また、特許文献２には、文書ＩＤとともに、キーワードとなったそれぞれの単語の品詞等を登録した検索用データを作成しておき、検索時には、文書ＩＤとともに、入力された単語品詞の一致・不一致等を参照して検索結果の可否判定を行う情報検索方法が記載されている。
【００１３】
【特許文献１】特開２００４−４６４３８号公報（段落００１０−００６２）
【特許文献２】特開２００４−８６３０７号公報（段落００４３−００４６）
【非特許文献１】N.Aswani, V.Tablan, K.Bontcheva, and H.Cunningham，“Indexing and querying linguistic metadata and document content”，Proceedings of RANLP2005，２００５年
【発明の開示】
【発明が解決しようとする課題】
【００１４】
タグによる検索方法では、頻度の高いタグ名をクエリとすると、検索に時間がかかる。一般的に頻度の高いタグ名で検索した場合、そのタグ名のみの条件で登場位置を読み込もうとすると、大量の登場位置を読み込まなければならないため、検索速度が低下する。そのため、タグ名を含むフレーズ検索では、頻度の高いタグがクエリに含まれていると、検索に膨大な時間がかかってしまう。
【００１５】
Ｎ連結インデックスをタグに関して用いることも考えられる。この場合、「［名詞］［助詞］」や「［助詞］［形容詞］」といった２つのタグをキーとした転置インデックスを作成することになる。この場合、タグを用いた検索条件に合致する箇所は多いため、タグの２連結インデックスを用いたとしても、転置インデックスのサイズは膨大になる。さらに、「運動会の［名詞］」といったクエリや「［名詞］［助詞］［動詞］」といったクエリに対応するためには、「名詞」に関する登場位置リストや「［名詞］［助詞］［動詞］」というパターンの登場位置リストが必要になる。よって単一インデックス、２連結インデックス、３連結インデックスなど多くのパターンを用意しなければならない。このように多様な転置インデックスを予め全て用意しておくことは困難である。
【００１６】
そこで、本発明は、タグを含むクエリによる検索を高速に行うことができる検索装置、検索方法、検索プログラムを提供することを目的とする。
【課題を解決するための手段】
【００１７】
本発明の文書検索システムは、文書の文書番号のリストを、リストを示すポインタと関連付けて記憶する文書番号記憶手段と、文書中の単語の属性を示すタグと、タグに該当する単語の文書中での位置を示す位置情報と、タグに該当する単語を含む文書の文書番号のリストへのポインタと、文書番号のリストのうち少なくとも最小文書番号および最大文書番号を含む複数の文書番号をリストにおける文書番号の順位とともに記述した文書番号サンプルデータとを記憶するタグ位置管理手段と、タグを含むクエリに応じて文書を検索する検索手段とを備え、検索手段が、文書番号記憶手段およびタグ位置管理手段が記憶している情報に基づいて、クエリに該当する文字列の文書中での位置と、クエリ中の各タグに関する検索対象とを含む情報である問い合わせ情報を生成する問い合わせ情報生成手段と、問い合わせ情報で定められた各タグ毎の検索対象の積集合を求める検索実行手段とを備え、問い合わせ情報生成手段が、タグを含むクエリに対して、クエリ内のタグ毎に、タグに対応する位置情報、ポインタ、および文書番号サンプルデータをタグ位置管理手段から読み込み、位置情報で示される並びがクエリ内のタグの並びと一致しているそれぞれのタグに対応するポインタおよび文書番号サンプルデータを含むとともにそのクエリに該当する文字列の文書中での位置を含む問い合わせタスクを生成し、問い合わせタスク中のタグ毎に、文書番号サンプルデータが示す文書番号を番号順に二つずつ取り出し、その二つの文書番号の範囲が他のタグに対応する文書番号サンプルデータにおける最小文書番号と最大文書番号の範囲内であることを条件に、その二つの文書番号のリスト中における順位の間の範囲をタグに関する検索対象として定め、そのクエリに該当する文字列の文書中での位置とタグ毎の検索対象とを含む問い合わせ情報を生成することを特徴とする。
【００１８】
また、本発明の文書検索方法は、文書の文書番号のリストを、リストを示すポインタと関連付けて記憶する文書番号記憶手段と、文書中の単語の属性を示すタグと、タグに該当する単語の文書中での位置を示す位置情報と、タグに該当する単語を含む文書の文書番号のリストへのポインタと、文書番号のリストのうち少なくとも最小文書番号および最大文書番号を含む複数の文書番号をリストにおける文書番号の順位とともに記述した文書番号サンプルデータとを記憶するタグ位置管理手段とを備えた文書検索システムに適用される文書検索方法であって、文書番号記憶手段およびタグ位置管理手段が記憶している情報に基づいて、クエリに該当する文字列の文書中での位置と、クエリ中の各タグに関する検索対象とを含む情報である問い合わせ情報を生成し、問い合わせ情報で定められた各タグ毎の検索対象の積集合を求め、問い合わせ情報を生成するときに、タグを含むクエリに対して、クエリ内のタグ毎に、タグに対応する位置情報、ポインタ、および文書番号サンプルデータをタグ位置管理手段から読み込み、位置情報で示される並びがクエリ内のタグの並びと一致しているそれぞれのタグに対応するポインタおよび文書番号サンプルデータを含むとともにそのクエリに該当する文字列の文書中での位置を含む問い合わせタスクを生成し、問い合わせタスク中のタグ毎に、文書番号サンプルデータが示す文書番号を番号順に二つずつ取り出し、その二つの文書番号の範囲が他のタグに対応する文書番号サンプルデータにおける最小文書番号と最大文書番号の範囲内であることを条件に、その二つの文書番号のリスト中における順位の間の範囲をタグに関する検索対象として定め、そのクエリに該当する文字列の文書中での位置とタグ毎の検索対象とを含む問い合わせ情報を生成することを特徴とする。
【００１９】
また、本発明の文書検索プログラムは、文書の文書番号のリストを、リストを示すポインタと関連付けて記憶する文書番号記憶手段と、文書中の単語の属性を示すタグと、タグに該当する単語の文書中での位置を示す位置情報と、タグに該当する単語を含む文書の文書番号のリストへのポインタと、文書番号のリストのうち少なくとも最小文書番号および最大文書番号を含む複数の文書番号をリストにおける文書番号の順位とともに記述した文書番号サンプルデータとを記憶するタグ位置管理手段とを備えたコンピュータに搭載される文書検索プログラムであって、コンピュータに、文書番号記憶手段およびタグ位置管理手段が記憶している情報に基づいて、クエリに該当する文字列の文書中での位置と、クエリ中の各タグに関する検索対象とを含む情報である問い合わせ情報を生成する問い合わせ情報生成処理、および、問い合わせ情報で定められた各タグ毎の検索対象の積集合を求める検索実行処理を実行させ、問い合わせ情報生成処理で、タグを含むクエリに対して、クエリ内のタグ毎に、タグに対応する位置情報、ポインタ、および文書番号サンプルデータをタグ位置管理手段から読み込ませ、位置情報で示される並びがクエリ内のタグの並びと一致しているそれぞれのタグに対応するポインタおよび文書番号サンプルデータを含むとともにそのクエリに該当する文字列の文書中での位置を含む問い合わせタスクを生成させ、問い合わせタスク中のタグ毎に、文書番号サンプルデータが示す文書番号を番号順に二つずつ取り出させ、その二つの文書番号の範囲が他のタグに対応する文書番号サンプルデータにおける最小文書番号と最大文書番号の範囲内であることを条件に、その二つの文書番号のリスト中における順位の間の範囲をタグに関する検索対象として定めさせ、そのクエリに該当する文字列の文書中での位置とタグ毎の検索対象とを含む問い合わせ情報を生成させることを特徴とする。
【発明の効果】
【００２０】
本発明によれば、タグを含むクエリによる検索を高速に行うことができる。
【発明を実施するための最良の形態】
【００２１】
以下、本発明の実施形態を図面を参照して説明する。
【００２２】
実施形態１．
図１は、本発明の第１の実施形態の文書検索システムの例を示すブロック図である。本実施形態の文書検索システムは、インデックス作成部１１と、単語インデックス記憶部１４と、タグ位置管理テーブル記憶部１２と、タグ文書番号記憶部１３と、文書検索部１５とを備える。そして、文書検索部１５は、問い合わせ表作成手段１５１と、問い合わせ実行手段１５２とを含む。
【００２３】
単語インデックス記憶部１４は、単語に関する転置インデックスを記憶する。転置インデックスは、タグや単語の登場頻度および文書における登場位置のリストを示す情報であり、単語に関する転置インデックスは、単語をキーとし、その単語が登場する文書の文書番号と、その文書内での登場位置の集合を参照可能とする情報である。具体的には、単語に関する転置インデックスは、単語と、その単語を含む文書の文書番号と、その文書中でのその単語の位置を示す単語位置情報とを含む。文書中における文字列の位置を示す位置情報であって、単語の文書中での位置を示す位置情報を単語位置情報と記す。本例では、単語インデックス記憶部１４に単語位置情報として、単語の開始位置を示す情報が記憶されている場合を例にする。単語位置情報は、後述の問い合わせタスク作成時に単語インデックス記憶部１４から読み出され、次開始位置（終了位置）が付加される。以下、単語インデックス記憶部１４に記憶された状態の単語位置情報を単語開始位置情報と記す。キーとなる単語がある文書において複数回登場するならば、単語開始位置情報は、それぞれの開始位置を示す。また、単語に関する転置インデックス中に、キーとなる単語の頻度（キーとなる単語が登場する文書の数）の情報が含まれていてもよい。以下、単語に関する転置インデックスを単語転置インデックスと記す。
【００２４】
図２は、単語インデックス記憶部１４が記憶する単語転置インデックスの例を示す説明図である。本実施形態では、キーとなる単語、頻度、単語を含む文書の文書番号のリストが単語転置インデックスに含まれる。また、文書番号に続くかっこ書きは、キーとなる単語が文書中で登場する回数および単語開始位置情報を示している。図２に例では、「運動会」という単語をキーとし、「運動会」という単語が４５４個の文書に登場していることを表している。そして、文書番号“５４３”の文書では「運動会」という単語が１回登場し、その登場位置が第２位置であり、文書番号“８９４”の文書では「運動会」という単語が１回登場し、その登場位置が第０位置であり、文書番号“３５８８”の文書では「運動会」という単語が２回登場し、その登場位置が第０位置および第２０位置であること等を示している。既に説明したように、第ｎ位置とは、文字同士の間に順番に割り当てた位置情報である。具体的には、第ｎ位置とは、ｎ文字目とｎ＋１文字目との間の位置を表し、第０位置は一文字目の直前を意味する。
【００２５】
単語インデックス記憶部１４に単語転置インデックスを記憶させる処理は、インデックス作成部１１が行う。また、単語インデックス記憶部１４は、問い合わせ表作成手段１５１から、少なくとも一つの単語から成るクエリを受け取ると、その単語の登場位置リストを返却する。
【００２６】
タグ位置管理テーブル記憶部１２は、タグ位置管理テーブルを記憶する。タグ位置管理テーブルは、少なくとも一つ以上のタグに関し、タグと、そのタグに該当する単語の文書中での位置を示すタグ位置情報と、そのタグに該当する単語を含む文書の文書番号のリストへのポインタと、文書番号サンプルデータとを含む情報である。文書中における文字列の位置を示す位置情報であって、タグに該当する単語の文書中での位置を示す位置情報をタグ位置情報と記す。タグ位置管理テーブルにおいて、タグはタグ名で表される。また、文書番号サンプルデータは、タグに該当する単語を含む文書の文書番号のリストに列挙された文書番号のうち、少なくとも最小の文書番号と最大の文書番号を含む複数の文書番号を、リストにおける文書番号の順位とともに記述した情報である。リストにおける文書番号の順位とは、文書番号の値の大きさの順位を意味し、以下の説明では、最も値の小さい文書番号がリストにおける１番目であり、最も値の大きい文書番号がリストにおける最後の文書番号である場合を例にして説明する。タグ位置管理テーブルに示されているポインタに応じた文書番号のリストは、タグ文書番号記憶部１３が記憶している。
【００２７】
タグ位置管理テーブルは、メモリ等の高速に情報を参照可能な記憶装置に記憶される。
【００２８】
図３は、タグ位置管理テーブル記憶部１２が記憶するタグ位置管理テーブルの例を示す説明図である。以下の説明では、タグ位置情報が、タグに該当する単語の文書中における開始位置および次開始位置で表される場合を例にして説明する。図３では、タグ名、開始位置、次開始位置、文書リストへのポインタ、文書番号サンプルデータを、それぞれ、ＴＡＧ、Ｐ、ＮＰ、ＲＥＦ、ＳＡＭＰの記号で示している。
【００２９】
開始位置Ｐは、文書中における、タグに該当する単語の開始位置である。次開始位置ＮＰは、タグに該当するその単語の終了位置であり、次の単語の開始位置と等しい。開始位置Ｐおよび次開始位置ＮＰは、例えば、文書の先頭からの距離（文字数あるいはビット長など）で表される。本例では、文字同士の間の位置に文書の先頭から順に番号を割り当て、その番号で開始位置Ｐおよび次開始位置ＮＰを表す場合を例にして説明する。また、文書の一文字目の直前の位置を第０位置とし、ｎ文字目とｎ＋１文字目の間を第ｎ位置とする。図３に示す最初のタグ（名詞）を例にすると、開始位置Ｐが０（第０位置）であり、次開始位置ＮＰが３（第３位置）となっているので、タグに該当する単語の位置が、一文字目から三文字目までであることを表している。
【００３０】
ポインタＲＥＦは、その位置に、タグに該当する単語を含んでいる文書の文書番号のリストへのポインタである。このリストは、タグ文書番号記憶部１３に記憶されている。
【００３１】
文書番号サンプルデータは、タグに該当する単語を含む文書の文書番号のリストに列挙された文書番号のうちの数個を、リスト内における順位とともに記述している。図３に示す例では、リスト内における順位と文書番号とをコロン（：）で繋げて記述し、その「順位：文書番号」の組をカンマ（，）で区切って並べている。図３に示す最初のタグのＳＡＭＰを例に説明すると、「名詞」に該当する単語が第０位置から第３位置に登場する文書のリストにおいて、１番目の文書番号が「５」となっていて、２５０番目の文書番号が「８９４」となっていることを表している。
【００３２】
タグ位置管理テーブルは、問い合わせ表作成手段１５１によって参照され、問い合わせ情報の作成に使用される。問い合わせ情報は、タグ文書番号記憶部１３に対してどのように問い合わせを行うかを示す情報である。問い合わせ情報については後述する。
【００３３】
タグ文書番号記憶部１３は、文書の文書番号のリストを、そのリストを示すポインタと関連付けて記憶する。タグ文書番号記憶部１３が記憶する文書番号の個々のリストは、同じタグに該当する単語が共通の位置に登場する文書番号のリストであり、その位置の位置情報（本例では開始位置Ｐおよび次開始位置ＮＰ）およびそのリストへのポインタがタグ位置管理テーブルに示されている。タグ文書番号記憶部１３は、例えば、ポインタが示すアドレスから文書番号のリストを記憶する。あるいは、個々のリストの識別子としてポインタを作成してもよい。
【００３４】
以下、ポインタに関連付けて記憶される文書番号のリストを、文書リストと記す。図４は、タグ文書番号記憶部１３が記憶する文書リストの例を示す説明図である。図４に示す例では、「ｎ０００１」というポインタに対する文書リストが、「５，６，１８，・・・」という文書番号のリストであることを示している。
【００３５】
問い合わせ実行手段１５２は、ポインタと文書リストにおける順位の範囲とから定まる文書番号をタグ文書番号記憶部１３から読み込む。文書を特定する情報として、あるポインタおよび順位の範囲（例えば「１０−２０」）が分かっている場合、問い合わせ実行手段１５２は、そのポインタが示す文書リストにおける１０番目から２０番目までの文書番号を読み込むことができる。
【００３６】
インデックス作成部１１は、外部のシステムあるいはユーザによって実行され、一つ以上のタグの集合が入力され、タグ位置管理テーブルと、タグ文書番号記憶部１３が記憶する文書リストを更新する。インデックス作成部１１には、タグ名がタグとして入力され、そのタグとともに、そのタグに該当する単語が登場する文書の文書番号と、その開始位置および終了位置の情報も入力される。
【００３７】
文書検索部１５には、タグを含むクエリが入力される。クエリは、タグの他に単語を含んでいてもよい。以下、クエリがタグと単語とを含む場合を例にして説明する。文書検索部１５は、外部のシステムあるいはユーザによって実行され、クエリが入力されると、単語インデックス記憶部１４、タグ位置管理テーブル記憶部１２およびタグ文書番号記憶部１３が記憶する情報を参照し、クエリに該当する文字列（フレーズ）を含む文書の文書番号とそのフレーズの登場位置のリストを特定する。本実施形態では、フレーズ位置情報を、そのフレーズの開始位置および終了位置で表す。文書中における文字列の位置を示す位置情報であって、クエリに該当する文字列（フレーズ）の文書中での位置を示す位置情報をフレーズ位置情報と記す。
【００３８】
文書検索部１５に含まれる問い合わせ表作成手段１５１は、外部のシステムあるいはユーザによって実行され、クエリが入力されると、タグ位置管理テーブルや、単語インデックス記憶部１４が記憶する単語転置インデックスを参照し、タグ文書番号記憶部１３に対してどのように問い合わせを行うかを示す問い合わせ情報を作成する。
【００３９】
問い合わせ情報は、フレーズ（クエリに該当する文字列）の文書中での位置（より具体的には、クエリに該当する文字列が文書中で登場する可能性のある位置）と、クエリに含まれるそれぞれのタグ毎に、タグに関する検索対象を定めた情報である。また、クエリにタグおよび単語が含まれる場合には、問い合わせ情報には、クエリに含まれるそれぞれの単語について、単語に関する検索対象も含まれる。タグに関する検索対象および単語に関する検索対象によって文書番号が特定される。タグに関する検索対象および単語に関する検索対象を決定する方法については、後述する。ここでは、問い合わせ情報が表構造で表される情報である場合を例に説明し、問い合わせ情報を問い合わせ表と記す。
【００４０】
ここで、検索対象とは、読み込むべき文書番号を特定する情報である。すなわち、タグに関する検索対象とは、タグに関する条件を満たしているものとして読み込むべき文書番号を特定する情報であり、本実施形態では、文書リストを指定するポインタおよびその文書リスト内での文書番号の順位で表される。また、単語に関する検索対象とは、単語に関する条件を満たしているものとしてして読み込むべき文書番号を特定する情報であり、本実施形態では文書番号によって直接表される。
【００４１】
問い合わせ表により、問い合わせ表が示す開始位置から終了位置までの範囲にフレーズが登場する文書の文書番号が特定される。
【００４２】
本発明の文書検索システムは、タグ位置管理テーブル記憶部１２とタグ文書番号記憶部１３とにより、タグを文書内における位置毎に分類して、各タグに対応する文書番号のリストを記憶している。この「文書内における位置」は、具体的には、開始位置と次開始位置との組で表される。そして、問い合わせ表では、タグに対応する文書番号のうち所定の条件に合致する文書番号を特定するためのポインタ等によってタグに関する検索対象が表されている。また、クエリ内の単語に対応する文書番号を、その単語に関する検索対象としている。
【００４３】
ここで、問い合わせ表作成手段１５１は、タグ位置管理テーブル記憶部１２や単語インデックス記憶部１４に記憶された情報を参照して、文書検索システムに入力されるクエリに含まれるタグや単語の並びと同じ並びのフレーズとなるタグや単語の組み合わせを特定し、その組み合わせが文書中に登場する位置を示す情報を問い合わせ表内の位置情報として保持する。タグや単語は、タグ位置管理テーブル記憶部１２や単語インデックス記憶部１４において、登場位置毎に分類して管理されるので、クエリに含まれるタグや単語の並びと同じ並びのフレーズとなるタグや単語の組み合わせは、位置が異なるものとして複数種類定められることがある。この場合、それぞれの位置毎に、タグや単語に関する検索対象が定められる。
【００４４】
図５は、問い合わせ表の例を示す説明図である。図５に示すように、問い合わせ表には、文書中における位置を示す位置情報として、フレーズの開始位置および終了位置が含まれている。問い合わせ表における開始位置および終了位置は、入力されたクエリに該当する文字列が存在している可能性のある位置を表している。また、問い合わせ表には、入力されたクエリ内の単語に関する検索対象として、文書番号が列挙され、タグに関する検索対象として、文書リストのポインタとその文書リストにおける文書番号の順位とが含まれている。文書リストにおける文書番号の順位は、何番目から何番目という順位の範囲を示す数の組によって表される。
【００４５】
図５では、「運動会［助詞］［形容詞］」というクエリに対して作成される問い合わせ表の例を示している。例えば、図５に示す１行目は、「運動会［助詞］［形容詞］」というクエリに該当するフレーズが第０位置から第６位置に登場する文書の集合を検索するために、「運動会」という単語や、［助詞］、［形容詞］という各タグ毎の検索対象を示している。「運動会」という単語に関しては、第０位置から「運動会」という単語が登場する文書の文書番号として、「８９４」，「３５８８」，「８６００」等の文書番号が直接表されている。［助詞］というタグに関する検索対象は、「ｐ０００１」というポインタとともに、そのポインタで指定される文書リストにおける順位の範囲を示す数の組として、「５−７」、「１３−１５」が示されている。よって、［助詞］というタグに関する検索対象は、ポインタ「ｐ０００１」で指定される文書リストにおける５番目から７番目までの文書番号および１３番目から１５番目までの文書番号である。同様に、［形容詞］というタグに関する検索対象は、ポインタ「ｖ０００１」で指定される文書リストにおける１番目から８７番目までの文書番号および１７５番目から２６２番目までの文書番号である。
【００４６】
また、「運動会」という単語は、文書中において登場する位置毎に単語インデックス記憶部１４に文書番号が記憶されている。［助詞］、［形容詞］というタグも、文書中において登場する位置毎に分類され、その位置毎にポインタ等が定められている。従って、「運動会［助詞］［形容詞］」という並びに該当するフレーズの登場位置として、第０位置から第６位置に応じた組み合わせだけでなく、他の位置における「運動会［助詞］［形容詞］」という組み合わせも見つかる場合がある。このような場合、それぞれの位置毎に、タグや単語に関する検索対象が定められる。図５に示す例では、第０位置から第６位置にフレーズが登場する場合（図５に示す１行目）だけでなく、第２位置から第９位置に登場するとした場合の検索対象も示している（図５に示す２行目）。
【００４７】
問い合わせ実行手段１５２は、入力されたクエリに応じた文書の文書番号を、問い合わせ表作成手段１５１が作成した問い合わせ表を用いて特定する。問い合わせ実行手段１５２は、タグに関する検索対象となる文書番号をタグ毎に特定し、各単語および各タグで共通の文書番号を検索結果とする。問い合わせ実行手段１５２は、この検索結果を定める処理を、問い合わせ表内の各行に対して行う。また、問い合わせ実行手段１５２は、検索結果を問い合わせ表内の開始位置および終了位置とともに出力する。
【００４８】
タグ位置管理テーブル記憶部１２と、タグ文書番号記憶部１３と、単語インデックス記憶部１４は、例えば、コンピュータが備える記憶装置によって実現されていてもよい。また、インデックス作成部１１と、文書検索部１５が備える問い合わせ表作成手段１５１および問い合わせ実行手段１５２は、例えば、プログラム（文書検索プログラム）に従って動作するＣＰＵによって実現されてもよい。すなわち、コンピュータのＣＰＵが、プログラムを読み込み、そのプログラムに従って、インデックス作成部１１、文書検索部１５が備える問い合わせ表作成手段１５１および問い合わせ実行手段１５２として動作してもよい。
【００４９】
次に、動作について説明する。本発明の動作は、主にインデックス作成プロセスと、検索プロセスとに分けられる。インデックス作成プロセスは、タグ位置管理テーブル記憶部１２、タグ文書番号記憶部１３に情報を記憶させる動作である。検索プロセスは、入力されたクエリに応じた文書番号を検索する動作である。
【００５０】
最初に、インデックス作成プロセスについて説明する。インデックス作成プロセスは、外部のシステムあるいはユーザによって一つ以上のタグがインデックス作成部１１に入力されることで開始する。既に説明したように、タグ名がタグとして入力され、そのタグとともに、そのタグに該当する単語が登場する文書の文書番号と、その開始位置および終了位置の情報も入力される。
【００５１】
インデックス作成部１１は、上記のように一つ以上のタグが入力されると、タグとともに入力された文書番号を、「タグ名」、「開始位置」、「終了位置」の組み合わせ毎に分類する。すなわち、「タグ名」、「開始位置」、「終了位置」の組み合わせが同一であれば、タグとともに入力された文書番号をその組み合わせに対応する文書番号のグループとして一つにまとめ、「タグ名」、「開始位置」、「終了位置」の組み合わせが異なっているタグについては、それらのタグとともに入力された文書番号が別々のグループとなるように文書番号をグループ分けする。
【００５２】
次に、インデックス作成部１１は、入力されたタグに関する「タグ名」、「開始位置」、「終了位置」の組み合わせ毎に、タグ位置管理テーブル記憶部１２に記憶されたタグ位置管理テーブルを参照し、その「タグ名」、「開始位置」、「終了位置」に対応するポインタを特定する。そして、インデックス作成部１１は、タグ文書番号記憶部１３においてそのポインタに関連付けられて記憶されている文書リストに、上記の「タグ名」、「開始位置」、「終了位置」の組み合わせに対応するグループとしてグループ分けした文書番号の集合を追加して記憶させる。
【００５３】
次に、インデックス作成部１１は、「タグ名」、「開始位置」、「終了位置」の組み合わせがタグ位置管理テーブルになければ、文書番号を新たな文書リストとしてタグ文書番号記憶部１３に記憶させて新たにポインタを定め、タグ名、開始位置、終了位置、およびポインタをタグ位置管理テーブルに追加すればよい。
【００５４】
次に、インデックス作成部１１は、新たに文書番号を追加した文書リストの中から文書番号をサンプリングし、「タグ名」、「開始位置」、「終了位置」の組み合わせに対応する文書番号サンプルデータを更新する。すなわち、文書番号を追加した文書リストから、文書番号およびその文書番号のリスト内における順位を抽出し直し、タグ位置管理テーブル中の文書番号サンプルデータを書き換える。
【００５５】
文書リストから文書番号をサンプリングする処理では、インデックス作成部１１は、少なくとも、文書における１番目の文書番号（値が最小の文書番号）および最後の文書番号（値が最大の文書番号）を抽出する。最小の文書番号および最大の文書番号の他にさらに別の文書番号を抽出してもよい。このように文書番号を抽出する方法は、特定の方法に限定されない。以下にこの方法の例を示す。
【００５６】
例えば、インデックス作成部１１は、文書リストを前方からＸ個の文書番号毎に均等に分割し、分割して得られたそれぞれの文書番号の集合における最初の文書番号とリスト中におけるその順位とを特定するとともに、文書リストの最後の文書番号およびその順位を特定し、文書番号およびその順位の組み合わせを文書番号サンプルデータとしてもよい。
【００５７】
また、例えば、インデックス作成部１１は、文書リスト中における順位がある値（Ｙとする）の倍数となっている文書番号およびその順位と特定するとともに、文書リストの最初および最後の文書番号およびその順位を特定し、文書番号およびその順位の組み合わせを文書番号サンプルデータとしてもよい。
【００５８】
また、例えば、インデックス作成部１１は、文書リスト中の文書番号を前方から２個ずつ調べ、文書番号の差が閾値Ｚ以上であるときに、その２個の文書番号およびその順位を特定していき、文書番号およびその順位の組み合わせを文書番号サンプルデータとしてもよい。ただし、文書リストの最初および最後の文書番号およびその順位については、隣接する文書番号との差がＺ以上であるか否かによらず、文書番号サンプルデータに含める。
【００５９】
例示した方法以外の方法で、インデックス作成部１１がサンプルデータを作成してもよい。
【００６０】
次に、検索プロセス処理について説明する。検索プロセスは、外部のシステムあるいはユーザによってクエリが入力されることで開始する。図６は、検索プロセスの例を示すフローチャートである。以下の説明では、入力されたクエリに含まれる単語およびタグの数をｎ個としたときに、クエリ内のｉ番目の単語またはタグをＱ（ｉ）と記す。ここで、ｉは、０≦ｉ＜ｎとする。
【００６１】
文書検索部１５の問い合わせ表作成手段１５１は、クエリが入力されると、そのクエリをタグと単語とに分ける（ステップＳ２０１）。問い合わせ表作成手段１５１は、クエリに対して予め定められた構文を解釈することでタグとなる部分をクエリから取り出し、残った文字列の部分に対して形態素解析やＮグラムによる分割を行って単語を特定すればよい。本実施形態では、クエリ内において「［」と「］」で囲まれる部分がタグである場合を例にする。この場合、問い合わせ表作成手段１５１は、クエリ内で「［」と「］」で囲まれる部分をそれぞれタグとして取り出せばよい。
【００６２】
次に、問い合わせ表作成手段１５１は、ステップＳ２０１で取り出した各タグ毎に、タグ位置管理テーブルを参照して、タグに対応する開始位置Ｐと、次開始位置ＮＰと、ポインタＲＥＦと、文書番号サンプルデータＳＡＭＰとを抽出する（ステップＳ２０２ａ）。それぞれのタグ毎に抽出されたＰ，ＮＰ，ＲＥＦ，ＳＡＭＰの組をタグの参照データと記す。
【００６３】
例えば、問い合わせ表作成手段１５１は、入力されたクエリ中のタグおよび単語の並びにおけるｋ番目のタグＱ（ｋ）に関して、タグ位置管理テーブルの中から、タグ名（ＴＡＧ）のフィールドがＱ（ｋ）と等しい行のＰ，ＮＰ，ＲＥＦ，ＳＡＭＰを読み込めばよい。また、あるタグＱ（ｋ）のＰ，ＮＰ，ＲＥＦ，ＳＡＭＰの組は一つとは限らず、ＰおよびＮＰの組み合わせが異なっていれば、その組み合わせ毎に存在する。問い合わせ表作成手段１５１は、Ｑ（ｋ）は、Ｐ，ＮＰ，ＲＥＦ，ＳＡＭＰの組をそれぞれ個々に参照データとして抽出する。図３を例にして説明すると、Ｑ（ｋ）が「名詞」である場合、図３に示す１行目のＰ，ＮＰ，ＲＥＦ，ＳＡＭＰと、２行目のＰ，ＮＰ，ＲＥＦ，ＳＡＭＰとをそれぞれ抽出する。
【００６４】
また、問い合わせ表作成手段１５１は、ステップＳ２０１で取り出した各単語毎に、単語インデックス記憶部１４から、その単語をキーとする文書番号および単語開始位置情報を読み込む。そして、問い合わせ表作成手段１５１は、その読み込んだ情報から、単語の参照データを作成する（ステップＳ２０２ｂ）。単語の参照データは、文書中におけるその単語の開始位置および次開始位置と、その開始位置および次開始位置の間にその単語が登場する文書の文書番号のリストとを含む情報である。単語の参照データにおける開始位置および次開始位置も、タグに関する場合と同様にＰ，ＮＰの記号で表す。また、単語の参照データにおける文書番号のリストを記号ＤＯＣで表す。
【００６５】
図７は、図２に例示する単語転置インデックスから作成される、「運動会」という単語の参照データの例を示している。単語の参照データにおける開始位置Ｐは、文書中での単語の開始位置を示す。また、単語の参照データにおける次開始位置ＮＰは、文書中でのその単語の終了位置であり、文書内の次の単語の開始位置と等しい。このＰ，ＮＰは、タグ位置管理テーブルにおけるＰ，ＮＰと同様に、文字同士の間の位置に文書の先頭から順に番号を割り当て、その番号で表す。
【００６６】
ステップＳ２０２ｂにおいて、問い合わせ表作成手段１５１は、例えば、以下に示すように単語の参照データを作成すればよい。問い合わせ表作成手段１５１は、単語インデックス記憶部１４に記憶されている単語転置インデックスから、文書番号と、単語開始位置情報の組を抜き出す。例えば、図２に示す単語転置インデックスを例にすると、文書番号「５４３」と開始位置「２」の組、文書番号「８９４」と開始位置「０」の組等をそれぞれ抽出する。同様に、文書番号「３５８８」と開始位置「０」の組、および文書番号「３５８８」と開始位置「２０」の組も同様に抽出される。
【００６７】
そして、問い合わせ表作成手段１５１は、抽出した文書番号と開始位置との組の集合を、開始位置の順にソートし、開始位置が共通である文書番号を同一の文書番号のリストとしてまとめる。例えば、上記の例のような各組を抽出したとする。このとき、文書番号「８９４」と開始位置「０」の組、および、文書番号「３５８８」と開始位置「０」の組では、開始位置が等しいので、問い合わせ表作成手段１５１は、文書番号「８９４」、「３５８８」を同一のリストに含める。
【００６８】
次に、問い合わせ表作成手段１５１は、ソートした開始位置それぞれについて、開始位置を示す値に、単語の文字列長を加算した値を次開始位置として定める。例えば、「運動会」は３文字であるので、開始位置「０」に関しては、０に３を加算した結果である「３」を次開始位置とする。また、単語インデックス記憶部１４では、単語位置情報として単語開始位置情報が記憶されていたが、このように次開始位置も定められ、単語位置情報として開始位置および次開始位置が用いられる。
【００６９】
問い合わせ表作成手段１５１は、各開始位置毎に、開始位置、文書番号のリスト、および次開始位置をまとめて一つの参照データとする。この結果、ある単語の参照データは、開始位置の種類毎に作成される。図７に示す例では、運動会という１つの単語について３種類（３行分）の参照データが作成されたことを表している。
【００７０】
なお、本実施形態では、単語インデックス記憶部１４が、図２に例示する形式の単語転置インデックスを記憶していて、上記のステップＳ２０２ｂ（単語の参照データ作成）を検索時に行う場合を示している。このような態様の他、単語インデックス記憶部１４においてキーとなっている全ての単語に対して、予め単語の参照データを作成し、記憶装置に記憶させておいてもよい。あるいは、図２に例示するような文書番号順に開始位置を列挙する形式の単語転置インデックスではなく、開始位置順に、その開始位置で単語が登場する文書番号をまとめて列挙した形式の単語転置インデックスを用意しておいてもよい。この場合、開始位置順にソートし、開始位置が共通である文書番号をまとめる処理までを省略してよい。
【００７１】
また、単語インデックス記憶部１４は、タグに関するステップＳ２０２ａの処理と、単語に関するステップＳ２０２ｂの処理のどちらを先に行ってもよい。また、ステップＳ２０２ａ，Ｓ２０２ｂを並列に同時に行ってもよい。
【００７２】
タグの参照データを抽出し、単語の参照データを作成した後、問い合わせ表作成手段１５１は、参照データにおける位置情報（開始位置Ｐおよび次開始位置ＮＰ）の連結性による各参照データの並びが、入力されたクエリ内におけるタグおよび単語の並びと一致するように、クエリ内におけるタグおよび単語に対応する参照データを一つずつ取り出し、問い合わせタスクを生成する（ステップＳ２０３）。問い合わせタスクは、タグ位置情報で示される並びがクエリ内のタグの並びと一致しているそれぞれのタグに対応するポインタおよび文書番号サンプルデータを含むとともに、フレーズ（クエリに該当する文字列）の文書中での位置を示す位置情報を含む情報である。この位置情報は、例えば、フレーズの開始位置および終了位置で表される。また、クエリに単語が含まれる場合、問い合わせタスクは、タグ位置情報および単語位置情報で示される並びがクエリ内のタグおよび単語と一致しているそれぞれのタグに対応するポインタおよび文書番号サンプルデータを含み、また、タグ位置情報および単語位置情報で示される並びがクエリ内のタグおよび単語と一致しているそれぞれの単語に対応する文書番号を含み、さらに、フレーズの文書中での位置（開始位置および次開始位置）を示す位置情報を含む。
【００７３】
入力されたクエリ内の単語およびタグの個数をｎとすると、各単語およびタグに対応する参照データ（単語の参照データ、タグの参照データ）がｎ個含まれ、クエリに該当する文字列の開始位置および終了位置が含まれることになる。
【００７４】
クエリ内のそれぞれの単語またはタグＱ（ｋ）（０≦ｋ＜ｎ）に対する参照データのリストをＳＬ（ｋ）と記す。そして、０≦ｋ＜ｎ−１の各ｋにおいて、ＳＬ（ｋ）からそれぞれ一つずつ参照データを取り出したと仮定する。取り出した参照データをＳ（ｋ）と記す。ｎ個の参照データＳ（ｋ）に関し、以下に示す式（１）が成立しているかどうかで、そのｎ個の参照データの並びがクエリ内の単語およびタグの並びと一致しているか否かが判定される。換言すれば、式（１）が成立しているかどうかで、参照データのリストがクエリと同じ連結性を持っているかどうかが判定される。
【００７５】
Ｓ（ｋ）．ＮＰ＝Ｓ（ｋ＋１）．Ｐ    （０≦ｋ＜ｎ−１）      式（１）
【００７６】
なお、Ｓ（ｋ）．ＮＰは、参照データＳ（ｋ）内の次開始位置ＮＰを意味し、Ｓ（ｋ）．Ｐは、参照データＳ（ｋ）内の開始位置Ｐを意味する。 
【００７７】
このような判定にもとづいて、クエリと同じ連結性を持つ参照データの組み合わせを特定する動作を説明する。図８は、この動作の例を示す説明図である。以下に示す説明において、変数ｐｏｓは、クエリに該当する文字列が文書内のどの位置に存在するのかを表す。すなわち、文書内における位置を表す。また、変数ｋは、クエリ内のタグおよび単語の順番を表す。変数ｔａｓｋは、問い合わせタスクを意味する。ＭＡＸ＿ＬＥＮは、検索の対象とされる文書集合において各文書の文書長（文書を構成する文字列長）の最大値である。
【００７８】
問い合わせ表作成手段１５１は、文書内の位置を表す変数ｐｏｓの値を０に設定することで、クエリのフレーズが第０位置に登場する場合の参照データの組み合わせ作成を開始する（ステップＳ２０３１）。
【００７９】
次に、問い合わせ表作成手段１５１は、クエリ内における順番を表す変数ｋの値を０とし、変数ｔａｓｋの中身を空に設定する（ステップＳ２０３２）。ｋ＝０は、クエリにおける先頭のタグまたは単語に着目することを意味する。
【００８０】
ステップＳ２０３２の後、クエリにおけるｋ番目のタグまたは単語に関する参照リストの選択処理（ステップＳ２０３２）を開始する。ステップＳ２０３２の処理は、再帰的な処理である。
【００８１】
ステップＳ２０３２において、問い合わせ表作成手段１５１は、ｋがｎと等しいか否かを判定する（ステップＳ２０３４）。ｋ＝ｎであれば（ステップＳ２０３４におけるＹＥＳ）、その時点で作成されているｔａｓｋを、参照データの組み合わせとして決定する（ステップＳ２０３５）。なお、ｋ＝ｎであるこということは、一番後ろのタグまたは単語までステップＳ２０３６以降の処理が済んでいることを意味する。
【００８２】
ｋ≠ｎであれば（ステップＳ２０３４におけるＮＯ）、問い合わせ表作成手段１５１は、ｋ番目のタグまたは単語についての参照データのリストＳＬ（ｋ）の中から、開始位置Ｐが変数ｐｏｓの値と等しい参照データの集合を抽出する（ステップＳ２０３６）。ステップＳ２０３６で抽出した各参照データは、いずれも目的とする参照データの組み合わせに含まれる可能性がある。
【００８３】
ステップＳ２０３６の後、問い合わせ表作成手段１５１は、抽出した参照データを順に調べる処理を行う（ステップＳ２０３７）。ステップＳ２０３７において、問い合わせ表作成手段１５１は、抽出したそれぞれの参照データごとに、その後に続く参照データを調べる。具体的には、ステップＳ２０３７において、問い合わせ表作成手段１５１は、以下の処理を行う。問い合わせ表作成手段１５１は、ステップＳ２０３６で抽出した各参照データ毎に、ｔａｓｋに参照データを追加する処理を行う（ステップＳ２０３８）。そして、ステップＳ２０３６で抽出した各参照データ毎に、ｋを１加算し、参照データの次開始位置ＮＰを次のタグまたは単語の開始位置として、ステップＳ２０３３の処理を再帰的に行う（ステップＳ２０３９）。なお、再帰的に開始したステップＳ２０３３におけるステップＳ２０３６では、その開始位置と等しい開始位置を有する参照データの集合を抽出する。
【００８４】
この処理により、それまで着目していたタグまたは単語における次開始位置と等しい開始位置を持つ参照データを取り出すことができる。この処理を再帰的にｋ＝ｎとなるまで繰り返すことで、クエリと同じ連結性を持つ参照データの組み合わせを特定することができる。問い合わせ表作成手段１５１は、この参照データの組み合わせを問い合わせタスクとする。
【００８５】
ステップＳ２０３３を再帰的に行う処理を全て終えると、問い合わせ表作成手段１５１は、変数ｐｏｓの値を１加算する（ステップＳ２０４０）。そして、変数ｐｏｓの値がＭＡＸ＿ＬＥＮ未満であるか否かを判定する。変数ｐｏｓの値がＭＡＸ＿ＬＥＮ以上であれば処理を終了する。ｐｏｓの値がＭＡＸ＿ＬＥＮ未満であれば、ステップＳ２０３２以降の処理を繰り返す。この結果、ステップＳ２０４０で更新されたｐｏｓが示す位置を、クエリの先頭のタグまたは単語の開始位置として、参照データの組み合わせを生成していくことになる。
【００８６】
次に、問い合わせ表作成手段１５１は、以上の処理で求めた参照データのそれぞれの組み合わせにおいて、最初の参照データＳ（０）における開始位置Ｐと、最後の参照データＳ（ｎ−１）における次開始位置ＮＰを、クエリに該当する文字列の開始位置、終了位置とする。問い合わせ表作成手段１５１は、この開始位置および終了位置とを、参照データの組み合わせに追加する。この結果、問い合わせタスクが完成する。
【００８７】
図９は、問い合わせタスクの例を示す説明図である。図９では、図３に例示するタグ位置管理テーブルと、「運動会［助詞］［形容詞］」というクエリとに基づいて作成された問い合わせタスクの例を示している。なお、図９に例示する問い合わせタスクでは、運動会、［助詞］、［形容詞］に関する参照データに含まれる開始位置Ｐおよび次開始位置ＮＰの図示を省略している。
【００８８】
ステップＳ２０３で問い合わせタスクを生成した後、問い合わせ表作成手段１５１は、問い合わせタスク内のタグに関し、検索対象を限定して、問い合わせ表を作成する（ステップＳ２０５）。図１０は、問い合わせ表作成動作の例を示す説明図である。問い合わせ表作成手段１５１は、ステップＳ２０３（図６参照）で生成された個々の問い合わせタスクそれぞれに対して以下に示す処理を行い、問い合わせ表を作成する。
【００８９】
以下の説明において、クエリ内のｉ番目（０≦ｉ＜ｎとする。）のタグまたは単語の参照データであって、上記のように作成された問い合わせタスクに含まれている参照データをＳ（ｉ）と記す。
【００９０】
個々の問い合わせタスクにおいて、問い合わせ表作成手段１５１は、０以上ｎ未満の各ｋの値について、以下の処理を行う。ｋは、クエリ内のタグおよび単語の順番を表す。ｋ＝０の場合、クエリ内の先頭のタグまたは単語を表し、ｋ＝ｎ−１の場合、クエリ内の最後のタグまたは単語を表す。すなわち、０番目が先頭を意味し、ｎ−１番目が最後を意味する。問い合わせ表作成手段１５１は、ｋによって指定されるＱ（ｋ）がタグであるか否かを判定する（ステップＳ２５０１）。すなわち、クエリ内のタグおよび単語の並びにおけるｋ番目がタグとなっているか否かを判定する。
【００９１】
Ｑ（ｋ）がタグであることを条件に、ステップＳ２０５２の処理を行う。ステップＳ２０５２において、問い合わせ表作成手段１５１は、問い合わせタスクに含まれているタグＱ（ｋ）の参照データＳ（ｋ）の文書番号サンプルデータを取り出す（ステップＳ２０５２）。
【００９２】
ステップＳ２０５２の次に、問い合わせ表作成手段１５１は、その文書番号サンプルデータの先頭から、文書番号および文書リストにおけるその文書番号の順位の組を二つずつ取り出し、文書リスト中におけるその二つの順位の間の範囲をタグに関する検索対象に含めるか否かを判定する（ステップＳ２０５３）。
【００９３】
以下に示す変数ｉは、文書番号サンプルデータでの、「文書番号および文書リスト内におけるその文書番号の順位」の組の順番を表す。ｉ＝０（すなわち０番目）の組は、文書番号サンプルデータにおける先頭の組である。
【００９４】
ステップＳ２０５３において、問い合わせ表作成手段１５１は、ｉ＝０とし、ｉ番目（この場合は先頭）の組と、その次の組（ｉ＋１番目の組）を取り出す。
【００９５】
問い合わせ表作成手段１５１は、取り出した二つの組（ｉ番目およびｉ＋１番目の組）が示す「文書リスト内におけるその文書番号の順位」の間の範囲を検索対象に含めるか否かを判定する（ステップＳ２０５４）。すなわち、その範囲の文書番号を、検索時に読み込むべき文書番号とするか否かを判定する。このステップＳ２０５４の判定処理については後述する。
【００９６】
問い合わせ表作成手段１５１は、検索対象とすべきと判定したことを条件に、その範囲（文書リストにおける文書番号の順位の範囲）を、クエリにおいてｋ番目に位置するタグの検索対象として記憶していく（ステップＳ２０５５）。例えば、ｉ番目の組における「文書番号の順位」がａであり、ｉ＋１番目の組における「文書番号の順位」がｂであり、ステップＳ２０５４において文書リストにおけるａ番目からｂ番目までを検索対象とすべきと判定したならば「ａ番目からｂ番目まで」という情報を検索対象として記憶する。
【００９７】
そして、ｉの値を１加算して、ステップＳ２０５４以降の処理を繰り返す。このようにして、問い合わせ表作成手段１５１は、文書番号サンプルデータにおける０番目の組と１番目の組、１番目の組と２番目の組、２番目の組と３番目の組等のように、順番にステップＳ２０５４以降の処理を繰り返す。問い合わせ表作成手段１５１は、文書番号サンプルデータの最後の２組についての処理が完了するまで、この処理を繰り返す。この繰り返し処理で、クエリにおいてｋ番目に位置するタグに関する検索対象が蓄積されていく。
【００９８】
この結果、文書番号サンプルデータの最後の２組についての処理が完了すると、問い合わせ表作成手段１５１は、蓄積した文書番号の順位の範囲に、参照データＳ（ｋ）に含まれるポインタＲＥＦを追加する。この結果、クエリでｋ番目に位置するタグに関する検索対象が定まる。すなわち、ポインタによって指定される文書リストのうちのどの範囲の文書番号を読み込むべきかが定まる。
【００９９】
また、ステップＳ２０５１において、Ｑ（ｋ）がタグでないと判定した場合、Ｑ（ｋ）は単語であり、問い合わせ表作成手段１５１は、問い合わせタスク中のその単語の参照データに含まれる文書番号を、クエリでｋ番目に位置する単語に関する検索対象とする。
【０１００】
問い合わせ表作成手段１５１は、以上のように定めたタグに関する検索対象および単語に関する検索対象に、クエリに該当する文字列の開始位置および終了位置を追加する。この開始位置および終了位置は問い合わせタスクにおける開始位置および終了位置である。
【０１０１】
ステップＳ２０３で作成した各問い合わせタスク毎に上記の処理を行うことで、問い合わせ表が得られる。
【０１０２】
次に、ステップＳ２０５４の判定処理について説明する。ステップＳ２０５４では、文書番号サンプルデータから、「文書番号および文書リスト内におけるその文書番号の順位」の組を二つずつ取り出している。「文書番号および文書リスト内におけるその文書番号の順位」は、例えば、「１：５」、「３：３５８」のように整数の組で表される。本例では、「ｘ：ｙ」のような整数の組において、前者の整数ｘが順位であり、後者の整数ｙが文書番号であるものとする。また、このような「順位：文書番号」の二組のうち、最初の方の組をサンプルデータ１と記し、後の方の組をサンプルデータ２と記す。また、サンプルデータ１における順位、文書番号をそれぞれ「順位１」、「文書番号１」と記す。同様に、サンプルデータ２における順位、文書番号をそれぞれ「順位２」、「文書番号２」と記す。この場合、「文書番号１＜文書番号２」である。そして、「順位１：文書番号１」および「順位２：文書番号２」という二つの組に対して処理を行うものとして説明する。
【０１０３】
問い合わせ表作成手段１５１は、「順位１：文書番号１」および「順位２：文書番号２」における二つの文書番号の範囲が、入力されたクエリ内の他のタグに対応する文書番号サンプルデータにおける文書番号の最小値と最大値の範囲内であり、その二つの文書番号の範囲内にクエリ内の単語に対応する文書番号が属していることを条件に、文書リスト中におけるその二つの文書番号の順位（上記の「順位１」および「順位２」）の間の範囲をタグに対する検索対象とすべきと判定する。すなわち、検索対象として定める。
【０１０４】
問い合わせ表作成手段１５１は、以下に示す第１から第４のルールに基づいて、この判定を行う。なお、入力されたクエリをＱとする。また、以下のルールにおいて、「Ｆａｌｓｅ」は、検索対象としないということを意味し、「Ｔｒｕｅ」は、検索対象とするということを意味する。
【０１０５】
第１のルールは、「入力されたクエリＱ内に単語Ｑ（ｗ）があり（すなわち、単語に関する検索条件があり）、その単語の参照データＳ（ｗ）の文書番号のリストＤＯＣ内に、『文書番号１≦Ｔ≦文書番号２』を満たす文書番号Ｔが存在しない場合、Ｆａｌｓｅと判定する。」というルールである。
【０１０６】
第２のルールは、「入力されたクエリＱ内に他のタグＱ（ｔ）があり（すなわち、タグに関する検索条件があり）、そのタグの参照データＳ（ｔ）の文書番号サンプルデータの最小値Ｍｉｎ（最小文書番号）が『文書番号２＜Ｍｉｎ』という条件を満たす場合、Ｆａｌｓｅと判定する。」というルールである。
【０１０７】
第３のルールは、「入力されたクエリＱ内に他のタグＱ（ｔ）があり（すなわち、タグに関する検索条件があり）、そのタグの参照データＳ（ｔ）の文書番号サンプルデータの最大値Ｍａｘ（最大文書番号）が『Ｍａｘ＜文書番号１』という条件を満たす場合、Ｆａｌｓｅと判定する。」というルールである。
【０１０８】
第４のルールは、「第１のルールから第３のルールまでのいずれのルールにも当てはまらない場合、Ｔｒｕｅと判定する。」というルールである。
【０１０９】
問い合わせ表作成手段１５１は、「順位１：文書番号１」および「順位２：文書番号２」における二つの文書番号１および文書番号２に関し、第１のルールから第３のルールまでのいずれかに該当するか否かを判定し、いずれかに該当するならば、「順位１」から「順位２」までの範囲を検索対象としない。また、二つの文書番号１および文書番号２に関し、第１のルールから第３のルールまでのいずれのルールにも該当しない場合、第４のルールにより、「順位１」から「順位２」までの範囲を検索対象と定める。
【０１１０】
上記のようにタグの検索対象を限定して問い合わせ表を作成する処理（ステップＳ２０５）により、例えば、図５に例示するような問い合わせ表が得られる。図５に例示する問い合わせ表における個々の行が、それぞれ個々の問い合わせタスクから得られる。
【０１１１】
ステップＳ２０５の次に、問い合わせ実行手段１５２は、問い合わせ表を基にして文書番号の読み込みを行うことにより、入力されたクエリに応じた文書の文書番号を特定する（ステップＳ２０６）。
【０１１２】
問い合わせ実行手段１５２は、ステップＳ２０６において、問い合わせ表内を参照し、位置（開始位置および終了位置）に対応する各単語および各タグの検索対象に対して、以下の処理を行う。すなわち、図５に例示するような問い合わせ表の各行に対して以下の処理を行う。
【０１１３】
まず、問い合わせ実行手段１５２は、位置（開始位置および終了位置、図５参照）に応じた検索対象の中に、タグの検索対象（ポインタおよび文書リスト内での順位の範囲）が含まれている場合、その検索対象が示す文書番号を読み込む。すなわち、問い合わせ実行手段１５２は、タグ文書番号記憶部１３に記憶されている、ポインタに対応する文書リストの中から、検索対象として示された順位の範囲内の文書番号を読み込む。例えば、図５に示す［助詞］というタグの検索対象（ｐ０００１：５−７，１３−１５）を例にすると、ポインタ「ｐ０００１」に対応する文書リストにおける５番目から７番目までの文書番号および１３番目から１５番目までの文書番号をそれぞれ読み込む。問い合わせ実行手段１５２は、位置（開始位置および終了位置、図５参照）が共通であるそれぞれのタグに関し、同様に文書番号を読み込む。
【０１１４】
そして、問い合わせ実行手段１５２は、位置（開始位置および終了位置、図５参照）が共通である各タグおよび各単語の文書番号の積集合をとる。すなわち、上記のように読み取ったそれぞれのタグ毎の文書番号と、単語毎の文書番号（問い合わせ表内に含まれている）との積集合をとる。このようして、各タグ毎および各単語毎の文書番号のうち、共通の文書番号を選択する。積集合として得られた文書番号は、入力されたクエリに該当する文字列を含む文書の文書番号であり、クエリに対する検索結果である。
【０１１５】
問い合わせ実行手段１５２は、各タグ毎および各単語毎の積集合として得た文書番号を、開始位置および終了位置とともに出力する。
【０１１６】
なお、タグに関しての文書番号の読み込み処理は、バッファを用いて任意のタイミングで行ってもよい。例えば、問い合わせ表の各タグに関して文書番号を読み込む処理をまとめて行い、バッファに保持しておき、読み込み処理を高速化することができる。行毎に読み込む場合には、繰り返し同じ範囲の文書番号を読み込むケースが生じ得るが、それらをまとめて読み込むことで読み込み処理を高速化できる。
【０１１７】
また、クエリとして入力されたタグおよび単語のつらなり（後述のＮ連結パターン）をタグと同様にみなし、クエリに対する検索結果をタグ文書番号記憶部１３に記憶させ、クエリとして入力されたＮ連結パターンに関する位置、ポインタおよび文書番号サンプルデータをタグ位置管理テーブルと同様に管理してもよい。この場合の構成については、第３の実施形態として後述する。
【０１１８】
次に、本実施形態の動作の例を示す。まず、インデックス作成プロセスの例を示す。図１１は、インデックス作成プロセスで入力されるタグの例を示す説明図である。インデックス作成部１１に、図１１に例示するタグの集合が入力されたとする。すなわち、図１１に例示するタグ名、文書番号、開始位置および終了位置が入力されたとする。
【０１１９】
インデックス作成部１１は、入力されたデータを「タグ名」、「開始位置」、「終了位置」の組み合わせ毎に分類する。図１２は、この分類結果の例を示す説明図である。図１１に示す入力データのうち、文書番号「２５」および「３５」は、タグ名、開始位置および終了位置が共通である。従って、図１２に示すように、文書番号「２５，３５」は一つのグループにまとめられる。他の文書番号「１５」、「２９」に関しては、「タグ名」、「開始位置」、「終了位置」の組み合わせが他と共通でないので、それぞれ別のグループに分類される。
【０１２０】
そして、インデックス作成部１１は、タグ位置管理テーブルを参照し、各グループ毎に、文書番号、開始位置および終了位置の組み合わせに対応するポインタを特定し、そのポインタに対応する文書リストに、文書番号を追加する。例えば、図１２に示す１行目の「名詞、１，３」という組み合わせに対応するポインタが「ｎ０００１」であるとすると、「ｎ０００１」から特定される文書リストに、文書番号「２５，３１」を追加する。
【０１２１】
そして、インデックス作成部１１は、文書番号を追加した文書リストから文書番号をサンプリングし、タグ位置管理テーブル内の文書番号サンプルデータを更新する。
【０１２２】
次に、検索プロセスの例を示す。本例では、入力されるクエリの構文として、タグは「［」と「］」で囲まれ、タグ以外の部分は自然言語で記述されると定められているとする。そして、「運動会［助詞］［形容詞］」というクエリが入力されたとする。この場合、文書検索部１５は、以下のように動作する。なお、タグ位置管理テーブル記憶部１２には、図３に示すタグ位置管理テーブルが記憶されているものとする。
【０１２３】
文書検索部１５の問い合わせ表作成手段１５１は、入力されたクエリを単語「運動会」と、各タグ［助詞］、［形容詞］に分ける（ステップＳ２０１）。そして、各タグ（［助詞］、［形容詞］）の参照データをそれぞれ抽出し、また、単語「運動会」の参照データを抽出する（ステップＳ２０２ａ，Ｓ２０２ｂ）。問い合わせ表作成手段１５１は、問い合わせタスクを生成する。本例では、図９に示す問い合わせタスクが生成される。
【０１２４】
次に、問い合わせ表作成手段１５１は、問い合わせタスク（図９参照）の［助詞］および［形容詞］の文書番号サンプルデータの範囲を限定して、問い合わせ表を作成する（ステップＳ２０５）。図１３は、単語に対応する文書番号およびタグに対応する文書番号サンプルデータの例を示す。図１３を例にして、「文書リスト内における文書番号の順位」の間の範囲を検索対象に含めるか否かを判定するステップＳ２０５４について説明する。以下に例示するようにして、文書番号サンプルデータの範囲を絞り込む。
【０１２５】
図１３では、「運動会」という単語から得た文書番号の例を番号順に示している。また、［助詞］および［形容詞］というタグの文書番号サンプルデータを、順番に示している。図１３に示す楕円内の番号は文書番号である。［助詞］および［形容詞］の文書番号の下に示す値は、文書リスト内での順位を表している。問い合わせ表作成手段１５１は、［助詞］の文書番号サンプルデータにおける「１番目：文書番号５」と、「３番目：文書番号３５８」に関しては、第１のルールによりＦａｌｓｅと判定し、１番目から３番目までの範囲を検索対象から除外する。クエリ内に単語「運動会」があるが「運動会」の文書番号の中に「５以上３５８以下」の文書番号がないためである。「３番目：文書番号３５８」と「５番目：文書番号８９１」とに関しても同様であり、結果的に１番目から５番目までは検索対象に含まれない。また、同様に、［形容詞］における「８７番目：９４０」と「１７５番目：２８５４」とに関しても、第１のルールにより、８７番目から１７５番目までの範囲は、検索対象に含めない。
【０１２６】
また、仮に、クエリ内に「運動会」という単語がなく「［助詞］［形容詞］」というクエリに対して問い合わせタスクを生成したとする。この場合にも、［助詞］、［形容詞］の文書番号サンプルデータとして図１３に例示するデータが得られたとする。本例では、図１３に示す「運動会」の文書番号は無視する。問い合わせ表作成手段１５１は、［助詞］の「１番目：文書番号５」と、「３番目：文書番号３５８」に関して、第２のルールによりＦａｌｓｅと判定し、１番目から３番目までの範囲を検索対象から除外する。大きい方の文書番号「３５８」が、他のタグ［形容詞］の文書番号サンプルデータでの最小値「３６７」未満であるためである。
【０１２７】
以上のような範囲の限定により、問い合わせ表が作成される。図５に示す１行目は、図１３に例示する文書番号サンプルデータから導いた結果である。
【０１２８】
問い合わせ表が作成された後、問い合わせ実行手段１５２は、問い合わせ表におけるタグ［助詞］、［形容詞］の検索対象に該当する文書番号をタグ文書番号記憶部１３から読み込み、単語「運動会」の文書番号、タグ［助詞］の文書番号、［形容詞］の文書番号で共通の文書番号を取り出す。すなわち、各単語および各タグの文書番号の積集合を求める。この処理は問い合わせ表における開始位置および終了位置（図５参照）の組毎に行う。問い合わせ実行手段１５２は、積集合として求めた文書番号を、開始位置および終了位置とともに検索結果として出力する。
【０１２９】
本実施形態では、タグに関する文書番号サンプルデータおよびポインタを文書内における位置とともに含むタグ位置管理テーブルを記憶しておく。そして、クエリ内のタグに関して、クエリ内におけるそのタグの並びと一致するタグのデータとして記憶されているポインタおよび文書番号サンプルデータを取り出し、クエリ内の他のタグや単語に関する文書番号との関係で、検索対象とすべき範囲を定める。このように、タグに関して検索対象となる範囲を絞り込んだ上で、各タグの検索対象に該当する文書番号を読み込み、それぞれのタグについての文書番号およびそれぞれの単語についての文書番号で共通の文書番号を検索結果とするので、文書番号の読み込み量を削減できるため、高速な検索を実現することができる。
【０１３０】
また、以上の説明では、クエリに単語およびタグが含まれている場合を例に説明したが、単語を含めずにタグを連ねたクエリが入力されることを前提とする文書検索システムであってもよい。その場合、文書検索システムは、単語インデックス記憶部１４を備えていなくてもよい。また、問い合わせ表作成手段１５１は、ステップＳ２０１では、入力されたクエリを各タグに分け、その後、ステップＳ２０２ｂについては実行せず、ステップＳ２０２ａを行った後にステップＳ２０３に移行すればよい。
【０１３１】
また、ステップＳ２０５４の判定処理では、文書番号サンプルデータの先頭から順番に二組ずつ取り出す「順位１：文書番号１」および「順位２：文書番号２」に対して、第２のルールと第３のルールのいずれかに該当するか否かを判定し、いずれかに該当するならば「順位１」から「順位２」までの範囲を検索対象とせず、第２のルールと第３のルールのいずれにも該当しない場合には「順位１」から「順位２」までの範囲を検索対象と定めればよい。
【０１３２】
このようにして、問い合わせ表作成手段１５１は、「順位１：文書番号１」および「順位２：文書番号２」における二つの文書番号の範囲が、入力されたクエリ内の他のタグに対応する文書番号サンプルデータにおける文書番号の最小値と最大値の範囲内であることを条件に、文書リスト中におけるその二つの文書番号の順位（上記の「順位１」および「順位２」）の間の範囲をタグに対する検索対象と定める。
【０１３３】
この場合であっても、クエリに含まれる隣接したタグの関係性に基づいて、文書リストの読み込み量を削減でき、高速な検索を実現できる。
【０１３４】
実施形態２．
図１４は、本発明の第２の実施形態の文書検索システムの例を示すブロック図である。第１の実施形態と同様の構成要素については、図１と同一の符号を付し、詳細な説明を省略する。本実施形態の文書検索システムは、インデックス作成部１１と、単語インデックス記憶部１４と、タグ位置管理テーブル記憶部１２と、タグ文書番号記憶部１３と、文書検索部１５と、タグ管理テーブル記憶部１６と、タグ転置インデックス記憶部１７とを備える。文書検索部１５は、第１の実施形態と同様に、問い合わせ表作成手段１５１と、問い合わせ実行手段１５２とを含む。
【０１３５】
タグ転置インデックス記憶部１７は、タグに関する転置インデックスを記憶する。タグに関する転置インデックスは、キーとなるタグと、そのタグに該当する単語が登場する文書の文書番号と、その文書内でのそのタグに該当する単語が登場するタグ位置情報とを含む。キーとなるタグに該当する単語がある文書で複数回登場するならば、タグ位置情報はそれぞれの位置を示す。また、タグに関する転置インデックス中に、文書集合内でタグに該当する単語が登場する回数を示すタグの頻度が含まれていてもよい。以下、タグに関する転置インデックスをタグ転置インデックスと記す。
【０１３６】
図１５は、タグ転置インデックスの例を示す説明図である。図１５に例示するタグ転置インデックスは、キーとなるタグとしてタグ名を含み、また、頻度と、タグ（本例では人名）に該当する単語を含む文書番号のリストとを含んでいる。また、文書番号に続くかっこ書きは、タグ位置情報に該当する開始位置および終了位置（次開始位置）を示している。図１５に示す例では、［人名］というタグをキーとし、人名に該当する単語が文書集合内に１０００１回登場し、文書番号「３３３」の文書では第７位置から第１０位置までの範囲に登場することを示している。
【０１３７】
タグ位置管理テーブル記憶部１２およびタグ文書番号記憶部１３が記憶する情報は、第１の実施形態と同様である。従って、タグに該当する単語が登場する文書の文書番号のリスト（文書リスト）の参照方法として、タグ位置管理テーブル記憶部１２に記憶されたポインタを基にタグ文書番号記憶部１３に記憶された文書番号を参照する方法と、タグ転置インデックス記憶部１７に記憶されたタグ転置インデックスを参照する方法とがある。タグ文書番号記憶部１３に文書リストを記憶させておき、タグ位置管理テーブル内のポインタに基づいて文書リストを参照して、第１の実施形態と同様に問い合わせ表を作成して検索速度を高速化する効果は、特に、タグに該当する単語の登場頻度が多い場合に大きい。従って、例えば、文書中での登場頻度が多いタグに関しては、タグ位置管理テーブルを用意して、文書リストをタグ文書番号記憶部１３に記憶させ、登場頻度が低いタグに関しては、タグ転置インデックスをタグ転置インデックス記憶部１７に記憶させてもよい。
【０１３８】
タグ管理テーブル記憶部１６は、タグ管理テーブルを記憶する。タグ管理テーブルは、各タグ毎に、タグ名と、そのタグに該当する単語を含む文書の文書リストがタグ文書番号記憶部１３に記憶されているのかタグ転置インデックス記憶部１７に記憶されているのかを示す情報（以下、インデックス種と記す。）とを含む情報である。タグ管理テーブルは、タグに該当する単語を含む文書の文書番号がタグ文書番号記憶部１３とタグ転置インデックス記憶部１７のどちらに記憶されているのかを定めたタグ種別情報であるということができる。
【０１３９】
図１６は、タグ管理テーブルの例を示す説明図である。インデックス種の種類は２種類あり、図１６ではその２種類を「通常」および「位置管理」と示している。「通常」というインデックス種は、タグに該当する単語を含む文書の文書リストがタグ転置インデックスとしてタグ転置インデックス記憶部１７に記憶されていることを意味する。また、「位置管理」というインデックス種は、タグに該当する単語を含む文書の文書リストが、タグ文書番号記憶部１３に記憶され、その文書リストへのポインタがタグ位置管理テーブルに含まれていることを意味している。
【０１４０】
問い合わせ表作成手段１５１は、タグ管理テーブルを参照して、入力されたクエリ内のタグのインデックス種を判定する。すなわち、文書リストがタグ転置インデックス記憶部１７とタグ文書番号記憶部１３のいずれに記憶されているのかを判定する。そして、文書リストがタグ転置インデックス記憶部１７に記憶されているタグ（インデックス種が「通常」のタグ）に関しては、タグ転置インデックス記憶部１７に記憶されている文書番号を検索対象とする。
【０１４１】
例えば、問い合わせ表作成手段１５１は、インデックス種が「通常」のタグに関しては、問い合わせタスクを作成する際、タグ転置インデックス記憶部１７に記憶されているタグ転置インデックスのうち、そのタグに対応するタグ転置インデックス内の文書番号と開始位置および終了位置を抽出し、開始位置および終了位置と、その位置に、タグに該当する単語が登場する文書番号の集合とを参照データとして作成する。そして、その参照データにおける文書番号の集合を、そのタグに関する検索対象として、問い合わせ表にそのまま移せばよい。
【０１４２】
次に、第２の実施形態の動作について説明する。まず、インデックス作成プロセスについて説明する。インデックス作成プロセスは、外部のシステムあるいはユーザによって一つ以上のタグがインデックス作成部１１に入力されることで開始する。第１の実施形態と同様に、タグ名がタグとして入力され、そのタグとともに、文書番号、開始位置および終了位置が入力される。
【０１４３】
インデックス作成部１１は、一つ以上のタグが入力されると、タグ管理テーブルを参照して、各タグのインデックス種を判定する。インデックス種が「位置管理」であるタグは、タグ位置管理テーブルとタグ文書番号記憶部１３で管理されるタグであり、そのタグに関する処理は、第１の実施形態のインデックス作成プロセスと同様である。
【０１４４】
入力されたタグのうち、インデックス種が「通常」であるタグについては、インデックス作成部１１は、入力されたタグ名に対応するタグ転置インデックスに文書番号、開始位置、終了位置を追加する。
【０１４５】
次に、検索プロセスについて説明する。
問い合わせ表作成手段１５１は、クエリが入力されると、そのクエリをタグと単語とに分ける（ステップＳ２０１、図６参照）。ステップＳ２０１後のステップＳ２０２ｂの動作は、第１の実施形態と同様である。
【０１４６】
ステップＳ２０１の後のステップＳ２０２ａにおいて、問い合わせ表作成手段１５１は、タグの参照データを抽出するが、第２の実施形態では、以下に示すように参照データを抽出する。まず、問い合わせ表作成手段１５１は、ステップＳ２０１で取り出した各タグについて、タグ管理テーブルを参照し、インデックス種が「通常」であるか「位置管理」であるかを判定する。そして、インデックス種が「位置管理」であるタグについては、第１の実施形態と同様に参照データを抽出する。
【０１４７】
また、インデックス種が「通常」であるタグについては、問い合わせ表作成手段１５１は、タグ毎に、そのタグをキーとする文書番号およびタグ位置情報（開始位置および終了位置）を、タグ転置インデックス記憶部１７から読み込む。問い合わせ表作成手段１５１は、その文書番号、開始位置および終了位置の組の集合を、開始位置の順にソートし、開始位置および終了位置が共通である文書番号を同一の文書番号のリストとしてまとめ、開始位置および終了位置と文書番号のリストとを一つの参照データとする。この結果、単語の参照データ（図７参照）と同様の参照データが得られる。
【０１４８】
次に、問い合わせ表作成手段１５１は、各タグ毎および各単語の参照データに基づいて問い合わせタスクを作成する（ステップＳ２０３）。この処理は、第１の実施形態と同様である。
【０１４９】
次に、問い合わせ表作成手段１５１は、問い合わせ表作成処理（ステップＳ２０５）を行う。この処理の流れは、以下の点を除き、第１の実施形態と同様である（図１０参照）。本実施形態では、ステップＳ２０５１において、ｋによって指定されるＱ（ｋ）がタグであり、かつ、そのタグのインデックス種が「位置管理」であるか否かを判定する。Ｑ（ｋ）がタグであり、かつ、そのタグのインデックス種が「位置管理」であることを条件に、ステップＳ２０５２以降の処理を行う。
【０１５０】
また、ステップＳ２０５１において、Ｑ（ｋ）がタグでないと判定した場合、Ｑ（ｋ）は単語であり、問い合わせ表作成手段１５１は、問い合わせタスク中のその単語の参照データに含まれる文書番号を、クエリでｋ番目に位置する単語に関する検索対象とする。
【０１５１】
また、ステップＳ２０５１において、Ｑ（ｋ）はタグであるが、そのインデックス種が「通常」である場合、問い合わせタスク中のその単語の参照データに含まれる文書番号を、クエリでｋ番目に位置する単語に関する検索対象とする。すなわち、タグ転置インデックスから作成された参照データ内の文書番号をそのまま検索対象とする。
【０１５２】
問い合わせ表作成後、問い合わせ実行手段１５２は、問い合わせ表を基にして文書番号の読み込みを行い、クエリに応じた文書の文書番号を特定する（ステップＳ２０６）。この処理は、第１の実施形態と同様である。ただし、インデックス種が「通常」であるタグに関しては、文書番号が直接、問い合わせ表に含まれていて、ポインタはない。よって、そのタグに関しては、タグ文書番号記憶部１３から文書番号を読み込まなくてもよい。そして、各タグおよび各単語の文書番号の積集合をとる。その他については、第１の実施形態と同様である。
【０１５３】
以下、本実施形態における問い合わせ表の具体例を示す。例えば、クエリとして「［人名］の［名詞］」が入力されたとする。また、図１６に例示するように、［人名］と［名詞］の各タグのインデックス種がそれぞれ「通常」、「位置管理」であるとする。この場合、問い合わせ表作成手段１５１は、［人名］に関しては、例えば図１５に例示するタグ転置インデックスから、文書番号、開始位置、終了位置の組を全て抽出し、開始位置および終了位置の組毎に文書番号を分類し、参照データとする。また、［名詞］に関しては、タグ位置管理テーブルから参照データ（Ｐ，ＮＰ，ＲＥＦ，ＳＡＭＰ）を読み込み、参照データとする。また、「の」という単語については、単語インデックス記憶部１４に記憶された単語インデックスを基に単語の参照データを作成する。問い合わせ表作成手段１５１は、その参照データを用いて、問い合わせタスクを作成し、さらに問い合わせ表を作成する。図１７は、本実施形態における問い合わせ表の例を示す。本実施形態では、インデックス種が「通常」のタグに関する検索対象は文書番号であり、インデックス種が「位置管理」のタグに関する検索対象は、ポインタおよびリストにおける順位の範囲として表される。
【０１５４】
第２の実施形態によれば、タグの管理方法を分けることができ、例えば、出現頻度が高いタグに関しては、そのようなタグの管理に適したタグ位置管理テーブルを用いて管理して、他のタグに関してはタグ転置インデックスで管理することができる。そして、タグの管理方法を分けることにより、登場頻度が少ないタグに関して、第１の実施形態より第２の実施形態の方が検索速度の低下を防止できる。
【０１５５】
実施形態３．
図１８は、本発明の第３の実施形態の文書検索システムの例を示すブロック図である。第１の実施形態と同様の構成要素については、図１と同一の符号を付し、詳細な説明を省略する。本実施形態の文書検索システムは、インデックス作成部１１と、単語インデックス記憶部１４と、タグ位置管理テーブル記憶部１２と、タグ文書番号記憶部１３と、文書検索部１５と、Ｎ連結位置管理テーブル記憶部１９とを備える。文書検索部１５は、第１の実施形態と同様に、問い合わせ表作成手段１５１と、問い合わせ実行手段１５２と、結果登録手段１５３とを含む。
【０１５６】
Ｎ連結位置管理テーブル記憶部１９は、Ｎ連結位置管理テーブルを記憶する。以下の説明において、二つ以上の連続するタグまたは単語の組み合わせをＮ連結パターンと記す。Ｎ連結位置管理テーブルは、Ｎ連結パターンと、そのＮ連結パターンに該当する文字列の文書中での位置を示す連結パターン位置情報と、そのＮ連結パターンに該当する文字列を含む文書の文書番号のリストへのポインタと、文書番号サンプルデータとを含む情報である。すなわち、Ｎ連結位置管理テーブルは、タグまたは単語の組み合わせに関して、タグ位置管理テーブルと同様の情報を含んでいる。なお、文書中における文字列の位置を示す位置情報であって、Ｎ連結パターンに該当する文字列の文書中での位置を示す位置情報を連結パターン位置情報と記す。
【０１５７】
図１９は、Ｎ連結位置管理テーブルの例を示す説明図である。Ｎ連結位置管理テーブルにおいて、Ｎ連結パターンはタグ名や単語の組み合わせで表される。図１９では、「［助詞］［形容詞］」というＮ連結パターンを例示している。また、本例では、連結パターン位置情報が、そのＮ連結パターンに該当する文字列の文書中における開始位置および終了位置で表される場合を例にして説明する。開始位置および終了位置の表し方は、タグ位置管理テーブルと同様である。文書番号サンプルデータおよびポインタも、タグ位置管理テーブルにおける文書番号サンプルデータおよびポインタと同様である。Ｎ連結位置管理テーブルにおけるポインタは、Ｎ連結パターンに該当する文字列を含む文書番号のリスト（文書リスト）へのポインタである。その文書リストは、タグ文書番号記憶部１３に記憶されている。文書番号サンプルデータは、Ｎ連結パターンに該当する文字列を含む文書の文書番号のリストに列挙された文書番号のうち、少なくとも最小の文書番号と最大の文書番号を含む複数の文書番号を、リストにおける文書番号の順位とともに記述した情報である。図１９では、Ｎ連結パターンを記号ＰＴで表し、他の要素についてはタグ位置管理テーブルの場合と同様に、Ｐ，ＮＰ，ＲＥＦ，ＳＡＭＰの記号で示している。
【０１５８】
図１９に示す１行目の例では、「［助詞］［形容詞］」というタグの連なりに該当する文字列（フレーズ）が第３位置から第６位置までに登場する文書の文書リストへのポインタが「ｎｖ０００２」であることを示している。また、その文書リストにおいて、１番目の文書番号が「３６８」であり、１００番目が「１３１０」であること等を示している。
【０１５９】
問い合わせ表作成手段１５１は、入力されたクエリをＮ連結パターンと、Ｎ連結パターンに属さないタグと、Ｎ連結パターンに属さない単語とに分割する。そして、問い合わせ表作成手段１５１は、参照データにおける位置情報（開始位置Ｐおよび次開始位置ＮＰ）の連結性による各参照データの並びが、入力されたクエリ内におけるＮ連結パターンとそのＮ連結パターンに属さないタグおよび単語との並びと一致するように、クエリ内のＮ連結パターン、タグおよび単語に対応する参照データを一つずつ取り出し、問い合わせタスクを生成する。Ｎ連結パターンの参照データは、Ｐ，ＮＰ，ＲＥＦ，ＳＡＭＰの組である。
【０１６０】
問い合わせ表作成手段１５１は、Ｎ連結パターン、タグおよび単語の参照データから作成した問い合わせタスクを用いて、問い合わせ表を作成する。この結果、問い合わせ表には、Ｎ連結パターンに対応するポインタおよび検索対象と、Ｎ連結パターンに属さないタグに対応するポインタおよび検索対象と、単語に対応する文書番号の集合が記述される。
【０１６１】
問い合わせ実行手段１５２は、その問い合わせ表に基づいて、クエリに応じた文書番号を求める。
【０１６２】
結果登録手段１５３は、入力されたクエリがＮ連結パターンとして再利用できる可能性が高いか否かを判定し、再利用性が高いと判定した場合、そのクエリをＮ連結パターンとしてＮ連結位置管理テーブルを更新し、検索結果となった文書番号の集合を新たな文書リストとしてタグ文書番号記憶部１３に記憶させる。
【０１６３】
次に、本実施形態の動作について説明する。図２０は、第３の実施形態の検索プロセスの例を示すフローチャートである。第１の実施形態と同様の動作については、同一の符号を付す。
【０１６４】
問い合わせ表作成手段１５１は、クエリが入力されると、そのクエリをＮ連結パターンと、Ｎ連結パターンに属さないタグおよび単語とに分ける（ステップＳ２０１’）。問い合わせ表作成手段１５１は、ステップＳ２０１’において、入力されたクエリを単語とタグに分割する。そして、問い合わせ表作成手段１５１は、その分割したタグおよび単語のうち、隣接するタグまたは単語の組み合わせの中に、Ｎ連結位置管理テーブル内のＮ連結パターンＰＴと一致する組み合わせがあるか否かを判定し、一致する組み合わせがあれば、そのタグまたは単語の組み合わせを一つのＮ連結パターンとする。問い合わせ表作成手段１５１は、最長一致でこの処理を行い、より長いＮ連結パターンを優先的に作成する。この結果、クエリは、Ｎ連結パターンと、Ｎ連結パターンに属さないタグ（以下、単にタグと記す。）と、Ｎ連結パターンに属さない単語（以下、単に単語と記す。）とに分けられる。以下の説明では、入力されたクエリ内のＮ連結パターン、タグ、単語の数をＮ個としたときに、クエリ内のｋ番目のＮ連結パターン、タグ、または単語をＱ（ｉ）とする。ここで、０≦ｉ＜ｎである。
【０１６５】
ステップＳ２０１’の次に、問い合わせ表作成手段１５１は、タグの参照データ抽出（ステップＳ２０２ａ）、および単語の参照データ抽出（ステップＳ２０２ｂ）を行う。これらの動作は、第１の実施形態と同様である。
【０１６６】
また、問い合わせ表作成手段１５１は、Ｎ連結パターンの参照データの抽出を行う（ステップＳ２０２ｃ）。問い合わせ表作成手段１５１は、Ｎ連結位置管理テーブルから、ＰＴがＮ連結パターンと等しい行の開始位置Ｐ、次開始位置ＮＰ、ポインタＲＥＦ、および文書番号サンプルデータＳＡＭＰを読み込む。このＰ，ＮＰ，ＲＥＦ，ＳＡＭＰの組がＮ連結パターンの参照データである。なお、この処理は、ステップＳ２０１’において、Ｎ連結位置管理テーブルを特定する際に同時に行ってもよい。
【０１６７】
続いて、問い合わせ表作成手段１５１は、参照データにおける位置情報（開始位置Ｐおよび次開始位置ＮＰ）の連結性による各参照データの並びが、入力されたクエリ内におけるＮ連結パターン、タグ、および単語の並びと一致するように、クエリ内におけるＮ連結パターン、タグ、および単語に対応する参照データを一つずつ取り出し、問い合わせタスクを生成する（ステップＳ２０３）。この処理は、第１の実施形態で説明したステップＳ２０３の処理と同様であり、具体的には、ステップＳ２０３１以降の処理（図８参照）を行えばよい。
【０１６８】
次に、問い合わせ表作成手段１５１は、問い合わせタスク内のＮ連結パターンおよびタグに関し、検索対象を限定して、問い合わせ表を作成する（ステップＳ２０５’）。この処理は、第１の実施形態における問い合わせ表作成処理と同様に図１０に例示するフローに従って処理を行えばよいが、以下の点が第１の実施形態における問い合わせ表作成処理と異なる。
【０１６９】
第１の実施形態では、ステップＳ２０５１でＱ（ｋ）がタグであるか否かを判定を判定していたが、本実施形態では、ｋによって指定されるＱ（ｋ）がＮ連結パターンまたはタグのいずれかに該当するか、あるいは、単語に該当するかを判定する。そして、Ｑ（ｋ）がＮ連結パターンまたはタグのいずれかに該当することを条件に、ステップＳ２０５２に移行する。
【０１７０】
また、ステップＳ２０５４では、Ｎ連結パターンやタグの文書番号サンプルデータから取り出した二つの組（ｉ番目およびｉ＋１番目の組）の示す「文書リスト内におけるその文書番号の順位」の間の範囲を検索対象に含めるか否かを判定するが、この処理は、以下に示すルールによって行う。第１の実施形態で説明した場合と同様に、文書番号サンプルデータから二組ずつ取り出す「順位：文書番号」のうち、最初の方の組をサンプルデータ１と記し、後の方の組をサンプルデータ２と記す。また、サンプルデータ１における順位、文書番号をそれぞれ「順位１」、「文書番号１」と記す。同様に、サンプルデータ２における順位、文書番号をそれぞれ「順位２」、「文書番号２」と記す。
【０１７１】
問い合わせ表作成手段１５１は、「順位１：文書番号１」および「順位２：文書番号２」における二つの文書番号の範囲が、入力されたクエリ内の他のタグまたはＮ連結パターンに対応する文書番号サンプルデータにおける文書番号の最小値と最大値の範囲内であり、その二つの文書番号の範囲内にクエリ内の単語に対応する文書番号が属していることを条件に、文書リスト中におけるその二つの文書番号の順位（上記の「順位１」および「順位２」）の間の範囲をタグや連結パターンに対する検索対象とすべきと判定する。
【０１７２】
問い合わせ表作成手段１５１は、第１の実施形態で示した第１から第４までのルールと同様のルールによって、この判定を行うが、本実施形態では、第２および第３のルールとして、以下のルールを用いる。
【０１７３】
すなわち、本実施形態における第２のルールは、「入力されたクエリＱ内に他のタグまたはＮ連結パターンＱ（ｔ）があり、そのタグまたはＮ連結パターンの参照データＳ（ｔ）の文書番号サンプルデータの最小値Ｍｉｎ（最小文書番号）が『文書番号２＜Ｍｉｎ』という条件を満たす場合、Ｆａｌｓｅと判定する。」というルールである。
【０１７４】
また、本実施形態における第３のルールは、「入力されたクエリＱ内に他のタグまたはＮ連結パターンＱ（ｔ）があり、そのタグまたはＮ連結パターンの参照データＳ（ｔ）の文書番号サンプルデータの最大値Ｍａｘ（最大文書番号）が『Ｍａｘ＜文書番号１』という条件を満たす場合、Ｆａｌｓｅと判定する。」というルールである。
【０１７５】
問い合わせ表作成処理に関し、他の点については第１の実施形態と同様である。
【０１７６】
問い合わせ表作成後、問い合わせ実行手段１５２は、問い合わせ表を基にして文書番号の読み込みを行うことにより、入力されたクエリに応じた文書の文書番号を特定する（ステップＳ２０６’）。問い合わせ実行手段１５２は、問い合わせ表における位置（開始位置および終了位置）に応じた検索対象の中にタグまたはＮ連結パターンの検索対象（ポインタおよび文書リスト内での順位の範囲）が含まれている場合、その検索対象が示す文書番号を読み込む。問い合わせ表における開始位置および終了位置の組が共通である各タグおよび各Ｎ連結パターン毎に文書番号を読み込んだならば、開始位置および終了位置の組が共通である単語、タグ、Ｎ連結パターンそれぞれの文書番号の積集合をとり、その文書番号の積集合を検索結果として、開始位置および終了位置とともに出力する。この処理を、問い合わせ表の各行毎に行えばよい。
【０１７７】
クエリに対する検索結果として文書番号が特定された後、結果登録手段１５３は、検索結果をタグ文書番号記憶部１３に記憶させるとともにそのクエリを新たなＮ連結パターンとしてＮ連結位置管理テーブルを更新するか否かを判定する（ステップＳ２０８）。クエリのＮ連結パターンとしての再利用性が高い場合には、タグ文書番号記憶部１３およびＮ連結位置管理テーブル記憶部１９の更新を行うこととすればよいが、具体的な判定基準は特に限定されない。以下に、この判定処理の例を示す。ただし、以下に例示する判定処理において、Ｎ連結パターンに属するか否かを問わずにクエリ内の要素をタグ、単語として記す。
【０１７８】
結果登録手段１５３は、入力されたクエリがタグのみで構成されるクエリであることを条件に、タグ文書番号記憶部１３およびＮ連結位置管理テーブル記憶部１９を更新すると判定してもよい。
【０１７９】
また、結果登録手段１５３は、入力されたクエリに含まれるタグまたは単語の長さ（個数）が閾値（例えば、２など）以下であることを条件に、タグ文書番号記憶部１３およびＮ連結位置管理テーブル記憶部１９を更新すると判定してもよい。
【０１８０】
また、結果登録手段１５３は、検索結果における登場位置リスト内の登場リストの数（検索された文書番号数）が閾値（例えば、１０００００件など）以上であることを条件に、タグ文書番号記憶部１３およびＮ連結位置管理テーブル記憶部１９を更新すると判定してもよい。
【０１８１】
また、結果登録手段１５３は、検索にかかった時間を計測しておき、検索時間（例えば、クエリの入力から検索結果出力までの時間）が閾値（例えば１００秒以上）であることを条件に、タグ文書番号記憶部１３およびＮ連結位置管理テーブル記憶部１９を更新すると判定してもよい。
【０１８２】
タグ文書番号記憶部１３およびＮ連結位置管理テーブル記憶部１９を更新すると判定した場合、結果登録手段１５３は、検索に用いた問い合わせ表における開始位置および終了位置の組毎に、検索結果として得た文書番号の集合をタグ文書番号記憶部１３に記憶させ、新たにポインタを定める。ここで記憶された文書番号の集合が文書リストとなる。結果登録手段１５３は、その文書リストの中から文書番号をサンプリングし、文書番号サンプルデータを作成する。文書リストにおける文書番号の最小値および最大値は文書番号サンプルデータに含まれる。このサンプリング方法は、例えば、第１の実施形態で例示したインデックス作成部１１によるサンプリング方法と同様である。結果登録手段１５３は、クエリ、開始位置、終了位置（次開始位置）、ポインタ、および文書番号サンプルデータをそれぞれＰＴ，Ｐ，ＮＰ，ＲＥＦ，ＳＡＭＰとしてＮ連結位置管理テーブル記憶部１９に記憶させる。
【０１８３】
また、以上の説明では、Ｎ連結パターンがタグまたは単語の組み合わせである場合を例にして説明したが、Ｎ連結パターンに単語が含まれず、タグの組み合わせをＮ連結パターンとしてもよい。その場合、文書検索システムは、単語インデックス記憶部１４を備えていなくてもよい。また、問い合わせ表作成手段１５１は、ステップＳ２０１’では、入力されたクエリをタグに分け、その分割したタグのうち、隣接するタグの組み合わせの中にＮ連結位置管理テーブル内のＮ連結パターンＰＴと一致する組み合わせがあるか否かを判定し、一致する組み合わせがあれば、そのタグの組み合わせを一つのＮ連結パターンとすればよい。この結果、クエリは、Ｎ連結パターンと、Ｎ連結パターンに属さないタグとに分けられる。また、この場合、ステップＳ２０２ｂの処理は行わずに、ステップＳ２０２ａ，Ｓ２０２ｃを行った後にステップＳ２０３に移行すればよい。
【０１８４】
また、ステップＳ２０５４の判定処理では、文書番号サンプルデータの先頭から順番に二組ずつ取り出す「順位１：文書番号１」および「順位２：文書番号２」に対して、第３の実施形態で述べた第２のルールと第３のルールのいずれかに該当するか否かを判定し、いずれかに該当するならば「順位１」から「順位２」までの範囲を検索対象とせず、第２のルールと第３のルールのいずれにも該当しない場合には「順位１」から「順位２」までの範囲を検索対象と定めればよい。
【０１８５】
このようにして、問い合わせ表作成手段１５１は、「順位１：文書番号１」および「順位２：文書番号２」における二つの文書番号の範囲が、入力されたクエリ内の他のタグまたはＮ連結パターンに対応する文書番号サンプルデータにおける文書番号の最小値と最大値の範囲内であることを条件に、文書リスト中におけるその二つの文書番号の順位（上記の「順位１」および「順位２」）の間の範囲をタグに対する検索対象と定める。
【０１８６】
他の点については、Ｎ連結パターンに単語が含まれる場合と同様である。
【０１８７】
以下に本実施形態の処理の具体例を示す。本例では、Ｎ連結位置管理テーブルに何も登録されていない場合を例にする。「［助詞］［形容詞］」というクエリが入力されたとする。この場合、クエリからＮ連結パターンが得られることはなく、問い合わせ表作成手段１５１および問い合わせ実行手段１５２は第１の実施形態と同様に検索結果を導く。また、クエリがタグのみからなることにより、結果登録手段１５３が、タグ文書番号記憶部１３およびＮ連結位置管理テーブル記憶部１９を更新すると判定したとする。
【０１８８】
結果登録手段１５３は、検索時に作成された問い合わせ表の開始位置および終了位置の組毎に、文書番号の集合（文書リスト）をタグ文書番号記憶部１３に記憶させてポインタを定め、また、文書番号サンプルデータを作成する。そして、「［助詞］［形容詞］」、開始位置、終了位置（次開始位置）、ポインタ、文書番号サンプルデータをＮ連結位置管理テーブル記憶部１９に記憶させる。この結果、図１９に例示するＮ連結位置管理テーブルが記憶されたとする。
【０１８９】
また、図１９に例示するＮ連結位置管理テーブルが作成されたのち、「運動会［助詞］［形容詞］［名詞］」というタグが入力されたとする。このクエリのうち「［助詞］［形容詞］」の部分は、Ｎ連結位置管理テーブルに登録されている。従って、問い合わせ表作成手段１５１は、入力されたクエリを「運動会」と、「［助詞］［形容詞］」と、「［名詞］」とに分解する。問い合わせ表作成手段１５１は、「運動会」の参照データを単語インデックス記憶部１４に記憶された単語転置インデックスから抽出し、「［助詞］［形容詞］」の参照データをＮ連結位置管理テーブルから抽出し、「［名詞］」の参照データをタグ位置管理テーブルから抽出し、問い合わせタスク、問い合わせ表を作成する。そして、問い合わせ実行手段１５２がその問い合わせ表で検索結果を導く。
【０１９０】
本実施形態では、一般的に利用されることが多いパターン（上記の例における［助詞］［形容詞］等）について検索を行ったときに、検索で得られた文書リストをタグ文書管理記憶部１３に記憶させるとともに、検索時のクエリ、連結パターン位置情報（開始位置および終了位置）、ポインタ、文書番号サンプルデータをＮ連結位置管理テーブルに登録する。そして、次回の検索時に、そのＮ連結パターンを含むクエリが入力されたときには、そのパターンに対応する参照データを抽出し、問い合わせタスクおよび問い合わせ表を生成する。従って、Ｎ連結パターン内の単語やタグ毎に参照データを抽出する必要がなく、また、検索時の文書番号の読み込み量を少なくすることができる。よって、検索処理を高速化することができる。
【０１９１】
また、第３の実施形態に、第２の実施形態を適用し、タグ管理テーブル記憶部１６およびタグ転置インデックス記憶部１７（図１４参照）を備える構成としてもよい。そして、タグ毎にインデックス種を定め、Ｎ連結パターンに属さないタグの参照データ抽出をインデックス種に応じて行ってもよい。
【０１９２】
次に、本発明の概要について説明する。図２１は、本発明の概要を示すブロック図である。本発明の文書検索システムは、文書番号記憶手段９１と、タグ位置管理手段９２と、タグを含むクエリに応じて文書を検索する検索手段９３とを備える。
【０１９３】
文書番号記憶手段９１（例えば、タグ文書番号記憶部１３）は、文書の文書番号のリストを、そのリストを示すポインタと関連付けて記憶する。
【０１９４】
タグ位置管理手段９２（例えば、タグ位置管理テーブル記憶部１２）は、文書中の単語の属性を示すタグと、そのタグに該当する単語の文書中での位置を示す位置情報と、そのタグに該当する単語を含む文書の文書番号のリストへのポインタと、その文書番号のリストのうち少なくとも最小文書番号および最大文書番号を含む複数の文書番号をリストにおける文書番号の順位とともに記述した文書番号サンプルデータとを記憶する。
【０１９５】
また、検索手段９３（例えば、文書検索部１５）は、問い合わせ情報生成手段９４と、検索実行手段９５とを備える。
【０１９６】
問い合わせ情報生成手段９４（例えば、問い合わせ表作成手段１５１）は、文書番号記憶手段９１およびタグ位置管理手段９２が記憶している情報に基づいて、クエリに該当する文字列の文書中での位置と、クエリ中の各タグに関する検索対象とを含む情報である問い合わせ情報（例えば、問い合わせ表）を生成する。
【０１９７】
検索実行手段９５は、問い合わせ情報で定められた各タグ毎の検索対象の積集合を求める。
【０１９８】
また、問い合わせ情報生成手段９４が、タグを含むクエリに対して、クエリ内のタグ毎に、タグに対応する位置情報、ポインタ、および文書番号サンプルデータをタグ位置管理手段９２から読み込み、位置情報で示される並びがクエリ内のタグの並びと一致しているそれぞれのタグに対応するポインタおよび文書番号サンプルデータを含むとともにクエリに該当する文字列の文書中での位置を含む問い合わせタスクを生成し、問い合わせタスク中のタグ毎に、文書番号サンプルデータが示す文書番号を番号順に二つずつ取り出し、その二つの文書番号の範囲が他のタグに対応する文書番号サンプルデータにおける最小文書番号と最大文書番号の範囲内であることを条件に、二つの文書番号のリスト中における順位の間の範囲をタグに関する検索対象として定め、クエリに該当する文字列の文書中での位置とタグ毎の検索対象とを含む問い合わせ情報を生成する構成であってもよい。
【０１９９】
単語と、単語を含む文書の文書番号と、文書中での単語の位置を示す位置情報とを記憶する単語インデックス記憶手段（例えば、単語インデックス記憶部１４）を備え、問い合わせ情報生成手段９４が、タグおよび単語を含むクエリに対して、クエリ内のタグ毎に、タグに対応する位置情報、ポインタ、および文書番号サンプルデータをタグ位置管理手段９２から読み込み、クエリ内の単語毎に、文書番号および位置情報を単語インデックス記憶手段から読み込み、位置情報で示される並びがクエリ内のタグおよび単語の並びと一致しているそれぞれのタグに対応するポインタおよび文書番号サンプルデータを含み、位置情報で示される並びがクエリ内のタグおよび単語の並びと一致しているそれぞれの単語に対応する文書番号を含むとともにクエリに該当する文字列の文書中での位置を含む問い合わせタスクを生成し、問い合わせタスク中のタグ毎に、文書番号サンプルデータが示す文書番号を番号順に二つずつ取り出し、その二つの文書番号の範囲が他のタグに対応する文書番号サンプルデータにおける最小文書番号と最大文書番号の範囲内であり、その二つの文書番号の範囲内にクエリ内の単語に対応する文書番号が属していることを条件に、二つの文書番号のリスト中における順位の間の範囲をタグに関する検索対象として定め、クエリに該当する文字列の文書中での位置と各タグ毎の検索対象とを含み、問い合わせタスクでそれぞれの単語に対応する文書番号として定められた文書番号をそれぞれの単語に関する検索対象として含む問い合わせ情報を生成し、検索実行手段９５が、タグおよび単語を含むクエリに対して、問い合わせ情報で定められた各タグおよび各単語毎の検索対象の積集合を求める構成であってもよい。
【０２００】
二つ以上の連続するタグまたは単語の組み合わせである連結パターン（例えば、第３の実施形態におけるＮ連結パターン）と、連結パターンに該当する文字列の文書中での位置を示す位置情報と、連結パターンに該当する文字列を含む文書の文書番号のリストへのポインタと、文書番号のリストのうち少なくとも最小文書番号および最大文書番号をリストにおける文書番号の順位とともに記述した文書番号サンプルデータとを記憶するＮ連結位置管理手段（例えば、Ｎ連結位置管理テーブル記憶部１９）を備え、問い合わせ情報生成手段９４が、Ｎ連結位置管理手段が記憶する連結パターンを含むクエリを、連結パターンと、連結パターンに属さないタグと、連結パターンに属さない単語とに分解し、連結パターンに対応する位置情報、ポインタ、および文書番号サンプルデータをＮ連結位置管理手段から読み込み、連結パターンに属さないタグ毎に、タグに対応する位置情報、ポインタ、および文書番号サンプルデータをタグ位置管理手段９２から読み込み、連結パターンに属さない単語毎に、文書番号および位置情報を単語インデックス記憶手段から読み込み、位置情報で示される並びがクエリ内のタグと単語と連結パターンの並びと一致しているそれぞれの連結パターンに対応するポインタおよび文書番号サンプルデータと、位置情報で示される並びがクエリ内のタグと単語と連結パターンの並びと一致しているそれぞれのタグに対応するポインタおよび文書番号サンプルデータと、位置情報で示される並びがクエリ内のタグと単語と連結パターンの並びと一致しているそれぞれの単語に対応する文書番号とを含むとともにクエリに該当する文字列の文書中での位置を含む問い合わせタスクを生成し、問い合わせタスク中の連結パターンおよび連結パターンに属さないタグ毎に、文書番号サンプルデータが示す文書番号を番号順に二つずつ取り出し、その二つの文書番号の範囲が他のタグまたは連結パターンに対応する文書番号サンプルデータにおける最小文書番号と最大文書番号の範囲内であり、その二つの文書番号の範囲内にクエリ内の単語に対応する文書番号が属していることを条件に、二つの文書番号のリスト中における順位の間の範囲を連結パターンまたはタグに関する検索対象と定め、クエリに該当する文字列の文書中での位置と各タグおよび各連結パターンの検索対象とを含み、問い合わせタスクでそれぞれの単語に対応する文書番号として定められた文書番号をそれぞれの単語に関する検索対象として含む問い合わせ情報を生成し、検索実行手段９５が、タグと単語と連結パターンとを含むクエリに対して、問い合わせ情報で定められた各タグ、各単語および各連結パターン毎の検索対象の積集合を求める構成であってもよい。そのような構成によれば、検索実行手段９５が文書番号を読み込むタグ等が連結パターンとしてまとめられるので、検索処理を高速化することができる。
【０２０１】
また、タグを組み合わせた連結パターン（例えば、Ｎ連結パターン）と、連結パターンに該当する文字列の文書中での位置を示す位置情報と、連結パターンに該当する文字列を含む文書の文書番号のリストへのポインタと、文書番号のリストのうち少なくとも最小文書番号および最大文書番号をリストにおける文書番号の順位とともに記述した文書番号サンプルデータとを記憶するＮ連結位置管理手段（例えば、Ｎ連結位置管理テーブル記憶部１９）を備え、問い合わせ情報生成手段９４が、Ｎ連結位置管理手段が記憶する連結パターンを含むクエリを、連結パターンと、連結パターンに属さないタグとに分解し、連結パターンに対応する位置情報、ポインタ、および文書番号サンプルデータをＮ連結位置管理手段から読み込み、連結パターンに属さないタグ毎に、タグに対応する位置情報、ポインタ、および文書番号サンプルデータをタグ位置管理手段９２から読み込み、位置情報で示される並びがクエリ内のタグと連結パターンの並びと一致しているそれぞれの連結パターンに対応するポインタおよび文書番号サンプルデータと、位置情報で示される並びがクエリ内のタグと連結パターンの並びと一致しているそれぞれのタグに対応するポインタおよび文書番号サンプルデータとを含むとともにクエリに該当する文字列の文書中での位置を含む問い合わせタスクを生成し、問い合わせタスク中の連結パターンおよび連結パターンに属さないタグ毎に、文書番号サンプルデータが示す文書番号を番号順に二つずつ取り出し、その二つの文書番号の範囲が他のタグまたは連結パターンに対応する文書番号サンプルデータにおける最小文書番号と最大文書番号の範囲内であることを条件に、その二つの文書番号のリスト中における順位の間の範囲を連結パターンまたはタグに関する検索対象と定め、そのクエリに該当する文字列の文書中での位置と各タグおよび各連結パターンの検索対象を含む問い合わせ情報を生成し、検索実行手段９５が、タグと連結パターンとを含むクエリに対して、問い合わせ情報で定められた各タグおよび各連結パターン毎の検索対象の積集合を求める構成であってもよい。
【０２０２】
また、クエリに対する検索結果である文書番号のリストを、リストを示すポインタと関連付けて文書番号記憶手段９１に記憶させ、クエリと、クエリに該当する文字列の文書中での位置を示す位置情報と、ポインタと、リストに関する文書番号サンプルデータとをＮ連結位置管理手段に記憶させる検索結果登録手段（例えば、結果登録手段１５３）を備える構成であってもよい。
【０２０３】
また、タグと、タグに該当する単語を含む文書の文書番号と、文書中でのタグに該当する単語の文書中での位置を示す位置情報とを記憶するタグ転置インデックス記憶手段（例えば、タグ転置インデックス記憶部１７）と、タグに該当する単語を含む文書の文書番号がタグ転置インデックス記憶手段に記憶されているか文書番号記憶手段９１に記憶されているかをタグ毎に定めたタグ種別情報（例えば、タグ管理テーブル）を記憶する種別記憶手段（例えば、タグ管理テーブル記憶部１６）とを備え、問い合わせ情報生成手段９４は、クエリ内のタグのうち、タグに該当する単語を含む文書の文書番号がタグ転置インデックス記憶手段に記憶されているタグをタグ種別情報によって判定し、タグに関する検索対象として、タグ転置インデックス記憶手段に記憶されているタグに該当する単語を含む文書の文書番号を定める構成であってもよい。そのような構成によれば、タグの管理方法を分けることができる。
【産業上の利用可能性】
【０２０４】
本発明は、タグを含むクエリにより文書を検索したり管理したりするシステムに好適に適用され、例えば、タグを含むクエリから文書番号を特定し、さらにその文書番号から文書自体を参照可能とする文書検索システムや、タグを含むクエリから文書集合を読み出す文書検索システムとして好適に適用される。また、テキストマイニングにおいて文書にタグを付加して文書の分析を行う場合があるが、この分析を行うための文書検索システムにも適用可能である。
【図面の簡単な説明】
【０２０５】
【図１】本発明の第１の実施形態の文書検索システムの例を示すブロック図である。
【図２】単語インデックス記憶部が記憶する単語転置インデックスの例を示す説明図である。
【図３】タグ位置管理テーブル記憶部が記憶するタグ位置管理テーブルの例を示す説明図である。
【図４】タグ文書番号記憶部が記憶する文書リストの例を示す説明図である。
【図５】問い合わせ表の例を示す説明図である。
【図６】検索プロセスの例を示すフローチャートである。
【図７】単語の参照データの例を示している。
【図８】クエリと同じ連結性を持つ参照データの組み合わせの特定動作の例を示す説明図である。
【図９】問い合わせタスクの例を示す説明図である。
【図１０】問い合わせ表作成動作の例を示す説明図である。
【図１１】インデックス作成プロセスで入力されるタグの例を示す説明図である。
【図１２】入力されたタグを分類した結果の例を示す説明図である。
【図１３】単語に対応する文書番号およびタグに対応する文書番号サンプルデータの例を示す説明図である。
【図１４】本発明の第２の実施形態の文書検索システムの例を示すブロック図である。
【図１５】タグ転置インデックスの例を示す説明図である。
【図１６】タグ管理テーブルの例を示す説明図である。
【図１７】問い合わせ表の例を示す説明図である。
【図１８】本発明の第３の実施形態の文書検索システムの例を示すブロック図である。
【図１９】Ｎ連結位置管理テーブルの例を示す説明図である。
【図２０】第３の実施形態の検索プロセスの例を示すフローチャートである。
【図２１】本発明の概要を示すブロック図である。
【図２２】タグ付けされた文書の例を示す説明図である。
【図２３】一般的な転置インデックスの例を示す説明図である。
【符号の説明】
【０２０６】
１１  インデックス作成部
１２  タグ位置管理テーブル記憶部
１３  タグ文書番号記憶部
１４  単語インデックス記憶部
１５  文書検索部
１６  タグ管理テーブル記憶部
１７  タグ転置インデックス記憶部
１９  Ｎ連結位置管理テーブル記憶部
１５１  問い合わせ表作成手段
１５２  問い合わせ実行手段
１５３  結果登録手段
【図１】
0005169456.tif 000002
【図２】
0005169456.tif 000003
【図３】
0005169456.tif 000004
【図４】
0005169456.tif 000005
【図５】
0005169456.tif 000006
【図６】
0005169456.tif 000007
【図７】
0005169456.tif 000008
【図８】
0005169456.tif 000009
【図９】
0005169456.tif 000010
【図１０】
0005169456.tif 000011
【図１１】
0005169456.tif 000012
【図１２】
0005169456.tif 000013
【図１３】
0005169456.tif 000014
【図１４】
0005169456.tif 000015
【図１５】
0005169456.tif 000016
【図１６】
0005169456.tif 000017
【図１７】
0005169456.tif 000018
【図１８】
0005169456.tif 000019
【図１９】
0005169456.tif 000020
【図２０】
0005169456.tif 000021
【図２１】
0005169456.tif 000022
【図２２】
0005169456.tif 000023
【図２３】
0005169456.tif 000024