(57)【要約】【課題】検索文字列に含まれる形態素の意味を含めた検索処理を可能とするインデックス情報を提供する。【解決手段】コンピュータは、文書情報から複数の形態素を抽出する（ステップ２０１）。そして、コンピュータは、複数の形態素それぞれについて第１論理値及び第２論理値を有する、インデックス情報を生成する（ステップ２０２）。第１論理値は、形態素を示す形態素情報と、文書情報内におけるその形態素の位置を示す位置情報とに対応付けられた、形態素の存在を示す論理値である。第２論理値は、形態素の意味属性を示す属性情報と、その形態素の位置を示す位置情報とに対応付けられた、形態素の存在を示す論理値である。【選択図】図２
2018165875.tif 000002
【特許請求の範囲】
【請求項１】
文書情報から複数の形態素を抽出し、
前記複数の形態素それぞれについて、形態素を示す形態素情報と前記文書情報内における前記形態素の位置を示す位置情報とに対応付けられた、前記形態素の存在を示す第１論理値と、前記形態素の意味属性を示す属性情報と前記形態素の位置を示す位置情報とに対応付けられた、前記形態素の存在を示す第２論理値とを有する、インデックス情報を生成する、
処理をコンピュータに実行させるためのインデックス生成プログラム。
【請求項２】
前記意味属性は、前記文書情報内における前記形態素情報が示す前記形態素と別の形態素との間の意味的関係を表すことを特徴とする請求項１記載のインデックス生成プログラム。
【請求項３】
前記属性情報は、前記文書情報内において前記形態素情報が示す前記形態素の前または後に存在し、前記意味的関係を表す形態素を示すことを特徴とする請求項２記載のインデックス生成プログラム。
【請求項４】
前記属性情報は、前記文書情報の意味構造における前記形態素情報が示す前記形態素と前記別の形態素との間の係り受け関係を示す情報と、前記形態素情報が示す前記形態素が係り元または係り先のいずれであるかを示す情報とを含むことを特徴とする請求項２記載のインデックス生成プログラム。
【請求項５】
文書情報に対する検索文字列を受け付け、
前記文書情報に含まれる複数の形態素それぞれについて、形態素を示す形態素情報と前記文書情報内における前記形態素の位置を示す位置情報とに対応付けられた、前記形態素の存在を示す第１論理値と、前記形態素の意味属性を示す属性情報と前記形態素の位置を示す位置情報とに対応付けられた、前記形態素の存在を示す第２論理値とを有する、インデックス情報を参照し、
前記インデックス情報において、前記検索文字列に含まれる検索形態素に対応付けられた第３論理値と、前記検索形態素の意味属性に対応付けられた第４論理値とを用いて、論理演算を行い、
前記論理演算の結果に基づく前記検索文字列の検索結果を出力する、
処理をコンピュータに実行させるためのデータ検索プログラム。
【請求項６】
文書情報から複数の形態素を抽出する抽出部と、
前記複数の形態素それぞれについて、形態素を示す形態素情報と前記文書情報内における前記形態素の位置を示す位置情報とに対応付けられた、前記形態素の存在を示す第１論理値と、前記形態素の意味属性を示す属性情報と前記形態素の位置を示す位置情報とに対応付けられた、前記形態素の存在を示す第２論理値とを有する、インデックス情報を生成する生成部と、
備えることを特徴とするインデックス生成装置。
【請求項７】
文書情報に含まれる複数の形態素それぞれについて、形態素を示す形態素情報と前記文書情報内における前記形態素の位置を示す位置情報とに対応付けられた、前記形態素の存在を示す第１論理値と、前記形態素の意味属性を示す属性情報と前記形態素の位置を示す位置情報とに対応付けられた、前記形態素の存在を示す第２論理値とを有する、インデックス情報を記憶する記憶部と、
前記文書情報に対する検索文字列を受け付ける受付部と、
前記インデックス情報において、前記検索文字列に含まれる検索形態素に対応付けられた第３論理値と、前記検索形態素の意味属性に対応付けられた第４論理値とを用いて、論理演算を行う演算部と、
前記論理演算の結果に基づく前記検索文字列の検索結果を出力する出力部と、
備えることを特徴とするデータ検索装置。
【請求項８】
コンピュータが、
文書情報から複数の形態素を抽出し、
前記複数の形態素それぞれについて、形態素を示す形態素情報と前記文書情報内における前記形態素の位置を示す位置情報とに対応付けられた、前記形態素の存在を示す第１論理値と、前記形態素の意味属性を示す属性情報と前記形態素の位置を示す位置情報とに対応付けられた、前記形態素の存在を示す第２論理値とを有する、インデックス情報を生成する、
ことを特徴とするインデックス生成方法。
【請求項９】
コンピュータが、
文書情報に対する検索文字列を受け付け、
前記文書情報に含まれる複数の形態素それぞれについて、形態素を示す形態素情報と前記文書情報内における前記形態素の位置を示す位置情報とに対応付けられた、前記形態素の存在を示す第１論理値と、前記形態素の意味属性を示す属性情報と前記形態素の位置を示す位置情報とに対応付けられた、前記形態素の存在を示す第２論理値とを有する、インデックス情報を参照し、
前記インデックス情報において、前記検索文字列に含まれる検索形態素に対応付けられた第３論理値と、前記検索形態素の意味属性に対応付けられた第４論理値とを用いて、論理演算を行い、
前記論理演算の結果に基づく前記検索文字列の検索結果を出力する、
ことを特徴とするデータ検索方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、インデックス生成プログラム、データ検索プログラム、インデックス生成装置、データ検索装置、インデックス生成方法、及びデータ検索方法に関する。
【背景技術】
【０００２】
近年、テキストデータの量が爆発的に増大しており、テキスト検索の重要性が増している。特に、秘書機能アプリケーションソフトウェア等のための意味処理の研究が盛んになってきており、検索文字列と類似する意味を持つ文または文書の検索がますます重要になってきている。
【０００３】
テキスト検索で用いられる自然文の解析には、字句解析、形態素解析、意味解析等が利用されている。字句解析は、文字列を単語に分割する処理であり、形態素解析は、文字列を形態素に分割し、各形態素に対して品詞、属性等の情報を付与する処理である。形態素解析により得られる形態素は、単語として扱われることもある。
【０００４】
意味解析は、自然文の形態素解析結果を用いて、その自然文の意味構造を求める処理である。意味解析結果である意味構造を用いることで、自然文が何を意味するかを、コンピュータが扱うデータとして表現することができる。
【０００５】
意味構造は、形態素解析結果に含まれる複数の単語の意味をそれぞれ表す複数の意味記号と、２つの意味記号の間の接続関係を表す情報とを含む。１つの意味記号が複数の単語に対応する場合もある。意味構造は、例えば、複数の意味記号を表す複数のノードと、２つのノード間の接続関係を表すアークとからなる有向グラフにより表すことができる。意味構造の最小の部分構造は、意味最小単位と呼ばれ、２つのノードとそれらのノードの間のアークとからなる。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】特開２００４−２０６４７３号公報
【特許文献２】特開２０１５−５０２７号公報
【特許文献３】特開２０１６−１３４０３７号公報
【発明の概要】
【発明が解決しようとする課題】
【０００７】
検索文字列と類似する意味を持つ文または文書を検索する類似文書検索では、検索文字列の意味構造と検索対象文書の意味構造とを比較することが望ましい。しかし、検索対象文書の意味解析結果には、意味構造を表す大量の有向グラフが含まれているため、それらの有向グラフと検索文字列の意味構造を表す有向グラフとを比較するための処理時間が増加する。
【０００８】
テキスト検索を高速化するために、文書に含まれる単語の出現位置を登録したインデックスが用いられることもある。しかし、Ｎ個の単語を含む文書の意味構造をインデックスに登録する場合、Ｎ×Ｎのオーダーでインデックスのサイズが増加するため、意味構造そのものをインデックスに登録することは現実的ではない。
【０００９】
１つの側面において、本発明は、検索文字列に含まれる形態素の意味を含めた検索処理を可能とするインデックス情報を提供することを目的とする。
【課題を解決するための手段】
【００１０】
１つの案では、インデックス生成プログラムは、以下の処理をコンピュータに実行させる。
（１）コンピュータは、文書情報から複数の形態素を抽出する。
（２）コンピュータは、複数の形態素それぞれについて第１論理値及び第２論理値を有する、インデックス情報を生成する。第１論理値は、形態素を示す形態素情報と、文書情報内におけるその形態素の位置を示す位置情報とに対応付けられた、形態素の存在を示す論理値である。第２論理値は、形態素の意味属性を示す属性情報と、その形態素の位置を示す位置情報とに対応付けられた、形態素の存在を示す論理値である。
【発明の効果】
【００１１】
１つの実施形態によれば、検索文字列に含まれる形態素の意味を含めた検索処理を可能とするインデックス情報を提供することができる。
【図面の簡単な説明】
【００１２】
【図１】インデックス生成装置の機能的構成図である。
【図２】インデックス生成処理のフローチャートである。
【図３】データ検索装置の機能的構成図である。
【図４】データ検索処理のフローチャートである。
【図５】インデックス生成装置の具体例を示す機能的構成図である。
【図６】助詞を示す属性情報を含むインデックス情報を示す図である。
【図７】インデックス生成処理の第１の具体例を示すフローチャートである。
【図８】第１のビット列生成処理を示すフローチャートである。
【図９】データ検索装置の具体例を示す機能的構成図である。
【図１０】データ検索処理の第１の具体例を示すフローチャートである。
【図１１】ＯＲ演算を示す図である。
【図１２】第１のＡＮＤ演算を示す図である。
【図１３】第２のＡＮＤ演算を示す図である。
【図１４】「ある」のビット列を示す図である。
【図１５】第３のＡＮＤ演算を示す図である。
【図１６】検索文字列の意味構造を示す図である。
【図１７】係り受け関係を示す属性情報を含むインデックス情報を示す図である。
【図１８】インデックス生成処理の第２の具体例を示すフローチャートである。
【図１９】第２のビット列生成処理を示すフローチャートである。
【図２０】データ検索処理の第２の具体例を示すフローチャートである。
【図２１】第４のＡＮＤ演算を示す図である。
【図２２】第５のＡＮＤ演算を示す図である。
【図２３】第６のＡＮＤ演算を示す図である。
【図２４】第７のＡＮＤ演算を示す図である。
【図２５】情報処理装置の構成図である。
【発明を実施するための形態】
【００１３】
以下、図面を参照しながら、実施形態を詳細に説明する。
図１は、実施形態のインデックス生成装置の機能的構成例を示している。インデックス生成装置１０１は、抽出部１１１及び生成部１１２を含む。抽出部１１１及び生成部１１２は、インデックス生成処理を行ってインデックス情報を生成する。
【００１４】
図２は、図１のインデックス生成装置１０１が行うインデックス生成処理の例を示すフローチャートである。まず、抽出部１１１は、文書情報から複数の形態素を抽出する（ステップ２０１）。
【００１５】
次に、生成部１１２は、抽出された複数の形態素それぞれについて第１論理値及び第２論理値を有する、インデックス情報を生成する（ステップ２０２）。第１論理値は、形態素を示す形態素情報と、文書情報内におけるその形態素の位置を示す位置情報とに対応付けられた、形態素の存在を示す論理値である。第２論理値は、形態素の意味属性を示す属性情報と、その形態素の位置を示す位置情報とに対応付けられた、形態素の存在を示す論理値である。
【００１６】
図１のインデックス生成装置１０１によれば、検索文字列に含まれる形態素の意味を含めた検索処理を可能とするインデックス情報を提供することができる。
【００１７】
図３は、実施形態のデータ検索装置の機能的構成例を示している。データ検索装置３０１は、記憶部３１１、受付部３１２、演算部３１３、及び出力部３１４を含む。記憶部３１１は、図１のインデックス生成装置１０１が生成したインデックス情報３２１を記憶し、受付部３１２、演算部３１３、及び出力部３１４は、インデックス情報３２１に基づくデータ検索処理を行う。
【００１８】
図４は、図３のデータ検索装置３０１が行うデータ検索処理の例を示すフローチャートである。まず、受付部３１２は、文書情報に対する検索文字列を受け付ける（ステップ４０１）。
【００１９】
次に、演算部３１３は、インデックス情報３２１を参照し、第３論理値及び第４論理値を用いて論理演算を行う（ステップ４０２）。第３論理値は、インデックス情報３２１において、検索文字列に含まれる検索形態素に対応付けられた論理値であり、第４論理値は、検索形態素の意味属性に対応付けられた論理値である。
【００２０】
次に、出力部３１４は、論理演算の結果に基づく検索文字列の検索結果を出力する（ステップ４０３）。
【００２１】
図３のデータ検索装置３０１によれば、検索文字列に含まれる形態素の意味を含めた検索処理を行うことができる。
【００２２】
図５は、図１のインデックス生成装置１０１の具体例を示している。図５のインデックス生成装置１０１は、抽出部１１１、生成部１１２、及び記憶部５０１を含む。記憶部５０１は、文書情報５１１を記憶する。文書情報５１１は、日本語、中国語、韓国語、英語、フランス語等の自然言語で記述された文書であってもよく、複数の文書を含んでいてもよい。
【００２３】
抽出部１１１は、文書情報５１１に対する形態素解析を行って、文書情報５１１の各文書に含まれる形態素を抽出し、抽出した形態素の出現位置を示す解析結果５１２を生成して、記憶部５０１に格納する。
【００２４】
解析結果５１２は、形態素の識別情報（形態素ＩＤ）と、その形態素の意味属性を示す属性情報と、文書情報５１１内におけるその形態素の出現位置を示す位置情報とを含む。形態素ＩＤは、形態素を示す形態素情報の一例であり、文書情報５１１を圧縮する際に用いられる圧縮符号であってもよい。形態素の意味属性は、文書情報５１１内におけるその形態素と別の形態素との間の意味的関係を表す。
【００２５】
生成部１１２は、解析結果５１２を用いてインデックス情報３２１を生成し、記憶部５０１に格納する。
【００２６】
形態素の属性情報としては、例えば、次のような情報が用いられる。
（ａ）文書情報５１１内において第１の形態素の前または後に存在し、第１の形態素と第２の形態素との間の意味的関係を表す第３の形態素を示す形態素ＩＤ
（ｂ）文書情報５１１の意味構造における第１の形態素と第２の形態素との間の係り受け関係を示す情報と、第１の形態素が係り元または係り先のいずれであるかを示す情報
文書情報５１１が日本語文書である場合、上記（ａ）の属性情報としては、例えば、解析結果５１２において、名詞の直後に続く助詞を示す形態素ＩＤを用いることができる。助詞は、先行する名詞の意味的役割をある程度表しているため、助詞の情報を用いて意味的な絞込み検索を行うことが可能である。
【００２７】
ここで、以下の文書１〜文書３を含む文書情報５１１に対して、「ケーキが冷蔵庫にある。」という検索文字列を用いて類似文書検索を行う場合について説明する。
文書１：ケーキが冷蔵庫の外にある。
文書２：ケーキは冷蔵庫にある。
文書３：冷蔵庫のケーキにクリームが置いてある。
この場合、検索文字列は、「ケーキ」、「が」、「冷蔵庫」、「に」、及び「ある」の５つの形態素に分割される。「ケーキ」及び「冷蔵庫」は名詞であり、「が」及び「に」は助詞であり、「ある」は動詞である。
【００２８】
このうち、「ケーキ」、「冷蔵庫」、及び「ある」の３つの形態素を用いて、“「ケーキ」ＡＮＤ「冷蔵庫」ＡＮＤ「ある」”という検索キーを生成することができる。この検索キーは、文書が「ケーキ」、「冷蔵庫」、及び「ある」を含むことを示す。この検索キーを用いて文書情報５１１を検索すると、文書１〜文書３のすべてが検索結果に含まれる。しかし、文書１は、ケーキが冷蔵庫にはないことを意味するため、検索結果として適切ではない。
【００２９】
そこで、名詞だけでなく、名詞の直後に続く助詞も検索キーに含めることで、検索結果を絞り込むことを考える。検索文字列において、「ケーキ」に続く助詞は「が」であり、「冷蔵庫」に続く助詞は「に」である。この場合、次のような検索キーを生成することができる。
検索キー：「ケーキ」ＡＮＤ「冷蔵庫」ＡＮＤ「ある」ＡＮＤ「ケーキの助詞＝（がｏｒはｏｒも）」ＡＮＤ「冷蔵庫の助詞＝（に）」
「ケーキの助詞＝（がｏｒはｏｒも）」は、文書内の「ケーキ」に続く助詞が「が」、「は」、または「も」のいずれかであることを示す。また、「冷蔵庫の助詞＝（に）」は、文書内の「冷蔵庫」に続く助詞が「に」であることを示す。この検索キーを用いて文書情報５１１を検索すると、文書２のみが検索結果に含まれ、文書１及び文書３は検索結果から除外される。
【００３０】
このように、名詞の直後に続く助詞の情報を検索キーに付加して文書情報５１１を検索することで、検索結果を適切に絞り込むことができる。
【００３１】
図６は、助詞を示す属性情報を含むインデックス情報３２１の例を示している。図６のインデックス情報３２１は、文書１〜文書３を含む複数の文書の文書情報５１１から生成される。形態素／属性情報は、複数の文書に含まれる、助詞以外の形態素の形態素ＩＤと助詞の形態素ＩＤとを表す。例えば、「ケーキ」、「冷蔵庫」、「外」、「ある」、「クリーム」、及び「置いて」は、助詞以外の形態素であり、「が」、「の」、「に」、「は」、及び「も」は、助詞である。助詞の形態素ＩＤは、属性情報の一例である。
【００３２】
オフセットは、文書情報５１１内における各形態素の出現位置を表す。この例では、オフセットは、文書を示す文書ＩＤと、文書内における形態素の出現位置を示す番号とを含む。例えば、文書１内の出現位置は、“０”〜“３”の４個の番号によって表され、文書２内の出現位置は、“０”〜“２”の３個の番号によって表され、文書３内の出現位置は、“０”〜“４”の５個の番号によって表される。
【００３３】
名詞の直後に続く助詞が存在する場合、それらの２つの形態素は同じ位置に出現するものとして扱われ、２つの形態素の文書内における位置は、同じ番号によって表される。例えば、文書１の場合、「ケーキ」及び「が」の出現位置は、番号“０”によって表され、「冷蔵庫」及び「の」の出現位置は、番号“１”によって表され、「外」及び「に」の出現位置は、番号“２”によって表される。「ある」の出現位置は、番号“３”によって表される。
【００３４】
図６のインデックス情報３２１は、助詞以外の形態素に対応するビット列と、助詞に対応するビット列とを含む。助詞以外の形態素に対応するビット列の論理値（ビット値）“１”は、その形態素が存在することを示し、論理値“０”は、その形態素が存在しないことを示す。
【００３５】
例えば、「ケーキ」に対応するビット列において、文書１の番号“０”の位置に格納された論理値“１”は、文書１内の番号“０”の位置に「ケーキ」が出現することを示している。また、「冷蔵庫」に対応するビット列において、文書１の番号“１”の位置に格納された論理値“１”は、文書１内の番号“１”の位置に「冷蔵庫」が出現することを示している。
【００３６】
一方、助詞に対応するビット列の論理値“１”は、名詞とそれに続く助詞との組み合わせが存在することを示し、論理値“０”は、その組み合わせが存在しないことを示す。
【００３７】
例えば、「が」に対応するビット列において、文書１の番号“０”の位置に格納された論理値“１”は、文書１内の番号“０”の位置に、名詞と「が」の組み合わせが出現することを示している。また、「の」に対応するビット列において、文書１の番号“１”の位置に格納された論理値“１”は、文書１内の番号“１”の位置に、名詞と「の」の組み合わせが出現することを示している。
【００３８】
図７は、図５のインデックス生成装置１０１が行うインデックス生成処理の第１の具体例を示すフローチャートである。まず、抽出部１１１は、文書情報５１１に対する形態素解析を行って、文書情報５１１から形態素を抽出し、解析結果５１２を生成する（ステップ７０１）。
【００３９】
次に、生成部１１２は、解析結果５１２に基づいて、助詞以外の各形態素に対応するビット列を生成する（ステップ７０２）。このとき、生成部１１２は、各形態素に対応するビット列において、その形態素の出現位置に対応する１つ以上の位置に論理値“１”を書き込み、それ以外の位置に論理値“０”を書き込む。
【００４０】
次に、生成部１１２は、解析結果５１２に基づいて、各助詞に対応するビット列を生成する（ステップ７０３）。このとき、生成部１１２は、各助詞に対応するビット列において、その助詞の出現位置に対応する１つ以上の位置に論理値“１”を書き込み、それ以外の位置に論理値“０”を書き込む。
【００４１】
図８は、図７のステップ７０３における第１のビット列生成処理の例を示すフローチャートである。まず、生成部１１２は、解析結果５１２に含まれる複数の形態素ＩＤの中から１つの形態素ＩＤを選択し（ステップ８０１）、その形態素ＩＤが示す形態素が名詞であるか否かをチェックする（ステップ８０２）。
【００４２】
形態素ＩＤが示す形態素が名詞である場合（ステップ８０２，ＹＥＳ）、生成部１１２は、その名詞に続く助詞を特定し（ステップ８０３）、特定した助詞に対応するビット列がインデックス情報３２１に存在するか否かをチェックする（ステップ８０４）。
【００４３】
助詞に対応するビット列が存在する場合（ステップ８０４，ＹＥＳ）、生成部１１２は、そのビット列において、助詞の出現位置に対応する位置に論理値“１”を書き込む（ステップ８０５）。一方、助詞に対応するビット列が存在しない場合（ステップ８０４，ＮＯ）、生成部１１２は、その助詞に対応するビット列を生成する（ステップ８０７）。
【００４４】
次に、生成部１１２は、解析結果５１２に含まれるすべての形態素ＩＤを選択したか否かをチェックする（ステップ８０６）。未選択の形態素ＩＤが残っている場合（ステップ８０６，ＮＯ）、生成部１１２は、ステップ８０１以降の処理を繰り返す。これにより、複数の助詞それぞれに対応するビット列が生成される。
【００４５】
形態素ＩＤが示す形態素が名詞ではない場合（ステップ８０２，ＮＯ）、生成部１１２は、ステップ８０６以降の処理を行う。そして、すべての形態素ＩＤを選択した場合（ステップ８０６，ＹＥＳ）、生成部１１２は、処理を終了する。
【００４６】
図７のインデックス生成処理によれば、各形態素に対応するビット列において、形態素の出現位置に対応する位置に論理値“１”を書き込むだけで、インデックス情報３２１が生成される。
【００４７】
また、Ｎ個の形態素を含む文書のインデックス情報３２１を生成する場合、インデックス情報３２１のサイズはＮのオーダーになる。このため、文書の意味構造を表すＮ×Ｎのオーダーのインデックスと比較して、インデックス情報３２１の格納領域を削減することができる。
【００４８】
図９は、図３のデータ検索装置３０１の具体例を示している。図９のデータ検索装置３０１は、記憶部３１１、受付部３１２、演算部３１３、出力部３１４、及び抽出部９０１を含む。記憶部３１１は、文書情報５１１から生成されたインデックス情報３２１を記憶する。
【００４９】
受付部３１２は、文書情報５１１に対する検索文字列９１１を、ユーザまたは外部の装置から受け付けて、記憶部３１１に格納する。抽出部９０１は、検索文字列９１１に対する形態素解析を行って、検索文字列９１１に含まれる検索形態素を抽出し、抽出した検索形態素を示す解析結果９１２を生成して、記憶部３１１に格納する。解析結果９１２は、検索形態素を示す形態素ＩＤと、その検索形態素の意味属性を示す属性情報とを含む。
【００５０】
演算部３１３は、解析結果９１２を用いて、インデックス情報３２１に含まれる複数のビット列の間の論理演算を行う。そして、演算部３１３は、論理演算の結果に基づいて、検索文字列９１１の検索結果９１３を生成し、記憶部３１１に格納する。出力部３１４は、検索結果９１３を出力する。検索結果９１３は、文書情報５１１内における検索文字列９１１または検索形態素の出現位置を示す情報を含む。
【００５１】
図１０は、図９のデータ検索装置３０１が行うデータ検索処理の第１の具体例を示すフローチャートである。まず、受付部３１２は、検索文字列９１１を受け付け（ステップ１００１）、抽出部９０１は、検索文字列９１１に対する形態素解析を行って、解析結果９１２を生成する（ステップ１００２）。
【００５２】
例えば、「ケーキが冷蔵庫にある。」という文が検索文字列９１１としてデータ検索装置３０１に入力された場合、助詞以外の形態素である「ケーキ」、「冷蔵庫」、及び「ある」が検索形態素として抽出される。そして、それぞれの検索形態素を示す形態素ＩＤを含む解析結果９１２が生成される。この場合、解析結果９１２は、「ケーキ」の属性情報として、「ケーキ」に続く助詞である「が」を示す形態素ＩＤを含み、「冷蔵庫」の属性情報として、「冷蔵庫」に続く助詞である「に」を示す形態素ＩＤを含む。
【００５３】
さらに、検索文字列９１１は、名詞に続く助詞のバリエーションを指定する情報を含むこともある。例えば、「が」、「は」、及び「も」の３つの助詞を、「ケーキ」の同じ意味属性として扱う場合、検索文字列９１１に含まれる「が」のバリエーションとして、「は」及び「も」が指定される。この場合、解析結果９１２は、「は」及び「も」を示す形態素ＩＤを、「ケーキ」の属性情報のバリエーションとして含む。
【００５４】
次に、演算部３１３は、解析結果９１２に含まれる複数の形態素ＩＤの中から１つの形態素ＩＤを選択し（ステップ１００３）、その形態素ＩＤが示す検索形態素の属性情報が存在するか否かをチェックする（ステップ１００４）。
【００５５】
属性情報が存在する場合（ステップ１００４，ＹＥＳ）、演算部３１３は、その属性情報のバリエーションが存在するか否かをチェックする（ステップ１００５）。属性情報のバリエーションが存在しない場合（ステップ１００５，ＮＯ）、演算部３１３は、検索形態素に対応するビット列と属性情報に対応するビット列とのＡＮＤ演算を行って、検索形態素の出現位置を絞り込む（ステップ１００６）。このとき、演算部３１３は、それぞれのビット列の同じ位置に格納された２つの論理値の論理積を求め、求めた論理積を別のビット列の同じ位置に書き込むことで、演算結果を示すビット列を生成する。
【００５６】
演算結果を示すビット列において、論理値“１”は、検索文字列９１１における検索形態素が、文書情報５１１内に存在することを示している。また、論理値“１”が格納された位置は、文書情報５１１内におけるその検索形態素の出現位置を示している。
【００５７】
一方、属性情報のバリエーションが存在する場合（ステップ１００５，ＹＥＳ）、演算部３１３は、複数の属性情報それぞれに対応するビット列のＯＲ演算を行って、検索形態素の検索範囲を拡張する（ステップ１０１１）。このとき、演算部３１３は、それぞれのビット列の同じ位置に格納された２つの論理値の論理和を求め、求めた論理和を別のビット列の同じ位置に書き込むことで、演算結果を示すビット列を生成する。そして、演算部３１３は、演算結果を示すビット列を属性情報に対応するビット列として用いて、ステップ１００６の処理を行う。
【００５８】
図１１は、「ケーキ」の属性情報に対応するビット列のＯＲ演算の例を示している。この例は、解析結果９１２に含まれる「ケーキ」の属性情報が、「ケーキ」に続く助詞である「が」を示しており、「が」のバリエーションとして「は」及び「も」が含まれている場合に対応する。この場合、図６のインデックス情報３２１に含まれる「が」、「は」、及び「も」の３つのビット列のＯＲ演算が行われ、「がｏｒはｏｒも」のビット列１１０１が生成される。
【００５９】
図１２は、「ケーキ」のビット列と、「ケーキ」の属性情報のビット列との第１のＡＮＤ演算の例を示している。図６のインデックス情報３２１に含まれる「ケーキ」のビット列１２０１と、図１１のビット列１１０１とのＡＮＤ演算が行われ、ＡＮＤ演算結果のビット列１２０２が生成される。
【００６０】
ビット列１２０２において、文書１の番号“０”の位置に格納された論理値“１”は、文書１内の番号“０”の位置に、「ケーキ」とそれに続く「が」、「は」、または「も」との組み合わせが出現することを示している。また、文書２の番号“０”の位置に格納された論理値“１”は、文書２内の番号“０”の位置に、「ケーキ」とそれに続く「が」、「は」、または「も」との組み合わせが出現することを示している。
【００６１】
図１３は、「冷蔵庫」のビット列と、「冷蔵庫」の属性情報のビット列との第２のＡＮＤ演算の例を示している。図６のインデックス情報３２１に含まれる「冷蔵庫」のビット列１３０１と、「冷蔵庫」の属性情報である「に」のビット列１３０２とのＡＮＤ演算が行われ、ＡＮＤ演算結果のビット列１３０３が生成される。
【００６２】
ビット列１３０３において、文書２の番号“１”の位置に格納された論理値“１”は、文書２内の番号“１”の位置に、「冷蔵庫」と、それに続く「に」との組み合わせが出現することを示している。
【００６３】
次に、演算部３１３は、ＡＮＤ演算結果のビット列を用いて、各検索形態素が出現する文書を示すビット列を生成する（ステップ１００７）。例えば、演算部３１３は、文書情報５１１に含まれる文書の総数をビット長とするビット列を用意し、ＡＮＤ演算結果のビット列の論理値“１”に対応する文書の位置に論理値“１”を書き込むことで、その検索形態素が出現する文書を示すビット列を生成する。
【００６４】
属性情報が存在しない場合（ステップ１００４，ＮＯ）、演算部３１３は、ＡＮＤ演算結果のビット列の代わりに、検索形態素に対応するビット列を用いて、ステップ１００７の処理を行う。
【００６５】
図１４は、「ある」のビット列の例を示している。「ある」のビット列１４０１は、図６のインデックス情報３２１に含まれる「ある」のビット列と同一である。「ある」の属性情報は存在しないため、ビット列１４０１そのものを用いて、「ある」が出現する文書を示すビット列が生成される。
【００６６】
次に、演算部３１３は、解析結果９１２に含まれるすべての形態素ＩＤを選択したか否かをチェックする（ステップ１００８）。未選択の形態素ＩＤが残っている場合（ステップ１００８，ＮＯ）、演算部３１３は、ステップ１００３以降の処理を繰り返す。これにより、検索文字列９１１に含まれるそれぞれの検索形態素が、対応する属性情報を伴って出現する文書を示すビット列が生成される。
【００６７】
次に、演算部３１３は、それぞれの検索形態素が出現する文書を示すビット列のＡＮＤ演算を行って、すべての検索形態素が出現する文書を示すビット列を生成する（ステップ１００９）。
【００６８】
図１５は、検索形態素が出現する文書を示すビット列の第３のＡＮＤ演算の例を示している。図１２のＡＮＤ演算結果のビット列１２０２から、「ケーキ」が出現する文書を示すビット列１５０１が生成され、図１３のＡＮＤ演算結果のビット列１３０３から、「冷蔵庫」が出現する文書を示すビット列１５０２が生成される。また、図１４の「ある」のビット列１４０１から、「ある」が出現する文書を示すビット列１５０３が生成される。
【００６９】
そして、ビット列１５０１〜ビット列１５０３のＡＮＤ演算によって、ＡＮＤ演算結果のビット列１５０４が生成される。ビット列１５０４の文書２の位置に格納された論理値“１”は、検索文字列９１１に含まれる「ケーキ」、「冷蔵庫」、及び「ある」が文書２に出現し、「ケーキ」及び「冷蔵庫」は、それぞれに対応する属性情報を伴っていることを示している。
【００７０】
次に、演算部３１３は、ステップ１００９で生成したビット列に基づいて、検索結果９１３を生成し、出力部３１４は、検索結果９１３を出力する（ステップ１０１０）。検索結果９１３は、検索文字列９１１に含まれるすべての検索形態素が、対応する属性情報を伴って出現する文書を示している。したがって、検索結果９１３に含まれる文書は、検索文字列９１１と類似する意味を持つ文を含んでいる可能性が高い。
【００７１】
図１０のデータ検索処理によれば、インデックス情報３２１に含まれる複数のビット列の間の論理演算によって、検索文字列９１１に含まれる検索形態素とその属性情報とを一括して検索することができる。これにより、意味解析を行わなくても、検索文字列９１１の意味をある程度反映した検索処理が実現される。
【００７２】
また、文書情報５１１と検索文字列９１１との照合を行う必要がなく、インデックス情報３２１に対する論理演算のみで検索結果９１３が得られるため、データ検索処理が高速化される。
【００７３】
文書情報５１１が英語、フランス語等の文書である場合、上記（ａ）の属性情報として、前置詞を示す形態素ＩＤを用いてもよい。前置詞は、後続する名詞の意味的役割をある程度表しているため、前置詞の情報を用いて意味的な絞込み検索を行うことが可能である。
【００７４】
次に、前述した（ｂ）の属性情報を用いたインデックス生成処理及びデータ検索処理について説明する。（ｂ）の属性情報としては、例えば、文書情報５１１に対する意味解析によって得られる意味構造において、２つの形態素それぞれに対応する２つのノードの間のアークが表す係り受け関係を用いることができる。形態素間の係り受け関係を用いることで、意味的な絞込み検索を行うことが可能である。
【００７５】
例えば、複数の文書を含む文書情報５１１に対して、「彼はケーキが好きだ。」という検索文字列を用いて類似文書検索を行う場合、検索文字列は、「彼」、「は」、「ケーキ」、「が」、「好き」、及び「だ」の６つの形態素に分割される。この場合、助詞「が」の直前に存在する名詞「ケーキ」が、「好き」の対象物である。また、助詞「は」の直前に存在する代名詞「彼」が、「好き」の動作主である。そこで、これらの係り受け関係に基づいて検索キーを生成することを考える。
【００７６】
図１６は、「彼はケーキが好きだ。」という検索文字列の意味構造の例を示している。図１６の意味構造は、「彼」、「ケーキ」、及び「好き」それぞれに対応する３つのノードを含む。
【００７７】
このうち、「好き」と「ケーキ」の間のアークは、対象物（ＯＢＪ）という係り受け関係を表し、「好き」が係り元であり、「ケーキ」が係り先であることを示している。また、「好き」と「彼」の間のアークは、動作主（ＡＧＥＮＴ）という係り受け関係を表し、「好き」が係り元であり、「彼」が係り先であることを示している。そこで、図１６の意味構造から、次のような検索条件Ａを生成することができる。
検索条件Ａ
検索形態素：「彼」，「ケーキ」，「好き」
意味情報：「ケーキ」は“ＯＢＪ”の係り先，
「好き」は“ＯＢＪ”の係り元，
「彼」は“ＡＧＥＮＴ”の係り先，
「好き」は“ＡＧＥＮＴ”の係り元
【００７８】
検索条件Ａを満たす文は、図１６の意味構造を有する文である可能性が非常に高い。したがって、図１６の意味構造の代わりに、検索条件Ａを検索キーとして用いることができる。検索条件Ａからは、次のような検索キーが生成される。
検索キー：「彼」ＡＮＤ「ケーキ」ＡＮＤ「好き」ＡＮＤ「ケーキの属性＝（ＯＢＪの係り先）」ＡＮＤ「好きの属性＝（ＯＢＪの係り元）」ＡＮＤ「彼の属性＝（ＡＧＥＮＴの係り先）」ＡＮＤ「好きの属性＝（ＡＧＥＮＴの係り元）」
このように、形態素間の係り受け関係の情報を検索キーに付加して文書情報５１１を検索することで、検索結果を適切に絞り込むことができる。
【００７９】
図１７は、係り受け関係を示す属性情報を含むインデックス情報３２１の例を示している。図１７のインデックス情報３２１は、図１６と同じ意味構造を有する文を含む文書の文書情報５１１から生成される。形態素／属性情報は、文書に含まれる形態素の形態素ＩＤと、その形態素の属性情報とを表す。例えば、「彼」、「好き」、及び「ケーキ」は、形態素であり、「ＯＢＪ係り元」、「ＯＢＪ係り先」、「ＡＧＥＮＴ係り元」、及び「ＡＧＥＮＴ係り先」は、属性情報である。
【００８０】
「ＯＢＪ係り元」は、“ＯＢＪ”という係り受け関係の係り元であることを表し、「ＯＢＪ係り先」は、その係り受け関係の係り先であることを表す。「ＡＧＥＮＴ係り元」は、“ＡＧＥＮＴ”という係り受け関係の係り元であることを表し、「ＡＧＥＮＴ係り先」は、その係り受け関係の係り先であることを表す。
【００８１】
オフセットは、文書情報５１１内における各形態素の出現位置を表す。この例では、オフセットとして、文書内における形態素の出現位置を示す番号が用いられている。
【００８２】
図１７のインデックス情報３２１は、形態素に対応するビット列と、属性情報に対応するビット列とを含む。形態素に対応するビット列の論理値“１”は、その形態素が存在することを示し、論理値“０”は、その形態素が存在しないことを示す。一方、属性情報に対応するビット列の論理値“１”は、その属性情報を有する形態素が存在することを示し、論理値“０”は、その属性情報を有する形態素が存在しないことを示す。
【００８３】
例えば、「ＯＢＪ係り元」に対応するビット列において、番号“１”の位置に格納された論理値“１”は、文書内の番号“１”の位置に、「ＯＢＪ係り元」である形態素が出現することを示している。「ＯＢＪ係り先」に対応するビット列において、番号“２”の位置に格納された論理値“１”は、文書内の番号“２”の位置に、「ＯＢＪ係り先」である形態素が出現することを示している。
【００８４】
図１８は、図５のインデックス生成装置１０１が行うインデックス生成処理の第２の具体例を示すフローチャートである。このインデックス生成処理では、係り受け関係を示す属性情報を含むインデックス情報３２１が生成される。
【００８５】
まず、抽出部１１１は、文書情報５１１に対する形態素解析を行って、文書情報５１１から形態素を抽出し（ステップ１８０１）、文書情報５１１に対する意味解析（係り受け解析）を行って、文書情報５１１の意味構造を求める（ステップ１８０２）。そして、抽出部１１１は、抽出した形態素を示す形態素ＩＤと意味構造とを含む解析結果５１２を生成する。
【００８６】
次に、生成部１１２は、図７のステップ７０２と同様に、解析結果５１２に基づいて、各形態素に対応するビット列を生成する（ステップ１８０３）。次に、生成部１１２は、解析結果５１２に基づいて、各属性情報に対応するビット列を生成する（ステップ１８０４）。このとき、生成部１１２は、各属性情報に対応するビット列において、その属性情報を有する形態素の出現位置に対応する、１つ以上の位置に論理値“１”を書き込み、それ以外の位置に論理値“０”を書き込む。
【００８７】
図１９は、図１８のステップ１８０４における第２のビット列生成処理の例を示すフローチャートである。まず、生成部１１２は、解析結果５１２の意味構造に含まれる複数の意味最小単位の中から１つの意味最小単位を選択する（ステップ１９０１）。
【００８８】
次に、生成部１１２は、その意味最小単位のアークが表す係り受け関係を抽出し、係り受け関係と係り元の組み合わせを１つの属性情報に決定し、係り受け関係と係り先の組み合わせをもう１つの属性情報に決定する。そして、生成部１１２は、それらの２つの属性情報に対応するビット列が、インデックス情報３２１に存在するか否かをチェックする（ステップ１９０２）。
【００８９】
２つの属性情報に対応するビット列が存在する場合（ステップ１９０２，ＹＥＳ）、生成部１１２は、各ビット列において、その属性情報を有する形態素の出現位置に対応する位置に論理値“１”を書き込む（ステップ１９０３）。一方、２つの属性情報に対応するビット列が存在しない場合（ステップ１９０２，ＮＯ）、生成部１１２は、それらの属性情報に対応するビット列を生成する（ステップ１９０５）。
【００９０】
次に、生成部１１２は、意味構造に含まれるすべての意味最小単位を選択したか否かをチェックする（ステップ１９０４）。未選択の意味最小単位が残っている場合（ステップ１９０４，ＮＯ）、生成部１１２は、ステップ１９０１以降の処理を繰り返す。これにより、複数の属性情報それぞれに対応するビット列が生成される。そして、すべての意味最小単位を選択した場合（ステップ１９０４，ＹＥＳ）、生成部１１２は、処理を終了する。
【００９１】
図１８のインデックス生成処理によれば、各形態素に対応するビット列及び各属性情報に対応するビット列において、形態素の出現位置に対応する位置に論理値“１”を書き込むだけで、インデックス情報３２１が生成される。
【００９２】
また、Ｎ個の形態素を含む文書のインデックス情報３２１を生成する場合、インデックス情報３２１のサイズはＮのオーダーになる。このため、文書の意味構造を表すＮ×Ｎのオーダーのインデックスと比較して、インデックス情報３２１の格納領域を削減することができる。
【００９３】
図２０は、図９のデータ検索装置３０１が行うデータ検索処理の第２の具体例を示すフローチャートである。このデータ検索処理では、係り受け関係を示す属性情報を含むインデックス情報３２１を用いて、文書情報５１１から検索文字列が検索される。
【００９４】
まず、受付部３１２は、検索文字列９１１を受け付け（ステップ２００１）、抽出部９０１は、検索文字列９１１に対する形態素解析を行って、検索文字列９１１から検索形態素を抽出し（ステップ２００２）、検索文字列９１１に対する意味解析を行って、検索文字列９１１の意味構造を求める（ステップ２００３）。そして、抽出部９０１は、抽出した検索形態素を示す形態素ＩＤと意味構造とを含む解析結果９１２を生成する。
【００９５】
例えば、「彼はケーキが好きだ。」という文が検索文字列９１１としてデータ検索装置３０１に入力された場合、「彼」、「ケーキ」、及び「好き」が検索形態素として抽出される。そして、それぞれの検索形態素を示す形態素ＩＤを含む解析結果９１２が生成される。この場合、解析結果９１２は、図１６に示した意味構造を属性情報として含む。
【００９６】
次に、演算部３１３は、解析結果９１２に含まれる複数の形態素ＩＤの中から１つの形態素ＩＤを選択し（ステップ２００４）、その形態素ＩＤが示す検索形態素の属性情報が存在するか否かをチェックする（ステップ２００５）。
【００９７】
属性情報が存在する場合（ステップ２００５，ＹＥＳ）、演算部３１３は、検索形態素に対応するビット列と属性情報に対応するビット列とのＡＮＤ演算を行って、検索形態素の出現位置を絞り込む（ステップ２００６）。
【００９８】
図２１は、「彼」のビット列と、「彼」の属性情報のビット列との第４のＡＮＤ演算の例を示している。図１７のインデックス情報３２１に含まれる「彼」のビット列２１０１と、「ＡＧＥＮＴ係り先」のビット列２１０２とのＡＮＤ演算が行われ、ＡＮＤ演算結果のビット列２１０３が生成される。ビット列２１０３において、番号“０”の位置に格納された論理値“１”は、文書内の番号“０”の位置に、「ＡＧＥＮＴ係り先」である「彼」が出現することを示している。
【００９９】
次に、演算部３１３は、ＡＮＤ演算結果のビット列を用いて、各検索形態素が出現する文書を示すビット列を生成する（ステップ２００７）。例えば、文書情報５１１が複数の文書を含んでいる場合、演算部３１３は、文書の総数をビット長とするビット列を用意し、ＡＮＤ演算結果のビット列の論理値“１”に対応する文書の位置に論理値“１”を書き込むことで、その検索形態素が出現する文書を示すビット列を生成する。
【０１００】
属性情報が存在しない場合（ステップ２００５，ＮＯ）、演算部３１３は、ＡＮＤ演算結果のビット列の代わりに、検索形態素に対応するビット列を用いて、ステップ２００７の処理を行う。
【０１０１】
次に、演算部３１３は、解析結果９１２に含まれるすべての形態素ＩＤを選択したか否かをチェックする（ステップ２００８）。未選択の形態素ＩＤが残っている場合（ステップ２００８，ＮＯ）、演算部３１３は、ステップ２００４以降の処理を繰り返す。これにより、検索文字列９１１に含まれるそれぞれの検索形態素が、対応する属性情報を伴って出現する文書を示すビット列が生成される。
【０１０２】
図２２は、「ケーキ」のビット列と、「ケーキ」の属性情報のビット列との第５のＡＮＤ演算の例を示している。図１７のインデックス情報３２１に含まれる「ケーキ」のビット列２２０１と、「ＯＢＪ係り先」のビット列２２０２とのＡＮＤ演算が行われ、ＡＮＤ演算結果のビット列２２０３が生成される。ビット列２２０３において、番号“２”の位置に格納された論理値“１”は、文書内の番号“２”の位置に、「ＯＢＪ係り先」である「ケーキ」が出現することを示している。
【０１０３】
図２３は、「好き」のビット列と、「好き」の属性情報のビット列との第６のＡＮＤ演算の例を示している。図１７のインデックス情報３２１に含まれる「好き」のビット列２３０１と、「ＯＢＪ係り元」のビット列２３０２と、「ＡＧＥＮＴ係り元」のビット列２３０３とのＡＮＤ演算が行われ、ＡＮＤ演算結果のビット列２３０４が生成される。ビット列２３０４において、番号“１”の位置に格納された論理値“１”は、文書内の番号“１”の位置に、「ＯＢＪ係り元」及び「ＡＧＥＮＴ係り元」である「好き」が出現することを示している。
【０１０４】
次に、演算部３１３は、それぞれの検索形態素が出現する文書を示すビット列のＡＮＤ演算を行って、すべての検索形態素が出現する文書を示すビット列を生成する（ステップ２００９）。
【０１０５】
図２４は、検索形態素が出現する文書を示すビット列の第７のＡＮＤ演算の例を示している。文書１１〜文書１３を含む複数の文書の文書情報５１１から、図１７のインデックス情報３２１が生成された場合、各検索形態素が出現する文書を示すビット列において、それぞれの文書に対応する位置に論理値“１”または論理値“０”が格納される。図２１〜図２３に示したビット列は、文書１１に含まれる形態素の情報を表している。
【０１０６】
「彼」が出現する文書を示すビット列２４０１は、図２１のＡＮＤ演算結果のビット列２１０３に基づいて生成され、文書１１の位置に論理値“１”が格納される。「ケーキ」が出現する文書を示すビット列２４０２は、図２２のＡＮＤ演算結果のビット列２２０３に基づいて生成され、文書１１の位置に論理値“１”が格納される。
【０１０７】
「好き」が出現する文書を示すビット列２４０３は、図２３のＡＮＤ演算結果のビット列２３０４に基づいて生成され、文書１１の位置に論理値“１”が格納される。ビット列２４０３の文書１３の位置にも、論理値“１”が格納されている。
【０１０８】
そして、ビット列２４０１〜ビット列２４０３のＡＮＤ演算によって、ＡＮＤ演算結果のビット列２４０４が生成される。ビット列２４０４の文書１１の位置に格納された論理値“１”は、検索文字列９１１に含まれる「彼」、「ケーキ」、及び「好き」が、それぞれに対応する属性情報を伴って文書１１に出現することを示している。
【０１０９】
次に、演算部３１３は、ステップ２００９で生成したビット列に基づいて、検索結果９１３を生成し、出力部３１４は、検索結果９１３を出力する（ステップ２０１０）。
【０１１０】
図２０のデータ検索処理によれば、図１０のデータ検索処理と同様に、検索文字列９１１に含まれる検索形態素とその属性情報とを一括して検索することができる。これにより、意味構造同士を比較しなくても、検索文字列９１１の意味をある程度反映した検索処理が実現される。
【０１１１】
また、文書情報５１１と検索文字列９１１との照合を行う必要がなく、インデックス情報３２１に対する論理演算のみで検索結果９１３が得られるため、データ検索処理が高速化される。
【０１１２】
図１７のインデックス情報３２１において、係り受け関係と係り元または係り先との組み合わせを属性情報として用いる代わりに、係り受け関係を示す情報のみを属性情報として用いてもよい。また、係り元または係り先を示す情報のみを属性情報として用いてもよい。
【０１１３】
ところで、図１０及び図２０のデータ検索処理は高速であるが、文書情報５１１の意味構造と検索文字列９１１の意味構造とを直接比較していないため、検索文字列９１１の意味とは異なる文書が検索結果９１３に含まれることもある。そこで、得られた検索結果９１３が示す文書の意味構造と検索文字列９１１の意味構造とを比較する検証処理を行ってもよい。検証処理を行うことで、検索精度がさらに向上する。
【０１１４】
図６または図１７のインデックス情報３２１において、各ビット列の長さは、文書情報５１１に含まれる形態素の総数に比例して長くなるが、文書情報５１１内に出現する同じ形態素の個数は、形態素の総数よりもはるかに少ない。このため、各ビット列に含まれる論理値の多くは“０”であり、論理値“１”の個数は、論理値“０”の個数よりも少なくなる。
【０１１５】
そこで、ビット列において各論理値が格納されているアドレスを適当な除数により除算することで、ビット列をハッシュ化することができる。ハッシュ化したビット列を格納するレジスタのビット数を超えない素数のうち最大の素数を除数として用いることで、ハッシュ化したビット列から元のビット列を復元することも可能である。このようなハッシュ化方法としては、例えば、先願である特願２０１６−０８３２４３号に記載された方法を用いることができる。
【０１１６】
図１及び図５のインデックス生成装置１０１の構成は一例に過ぎず、インデックス生成装置１０１の用途または条件に応じて、一部の構成要素を省略または変更してもよい。
【０１１７】
図３及び図９のデータ検索装置３０１の構成は一例に過ぎず、データ検索装置３０１の用途または条件に応じて、一部の構成要素を省略または変更してもよい。データ検索装置３０１に、抽出部１１１及び生成部１１２を追加して、データ検索装置３０１内でインデックス生成処理を行ってもよい。
【０１１８】
図２、図４、図７、図８、図１０、及び図１８〜図２０のフローチャートは一例に過ぎず、インデックス生成装置１０１またはデータ検索装置３０１の構成または条件に応じて一部の処理を省略または変更してもよい。
【０１１９】
図６及び図１７のインデックス情報、図１１〜図１５及び図２１〜図２４のビット列、及び図１６の意味構造は一例に過ぎない。文書情報及び検索文字列は、インデックス生成装置１０１またはデータ検索装置３０１の用途に応じて変化し、インデックス情報、演算結果、意味構造は、文書情報及び検索文字列に応じて変化する。文書情報及び検索文字列の言語は、日本語以外の言語であってもよい。意味構造のアークが表す係り受け関係は、対象物及び動作主以外の関係であってもよい。
【０１２０】
図２５は、図１及び図５のインデックス生成装置１０１、または図３及び図９のデータ検索装置３０１として用いられる情報処理装置（コンピュータ）の構成例を示している。図２５の情報処理装置は、ＣＰＵ２５０１、メモリ２５０２、入力装置２５０３、出力装置２５０４、補助記憶装置２５０５、媒体駆動装置２５０６、及びネットワーク接続装置２５０７を備える。これらの構成要素はバス２５０８により互いに接続されている。
【０１２１】
メモリ２５０２は、例えば、Read Only Memory（ＲＯＭ）、Random Access Memory（ＲＡＭ）、フラッシュメモリ等の半導体メモリであり、処理に用いられるプログラム及びデータを格納する。メモリ２５０２は、図３及び図９の記憶部３１１、または図５の記憶部５０１として用いることができる。
【０１２２】
情報処理装置がインデックス生成装置１０１である場合、ＣＰＵ２５０１（プロセッサ）は、例えば、メモリ２５０２を利用してプログラムを実行することにより、図１及び図５の抽出部１１１及び生成部１１２として動作する。
【０１２３】
情報処理装置がデータ検索装置３０１である場合、ＣＰＵ２５０１は、例えば、メモリ２５０２を利用してプログラムを実行することにより、図３及び図９の受付部３１２、演算部３１３、及び図９の抽出部９０１として動作する。
【０１２４】
入力装置２５０３は、例えば、キーボード、ポインティングデバイス等であり、オペレータまたはユーザからの指示及び情報の入力に用いられる。入力される情報は、検索文字列９１１であってもよい。
【０１２５】
出力装置２５０４は、例えば、表示装置、プリンタ、スピーカ等であり、オペレータまたはユーザへの問い合わせまたは指示、及び処理結果の出力に用いられる。出力装置２５０４は、図３及び図９の出力部３１４として用いることができる。処理結果は、検索結果９１３であってもよい。
【０１２６】
補助記憶装置２５０５は、例えば、磁気ディスク装置、光ディスク装置、光磁気ディスク装置、テープ装置等である。補助記憶装置２５０５は、ハードディスクドライブまたはフラッシュメモリであってもよい。情報処理装置は、補助記憶装置２５０５にプログラム及びデータを格納しておき、それらをメモリ２５０２にロードして使用することができる。補助記憶装置２５０５は、図３及び図９の記憶部３１１、または図５の記憶部５０１として用いることができる。
【０１２７】
媒体駆動装置２５０６は、可搬型記録媒体２５０９を駆動し、その記録内容にアクセスする。可搬型記録媒体２５０９は、メモリデバイス、フレキシブルディスク、光ディスク、光磁気ディスク等である。可搬型記録媒体２５０９は、Compact Disk Read Only Memory（ＣＤ−ＲＯＭ）、Digital Versatile Disk（ＤＶＤ）、Universal Serial Bus（ＵＳＢ）メモリ等であってもよい。オペレータまたはユーザは、この可搬型記録媒体２５０９にプログラム及びデータを格納しておき、それらをメモリ２５０２にロードして使用することができる。
【０１２８】
このように、処理に用いられるプログラム及びデータを格納するコンピュータ読み取り可能な記録媒体は、メモリ２５０２、補助記憶装置２５０５、または可搬型記録媒体２５０９のような、物理的な（非一時的な）記録媒体である。
【０１２９】
ネットワーク接続装置２５０７は、Local Area Network、Wide Area Network等の通信ネットワークに接続され、通信に伴うデータ変換を行う通信インタフェースである。情報処理装置は、プログラム及びデータを外部の装置からネットワーク接続装置２５０７を介して受け取り、それらをメモリ２５０２にロードして使用することができる。
【０１３０】
情報処理装置がインデックス生成装置１０１である場合、ネットワーク接続装置２５０７は、インデックス情報３２１をデータ検索装置３０１へ送信することができる。
【０１３１】
情報処理装置がデータ検索装置３０１である場合、ネットワーク接続装置２５０７は、ユーザ端末から検索文字列９１１を受信し、検索結果９１３をユーザ端末へ送信することができる。この場合、ネットワーク接続装置２５０７は、出力部３１４として用いられる。
【０１３２】
なお、情報処理装置が図２５のすべての構成要素を含む必要はなく、用途または条件に応じて一部の構成要素を省略することも可能である。例えば、情報処理装置がユーザ端末から通信ネットワーク経由で検索文字列９１１を受信する場合は、入力装置２５０３及び出力装置２５０４を省略してもよい。また、可搬型記録媒体２５０９または通信ネットワークを利用しない場合は、媒体駆動装置２５０６またはネットワーク接続装置２５０７を省略してもよい。
【０１３３】
情報処理装置がスマートフォンのような通話機能を有する携帯端末である場合、マイク及びスピーカのような通話用の装置を含んでいてもよく、カメラのような撮像装置を含んでいてもよい。
【０１３４】
開示の実施形態とその利点について詳しく説明したが、当業者は、特許請求の範囲に明確に記載した本発明の範囲から逸脱することなく、様々な変更、追加、省略をすることができるであろう。
【０１３５】
図１乃至図２５を参照しながら説明した実施形態に関し、さらに以下の付記を開示する。
（付記１）
文書情報から複数の形態素を抽出し、
前記複数の形態素それぞれについて、形態素を示す形態素情報と前記文書情報内における前記形態素の位置を示す位置情報とに対応付けられた、前記形態素の存在を示す第１論理値と、前記形態素の意味属性を示す属性情報と前記形態素の位置を示す位置情報とに対応付けられた、前記形態素の存在を示す第２論理値とを有する、インデックス情報を生成する、
処理をコンピュータに実行させるためのインデックス生成プログラム。
（付記２）
前記意味属性は、前記文書情報内における前記形態素情報が示す前記形態素と別の形態素との間の意味的関係を表すことを特徴とする付記１記載のインデックス生成プログラム。
（付記３）
前記属性情報は、前記文書情報内において前記形態素情報が示す前記形態素の前または後に存在し、前記意味的関係を表す形態素を示すことを特徴とする付記２記載のインデックス生成プログラム。
（付記４）
前記意味的関係を表す形態素は助詞であることを特徴とする付記３記載のインデックス生成プログラム。
（付記５）
前記属性情報は、前記文書情報の意味構造における前記形態素情報が示す前記形態素と前記別の形態素との間の係り受け関係を示す情報と、前記形態素情報が示す前記形態素が係り元または係り先のいずれであるかを示す情報とを含むことを特徴とする付記２記載のインデックス生成プログラム。
（付記６）
文書情報に対する検索文字列を受け付け、
前記文書情報に含まれる複数の形態素それぞれについて、形態素を示す形態素情報と前記文書情報内における前記形態素の位置を示す位置情報とに対応付けられた、前記形態素の存在を示す第１論理値と、前記形態素の意味属性を示す属性情報と前記形態素の位置を示す位置情報とに対応付けられた、前記形態素の存在を示す第２論理値とを有する、インデックス情報を参照し、
前記インデックス情報において、前記検索文字列に含まれる検索形態素に対応付けられた第３論理値と、前記検索形態素の意味属性に対応付けられた第４論理値とを用いて、論理演算を行い、
前記論理演算の結果に基づく前記検索文字列の検索結果を出力する、
処理をコンピュータに実行させるためのデータ検索プログラム。
（付記７）
文書情報から複数の形態素を抽出する抽出部と、
前記複数の形態素それぞれについて、形態素を示す形態素情報と前記文書情報内における前記形態素の位置を示す位置情報とに対応付けられた、前記形態素の存在を示す第１論理値と、前記形態素の意味属性を示す属性情報と前記形態素の位置を示す位置情報とに対応付けられた、前記形態素の存在を示す第２論理値とを有する、インデックス情報を生成する生成部と、
備えることを特徴とするインデックス生成装置。
（付記８）
前記意味属性は、前記文書情報内における前記形態素情報が示す前記形態素と別の形態素との間の意味的関係を表すことを特徴とする付記７記載のインデックス生成装置。
（付記９）
文書情報に含まれる複数の形態素それぞれについて、形態素を示す形態素情報と前記文書情報内における前記形態素の位置を示す位置情報とに対応付けられた、前記形態素の存在を示す第１論理値と、前記形態素の意味属性を示す属性情報と前記形態素の位置を示す位置情報とに対応付けられた、前記形態素の存在を示す第２論理値とを有する、インデックス情報を記憶する記憶部と、
前記文書情報に対する検索文字列を受け付ける受付部と、
前記インデックス情報において、前記検索文字列に含まれる検索形態素に対応付けられた第３論理値と、前記検索形態素の意味属性に対応付けられた第４論理値とを用いて、論理演算を行う演算部と、
前記論理演算の結果に基づく前記検索文字列の検索結果を出力する出力部と、
備えることを特徴とするデータ検索装置。
（付記１０）
コンピュータが、
文書情報から複数の形態素を抽出し、
前記複数の形態素それぞれについて、形態素を示す形態素情報と前記文書情報内における前記形態素の位置を示す位置情報とに対応付けられた、前記形態素の存在を示す第１論理値と、前記形態素の意味属性を示す属性情報と前記形態素の位置を示す位置情報とに対応付けられた、前記形態素の存在を示す第２論理値とを有する、インデックス情報を生成する、
ことを特徴とするインデックス生成方法。
（付記１１）
前記意味属性は、前記文書情報内における前記形態素情報が示す前記形態素と別の形態素との間の意味的関係を表すことを特徴とする付記１０記載のインデックス生成方法。
（付記１２）
コンピュータが、
文書情報に対する検索文字列を受け付け、
前記文書情報に含まれる複数の形態素それぞれについて、形態素を示す形態素情報と前記文書情報内における前記形態素の位置を示す位置情報とに対応付けられた、前記形態素の存在を示す第１論理値と、前記形態素の意味属性を示す属性情報と前記形態素の位置を示す位置情報とに対応付けられた、前記形態素の存在を示す第２論理値とを有する、インデックス情報を参照し、
前記インデックス情報において、前記検索文字列に含まれる検索形態素に対応付けられた第３論理値と、前記検索形態素の意味属性に対応付けられた第４論理値とを用いて、論理演算を行い、
前記論理演算の結果に基づく前記検索文字列の検索結果を出力する、
ことを特徴とするデータ検索方法。
【符号の説明】
【０１３６】
１０１  インデックス生成装置
１１１、９０１  抽出部
１１２  生成部
３０１  データ検索装置
３１１、５０１  記憶部
３１２  受付部
３１３  演算部
３１４  出力部
３２１  インデックス情報
５１１  文書情報
５１２、９１２  解析結果
９１１  検索文字列
９１３  検索結果
１１０１、１２０１、１２０２、１３０１〜１３０３、１４０１、１５０１〜１５０４、２１０１〜２１０３、２２０１〜２２０３、２３０１〜２３０４、２４０１〜２４０４  ビット列
２５０１  ＣＰＵ
２５０２  メモリ
２５０３  入力装置
２５０４  出力装置
２５０５  補助記憶装置
２５０６  媒体駆動装置
２５０７  ネットワーク接続装置
２５０８  バス
２５０９  可搬型記録媒体
【図１】
2018165875.tif 000003
【図２】
2018165875.tif 000004
【図３】
2018165875.tif 000005
【図４】
2018165875.tif 000006
【図５】
2018165875.tif 000007
【図６】
2018165875.tif 000008
【図７】
2018165875.tif 000009
【図８】
2018165875.tif 000010
【図９】
2018165875.tif 000011
【図１０】
2018165875.tif 000012
【図１１】
2018165875.tif 000013
【図１２】
2018165875.tif 000014
【図１３】
2018165875.tif 000015
【図１４】
2018165875.tif 000016
【図１５】
2018165875.tif 000017
【図１６】
2018165875.tif 000018
【図１７】
2018165875.tif 000019
【図１８】
2018165875.tif 000020
【図１９】
2018165875.tif 000021
【図２０】
2018165875.tif 000022
【図２１】
2018165875.tif 000023
【図２２】
2018165875.tif 000024
【図２３】
2018165875.tif 000025
【図２４】
2018165875.tif 000026
【図２５】
2018165875.tif 000027