(57)【要約】【課題】一実施形態は、文書の意味解析結果を活用する際の処理負荷を軽減する。【解決手段】一実施形態に係る符号化プログラムは、コンピュータに生成する処理と、出力する処理とを実行させる。生成する処理では、コンピュータが圧縮対象文書内の文に含まれる複数の単語それぞれに圧縮符号を割り当てて複数の単語符号を生成するとともに、文を意味解析して複数の単語それぞれに対応する複数の意味構造情報を生成する処理を実行する。また、生成する処理では、コンピュータが複数の意味構造情報のそれぞれに圧縮符号を割り当てて意味構造符号を生成する処理を実行する。出力する処理では、コンピュータが複数の単語符号と複数の意味構造符号とを所定の順序で配列して出力する処理を実行する。【選択図】図７
2018018174.tif 000002
【特許請求の範囲】
【請求項１】
圧縮対象文書内の文に含まれる複数の単語それぞれに圧縮符号を割り当てて複数の単語符号を生成するとともに、前記文を意味解析して前記複数の単語それぞれに対応する複数の意味構造情報を生成し、前記複数の意味構造情報のそれぞれに圧縮符号を割り当てて意味構造符号を生成し、
前記複数の単語符号と前記複数の意味構造符号とを所定の順序で配列して出力する、
処理をコンピュータに実行させる符号化プログラム。
【請求項２】
前記意味構造情報は、前記単語符号を用いて生成されることを特徴とする請求項１に記載の符号化プログラム。
【請求項３】
前記意味構造情報は、前記複数の単語を用いて生成されることを特徴とする請求項１に記載の符号化プログラム。
【請求項４】
前記所定の順序は、前記文に含まれる前記複数の単語のうち各単語に対して割り当てられた前記単語符号を、各単語に対応する前記意味構造符号と隣接して配置する順序であることを特徴とする請求項１から請求項３のいずれか１項に記載の符号化プログラム。
【請求項５】
前記所定の順序は、前記文に含まれる前記複数の単語のうち各単語に対して割り当てられた前記単語符号を隣接して配置する順序であることを特徴とする請求項１から請求項３のいずれか１項に記載の符号化プログラム。
【請求項６】
圧縮対象文書内の文に含まれる複数の単語それぞれに圧縮符号を割り当てて複数の単語符号を生成するとともに、前記文を意味解析して前記複数の単語それぞれに対応する複数の意味構造情報を生成し、前記複数の意味構造情報のそれぞれに圧縮符号を割り当てて意味構造符号を生成する符号生成部と、
前記複数の単語符号と前記複数の意味構造符号とを所定の順序で配列して出力する出力部と、
を備えることを特徴とする符号化装置。
【請求項７】
圧縮対象文書内の文に含まれる複数の単語それぞれに圧縮符号を割り当てて複数の単語符号を生成するとともに、前記文を意味解析して前記複数の単語それぞれに対応する複数の意味構造情報を生成し、前記複数の意味構造情報のそれぞれに圧縮符号を割り当てて意味構造符号を生成する工程と、
前記複数の単語符号と前記複数の意味構造符号とを所定の順序で配列して出力する工程と、
を含むコンピュータが実行する符号化方法。
【請求項８】
単語間の接続関係を表す第１のアークを第１の圧縮符号に変換し、
圧縮対象文書内の文に含まれる複数の単語それぞれに圧縮符号を割り当てて得られた単語符号と、前記文を意味解析して得られた前記複数の単語それぞれに対応する複数の意味構造情報に圧縮符号を割り当てて得られた意味構造符号とが、所定の順序で配列された圧縮符号列から、前記第１の圧縮符号を検索する、
処理をコンピュータに実行させる検索方法。
【請求項９】
前記所定の順序は、前記文に含まれる前記複数の単語のうち各単語に対して割り当てられた前記単語符号を、各単語に対応する前記意味構造符号と隣接して配置する順序であり、
前記コンピュータは更に、
単語を第１の単語符号に変換し、
前記第１の圧縮符号の検索において、前記第１の単語符号と前記第１の圧縮符号とが隣接する圧縮符号列を検索する、
ことを特徴とする請求項８に記載の検索方法。
【請求項１０】
前記所定の順序は、前記文に含まれる前記複数の単語のうち各単語に対して割り当てられた前記単語符号を隣接して配置する順序であることを特徴とする請求項８に記載の検索方法。
【請求項１１】
前記コンピュータは更に、
前記圧縮符号列内において前記第１の圧縮符号に対応する第１の意味構造符号を参照して、前記圧縮符号列から第２の単語符号を特定する、ことを特徴とする請求項８から１０のいずれか１項に記載の検索方法。
【請求項１２】
前記コンピュータは更に、
単語間の接続関係を表す第２のアークを第２の圧縮符号に変換し、
前記第１の圧縮符号の検索において、前記第２の圧縮符号を更に検索し、前記第１の圧縮符号に対応する第１の意味構造符号と、前記第２の圧縮符号に対応する第２の意味構造符号とを参照して、前記圧縮符号列から、前記第１のアークと前記第２のアークとを所定の並びで含む意味構造を有する文の圧縮符号列を特定する、
ことを特徴とする請求項８に記載の検索方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、符号化プログラム、符号化装置、符号化方法、及び検索方法に関する。
【背景技術】
【０００２】
図１は、文書に対して実行される様々なテキスト解析の間の関係の例を示している。テキスト解析は、例えば、形態素解析（品詞解析）、構文解析（係り受け解析）、意味解析を含む。形態素解析は、文を形態素に分割し、各形態素に対して品詞情報を付与する処理である。形態素解析により得られる形態素は、単語として扱われることもある。なお、形態素解析では、字句解析が実行されてもよい。字句解析は、表記に基づいて文書内の文を単語に分割する処理である。
【０００３】
構文解析は、単語の品詞情報に基づいて自立語を含む文節を合成し、文節に含まれる自立語に基づいて文節同士の係り受け関係（修飾関係）を求める処理である。また、意味解析は、例えば、係り受け関係に基づいて文に含まれる単語間の意味的な関係を解析する処理である。意味解析結果は、例えば、同義表現、多義表現の意味を求める処理、又は複数の単語の中から類語を抽出する処理で用いることができる。ある程度割り切った意味解析は、単語のみ、又は単語及び品詞情報に基づいて行うことができるが、係り受け関係を用いた方が意味解析の精度は向上する。なお、意味解析では、構文解析の一部の処理が実行されてよい。
【０００４】
意味解析では、自然文の形態素解析結果を用いて、その自然文の意味構造が求められる。意味構造を用いることで、自然文が何を意味するかを、コンピュータが扱うデータとして表現することができる。
【０００５】
意味構造は、例えば、形態素解析結果に含まれる複数の単語の概念をそれぞれ表す複数のノードと、ノードに接続される有向のアークとを含む。アークが、１つのノードにしか接続されていない場合、そのアークは接続されたノードの属性を表す。また、アークが２つのノードを接続する場合、そのアークは、接続された２つのノードの間の関係を表す。１つのノードが複数のアークと接続される場合もある。意味構造は、例えば、ノードと、アークとにより作成されるグラフ構造（有向グラフ）により表される。図２は、「私は学校で働いています」の１文に対応するグラフ構造を例示する図である。
【０００６】
意味解析では、例えば、ルールベースで構造が定義され、必要に応じて複数の構造を組み合わせながら解析が行われる。意味解析で用いられるルールには、例えば、フィルモア（Fillmore）が提唱する格文法がある。格文法では、例えば、文を一個の動詞と複数の格範疇から成るものとみる。例えば、このようなルールを繰り返し適用することで、最終的には、図２に示すような、１文に対応するグラフ構造を生成することができる。
【０００７】
また、図３は、テキスト解析結果を活用する活用処理の一例を示す図である。文書３１１は、圧縮辞書３０１を用いて圧縮され、圧縮文書３１２として保存される。そして、活用時に圧縮文書３１２が伸張されて文書３１１が復元され、文書３１１に対して解析用辞書３０２を用いて形態素解析及び意味解析を行うことで、意味解析結果３１３が生成される。意味解析結果３１３は、アプリケーションプログラム等により活用される。
【０００８】
これに関し、例えば、意味内容が損なわれないように文書を書き換え、書き換え後に圧縮テーブルを参照しながら、文書をビット列に置き換えて文書圧縮を行うための技術が知られている（例えば、特許文献１を参照）。また、データ通信システムを介した情報アクセスおよび検索方法を得るための技術が知られている（例えば、特許文献２を参照）。自然言語処理用の辞書を用意しなくとも文書内容を解析できるようにするための技術が知られている（例えば、特許文献３を参照）。
【先行技術文献】
【特許文献】
【０００９】
【特許文献１】特開平７−１６０６８４号公報
【特許文献２】特開２００８−１３５０２３号公報
【特許文献３】特開平７−１２９５８８号公報
【発明の概要】
【発明が解決しようとする課題】
【００１０】
上述の活用処理の一例では、圧縮文書を伸長した後に、例えば、形態素解析及び意味解析などのテキスト解析が行われる。活用のために圧縮文書の伸長と意味解析とが行われるため、処理負荷が大きい。１つの側面において、本発明は、文書の意味解析結果を活用する際の処理負荷を軽減することを目的とする。
【課題を解決するための手段】
【００１１】
本発明の一つの態様の符号化プログラムは、コンピュータに生成する処理と、出力する処理とを実行させる。生成する処理では、コンピュータは圧縮対象文書内の文に含まれる複数の単語それぞれに圧縮符号を割り当てて複数の単語符号を生成するとともに、文を意味解析して複数の単語それぞれに対応する複数の意味構造情報を生成する処理を実行する。また、コンピュータは複数の意味構造情報のそれぞれに圧縮符号を割り当てて意味構造符号を生成する処理を実行する。出力する処理では、コンピュータは複数の単語符号と複数の意味構造符号とを所定の順序で配列して出力する処理を実行する。
【発明の効果】
【００１２】
一つの態様によれば、文書の意味解析結果を活用する際の処理負荷を軽減することができる。
【図面の簡単な説明】
【００１３】
【図１】様々なテキスト解析の間の関係を例示する図である。
【図２】グラフ構造を例示する図である。
【図３】テキスト解析結果の活用処理の一例を示す図である。
【図４】ＬＺ７７符号化で用いられる圧縮辞書の例を示す図である。
【図５】ＬＺ７８符号化で用いられる圧縮辞書の例を示す図である。
【図６】実施形態の符号化装置の機能的構成例を示す図である。
【図７】符号化処理の例を示すフローチャートである。
【図８】第１の実施形態に係る符号化装置を例示する図である。
【図９】第１の実施形態に係る符号化処理のフローチャートである。
【図１０】単語辞書の例を示す図である。
【図１１】意味解析結果を表す木構造を例示する図である。
【図１２】単語の概念情報の例と、アークの例とを示す図である。
【図１３】意味構造の二分木への変換を例示する図である。
【図１４】二分木の基本形を例示する図である。
【図１５】４本の部分木を接続した意味構造二分木を例示する図である。
【図１６】符号表の例を示す図である。
【図１７】意味構造情報及び入れ子情報に対する圧縮符号の割り当てを例示する図である。
【図１８】意味構造二分木への意味構造情報及び入れ子情報に対する圧縮符号の割り当てを例示する図である
【図１９】第１の順序で配列された圧縮符号列の例を示す図である。
【図２０】第２の順序で配列された圧縮符号列の例を示す図である。
【図２１】第２の実施形態に係る符号化装置を示す図である。
【図２２】第２の実施形態に係る符号化処理のフローチャートである。
【図２３】中間符号表の例を示す図である。
【図２４】複数の圧縮対象文書の例を示す図である。
【図２５】複数の圧縮対象文書に対する集計情報の例を示す図である。
【図２６】圧縮符号の符号表の例を示す図である。
【図２７】活用処理を行う情報処理装置の機能的構成例を示す図である。
【図２８】圧縮符号列を同義語抽出に利用する場合の活用処理のフローチャートである。
【図２９】同義語検索の例を示す図である。
【図３０】圧縮符号列を知識抽出に利用する場合の活用処理のフローチャートである。
【図３１】圧縮符号列を文章推敲に利用する場合の活用処理のフローチャートである。
【図３２】圧縮符号列を同義語抽出に利用する場合の活用処理の変形形態のフローチャートである。
【図３３】実施形態に係る符号化処理又は活用処理を実行する情報処理装置のハードウェア構成を例示する図である。
【発明を実施するための形態】
【００１４】
以下、図面を参照しながら、本発明のいくつかの実施形態について詳細に説明する。なお、複数の図面において対応する要素には同一の符号を付す。
【００１５】
図３に示した活用処理では、圧縮文書を伸長した後に、例えば、形態素解析及び意味解析などのテキスト解析が行われる。活用のために圧縮文書の伸長が行われるため、処理負荷が大きい。また、意味解析は、目的に応じて個々のアプリケーションが個別に実行していることもあり、これは、更なる処理負荷の増大を招いている。この様な処理負荷の増大の影響は、特に、携帯端末のように計算資源が少ない情報処理装置ではより大きくなる。
【００１６】
そこで、意味解析結果の活用処理の負荷を軽減するために、文書を圧縮する際に、予め形態素解析及び意味解析を行って解析結果を取得しておき、解析結果を圧縮して保存しておくことも考えられる。この場合、活用時に意味解析を行わなくてもよくなる。しかしながら、圧縮された意味解析結果を伸張する処理が追加される。即ち、圧縮文書と圧縮された意味解析結果とを一旦伸張して、伸張された文書と伸張された意味解析結果とを対応付けた後に、意味解析結果の活用が可能になる。従って、伸長処理と対応付け処理の負荷は軽減されない。
【００１７】
圧縮文書と圧縮された意味解析結果とを一旦伸張する理由は、圧縮辞書と解析用辞書との間に共通性がないためである。圧縮辞書には、最長一致文字列のように、単語を意識しない符号化のための文字列が格納されるのに対して、解析用辞書には、単語及び単語の品詞、品詞の細分類などを含む情報が格納される。
【００１８】
図４は、ＬＺ７７符号化で用いられる圧縮辞書の例を示しており、図５は、ＬＺ７８符号化で用いられる圧縮辞書の例を示している。図４及び図５に示されるように、圧縮辞書の文字列は単語の途中で分割されることが多く、単語の情報が保持されないため、圧縮辞書の文字列を意味解析結果と対応付けることは困難である。
【００１９】
そこで、圧縮辞書の文字列として自然言語の単語を用いることで、圧縮処理と形態素解析とで辞書を共用することが考えられる。１つの辞書に基づいて形態素解析を行うとともに単語を圧縮することで、各単語とその意味解析結果とを圧縮されたままの状態で対応付けることが可能になる。
【００２０】
図６は、実施形態の符号化装置の機能的構成例を示している。図６の符号化装置６００は、記憶部６１１、符号生成部６１２、及び出力部６１４を含む。
【００２１】
記憶部６１１は、例えば、圧縮対象文書を記憶してよい。符号生成部６１２は、圧縮対象文書に対する圧縮処理を行うとともに、圧縮対象文書に対する意味解析を行い、意味解析結果に対する圧縮処理を行う。出力部６１４は、圧縮結果を配列して出力する。
【００２２】
図７は、図６の符号化装置６００が行う符号化処理の例を示すフローチャートである。Ｓ７０１において符号生成部６１２は、圧縮対象文書内の文に含まれる複数の単語に圧縮符号を割り当てるとともに、文を意味解析して、複数の単語のそれぞれについての意味構造情報を生成する。なお、意味構造情報は、例えば、グラフ構造内のノードと、そのノードを終点とする上位のノードからのアークとを示す情報を含んでよい。そして、符号生成部６１２は、単語に対応する意味構造情報のそれぞれに対して圧縮符号を割り当てる。
【００２３】
Ｓ７０２において出力部６１４は、複数の単語のそれぞれと複数の意味構造情報のそれぞれとに対して割り当てられた圧縮符号を、所定の順序で配列して出力する。このような符号化装置６００によれば、文書の意味解析結果を活用するための処理負荷を軽減することができる。なお、意味解析は、圧縮対象文書内の文に含まれる複数の単語を用いて実行されてもよく、或いは別の実施形態では、文に含まれる複数の単語のそれぞれに対して割り当てられた圧縮符号を用いて実行されてもよい。
【００２４】
＜第１の実施形態＞
図８は、第１の実施形態に係る符号化装置８００を例示する図である。符号化装置８００は、記憶部６１１、符号生成部６１２、出力部６１４、及び形態素解析部８０１を含む。記憶部６１１は、例えば、符号化処理の開始時に、圧縮対象文書８１１、単語辞書８１３、及び符号表８１４を記憶している。
【００２５】
図９は、第１の実施形態に係る符号化処理のフローチャートである。図９の符号化処理は、例えば、図８の符号化装置８００により実行されてよい。Ｓ９０１において形態素解析部８０１は、単語辞書８１３を用いて、圧縮対象文書８１１に対する形態素解析を行い、圧縮対象文書８１１内の各文に含まれる形態素を抽出する。なお、形態素解析により得られる形態素は、単語として扱われることもある。
【００２６】
図１０は、単語辞書８１３の例を示している。図１０の単語辞書８１３の各エントリは単語を識別するための単語ＩＤ、単語、及び付加情報を含む。付加情報は、単語の属性を表す情報であり、例えば、品詞、品詞の細分類、活用などの情報を含んでよい。付加情報は、単語辞書８１３の１つのエントリに対し複数登録されていてよい。なお、品詞の細分類は、例えば、品詞を更に詳細に分類した情報である。例えば、品詞が名詞である場合は、普通名詞、固有名詞、数詞などの細分類であってよい。また更に、付加情報には、１つの単語に対して複数の品詞の細分類が含まれていてもよい。例えば、固有名詞は、更に、人名、組織名、地名などの更に詳細に分類されてもよい。形態素解析部８０１は、各文の文字列と単語辞書８１３に登録された各単語の文字列とを比較することで、該当する単語を抽出することができる。
【００２７】
Ｓ９０２において符号生成部６１２は、形態素解析結果を用いて各文に対する意味解析を行い、意味解析結果８１２を生成して記憶部６１１に格納する。なお、意味解析結果８１２は、例えば、図２に示すグラフ構造であってよい。
【００２８】
また、図１１は、意味解析結果８１２を表すグラフ構造（例えば、図２）から変換される木構造を例示する図である。意味解析結果から得られるグラフ構造は、中心ノードがあり、また、ループを有さない構造であるため、図１１に示す様に木構造に変換することが可能である。なお、中心ノードは、例えば、文における述語であってよい。また、図１１では、グラフ構造において１つのノードにしかつながらないアークについては、ノードと接続されていない側のアークの端に空ノード（ＮＩＬ）を割り当てることで、木構造が生成されている。そのため、ノードには、例えば、単語の概念を表す概念情報と、そのノードを終点とする上位のノードからのアークとが対応付けられる。或いは、ノードが空ノード（ＮＩＬ）である場合には、例えば、空ノードの上位のノードの属性を表すアークが対応づけられる。概念情報は、例えば、単語辞書８１３の付加情報に含まれる情報であってよく、単語に対する品詞の細分類を含んでいてよい。図１２は、単語の概念情報の例と、アークの例とを示す図である。例えば、単語の概念情報において、ＡＤＪは形容詞、ＡＤＶは副詞、ＡＤＶＰは副詞句である。また、アークにおいて、例えば、「ＳＴ」はグラフ構造の起点（中心ノード）を表すアークである。「ＳＴ」が付される単語は、例えば文における述語であってよい。「ＡＧＥＮＴ」は、例えば、動作主を表すアークである。
【００２９】
また、グラフ構造を変換して得られた木構造においてノードの枝が２本でない場合、ダミーノードを挿入することで二分木に変換することができる。例えば、１つのノードが３本又は４本の枝を持つ場合は、１階層のダミーノードを挿入することで二分木に変換することができ、１つのノードが５本〜８本の枝を持つ場合は、２階層のダミーノードを挿入することで二分木に変換することができる。
【００３０】
図１３は、図１１の意味構造木の二分木への変換を例示する図である。図１１において３本以上の枝を有するノード１３０１及びノード１３０２は、図１３ではダミーノード（ｄｍ）が挿入されており、ノードの１つ当たりの枝の数が削減されて二分木に変換されている。以上で述べた様に、図２に例示する意味構造を表すグラフ構造は、図１３に示すように二分木に変換することができる。なお、この意味構造を表すグラフ構造から変換された二分木を、以下では意味構造二分木と呼ぶことがある。
【００３１】
また、意味構造を表すグラフ構造を二分木に変換することで、二分木の基本形を用いて、意味構造二分木を表すことが可能である。図１４は、二分木の基本形を例示する図である。図１４の二分木は、ノード０〜ノード１４の１５個のノードからなる４階層の二分木であり、各ノードの番号は、二分木の木構造中の位置を表す。この二分木を基本形とする複数の部分木を入れ子構造で接続することで、より深い階層構造を有する二分木を生成することができる。意味構造を表すグラフ構造を二分木に変換した場合、二分木は一部分のみが深くなる傾向があり、基本形の部分木の葉ノードに別の部分木を接ぎ木することで、不要な部分の割合を少なくすることが可能である。
【００３２】
図１５は、４本の部分木を接続した意味構造二分木の例を示している。部分木１２０２及び部分木１２０３は、部分木１２０１を親とする子の部分木であり、部分木１２０４は、部分木１２０２を親とする子の部分木である。
【００３３】
部分木１２０２の根ノード０は、親の部分木１２０１の葉ノード７と一致しており、部分木１２０３の根ノード０は、親の部分木１２０１の葉ノード１３と一致している。また、部分木１２０４の根ノード０は、親の部分木１２０２の葉ノード１１と一致している。これらの４本の部分木を用いることで、例えば、以下の１９個のノードからなる９階層の二分木を記述することができる。
部分木１２０１：ノード０〜ノード３，ノード５〜ノード７，ノード１３
部分木１２０２：ノード１〜ノード５，ノード１１
部分木１２０３：ノード１，ノード２
部分木１２０４：ノード１，ノード３，ノード４
【００３４】
このように、意味構造二分木の木構造を複数の部分木により表現することで、一部分のみが深い階層構造を有する意味構造二分木を、記憶部６１１に効率良く格納することができる。この場合、意味解析結果８１２は、意味構造二分木の各枝に対応する意味構造情報とともに、親の部分木と子の部分木との接続関係を表す入れ子情報を含む。
【００３５】
Ｓ９０３において、符号生成部６１２は、単語辞書８１３、及び符号表８１４を参照して、圧縮対象文書８１１内の各文に含まれる各単語に対して、圧縮符号を割り当てる。また、符号生成部６１２は、意味解析結果８１２に含まれる意味構造情報及び入れ子情報に対して、例えば、所定のルールに従って圧縮符号を割り当てる。そして、符号生成部６１２は、単語、意味構造情報、及び入れ子情報に対して割り当てた圧縮符号を、それぞれ、単語符号８１５、意味構造符号８１６、及び入れ子符号８１７として記憶部６１１に格納する。
【００３６】
符号表８１４には、単語と圧縮符号との対応関係が登録される。圧縮符号としては、例えば、１バイト〜５バイトの固定長符号を用いることができる。このような圧縮符号の例を、１６進数を用いて以下に示す。
英数字：００ｈ〜７Ｆｈ（１バイト）
ＣＪＫ文字：Ａ０００００ｈ〜ＡＦＦＦＦＦｈ（３バイト）
英語の単語：Ｂ０００００ｈ〜Ｂ７ＦＦＦＦｈ（３バイト）
英語の連結単語：Ｂ８００００００ｈ〜ＢＦＦＦＦＦＦＦｈ（４バイト）
日本語の単語：Ｃ０００００ｈ〜Ｃ７ＦＦＦＦｈ（３バイト）
日本語の連結単語：Ｃ８００００００ｈ〜ＣＦＦＦＦＦＦＦｈ（４バイト）
第３言語の単語：Ｄ０００００ｈ〜Ｄ７ＦＦＦＦｈ（３バイト）
第３言語の連結単語：Ｄ８００００００ｈ〜ＤＦＦＦＦＦＦＦｈ（４バイト）
４桁の数値：Ｅ０００００ｈ〜Ｅ３ＦＦＦＦｈ（３バイト）
６桁の数値：Ｅ４００００００ｈ〜Ｅ４ＦＦＦＦＦＦｈ（４バイト）
９桁の数値：Ｅ５００００００００ｈ〜Ｅ８ＦＦＦＦＦＦＦＦｈ（５バイト）
意味構造情報及び入れ子情報：Ｆ０００００００００ｈ〜（５バイト）
【００３７】
４桁及び６桁の数値に割り当てられた圧縮符号は、１０進数の数値に対して３桁毎に“，”が挿入されているか否か、正の数又は負の数のいずれであるか等の数値表現上のオプションを区別する符号も含んでいてよい。
【００３８】
単語、意味構造情報、及び入れ子情報に割り当てられた３〜５バイトの圧縮符号のうち、上位４ビットは、符号種別を識別するために用いられる。例えば、“Ｃ”は日本語の単語を表し、“Ｆ”は意味構造情報及び入れ子情報を表す。残りのビットは、個々の単語、意味構造情報、又は入れ子情報を識別するために用いられる。
【００３９】
上記圧縮符号は一例に過ぎず、単語に対して別の方法で圧縮符号を割り当ててもよい。圧縮符号は、別のサイズの固定長符号であってもよく、可変長符号であってもよい。
【００４０】
図１６は、符号表８１４の例を示している。図１６の符号表８１４の各エントリは、例えば、単語を識別するためのＩＤと、圧縮符号とを含む。単語のＩＤとしては、図１０の単語ＩＤが用いられる。例えば、単語ＩＤ“１”に対応する単語“さくら”の圧縮符号は“Ｃ０１２３４ｈ”である。
【００４１】
符号生成部６１２は、単語を、符号表８１４の対応する圧縮符号に置き換えることで、単語符号８１５を生成することができる。単語辞書８１３の情報と符号表８１４の情報とをまとめて管理することも可能である。
【００４２】
また、符号生成部６１２は、意味構造情報、及び入れ子情報に対して、例えば、所定のルールに従って圧縮符号を割り当てることで、意味構造符号８１６、及び入れ子符号８１７を生成することができる。意味構造情報、及び入れ子情報は、例えば、以下の情報を含むように符号化されてよい。
【００４３】
一実施形態において、意味構造情報に割り当てられた５バイトの圧縮符号のうち、上位４ビットは、符号種別を識別するために用いられる。残りの下位３６ビットの内訳は、以下の通りである。
４ビット：基本形の二分木内のノードの番号
８ビット：ノードを含む二分木のＩＤ
１２ビット：ノードが表す単語の概念情報
１２ビット：上位ノードとの接続関係を表すアーク（接続情報）
【００４４】
また、入れ子情報に割り当てられた５バイトの圧縮符号のうち、上位４ビットは、符号種別を識別するために用いられる。残りの下位３６ビットの内訳は、以下の通りである。
４ビット：基本形の二分木内のノードの番号
８ビット：ノードを含む二分木のＩＤ
１２ビット：子の二分木のＩＤ
１２ビット：木と木の接合を表す符号
【００４５】
図１７は、意味構造情報及び入れ子情報に対する圧縮符号の最下位２４ビットのうちの上位１２ビット、又は下位１２ビットに割り当てられた圧縮符号を例示する図である。図１７の例では、単語の概念情報である「WORK=HATARAKU」、「Ｉ」に対して、それぞれ“０ｘＡＡＡ”、“０ｘ０８５”が割り当てられている。また、アークを表す「ＳＴ」、「ＡＧＥＮＴ」に対して、それぞれ“０ｘ００１”、“０ｘ０ＢＣ”が割り当てられている。なお、「ＳＴ」は、例えば、グラフ構造の起点を表すアークである。「ＡＧＥＮＴ」は、例えば、動作主を表すアークである。入れ子情報の子の二分木のＩＤに対しては、“０ｘＦ０１”以上の符号が割り当てられている。
【００４６】
図１８は、図１３の意味構造二分木の意味構造情報及び入れ子情報に対して割り当てられる圧縮符号を例示している。図１８の意味構造二分木は、親の二分木の葉ノード８及び葉ノード１０の各位置に子の二分木の根ノード０を接続することで生成されている。親の二分木のＩＤには、意味構造情報のノードを含む二分木を示す８ｂｉｔにおいて“０ｘ００”が割り当てられている。葉ノード８に接続された子の二分木のＩＤには、ノードを含む二分木のＩＤを示す８ｂｉｔにおいて意味構造情報及び入れ子情報ともに“０ｘ０１”が割り当てられている。また、入れ子情報の子ノードを示す１２ｂｉｔでは“０ｘＦ０１”が割り当てられている。同様に、葉ノード１０に接続された子の二分木のＩＤには、ノードを含む二分木のＩＤを示す８ｂｉｔにおいて意味構造情報及び入れ子情報ともに“０ｘ０２”が割り当てられている。入れ子情報の子の二分木のＩＤを示す１２ｂｉｔでは葉ノード１０に接続された子の二分木のＩＤに“０ｘＦ０２”が割り当てられている。
【００４７】
また、例えば、親の二分木の根ノード０の意味構造情報には意味構造符号“０ｘＦ０００ＡＡＡ００１”が割り当てられている。意味構造符号“０ｘＦ０００ＡＡＡ００１”のうち、先頭の“Ｆ”（４ビット）は、意味構造情報であることを表し、次の“０”（４ビット）は、二分木内でのノード０の番号を表し、次の“００”（８ビット）は、ノードを含む二分木のＩＤを表している。更に、次の“ＡＡＡ”（１２ビット）は、単語の概念情報：「WORK=HATARAKU」を表す。また、末尾の“００１”（１２ｂｉｔ）は、アーク：ＳＴを表す。
【００４８】
ノード１のダミーノードの意味構造情報には意味構造符号“０ｘＦ１００００００００”が割り当てられている。意味構造符号“０ｘＦ１００００００００”のうち、先頭の“Ｆ”（４ビット）は、意味構造情報であることを表し、次の“１”（４ビット）は、ノード１の番号を表し、次の“００”（８ビット）は、ノードを含む二分木のＩＤを表している。次の“０００”（１２ビット）は単語の概念情報を含まないＮＩＬノードであることを表し、末尾の“０００”（１２ｂｉｔ）は、アークを含まないダミーノードであることを表す。
【００４９】
親の二分木の葉ノード８には、意味構造情報と、入れ子情報とが存在する。このうち、入れ子情報には入れ子符号“０ｘＦ８００Ｆ０１００２”が割り当てられ、意味構造情報には意味構造符号“０ｘＦ００１００１０１３”が割り当てられている。
【００５０】
親の二分木の葉ノード８の入れ子符号“０ｘＦ８００Ｆ０１００２”のうち、先頭の“Ｆ”は、入れ子情報であることを表し、次の“８”は、ノード８の番号を表し、次の“００”は、ノードを含む二分木のＩＤを表し、次の“Ｆ０１”は子の二分木のＩＤを表す。また、末尾の１２ｂｉｔには、木と木の接合を表す入れ子情報であることを示す符号として“００２”が割り振られている。
【００５１】
また、親の二分木の葉ノード８の意味構造符号“０ｘＦ００１００１０１３”のうち、先頭の“Ｆ”は、意味構造情報であることを表し、次の“０”は、ノードを含む二分木内でのノード０の番号を表し、次の“０１”は、ノードを含む二分木のＩＤを表す。次の“００１”は、単語と対応するノードであるが単語の概念情報を含まず、表記の情報と対応づいているノードであることを示す符号である。また、末尾の“０１３”は、アーク：「ＳＣＯＰＥ」を表す。
【００５２】
同様に、親の二分木の葉ノード１０には、意味構造情報と、入れ子情報とが存在する。このうち、入れ子情報には入れ子符号“０ｘＦＡ００Ｆ０２００２”が割り当てられ、意味構造情報には意味構造符号“０ｘＦ００２０８５０ＢＣ”が割り当てられる。
【００５３】
親の二分木の葉ノード１０の入れ子符号“０ｘＦＡ００Ｆ０２００２”のうち、先頭の“Ｆ”は、入れ子情報であることを表し、次の“Ａ”は、ノード１０の番号を表す。また、次の“００”は、ノードを含む二分木のＩＤを表し、次の“Ｆ０２”は子の二分木のＩＤを表す。また、末尾の１２ｂｉｔには、木と木の接合を表す入れ子情報であることを示す符号として“００２”が割り振られている。
【００５４】
また、親の二分木の葉ノード１０の意味構造符号“０ｘＦ００２０８５０ＢＣ”のうち、先頭の“Ｆ”は、意味構造情報であることを表し、次の“０”は、ノードを含む二分木内でのノード０の番号を表し、次の“０２”は、ノードを含む二分木のＩＤを表す。次の０８５は、単語の概念情報：「Ｉ」に割り当てられている符号である。また、末尾の“０ＢＣ”は、アーク：ＡＧＥＮＴに割り当てられている符号である。
【００５５】
このように、２本の部分木を接続するノードに対しては、意味構造符号８１６及び入れ子符号８１７が割り当てられ、それ以外のノードに対しては、意味構造符号８１６が割り当てられてよい。
【００５６】
Ｓ９０４において出力部６１４は、１文ごとに、単語符号８１５、意味構造符号８１６、及び入れ子符号８１７を所定の順序で配列して圧縮符号列を生成し、生成した圧縮符号列を、例えば、活用処理を行う情報処理装置へ出力する。所定の順序としては、例えば、以下のような順序が用いられる。
【００５７】
（１）第１の順序
１文ごとに、各単語に対して割り当てられた単語符号８１５と、その単語に対応する意味構造情報に対して割り当てられた意味構造符号８１６とを隣接して配置する。なお、単語と対応付けられていないＮＩＬノードやダミーノードについての意味構造符号８１６は、例えば、単語符号８１５と、その単語に対応する意味構造情報に対して割り当てられた意味構造符号８１６とを配列後、その後ろに配列されてよい。図１９は、第１の順序で配列された圧縮符号列の例を示している。第１の順序で圧縮符号を配列することで、意味解析結果を活用する活用処理において、各単語とその意味解析結果とを容易に対応付けることができる。
【００５８】
（２）第２の順序
１文ごとに、複数の単語に対して割り当てられた複数の単語符号８１５を隣接して配置する。図２０は、第２の順序で配列された圧縮符号列の例を示している。この例では、１文ごとに、単語符号８１５がまとめて先に配置され、続いて、意味構造符号８１６がまとめて配置される。第２の順序で圧縮符号を配列することで、単語のみを用いる活用処理において、単語符号を効率良く参照することが可能になる。なお、図２０の例では、単語と対応する意味構造符号８１６を、単語の出現順に配列しており、その後ろに単語と対応づかないＮＩＬノードやダミーノードについての意味構造符号８１６を配列している。
【００５９】
以上で述べた第１の実施形態に係る符号化処理によれば、形態素解析及び意味解析が圧縮時に行われる。活用時に形態素解析及び意味解析を行わなくてもよく、また、圧縮文書を伸長しなくてもよいため、圧縮文書の伸長後に形態素解析及び意味解析を行う場合と比較して、計算コストが削減される。また、例えば、形態素解析及び意味解析と、データの圧縮とを大きな計算資源を有するクラウド環境で実行し、得られた意味解析結果を含む圧縮データを、携帯端末などの計算資源が少ない情報処理装置が活用する場合、大きな効果が期待できる。
【００６０】
また、近年、ハードディスク等の記憶装置へのデータの読み書きの速度に比べて、プロセッサの演算速度は劇的に増加している。そのため、例えば、記憶装置へのデータの読み書きの際のデータ量を抑えるために、圧縮が実行されることが増えている。そして、例えば、圧縮処理と、意味解析処理とを別々で実行した場合、それぞれの処理において個別に記憶装置へのデータの読み書きが発生してしまう。一方、上記の実施形態では、圧縮のためにデータを記憶装置から読み出した際に、形態素解析及び意味解析などの一連の処理を実行している。そのため、データの書き込み処理を一度で済ませることができ、圧縮と意味解析とを全体として見た際の処理速度を改善することができる。
【００６１】
なお、上記の図９の動作フローでは、符号生成部６１２が、意味解析を、形態素解析結果に含まれる単語を用いて実行し、その後に、単語と、意味構造情報及び入れ子情報に対して符号を割り当てる例を述べている。この様にすることで、例えば、既存の意味解析を実行するアプリケーションを、実施形態に係る符号化処理の意味解析において利用することが可能である。しかしながら実施形態はこれに限定されるものではない。例えば、別の実施形態では、符号生成部６１２は、Ｓ９０１において形態素解析を行い、形態素解析結果に含まれる単語に圧縮符号を割り当てて単語符号８１５を生成してよい。そして、Ｓ９０２において符号生成部６１２は、単語符号８１５を用いて意味解析を実行してよい。この場合、Ｓ９０３において符号生成部６１２は、意味解析結果８１２に含まれる意味構造情報及び入れ子情報に対して符号を割り当ててよい。
【００６２】
＜第２の実施形態＞
図２１は、第２の実施形態に係る符号化装置２１００を示している。図２１の符号化装置２１００は、図６の符号化装置６００と同様に、形態素解析部８０１、記憶部６１１、符号生成部６１２、及び出力部６１４を含む。符号生成部６１２は、第１の変換部２１０１、集計部２１０２、生成部２１０３、及び第２の変換部２１０４を含む。記憶部６１１は、例えば、符号化処理の開始時に、圧縮対象文書８１１、単語辞書８１３、及び中間符号が登録されている中間符号表２１１２を記憶している。
【００６３】
図２２は、第２の実施形態に係る符号化処理のフローチャートである。図２２の符号化処理は、図２１の符号化装置２１００により行われる。図２２のＳ２２０１及びＳ２２０２において符号化装置２１００の形態素解析部８０１と符号生成部６１２は、例えば、図９のＳ９０１及びＳ９０２と同様の処理を実行してよい。
【００６４】
続いて、Ｓ２２０３において、符号生成部６１２の第１の変換部２１０１は、単語辞書８１３及び中間符号表２１１２を参照して、圧縮対象文書８１１内の各文に含まれる各単語に対して、中間符号を割り当てる。
【００６５】
図２３は、中間符号表２１１２の例を示している。図２３の中間符号表２１１２の各エントリは単語を識別するためのＩＤと、中間符号とを含む。中間符号としては、例えば、図１６の圧縮符号と同様の符号を用いることができる。
【００６６】
また更に、Ｓ２２０３において第１の変換部２１０１は、Ｓ２２０２の意味解析結果８１２に含まれる意味構造情報及び入れ子情報に対して、例えば、所定のルールに従って圧縮符号を割り当てることで中間符号を生成する。そして、第１の変換部２１０１は、生成した中間符号と、ＩＤとを対応付けて中間符号表２１１２に登録し、記憶部６１１に格納する。意味構造情報及び入れ子情報に対する中間符号に割り当てられるＩＤには、例えば、単語ＩＤと重複しないＩＤが用いられる。Ｓ２２０３の処理により、中間符号表２１１２には、例えば、単語辞書８１３における単語のＩＤと中間符号とを対応づける情報に加えて、意味構造情報及び入れ子情報に対する中間符号と、ＩＤとを対応づける情報が追加される。
【００６７】
Ｓ２２０４において、集計部２１０２は、圧縮対象文書８１１内の各文に含まれる各単語に対して割り当てた中間符号と、意味解析結果８１２に含まれる意味構造情報及び入れ子情報に対して割り当てた中間符号とについて、各中間符号の出現回数をカウントする。そして、集計部２１０２は、中間符号のカウント結果を集計情報２１１４として記憶部６１１に格納する。複数の圧縮対象文書８１１を符号化する場合は、文書毎に中間符号の出現回数がカウントされてよい。なお、カウントの際に、集計部２１０２は、各単語に対して割り当てた中間符号と、意味解析結果８１２に含まれる意味構造情報及び入れ子情報に対して割り当てた中間符号とを所定の順序で配列して中間符号列を生成してよい。そして、集計部２１０２は、中間符号列に含まれる単語に対して割り当てた中間符号と、意味構造情報及び入れ子情報に対して割り当てた中間符号とをカウントしてよい。
【００６８】
図２４は、複数の圧縮対象文書８１１の例を示しており、図２５は、図２４の複数の圧縮対象文書８１１に対する集計情報２１１４の例を示している。図２５の集計情報２１１４の各エントリは、圧縮対象文書８１１の文書ＩＤと、圧縮対象文書８１１に対して割り当てられた各中間符号の出現回数とを含む。図２５では、中間符号が単語で表現されているが、実際には、例えば、中間符号表２１１２のＩＤにより、単語、意味構造情報、及び入れ子情報の中間符号が識別されてよい。
【００６９】
例えば、文書ＩＤ“１”に対応する圧縮対象文書８１１には、単語“さくら”、“学校”、及び“の”が１個ずつ含まれ、単語“かえで”は含まれない。また、文書ＩＤ“２”に対応する圧縮対象文書８１１には、単語“かえで”、“学校”、及び“の”が１個ずつ含まれ、単語“さくら”は含まれない。
【００７０】
Ｓ２２０５において、生成部２１０３は、集計情報２１１４に基づいて、出現頻度がより高い情報に対してより短い圧縮符号を割り当て、出現頻度がより低い情報に対してより長い圧縮符号を割り当てる符号表２１１３を生成する。このとき、生成部２１０３は、集計情報２１１４に記録されている文書毎の出現回数から、所定サイズのブロック毎の出現回数を求め、ブロック毎の出現回数に基づいて適切な符号表２１１３を生成することができる。
【００７１】
図２６は、圧縮符号の符号表２１１３の例を示している。図２６の符号表２１１３の各エントリは単語、意味構造情報、及び入れ子情報を識別するためのＩＤと、中間符号表２１１２の中間符号と、Ｓ２２０５で割り当てた圧縮符号とを含む。なお、単語辞書８１３、及び符号表２１１３の情報はまとめて管理されてもよい。
【００７２】
Ｓ２２０６において、第２の変換部２１０４は、単語辞書８１３及び符号表２１１３を参照して、圧縮対象文書８１１内の各文に含まれる各単語と、意味解析結果８１２に含まれる意味構造情報及び入れ子情報とに対して、圧縮符号を割り当てる。そして、第２の変換部２１０４は、単語、意味構造情報、及び入れ子情報に対して割り当てた圧縮符号を、それぞれ、単語符号８１５、意味構造符号８１６、及び入れ子符号８１７として記憶部６１１に格納する。なお、ここでは、単語、意味構造情報、及び入れ子情報に対して符号表２１１３の圧縮符号を割り当てた符号を単語符号８１５、意味構造符号８１６、及び入れ子符号８１７と呼んでいる。しかしながら、実施形態はこれに限定されるものではない。例えば、符号表２１１３において単語、意味構造情報、及び入れ子情報のぞれぞれと対応づけられる中間符号も、単語符号８１５、意味構造符号８１６、及び入れ子符号８１７として用いることができる。
【００７３】
Ｓ２２０７において、出力部６１４は、単語符号８１５、意味構造符号８１６、及び入れ子符号８１７を所定の順序で配列して圧縮符号列を生成し、生成した圧縮符号列と符号表２１１３と集計情報２１１４とを例えば、記憶部６１１に出力する。或いは、別の実施形態では、出力部６１４は、圧縮符号列と符号表２１１３と集計情報２１１４とを、例えば、活用処理を行う情報処理装置へと出力してよい。所定の順序としては、例えば、上述した第１の順序又は第２の順序が用いられる。
【００７４】
図２２の符号化処理によれば、図９の符号化処理と同様に、活用処理の負荷が軽減される。さらに、圧縮対象文書８１１の圧縮符号列と符号表２１１３と集計情報２１１４とが関連付けて出力されるため、それらの情報の管理を一元化することができる。意味解析結果８１２と集計情報２１１４とを併せて用いることで、活用処理の精度が向上するとともに、活用処理が高速化される。
【００７５】
なお、第２の実施形態では符号生成部６１２が、意味解析を、形態素解析結果に含まれる単語を用いて実行し、その後に、単語と、意味構造情報及び入れ子情報とに対して符号を割り当てる例を述べている。この様にすることで、例えば、既存の意味解析を実行するアプリケーションを、実施形態に係る符号化処理の意味解析において利用することが可能である。しかしながら実施形態はこれに限定されるものではない。例えば、別の実施形態では、符号生成部６１２は、形態素解析結果に含まれる単語に符号を割り当て、符号化された単語を用いて意味解析を実行してもよい。
【００７６】
＜活用処理＞
続いて、上述の処理により生成された圧縮符号列の活用処理について例示する。
【００７７】
［第１の活用例］
第１の活用例では、圧縮符号列を、同義語抽出に利用する場合を例示する。同義語とは、例えば、語形は異なるが、同じ意味で用いられる語であってよい。例えば、同義語は、「本」と「書物」、「病気」と「やまい」、又は、「ビットを立てる」の「立てる」と「ビットをオンする」の「オンする」などを含んでいてよい。そして、圧縮符号列に含まれる意味解析結果は、このような同義語を文章中から抽出するために利用することができる。
【００７８】
図２７は、活用処理を行う情報処理装置２７００の機能的構成例を示している。情報処理装置２７００は、例えば、制御部２７０１と、記憶部２７１０とを含んでいてよい。制御部２７０１は例えば、プロセッサがプログラムを実行することで実現されてよい。また、情報処理装置２７００の記憶部２７１０は例えばメモリであってよい。情報処理装置２７００の記憶部２７１０は、例えば、単語辞書８１３、符号表２１１３、集計情報２１１４、及び圧縮符号列２７１１を記憶している。圧縮符号列２７１１は、例えば、符号化装置２１００の出力部６１４によって出力された単語符号８１５、意味構造符号８１６、及び入れ子符号８１７が所定の順序で配列されている情報であってよい。また、情報処理装置２７００は、例えば、圧縮符号列２７１１の生成を行った符号化装置２１００であってもよい。
【００７９】
図２８は、圧縮符号列２７１１を、同義語抽出に利用する場合の動作フローを例示する図である。Ｓ２８０１において制御部２７０１は、文書単位で集計されている集計情報２１１４を検索対象として設定する。Ｓ２８０２において、制御部２７０１は、例えば、同義語抽出のキーとなる表現の入力をユーザから受け付ける。なお、入力されるキーとなる表現は、例えば、単語、単語の概念情報、及びアークを含んでいる文の形式でもよいし、単語、単語の概念情報、及びアークに関する情報をユーザ操作により受け付けてもよい。なお、入力されたキーとなる表現が、文の形式である場合、制御部２７０１は、入力された文に意味解析を行うことで、単語、単語の概念情報、及びアークなどの情報を取得することができる。また、ここで入力されるキーとなる表現は、同義語が登場し易い傾向のある表現であってよい。同義語が登場し易い傾向のある表現は、例えば、既知の同義語辞典などに登録されている同義語が利用される文章中の表現を抽出することで、得ることができる。
【００８０】
続いて、Ｓ２８０３において制御部２７０１は、入力されたキーとなる表現を符号化する。例えば、制御部２７０１は、入力されたキーとなる表現に含まれる単語、単語の概念情報、及びアークを、中間符号に変換する。すなわち、例えば、単語は単語符号に、単語の概念情報、及びアークは、意味構造符号および入れ子符号に変換する。なお、例えば、単語は、符号表２１１３により中間符号と相互変換されてよく、単語の概念情報、及びアークは、所定のルールに従って、中間符号と相互変換されてよい。
【００８１】
次に、Ｓ２８０４において、制御部２７０１は、集計情報２１１４と、中間符号とに基づいて、検索対象となる文書を決定する。たとえば、制御部２７０１は、集計情報２１１４を参照し、入力されたキーとなる表現を符号化して得られた、単語符号、意味構造符号を含む文書を検索対象として決定してよい。
【００８２】
Ｓ２８０５において制御部２７０１は、検索対象として決定された文書の圧縮符号列２７１１に対して、Ｓ２８０２で入力されたキーとなる表現を用いて検索を行い、キーとなる表現を含む文の圧縮符号列を抽出する。例えば、制御部２７０１は、圧縮符号列２７１１の圧縮符号を符号表２１１３を用いて中間符号へと変換し、中間符号列を生成してよい。そして、制御部２７０１は、生成された中間符号列を、入力されたキーとなる表現に含まれる単語、単語の概念情報、及びアークに対応する中間符号を用いて検索し、単語、単語の概念情報、及びアークを含む文に対応する中間符号列を抽出してよい。
【００８３】
Ｓ２８０６において制御部２７０１は、抽出された文に対応する中間符号列から同義語である可能性のある単語を同義語候補として出力する。例えば、制御部２７０１は、抽出された文に対応する中間符号列において、キーとして入力されたアークにより、キーとして入力された単語と接続される単語の中間符号を、抽出された文に対応する中間符号列に符号化されている意味構造符号及び入れ子符号に基づいて特定する。そして、制御部２７０１は、特定した単語の中間符号を単語辞書８１３及び符号表２１１３を用いて単語に変換し、同義語候補として出力する。なお、別の実施形態では、制御部２７０１は、単語を中間符号のまま出力してもよく、又は圧縮符号に変換して出力してもよい。
【００８４】
図２９は、ビットが出現した後に「ＵＰ」の単語の概念情報を持つ「立てる」を検索する例である。なお、図２９に示す例では、圧縮符号列内の圧縮符号が符号表２１１３を用いて中間符号に置き換えられている。そして、単語の中間符号“０ｘＣ０２６５１”（ビット）の代わりに、意味構造情報の中間符号の末尾の２４ビット“０ｘ０４２０１９”と単語の中間符号“０ｘＣ０２６５１”（ビット）とを併せた４８ビット“０ｘ０４２０１９０２６５１”を検索している。図１９で述べた様に意味構造符号８１６と、単語符号８１５とを並べて配列することで、制御部２７０１は、概念情報と、その概念情報に隣接する単語とを合わせた検索が圧縮状態で可能である。そして、検索の結果、例えば、キーとして入力した概念情報、アーク、及びビットの並びが見つかった場合、制御部２７０１は、キーとして入力したアークにより単語：ビットと接続される単語を、同義語候補として出力してよい。なお、制御部２７０１は、例えば、抽出された単語についての概念情報が、「ＵＰ」の概念情報であるかを更に確認することで、同義語抽出の精度を高めることができる。
【００８５】
図２８及び図２９で述べた様に、意味構造符号８１６と、単語符号８１５とを隣接して配置することで、圧縮符号列から特定の意味構造に対応する単語を高速に検出することができる。また、例えば、n-gramなどの手法で指定された範囲における語の連接に基づいて同義語を抽出する場合、１つの単語に複数の修飾語がかかることがあり、この場合、修飾関係が遠くなってしまうことがある。しかしながら、例えば、意味解析では、修飾関係を有するノード同士は隣接して配置されるため、意味解析結果を利用することで、或る単語とアークにより直接接続される単語を検索することが可能であり、高い精度で同義語を抽出することができる。
【００８６】
［第２の活用例］
第２の活用例では、圧縮符号列２７１１を、知識抽出に利用する場合を例示する。例えば、Ｑ＆Ａ（Question and Answer）サイトに投稿された質問と、その回答とを含む記事から、質問を分類するための知識を抽出することが考えられる。
【００８７】
例えば、「オペレーティングシステムのシステムファイル、又はハードディスクの起動に必要な情報が破損している可能性があります。」の回答があったとする。この場合に、この文章から、記事が例えば、「オペレーティングシステムのシステムファイル」、「ハードディスクの起動」、及び「情報の破損」に関するものであるという、３つの知識が抽出されてよい。そして、例えば、このような知識の抽出に、圧縮符号列２７１１に含まれる意味解析結果を利用することができる。
【００８８】
図３０は、圧縮符号列を、知識抽出に利用する場合の動作フローを例示する図である。Ｓ３００１において制御部２７０１は、文書単位で集計されている集計情報２１１４を検索対象として設定する。Ｓ３００２において、制御部２７０１は、例えば、知識抽出のための検索キーの入力をユーザから受け付ける。なお、検索キーは、例えば、知識として利用可能な表現に含まれやすいアークを含む文の形式で受け付けてもよいし、アークに関する情報をユーザ操作により受け付けてもよい。また、知識の抽出に有効な検索キーは、例えば、既に抽出済みの知識などに基づいて、知識に含まれやすいアークを特定することで、得ることができる。
【００８９】
Ｓ３００３において制御部２７０１は、入力された検索キーから取得されたアークを所定のルールに従って中間符号に変換する。
【００９０】
次に、Ｓ３００４において制御部２７０１は、集計情報２１１４と、中間符号とに基づいて、検索対象となる文書を決定する。例えば、制御部２７０１は、集計情報２１１４に基づいて、得られたアークの中間符号が含まれている文書を検索対象として決定してよい。
【００９１】
Ｓ３００５において制御部２７０１は、検索対象として決定された文書の圧縮符号列２７１１に対して、入力された検索キーから得られたアークで検索を行い、検索されたアークによって接続される２つの単語を知識候補として出力する。例えば、制御部２７０１は、検索対象の文書の圧縮符号列２７１１を符号表２１１３を用いて中間符号列に変換し、得られた中間符号列の中から入力されたアークに対応する中間符号を含む文の中間符号列を特定してよい。更に制御部２７０１は、例えば、特定された文の中間符号列において、アークにより接続される２つの単語の中間符号を、特定された文に対応する中間符号列に符号化されている意味構造符号及び入れ子符号に基づいて特定する。そして、制御部２７０１は、特定された２つの単語の中間符号を符号表２１１３と単語辞書８１３を用いて単語に変換し、出力してよい。なお、別の実施形態では、制御部２７０１は、単語を中間符号のまま出力してもよく、又は圧縮符号に変換して出力してもよい。また、例えば、検索キーから得られたアークと、出力された２つの単語とは、Ｑ＆Ａの記事を分類するための知識として利用されてよい。
【００９２】
［第３の活用例］
第３の活用例では、圧縮符号列２７１１を、文書推敲に利用する場合を例示する。例えば、情報処理装置２７００は、文章に複数の解釈が可能な文が存在する場合に文の訂正を促すために意味解析結果を利用してよい。
【００９３】
例えば、「メモリＡに表示されるメッセージを格納する」という文章があった場合、メッセージがメモリＡに表示されるのか、又はメッセージがメモリＡに格納されるのかが曖昧である。そして、この様な曖昧な表現となりやすい文章を抽出するために、圧縮符号列２７１１に含まれる意味解析結果を利用することができる。
【００９４】
図３１は、圧縮符号列２７１１を、文章推敲に利用する場合の動作フローを例示する図である。Ｓ３１０１において制御部２７０１は、文書単位で集計されている集計情報２１１４を検索対象として設定する。Ｓ３１０２において、制御部２７０１は、例えば、文章推敲を行うことが望ましい文章を抽出するための検索キーの入力をユーザから受け付ける。例えば、検索のキーとなる表現は、複数のアークの並びであってよい。なお、検索のキーとなる表現は、例えば、所定の並びの複数のアークを含む文の形式で受け付けてもよいし、所定の複数のアークの並びに関する情報をユーザ操作により受け付けてもよい。また、文章推敲を行うことが望ましい文章を抽出するための有効な検索キーは、例えば、既知の文章推敲が望まれる複数の文章から得られた文章を曖昧にする傾向のあるアークの並び等を特定することで、得ることができる。
【００９５】
Ｓ３１０３において制御部２７０１は、例えば、入力された検索キーから取得された複数のアークを所定のルールに従って中間符号に変換する。
【００９６】
次に、Ｓ３１０４において制御部２７０１は、集計情報２１１４と、中間符号とに基づいて、検索対象となる文書を決定する。例えば、制御部２７０１は、集計情報２１１４を参照し、検索キーから取得された複数のアークに対応する中間符号が含まれている文書を、検索対象として決定してよい。
【００９７】
Ｓ３１０５において制御部２７０１は、検索対象として決定された文書の圧縮符号列を符号表２１１３を用いて中間符号列に変換する。そして、制御部２７０１は、得られた文書の中間符号列を、Ｓ３１０２で入力された検索のキーとなる表現から得られた所定の順序で並ぶ複数のアークに対応する中間符号を用いて検索する。そして、制御部２７０１は、文書の中間符号列に符号化されている意味構造符号及び入れ子符号に基づいて、所定の順序で並ぶ複数のアークを含む文の中間符号列を特定し、その文の中間符号列を出力する。出力される文は、例えば、文章推敲が望まれる可能性の高い文であり、ユーザに修正等を促すために利用されてよい。なお、出力される文は、中間符号や圧縮符号で出力されていても、元の単語に復号されていてもよい。制御部２７０１は、符号表２１１３を用いて、単語、中間符号、及び圧縮符号の間の変換を実行することができる。
【００９８】
以上の第１の活用例から第３の活用例で例示したように、情報処理装置２７００は、例えば、符号化装置２１００が出力した圧縮符号列２７１１を用いて、意味解析結果を様々な処理で利用することができる。そのため、活用時に意味解析をしなくてもよく、文書の意味解析結果を活用する際の処理負荷を軽減することができる。なお、以上の活用例では、集計情報２１１４を用いて、検索対象の文書を効果的に絞り込む場合を例示したが、実施形態に係る活用例はこれに限定されるものではない。例えば、別な活用例では、集計情報２１１４は、用いられなくてもよい。
【００９９】
［第１の活用例の変形形態］
第１の活用例の変形形態では、集計情報を用いない場合の圧縮符号列２７１１の同義語抽出での利用について例示する。なお、変形形態においては、情報処理装置２７００の記憶部２７１０は、符号表２１１３の代わりに、符号表８１４を記憶しており、一方、集計情報２１１４は記憶していなくてよい。また、圧縮符号列２７１１は、第１の実施形態に係る符号化装置８００により出力された圧縮符号列であってよい。
【０１００】
図３２は、圧縮符号列２７１１を同義語抽出に利用する第１の活用処理の変形形態の動作フローを例示する図である。Ｓ３２０１において制御部２７０１は、検索対象となる文書の指定をユーザから受け付ける。Ｓ３２０２において、制御部２７０１は、例えば、同義語抽出のキーとなる表現の入力をユーザから受け付ける。なお、入力されるキーとなる表現は、例えば、単語、単語の概念情報、及びアークを含んでいる文の形式でもよいし、単語、単語の概念情報、及びアークに関する情報をユーザ操作により受け付けてもよい。また、入力されるキーとなる表現は、同義語が登場し易い傾向のある表現であってよい。
【０１０１】
続いて、Ｓ３２０３において制御部２７０１は、入力されたキーとなる表現に含まれる例えば、単語、単語の概念情報、及びアークを、単語辞書８１３、符号表８１４を参照して、或いは所定のルールに従って対応する圧縮符号に変換する。
【０１０２】
Ｓ３２０４において制御部２７０１は、Ｓ３２０１で指定された検索対象となる文書の圧縮符号列２７１１に対して、Ｓ３２０３で変換したキーとなる表現の圧縮符号を用いて検索を行い、キーとなる表現を含む文の圧縮符号列を抽出する。
【０１０３】
Ｓ３２０５において制御部２７０１は、抽出された文の圧縮符号列から同義語である可能性のある単語を同義語候補として出力する。例えば、制御部２７０１は、抽出された文に対応する圧縮符号列に符号化されている意味構造符号及び入れ子符号に基づいて、キーとして入力されたアークにより、キーとして入力された単語と接続される単語の単語符号を特定する。そして、制御部２７０１は、特定された単語符号を単語辞書８１３及び符号表８１４を用いて単語に変換し、同義語候補として出力する。なお、別の実施形態では、制御部２７０１は、例えば、単語を単語符号のまま出力してもよい。
【０１０４】
以上で述べた様に、第１の活用例の変形形態では、情報処理装置２７００は、例えば、符号化装置８００が出力した圧縮符号列２７１１を用いて、伸張せずとも、意味解析結果を様々な処理で利用することができる。そのため、活用時に伸張と、意味解析とをしなくてもよく、文書の意味解析結果を活用する際の処理負荷を軽減することができる。
【０１０５】
なお、上記においては、日本語を例に説明が行われているが、実施形態はこれに限定されるものではなく、例えば、英語や中国語などその他の言語に対しても実施形態を適用することができる。
【０１０６】
図６、図８、及び図２１の符号化装置６００、８００、及び２１００と図２７の活用処理を行う情報処理装置２７００とは、例えば、図３３に示す情報処理装置（コンピュータ）３３００を用いて実現可能である。
【０１０７】
図３３の情報処理装置３３００は、プロセッサ３３０１、メモリ３３０２、入力装置３３０３、出力装置３３０４、補助記憶装置３３０５、媒体駆動装置３３０６、及びネットワーク接続装置３３０７を含む。これらの構成要素はバス３３０８により互いに接続されている。
【０１０８】
メモリ３３０２は、例えば、Read Only Memory（ＲＯＭ）、Random Access Memory（ＲＡＭ）、フラッシュメモリ等の半導体メモリである。メモリ３３０２は、符号化処理又は活用処理のためのプログラム及びデータを格納する。メモリ３３０２は、例えば、図６、図８、図２１の記憶部６１１、又は図２７の記憶部２７１０として用いられてよい。
【０１０９】
プロセッサ３３０１は、例えば、メモリ３３０２を利用してプログラムを実行することにより、図６、図８、及び図２１の符号生成部６１２、出力部６１４、及び形態素解析部８０１として動作し、符号化処理を行う。プロセッサ３３０１は、図２１の第１の変換部２１０１、集計部２１０２、生成部２１０３、及び第２の変換部２１０４としても動作する。或いは、プロセッサ３３０１は、例えば、メモリ３３０２を利用してプログラムを実行することにより、図２７の制御部２７０１として動作し、活用処理を行う。
【０１１０】
入力装置３３０３は、例えば、キーボード、ポインティングデバイス等であり、ユーザ又はオペレータからの指示や情報の入力に用いられる。出力装置３３０４は、例えば、表示装置、プリンタ、スピーカ等であり、ユーザ又はオペレータへの問い合わせや処理結果の出力に用いられる。処理結果は、活用処理の結果であってもよい。
【０１１１】
補助記憶装置３３０５は、例えば、磁気ディスク装置、光ディスク装置、光磁気ディスク装置、テープ装置等である。補助記憶装置３３０５は、ハードディスクドライブ又はフラッシュメモリであってもよい。情報処理装置３３００は、補助記憶装置３３０５にプログラム及びデータを格納しておき、それらをメモリ３３０２にロードして使用することができる。補助記憶装置３３０５は、図６、図８、及び図２１の記憶部６１１、又は図２７の記憶部２７１０として用いることができる。
【０１１２】
媒体駆動装置３３０６は、可搬型記録媒体３３０９を駆動し、その記録内容にアクセスする。可搬型記録媒体３３０９は、メモリデバイス、フレキシブルディスク、光ディスク、光磁気ディスク等である。可搬型記録媒体３３０９は、Compact Disk Read Only Memory（ＣＤ−ＲＯＭ）、Digital Versatile Disk（ＤＶＤ）、Universal Serial Bus（ＵＳＢ）メモリ等であってもよい。ユーザ又はオペレータは、この可搬型記録媒体３３０９にプログラム及びデータを格納しておき、それらをメモリ３３０２にロードして使用することができる。
【０１１３】
このように、プログラム及びデータを格納するコンピュータ読み取り可能な記録媒体は、メモリ３３０２、補助記憶装置３３０５、及び可搬型記録媒体３３０９のような、物理的な（非一時的な）記録媒体である。
【０１１４】
ネットワーク接続装置３３０７は、Local Area Network（ＬＡＮ）、インターネット等の通信ネットワークに接続され、通信に伴うデータ変換を行う通信インタフェースである。情報処理装置は、ネットワーク接続装置３３０７を介して外部の装置からプログラム及びデータを受信し、それらをメモリ３３０２にロードして使用することができる。ネットワーク接続装置３３０７により、例えば、符号化装置６００、８００、及び２１００、又は活用処理を行う情報処理装置２７００は、符号表２１１３、集計情報２１１４、及び圧縮符号列などを送受信することができる。
【０１１５】
なお、情報処理装置３３００が図３３のすべての構成要素を含まなくてもよく、用途や条件に応じて一部の構成要素を省略することも可能である。例えば、ユーザ又はオペレータからの指示や情報の入力を行わない場合は、入力装置３３０３を省略してもよく、ユーザ又はオペレータへの問い合わせや処理結果の出力を行わない場合は、出力装置３３０４を省略してもよい。情報処理装置３３００が可搬型記録媒体３３０９又は通信ネットワークにアクセスしない場合は、媒体駆動装置３３０６又はネットワーク接続装置３３０７を省略してもよい。
【０１１６】
開示の実施形態とその利点について詳しく説明したが、当業者は、特許請求の範囲に明確に記載した本発明の範囲から逸脱することなく、様々な変更、追加、省略をすることができるであろう。
【符号の説明】
【０１１７】
６００  符号化装置
６１１  記憶部
６１２  符号生成部
６１４  出力部
８００  符号化装置
８０１  形態素解析部
２１００  符号化装置
２１０１  第１の変換部
２１０２  集計部
２１０３  生成部
２１０４  第２の変換部
２７００  情報処理装置
２７０１  制御部
２７１０  記憶部
３３００  情報処理装置
３３０１  プロセッサ
３３０２  メモリ
３３０３  入力装置
３３０４  出力装置
３３０５  補助記憶装置
３３０６  媒体駆動装置
３３０７  ネットワーク接続装置
３３０８  バス
３３０９  可搬型記録媒体
【図１】
2018018174.tif 000003
【図２】
2018018174.tif 000004
【図３】
2018018174.tif 000005
【図４】
2018018174.tif 000006
【図５】
2018018174.tif 000007
【図６】
2018018174.tif 000008
【図７】
2018018174.tif 000009
【図８】
2018018174.tif 000010
【図９】
2018018174.tif 000011
【図１０】
2018018174.tif 000012
【図１１】
2018018174.tif 000013
【図１２】
2018018174.tif 000014
【図１３】
2018018174.tif 000015
【図１４】
2018018174.tif 000016
【図１５】
2018018174.tif 000017
【図１６】
2018018174.tif 000018
【図１７】
2018018174.tif 000019
【図１８】
2018018174.tif 000020
【図１９】
2018018174.tif 000021
【図２０】
2018018174.tif 000022
【図２１】
2018018174.tif 000023
【図２２】
2018018174.tif 000024
【図２３】
2018018174.tif 000025
【図２４】
2018018174.tif 000026
【図２５】
2018018174.tif 000027
【図２６】
2018018174.tif 000028
【図２７】
2018018174.tif 000029
【図２８】
2018018174.tif 000030
【図２９】
2018018174.tif 000031
【図３０】
2018018174.tif 000032
【図３１】
2018018174.tif 000033
【図３２】
2018018174.tif 000034
【図３３】
2018018174.tif 000035