(57)【要約】【課題】テキストデータに含まれる単語の属性を容易に特定すること。【解決手段】情報処理装置１００は、単語の指定を受け付け、テキストデータに含まれる単語それぞれのテキストデータにおける出現位置を該単語それぞれに対応付けた情報を参照して、指定された単語に対応付けられた出現位置を特定する。情報処理装置１００は、テキストデータに含まれる単語それぞれのテキストデータにおける出現位置での属性を該出現位置に対応付ける情報を参照して、特定した出現位置に対応付けられた属性を特定する。【選択図】図３
2019185491.tif 000002
【特許請求の範囲】
【請求項１】
単語の指定を受け付け、
テキストデータに含まれる単語それぞれの前記テキストデータにおける出現位置を該単語それぞれに対応付けた情報を参照して、指定された前記単語に対応付けられた出現位置を特定し、
前記テキストデータに含まれる単語それぞれの前記テキストデータにおける出現位置での属性を該出現位置に対応付ける情報を参照して、特定した前記出現位置に対応付けられた属性を特定する、
処理をコンピュータに実行させることを特徴とする特定プログラム。
【請求項２】
前記属性は、前記テキストデータに含まれる単語のうち、指定された前記単語に対して特定の関係を有する他の単語の出現位置であることを特徴とする請求項１に記載の特定プログラム。
【請求項３】
前記関係は、係り受けの関係であることを特徴とする請求項２に記載の特定プログラム。
【請求項４】
前記属性は、前記単語の品詞であることを特徴とする請求項１に記載の特定プログラム。
【請求項５】
前記属性は、前記テキストデータに含まれる文の要素のうち、いずれの要素に対応するかを示す情報であることを特徴とする請求項１に記載の特定プログラム。
【請求項６】
単語の指定を受け付け、
テキストデータに含まれる単語それぞれの前記テキストデータにおける出現位置での属性を、該出現位置と、該単語とに対応付けて記憶する記憶部を参照して、指定された前記単語の前記テキストデータにおける出現位置での属性を特定する、
処理をコンピュータに実行させることを特徴とする特定プログラム。
【請求項７】
テキストデータを受け付け、
受け付けた前記テキストデータを解析することで、前記テキストデータに含まれる第１の単語に対して特定の関係性を有する第２の単語をそれぞれ特定し、
前記テキストデータに含まれる前記第１の単語の出現位置と、前記第１の単語の出現位置を基準とする前記第２の単語の出現位置とを対応付けた情報を生成し、
前記第１の単語と前記第１の単語の出現位置とを対応付けた情報を生成する
処理をコンピュータに実行させることを特徴とする生成プログラム。
【請求項８】
前記テキストデータに含まれる前記第１の単語の出現位置と、前記第１の単語の出現位置を基準とする前記第２の単語の出現位置とを対応付けた情報を生成する処理は、前記第１の単語の出現位置と、前記第１の単語の品詞と、前記第１の単語に対応する文の要素とを更に対応付けることを特徴とする請求項７に記載の生成プログラム。
【請求項９】
前記テキストデータに含まれる前記第１の単語の出現位置と、前記第１の単語の出現位置を基準とする前記第２の単語の出現位置とを対応付けた情報は、０および１が並ぶビットマップであり、前記ビットマップを、所定の素数を基にしてハッシュ化する処理を更に実行することを特徴とする請求項７に記載の生成プログラム。
【請求項１０】
前記第１の単語と前記第１の単語の出現位置とを対応付けた情報は、０および１が並ぶビットマップであり、前記ビットマップを、所定の素数を基にしてハッシュ化する処理を更に実行することを特徴とする請求項７に記載の生成プログラム。
【請求項１１】
コンピュータが実行する特定方法であって、
単語の指定を受け付け、
テキストデータに含まれる単語それぞれの前記テキストデータにおける出現位置を該単語それぞれに対応付けた情報を参照して、指定された前記単語に対応付けられた出現位置を特定し、
前記テキストデータに含まれる単語それぞれの前記テキストデータにおける出現位置での属性を該出現位置に対応付ける情報を参照して、特定した前記出現位置に対応付けられた属性を特定する、
処理を実行することを特徴とする特定方法。
【請求項１２】
コンピュータが実行する特定方法であって、
単語の指定を受け付け、
テキストデータに含まれる単語それぞれの前記テキストデータにおける出現位置での属性を、該出現位置と、該単語とに対応付けて記憶する記憶部を参照して、指定された前記単語の前記テキストデータにおける出現位置での属性を特定する、
処理を実行することを特徴とする特定方法。
【請求項１３】
コンピュータが実行する生成方法であって、
テキストデータを受け付け、
受け付けた前記テキストデータを解析することで、前記テキストデータに含まれる第１の単語に対して特定の関係性を有する第２の単語をそれぞれ特定し、
前記テキストデータに含まれる前記第１の単語の出現位置と、前記第１の単語の出現位置を基準とする前記第２の単語の出現位置とを対応付けた情報を生成し、
前記第１の単語と前記第１の単語の出現位置とを対応付けた情報を生成する
処理を実行することを特徴とする生成方法。
【請求項１４】
単語の指定を受け付ける受付部と、
テキストデータに含まれる単語それぞれの前記テキストデータにおける出現位置を該単語それぞれに対応付けた情報を参照して、指定された前記単語に対応付けられた出現位置を特定する第１特定部と、
前記テキストデータに含まれる単語それぞれの前記テキストデータにおける出現位置での属性を該出現位置に対応付ける情報を参照して、特定した前記出現位置に対応付けられた属性を特定する第２特定部と
を有することを特徴とする情報処理装置。
【請求項１５】
テキストデータを受け付ける受付部と、
受け付けた前記テキストデータを解析することで、前記テキストデータに含まれる第１の単語に対して特定の関係性を有する第２の単語をそれぞれ特定し、前記テキストデータに含まれる前記第１の単語の出現位置と、前記第１の単語の出現位置を基準とする前記第２の単語の出現位置とを対応付けた情報を生成し、前記第１の単語と前記第１の単語の出現位置とを対応付けた情報を生成する生成部と
を有することを特徴とする情報処理装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、特定プログラム等に関する。
【背景技術】
【０００２】
従来、テキストデータに対して形態素解析に加え、構文解析と意味解析を実行し、テキストデータに含まれる各単語について、主語(S)・動詞(V)・目的語(O)・補語(C)や、単語同士の係り受け等の属性を特定し、その後の処理で利用している。たとえば、従来技術では、テキストデータに含まれる単語を単語コードに圧縮する場合に、上記の意味解析を実行し、単語に対応する属性を、単語コードの一部に格納することで、単語と属性との対応付けを行っている。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２００９−０８７３４７号公報
【特許文献２】特開平９−２１２５２３号公報
【特許文献３】特開２０１７−１９４７６２号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
しかしながら、上述した従来技術では、テキストデータに含まれる単語の属性を高速に特定することができないという問題がある。
【０００５】
１つの側面では、本発明は、テキストデータに含まれる単語の属性を特定する処理を高速化することができる特定プログラム、生成プログラム、特定方法、生成方法および情報処理装置を提供することを目的とする。
【課題を解決するための手段】
【０００６】
第１の案では、コンピュータに以下の処理を実行させる。コンピュータは、単語の指定を受け付け、テキストデータに含まれる単語それぞれのテキストデータにおける出現位置を該単語それぞれに対応付けた情報を参照して、指定された単語に対応付けられた出現位置を特定する。コンピュータは、テキストデータに含まれる単語それぞれのテキストデータにおける出現位置での属性を該出現位置に対応付ける情報を参照して、特定した出現位置に対応付けられた属性を特定する。
【発明の効果】
【０００７】
テキストデータに含まれる単語の属性を特定する処理を高速化できる。
【図面の簡単な説明】
【０００８】
【図１】図１は、本実施例に係る情報処理装置の処理の一例を説明するための図（１）である。
【図２】図２は、本実施例に係る情報処理装置の処理の一例を説明するための図（２）である。
【図３】図３は、本実施例に係る情報処理装置の構成を示す機能ブロック図である。
【図４】図４は、第２インデックスの横軸に配置される属性の一例を示す図である。
【図５Ａ】図５Ａは、第１インデックスをサイズ縮小する処理の一例を説明するための図である。
【図５Ｂ】図５Ｂは、第２インデックスをサイズ縮小する処理の一例を説明するための図である。
【図６Ａ】図６Ａは、第１インデックスを復元する処理の一例を説明するための図である。
【図６Ｂ】図６Ｂは、第２インデックスを復元する処理の一例を説明するための図である。
【図７】図７は、第１インデックスおよび第２インデックスを生成する処理を示すフローチャートである。
【図８】図８は、検索クエリを基にして単語の属性を特定する処理を示すフローチャートである。
【図９】図９は、情報処理装置と同様の機能を実現するコンピュータのハードウェア構成の一例を示す図である。
【発明を実施するための形態】
【０００９】
以下に、本願の開示する特定プログラム、生成プログラム、特定方法、生成方法および情報処理装置の実施例を図面に基づいて詳細に説明する。なお、この実施例によりこの発明が限定されるものではない。
【実施例】
【００１０】
図１および図２は、本実施例に係る情報処理装置の処理の一例を説明するための図である。図１に示すように、情報処理装置は、テキストデータ１４０ａを基にして、第１インデックス１４０ｃおよび第２インデックス１４０ｄを生成する。
【００１１】
テキストデータ１４０ａは、複数の単語を含む文章の情報である。たとえば、図１に示すテキストデータ１４０ａは「・・・Micky  eats  cheese  every  day.  It  is  his  favorate.・・・」を含む。図１に示すテキストデータ１４０ａは一例であり、他の文章の情報であってもよい。
【００１２】
情報処理装置は、テキストデータ１４０ａに対して字句解析を実行することで、テキストデータ１４０ａに含まれる各単語について、単語の「属性」を特定する。単語の属性は、「単語の品詞」と、「単語のＳＶＯＣ」と、「単語の係り受け」とを含む。単語の品詞は、名詞、代名詞、形容詞、動詞、副詞、前置詞、接続詞、感動詞等を含む。
【００１３】
単語のＳＶＯＣは、センテンスに含まれる各単語の要素を区別するための記号である。Ｓは、センテンスの主語を示す記号である。Ｖは、センテンスの動詞を示す記号である。Ｏは、センテンスの動詞の目的語を示す記号である。Ｃは、センテンスの補語を示す記号である。
【００１４】
たとえば、テキストデータ１４０ａのセンテンス「Micky  eats  cheese  every  day」において、主語（Ｓ）は「Micky」であり、動詞（Ｓ）は「eats」であり、目的語（Ｏ）は「cheese」である。テキストデータ１４０ａのセンテンス「It  is  his  favorate.」において、主語（Ｓ）は「It」であり、動詞（Ｓ）は「is」であり、補語（Ｃ）は「favorate」である。
【００１５】
単語の係り受けについて説明する。単語の係り受けを、係り受け元の単語と、係り受け先の単語で定義する。本実施例では一例として、センテンスに含まれる「主語」となる単語を、係り受け元の単語とし、「目的語」に対応する単語を、係り受け先の単語とする。たとえば、テキストデータ１４０ａのセンテンス「Micky  eats  cheese  every  day」において、単語「Micky」の係り受けの先の単語は「cheese」となる。
【００１６】
情報処理装置は、テキストデータ１４０ａの形態素解析、構文解析、意味解析の結果を基にして、第１インデックス１４０ｃおよび第２インデックス１４０ｄを生成する。
【００１７】
第１インデックス１４０ｃは、テキストデータ１４０ａに含まれる単語と、単語のオフセットとを対応付ける情報である。ここでは説明を省略するが、情報処理装置は、辞書情報を用いて、単語を単語ＩＤに変換（圧縮）するものとする。オフセットは、テキストデータ１４０ａに含まれる先頭の単語を始点とた、オフセットである。たとえば、センテンス「Micky  eats  cheese  every  day」が、テキストデータ１４０ａの先頭のセンテンスである場合には、「Micky」が先頭の単語となる。このため、「Micky」、「eats」、「cheese」、「every」、「day」のオフセットはそれぞれ「１」、「２」、「３」、「４」、「５」となる。
【００１８】
第１インデックス１４０ｃの横軸は、オフセットに対応する軸である。第１インデックス１４０ｃの縦軸は、単語ＩＤ（単語）に対応する軸である。情報処理装置は、各単語ＩＤにおいて、該当するインデックスの位置に、フラグ「１」を設定する。たとえば、「Micky」が、テキストデータ１４０ａのオフセット「１」に位置している場合には、情報処理装置は、単語「Micky」の単語ＩＤ「Ａ００１ｈ」の行１０ａと、オフセット「１」の列１０ｂとが交差する箇所にフラグ「１」を設定する。情報処理装置は、他の単語についても同様に、該当する箇所にフラグ「１」を設定する処理を繰り返し実行することで、第１インデックス１４０ｃを生成する。
【００１９】
第２インデックス１４０ｄは、テキストデータ１４０ａに含まれる単語のオフセットと、単語の属性とを対応付ける情報である。第２インデックス１４０ｄの横軸は単語の属性に対応する軸である。単語の属性は、「単語の品詞」と、「単語のＳＶＯＣ」と、「単語の係り受け」とを含む。第２インデックス１４０ｄの縦軸は、単語のオフセットに対応する軸である。
【００２０】
属性の横軸は、単語の品詞に対応する部分１１ａと、単語のＳＶＯＣに対応する部分１１ｂと、単語の係り受けに対応する部分１１ｃとに分けられる。単語の品詞に対応する部分１１ａには、「名詞、代名詞、形容詞、動詞、副詞、前置詞、接続詞、感動詞」に対応する列が存在する。たとえば、テキストデータ１４０ａのオフセット「１」には、品詞「名詞」となる単語「Micky」が存在している。このため、情報処理装置は、第２インデックス１４０ｄのオフセット「１」の行１２ａと、品詞「名詞」に対応する列１３ａとが交差する位置に、フラグ「１」を設定する。
【００２１】
単語のＳＶＯＣに対応する部分１１ｂには、「Ｓ、Ｖ、Ｏ、Ｃ」に対応する列が存在する。たとえば、テキストデータ１４０ａのオフセット「１」には、主語（Ｓ）となる単語「Micky」が存在している。このため、情報処理装置は、第２インデックス１４０ｄのオフセット「１」の行１２ａと、主語（Ｓ）に対応する列１３ｂとが交差する位置に、フラグ「１」を設定する。
【００２２】
単語の係り受けに対応する部分１１ｃには、相対オフセット「１、２、３、４、・・・、ｎ」に対応する列が存在する。相対オフセットは、係り受け元の単語から、係り受け先の単語までのオフセットを示すものである。たとえば、テキストデータ１４０ａのセンテンス「Micky  eats  cheese  every  day」において、係り受け元の単語を「Micky（オフセット「１」）」、係り受け先の単語を「cheese」とすると、相対オフセットは「２」となる。このため、情報処理装置は、第２インデックス１４０ｄのオフセット「１」の行１２ａと、相対オフセット「２」に対応する列１３ｃとが交差する位置に、フラグ「１」を設定する。
【００２３】
情報処理装置は、他の単語のオフセットについても同様に、該当する箇所にフラグ「１」を設定する処理を繰り返し実行することで、第２インデックス１４０ｄを生成する。
【００２４】
図２の説明に移行する。情報処理装置は、検索クエリ５０ａにより、単語の指定を受け付けると、第１インデックス１４０ｃと、第２インデックス１４０ｄとを段階的に利用して、指定された単語の属性を特定する。
【００２５】
たとえば、検索クエリ５０ａにより、単語「Micky」（単語ＩＤ：Ａ００１ｈ）を受けた場合について説明する。情報処理装置は、第１インデックス１４０ｃ上において、単語「Micky」に対応する単語ＩＤ「Ａ００１ｈ」の行１０ａを走査し、フラグ「１」が設定された箇所を特定する。情報処理装置は、フラグ「１」が設定された箇所に対応するオフセットを、単語「Micky」のオフセットとして特定する。
【００２６】
続いて、情報処理装置は、第１インデックス１４０ｃを用いて特定した、単語「Micky」のオフセットと、第２インデックス１４０ｄとを比較して、単語「Micky」の属性情報５０ｂと特定する。属性情報５０ｂには、後述するように、品詞、ＳＯＶＣ、係り受けに関する情報が含まれる。
【００２７】
情報処理装置は、第２インデックス１４０ｄ上において、単語「Micky」のオフセットに対応する行１２ａを走査する。情報処理装置は、単語の品詞に対応する部分１１ａにおいて、フラグ「１」が設定されている箇所が存在する場合には、フラグ「１」が設定された列に対応する品詞を、単語「Micky」に対応する品詞として特定する。
【００２８】
情報処理装置は、単語のＳＶＯＣに対応する部分１１ｂにおいて、フラグ「１」が設定されている箇所が存在する場合には、フラグ「１」が設定された列に対応する「Ｓ、Ｖ、Ｏ、Ｃ」のいずれかを、単語「Micky」に対応するＳＶＯＣとして特定する。
【００２９】
情報処理装置は、単語の係り受けに対応する部分１１ｃにおいて、フラグ「１」が設定されている箇所が存在する場合には、フラグ「１」が設定された行に対応する相対オフセットを特定する。この相対オフセットは、「Micky」の係り受け先となる他の単語の相対オフセットである。
【００３０】
上記のように、情報処理装置は、検索クエリ５０ａを受け付けた場合に、第１インデックス１４０ｃを用いて、指定された単語に対応するテキストデータ１４０ａ上のオフセットを特定する。情報処理装置は、特定したオフセットと、第２インデックス１４０ｄとを比較して、検索クエリ５０ａで指定された単語に対応する属性情報５０ｂを特定する。これによって、検索クエリを指定するのみで、テキストデータに含まれる単語の属性を容易に特定できる。
【００３１】
次に、図１および図２で説明した情報処理装置の構成について説明する。図３は、本実施例に係る情報処理装置の構成を示す機能ブロック図である。図３に示すように、この情報処理装置１００は、通信部１１０、入力部１２０、表示部１３０、記憶部１４０、制御部１５０を有する。
【００３２】
通信部１１０は、ネットワーク等を介して他の外部装置とデータ通信を実行する処理部である。通信部１１０は、通信装置等に対応する。たとえば、情報処理装置１００は、ユーザの使用する端末装置とデータ通信を実行して、テキストデータ１４０ａや、検索クエリの情報を受信してもよい。
【００３３】
入力部１２０は、情報処理装置１００に各種の情報を入力するための入力装置である。入力部１２０は、キーボードやマウス、タッチパネル等に対応する。たとえば、ユーザは、入力部１２０を操作して、検索クエリとなる単語を指定してもよい。
【００３４】
表示部１３０は、制御部１５０から出力される各種の情報を表示する表示装置である。表示部１３０は、液晶ディスプレイやタッチパネル等に対応する。たとえば、表示部１３０は、検索クエリによって特定される単語の属性情報や、属性情報に関連する情報を表示してもよい。
【００３５】
記憶部１４０は、テキストデータ１４０ａ、辞書情報１４０ｂ、第１インデックス１４０ｃ、第２インデックス１４０ｄ、圧縮データ１４０ｅを有する。記憶部１４０は、ＲＡＭ（Random  Access  Memory）、ＲＯＭ（Read  Only  Memory）、フラッシュメモリ（Flash  Memory）などの半導体メモリ素子や、ＨＤＤ（Hard  Disk  Drive）などの記憶装置に対応する。
【００３６】
テキストデータ１４０ａは、複数の単語を含む文章の情報である。たとえば、図１で示したテキストデータ１４０ａは「・・・Micky  eats  cheese  every  day.  It  is  his  favorate.・・・」を含む。
【００３７】
辞書情報１４０ｂは、静的辞書および動的辞書の情報を保持するデータである。静的辞書は、単語と、静的コードとを対応付けるデータである。動的辞書は、静的辞書に存在しない単語に、ユニークな動的コードを割り当てる場合に、かかる単語と動的コードとを対応付けたデータを保持する。本実施例では一例として、静的コードおよび動的コードを、単語ＩＤと表記する。
【００３８】
第１インデックス１４０ｃは、テキストデータ１４０ａに含まれる単語の単語ＩＤと、単語のオフセットとを対応付ける情報である。第１インデックス１４０ｃのデータ構造は、図１および図２に示した第１インデックス１４０ｃに対応する。第１インデックス１４０ｃの横軸は、オフセットに対応する軸である。第１インデックス１４０ｃの縦軸は、単語ＩＤ（単語）に対応する軸である。第１インデックス１４０ｃでは、フラグ「１」の設定により、単語の単語ＩＤと、単語のオフセットとが対応付けられる。
【００３９】
第２インデックス１４０ｄは、テキストデータ１４０ａに含まれる単語のオフセットと、単語の属性とを対応付ける情報である。第２インデックス１４０ｄのデータ構造は、図１および図２に示した第２インデックス１４０ｄに対応する。第２インデックス１４０ｄの縦軸は、単語のオフセットに対応する軸である。第２インデックス１４０ｄの横軸は、属性に対応する軸である。単語の属性は、「単語の品詞」と、「単語のＳＶＯＣ」と、「単語の係り受け」とを含む。
【００４０】
図４は、第２インデックスの横軸に配置される属性の一例を示す図である。図４に示すように、横軸に対応する属性には、単語の品詞に対応する部分１１ａと、単語のＳＶＯＣに対応する部分１１ｂと、単語の係り受けに対応する部分１１ｃとに分けられる。
【００４１】
単語の品詞に対応する部分１１ａには、名詞、代名詞、形容詞、動詞、副詞、前置詞、接続詞等が設定される。たとえば、テキストデータ１４０ａの「１」に、「Micky」が存在し、このオフセット１の「Micky」が名詞である場合には、オフセット「１」の行１２ａと、品詞「名詞」に対応する列１３ａとが交差する位置に、フラグ「１」が設定される。
【００４２】
単語のＳＶＯＣに対応する部分１１ｂには、「Ｓ、Ｖ、Ｏ、Ｃ」に対応する列が存在する。たとえば、テキストデータ１４０ａのオフセット「１」には、主語（Ｓ）となる単語「Micky」が存在している。このため、情報処理装置は、第２インデックス１４０ｄのオフセット「１」の行１２ａと、主語（Ｓ）に対応する列１３ｂとが交差する位置に、フラグ「１」が設定される。
【００４３】
単語の係り受けに対応する部分１１ｃには、相対オフセット「１、２、３、４、・・・、ｎ」に対応する列が存在する。たとえば、テキストデータ１４０ａのセンテンス「Micky  eats  cheese  every  day」において、係り受け元の単語を「Micky（オフセット「１」）」、係り受け先の単語を「cheese」とすると、相対オフセットは「２」となる。このため、情報処理装置は、第２インデックス１４０ｄのオフセット「１」の行１２ａと、相対オフセット「２」に対応する列１３ｃとが交差する位置に、フラグ「１」を設定される。
【００４４】
圧縮データ１４０ｅは、辞書情報１４０ｂを基にして、テキストデータ１４０ａを圧縮したデータである。
【００４５】
図３の説明に戻る。制御部１５０は、受付部１５０ａと、生成部１５０ｂと、第１特定部１５０ｃと、第２特定部１５０ｄと、通知部１５０ｅとを有する。制御部１５０は、ＣＰＵ（Central  Processing  Unit）やＭＰＵ（Micro  Processing  Unit）などによって実現できる。また、制御部１５０は、ＡＳＩＣ（Application  Specific  Integrated  Circuit）やＦＰＧＡ（Field  Programmable  Gate  Array）などのハードワイヤードロジックによっても実現できる。
【００４６】
受付部１５０ａは、ネットワーク上の端末装置または入力部１２０等から、各種の情報を受け付ける処理部である。たとえば、受付部１５０ａは、テキストデータ１４０ａを受け付けた場合には、受け付けたテキストデータ１４０ａを、記憶部１４０に格納する。受付部１５０ａは、検索クエリ５０ａの情報を受け付けた場合には、検索クエリ５０ａの情報を、第１特定部１５０ｃに出力する。
【００４７】
生成部１５０ｂは、テキストデータ１４０ａを基にして、第１インデックス１４０ｃおよび第２インデックス１４０ｄを生成する処理部である。生成部１５０ｂは、生成した第１インデックス１４０ｃおよび第２インデックス１４０ｄを、記憶部１４０に格納する。また、生成部１５０ｂは、辞書情報１４０ｂを基にして、テキストデータ１４０ａを圧縮し、圧縮データ１４０ｅを生成する。生成部１５０ｂは、生成した圧縮データ１４０ｅを、記憶部１４０に格納する。
【００４８】
生成部１５０ｂは、テキストデータ１４０ａに対して形態素解析、構文解析、意味解析を実行することで、テキストデータ１４０ａに含まれる各単語について、単語の属性を特定する。単語の属性は、「単語の品詞」と、「単語のＳＶＯＣ」と、「単語の係り受け」とを含む。
【００４９】
生成部１５０ｂは、テキストデータ１４０ａの単語を選択し、選択した単語と辞書情報１４０ｂとを比較して、単語ＩＤを特定する。生成部１５０ｂは、単語ＩＤに対応する行と、選択した単語のオフセットに対応する列とが交差する、第１インデックス１４０ｃの位置にフラグ「１」を立てる。また、生成部１５０ｂは、選択した単語のオフセットに対応する行と、選択した単語の品詞の列、選択した単語のＳＶＯＣの列、選択した単語の係り受け先の単語の相対オフセットの列とが交差する、第２インデックス１４０ｄの各位置にフラグ「１」を立てる。生成部１５０ｂは、該当のない列には、フラグを立てない。
【００５０】
たとえば、「Micky」が、テキストデータ１４０ａのオフセット「１」に位置しているものとする。この場合には、生成部１５０ｂは、単語「Micky」の単語ＩＤ「Ａ００１ｈ」の行１０ａと、オフセット「１」の列１０ｂとが交差する、第１インデックス１４０ｃ
の位置にフラグ「１」を設定する。
【００５１】
たとえば、テキストデータ１４０ａのオフセット「１」に、品詞「名詞」となる単語「Micky」が存在しているものとする。この場合には、生成部１５０ｂは、第２インデックス１４０ｄのオフセット「１」の行１２ａと、品詞「名詞」に対応する列１３ａとが交差する位置に、フラグ「１」を設定する。
【００５２】
たとえば、テキストデータ１４０ａのオフセット「１」に、主語（Ｓ）となる単語「Micky」が存在しているものとする。この場合には、生成部１５０ｂは、第２インデックス１４０ｄのオフセット「１」の行１２ａと、主語（Ｓ）に対応する列１３ｂとが交差する位置に、フラグ「１」を設定する。
【００５３】
たとえば、テキストデータ１４０ａのセンテンス「Micky  eats  cheese  every  day」において、係り受け元の単語を「Micky（オフセット「１」）」、係り受け先の単語を「cheese」とすると、相対オフセットは「２」となる。この場合には、生成部１５０ｂは、第２インデックス１４０ｄのオフセット「１」の行１２ａと、相対オフセット「２」に対応する列１３ｃとが交差する位置に、フラグ「１」を設定する。
【００５４】
生成部１５０ｂは、テキストデータ１４０ａの他の単語についても、上記の処理を繰り返し実行することで、第１インデックス１４０ｃおよび第２インデックス１４０ｄにフラグを設定する処理を繰り返し実行する。また、生成部１５０ｂは、上記の処理と平行して、テキストデータ１４０ａを、圧縮データ１４０ｅに圧縮する処理を実行してもよい。
【００５５】
第１特定部１５０ｃは、検索クエリ５０ａで指定される単語のオフセットを、第１インデックスを基にして特定する処理部である。第１特定部１５０ｃは、特定した単語のオフセットの情報を、第２特定部１５０ｄに出力する。
【００５６】
第１特定部１５０ｃは、受付部１５０ａから検索クエリ５０ａの情報を受け付けると、検索クエリ５０ａで指定される単語と、辞書情報１４０ｂとを比較して、単語ＩＤを特定する。たとえば、第１特定部１５０ｃは、検索クエリ５０ａにより、単語「Micky」を指定された場合には、単語「Micky」と、辞書情報１４０ｂとの比較により、単語ＩＤ「Ａ００１ｈ」を取得する。
【００５７】
第１特定部１５０ｃは、単語ＩＤと、第１インデックス１４０ｃとを比較して、単語のオフセットを特定する。たとえば、第１特定部１５０ｃは、第１インデックス１４０ｃ上において、単語ＩＤ「Ａ００１ｈ」の行１０ａ（図２等を参照）を走査し、フラグ「１」が設定された箇所を特定する。情報処理装置は、フラグ「１」が設定された箇所に対応するオフセットを、単語「Micky」のオフセットとして特定する。テキストデータ１４０ａに複数の「Micky」が含まれている場合には、各「Micky」に対応するオフセットがそれぞれ特定される。
【００５８】
第２特定部１５０ｄは、検索クエリ５０ａで指定された単語のオフセットと、第２インデックス１４０ｄとを基にして、検索クエリ５０ａで指定された単語の属性の情報を特定する処理部である。第２特定部１５０ｄは、特定した属性の情報を、通知部１５０ｅに出力する。第２特定部１５０ｄは、単語のオフセットが複数存在する場合には、各オフセットについて、単語の属性の情報を特定する。
【００５９】
第２特定部１５０ｄは、第２インデックス１４０ｄにおいて、検索クエリ５０ａで指定された単語のオフセットの行を走査する。第２特定部１５０ｄは、単語の品詞に対応する部分１１ａにおいて、フラグ「１」が設定されている箇所が存在する場合には、フラグ「１」が設定された列に対応する品詞を、指定された単語に対応する品詞として特定する。
【００６０】
たとえば、図４において、検索クエリ５０ａで指定された単語のオフセットの行を、行１２ａとすると、「名詞」に対応する列１３ａにフラグ「１」が設定されている。この場合には、第２特定部１５０ｄは、単語の属性として「名詞」を特定する。
【００６１】
第２特定部１５０ｄは、単語のＳＶＯＣに対応する部分１１ｂにおいて、フラグ「１」が設定されている箇所が存在する場合には、フラグ「１」が設定された列に対応する「Ｓ、Ｖ、Ｏ、Ｃ」のいずれかを、単語に対応するＳＶＯＣとして特定する。
【００６２】
たとえば、図４において、検索クエリ５０ａで指定された単語のオフセットの行を、行１２ａとすると、「Ｓ」に対応する列１３ｂにフラグ「１」が設定されている。この場合には、第２特定部１５０ｄは、単語の属性として「主語」を特定する。
【００６３】
第２特定部１５０ｄは、単語の係り受けに対応する部分１１ｃにおいて、フラグ「１」が設定されている箇所が存在する場合には、フラグ「１」が設定された行に対応する相対オフセットを特定する。
【００６４】
たとえば、図４において、検索クエリ５０ａで指定された単語のオフセットの行を、行１２ａとすると、「２」に対応する列１３ｃにフラグ「１」が設定されている。この場合には、第２特定部１５０ｄは、係り受け先となる単語の相対オフセットが「２」であると特定する。第２特定部１５０ｄは、相対オフセットをそのまま単語の属性としてもよいし、係り受け元の単語と、係り受け先の単語との組を特定して、単語の属性としてもよい。
【００６５】
第２特定部１５０ｄは、検索クエリ５０ａで指定された単語のオフセットに位置する単語を、テキストデータ１４０ａから検出し、係り受け元の単語として特定する。第２特定部１５０ｄは、検索クエリ５０ａで指定された単語のオフセットと、特定した相対オフセットとを加算した加算オフセットに位置する単語を、テキストデータ１４０ａから検出し、係り受け先の単語として特定する。
【００６６】
通知部１５０ｅは、第２特定部１５０ｄにより特定された単語の属性の情報を、検索クエリ５０ａの送信元となる端末装置に通知する処理部である。通知部１５０ｅは、検索クエリ５０ａが、入力部１２０から入力されたものである場合には、単語の属性の情報を、表示部１３０に表示させてもよい。
【００６７】
ところで、生成部１５０ｂは、第１インデックス１４０ｃを生成した場合に、ビットマップの折り返し技術を用いて、第１インデックス１４０ｃを隣接する素数（底）でハッシュ化し、サイズを縮小してもよい。図５Ａは、第１インデックスをサイズ縮小する処理の一例を説明するための図である。
【００６８】
ここでは、３２ビットレジスタを想定し、一例として２９と３１の素数（底）を基に、第１インデックス１４０ｃの各ビットマップをハッシュ化する。ビットマップｂ１から、ハッシュ化ビットマップｈ１１およびハッシュ化ビットマップｈ１２を生成する場合について説明する。ビットマップｂ１は、第１インデックス１４０ｃのある行を抽出したビットマップを示すものとする。ハッシュ化ビットマップｈ１１は、底「２９」によりハッシュ化されたビットマップである。ハッシュ化ビットマップｈ１２は、底「３１」によりハッシュ化されたビットマップである。
【００６９】
生成部１５０ｂは、ビットマップｂ１の各ビットの位置を、１つの低で割った余りの値を、ハッシュ化ビットマップの位置と対応付ける。生成部１５０ｂは、該当するビットマップｂ１のビットの位置に「１」が設定されている場合には、対応付けられたハッシュ化ビットマップの位置に「１」を設定する処理を行う。
【００７０】
ビットマップｂ１から、底「２９」のハッシュ化ビットマップｈ１１を生成する処理の一例について説明する。はじめに、生成部１５０ｂは、ビットマップｂ１の位置「０〜２８」の情報を、ハッシュ化ビットマップｈ１１にコピーする。続いて、ビットマップｂ１のビットの位置「３５」を、低「２９」で割った余りは「６」となるので、ビットマップｂ１の位置「３５」は、ハッシュ化ビットマップｈ１１の位置「６」と対応付けられる。生成部１５０ｂは、ビットマップｂ１の位置「３５」に「１」が設定されているため、ハッシュ化ビットマップｈ１１の位置「６」に「１」を設定する。
【００７１】
ビットマップｂ１のビットの位置「４２」を、低「２９」で割った余りは「１３」となるので、ビットマップｂ１の位置「４２」は、ハッシュ化ビットマップｈ１１の位置「１３」と対応付けられる。生成部１５０ｂは、ビットマップｂ１の位置「４２」に「１」が設定されているため、ハッシュ化ビットマップｈ１１の位置「１３」に「１」を設定する。
【００７２】
生成部１５０ｂは、ビットマップｂ１の位置「２９」以上の位置について、上記処理を繰り返し実行することで、ハッシュ化ビットマップｈ１１を生成する。
【００７３】
ビットマップｂ１から、底「３１」のハッシュ化ビットマップｈ１２を生成する処理の一例について説明する。はじめに、生成部１５０ｂは、ビットマップｂ１の位置「０〜３０」の情報を、ハッシュ化ビットマップｈ１２にコピーする。続いて、ビットマップｂ１のビットの位置「３５」を、低「３１」で割った余りは「４」となるので、ビットマップｂ１の位置「３５」は、ハッシュ化ビットマップｈ１２の位置「４」と対応付けられる。生成部１５０ｂは、ビットマップｂ１の位置「３５」に「１」が設定されているため、ハッシュ化ビットマップｈ１２の位置「４」に「１」を設定する。
【００７４】
ビットマップｂ１のビットの位置「４２」を、低「３１」で割った余りは「１１」となるので、ビットマップｂ１の位置「４２」は、ハッシュ化ビットマップｈ１２の位置「１１」と対応付けられる。生成部１５０ｂは、ビットマップｂ１の位置「４２」に「１」が設定されているため、ハッシュ化ビットマップｈ１２の位置「１３」に「１」を設定する。
【００７５】
生成部１５０ｂは、ビットマップｂ１の位置「３１」以上の位置について、上記処理を繰り返し実行することで、ハッシュ化ビットマップｈ１２を生成する。
【００７６】
生成部１５０ｂは、第１インデックス１４０ｃの各行について上記の折り返し技術による圧縮を行うことで、第１インデックス１４０ｃのデータ量を削減することが可能となる。底「２９」、「３１」のハッシュ化ビットマップは、生成元のビットマップの行（単語ＩＤ）の情報が付与されて、記憶部１４０に格納されるものとする。
【００７７】
生成部１５０ｂは、第２インデックス１４０ｄを生成した場合に、ビットマップの折り返し技術を用いて、第２インデックス１４０ｄを隣接する素数（底）でハッシュ化し、サイズを縮小してもよい。図５Ｂは、第２インデックスをサイズ縮小する処理の一例を説明するための図である。
【００７８】
ここでは、一例として１１と１３の素数（底）を基に、第２インデックス１４０ｄの各ビットマップをハッシュ化する。ビットマップｂ２から、ハッシュ化ビットマップｈ２１およびハッシュ化ビットマップｈ２２を生成する場合について説明する。ビットマップｂ２は、第２インデックス１４０ｄのある行を抽出したビットマップを示すものとする。ハッシュ化ビットマップｈ２１は、底「１１」によりハッシュ化されたビットマップである。ハッシュ化ビットマップｈ２２は、底「１３」によりハッシュ化されたビットマップである。
【００７９】
生成部１５０ｂは、ビットマップｂ２の各ビットの位置を、１つの低で割った余りの値を、ハッシュ化ビットマップの位置と対応付ける。生成部１５０ｂは、該当するビットマップｂ２のビットの位置に「１」が設定されている場合には、対応付けられたハッシュ化ビットマップの位置に「１」を設定する処理を行う。
【００８０】
ビットマップｂ２から、底「１１」のハッシュ化ビットマップｈ２１を生成する処理の一例について説明する。はじめに、生成部１５０ｂは、ビットマップｂ２の位置「０〜１０」の情報を、ハッシュ化ビットマップｈ２１にコピーする。続いて、ビットマップｂ２のビットの位置「１５」を、低「１１」で割った余りは「４」となるので、ビットマップｂ２の位置「１５」は、ハッシュ化ビットマップｈ１１の位置「４」と対応付けられる。生成部１５０ｂは、ビットマップｂ２の位置「１５」に「１」が設定されているため、ハッシュ化ビットマップｈ２１の位置「６」に「１」を設定する。
【００８１】
生成部１５０ｂは、ビットマップｂ２の位置「１５」以上の位置について、上記処理を繰り返し実行することで、ハッシュ化ビットマップｈ２１を生成する。
【００８２】
ビットマップｂ２から、底「１３」のハッシュ化ビットマップｈ２２を生成する処理の一例について説明する。はじめに、生成部１５０ｂは、ビットマップｂ２の位置「０〜１２」の情報を、ハッシュ化ビットマップｈ２２にコピーする。続いて、ビットマップｂ２のビットの位置「１５」を、低「１３」で割った余りは「２」となるので、ビットマップｂ２の位置「１５」は、ハッシュ化ビットマップｈ２２の位置「２」と対応付けられる。生成部１５０ｂは、ビットマップｂ２の位置「１５」に「１」が設定されているため、ハッシュ化ビットマップｈ２２の位置「２」に「１」を設定する。
【００８３】
生成部１５０ｂは、ビットマップｂ２の位置「１５」以上の位置について、上記処理を繰り返し実行することで、ハッシュ化ビットマップｈ２２を生成する。
【００８４】
生成部１５０ｂは、第２インデックス１４０ｄの各行について上記の折り返し技術による圧縮を行うことで、第２インデックス１４０ｄのデータ量を削減することが可能となる。底「１１」、「１３」のハッシュ化ビットマップは、生成元のビットマップの行（オフセット）の情報が付与されて、記憶部１４０に格納されるものとする。
【００８５】
第１特定部１５０ｃは、第１インデックス１４０ｃが折り返し技術によりハッシュ化されている場合には、単語ＩＤに対応するハッシュ化ビットマップを読み出し、復元した後に、単語のオフセットを特定する処理を行う。
【００８６】
図６Ａは、第１インデックスを復元する処理の一例を説明するための図である。ここでは一例として、第１特定部１５０ｃが、ハッシュ化ビットマップｈ１１およびハッシュ化ビットマップｈ１２を基にして、ビットマップｂ１を復元する場合について説明する。
【００８７】
第１特定部１５０ｃは、底「２９」のハッシュ化ビットマップｈ１１から、中間ビットマップｈ１１’を生成する。第１特定部１５０ｃは、ハッシュ化ビットマップｈ１１の位置０〜２８の値を、中間ビットマップｈ１１’の位置０〜２８にそれぞれ、コピーする。
【００８８】
第１特定部１５０ｃは、中間ビットマップｈ１１’の位置２９以降の値については、「２９」毎に、ハッシュ化ビットマップｈ１１の位置０〜２８の値を、それぞれコピーする処理を繰り返し実行する。図６Ａに示す例では、中間ビットマップｈ１１’の位置２９〜４３の位置に、ハッシュ化ビットマップｈ１１の位置０〜１４の値を、コピーした例を示す。
【００８９】
第１特定部１５０ｃは、底「３１」のハッシュ化ビットマップｈ１２から、中間ビットマップｈ１２’を生成する。第１特定部１５０ｃは、ハッシュ化ビットマップｈ１２の位置０〜３０の値を、中間ビットマップｈ１２’の位置０〜３０にそれぞれ、コピーする。
【００９０】
第１特定部１５０ｃは、中間ビットマップｈ１２’の位置３１以降の値については、「３１」毎に、ハッシュ化ビットマップｈ１２の位置０〜３０の値を、それぞれコピーする処理を繰り返し実行する。図６Ａに示す例では、中間ビットマップｈ１２’の位置３１〜４３の位置に、ハッシュ化ビットマップｈ１２の位置０〜１２の値を、コピーした例を示す。
【００９１】
第１特定部１５０ｃは、中間ビットマップｈ１１’と、中間ビットマップｈ１２’とを生成すると、中間ビットマップｈ１１’と、中間ビットマップｈ１２’とをＡＮＤ演算することで、ハッシュ化前のビットマップｂ１を復元する。第１特定部１５０ｃは、他のハッシュ化されたビットマップについても、同様の処理を繰り返し実行することで、単語ＩＤに対応するビットマップを復元することができる。
【００９２】
第２特定部１５０ｄは、第２インデックス１４０ｄが折り返し技術によりハッシュ化されている場合には、オフセットに対応するハッシュ化ビットマップを読み出し、復元した後に、オフセットに対応する属性を特定する処理を行う。
【００９３】
図６Ｂは、第２インデックスを復元する処理の一例を説明するための図である。ここでは一例として、第２特定部１５０ｄが、ハッシュ化ビットマップｈ２１およびハッシュ化ビットマップｈ２２を基にして、ビットマップｂ２を復元する場合について説明する。
【００９４】
第２特定部１５０ｄは、底「１１」のハッシュ化ビットマップｈ２１から、中間ビットマップｈ２１’を生成する。第２特定部１５０ｄは、ハッシュ化ビットマップｈ２１の位置０〜１０の値を、中間ビットマップｈ２１’の位置０〜１０にそれぞれ、コピーする。
【００９５】
第２特定部１５０ｄは、中間ビットマップｈ２１’の位置１１以降の値については、「１１」毎に、ハッシュ化ビットマップｈ２１の位置０〜１０の値を、それぞれコピーする処理を繰り返し実行する。図６Ｂに示す例では、中間ビットマップｈ２１’の位置１１〜２１に、ハッシュ化ビットマップｈ２１の位置０〜１０の値を、コピーし、中間ビットマップｈ２１’の位置２２〜３１に、ハッシュ化ビットマップｈ２１の位置０〜９の値を、コピーした例を示す。
【００９６】
第２特定部１５０ｄは、底「１３」のハッシュ化ビットマップｈ２２から、中間ビットマップｈ２２’を生成する。第２特定部１５０ｄは、ハッシュ化ビットマップｈ２２の位置０〜１２の値を、中間ビットマップｈ２２’の位置０〜１２にそれぞれ、コピーする。
【００９７】
第２特定部１５０ｄは、中間ビットマップｈ２２’の位置１３以降の値については、「１３」毎に、ハッシュ化ビットマップｈ２２の位置０〜１２の値を、それぞれコピーする処理を繰り返し実行する。図６Ｂに示す例では、中間ビットマップｈ２２’の位置１３〜２５の位置に、ハッシュ化ビットマップｈ２２の位置０〜１２の値を、コピーし、中間ビットマップｈ２２’の位置２６〜３１の位置に、ハッシュ化ビットマップｈ２２の位置０〜５の値を、コピーした例を示す。
【００９８】
第２特定部１５０ｄは、中間ビットマップｈ２１’と、中間ビットマップｈ２２’とを生成すると、中間ビットマップｈ２１’と、中間ビットマップｈ２２’とをＡＮＤ演算することで、ハッシュ化前のビットマップｂ２を復元する。第２特定部１５０ｄは、他のハッシュ化されたビットマップについても、同様の処理を繰り返し実行することで、オフセットに対応するビットマップを復元することができる。
【００９９】
次に、本実施例に係る情報処理装置１００の処理手順の一例について説明する。図７は、第１インデックスおよび第２インデックスを生成する処理を示すフローチャートである。図７に示すように、情報処理装置１００の受付部１５０ａは、テキストデータ１４０ａを受け付ける（ステップＳ１０１）。
【０１００】
情報処理装置１００の生成部１５０ｂは、テキストデータ１４０ａに対して形態素解析、構文解析、意味解析を実行する（ステップＳ１０２）。生成部１５０ｂは、テキストデータ１４０ａに含まれる単語を選択する（ステップＳ１０３）。生成部１５０ｂは、単語を単語ＩＤに圧縮し、圧縮データ１４０ｅに格納する（ステップＳ１０４）。
【０１０１】
生成部１５０ｂは、選択した単語の単語ＩＤの行と、選択した単語のオフセットの列とが交差する第１インデックス１４０ｃの位置にフラグ「１」を設定する（ステップＳ１０５）。生成部１５０ｂは、選択した単語のオフセットと、選択した単語に関連する属性の各列とが交差する第２インデックスの位置にフラグ「１」を設定する（ステップＳ１０６）。
【０１０２】
生成部１５０ｂは、単語の選択を終了する場合には（ステップＳ１０７，Ｙｅｓ）、第１インデックス１４０ｃおよび第２インデックス１４０ｄを隣接する素数でハッシュ化し、サイズを縮小し（ステップＳ１０９）、インデックスを生成する処理を終了する。一方、生成部１５０ｂは、単語の選択を終了しない場合には（ステップＳ１０７，Ｎｏ）、テキストデータ１４０ａに含まれる未選択の単語を選択し（ステップＳ１０８）、ステップＳ１０４に移行する。
【０１０３】
図８は、検索クエリを基にして単語の属性を特定する処理を示すフローチャートである。図８に示すように、情報処理装置１００の受付部１５０ａは、検索クエリを受け付ける（ステップＳ２０１）。情報処理装置１００の第１特定部１５０ｃは、検索クエリに含まれる単語を単語ＩＤに変換する（ステップＳ２０２）。
【０１０４】
第１特定部１５０ｃは、検索クエリで指定された単語の単語ＩＤをもとに、第１インデックス１４０ｃを復元して、単語のオフセットを特定する（ステップＳ２０３）。情報処理装置１００の第２特定部１５０ｄは、第１特定部１５０ｃにより特定された単語のオフセットをもとに、第２インデックス１４０ｄを復元して、単語の属性を特定する（ステップＳ２０４）。
【０１０５】
情報処理装置１００の通知部１５０ｅは、検索クエリで指定された単語と、単語の属性とを対応付けて通知する（ステップＳ２０５）。
【０１０６】
次に、本実施例に係る情報処理装置１００の効果について説明する。情報処理装置１００は、検索クエリにより単語が指定された場合に、単語の単語ＩＤと第１インデックスとを基にして、指定された単語のオフセットを特定する。情報処理装置１００は、特定した単語のオフセットと、第２インデックスとを基にして、単語のオフセットに対応する属性を特定する。このように、第１インデックス１４０ｃ、第２インデックス１４０ｄを用いることで、テキストデータ１４０ａに含まれる単語の属性を高速に特定できる。
【０１０７】
情報処理装置１００が特定する単語の属性は「単語の品詞」と、「単語のＳＶＯＣ」と、「単語の係り受け」とを有する。このため、検索クエリで単語を指定することで、指定した単語に対応する品詞、センテンス上の要素、係り受けの関係を特定することができる。
【０１０８】
情報処理装置１００は、テキストデータ１４０ａを形態素解析、構文解析、意味解析し、テキストデータに含まれる係り受け元の単語と、係り受け先の単語とを特定し、係り受け元の単語のオフセットと、係り受け先の単語の相対的なオフセットとを対応付けた第２インデックスを生成する。また、情報処理装置１００は、係り受け元の単語と、係り受け元の単語のオフセットとを対応付けた第１インデックスを生成する。これによって、テキストデータ１４０ａに含まれる単語の属性（係り受けの関係）を特定するために使用する第１インデックス１４０ｃ、第２インデックス１４０ｄの情報を生成することができる。
【０１０９】
次に、上記実施例に示した情報処理装置１００と同様の機能を実現するコンピュータのハードウェア構成の一例について説明する。図９は、情報処理装置と同様の機能を実現するコンピュータのハードウェア構成の一例を示す図である。
【０１１０】
図９に示すように、コンピュータ２００は、各種演算処理を実行するＣＰＵ２０１と、ユーザからのデータの入力を受け付ける入力装置２０２と、ディスプレイ２０３とを有する。また、コンピュータ２００は、記憶媒体からプログラム等を読み取る読み取り装置２０４と、有線または無線ネットワークを介して他の装置との間でデータの授受を行うインタフェース装置２０５とを有する。また、コンピュータ２００は、各種情報を一時記憶するＲＡＭ２０６と、ハードディスク装置２０７とを有する。そして、各装置２０１〜２０７は、バス２０８に接続される。
【０１１１】
ハードディスク装置２０７は、受付プログラム２０７ａ、生成プログラム２０７ｂ、第１特定プログラム２０７ｃ、第２特定プログラム２０７ｄ、通知プログラム２０７ｅを有する。また、ハードディスク装置２０７は、各プログラム２０７ａ〜２０７ｅを読み出してＲＡＭ２０６に展開する。
【０１１２】
受付プログラム２０７ａは、受付プロセス２０６ａとして機能する。生成プログラム２０７ｂは、生成プロセス２０６ｂとして機能する。第１特定プログラム２０７ｃは、第１特定プロセス２０６ｃとして機能する。第２特定プログラム２０７ｄは、第２特定プロセス２０７ｃとして機能する。通知プログラム２０７ｅは、通知プロセス２０６ｅとして機能する。
【０１１３】
受付プロセス２０６ａの処理は、受付部１５０ａの処理に対応する。生成プロセス２０６ｂの処理は、生成部１５０ｂの処理に対応する。第１特定プロセス２０６ｃの処理は、第１特定部１５０ｃの処理に対応する。第２特定プロセス２０６ｄの処理は、第２特定部１５０ｄの処理に対応する。通知プロセス２０６ｅの処理は、通知部１５０ｅの処理に対応する。
【０１１４】
なお、各プログラム２０７ａ〜２０７ｅについては、必ずしも最初からハードディスク装置２０７に記憶させておかなくても良い。例えば、コンピュータ２００に挿入されるフレキシブルディスク（ＦＤ）、ＣＤ−ＲＯＭ、ＤＶＤ、光磁気ディスク、ＩＣカードなどの「可搬用の物理媒体」に各プログラムを記憶させておく。そして、コンピュータ２００が各プログラム２０７ａ〜２０７ｅを読み出して実行するようにしても良い。
【０１１５】
以上の各実施例を含む実施形態に関し、さらに以下の付記を開示する。
【０１１６】
（付記１）単語の指定を受け付け、
テキストデータに含まれる単語それぞれの前記テキストデータにおける出現位置を該単語それぞれに対応付けた情報を参照して、指定された前記単語に対応付けられた出現位置を特定し、
前記テキストデータに含まれる単語それぞれの前記テキストデータにおける出現位置での属性を該出現位置に対応付ける情報を参照して、特定した前記出現位置に対応付けられた属性を特定する、
処理をコンピュータに実行させることを特徴とする特定プログラム。
【０１１７】
（付記２）前記属性は、前記テキストデータに含まれる単語のうち、指定された前記単語に対して特定の関係を有する他の単語の出現位置であることを特徴とする付記１に記載の特定プログラム。
【０１１８】
（付記３）前記関係は、係り受けの関係であることを特徴とする付記２に記載の特定プログラム。
【０１１９】
（付記４）前記属性は、前記単語の品詞であることを特徴とする付記１に記載の特定プログラム。
【０１２０】
（付記５）前記属性は、前記テキストデータに含まれる文の要素のうち、いずれの要素に対応するかを示す情報であることを特徴とする付記１に記載の特定プログラム。
【０１２１】
（付記６）単語の指定を受け付け、
テキストデータに含まれる単語それぞれの前記テキストデータにおける出現位置での属性を、該出現位置と、該単語とに対応付けて記憶する記憶部を参照して、指定された前記単語の前記テキストデータにおける出現位置での属性を特定する、
処理をコンピュータに実行させることを特徴とする特定プログラム。
【０１２２】
（付記７）テキストデータを受け付け、
受け付けた前記テキストデータを解析することで、前記テキストデータに含まれる第１の単語に対して特定の関係性を有する第２の単語をそれぞれ特定し、
前記テキストデータに含まれる前記第１の単語の出現位置と、前記第１の単語の出現位置を基準とする前記第２の単語の出現位置とを対応付けた情報を生成し、
前記第１の単語と前記第１の単語の出現位置とを対応付けた情報を生成する
処理をコンピュータに実行させることを特徴とする生成プログラム。
【０１２３】
（付記８）前記テキストデータに含まれる前記第１の単語の出現位置と、前記第１の単語の出現位置を基準とする前記第２の単語の出現位置とを対応付けた情報を生成する処理は、前記第１の単語の出現位置と、前記第１の単語の品詞と、前記第１の単語に対応する文の要素とを更に対応付けることを特徴とする付記７に記載の生成プログラム。
【０１２４】
（付記９）前記テキストデータに含まれる前記第１の単語の出現位置と、前記第１の単語の出現位置を基準とする前記第２の単語の出現位置とを対応付けた情報は、０および１が並ぶビットマップであり、前記ビットマップを、所定の素数を基にしてハッシュ化する処理を更に実行することを特徴とする付記７に記載の生成プログラム。
【０１２５】
（付記１０）前記第１の単語と前記第１の単語の出現位置とを対応付けた情報は、０および１が並ぶビットマップであり、前記ビットマップを、所定の素数を基にしてハッシュ化する処理を更に実行することを特徴とする付記７に記載の生成プログラム。
【０１２６】
（付記１１）コンピュータが実行する特定方法であって、
単語の指定を受け付け、
テキストデータに含まれる単語それぞれの前記テキストデータにおける出現位置を該単語それぞれに対応付けた情報を参照して、指定された前記単語に対応付けられた出現位置を特定し、
前記テキストデータに含まれる単語それぞれの前記テキストデータにおける出現位置での属性を該出現位置に対応付ける情報を参照して、特定した前記出現位置に対応付けられた属性を特定する、
処理を実行することを特徴とする特定方法。
【０１２７】
（付記１２）前記属性は、前記テキストデータに含まれる単語のうち、指定された前記単語に対して特定の関係を有する他の単語の出現位置であることを特徴とする付記１１に記載の特定方法。
【０１２８】
（付記１３）前記関係は、係り受けの関係であることを特徴とする付記１２に記載の特定方法。
【０１２９】
（付記１４）前記属性は、前記単語の品詞であることを特徴とする付記１１に記載の特定方法。
【０１３０】
（付記１５）前記属性は、前記テキストデータに含まれる文の要素のうち、いずれの要素に対応するかを示す情報であることを特徴とする付記１１に記載の特定方法。
【０１３１】
（付記１６）単語の指定を受け付け、
テキストデータに含まれる単語それぞれの前記テキストデータにおける出現位置での属性を、該出現位置と、該単語とに対応付けて記憶する記憶部を参照して、指定された前記単語の前記テキストデータにおける出現位置での属性を特定する、
処理をコンピュータに実行させることを特徴とする特定方法。
【０１３２】
（付記１７）テキストデータを受け付け、
受け付けた前記テキストデータを解析することで、前記テキストデータに含まれる第１の単語に対して特定の関係性を有する第２の単語をそれぞれ特定し、
前記テキストデータに含まれる前記第１の単語の出現位置と、前記第１の単語の出現位置を基準とする前記第２の単語の出現位置とを対応付けた情報を生成し、
前記第１の単語と前記第１の単語の出現位置とを対応付けた情報を生成する
処理をコンピュータに実行させることを特徴とする生成方法。
【０１３３】
（付記１８）前記テキストデータに含まれる前記第１の単語の出現位置と、前記第１の単語の出現位置を基準とする前記第２の単語の出現位置とを対応付けた情報を生成する処理は、前記第１の単語の出現位置と、前記第１の単語の品詞と、前記第１の単語に対応する文の要素とを更に対応付けることを特徴とする付記１７に記載の生成方法。
【０１３４】
（付記１９）前記テキストデータに含まれる前記第１の単語の出現位置と、前記第１の単語の出現位置を基準とする前記第２の単語の出現位置とを対応付けた情報を生成する処理は、前記第１の単語の出現位置と、前記第１の単語の品詞と、前記第１の単語に対応する文の要素とを更に対応付けることを特徴とする付記１７に記載の生成方法。
【０１３５】
（付記２０）前記テキストデータに含まれる前記第１の単語の出現位置と、前記第１の単語の出現位置を基準とする前記第２の単語の出現位置とを対応付けた情報は、０および１が並ぶビットマップであり、前記ビットマップを、所定の素数を基にしてハッシュ化する処理を更に実行することを特徴とする付記１７に記載の生成方法。
【０１３６】
（付記２１）単語の指定を受け付ける受付部と、
テキストデータに含まれる単語それぞれの前記テキストデータにおける出現位置を該単語それぞれに対応付けた情報を参照して、指定された前記単語に対応付けられた出現位置を特定する第１特定部と、
前記テキストデータに含まれる単語それぞれの前記テキストデータにおける出現位置での属性を該出現位置に対応付ける情報を参照して、特定した前記出現位置に対応付けられた属性を特定する第２特定部と
を有することを特徴とする情報処理装置。
【０１３７】
（付記２２）前記属性は、前記テキストデータに含まれる単語のうち、指定された前記単語に対して特定の関係を有する他の単語の出現位置であることを特徴とする付記２１に記載の情報処理装置。
【０１３８】
（付記２３）前記関係は、係り受けの関係であることを特徴とする付記２２に記載の情報処理装置。
【０１３９】
（付記２４）前記属性は、前記単語の品詞であることを特徴とする付記２１に記載の情報処理装置。
【０１４０】
（付記２５）前記属性は、前記テキストデータに含まれる文の要素のうち、いずれの要素に対応するかを示す情報であることを特徴とする付記２１に記載の情報処理装置。
【０１４１】
（付記２６）単語の指定を受け付ける受付部と、
テキストデータに含まれる単語それぞれの前記テキストデータにおける出現位置を該単語それぞれに対応付けた情報を参照して、指定された前記単語に対応付けられた出現位置を特定する第１特定部と、
前記テキストデータに含まれる単語それぞれの前記テキストデータにおける出現位置での属性を該出現位置に対応付ける情報を参照して、特定した前記出現位置に対応付けられた属性を特定する第２特定部と
を有することを特徴とする情報処理装置。
【０１４２】
（付記２７）テキストデータを受け付ける受付部と、
受け付けた前記テキストデータを解析することで、前記テキストデータに含まれる第１の単語に対して特定の関係性を有する第２の単語をそれぞれ特定し、前記テキストデータに含まれる前記第１の単語の出現位置と、前記第１の単語の出現位置を基準とする前記第２の単語の出現位置とを対応付けた情報を生成し、前記第１の単語と前記第１の単語の出現位置とを対応付けた情報を生成する生成部と
を有することを特徴とする情報処理装置。
【０１４３】
（付記２８）前記生成部は、前記第１の単語の出現位置を基準とする前記第２の単語の出現位置とを対応付けた情報を生成する処理は、前記第１の単語の出現位置と、前記第１の単語の品詞と、前記第１の単語に対応する文の要素とを更に対応付けることを特徴とする付記２７に記載の情報処理装置。
【０１４４】
（付記２９）前記テキストデータに含まれる前記第１の単語の出現位置と、前記第１の単語の出現位置を基準とする前記第２の単語の出現位置とを対応付けた情報は、０および１が並ぶビットマップであり、前記生成部は、前記ビットマップを、所定の素数を基にしてハッシュ化する処理を更に実行することを特徴とする付記２７に記載の情報処理装置。
【０１４５】
（付記３０）前記第１の単語と前記第１の単語の出現位置とを対応付けた情報は、０および１が並ぶビットマップであり、前記生成部は、前記ビットマップを、所定の素数を基にしてハッシュ化する処理を更に実行することを特徴とする付記２７に記載の情報処理装置。
【符号の説明】
【０１４６】
１００    情報処理装置
１１０    通信部
１２０    入力部
１３０    表示部
１４０    記憶部
１４０ａ  テキストデータ
１４０ｂ  辞書情報
１４０ｃ  第１インデックス
１４０ｄ  第２インデックス
１４０ｅ  圧縮データ
１５０    制御部
１５０ａ  受付部
１５０ｂ  生成部
１５０ｃ  第１特定部
１５０ｄ  第２特定部
１５０ｅ  通知部
【図１】
2019185491.tif 000003
【図２】
2019185491.tif 000004
【図３】
2019185491.tif 000005
【図４】
2019185491.tif 000006
【図５Ａ】
2019185491.tif 000007
【図５Ｂ】
2019185491.tif 000008
【図６Ａ】
2019185491.tif 000009
【図６Ｂ】
2019185491.tif 000010
【図７】
2019185491.tif 000011
【図８】
2019185491.tif 000012
【図９】
2019185491.tif 000013