(57)【要約】【課題】文書の構文解析結果を活用するための処理負荷を軽減する。【解決手段】コンピュータは、圧縮対象文書内の文に含まれる複数の単語の関係を解析して、複数の単語それぞれに対応する複数の構文情報を生成する（ステップ７０１）。次に、コンピュータは、複数の単語それぞれと複数の構文情報それぞれとに対して圧縮符号を割り当てる（ステップ７０２）。そして、コンピュータは、複数の単語それぞれと複数の構文情報それぞれとに対して割り当てられた圧縮符号を、所定の順序で配列して出力する（ステップ７０３）。【選択図】図７
2018018286.tif 000002
【特許請求の範囲】
【請求項１】
圧縮対象文書内の文に含まれる複数の単語の関係を解析して、前記複数の単語それぞれに対応する複数の構文情報を生成し、
前記複数の単語それぞれと前記複数の構文情報それぞれとに対して圧縮符号を割り当て、
前記複数の単語それぞれと前記複数の構文情報それぞれとに対して割り当てられた前記圧縮符号を、所定の順序で配列して出力する、
処理をコンピュータに実行させる符号化プログラム。
【請求項２】
前記所定の順序は、前記複数の単語のうち各単語に対して割り当てられた前記圧縮符号と、各単語に対応する構文情報に対して割り当てられた前記圧縮符号とを隣接して配置する順序であることを特徴とする請求項１記載の符号化プログラム。
【請求項３】
前記所定の順序は、前記複数の単語それぞれに対して割り当てられた前記圧縮符号を隣接して配置する順序であることを特徴とする請求項１記載の符号化プログラム。
【請求項４】
前記複数の構文情報は、前記複数の単語の関係を表す構文木の木構造を複数の部分木により表現した情報であることを特徴とする請求項１乃至３のいずれか１項に記載の符号化プログラム。
【請求項５】
圧縮対象文書を記憶する記憶部と、
前記圧縮対象文書内の文に含まれる複数の単語の関係を解析して、前記複数の単語それぞれに対応する複数の構文情報を生成する構文解析部と、
前記複数の単語それぞれと前記複数の構文情報それぞれとに対して圧縮符号を割り当てる符号化部と、
前記複数の単語それぞれと前記複数の構文情報それぞれとに対して割り当てられた前記圧縮符号を、所定の順序で配列して出力する配列部と、
を備えることを特徴とする符号化装置。
【請求項６】
コンピュータが、
圧縮対象文書内の文に含まれる複数の単語の関係を解析して、前記複数の単語それぞれに対応する複数の構文情報を生成し、
前記複数の単語それぞれと前記複数の構文情報それぞれとに対して圧縮符号を割り当て、
前記複数の単語それぞれと前記複数の構文情報それぞれとに対して割り当てられた前記圧縮符号を、所定の順序で配列して出力する、
ことを特徴とする符号化方法。
【請求項７】
コンピュータが、
第１の検索キーワードを第１の単語符号に変換し、
圧縮対象文書内の文に含まれる複数の単語それぞれに対して割り当てられた単語符号と、前記複数の単語それぞれに対応する複数の構文情報それぞれに対して割り当てられた構文符号とが、所定の順序で配列された圧縮符号列から、前記第１の単語符号を検索し、
前記圧縮符号列内において前記第１の単語符号に対応する第１の構文符号を参照して、前記圧縮符号列から第２の単語符号を特定する、
ことを特徴とする検索方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、符号化プログラム、符号化装置、符号化方法、及び検索方法に関する。
【背景技術】
【０００２】
図１は、文書に対する様々なテキスト解析の間の関係の例を示している。テキスト解析には、字句解析、形態素解析（品詞解析）、構文解析（係り受け解析）、意味解析等が含まれる。字句解析は、表記に基づいて文書内の文を単語に分割する処理であり、形態素解析は、文を形態素に分割し、各形態素に対して品詞情報を付与する処理である。形態素解析により得られる形態素は、単語として扱われることもある。
【０００３】
構文解析は、単語の品詞情報に基づいて自立語を含む文節を合成し、文節に含まれる自立語に基づいて文節同士の係り受け関係（修飾関係）を求める処理であり、意味解析は、係り受け関係に基づいて同義表現、多義表現の意味を求める処理、又は複数の単語の中から類語を抽出する処理である。ある程度割り切った意味解析である類語抽出は、単語のみ、又は単語及び品詞情報に基づいて行うことができるが、係り受け関係を用いた方が意味解析の精度が向上する。
【０００４】
構文解析では、例えば、ルールベースで構造が定義され、必要に応じて複数の構造を組み合わせながら解析が行われる。構文解析で用いられるルールには、例えば、以下のようなものがある。
Ｓ→ＮＰ  ＶＰ  （Ｓ：文，ＮＰ：名詞句，ＶＰ：動詞句）
ＶＰ→Ｖ  Ｓ  （ＶＰ：動詞句，Ｖ：動詞，Ｓ：節）
【０００５】
このようなルールを繰り返し適用することで、最終的には、図２に示すような、１文に対応する木構造が生成される。Ａは形容詞を表し、Ｎは名詞を表し、Ａｄｖは副詞を表す。そして、生成された木構造から係り受け関係が判定される。係り受け関係の判定方法としては、文全体の木構造から判定する方法や、文節等に着目した部分的な木構造から判定する方法等が存在する。
【０００６】
図３は、従来のテキスト解析の解析結果を活用する活用処理の例を示している。文書３１１は、圧縮辞書３０１を用いて圧縮され、圧縮文書３１２として保存される。そして、活用時に圧縮文書３１２が伸張されて文書３１１が復元され、文書３１１に対して解析用辞書３０２を用いて字句解析及び構文解析を行うことで、解析結果３１３が生成される。次に、文書３１１及び解析結果３１３を用いて単語情報等を集計することで、集計結果３１４が生成され、解析結果３１３及び集計結果３１４がアプリケーションプログラム等により活用される。
【０００７】
構造化データの構造情報を用いることで、データ量を削減し、同時に暗号化を施したうえでデータ交換を可能とするデータ圧縮方法も知られている（例えば、特許文献１を参照）。このデータ圧縮方法では、圧縮モジュールは、予め与えられた構文指定情報を用いて構造化データの内部表現データを構造情報とコンテンツに分離し、さらにそれらを合わせて圧縮する。圧縮データは、ネットワークを介して送信側システムから受信側システムに渡される。伸長モジュールは、受信した圧縮データを構文指定情報を用いて構造化データの内部表現データに復元する。
【先行技術文献】
【特許文献】
【０００８】
【特許文献１】特開２００３−４４４５９号公報
【発明の概要】
【発明が解決しようとする課題】
【０００９】
上述した従来の活用処理では、圧縮文書を伸長した後に、字句解析及び構文解析と集計が行われるため、処理負荷が大きくなる。
【００１０】
なお、かかる問題は、構文解析結果を用いて単語情報等を集計する場合に限らず、構文解析結果を他の処理で用いる場合においても生ずるものである。
【００１１】
１つの側面において、本発明は、文書の構文解析結果を活用するための処理負荷を軽減することを目的とする。
【課題を解決するための手段】
【００１２】
１つの案では、符号化プログラムは、以下の処理をコンピュータに実行させる。
（１）コンピュータは、圧縮対象文書内の文に含まれる複数の単語の関係を解析して、複数の単語それぞれに対応する複数の構文情報を生成する。
（２）コンピュータは、複数の単語それぞれと複数の構文情報それぞれとに対して圧縮符号を割り当てる。
（３）コンピュータは、複数の単語それぞれと複数の構文情報それぞれとに対して割り当てられた圧縮符号を、所定の順序で配列して出力する。
【発明の効果】
【００１３】
実施形態によれば、文書の構文解析結果を活用するための処理負荷を軽減することができる。
【図面の簡単な説明】
【００１４】
【図１】テキスト解析の間の関係を示す図である。
【図２】文の木構造を示す図である。
【図３】従来の活用処理を示す図である。
【図４】ＬＺ７７符号化の圧縮辞書を示す図である。
【図５】ＬＺ７８符号化の圧縮辞書を示す図である。
【図６】符号化装置の機能的構成図である。
【図７】符号化処理のフローチャートである。
【図８】符号化装置の第１の具体例を示す機能的構成図である。
【図９】符号化処理の第１の具体例を示すフローチャートである。
【図１０】単語辞書を示す図である。
【図１１】基本形の構文木を示す図である。
【図１２】４本の部分木を接続した構文木を示す図である。
【図１３】ノードが３本の枝を持つ構文木を示す図である。
【図１４】ノードが３本の枝を持つ構文木に対応する二分木を示す図である。
【図１５】英語文の構文木を示す図である。
【図１６】第１の具体例における圧縮符号の符号表を示す図である。
【図１７】構文符号及び入れ子符号の最下位８ビットを示す図である。
【図１８】構文木に対する構文符号及び入れ子符号を示す図である。
【図１９】第１の順序で配列された圧縮符号列を示す図である。
【図２０】第２の順序で配列された圧縮符号列を示す図である。
【図２１】圧縮符号列を用いた表現検索のフローチャートである。
【図２２】圧縮符号列を用いた近傍検索のフローチャートである。
【図２３】符号化装置の第２の具体例を示す機能的構成図である。
【図２４】符号化処理の第２の具体例を示すフローチャートである。
【図２５】第２の具体例における中間符号の符号表を示す図である。
【図２６】複数の圧縮対象文書を示す図である。
【図２７】集計情報を示す図である。
【図２８】第２の具体例における圧縮符号の符号表を示す図である。
【図２９】圧縮符号列及び集計情報を用いた表現検索のフローチャートである。
【図３０】圧縮符号列及び集計情報を用いた近傍検索のフローチャートである。
【図３１】情報処理装置の構成図である。
【発明を実施するための形態】
【００１５】
以下、図面を参照しながら、実施形態を詳細に説明する。
図３に示した活用処理では、圧縮文書を伸長した後に、字句解析及び構文解析と集計が行われるため、処理負荷が大きくなる。例えば、構文解析では、１文に含まれる単語の個数Ｎに対して、適用可能なルールを探索するための計算量がＮ＾２又はＮ＾３のオーダになるため、構文解析の負荷が大きい。特に、携帯端末のように計算資源が少ない情報処理装置では、活用処理の負荷の影響が大きくなる。
【００１６】
そこで、活用処理の負荷を軽減するために、文書を圧縮する前に字句解析及び構文解析を行って、文書とともに構文解析結果を圧縮して保存することも考えられる。しかし、構文解析結果のデータ量は、解析対象である文書のデータ量の数倍乃至十数倍になるため、多くの記憶領域が占有される。
【００１７】
また、活用時に構文解析を行う必要はなくなるが、圧縮された構文解析結果を伸張する処理が追加される。この場合、圧縮文書と圧縮された構文解析結果とを一旦伸張して、伸張された文書と伸張された構文解析結果とを対応付けた後に、構文解析結果の活用が可能になる。したがって、伸長処理と対応付け処理の負荷は軽減されない。
【００１８】
圧縮文書と圧縮された構文解析結果とを一旦伸張する理由は、圧縮辞書と解析用辞書との間に共通性がないためである。圧縮辞書には、最長一致文字列のように、単語を意識しない符号化のための文字列が格納されるのに対して、解析用辞書には、単語及び品詞の情報が格納される。
【００１９】
図４は、ＬＺ７７符号化で用いられる圧縮辞書の例を示しており、図５は、ＬＺ７８符号化で用いられる圧縮辞書の例を示している。図４及び図５に示されるように、圧縮辞書の文字列は単語の途中で分割されることが多く、単語の情報が保持されないため、圧縮辞書の文字列を構文解析結果と対応付けることは困難である。
【００２０】
そこで、圧縮辞書の文字列として自然言語の単語を用いることで、圧縮処理と字句解析とで辞書を共用することが考えられる。１つの辞書に基づいて字句解析を行うとともに単語を圧縮することで、各単語とその構文解析結果とを圧縮されたままの状態で対応付けることが可能になる。
【００２１】
図６は、実施形態の符号化装置の機能的構成例を示している。図６の符号化装置６０１は、記憶部６１１、構文解析部６１２、符号化部６１３、及び配列部６１４を含む。
【００２２】
記憶部６１１は、圧縮対象文書を記憶する。構文解析部６１２は、圧縮対象文書に対する構文解析を行い、符号化部６１３は、圧縮対象文書及び構文解析結果に対する圧縮処理を行う。配列部６１４は、圧縮結果を配列して出力する。
【００２３】
図７は、図６の符号化装置６０１が行う符号化処理の例を示すフローチャートである。まず、構文解析部６１２は、圧縮対象文書内の文に含まれる複数の単語の関係を解析して、複数の単語それぞれに対応する複数の構文情報を生成する（ステップ７０１）。次に、符号化部６１３は、複数の単語それぞれと複数の構文情報それぞれとに対して圧縮符号を割り当てる（ステップ７０２）。そして、配列部６１４は、複数の単語それぞれと複数の構文情報それぞれとに対して割り当てられた圧縮符号を、所定の順序で配列して出力する（ステップ７０３）。
【００２４】
このような符号化装置６０１によれば、文書の構文解析結果を活用するための処理負荷を軽減することができる。
【００２５】
図８は、図６の符号化装置６０１の第１の具体例を示している。図８の符号化装置６０１は、記憶部６１１、構文解析部６１２、符号化部６１３、配列部６１４、及び字句解析部８０１を含む。符号化処理の開始時に、記憶部６１１は、圧縮対象文書８１１、単語辞書８１３、及び符号表８１４を記憶している。
【００２６】
図９は、図７の符号化処理の第１の具体例を示すフローチャートである。図９の符号化処理は、図８の符号化装置６０１により行われる。まず、字句解析部８０１は、単語辞書８１３を用いて、圧縮対象文書８１１に対する字句解析を行い、圧縮対象文書８１１内の各文に含まれる単語を抽出する（ステップ９０１）。
【００２７】
図１０は、単語辞書８１３の例を示している。図１０の単語辞書８１３の各エントリは単語を識別するための単語ＩＤ、単語、及び付加情報を含む。付加情報は、単語の属性を表す情報であり、例えば、品詞情報である。字句解析部８０１は、各文の文字列と単語辞書８１３に登録された各単語の文字列とを比較することで、該当する単語を抽出することができる。
【００２８】
次に、構文解析部６１２は、字句解析の解析結果を用いて各文に対する構文解析を行い、構文解析結果８１２を生成して記憶部６１１に格納する（ステップ９０２）。
【００２９】
図１１は、構文解析結果８１２を表す構文木の例を示している。図１１の構文木は、ノード０〜ノード１４の１５個のノードからなる４階層の二分木であり、各ノードの番号は、二分木の木構造中の位置を表す。この二分木を基本形とする複数の部分木を入れ子構造で接続することで、より深い階層構造を有する構文木を生成することができる。構文木は一部分のみが深くなる特徴を持つが、基本形の部分木の葉ノードに別の部分木を接ぎ木することで、不要な部分の割合を少なくすることが可能である。
【００３０】
図１２は、４本の部分木を接続した構文木の例を示している。部分木１２０２及び部分木１２０３は、部分木１２０１を親とする子の部分木であり、部分木１２０４は、部分木１２０２を親とする子の部分木である。
【００３１】
部分木１２０２の根ノード０は、親の部分木１２０１の葉ノード７と一致しており、部分木１２０３の根ノード０は、親の部分木１２０１の葉ノード１３と一致している。また、部分木１２０４の根ノード０は、親の部分木１２０２の葉ノード１１と一致している。これらの４本の部分木を用いることで、例えば、以下の１９個のノードからなる９階層の二分木を記述することができる。
部分木１２０１：ノード０〜ノード３，ノード５〜ノード７，ノード１３
部分木１２０２：ノード１〜ノード５，ノード１１
部分木１２０３：ノード１，ノード２
部分木１２０４：ノード１，ノード３，ノード４
【００３２】
このように、構文木の木構造を複数の部分木により表現することで、一部分のみが深い階層構造を有する構文木を、記憶部６１１に効率良く格納することができる。この場合、構文解析結果８１２は、構文木の各ノードに対応する構文情報とともに、親の部分木と子の部分木との接続関係を表す入れ子情報を含む。また、各ノードに対応する構文情報は、ノードの位置と、そのノードが表す文、句、品詞等の情報とを含む。
【００３３】
構文木が二分木でない場合は、構文木を二分木に変換することで、基本形を適用することが可能である。例えば、１つのノードが３本又は４本の枝を持つ場合は、１階層のダミーノードを挿入することで二分木に変換することができ、１つのノードが５本〜８本の枝を持つ場合は、２階層のダミーノードを挿入することで二分木に変換することができる。
【００３４】
図１３は、１つのノードが３本の枝を持つ構文木の例を示している。図１３の構文木は、「僕は先生と僕の自転車で学校に行った」という文の構文解析結果を表しており、ＰＰは前置詞句又は後置詞句を表し、Ｐは前置詞又は後置詞を表し、ＴＥＮＳは時制を表す。
【００３５】
ＮＰ１３０１が持つ３本の枝のうち、１本の枝は単語「の」の葉ノードに対応し、他の２本の枝は別のＮＰに対応する。また、ＮＰ１３０２が持つ３本の枝のうち、１本の枝は単語「と」の葉ノードに対応し、他の２本の枝は葉ノードＮに対応する。この場合、単語「と」及び単語「の」のそれぞれの葉ノードは、接続助詞等の品詞を表すと考えられる。
【００３６】
図１４は、図１３の構文木に対応する二分木の例を示している。この例では、ＮＰ１３０１の下に２個のダミーノードＤｍを設け、一方のダミーノードＤｍの下にさらに２個のダミーノードＤｍを設けることで、枝の本数が３本から２本へ削減されている。
【００３７】
図１５は、英語文の構文木の例を示している。図１５の構文木１５０１は、“I saw a girl with a telescope”という文１５０２の構文解析結果を表している。構文木１５０１の葉ノードのＰＲＯＮは代名詞を表し、ＶＥＲＢは動詞を表し、ＤＥＴは限定詞を表し、ＮＯＵＮは名詞を表し、ＰＲＥＰは前置詞又は後置詞を表す。各葉ノードには、文１５０２から字句解析により抽出された単語が対応付けられる。
【００３８】
符号化部６１３は、単語辞書８１３及び符号表８１４を参照して、圧縮対象文書８１１内の各文に含まれる各単語と、構文解析結果８１２に含まれる構文情報及び入れ子情報とに対して、圧縮符号を割り当てる（ステップ９０３）。そして、符号化部６１３は、単語、構文情報、及び入れ子情報に対して割り当てた圧縮符号を、それぞれ、単語符号８１５、構文符号８１６、及び入れ子符号８１７として記憶部６１１に格納する。
【００３９】
符号表８１４には、単語、構文情報、及び入れ子情報と圧縮符号との対応関係が登録される。圧縮符号としては、例えば、１バイト〜５バイトの固定長符号を用いることができる。このような圧縮符号の例を、１６進数を用いて以下に示す。
英数字：００ｈ〜７Ｆｈ（１バイト）
ＣＪＫ文字：Ａ０００００ｈ〜ＡＦＦＦＦＦｈ（３バイト）
英語の単語：Ｂ０００００ｈ〜Ｂ７ＦＦＦＦｈ（３バイト）
英語の連結単語：Ｂ８００００００ｈ〜ＢＦＦＦＦＦＦＦｈ（４バイト）
日本語の単語：Ｃ０００００ｈ〜Ｃ７ＦＦＦＦｈ（３バイト）
日本語の連結単語：Ｃ８００００００ｈ〜ＣＦＦＦＦＦＦＦｈ（４バイト）
第３言語の単語：Ｄ０００００ｈ〜Ｄ７ＦＦＦＦｈ（３バイト）
第３言語の連結単語：Ｄ８００００００ｈ〜ＤＦＦＦＦＦＦＦｈ（４バイト）
４桁の数値：Ｅ０００００ｈ〜Ｅ３ＦＦＦＦｈ（３バイト）
６桁の数値：Ｅ４００００００ｈ〜Ｅ４ＦＦＦＦＦＦｈ（４バイト）
９桁の数値：Ｅ５００００００００ｈ〜Ｅ８ＦＦＦＦＦＦＦＦｈ（５バイト）
構文情報及び入れ子情報：Ｆ０００００ｈ〜（３バイト）
【００４０】
４桁及び６桁の数値に割り当てられた圧縮符号は、１０進数の数値に対して３桁毎に“，”が挿入されているか否か、正の数又は負の数のいずれであるか等の数値表現上のオプションを区別する符号も含んでいる。
【００４１】
単語、構文情報、及び入れ子情報に割り当てられた３バイトの圧縮符号のうち、上位４ビットは、符号種別を識別するために用いられる。例えば、“Ｃ”は日本語の単語を表し、“Ｆ”は構文情報及び入れ子情報を表す。残りの２０ビットは、個々の単語、構文情報、又は入れ子情報を識別するために用いられる。
【００４２】
上記圧縮符号は一例に過ぎず、単語、構文情報、及び入れ子情報に対して別の方法で圧縮符号を割り当ててもよい。圧縮符号は、別のサイズの固定長符号であってもよく、可変長符号であってもよい。
【００４３】
図１６は、符号表８１４の例を示している。図１６の符号表８１４の各エントリは単語、構文情報、及び入れ子情報を識別するためのＩＤと、圧縮符号とを含む。単語のＩＤとしては、図１０の単語ＩＤが用いられ、構文情報及び入れ子情報のＩＤとしては、単語ＩＤと重複しないＩＤが用いられる。例えば、単語ＩＤ“１”に対応する単語“さくら”の圧縮符号は“Ｃ０１２３４ｈ”である。
【００４４】
符号化部６１３は、単語、構文情報、及び入れ子情報を、符号表８１４の対応する圧縮符号に置き換えることで、単語符号８１５、構文符号８１６、及び入れ子符号８１７を生成することができる。単語辞書８１３の情報と符号表８１４の情報とをまとめて管理することも可能である。
【００４５】
構文情報及び入れ子情報に割り当てられた３バイトの圧縮符号のうち、下位２０ビットの内訳は、以下の通りである。
４ビット：基本形の二分木内のノードの番号
８ビット：ノードを含む二分木のＩＤ
８ビット：ノードが表す文、句、品詞等の情報、又は子の二分木のＩＤ
【００４６】
図１７は、構文情報及び入れ子情報に対する圧縮符号の最下位８ビットの例を示している。この例では、Ｓ、ＮＰ、ＶＰ、ＰＰ、Ｎ、Ｖ、Ｐ、及びＤに対して、それぞれ、“０ｘ００”、“０ｘ０１”、“０ｘ０２”、“０ｘ０３”、“０ｘ０４”、“０ｘ０５”、“０ｘ０６”、及び“０ｘ０７”が割り当てられている。Ｄは限定詞を表す。子の二分木のＩＤに対しては、“０ｘ２０”以上の符号が割り当てられる。
【００４７】
図１８は、図１５の構文木の構文情報及び入れ子情報に対して割り当てられた圧縮符号の例を示している。この構文木は、親の二分木の葉ノード１２及び葉ノード１４の各位置に子の二分木の根ノード０を接続することで生成されている。親の二分木のＩＤは“０ｘ００”であり、葉ノード１２に接続された子の二分木のＩＤは“０ｘ２０”であり、葉ノード１４に接続された子の二分木のＩＤは“０ｘ２１”である。
【００４８】
例えば、親の二分木の根ノード０に位置するＳの構文情報に対しては、構文符号“０ｘＦ０００００”が割り当てられ、ノード１に位置するＮＰの構文情報に対しては、構文符号“０ｘＦ１０００１”が割り当てられる。
【００４９】
また、親の二分木の葉ノード３に位置するＰＲＯＮの構文情報に対しては、構文符号“０ｘＦ３０００４”が割り当てられる。構文符号“０ｘＦ３０００４”のうち、先頭の“Ｆ”（４ビット）は、構文情報であることを表し、次の“３”（４ビット）は、ノード３の番号を表し、次の“００”（８ビット）は、二分木のＩＤを表し、末尾の“０４”（８ビット）は、Ｎ（名詞）を表す。
【００５０】
親の二分木の葉ノード１２には、ＮＰの構文情報と、子の二分木を示す入れ子情報とが存在する。このうち、入れ子情報に対しては、入れ子符号“０ｘＦＣ００２０”が割り当てられ、ＮＰの構文情報に対しては、構文符号“０ｘＦ０２００１”が割り当てられる。
【００５１】
入れ子符号“０ｘＦＣ００２０”のうち、先頭の“Ｆ”は、入れ子情報であることを表し、次の“Ｃ”は、ノード１２の番号を表し、次の“００”は、二分木のＩＤを表し、末尾の“２０”は、子の二分木のＩＤを表す。また、構文符号“０ｘＦ０２００１”のうち、先頭の“Ｆ”は、構文情報であることを表し、次の“０”は、子の二分木の根ノード０の番号を表し、次の“２０”は、子の二分木のＩＤを表し、末尾の“０１”は、ＮＰ（名詞句）を表す。
【００５２】
同様に、親の二分木の葉ノード１４には、ＮＰの構文情報と、子の二分木を示す入れ子情報とが存在する。このうち、入れ子情報に対しては、入れ子符号“０ｘＦＥ００２１”が割り当てられ、ＮＰの構文情報に対しては、構文符号“０ｘＦ０２１０１”が割り当てられる。
【００５３】
入れ子符号“０ｘＦＥ００２１”のうち、先頭の“Ｆ”は、入れ子情報であることを表し、次の“Ｅ”は、ノード１４の番号を表し、次の“００”は、二分木のＩＤを表し、末尾の“２１”は、子の二分木のＩＤを表す。また、構文符号“０ｘＦ０２１０１”のうち、先頭の“Ｆ”は、構文情報であることを表し、次の“０”は、子の二分木の根ノード０の番号を表し、次の“２１”は、子の二分木のＩＤを表し、末尾の“０１”は、ＮＰ（名詞句）を表す。
【００５４】
このように、２本の部分木を接続するノードに対しては、構文符号８１６及び入れ子符号８１７が割り当てられ、それ以外のノードに対しては、構文符号８１６のみが割り当てられる。
【００５５】
配列部６１４は、単語符号８１５、構文符号８１６、及び入れ子符号８１７を所定の順序で配列して圧縮符号列を生成し、生成した圧縮符号列を、活用処理を行う情報処理装置へ出力する（ステップ９０４）。活用処理は、表現検索、近傍検索等のテキストマイニングを含む。データマイニングと連携した活用処理も可能である。所定の順序としては、例えば、以下のような順序が用いられる。
（１）第１の順序
各単語に対して割り当てられた単語符号８１５と、その単語に対応する構文情報に対して割り当てられた構文符号８１６とを隣接して配置する。
（２）第２の順序
複数の単語に対して割り当てられた複数の単語符号８１５を隣接して配置する。
【００５６】
図１９は、第１の順序で配列された圧縮符号列の例を示している。この例では、１文毎に入れ子符号８１７と葉ノード以外の構文符号８１６とが先に配置され、続いて、葉ノードの構文符号８１６とその葉ノードに対応する単語の単語符号８１５とが隣接して配置される。例えば、単語“おいしい”に対応する構文符号“０ｘＦ１２００８”に隣接して、その単語の単語符号“０ｘＣ０１３４５”が配置され、単語“最中”に対応する構文符号“０ｘＦ２２００４”に隣接して、その単語の単語符号“０ｘＣ０２６５１”が配置される。
【００５７】
第１の順序で圧縮符号を配列することで、構文解析結果を活用する活用処理において、各単語とその構文解析結果とを容易に対応付けることができる。
【００５８】
図２０は、第２の順序で配列された圧縮符号列の例を示している。この例では、１文毎に単語符号８１５がまとめて先に配置され、続いて、入れ子符号８１７と構文符号８１６とがまとめて配置される。例えば、単語符号“０ｘＣ０１２３４”、“０ｘＣ０２３４５”、及び“０ｘＣ０３４５６”が隣接して配置される。
【００５９】
第２の順序で圧縮符号を配列することで、単語のみを用いる活用処理において、単語符号を効率良く参照することが可能になる。
【００６０】
第１の順序は、表現検索等の活用処理に適している。表現検索は、インターネット上のソーシャルネットワーキングサービス（ＳＮＳ）等から取得される大量の文書から、特定の商品又は製品に対するユーザの評価を検索する処理である。商品名、製品名、機能名等を表す単語に係る形容詞等の修飾語、ＳＶＣ文型における述語等を抽出することで、ユーザの評価を求めることができる。
【００６１】
図２１は、圧縮符号列を用いた表現検索の例を示すフローチャートである。表現検索を行う情報処理装置は、単語辞書８１３及び符号表８１４を記憶している。
【００６２】
まず、情報処理装置は、１つ又は複数の文書の圧縮符号列を検索対象符号列として設定し（ステップ２１０１）、オペレータから入力された商品名、製品名、機能名等の単語を検索キーワードとして設定する（ステップ２１０２）。
【００６３】
次に、情報処理装置は、検索キーワードが単語辞書８１３に存在するか否かをチェックする（ステップ２１０３）。検索キーワードが単語辞書８１３に存在する場合（ステップ２１０３，ＹＥＳ）、情報処理装置は、単語辞書８１３及び符号表８１４を参照して、検索キーワードを単語符号に変換する（ステップ２１０４）。
【００６４】
次に、情報処理装置は、検索対象符号列内において、検索キーワードに対応する単語符号を検索する（ステップ２１０５）。次に、情報処理装置は、検索した単語符号に隣接する構文符号を、その単語符号に対応する構文符号として参照し、参照した構文符号から、検索した単語符号に関連する単語符号及び構文符号を特定する（ステップ２１０６）。
【００６５】
関連する単語符号としては、例えば、検索キーワードと同一の構文木内において、検索キーワードを修飾する語句、又はＳＶＣ文型における述語に相当する語句の単語符号が特定される。検索キーワードを修飾する語句としては、形容詞、形容詞句等が特定される。例えば、名詞Ｘを用いて表現される句“Ｘのような”は、形容詞句に相当する。述語に相当する語句としては、例えば、キーワードを主語とした主格補語、主格補語に相当する形容詞句等が特定される。そして、情報処理装置は、単語辞書８１３及び符号表８１４を参照して、特定した単語符号を語句に変換する。
【００６６】
一方、検索キーワードが単語辞書８１３に存在しない場合（ステップ２１０３，ＮＯ）、情報処理装置は、検索キーワードを複数の単語に分割する（ステップ２１０７）。そして、情報処理装置は、単語辞書８１３及び符号表８１４を参照して、各単語を単語符号に変換し（ステップ２１０８）、ステップ２１０５以降の処理を行う。
【００６７】
例えば、図１９の圧縮符号列において、名詞として用いられている“最中（もなか）”に対する評価を調べる場合、“最中”が検索キーワードとして設定される。そして、圧縮符号列において、“最中”の単語符号“０ｘＣ０２６５１”が検索され、その単語符号に隣接する構文符号“０ｘＦ２２００４”が参照され、その構文符号と同じ二分木のＩＤ“２０”を含む構文符号“０ｘＦ１２００８”が特定される。この構文符号“０ｘＦ１２００８”の末尾の８ビットは形容詞を表すため、その構文符号に隣接する単語符号“０ｘＣ０１３４５”が特定され、単語“おいしい”に変換される。
【００６８】
このように、構文符号８１６と単語符号８１５とを隣接して配置することで、圧縮符号列から特定の構文に対応する単語を高速に検索することができる。
【００６９】
単語符号“０ｘＣ０２６５１”の代わりに、構文符号“０ｘＦ２２００４”の末尾の８ビットと単語符号“０ｘＣ０２６５１”とを併せた３２ビットの圧縮符号“０ｘ０４Ｃ０２６５１”を用いて、圧縮符号列を検索することも可能である。この場合、名詞としての“最中”のみを特定できるため、表現検索の精度が向上する。
【００７０】
第２の順序は、複数の単語にわたる検索又は置換、近傍検索等の活用処理に適している。複数の単語にわたる検索は、文書から複数の単語を検索する処理であり、複数の単語にわたる置換は、文書中の複数の単語の一部又は全部を置換する処理である。例えば、“サーバ”及び“サーバー”が混在する文書中の“サーバー”を“サーバ”に変換して表記を統一する際に、“ＡＡＡサーバー”のような固有名詞を統一対象から除外する置換処理は、複数の単語にわたる置換に含まれる。
【００７１】
近傍検索は、ある単語の前後の所定範囲に含まれる別の単語を検索する処理である。例えば、単語“運用”の近傍１０単語以内に含まれる単語“改善”を、文を跨ぐことなく検索する処理は、近傍検索に含まれる。
【００７２】
図２２は、圧縮符号列を用いた近傍検索の例を示すフローチャートである。この例では、検索キーワードＷ１の近傍Ｍ単語以内に含まれる検索キーワードＷ２が検索される。近傍検索を行う情報処理装置は、単語辞書８１３及び符号表８１４を記憶している。
【００７３】
まず、情報処理装置は、１つ又は複数の文書の圧縮符号列を検索対象符号列として設定し（ステップ２２０１）、オペレータから入力された２個の単語を検索キーワードＷ１及び検索キーワードＷ２として設定する（ステップ２２０２）。
【００７４】
次に、情報処理装置は、検索キーワードＷ１及び検索キーワードＷ２が単語辞書８１３に存在するか否かをチェックする（ステップ２２０３）。検索キーワードＷ１及び検索キーワードＷ２が単語辞書８１３に存在する場合（ステップ２２０３，ＹＥＳ）、情報処理装置は、単語辞書８１３及び符号表８１４を参照して、各検索キーワードを単語符号に変換する（ステップ２２０４）。
【００７５】
次に、情報処理装置は、検索対象符号列内において、各検索キーワードに対応する単語符号を検索し（ステップ２２０５）、検索した各単語符号に対応する構文符号及び入れ子符号を参照する（ステップ２２０６）。そして、情報処理装置は、参照した構文符号及び入れ子符号から、検索キーワードＷ１と同一の構文木に属している近傍Ｍ単語以内に含まれる検索キーワードＷ２を、符号化された状態で特定し、特定した検索キーワードＷ２の個数を求める。
【００７６】
一方、検索キーワードＷ１又は検索キーワードＷ２が単語辞書８１３に存在しない場合（ステップ２２０３，ＮＯ）、情報処理装置は、単語辞書８１３に存在しない検索キーワードを複数の単語に分割する（ステップ２２０７）。そして、情報処理装置は、単語辞書８１３及び符号表８１４を参照して、分割後の各単語を単語符号に変換し（ステップ２２０８）、ステップ２２０５以降の処理を行う。ステップ２２０８において、単語辞書８１３に存在する検索キーワードは、そのまま単語符号に変換される。
【００７７】
このように、単語符号８１５を語順を保ちながら隣接して配置することで、主として単語を参照し、補助的に構文情報を参照するような処理を、高速に行うことができる。
【００７８】
図９の符号化処理によれば、字句解析及び構文解析が圧縮時に行われ、活用時には構文解析結果を圧縮したままで活用できるため、計算資源に対する活用処理の負荷が軽減される。特に、携帯端末のような計算資源が少ない情報処理装置が、テキスト読み上げのような、構文解析結果を活用すると品質が向上する活用処理を行う場合に、大きな効果が期待できる。
【００７９】
活用時に字句解析及び構文解析を行う必要がないため、圧縮文書を伸長する必要もなくなり、圧縮文書の伸長後に字句解析及び構文解析を行う場合と比較して、伸長処理の計算コストが削減される。
【００８０】
図２３は、図６の符号化装置６０１の第２の具体例を示している。図２３の符号化装置６０１は、図８の符号化装置６０１と同様に、字句解析部８０１、記憶部６１１、構文解析部６１２、符号化部６１３、及び配列部６１４を含む。符号化部６１３は、変換部２３０１、集計部２３０２、生成部２３０３、及び変換部２３０４を含む。符号化処理の開始時に、記憶部６１１は、圧縮対象文書８１１、単語辞書８１３、及び中間符号の符号表２３１２を記憶している。
【００８１】
図２４は、図７の符号化処理の第２の具体例を示すフローチャートである。図２４の符号化処理は、図２３の符号化装置６０１により行われる。図２４のステップ２４０１及びステップ２４０２の処理は、図９のステップ９０１及びステップ９０２の処理と同様である。
【００８２】
符号化部６１３の変換部２３０１は、単語辞書８１３及び符号表２３１２を参照して、圧縮対象文書８１１内の各文に含まれる各単語と、構文解析結果８１２に含まれる構文情報及び入れ子情報とに対して、中間符号を割り当てる（ステップ２４０３）。そして、変換部２３０１は、単語、構文情報、及び入れ子情報に対して割り当てた中間符号を、中間符号列２３１１として記憶部６１１に格納する。
【００８３】
図２５は、中間符号の符号表２３１２の例を示している。図１６の符号表２３１２の各エントリは単語、構文情報、及び入れ子情報を識別するためのＩＤと、中間符号とを含む。中間符号としては、例えば、図１６の圧縮符号と同様の符号を用いることができる。
【００８４】
集計部２３０２は、中間符号列２３１１に含まれる各中間符号の出現回数をカウントし、集計情報２３１４を生成して記憶部６１１に格納する（ステップ２４０４）。複数の圧縮対象文書８１１を符号化する場合は、文書毎に中間符号の出現回数がカウントされる。
【００８５】
図２６は、複数の圧縮対象文書８１１の例を示しており、図２７は、図２６の複数の圧縮対象文書８１１に対する集計情報２３１４の例を示している。図２７の集計情報２３１４の各エントリは、圧縮対象文書８１１の文書ＩＤと、圧縮対象文書８１１の中間符号列２３１１に含まれる各中間符号の出現回数とを含む。図２７では、中間符号が単語で表現されているが、実際には、図２５のＩＤにより、単語、構文情報、及び入れ子情報の中間符号が識別される。
【００８６】
例えば、文書ＩＤ“１”に対応する圧縮対象文書８１１には、単語“さくら”、“学校”、及び“の”が１個ずつ含まれ、単語“かえで”は含まれない。また、文書ＩＤ“２”に対応する圧縮対象文書８１１には、単語“かえで”、“学校”、及び“の”が１個ずつ含まれ、単語“さくら”は含まれない。
【００８７】
生成部２３０３は、集計情報２３１４に基づいて、出現頻度がより高い情報に対してより短い圧縮符号を割り当て、出現頻度がより低い情報に対してより長い圧縮符号を割り当てる符号表２３１３を生成する（ステップ２４０５）。このとき、生成部２３０３は、集計情報２３１４に記録されている文書毎の出現回数から、所定サイズのブロック毎の出現回数を求め、ブロック毎の出現回数に基づいて適切な符号表２３１３を生成することができる。
【００８８】
図２８は、圧縮符号の符号表２３１３の例を示している。図２８の符号表２３１３の各エントリは単語、構文情報、及び入れ子情報を識別するためのＩＤと、圧縮符号とを含む。単語辞書８１３、符号表２３１２、及び符号表２３１３の情報をまとめて管理することも可能である。
【００８９】
変換部２３０４は、単語辞書８１３及び符号表２３１３を参照して、圧縮対象文書８１１内の各文に含まれる各単語と、構文解析結果８１２に含まれる構文情報及び入れ子情報とに対して、圧縮符号を割り当てる（ステップ２４０６）。そして、変換部２３０４は、単語、構文情報、及び入れ子情報に対して割り当てた圧縮符号を、それぞれ、単語符号８１５、構文符号８１６、及び入れ子符号８１７として記憶部６１１に格納する。
【００９０】
配列部６１４は、単語符号８１５、構文符号８１６、及び入れ子符号８１７を所定の順序で配列して圧縮符号列を生成し、生成した圧縮符号列と集計情報２３１４とを、活用処理を行う情報処理装置へ出力する（ステップ２４０７）。所定の順序としては、例えば、上述した第１の順序又は第２の順序が用いられる。
【００９１】
図２４の符号化処理によれば、図９の符号化処理と同様に、活用処理の負荷が軽減される。さらに、圧縮対象文書８１１の圧縮符号列と集計情報２３１４とが関連付けて出力されるため、それらの情報の管理を一元化することができる。構文解析結果と集計情報２３１４とを併せて用いることで、活用処理の精度が向上するとともに、活用処理が高速化される。
【００９２】
図２９は、圧縮符号列及び集計情報２３１４を用いた表現検索の例を示すフローチャートである。表現検索を行う情報処理装置は、単語辞書８１３、符号表２３１２、及び符号表２３１３を記憶している。
【００９３】
まず、情報処理装置は、複数の文書の圧縮符号列を検索対象符号列として設定し（ステップ２９０１）、オペレータから入力された商品名、製品名、機能名等の単語を検索キーワードとして設定する（ステップ２９０２）。
【００９４】
次に、情報処理装置は、検索キーワードが単語辞書８１３に存在するか否かをチェックする（ステップ２９０３）。検索キーワードが単語辞書８１３に存在する場合（ステップ２９０３，ＹＥＳ）、情報処理装置は、集計情報２３１４に基づいて検索対象文書を決定する（ステップ２９０４）。このとき、情報処理装置は、集計情報２３１４に登録された文書のうち、検索キーワードを含む１つ又は複数の文書を検索対象文書として選択することができる。
【００９５】
次に、情報処理装置は、単語辞書８１３及び符号表２３１３を参照して、検索キーワードを単語符号に変換し（ステップ２９０５）、検索対象符号列内において、検索キーワードに対応する単語符号を検索する（ステップ２９０６）。次に、情報処理装置は、検索した単語符号に隣接する構文符号を、その単語符号に対応する構文符号として参照し、参照した構文符号から、検索した単語符号に関連する単語符号及び構文符号を特定する（ステップ２９０７）。そして、情報処理装置は、単語辞書８１３及び符号表２３１３を参照して、特定した単語符号を語句に変換する。
【００９６】
一方、検索キーワードが単語辞書８１３に存在しない場合（ステップ２９０３，ＮＯ）、情報処理装置は、検索キーワードを複数の単語に分割する（ステップ２９０８）。次に、情報処理装置は、集計情報２３１４に基づいて候補文書を決定する（ステップ２９０９）。このとき、情報処理装置は、集計情報２３１４に登録された文書のうち、検索キーワードを分割して得られた複数の単語をすべて含む１つ又は複数の文書を、検索対象文書として選択することができる。
【００９７】
次に、情報処理装置は、単語辞書８１３及び符号表２３１３を参照して、各単語を単語符号に変換する（ステップ２９１０）。そして、情報処理装置は、候補文書の圧縮符号列のうち、検索キーワードの各単語符号を含む圧縮符号列を抽出し、その候補文書を検索対象文書に決定して（ステップ２９１１）、ステップ２９０６以降の処理を行う。
【００９８】
図２９の表現検索によれば、集計情報２３１４に基づいて検索対象文書を効果的に絞り込むことができる。
【００９９】
図３０は、圧縮符号列及び集計情報２３１４を用いた近傍検索の例を示すフローチャートである。近傍検索を行う情報処理装置は、単語辞書８１３、符号表２３１２、及び符号表２３１３を記憶している。
【０１００】
まず、情報処理装置は、複数の文書の圧縮符号列を検索対象符号列として設定し（ステップ３００１）、オペレータから入力された２個の単語を検索キーワードＷ１及び検索キーワードＷ２として設定する（ステップ３００２）。
【０１０１】
次に、情報処理装置は、検索キーワードＷ１及び検索キーワードＷ２が単語辞書８１３に存在するか否かをチェックする（ステップ３００３）。検索キーワードＷ１及び検索キーワードＷ２が単語辞書８１３に存在する場合（ステップ３００３，ＹＥＳ）、情報処理装置は、集計情報２３１４に基づいて検索対象文書を決定する（ステップ３００４）。このとき、情報処理装置は、集計情報２３１４に登録された文書のうち、検索キーワードＷ１及び検索キーワードＷ２を含む１つ又は複数の文書を検索対象文書として選択することができる。
【０１０２】
次に、情報処理装置は、単語辞書８１３及び符号表２３１３を参照して、各検索キーワードを単語符号に変換する（ステップ３００５）。次に、情報処理装置は、検索対象符号列内において、各検索キーワードに対応する単語符号を検索し（ステップ３００６）、検索した各単語符号に対応する構文符号及び入れ子符号を参照する（ステップ３００７）。そして、情報処理装置は、参照した構文符号及び入れ子符号から、検索キーワードＷ１と同一の構文木に属している近傍Ｍ単語以内に含まれる検索キーワードＷ２を、符号化された状態で特定し、特定した検索キーワードＷ２の個数を求める。
【０１０３】
一方、検索キーワードＷ１又は検索キーワードＷ２が単語辞書８１３に存在しない場合（ステップ３００３，ＮＯ）、情報処理装置は、単語辞書８１３に存在しない検索キーワードを複数の単語に分割する（ステップ３００８）。次に、情報処理装置は、集計情報２３１４に基づいて候補文書を決定する（ステップ３００９）。このとき、情報処理装置は、集計情報２３１４に登録された文書のうち、検索キーワードを分割して得られた複数の単語をすべて含む１つ又は複数の文書を、検索対象文書として選択することができる。
【０１０４】
次に、情報処理装置は、単語辞書８１３及び符号表２３１３を参照して、分割後の各単語を単語符号に変換する（ステップ３０１０）。このとき、単語辞書８１３に存在する検索キーワードは、そのまま単語符号に変換される。
【０１０５】
そして、情報処理装置は、候補文書の圧縮符号列のうち、検索キーワードＷ１の各単語符号と検索キーワードＷ２の各単語符号とを含む圧縮符号列を抽出し、その候補文書を検索対象文書に決定して（ステップ３０１１）、ステップ３００６以降の処理を行う。
【０１０６】
図３０の近傍検索によれば、図２９の表現検索と同様に、集計情報２３１４に基づいて検索対象文書を効果的に絞り込むことができる。
【０１０７】
図６、図８、及び図２３の符号化装置６０１の構成は一例に過ぎず、符号化装置６０１の用途や条件に応じて一部の構成要素を省略又は変更してもよい。例えば、図８及び図２３の符号化装置６０１において、圧縮対象文書８１１の字句解析結果が予め記憶部６１１に格納されている場合は、字句解析部８０１を省略することができる。
【０１０８】
図７、図９、図２１、図２２、図２４、図２９、及び図３０のフローチャートは一例に過ぎず、符号化装置６０１又は活用処理を行う情報処理装置の構成や条件に応じて一部の処理を省略又は変更してもよい。例えば、図９又は図２４の符号化処理において、圧縮対象文書８１１の字句解析結果が予め記憶部６１１に格納されている場合は、ステップ９０１又は２４０１の処理を省略することができる。
【０１０９】
図２１の表現検索において、検索キーワードが必ず単語辞書８１３に存在する場合は、ステップ２１０３、ステップ２１０７、及びステップ２１０８の処理を省略することができる。図２２の近傍検索において、検索キーワードＷ１及び検索キーワードＷ２が必ず単語辞書８１３に存在する場合は、ステップ２２０３、ステップ２２０７、及びステップ２２０８の処理を省略することができる。
【０１１０】
図２９の表現検索において、検索キーワードが必ず単語辞書８１３に存在する場合は、ステップ２９０３及びステップ２９０８〜ステップ２９１１の処理を省略することができる。図３０の近傍検索において、検索キーワードＷ１及び検索キーワードＷ２が必ず単語辞書８１３に存在する場合は、ステップ３００３及びステップ３００８〜ステップ３０１１の処理を省略することができる。
【０１１１】
表現検索及び近傍検索は活用処理の一例に過ぎず、情報処理装置は、複数の単語にわたる検索又は置換、テキスト読み上げ、因果関係分析等の別の活用処理を行ってもよい。
【０１１２】
図１０の単語辞書、図１６、図２５、及び図２８の符号表、図２６の圧縮対象文書、図２７の集計情報は一例に過ぎず、符号化装置６０１の構成や条件に応じて別の単語辞書、符号表、圧縮対象文書、又は集計情報を用いてもよい。
【０１１３】
図１１の基本形の構文木は一例に過ぎず、符号化装置６０１の構成や条件に応じて別の基本形を用いてもよい。基本形の構文木は、より少数のノードからなる３階層以下の二分木であってもよく、より多数のノードからなる５階層以上の二分木であってもよい。基本形の構文木は、二分木でなくてもよい。
【０１１４】
図１２の構文木は一例に過ぎず、符号化装置６０１の構成や条件に応じて別の部分木の組み合わせを用いてもよい。構文木は、より少数の部分木からなる二分木であってもよく、より多数の部分木からなる二分木であってもよく、各部分木は、同じ形状でなくてもよい。構文木は、二分木でなくてもよい。
【０１１５】
図１３、図１４、及び図１５の構文木は一例に過ぎず、構文解析結果の構文木は、解析対象の文に応じて変化する。解析対象の文は、日本語及び英語以外の言語の文であってもよい。
【０１１６】
図１７及び図１８の構文符号及び入れ子符号は一例に過ぎず、符号化装置６０１の構成や条件に応じて別の構文符号又は入れ子符号を用いてもよい。構文符号及び入れ子符号は、別のサイズの固定長符号であってもよく、可変長符号であってもよい。
【０１１７】
図１９及び図２０の圧縮符号列の順序は一例に過ぎず、活用処理の内容に応じて別の順序を用いてもよい。例えば、図１９の圧縮符号列において、葉ノードの構文符号の後にその葉ノードに対応する単語の単語符号を配置する代わりに、構文符号の前に単語符号を配置してもよい。また、図２０の圧縮符号列において、入れ子符号と構文符号とをまとめて先に配置し、続いて、単語符号をまとめて配置してもよい。
【０１１８】
図６、図８、及び図２３の符号化装置６０１と活用処理を行う情報処理装置は、例えば、図３１に示すような情報処理装置（コンピュータ）を用いて実現可能である。
【０１１９】
図３１の情報処理装置は、Central Processing Unit（ＣＰＵ）３１０１、メモリ３１０２、入力装置３１０３、出力装置３１０４、補助記憶装置３１０５、媒体駆動装置３１０６、及びネットワーク接続装置３１０７を含む。これらの構成要素はバス３１０８により互いに接続されている。
【０１２０】
メモリ３１０２は、例えば、Read Only Memory（ＲＯＭ）、Random Access Memory（ＲＡＭ）、フラッシュメモリ等の半導体メモリである。メモリ３１０２は、符号化処理又は活用処理のためのプログラム及びデータを格納する。メモリ３１０２は、図６、図８、及び図２３の記憶部６１１として用いることができる。
【０１２１】
ＣＰＵ３１０１は、例えば、メモリ３１０２を利用してプログラムを実行することにより、図６、図８、及び図２３の構文解析部６１２、符号化部６１３、配列部６１４、及び字句解析部８０１として動作し、符号化処理を行う。ＣＰＵ３１０１は、図２３の変換部２３０１、集計部２３０２、生成部２３０３、及び変換部２３０４としても動作する。
【０１２２】
入力装置３１０３は、例えば、キーボード、ポインティングデバイス等であり、ユーザ又はオペレータからの指示や情報の入力に用いられる。出力装置３１０４は、例えば、表示装置、プリンタ、スピーカ等であり、ユーザ又はオペレータへの問い合わせや処理結果の出力に用いられる。処理結果は、活用処理の結果であってもよい。
【０１２３】
補助記憶装置３１０５は、例えば、磁気ディスク装置、光ディスク装置、光磁気ディスク装置、テープ装置等である。補助記憶装置３１０５は、ハードディスクドライブ又はフラッシュメモリであってもよい。情報処理装置は、補助記憶装置３１０５にプログラム及びデータを格納しておき、それらをメモリ３１０２にロードして使用することができる。補助記憶装置３１０５は、図６、図８、及び図２３の記憶部６１１として用いることができる。
【０１２４】
媒体駆動装置３１０６は、可搬型記録媒体３１０９を駆動し、その記録内容にアクセスする。可搬型記録媒体３１０９は、メモリデバイス、フレキシブルディスク、光ディスク、光磁気ディスク等である。可搬型記録媒体３１０９は、Compact Disk Read Only Memory（ＣＤ−ＲＯＭ）、Digital Versatile Disk（ＤＶＤ）、Universal Serial Bus（ＵＳＢ）メモリ等であってもよい。ユーザ又はオペレータは、この可搬型記録媒体３１０９にプログラム及びデータを格納しておき、それらをメモリ３１０２にロードして使用することができる。
【０１２５】
このように、プログラム及びデータを格納するコンピュータ読み取り可能な記録媒体は、メモリ３１０２、補助記憶装置３１０５、及び可搬型記録媒体３１０９のような、物理的な（非一時的な）記録媒体である。
【０１２６】
ネットワーク接続装置３１０７は、Local Area Network（ＬＡＮ）、インターネット等の通信ネットワークに接続され、通信に伴うデータ変換を行う通信インタフェースである。情報処理装置は、ネットワーク接続装置３１０７を介して外部の装置からプログラム及びデータを受信し、それらをメモリ３１０２にロードして使用することができる。ネットワーク接続装置３１０７は、圧縮符号列と集計情報２３１４とを、活用処理を行う情報処理装置へ送信することができる。
【０１２７】
なお、情報処理装置が図３１のすべての構成要素を含む必要はなく、用途や条件に応じて一部の構成要素を省略することも可能である。例えば、ユーザ又はオペレータからの指示や情報の入力を行わない場合は、入力装置３１０３を省略してもよく、ユーザ又はオペレータへの問い合わせや処理結果の出力を行わない場合は、出力装置３１０４を省略してもよい。情報処理装置が可搬型記録媒体３１０９又は通信ネットワークにアクセスしない場合は、媒体駆動装置３１０６又はネットワーク接続装置３１０７を省略してもよい。
【０１２８】
開示の実施形態とその利点について詳しく説明したが、当業者は、特許請求の範囲に明確に記載した本発明の範囲から逸脱することなく、様々な変更、追加、省略をすることができるであろう。
【０１２９】
図６乃至図３１を参照しながら説明した実施形態に関し、さらに以下の付記を開示する。
（付記１）
圧縮対象文書内の文に含まれる複数の単語の関係を解析して、前記複数の単語それぞれに対応する複数の構文情報を生成し、
前記複数の単語それぞれと前記複数の構文情報それぞれとに対して圧縮符号を割り当て、
前記複数の単語それぞれと前記複数の構文情報それぞれとに対して割り当てられた前記圧縮符号を、所定の順序で配列して出力する、
処理をコンピュータに実行させる符号化プログラム。
（付記２）
前記所定の順序は、前記複数の単語のうち各単語に対して割り当てられた前記圧縮符号と、各単語に対応する構文情報に対して割り当てられた前記圧縮符号とを隣接して配置する順序であることを特徴とする付記１記載の符号化プログラム。
（付記３）
前記所定の順序は、前記複数の単語それぞれに対して割り当てられた前記圧縮符号を隣接して配置する順序であることを特徴とする付記１記載の符号化プログラム。
（付記４）
前記複数の構文情報は、前記複数の単語の関係を表す構文木の木構造を複数の部分木により表現した情報であることを特徴とする付記１乃至３のいずれか１項に記載の符号化プログラム。
（付記５）
前記コンピュータは、前記複数の部分木のうち親の部分木と子の部分木との接続関係を表す入れ子情報に対して前記圧縮符号をさらに割り当て、前記複数の単語それぞれと前記複数の構文情報それぞれと前記入れ子情報とに対して割り当てられた前記圧縮符号を、前記所定の順序で配列して出力することを特徴とする付記４記載の符号化プログラム。
（付記６）
圧縮対象文書を記憶する記憶部と、
前記圧縮対象文書内の文に含まれる複数の単語の関係を解析して、前記複数の単語それぞれに対応する複数の構文情報を生成する構文解析部と、
前記複数の単語それぞれと前記複数の構文情報それぞれとに対して圧縮符号を割り当てる符号化部と、
前記複数の単語それぞれと前記複数の構文情報それぞれとに対して割り当てられた前記圧縮符号を、所定の順序で配列して出力する配列部と、
を備えることを特徴とする符号化装置。
（付記７）
前記所定の順序は、前記複数の単語のうち各単語に対して割り当てられた前記圧縮符号と、各単語に対応する構文情報に対して割り当てられた前記圧縮符号とを隣接して配置する順序であることを特徴とする付記６記載の符号化装置。
（付記８）
前記所定の順序は、前記複数の単語それぞれに対して割り当てられた前記圧縮符号を隣接して配置する順序であることを特徴とする付記６記載の符号化装置。
（付記９）
前記複数の構文情報は、前記複数の単語の関係を表す構文木の木構造を複数の部分木により表現した情報であることを特徴とする付記６乃至８のいずれか１項に記載の符号化装置。
（付記１０）
前記符号化部は、前記複数の部分木のうち親の部分木と子の部分木との接続関係を表す入れ子情報に対して前記圧縮符号をさらに割り当て、前記配列部は、前記複数の単語それぞれと前記複数の構文情報それぞれと前記入れ子情報とに対して割り当てられた前記圧縮符号を、前記所定の順序で配列して出力することを特徴とする付記９記載の符号化装置。
（付記１１）
コンピュータが、
圧縮対象文書内の文に含まれる複数の単語の関係を解析して、前記複数の単語それぞれに対応する複数の構文情報を生成し、
前記複数の単語それぞれと前記複数の構文情報それぞれとに対して圧縮符号を割り当て、
前記複数の単語それぞれと前記複数の構文情報それぞれとに対して割り当てられた前記圧縮符号を、所定の順序で配列して出力する、
ことを特徴とする符号化方法。
（付記１２）
前記所定の順序は、前記複数の単語のうち各単語に対して割り当てられた前記圧縮符号と、各単語に対応する構文情報に対して割り当てられた前記圧縮符号とを隣接して配置する順序であることを特徴とする付記１１記載の符号化方法。
（付記１３）
前記所定の順序は、前記複数の単語それぞれに対して割り当てられた前記圧縮符号を隣接して配置する順序であることを特徴とする付記１１記載の符号化方法。
（付記１４）
前記複数の構文情報は、前記複数の単語の関係を表す構文木の木構造を複数の部分木により表現した情報であることを特徴とする付記１１乃至１３のいずれか１項に記載の符号化方法。
（付記１５）
前記コンピュータは、前記複数の部分木のうち親の部分木と子の部分木との接続関係を表す入れ子情報に対して前記圧縮符号をさらに割り当て、前記複数の単語それぞれと前記複数の構文情報それぞれと前記入れ子情報とに対して割り当てられた前記圧縮符号を、前記所定の順序で配列して出力することを特徴とする付記１４記載の符号化方法。
（付記１６）
コンピュータが、
第１の検索キーワードを第１の単語符号に変換し、
圧縮対象文書内の文に含まれる複数の単語それぞれに対して割り当てられた単語符号と、前記複数の単語それぞれに対応する複数の構文情報それぞれに対して割り当てられた構文符号とが、所定の順序で配列された圧縮符号列から、前記第１の単語符号を検索し、
前記圧縮符号列内において前記第１の単語符号に対応する第１の構文符号を参照して、前記圧縮符号列から第２の単語符号を特定する、
ことを特徴とする検索方法。
（付記１７）
前記所定の順序は、前記複数の単語のうち各単語に対して割り当てられた前記単語符号と、各単語に対応する構文情報に対して割り当てられた前記構文符号とを隣接して配置する順序であり、
前記コンピュータは、前記圧縮符号列内において前記第１の単語符号に隣接する構文符号を前記第１の構文符号として特定し、前記第１の構文符号に基づいて、前記第１の単語符号に関連する単語符号を前記第２の単語符号として特定することを特徴とする付記１６記載の検索方法。
（付記１８）
前記所定の順序は、前記複数の単語それぞれに対して割り当てられた前記単語符号を隣接して配置する順序であり、
前記コンピュータは、第２の検索キーワードを前記第２の単語符号に変換し、前記第１の構文符号に基づいて、前記第１の検索キーワードと同一の構文木に属し前記第１の検索キーワードの近傍に含まれる前記第２の検索キーワードに対応する前記第２の単語符号を、前記圧縮符号列から特定することを特徴とする付記１６記載の検索方法。
【符号の説明】
【０１３０】
３０１  圧縮辞書
３０２  解析用辞書
３１１  文書
３１２  圧縮文書
３１３  解析結果
３１４  集計結果
６０１  符号化装置
６１１  記憶部
６１２  構文解析部
６１３  符号化部
６１４  配列部
８０１  字句解析部
８１１  圧縮対象文書
８１２  構文解析結果
８１３  単語辞書
８１４、２３１２、２３１３  符号表
８１５  単語符号
８１６  構文符号
８１７  入れ子符号
１２０１〜１２０４  部分木
１３０１、１３０２  ＮＰ
１５０１  構文木
１５０２  文
２３０１、２３０４  変換部
２３０２  集計部
２３０３  生成部
２３１１  中間符号列
２３１４  集計情報
３１０１  ＣＰＵ
３１０２  メモリ
３１０３  入力装置
３１０４  出力装置
３１０５  補助記憶装置
３１０６  媒体駆動装置
３１０７  ネットワーク接続装置
３１０８  バス
３１０９  可搬型記録媒体
【図１】
2018018286.tif 000003
【図２】
2018018286.tif 000004
【図３】
2018018286.tif 000005
【図４】
2018018286.tif 000006
【図５】
2018018286.tif 000007
【図６】
2018018286.tif 000008
【図７】
2018018286.tif 000009
【図８】
2018018286.tif 000010
【図９】
2018018286.tif 000011
【図１０】
2018018286.tif 000012
【図１１】
2018018286.tif 000013
【図１２】
2018018286.tif 000014
【図１３】
2018018286.tif 000015
【図１４】
2018018286.tif 000016
【図１５】
2018018286.tif 000017
【図１６】
2018018286.tif 000018
【図１７】
2018018286.tif 000019
【図１８】
2018018286.tif 000020
【図１９】
2018018286.tif 000021
【図２０】
2018018286.tif 000022
【図２１】
2018018286.tif 000023
【図２２】
2018018286.tif 000024
【図２３】
2018018286.tif 000025
【図２４】
2018018286.tif 000026
【図２５】
2018018286.tif 000027
【図２６】
2018018286.tif 000028
【図２７】
2018018286.tif 000029
【図２８】
2018018286.tif 000030
【図２９】
2018018286.tif 000031
【図３０】
2018018286.tif 000032
【図３１】
2018018286.tif 000033
【手続補正書】
【提出日】平成29年8月30日(2017.8.30)
【手続補正１】
【補正対象書類名】明細書
【補正対象項目名】００８３
【補正方法】変更
【補正の内容】
【００８３】
図２５は、中間符号の符号表２３１２の例を示している。図２５の符号表２３１２の各エントリは単語、構文情報、及び入れ子情報を識別するためのＩＤと、中間符号とを含む。中間符号としては、例えば、図１６の圧縮符号と同様の符号を用いることができる。
【手続補正２】
【補正対象書類名】明細書
【補正対象項目名】００９６
【補正方法】変更
【補正の内容】
【００９６】
一方、検索キーワードが単語辞書８１３に存在しない場合（ステップ２９０３，ＮＯ）、情報処理装置は、検索キーワードを複数の単語に分割する（ステップ２９０８）。次に、情報処理装置は、集計情報２３１４に基づいて候補文書を決定する（ステップ２９０９）。このとき、情報処理装置は、集計情報２３１４に登録された文書のうち、検索キーワードを分割して得られた複数の単語をすべて含む１つ又は複数の文書を、候補文書として選択することができる。
【手続補正３】
【補正対象書類名】明細書
【補正対象項目名】０１０３
【補正方法】変更
【補正の内容】
【０１０３】
一方、検索キーワードＷ１又は検索キーワードＷ２が単語辞書８１３に存在しない場合（ステップ３００３，ＮＯ）、情報処理装置は、単語辞書８１３に存在しない検索キーワードを複数の単語に分割する（ステップ３００８）。次に、情報処理装置は、集計情報２３１４に基づいて候補文書を決定する（ステップ３００９）。このとき、情報処理装置は、集計情報２３１４に登録された文書のうち、検索キーワードを分割して得られた複数の単語をすべて含む１つ又は複数の文書を、候補文書として選択することができる。