(57)【要約】  情報処理装置は、検索条件に含まれるテキストに含まれるいずれかの単語に応じたベクトルを特定する。情報処理装置は、複数のベクトルそれぞれに応じた単語が、複数のテキストファイルそれぞれに含まれるか否かを示す存否情報を記憶する記憶部を参照して、複数のベクトルのうち、特定したベクトルとの類似度が基準以上となるベクトルに対応付けられた存否情報に基づき、複数のテキストファイルのうち、いずれかの単語を含むテキストファイルを特定する。
2020213158.tif 000002
【特許請求の範囲】
【請求項１】
検索条件に含まれるテキストを受け付け、
受け付けた前記テキストに含まれるいずれかの単語に応じたベクトルを特定し、
複数のテキストファイルの少なくともいずれかに含まれる複数の単語に応じた複数のベクトルそれぞれに対応付けて、前記複数のベクトルそれぞれに応じた単語が、前記複数のテキストファイルそれぞれに含まれるか否かを示す存否情報を記憶する記憶部を参照して、前記複数のベクトルのうち、特定した前記ベクトルとの類似度が基準以上となるベクトルに対応付けられた存否情報に基づき、前記複数のテキストファイルのうち、前記いずれかの単語を含むテキストファイルを特定する
処理をコンピュータが実行することを特徴とする特定方法。
【請求項２】
前記ベクトルを特定する処理は、前記テキストに含まれる単語の各次元の値を積算し、積算結果を基にして、前記テキストに含まれるいずれかの単語から、特徴単語のベクトルを特定し、前記テキストファイルを特定する処理は、前記記憶部を参照して、前記複数のベクトルのうち、前記特徴単語のベクトルとの類似度が基準以上となるベクトルに対応付けられた存否情報に基づき、前記複数のテキストファイルのうち、前記いずれかの単語を含むテキストファイルを特定することを特徴とする請求項１に記載の特定方法。
【請求項３】
前記ベクトルを特定する処理は、前記検索条件に含まれる複数の文の各次元の値を積算した積算結果を基にして、前記検索条件に含まれるいずれかの文から、特徴文のベクトルを特定し、前記テキストファイルを特定する処理は、前記複数のベクトルそれぞれに応じた文が、前記複数のテキストファイルそれぞれに含まれるか否かを示す存否情報を記憶する記憶部を参照して、前記複数のベクトルのうち、特定した前記特徴文のベクトルとの類似度が基準以上となるベクトルに対応付けられた存否情報に基づき、前記複数のテキストファイルのうち、前記検索条件に含まれるいずれかの文を含むテキストファイルを特定することを特徴とする請求項１に記載の特定方法。
【請求項４】
テキストファイルを受け付け、
受け付けた前記テキストファイルに含まれるいずれかの単語に応じた第１のベクトルを特定し、
複数の単語に応じた複数のベクトルを記憶する記憶部を参照して、前記複数のベクトルのうち、前記第１のベクトルとの類似度が基準以上となる第２のベクトルを特定し、
前記テキストファイルに前記いずれかの単語が含まれることを示す情報を、前記第２のベクトルに対応付ける情報を生成する
処理をコンピュータが実行することを特徴とする生成方法。
【請求項５】
分類レベルに応じた類似度の複数の基準値を基にして、前記テキストファイルに含まれる複数の単語のうち、ベクトル同士の類似度が基準値以上となる単語グループに属する各単語に対して同一のベクトルに対応付ける処理を、異なる分類レベル毎に実行し、
前記テキストファイルに含まれるある単語グループに属する単語のオフセットと、前記ある単語グループに属する単語のベクトルとを対応付けた転置インデックスを、異なる分類レベル毎に生成する処理を更に実行することを特徴とする請求項４に記載の生成方法。
【請求項６】
検索条件に含まれるテキストを受け付け、
受け付けた前記テキストに含まれるいずれかの単語に応じたベクトルを特定し、
特定した前記ベクトルと、前記分類レベル毎のいずれかの転置インデックスとを基にして、前記ベクトルに対応する単語を含むテキストファイルを特定する処理を更に実行することを特徴とする請求項５に記載の生成方法。
【請求項７】
前記テキストファイルを特定する処理は、前記分類レベル毎の転置インデックスに基づいて検索したテキストファイルの数を基にして、前記転置インデックスを切り替えることを特徴とする請求項６に記載の生成方法。
【請求項８】
文字列に対応する複数次元のベクトルを基にして、前記ベクトルを次元毎に成分分解された複数の基底ベクトルを円状に分散配置し、
前記複数の基底ベクトルのうち、第１の基底ベクトルに対して、前記第１の基底ベクトルを除く他の第２の基底ベクトルを直交変換した値を積算することで、前記第１の基底ベクトルの値を算出し、
前記ベクトルに含まれる複数次元を、前記第１の基底ベクトルに対応する次元に圧縮し、圧縮した次元の値を、前記算出する処理によって算出された第１の基底ベクトルの値に設定する
処理をコンピュータが実行することを特徴とする次元圧縮方法。
【請求項９】
テキストを受け付け、
受け付けた前記テキストに含まれる複数の単語または文に応じたベクトルの次元を次元圧縮し、
前記複数の単語または文に対応する次元圧縮されたベクトルの次元のうち、２次元のベクトルの値に応じた位置をそれぞれグラフにプロットした画像情報を生成し、
生成した画像情報を表示する
処理をコンピュータが実行することを特徴とする表示方法。
【請求項１０】
検索条件に含まれるテキストを受け付ける受付部と、
受け付けた前記テキストに含まれるいずれかの単語に応じたベクトルを特定し、複数のテキストファイルの少なくともいずれかに含まれる複数の単語に応じた複数のベクトルそれぞれに対応付けて、前記複数のベクトルそれぞれに応じた単語が、前記複数のテキストファイルそれぞれに含まれるか否かを示す存否情報を記憶する記憶部を参照して、前記複数のベクトルのうち、特定した前記ベクトルとの類似度が基準以上となるベクトルに対応付けられた存否情報に基づき、前記複数のテキストファイルのうち、前記いずれかの単語を含むテキストファイルを特定する特定部と
を有することを特徴とする情報処理装置。
【請求項１１】
テキストファイルを受け付ける受付部と、
受け付けた前記テキストファイルに含まれるいずれかの単語に応じた第１のベクトルを特定し、複数の単語に応じた複数のベクトルを記憶する記憶部を参照して、前記複数のベクトルのうち、前記第１のベクトルとの類似度が基準以上となる第２のベクトルを特定し、前記テキストファイルに前記いずれかの単語が含まれることを示す情報を、前記第２のベクトルに対応付ける情報を生成する生成処理部と
を有することを特徴とする情報処理装置。
【請求項１２】
テキストを受け付ける受付部と、
受け付けた前記テキストに含まれる複数の単語または文に応じたベクトルの次元を次元圧縮し、前記複数の単語または文に対応する次元圧縮されたベクトルの次元のうち、２次元のベクトルの値に応じた位置をそれぞれグラフにプロットした画像情報を生成し、生成した画像情報を表示するグラフ生成部と
を有することを特徴とする情報処理装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、特定方法等に関する。
【背景技術】
【０００２】
従来の検索技術等では、専門書等のテキストを圧縮符号化する場合に、テキストを字句解析し、単語と、テキスト上の単語のオフセットとを対応付けた転置インデックスを生成し、テキスト検索に用いている。たとえば、検索クエリ（検索対象のテキスト）が指定されると、転置インデックスを用いて、検索クエリの単語に対応するオフセットを特定し、検索クエリの単語を含むテキストを検索する。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２００６−１１９７１４号公報
【特許文献２】特開２０１８−１８０７８９号公報
【特許文献３】特開２００６−１４６３５５号公報
【特許文献４】特開２００２−２３００２１号公報
【非特許文献】
【０００４】
【非特許文献１】岩崎雅二郎、「高次元ベクトルデータにおいて高速な近傍検索を実現するＮＧＴの公開」、＜https://techblog.yahoo.co.jp/lab/searchlab/ngt-1.0.0/＞、2019年3月12日検索
【発明の概要】
【発明が解決しようとする課題】
【０００５】
しかしながら、上述した従来技術では、専門書等のテキストと検索クエリのテキストにおいて、単語や文の粒度の表記ゆれ原因で検索されない場合がある。【０００６】
たとえば、上記の転置インデックスが、単語とそのオフセットとを対応付けているため、意味が同じであっても、検索クエリの単語と一致しない単語を、検索することが難しい。【０００７】
１つの側面では、本発明は、検索クエリのテキストとの表記ゆれに起因する検索精度の低下を抑制する特定方法、生成方法、次元圧縮方法、表示方法および情報処理装置を提供することを目的とする。
【課題を解決するための手段】
【０００８】
第１の案では、コンピュータが次の処理を実行する。コンピュータは、検索条件に含まれるテキストを受け付ける。コンピュータは、受け付けたテキストに含まれるいずれかの単語に応じたベクトルを特定する。コンピュータは、複数のテキストファイルの少なくともいずれかに含まれる複数の単語に応じた複数のベクトルそれぞれに対応付けて、複数のベクトルそれぞれに応じた単語が、複数のテキストファイルそれぞれに含まれるか否かを示す存否情報を記憶する記憶部を参照して、複数のベクトルのうち、特定したベクトルとの類似度が基準以上となるベクトルに対応付けられた存否情報に基づき、複数のテキストファイルのうち、いずれかの単語を含むテキストファイルを特定する。
【発明の効果】
【０００９】
検索クエリのテキストとの表記ゆれに起因する検索精度の低下を抑制することができる。
【図面の簡単な説明】
【００１０】
【図１】図１は、本実施例に係る情報処理装置の処理を説明するための図（１）である。
【図２】図２は、本実施例に係る情報処理装置の処理を説明するための図（２）である。
【図３】図３は、本実施例に係る情報処理装置の構成を示す機能ブロック図である。
【図４】図４は、単語ベクトルテーブルのデータ構造の一例を示す図である。
【図５】図５は、次元圧縮テーブルのデータ構造の一例を示す図である。
【図６】図６は、単語インデックスのデータ構造の一例を示す図である。
【図７】図７は、同義語インデックスのデータ構造の一例を示す図である。
【図８】図８は、同義文インデックスのデータ構造の一例を示す図である。
【図９Ａ】図９Ａは、基底ベクトルの分散配置を説明するための図である。
【図９Ｂ】図９Ｂは、次元圧縮を説明するための図である。
【図１０】図１０は、転置インデックスをハッシュ化する処理の一例を説明するための図である。
【図１１】図１１は、次元復元を説明するための図である。
【図１２】図１２は、ハッシュ化されたビットマップを復元する処理を説明するための図である。
【図１３】図１３は、グラフ情報の一例を示す図である。
【図１４】図１４は、本実施例に係る情報処理装置の処理手順を示すフローチャート（１）である。
【図１５】図１５は、本実施例に係る情報処理装置の処理手順を示すフローチャート（２）である。
【図１６】図１６は、生成処理部が生成する複数の同義語インデックスの一例を示す図である。
【図１７】図１７は、本実施例に係る情報処理装置と同様の機能を実現するコンピュータのハードウェア構成の一例を示す図である。
【発明を実施するための形態】
【００１１】
以下に、本願の開示する特定方法、生成方法、次元圧縮方法、表示方法および情報処理装置の実施例を図面に基づいて詳細に説明する。なお、この実施例によりこの発明が限定されるものではない。
【実施例】
【００１２】
図１および図２は、本実施例に係る情報処理装置の処理を説明するための図である。まず、図１について説明する。図１に示すように、情報処理装置の次元圧縮部１５０ｂは、単語ベクトルテーブル１４０ａを取得する。単語ベクトルテーブル１４０ａは、各単語のベクトルの情報を保持するテーブルである。単語ベクトルテーブル１４０ａに含まれる各単語のベクトルは、Word2Vec等を用いて予め算出されたベクトルであり、たとえば、２００次元のベクトルとする。【００１３】
次元圧縮部１５０ｂは、単語ベクトルテーブル１４０ａの各単語のベクトルを次元圧縮することで、次元圧縮単語ベクトルテーブル１４０ｂを生成する。次元圧縮単語ベクトルテーブル１４０ｂは、次元圧縮した各単語のベクトルの情報を保持するテーブルである。次元圧縮単語ベクトルテーブル１４０ｂに含まれる各単語のベクトルは、３次元のベクトルとする。【００１４】
次元圧縮部１５０ｂは、２００次元に成分分解された、２００本の各ベクトルａｉｅｉ（ｉ＝１〜２００）を円状に等分に分散配置する。「ｅｉ」は、基底ベクトルである。以下の説明では、成分分解されたベクトルを基底ベクトルと表記する。次元圧縮部１５０ｂは、素数の基底ベクトルを一つ選択し、その基底ベクトルに他の次元の基底ベクトルを直交変換した値を積算する。次元圧縮部１５０ｂは、素数「３」で分割され、分散する３つの素数の基底ベクトルに対して、上記処理を実行することで、２００次元のベクトルを、３次元のベクトルに次元圧縮する。たとえば、次元圧縮部１５０ｂは、「１」、「６７」、「１３１」の素数の基底ベクトルの値をそれぞれ算出することで、３次元のベクトルに次元圧縮する。【００１５】
なお、本実施例では一例として、３次元のベクトルとして説明するが、他の次元のベクトルであってもよい。素数「３以上」で分割され、分散する素数の基底ベクトルを選択することで、非可逆ではあるが、高精度な次元復元を実現できる。なお、分割する素数を大きくすると、精度が向上するが、圧縮率が低下する。以下の説明では、適宜、２００次元のベクトルを「ベクトル」と表記し、３次元に次元圧縮されたベクトルを「圧縮ベクトル」と表記する。【００１６】
情報処理装置の生成処理部１５０ｃは、複数のテキストファイル１０Ａを受け付ける。テキストファイル１０Ａは、複数の単語から構成される文を複数有するファイルである。生成処理部１５０ｃは、辞書情報１５を基にして、複数のテキストファイル１０Ａをそれぞれ単語単位に符号化することで、複数のテキスト圧縮ファイル１０Ｂを生成する。【００１７】
生成処理部１５０ｃは、テキストファイル１０Ａを基にしてテキスト圧縮ファイル１０Ｂを生成する際に、単語インデックス１４０ｃ、同義語インデックス１４０ｄ、同義文インデックス１４０ｅ、文ベクトル１４０ｆ、動的辞書１４０ｇを生成する。【００１８】
辞書情報１５は、単語と符号とを対応付ける情報（静的辞書）である。生成処理部１５０ｃは、辞書情報１５を参照し、テキストファイル１０Ａの各単語を符号に割当てて、圧縮する。生成処理部１５０ｃは、テキストファイル１０Ａの単語のうち、辞書情報１５に存在しない単語や、頻度の低い単語を、動的符号を割り当てて圧縮し、かかる単語と、動的符号とを動的辞書１４０ｇに登録する。【００１９】
単語インデックス１４０ｃは、単語の符号（あるいは、単語ＩＤ）と、かかる単語の符号の位置とを対応付けるものである。単語の符号の位置は、テキスト圧縮ファイル１０Ｂのオフセットで示される。複数のテキスト圧縮ファイル１０Ｂにおいて、オフセットをどのように定義してもよい。たとえば、先のテキスト圧縮ファイルの末尾の単語の符号のオフセットを「Ｎ」とすると、次のテキスト圧縮ファイルの先頭の単語の符号のオフセットは「Ｎ＋１」と連続することができる。【００２０】
同義語インデックス１４０ｄは、単語の圧縮ベクトルと、かかる圧縮ベクトルに対応する単語の符号の位置とを対応付けるものである。単語の符号の位置は、テキスト圧縮ファイル１０Ｂのオフセットで示される。ここで、異なる単語の符号であっても、同義語である単語については、同一の圧縮ベクトルが割り当てられる。たとえば、単語Ａ１、Ａ２、Ａ３がそれぞれ「リンゴ」（日本語）「ａｐｐｌｅ」（英語）「ｐｏｍｍｅ」（フランス語）のような同義語である場合は、単語Ａ１、Ａ２、Ａ３の圧縮ベクトルは、ほぼ同一の値を持つ。【００２１】
同義文インデックス１４０ｅは、文の圧縮ベクトルと、かかる圧縮ベクトルに対応する文の位置とを対応付けるものである。テキスト圧縮ファイル１０Ｂの文の位置は、文に含まれる単語の符号にうち、先頭の単語の符号の位置とする。生成処理部１５０ｃは、文に含まれる各単語の圧縮ベクトルを積算することで文の圧縮ベクトルを算出し、文ベクトルテーブル１４０ｆに格納する。生成処理部１５０ｃは、テキストファイル１０Ａに含まれる各文の圧縮ベクトルの類似度をそれぞれ算出し、類似度が閾値以上となる複数文を同一のグループに分類する。生成処理部１５０ｃは、同一のグループに属する各文を、同義文として特定し、同一の圧縮ベクトルを割り当てる。なお、文ベクトルは、文毎に３次元の圧縮ベクトルが割当てられる。また、各文ベクトルを出現順に円に対応付けて分散配置し、複数の文を一括して圧縮することも可能である。【００２２】
上記のように、本実施例に係る情報処理装置は、単語ベクトルテーブル１４０ａを次元圧縮した次元圧縮単語ベクトルテーブル１４０ｂを生成し、テキストファイル１０Ａを圧縮する場合に、圧縮ベクトルと、圧縮ベクトルに対応する同義語、同義文の出現位置を定義した同義語インデックス１４０ｄ、同義文インデックス１４０ｅを生成する。同義語インデックス１４０ｄは、同一の同義語に属する各単語に、同一の圧縮ベクトルを割当て、圧縮ベクトルに対応する単語（同義語）が出現する位置を定義した情報である。また、同義文インデックス１４０ｅは、同一の同義文に属する各文に、同一の圧縮ベクトルを割当て、圧縮ベクトルに対応する文（同義文）が出現する位置を定義した情報である。このため、それぞれの単語や文に２００次元のベクトルを割り当てる方法と比較して、データ量を削減することができる。【００２３】
図２の説明に移行する。情報処理装置の抽出部１５０ｄは、検索クエリ２０Ａを受け付けると、次元圧縮単語ベクトルテーブル１４０ｂを基にして、特徴単語２１と、特徴文２２とを抽出する。【００２４】
たとえば、抽出部１５０ｄは、検索クエリ２０Ａに含まれる複数の文の圧縮ベクトルを算出する。まず、抽出部１５０ｄは、一つの文に含まれる複数の単語の圧縮ベクトルを、次元圧縮単語ベクトルテーブル１４０ｂから取得し、取得した単語の圧縮ベクトルを、２００次元のベクトルに復元する。【００２５】
抽出部１５０ｄは、２００次元に成分分解された各基底ベクトルを円状に等分に分散配置する。抽出部１５０ｄは、次元圧縮部１５０ｂで選択された素数「３」で分割された３つの素数「１」、「６７」、「１３１」の基底ベクトル以外の、一つの基底ベクトルを選択し、選択した基底ベクトルに対し、素数「１」、「６７」、「１３１」の基底ベクトルを直交変換した値を積算することで、選択した一つの基底ベクトルの値を算出する。たとえば、抽出部１５０ｄは、「２〜６６、６８〜１３０、１３２〜２００」に対応する各基底ベクトルに対して、上記処理を繰り返し実行する。上記処理を行うことで、抽出部１５０ｄは、検索クエリ２０Ａに含まれる各単語の圧縮ベクトルを、２００次元のベクトルに復元する。【００２６】
続いて、抽出部１５０ｄは、一つの文に含まれる複数の単語のベクトルを積算することで、文のベクトルを算出する。抽出部１５０ｄは、検索クエリ２０Ａに含まれる他の文についても同様に、文のベクトルを算出する。【００２７】
抽出部１５０ｄは、検索クエリ２０Ａに含まれる複数の文のベクトルを積算することで、検索クエリ２０Ａのベクトルを算出する。以下の説明では、検索クエリ２０Ａのベクトル（２００次元）を「クエリベクトル」と表記する。【００２８】
抽出部１５０ｄは、クエリベクトルの各次元の値を降順にソートし、上位の数次元を特定する。以下の説明では、上位の数次元を「特徴次元」と表記する。抽出部１５０ｄは、検索クエリ２０Ａに含まれる複数の文のうち、特徴次元のベクトルの値を多く含む文を、特徴文２２として抽出する。また、抽出部１５０ｄは、検索クエリ２０Ａに含まれる複数の単語のうち、特徴次元のベクトルの値を多く含む単語を、特徴単語２１として抽出する。【００２９】
特定部１５０ｅは、特徴単語２１の圧縮ベクトルと、同義語インデックス１４０ｄの圧縮ベクトルとを比較して、特徴単語２１の圧縮ベクトルとの類似度が閾値以上となる同義語インデックス１４０ｄの圧縮ベクトルを特定する。特定部１５０ｅは、特定した圧縮ベクトルに対応するオフセットを基にして、特徴単語２１に対応するテキスト圧縮ファイルを、複数のテキスト圧縮ファイル１０Ｂから検索し、検索したテキスト圧縮ファイルを、第１候補リスト３１として生成する。【００３０】
特定部１５０ｅは、特徴文２２の圧縮ベクトルと、同義文インデックス１４０ｅの圧縮ベクトルとを比較して、特徴文２２の圧縮ベクトルとの類似度が閾値以上となる同義文インデックス１４０ｅの圧縮ベクトルを特定する。特定部１５０ｅは、特定した圧縮ベクトルに対応するオフセットを基にして、特徴文２２に対応するテキスト圧縮ファイルを、複数のテキスト圧縮ファイル１０Ｂから検索し、検索したテキスト圧縮ファイルを、第２候補リスト３２として生成する。【００３１】
上記のように、情報処理装置は、検索クエリ２０Ａが与えられた場合に、検索クエリ２０Ａの特徴次元を特定し、特徴次元のベクトルの値を多く含む特徴単語２１および特徴文２２を特定する。情報処理装置は、特徴単語２１の圧縮ベクトルと、同義語インデックス１４０ｄとを基にして、第１候補リスト３１を生成する。情報処理装置は、特徴文２２の圧縮ベクトルと、同義文インデックス１４０ｅとを基にして、第２候補リスト３２を生成する。特徴単語２１、特徴文２２、同義語インデックス１４０ｄ、同義文インデックス１４０ｅで用いられる圧縮ベクトルは、３次元のベクトルであるため、類似度計算のコストを抑えつつ、検索クエリ２０Ａに類似する単語、文を含むテキスト圧縮ファイルを検出することができる。【００３２】
次に、本実施例に係る情報処理装置の構成の一例について説明する。図３は、本実施例に係る情報処理装置の構成を示す機能ブロック図である。図３に示すように、この情報処理装置１００は、通信部１１０と、入力部１２０と、表示部１３０と、記憶部１４０と、制御部１５０とを有する。【００３３】
通信部１１０は、ネットワーク等を介して、図示しない外部装置とデータ通信を実行する処理部である。通信部１１０は、通信装置に対応する。たとえば、通信部１１０は、外部装置から、テキストファイル１０Ａ、辞書情報１５、検索クエリ２０Ａ等の情報を受信してもよい。【００３４】
入力部１２０は、情報処理装置１００に各種の情報を入力するための入力装置である。入力部１２０は、キーボードやマウス、タッチパネル等に対応する。たとえば、利用者は、入力部１２０を操作して、検索クエリ２０Ａを入力してもよい。【００３５】
表示部１３０は、制御部１５０から出力される各種の情報を表示する表示装置である。表示部１３０は、液晶ディスプレイ、タッチパネル等に対応する。たとえば、表示部１３０は、特定部１５０ｅにより特定される第１候補リスト３１、第２候補リスト３２を表示する。【００３６】
記憶部１４０は、テキストファイル１０Ａ、テキスト圧縮ファイル１０Ｂ、単語ベクトルテーブル１４０ａ、次元圧縮単語ベクトルテーブル１４０ｂ、単語インデックス１４０ｃ、同義語インデックス１４０ｄ、同義文インデックス１４０ｅを有する。記憶部１４０は、文ベクトルテーブル１４０ｆ、動的辞書１４０ｇ、辞書情報１５、検索クエリ２０Ａ、第１候補リスト３１、第２候補リスト３２を有する。記憶部１４０は、ＲＡＭ（Random  Access  Memory）、ＲＯＭ（Read  Only  Memory）、フラッシュメモリ（Flash  Memory）などの半導体メモリ素子や、ＨＤＤ（Hard  Disk  Drive）などの記憶装置に対応する。【００３７】
テキストファイル１０Ａは、複数の文を含む情報である。文は、複数の単語を含む情報である。たとえば、文と文は、句読点、ピリオド等によって区切られる。本実施例では、記憶部１４０に、複数のテキストファイル１０Ａが登録される。【００３８】
テキスト圧縮ファイル１０Ｂは、テキストファイル１０Ａを圧縮した情報である。たとえば、辞書情報１５に基づいて、テキストファイル１０Ａを単語単位で圧縮することで、テキスト圧縮ファイル１０Ｂが生成される。【００３９】
単語ベクトルテーブル１４０ａは、単語毎のベクトルの情報を保持するテーブルである。図４は、単語ベクトルテーブルのデータ構造の一例を示す図である。図４に示すように、単語ベクトルテーブル１４０ａは、単語ＩＤと、単語のベクトルとを対応付ける。単語ＩＤは、単語を一意に識別するものである。なお、単語ＩＤの代わりに、辞書情報１５等で定義された単語の符号を利用してもよい。ベクトルは、Word2Vec等を用いて予め算出されたベクトルであり、たとえば、２００次元のベクトルとする。【００４０】
次元圧縮単語ベクトルテーブル１４０ｂは、次元圧縮した各単語の圧縮ベクトルの情報を保持するテーブルである。図５は、次元圧縮テーブルのデータ構造の一例を示す図である。図５に示すように、次元圧縮単語ベクトルテーブル１４０ｂは、単語ＩＤと、単語の圧縮ベクトルとを対応付ける。なお、単語ＩＤの代わりに、単語の符号を利用してもよい。【００４１】
単語インデックス１４０ｃは、単語の符号（あるいは、単語ＩＤ）と、かかる単語ＩＤの位置（オフセット）とを対応付けるものである。図６は、単語インデックスのデータ構造の一例を示す図である。図６に示す単語インデックス１４０ｃにおいて、横軸はテキスト圧縮ファイル１０Ｂのオフセットを示す。縦軸は単語ＩＤに対応する。たとえば、単語ＩＤ「Ａ０１」の行と、オフセット「２」の列との交差する部分にフラグ「１」が立っている。このため、単語ＩＤ「Ａ０１」の単語の符号は、テキスト圧縮ファイル１０Ｂのオフセット「２」に位置することを示す。【００４２】
本実施例で用いるオフセットは、複数のテキスト圧縮ファイル１０Ｂを順に連結した場合のオフセットであって、先頭のテキスト圧縮ファイル１０Ｂからのオフセットを示す。図示を省略するが、テキスト圧縮ファイル間の切れ目となるオフセットは、単語インデックス１４０ｃに設定されているものとする。後述する、同義語インデックス１４０ｄのオフセット、同義文インデックス１４０ｅのオフセットも同様である。【００４３】
同義語インデックス１４０ｄは、単語の圧縮ベクトルと、かかる圧縮ベクトルに対応する単語の符号の位置（オフセット）とを対応付けるものである。図７は、同義語インデックスのデータ構造の一例を示す図である。図７に示す同義語インデックス１４０ｄにおいて、横軸はテキスト圧縮ファイル１０Ｂのオフセットを示す。縦軸は単語の圧縮ベクトルに対応する。同一の同義語に属する複数の単語には、同一の圧縮ベクトルが割り当てられる。たとえば、同義語の圧縮ベクトル「Ｗ３＿Ｖｅｃ１」の行と、オフセット「１」、「６」との交差する部分にフラグ「１」が立っている。このため、圧縮ベクトル「Ｗ３＿Ｖｅｃ１」の同義語に属する複数の単語の符号のうち、いずれかの符号が、テキスト圧縮ファイル１０Ｂのオフセット「１」、「６」に位置することを示す。なお、同義語の圧縮ベクトルの各次元は、一定の閾値で分割されているため、圧縮ベクトルは一定の粒度を持っている。【００４４】
同義文インデックス１４０ｅは、文の圧縮ベクトルと、かかる圧縮ベクトルに対応する文の位置（オフセット）とを対応付けるものである。テキスト圧縮ファイル１０Ｂの文の位置は、文に含まれる単語の符号にうち、先頭の単語の符号の位置とする。図８は、同義文インデックスのデータ構造の一例を示す図である。図８に示す同義文インデックス１４０ｅにおいて、横軸はテキスト圧縮ファイル１０Ｂのオフセットを示す。縦軸は、文の圧縮ベクトルに対応する。同一の意味となる同義文に属する複数の文には、同一の圧縮ベクトルが割り当てられる。たとえば、同義文の圧縮ベクトル「Ｓ３＿Ｖｅｃ１」の行と、オフセット「３」、「３０」との交差する部分にフラグ「１」が立っている。このため、圧縮ベクトル「Ｓ３＿Ｖｅｃ１」の同義文に属する複数の文のうち、いずれかの文の先頭の単語の符号が、テキスト圧縮ファイル１０Ｂのオフセット「３」、「３０」に位置することを示す。なお、同義文の圧縮ベクトルの各次元は、一定の閾値で分割されているため、圧縮ベクトルは一定の粒度を持っている。【００４５】
文ベクトルテーブル１４０ｆは、文の圧縮ベクトルの情報を保持するテーブルである。動的辞書１４０ｇは、圧縮符号化の時に出現した低頻度な単語や辞書情報１５に未登録な単語と符号を動的に対応付ける情報である。辞書情報１５は、単語と符号とを対応付ける情報（静的辞書）である。【００４６】
検索クエリ２０Ａは、検索対象となる文の情報を有する。検索クエリ２０Ａは、複数の文を有するテキストファイルであってもよい。【００４７】
第１候補リスト３１は、検索クエリ２０Ａから抽出される特徴単語２１を基に検出されるテキスト圧縮ファイル１０Ｂを有するリストである。【００４８】
第２候補リスト３２は、検索クエリ２０Ａから抽出される特徴文２２を基に検出されるテキスト圧縮ファイル１０Ｂを有するリストである。【００４９】
図３の説明に戻る。制御部１５０は、受付部１５０ａと、次元圧縮部１５０ｂと、生成処理部１５０ｃと、抽出部１５０ｄと、特定部１５０ｅと、グラフ生成部１５０ｆとを有する。制御部１５０は、ＣＰＵやＭＰＵ（Micro  Processing  Unit）などによって実現できる。また、制御部１５０は、ＡＳＩＣ（Application  Specific  Integrated  Circuit）やＦＰＧＡ（Field  Programmable  Gate  Array）などのハードワイヤードロジックによっても実現できる。【００５０】
受付部１５０ａは、通信部１１０または入力部１２０から、各種の情報を受け付ける処理部である。受付部１５０ａは、複数のテキストファイル１０Ａを受け付けた場合、複数のテキストファイル１０Ａを記憶部１４０に登録する。受付部１５０ａは、検索クエリ２０Ａを受け付けた場合、検索クエリ２０Ａを記憶部１４０に登録する。【００５１】
次元圧縮部１５０ｂは、単語ベクトルテーブル１４０ａの各単語のベクトルを次元圧縮することで、次元圧縮単語ベクトルテーブル１４０ｂを生成する処理部である。図９Ａは、基底ベクトルの分散配置を説明するための図である。まず、次元圧縮部１５０ｂは、２００次元に成分分解された、２００本の基底ベクトルａｉｅｉ（ｉ＝１〜２００）を円状（半円状）に等分に分散配置する。なお、成分分解前のベクトルＡと、成分分解された各基底ベクトルａｉｅｉとの関係は、式（１）によって定義される。【００５２】
【数１】
2020213158.tif 000003
【００５３】
図９Ａに示すように、次元圧縮部１５０ｂは、２００本の基底ベクトルａ１ｅ１〜ａ２００ｅ２００に対して、正（実線＋円形矢印）を右側半円、負（点線＋円形矢印）を左側半円に分散配置する。各基底ベクトルのなす角度は均等であるものとする。たとえば、次元圧縮部１５０ｂは、基底ベクトルａ１ｅ１〜ａ２００ｅ２００から、素数「３」で分割された素数の基底ベクトルを選択する。本実施例では一例として、次元圧縮部１５０ｂは、基底ベクトルａ１ｅ１と、基底ベクトルａ６７ｅ６７と、基底ベクトルａ１３１ｅ１３１とを選択する。【００５４】
図９Ｂは、次元圧縮を説明するための図である。まず、次元圧縮部１５０ｂは、基底ベクトルａ１ｅ１に対して、残りの基底ベクトルａ２ｅ２〜ａ２００ｅ２００をそれぞれ直交変換し、直交変換した各基底ベクトルａ２ｅ２〜ａ２００ｅ２００の値を積算することで、基底ベクトルａ１ｅ１の値を算出する。【００５５】
次元圧縮部１５０ｂは、図９Ｂに示すように、基底ベクトルａ６７ｅ６７に対して、残りの基底ベクトルａ１ｅ１（実線＋矢印）、ａ２ｅ２、ａ３ｅ３〜ａ６６ｅ６６、ａ６８ｅ６８〜ａ２００ｅ２００をそれぞれ直交変換し、直交変換した各基底ベクトルａ１ｅ１〜ａ６６ｅ６６、ａ６８ｅ６８〜ａ２００ｅ２００の値を積算することで、基底ベクトルａ６７ｅ６７の値を算出する。【００５６】
次元圧縮部１５０ｂは、基底ベクトルａ１３１ｅ１３１に対して、残りの基底ベクトルａ１ｅ１〜ａ１３０ｅ１３０、ａ１３２ｅ１３２〜ａ２００ｅ２００をそれぞれ直交変換し、直交変換した各基底ベクトルａ１ｅ１〜ａ１３０ｅ１３０、ａ１３２ｅ１３２〜ａ２００ｅ２００の値を積算することで、基底ベクトルａ１３１ｅ１３１の値を算出する。【００５７】
次元圧縮部１５０ｂは、２００次元のベクトルを次元圧縮した圧縮ベクトルの各成分を「基底ベクトルａ１ｅ１の値、基底ベクトルａ６７ｅ６７の値、基底ベクトルａ１３１ｅ１３１の値」とする。これにより、２００次元のベクトルは、素数「３」で分割された３次元のベクトルに次元圧縮することができる。なお、次元圧縮部１５０ｂは、ＫＬ展開等を用いて、次元圧縮を行ってもよい。次元圧縮部１５０ｂは、上記の次元圧縮を、単語ベクトルテーブル１４０ａの各単語についてそれぞれ実行することで、次元圧縮単語ベクトルテーブル１４０ｂを生成する。【００５８】
生成処理部１５０ｃは、複数のテキストファイル１０Ａを受け付け、テキストファイル１０Ａに含まれる文字列に対して字句解析を実行し、文字列を単語単位に分割する。生成処理部１５０ｃは、辞書情報１５を基にして、複数のテキストファイル１０Ａに含まれる単語を、単語単位で圧縮し、複数のテキスト圧縮ファイル１０Ｂを生成する。生成処理部１５０ｃは、テキストファイル１０Ａの単語と、辞書情報１５とを比較して、各単語を符号に圧縮する。生成処理部１５０ｃは、テキストファイル１０Ａの単語のうち、辞書情報１５に存在しない単語には、動的符号を割り当てて圧縮し、かかる単語と、動的符号とを動的辞書１４０ｇに登録する。【００５９】
上記の圧縮符号化と同時に、生成処理部１５０ｃは、テキストファイル１０Ａを基にして、単語インデックス１４０ｃ、同義語インデックス１４０ｄ、同義文インデックス１４０ｅ、文ベクトルテーブル１４０ｆを生成する。【００６０】
生成処理部１５０ｃが「単語インデックス１４０ｃ」を生成する処理の一例について説明する。生成処理部１５０ｃは、テキストファイル１０Ａの単語を先頭から走査して圧縮していく過程において、所定の単語ＩＤ（単語の符号）にヒットした場合、先頭からのオフセットを特定し、特定したオフセットと、単語ＩＤとの交差する単語インデックス１４０ｃの部分にフラグ「１」を設定する。生成処理部１５０ｃは、上記処理を繰り返し実行することで、単語インデックス１４０ｃを生成する。単語インデックス１４０ｃの各部分の初期値を「０」とする。【００６１】
生成処理部１５０ｃが「同義語インデックス１４０ｄ」を生成する処理の一例について説明する。生成処理部１５０ｃは、テキストファイル１０Ａの単語を先頭から走査して圧縮していく過程において、圧縮する単語に対応する圧縮ベクトルを、次元圧縮単語ベクトルテーブル１４０ｂから取得する。以下の説明では、この取得した圧縮ベクトルを、適宜、「対象圧縮ベクトル」と表記する。【００６２】
生成処理部１５０ｃは、対象圧縮ベクトルと、同義語インデックス１４０ｄの一定の粒度を持つ各同義語の圧縮ベクトルとの類似度を算出し、同義語インデックス１４０ｄの各圧縮ベクトルのうち、対象圧縮ベクトルとの類似度が最大となる圧縮ベクトルを特定する。生成処理部１５０ｃは、同語義インデックス１４０ｄにおいて、特定した圧縮ベクトルの行と、対象圧縮ベクトルの単語のオフセットの列との交差する部分にフラグ「１」を設定する。【００６３】
たとえば、生成処理部１５０ｃは、式（２）を基にして、圧縮ベクトルの類似度を算出する。式（２）では、ベクトルＡと、ベクトルＢとの類似度を算出し、圧縮ベクトルの類似度を評価する場合を示すものである。【００６４】
【数２】
2020213158.tif 000004
【００６５】
生成処理部１５０ｃは、上記処理を繰り返し実行することで、同義語インデックス１４０ｄを生成する。なお、同義語インデックス１４０ｄの各部分の初期値を「０」とする。【００６６】
生成処理部１５０ｃが「同義文インデックス１４０ｅ」を生成する処理の一例について説明する。生成処理部１５０ｃは、テキストファイル１０Ａの単語を先頭から走査して圧縮していく過程において、１つの文の先頭の単語（符号）から、かかる１つの文の終端の単語（符号）までの各単語（符号）の圧縮ベクトルを、次元圧縮単語ベクトルテーブル１４０ｂから取得し、取得した各圧縮ベクトルを積算することで、１つの文の圧縮ベクトルを算出する。なお、文の先頭の単語は、文章の最初の単語、または、句読点の次の単語である。文の終端の単語は、句読点の前の単語である。以下の説明では、算出した文の圧縮ベクトルを、適宜、「対象圧縮ベクトル」と表記する。【００６７】
生成処理部１５０ｃは、対象圧縮ベクトルと、同義文インデックス１４０ｅの一定の粒度を持つ各同義文の圧縮ベクトルとの類似度を算出し、同義文インデックス１４０ｅの各圧縮ベクトルのうち、対象圧縮ベクトルとの類似度が最大となる圧縮ベクトルを特定する。生成処理部１５０ｃは、式（２）を基にして、対象圧縮ベクトルと、各圧縮ベクトルとの類似度を算出する。生成処理部１５０ｃは、同語文インデックス１４０ｅにおいて、特定した圧縮ベクトルの行と、対象圧縮ベクトルに対する文の先頭の単語のオフセットの列との交差する部分にフラグ「１」を設定する。【００６８】
生成処理部１５０ｃは、上記処理を繰り返し実行することで、同義文インデックス１４０ｄを生成する。なお、同義文インデックス１４０ｅの各部分の初期値を「０」とする。【００６９】
ところで、生成処理部１５０ｃは、単語インデックス１４０ｃ、同義語インデックス１４０ｄ、同義文インデックス１４０ｅを生成するとき、演算量を削減するために、式（２）を使用せずに、一定の粒度を持つ圧縮ベクトルのそれぞれの基底ベクトルの閾値に対応付けてもよい。また、情報量を削減するために、各転置インデックス１４０ｃ，１４０ｄ，１４０ｅをそれぞれハッシュ化してもよい。【００７０】
図１０は、転置インデックスをハッシュ化する処理の一例を説明するための図である。図１０で説明する例では、３２ビットレジスタを想定し、「２９」と「３１」の素数（底）を基に、単語インデックス１４０ｃの各行のビットマップをハッシュ化する。ここでは、一例として、ビットマップｂ１から、ハッシュ化ビットマップｈ１１およびハッシュ化ビットマップｈ１２を生成する場合について説明する。【００７１】
ビットマップｂ１は、単語インデックス（たとえば、図６に示した単語インデックス１４０ｃ）のある行を抽出したビットマップを示すものとする。ハッシュ化ビットマップｈ１１は、底「２９」によりハッシュ化されたビットマップである。ハッシュ化ビットマップｈ１２は、底「３１」によりハッシュ化されたビットマップである。【００７２】
生成処理部１５０ｃは、ビットマップｂ１の各ビットの位置を、１つの低で割った余りの値を、ハッシュ化ビットマップの位置と対応付ける。生成処理部１５０ｃは、該当するビットマップｂ１のビットの位置に「１」が設定されている場合には、対応付けられたハッシュ化ビットマップの位置に「１」を設定する処理を行う。【００７３】
ビットマップｂ１から、底「２９」のハッシュ化ビットマップｈ１１を生成する処理の一例について説明する。はじめに、生成処理部１５０ｃは、ビットマップｂ１の位置「０〜２８」の情報を、ハッシュ化ビットマップｈ１１にコピーする。続いて、ビットマップｂ１のビットの位置「３５」を、低「２９」で割った余りは「６」となるので、ビットマップｂ１の位置「３５」は、ハッシュ化ビットマップｈ１１の位置「６」と対応付けられる。生成処理部１５０ｃは、ビットマップｂ１の位置「３５」に「１」が設定されているため、ハッシュ化ビットマップｈ１１の位置「６」に「１」を設定する。【００７４】
ビットマップｂ１のビットの位置「４２」を、低「２９」で割った余りは「１３」となるので、ビットマップｂ１の位置「４２」は、ハッシュ化ビットマップｈ１１の位置「１３」と対応付けられる。生成処理部１５０ｃは、ビットマップｂ１の位置「４２」に「１」が設定されているため、ハッシュ化ビットマップｈ１１の位置「１３」に「１」を設定する。【００７５】
生成処理部１５０ｃは、ビットマップｂ１の位置「２９」以上の位置について、上記処理を繰り返し実行することで、ハッシュ化ビットマップｈ１１を生成する。【００７６】
ビットマップｂ１から、底「３１」のハッシュ化ビットマップｈ１２を生成する処理の一例について説明する。はじめに、生成処理部１５０ｃは、ビットマップｂ１の位置「０〜３０」の情報を、ハッシュ化ビットマップｈ１２にコピーする。続いて、ビットマップｂ１のビットの位置「３５」を、低「３１」で割った余りは「４」となるので、ビットマップｂ１の位置「３５」は、ハッシュ化ビットマップｈ１２の位置「４」と対応付けられる。生成処理部１５０ｃは、ビットマップｂ１の位置「３５」に「１」が設定されているため、ハッシュ化ビットマップｈ１２の位置「４」に「１」を設定する。【００７７】
ビットマップｂ１のビットの位置「４２」を、低「３１」で割った余りは「１１」となるので、ビットマップｂ１の位置「４２」は、ハッシュ化ビットマップｈ１２の位置「１１」と対応付けられる。生成処理部１５０ｃは、ビットマップｂ１の位置「４２」に「１」が設定されているため、ハッシュ化ビットマップｈ１２の位置「１１」に「１」を設定する。【００７８】
生成処理部１５０ｃは、ビットマップｂ１の位置「３１」以上の位置について、上記処理を繰り返し実行することで、ハッシュ化ビットマップｈ１２を生成する。【００７９】
生成処理部１５０ｃは、単語インデックス１４０ｃの各行について上記の折り返し技術による圧縮を行うことで、単語インデックス１４０ｃをハッシュ化する。なお、底「２９」、「３１」のハッシュ化ビットマップは、生成元のビットマップの行（符号化された単語の種別）の情報が付与される。図１０では、生成処理部１５０ｃが、単語インデックス１４０ｃをハッシュ化する場合について説明したが、同義語インデックス１４０ｄ、同義文インデックス１４０ｅについても同様に、ハッシュ化する。【００８０】
図３の説明に戻る。抽出部１５０ｄは、検索クエリ２０Ａに含まれる複数の文の圧縮ベクトルを算出する。まず、抽出部１５０ｄは、一つの文に含まれる複数の単語の圧縮ベクトルを、次元圧縮単語ベクトルテーブル１４０ｂから取得し、取得した単語の圧縮ベクトルを、２００次元のベクトルに復元する。次元圧縮単語ベクトルテーブル１４０ｂの圧縮ベクトルは、基底ベクトルａ１ｅ１の値、基底ベクトルａ６７ｅ６７の値、基底ベクトルａ１３３ｅ１３３の値をそれぞれ次元の値とするベクトルである。【００８１】
図１１は、次元復元を説明するための図である。図１１では一例として、素数「３」で分割された基底ベクトルａ１ｅ１、基底ベクトルａ６７ｅ６７、基底ベクトルａ１３１ｅ１３１を基にして、基底ベクトル基底ベクトルａ４５ｅ４５の値を復元する場合について説明する。抽出部１５０ｄは、基底ベクトルａ４５ｅ４５に対し、基底ベクトルａ１ｅ１、基底ベクトルａ６７ｅ６７、基底ベクトルａ１３１ｅ１３１を直交変換した値を積算することで、基底ベクトルａ４５ｅ４５の値を復元する。【００８２】
抽出部１５０ｄは、他の基底ベクトルについても、基底ベクトルａ４５ｅ４５と同様にして、上記処理を繰り返し実行することで、３次元の圧縮ベクトルを、２００次元のベクトルに復元する。【００８３】
続いて、抽出部１５０ｄは、次元圧縮単語テーブル１４０ｂを用いて、一つの文に含まれる複数の単語のベクトルを積算することで、文のベクトルを算出する。抽出部１５０ｄは、検索クエリ２０Ａに含まれる他の文についても同様に、文のベクトルを算出する。また、抽出部１５０ｄは、検索クエリ２０Ａに含まれる複数の文のベクトルを積算することで、検索クエリ２０Ａの「クエリベクトル」を算出する。【００８４】
抽出部１５０ｄは、クエリベクトルの各次元の値を降順にソートし、上位の「特徴次元」を特定する。抽出部１５０ｄは、検索クエリ２０Ａに含まれる複数の文のうち、特徴次元のベクトルの値を多く含む文を、特徴文２２として抽出する。また、抽出部１５０ｄは、検索クエリ２０Ａに含まれる複数の単語のうち、特徴次元のベクトルの値を多く含む単語を、特徴単語２１として抽出する。抽出部１５０ｄは、特徴単語２１の情報および特徴文２２の情報を、特定部１５０ｅに出力する。【００８５】
特定部１５０ｅは、特徴単語２１の圧縮ベクトルと、同義語インデックス１４０ｄの圧縮ベクトルとを比較して、特徴単語２１の圧縮ベクトルとの類似度が閾値以上となる同義語インデックス１４０ｄの圧縮ベクトルを特定する。特定部１５０ｅは、特定した圧縮ベクトルに対応するオフセットを基にして、特徴単語２１に対応するテキスト圧縮ファイルを、複数のテキスト圧縮ファイル１０Ｂから検索し、検索したテキスト圧縮ファイルを、第１候補リスト３１として生成する。【００８６】
特定部１５０ｅが、特徴単語２１の圧縮ベクトルと、同義語インデックス１４０ｄの圧縮ベクトルとの類似度を算出する場合には、式（２）を利用する。ここで、特徴単語２１の圧縮ベクトルとの類似度が閾値以上となる同義語インデックス１４０ｄの圧縮ベクトルを「類似圧縮ベクトル」と表記する。【００８７】
特定部１５０ｅは、類似圧縮ベクトルが複数存在する場合、類似圧縮ベクトルを類似度の降順にソートし、類似圧縮ベクトルを類似度の大きい順にランク付けを行う。特定部１５０ｅは、第１候補リスト３１を生成する場合、類似度のより大きい類似圧縮ベクトルに対応するオフセットを基にして、検索したテキスト圧縮ファイルを、第１候補リスト３１に登録する。特定部１５０ｅは、ランク順に、テキスト圧縮ファイルを、第１候補リスト３１に登録してもよい。【００８８】
特定部１５０ｅは、特徴文２２の圧縮ベクトルと、同義文インデックス１４０ｅの圧縮ベクトルとを比較して、特徴文２２の圧縮ベクトルとの類似度が閾値以上となる同義文インデックス１４０ｅの圧縮ベクトルを特定する。特定部１５０ｅは、特定した圧縮ベクトルに対応するオフセットを基にして、特徴文２２に対応するテキスト圧縮ファイルを、複数のテキスト圧縮ファイル１０Ｂから検索し、検索したテキスト圧縮ファイルを、第２候補リスト３２として生成する。【００８９】
特定部１５０ｅは、辞書情報１５と動的辞書１４０ｇとを基にして、第１候補リスト３１に登録された各テキスト圧縮ファイル１０Ｂを復号し、復号した第１候補リスト３１を、表示部１３０に出力して表示させる。また、特定部１５０ｅは、検索クエリ２０Ａを送信した外部装置に、復号した第１候補リスト３１を送信してもよい。【００９０】
特定部１５０ｅが、特徴文２２の圧縮ベクトルと、同義文インデックス１４０ｅの圧縮ベクトルとの類似度を算出する場合には、式（２）を利用する。ここで、特徴文２２の圧縮ベクトルとの類似度が閾値以上となる同義文インデックス１４０ｅの圧縮ベクトルを「類似圧縮ベクトル」と表記する。【００９１】
特定部１５０ｅは、類似圧縮ベクトルが複数存在する場合、類似圧縮ベクトルを類似度の降順にソートし、類似圧縮ベクトルを類似度の大きい順にランク付けを行う。特定部１５０ｅは、第２候補リスト３２を生成する場合、類似度のより大きい類似圧縮ベクトルに対応するオフセットを基にして、検索したテキスト圧縮ファイルを、第２候補リスト３２に登録する。特定部１５０ｅは、ランク順に、テキスト圧縮ファイルを、第１候補リスト３１に登録してもよい。【００９２】
特定部１５０ｅは、辞書情報１５と動的辞書１４０ｇとを基にして、第２候補リスト３２に登録された各テキスト圧縮ファイル１０Ｂを復号し、復号した第２候補リスト３２を、表示部１３０に出力して表示させる。また、特定部１５０ｅは、検索クエリ２０Ａを送信した外部装置に、復号した第２候補リスト３２を送信してもよい。【００９３】
ところで、特定部１５０ｅは、同義語インデックス１４０ｄおよび同義文インデックス１４０ｅがハッシュ化されている場合には、ハッシュ化されたビットマップを復元する。図１２は、ハッシュ化されたビットマップを復元する処理を説明するための図である。ここでは一例として、特定部１５０ｅが、ハッシュ化ビットマップｈ１１およびハッシュ化ビットマップｈ１２を基にして、ビットマップｂ１を復元する場合について説明する。【００９４】
特定部１５０ｅは、底「２９」のハッシュ化ビットマップｈ１１から、中間ビットマップｈ１１’を生成する。特定部１５０ｅは、ハッシュ化ビットマップｈ１１の位置０〜２８の値を、中間ビットマップｈ１１’の位置０〜２８にそれぞれ、コピーする。【００９５】
特定部１５０ｅは、中間ビットマップｈ１１’の位置２９以降の値については、「２９」毎に、ハッシュ化ビットマップｈ１１の位置０〜２８の値を、それぞれコピーする処理を繰り返し実行する。図１２に示す例では、中間ビットマップｈ１１’の位置２９〜４３の位置に、ハッシュ化ビットマップｈ１１の位置０〜１４の値を、コピーした例を示す。【００９６】
特定部１５０ｅは、底「３１」のハッシュ化ビットマップｈ１２から、中間ビットマップｈ１２’を生成する。特定部１５０ｅは、ハッシュ化ビットマップｈ１２の位置０〜３０の値を、中間ビットマップｈ１２’の位置０〜３０にそれぞれ、コピーする。【００９７】
特定部１５０ｅは、中間ビットマップｈ１２’の位置３１以降の値については、「３１」毎に、ハッシュ化ビットマップｈ１２の位置０〜３０の値を、それぞれコピーする処理を繰り返し実行する。図１２に示す例では、中間ビットマップｈ１２’の位置３１〜４３の位置に、ハッシュ化ビットマップｈ１２の位置０〜１２の値を、コピーした例を示す。【００９８】
特定部１５０ｅは、中間ビットマップｈ１１’と、中間ビットマップｈ１２’とを生成すると、中間ビットマップｈ１１’と、中間ビットマップｈ１２’とをＡＮＤ演算することで、ハッシュ化前のビットマップｂ１を復元する。特定部１５０ｅは、他のハッシュ化されたビットマップについても、同様の処理を繰り返し実行することで、単語の符号に対応する各ビットマップを復元する（同義語インデックス１４０ｄおよび同義文インデックス１４０ｅを復元する）ことができる。【００９９】
グラフ生成部１５０ｆは、入力部１２０等を介して、テキストファイル１０Ａ（あるいは、テキスト圧縮ファイル１０Ｂ）の指定を受け付けると、指定されたテキストファイル１０Ａを基にして、グラフ情報を生成する処理部である。図１３は、グラフ情報の一例を示す図である。図１３に示すグラフＧ１０は、テキストファイル１０Ａに含まれる各単語の圧縮ベクトルに対応する位置とその単語の分散状態を示すグラフである。グラフＧ１１は、テキストファイル１０Ａに含まれる各文の圧縮ベクトルに対応する位置とその文の遷移状態を示すグラフである。グラフＧ１２は、テキストファイル１０Ａの複数の文ベクトルを合算した圧縮ベクトルに対応する位置を示すグラフである。グラフＧ１０〜Ｇ１２の横軸は、圧縮ベクトルのうち、第１の次元に対応する軸であり、縦軸は、第２の次元（第１の次元とは異なる次元）に対応する軸である。例えば、大学のシラバス（講義概要）をグラフ化する場合には、横軸を時代や西暦、縦軸を地域や場所に関する次元とする。なお、第１の次元および第２の次元は予め設定されているものとし、その値は、３次元の圧縮ベクトルから直交変換により、それぞれが集積され変換される。【０１００】
グラフ生成部１５０ｆが、グラフＧ１０を生成する処理の一例について説明する。グラフ生成部１５０ｆは、テキストファイル１０Ａに含まれる文字列に対して字句解析を行い、先頭から順に単語を抽出する。グラフ生成部１５０ｆは、次元圧縮単語ベクトルテーブル１４０ｂと、抽出した単語とを比較して、圧縮ベクトルを特定し、特定した圧縮ベクトルから、第１の次元の値および第２の次元の値に対応するグラフＧ１０の位置に点プロットする処理を繰り返し実行することで、グラフ１０を生成する。【０１０１】
グラフ生成部１５０ｆが、グラフＧ１１を生成する処理の一例について説明する。グラフ生成部１５０ｆは、テキストファイル１０Ａに含まれる文字列に対して字句解析を行い、先頭から順に文を抽出する。グラフ生成部１５０ｆは、文に含まれる各単語と、次元圧縮単語ベクトルテーブル１４０ｂとを比較して、単語の圧縮ベクトルを特定し、文に含まれる単語を積算することで、文の圧縮ベクトルを算出する処理を文毎に実行する。グラフ生成部１５０ｆは、各文の圧縮ベクトルについて、第１の次元の値および第２の次元の値に対応するグラフＧ１１の位置に点プロットする処理を繰り返し実行することで、グラフ１０を生成する。グラフ生成部１５０ｆは、テキストファイル１０Ａに含まれる、文の出現順に応じて、グラフＧ１１の点をつなげてもよい。【０１０２】
グラフ生成部１５０ｆが、グラフＧ１２を生成する処理の一例について説明する。グラフ生成部１５０ｆは、テキストファイル１０Ａに含まれる文字列に対して字句解析を行い、先頭から順に文を抽出する。グラフ生成部１５０ｆは、文に含まれる各単語と、次元圧縮単語ベクトルテーブル１４０ｂとを比較して、単語の圧縮ベクトルを特定し、文に含まれる単語を積算することで、文の圧縮ベクトルを算出する処理を文毎に実行する。また、グラフ生成部１５０ｆは、各文の圧縮ベクトルを積算することで、テキストファイル１０Ａの圧縮ベクトルを算出する。グラフ生成部１５０ｆは、テキストファイル１０Ａの圧縮ベクトルについて、第１の次元の値および第２の次元の値に対応するグラフＧ１１の位置に点プロットすることで、グラフＧ１２を生成する。【０１０３】
上記の説明では、グラフ生成部１５０ｆが、グラフＧ１０〜Ｇ１２を別々に生成する場合について説明したが、グラフ生成部１５０ｆは、グラフＧ１０〜Ｇ１２を同時に生成してもよい。たとえば、グラフ生成部１５０ｆは、テキストファイル１０Ａに含まれる文字列に対して字句解析を行い、先頭から順に単語を抽出して、圧縮ベクトルを特定していく過程において、文の圧縮ベクトル、テキストファイル１０Ａの圧縮ベクトルを合わせて算出してもよい。【０１０４】
次に、本実施例に係る情報処理装置１００の処理手順の一例について説明する。図１４は、本実施例に係る情報処理装置の処理手順を示すフローチャート（１）である。情報処理装置１００の受付部１５０ａは、テキストファイル１０Ａを受信して、記憶部１４０に登録する（ステップＳ１０１）。【０１０５】
情報処理装置１００の次元圧縮部１５０ｂは、単語ベクトルテーブル１４０ａを取得する（ステップＳ１０２）。次元圧縮部１５０ｂは、単語ベクトルテーブルの各ベクトルを次元圧縮することで、次元圧縮単語ベクトルテーブル１４０ｂを生成する（ステップＳ１０３）。【０１０６】
情報処理装置１００の生成処理部１５０ｃは、テキストファイル１０Ａを圧縮する場合、次元圧縮単語ベクトルテーブル１４０ｂを用いて、単語インデックス１４０ｃ、同義語インデックス１４０ｄ、同義文インデックス１４０ｅ、文ベクトルテーブル１４０ｆ、動的辞書１４０ｇを生成する（ステップＳ１０４）。【０１０７】
生成処理部１５０ｃは、単語インデックス１４０ｃ、同義語インデックス１４０ｄ、同義文インデックス１４０ｅ、文ベクトルテーブル１４０ｆ、動的辞書１４０ｇを記憶部１４０に登録し、テキスト圧縮ファイル１０Ｂを生成する（ステップＳ１０５）。【０１０８】
図１５は、本実施例に係る情報処理装置の処理手順を示すフローチャート（２）である。情報処理装置１００の受付部１５０ａは、検索クエリ２０Ａを受け付ける（ステップＳ２０１）。情報処理装置１００の抽出部１５０ｄは、次元圧縮単語ベクトルテーブル１４０ｂを基にして、検索クエリ２０Ａに含まれる各文の圧縮ベクトルを算出する（ステップＳ２０２）。【０１０９】
抽出部１５０ｄは、各文の圧縮ベクトルの次元を２００次元に復元し、特徴次元を特定する（ステップＳ２０３）。抽出部１５０ｄは、特徴次元を基にして、特徴単語および特徴文を抽出し、特徴単語の圧縮ベクトル、特徴文の圧縮ベクトルを特定する（ステップＳ２０４）。【０１１０】
情報処理装置１００の特定部１５０ｅは、特徴単語の圧縮ベクトルおよび同義語インデックスを基にして、第１候補リスト３１を生成し、表示部１３０に出力する（ステップＳ２０５）。特定部１５０ｅは、特徴文の圧縮ベクトルおよび同義文インデックス１４０ｅを基にして、第２候補リスト３２を生成し、表示部１３０に出力する（ステップＳ２０６）。【０１１１】
次に、本実施例に係る情報処理装置１００の効果について説明する。情報処理装置１００は、単語ベクトルテーブル１４０ａを次元圧縮した次元圧縮単語ベクトルテーブル１４０ｂを生成し、テキストファイル１０Ａを圧縮する場合に、同義語インデックス１４０ｄ、同義文インデックス１４０ｅを生成する。同義語インデックス１４０ｄは、同一の同義語に属する各単語に、同一の圧縮ベクトルを割当て、圧縮ベクトルに対応する単語（同義語）が出現する位置を定義した情報である。また、同義文インデックス１４０ｅは、同一の同義文に属する各文に、同一の圧縮ベクトルを割当て、圧縮ベクトルに対応する文（同義文）が出現する位置を定義した情報である。このため、それぞれの単語に２００次元のベクトルを割り当てる従来と比較して、データ量を削減することができる。【０１１２】
情報処理装置１００は、検索クエリ２０Ａが与えられた場合に、検索クエリ２０Ａの特徴次元を特定し、特徴次元のベクトルの値が最大となる特徴単語２１および特徴文２２を特定する。情報処理装置１００は、特徴単語２１の圧縮ベクトルと、同義語インデックス１４０ｄとを基にして、第１候補リスト３１を生成する。情報処理装置１００は、特徴文２２の圧縮ベクトルと、同義文インデックス１４０ｅとを基にして、第２候補リスト３２を生成する。特徴単語２１、特徴文２２、同義語インデックス１４０ｄ、同義文インデックス１４０ｅで用いられる圧縮ベクトルは、３次元のベクトルであるため、類似度計算のコストを抑えつつ、検索クエリ２０Ａに類似する単語、文を含むテキスト圧縮ファイル１０Ｂを検出することができる。【０１１３】
情報処理装置１００は、テキストファイル１０Ａに含まれる複数の単語の圧縮ベクトルに基づくグラフＧ１０、複数の文の圧縮ベクトルに基づくグラフＧ１１、テキストファイル１０Ａの圧縮ベクトルに基づくグラフＧ１２を生成して表示する。これによって、単語、文、テキストファイル（文章）の見える化を実現することができる。【０１１４】
ところで、本実施例に係る情報処理装置１００は、一つの同義語インデックス１４０ｄを用いて、検索クエリ２０Ａから抽出される特徴単語を含むテキスト圧縮ファイル１０Ｂを検出して、第１候補リスト３１を生成していたがこれに限定されるものではない。情報処理装置１００は、粒度の異なる（分類レベルの異なる）複数の同義語インデックス１４０ｄを生成し、複数の同義語インデックス１４０ｄを用いて、第１候補リスト３１を生成してもよい。【０１１５】
図１６は、生成処理部が生成する複数の同義語インデックスの一例を示す図である。図１６では一例として、３つの同義語インデックス１４０ｄ−１，１４０ｄ−２，１４０ｄ−３を生成する場合について説明する。同義語インデックス１４０ｄ−１，１４０ｄ−２，１４０ｄ−３には、第１基準値、第２基準値、第３基準値がそれぞれ設定される。各基準値の大小関係は、第１基準値＜第２基準値＜第３基準値とする。同義語インデックス１４０ｄ−１の粒度が最も小さく、同義語インデックス１４０ｄ−２、同義語インデックス１４０ｄ−３の順に、粒度が大きくなる。【０１１６】
生成処理部１５０ｃは、テキストファイル１０Ａの単語を先頭から走査して圧縮していく過程において、圧縮する単語に対応する圧縮ベクトルを、次元圧縮単語ベクトルテーブル１４０ｂから取得する処理を繰り返し実行する。【０１１７】
生成処理部１５０ｃは、各圧縮ベクトルの類似度をそれぞれ算出して、類似度が第１基準値以上となる圧縮ベクトルのグループを、同義語であると判定する。生成処理部１５０ｃは、同一のグループに含まれる複数の圧縮ベクトルの平均値を、同一のグループに含まれる複数の圧縮ベクトルの代表値として特定し、代表値（圧縮ベクトル）と、圧縮ベクトルに対応する単語のオフセットとを基にして、同義語インデックス１４０ｄ−１にフラグ「１」を設定する。生成処理部１５０ｃは、各グループについて上記処理を繰り返し実行することで、同義語インデックス１４０ｄ−１に各フラグを設定する。【０１１８】
生成処理部１５０ｃは、各圧縮ベクトルの類似度をそれぞれ算出して、類似度が第２基準値以上となる圧縮ベクトルのグループを、同義語であると判定する。生成処理部１５０ｃは、同一のグループに含まれる複数の圧縮ベクトルの平均値を、同一のグループに含まれる複数の圧縮ベクトルの代表値として特定し、代表値（圧縮ベクトル）と、圧縮ベクトルに対応する単語のオフセットとを基にして、同義語インデックス１４０ｄ−２にフラグ「１」を設定する。生成処理部１５０ｃは、各グループについて上記処理を繰り返し実行することで、同義語インデックス１４０ｄ−２に各フラグを設定する。【０１１９】
生成処理部１５０ｃは、各圧縮ベクトルの類似度をそれぞれ算出して、類似度が第３基準値以上となる圧縮ベクトルのグループを、同義語であると判定する。生成処理部１５０ｃは、同一のグループに含まれる複数の圧縮ベクトルの平均値を、同一のグループに含まれる複数の圧縮ベクトルの代表値として特定し、代表値（圧縮ベクトル）と、圧縮ベクトルに対応する単語のオフセットとを基にして、同義語インデックス１４０ｄ−３にフラグ「１」を設定する。生成処理部１５０ｃは、各グループについて上記処理を繰り返し実行することで、同義語インデックス１４０ｄ−３に各フラグを設定する。【０１２０】
特定部１５０ｅは、抽出部１５０ｄから抽出される特徴単語２１の圧縮ベクトルと、同義語インデックス１４０ｄ−１〜１４０ｄ−３を比較し、特徴単語２１の圧縮ベクトルとの類似度が閾値以上となる圧縮ベクトルを、同義語インデックス１４０ｄ−１〜１４０ｄ−３から特定する。【０１２１】
特定部１５０ｅは、特徴単語２１の圧縮ベクトルとの類似度が閾値以上となる同義語インデックス１４０ｄ−１の圧縮ベクトルのオフセットを基にして、オフセットに対応する複数のテキスト圧縮ファイル（第１のテキスト圧縮ファイル）を検索する。特定部１５０ｅは、特徴単語２１の圧縮ベクトルとの類似度が閾値以上となる同義語インデックス１４０ｄ−２の圧縮ベクトルのオフセットを基にして、オフセットに対応する複数のテキスト圧縮ファイル（第２のテキスト圧縮ファイル）を検索する。特定部１５０ｅは、特徴単語２１の圧縮ベクトルとの類似度が閾値以上となる同義語インデックス１４０ｄ−３の圧縮ベクトルのオフセットを基にして、オフセットに対応する複数のテキスト圧縮ファイル（第３のテキスト圧縮ファイル）を検索する。【０１２２】
特定部１５０ｅは、第１〜第３のテキスト圧縮ファイルを第１候補リスト３１に登録してもよいし、第１〜第３のテキスト圧縮ファイルのうち、検出された数が最大となるテキスト圧縮ファイルを、第１候補リスト３１に登録してもよい。【０１２３】
また、特定部１５０ｅは、はじめに、最も粒度の大きい同義語インデックス１４０ｄ−３を用いて、テキスト圧縮ファイルの検索を行い、検索したテキスト圧縮ファイルの数が所定数未満である場合に、次に粒度の大きい同義語インデックス１４０ｄ−２に切り替えて、テキスト圧縮ファイルの検索を行ってもよい。更に、特定部１５０ｅは、同義語インデックス１４０ｄ−２を用いて、テキスト圧縮ファイルの検索を行い、検索したテキスト圧縮ファイルの数が所定数未満である場合に、次に粒度の大きい同義語インデックス１４０ｄ−１に切り替えて、テキスト圧縮ファイルの検索を行ってもよい。このように、同義語インデックスを切り替えることで、検索結果の候補数を調整することができる。【０１２４】
上記の例では、同義語インデックス１４０ｄに対して、第１基準値、第２基準値、第３基準値を設定して、粒度の異なる同義語インデックス１４０ｄ−１〜１４０ｄ−３を生成する場合について説明したが、これに限定されるものでは無い。生成処理部１５０ｃは、同義文インデックス１４０ｅに対して、第１基準値、第２基準値、第３基準値を設定し、粒度の異なる同義文インデックスをそれぞれ生成してもよい。また、利用者は、入力部１２０等を操作して、第１基準値、第２基準値、第３基準値を適宜、変更してもよい。生成部１５０ｃは、第１基準値、第２基準値、第３基準値の変更を受け付けた場合に、粒度の異なる同義語インデックス１４０ｄ、同義文インデックス１４０ｅをそれぞれ、動的に再作成してもよい。【０１２５】
本実施例１に係る次元圧縮部１５０ｂは、素数「３」で分割された３つの素数「１」、「６７」、「１３１」の基底ベクトルの値をそれぞれ算出することで、一つの単語に対して、一つの圧縮ベクトルを求めていたが、これに限定されるものではない。たとえば、次元圧縮部１５０ｂは、圧縮ベクトルを算出する場合に、複数種類の素数で分割される複数の素数の基底ベクトルを設定し、一つの単語に対して複数種類の圧縮ベクトルを算出してもよい。たとえば、次元圧縮部１５０ｂは、素数「３」で分割された３つの素数「１」、「６７」、「１３１」基底ベクトル、素数「５」で分割された５つの素数「１」、「４１」、「７９」、「１２７」、「１６３」の基底ベクトル、素数「７」で分割された７つの素数「１」、「２９」、「５９」、「８３」、「１１３」、「１３９」、「１７３」の基底ベクトルを算出し、一つの単語に対して、複数種類の圧縮ベクトルを、次元圧縮単語ベクトルテーブル１４０ｂに登録してもよい。そして、生成処理部１５０ｄ、抽出処理部１５０ｄが、次元圧縮単語ベクトルテーブル１４０ｂを利用する場合に、いずれかの圧縮ベクトルを選択的に用いて、転置インデックスの生成や、特徴単語、特徴文の抽出を行ってもよい。【０１２６】
次に、本実施例に示した情報処理装置１００と同様の機能を実現するコンピュータのハードウェア構成の一例について説明する。図１７は、本実施例に係る情報処理装置と同様の機能を実現するコンピュータのハードウェア構成の一例を示す図である。【０１２７】
図１７に示すように、コンピュータ５００は、各種演算処理を実行するＣＰＵ５０１と、ユーザからのデータの入力を受け付ける入力装置５０２と、ディスプレイ５０３とを有する。また、コンピュータ５００は、記憶媒体からプログラム等を読み取る読み取り装置５０４と、有線または無線ネットワークを介して、外部装置等との間でデータの授受を行うインタフェース装置５０５とを有する。コンピュータ５００は、各種情報を一時記憶するＲＡＭ５０６と、ハードディスク装置５０７とを有する。そして、各装置５０１〜５０７は、バス５０８に接続される。【０１２８】
ハードディスク装置５０７は、受付プログラム５０７ａ、次元圧縮プログラム５０７ｂ、生成処理プログラム５０７ｃ、抽出プログラム５０７ｄ、特定プログラム５０７ｅ、グラフ生成プログラム５０７ｆを有する。ＣＰＵ５０１は、受付プログラム５０７ａ、次元圧縮プログラム５０７ｂ、生成処理プログラム５０７ｃ、抽出プログラム５０７ｄ、特定プログラム５０７ｅ、グラフ生成プログラム５０７ｆを読み出してＲＡＭ５０６に展開する。【０１２９】
受付プログラム５０７ａは、受付プロセス５０６ａとして機能する。次元圧縮プログラム５０７ｂは、次元圧縮プロセス５０６ｂとして機能する。生成処理プログラム５０７ｃは、生成処理プロセス５０６ｃとして機能する。抽出プログラム５０７ｄは、抽出プロセス５０６ｄとして機能する。特定プログラム５０７ｅは、特定プロセス５０６ｅとして機能する。グラフ生成プログラム５０７ｆは、グラフ生成プロセス５０６ｆとして機能する。【０１３０】
受付プロセス５０６ａの処理は、受付部１５０ａの処理に対応する。次元圧縮プロセス５０６ｂの処理は、次元圧縮部１５０ｂの処理に対応する。生成処理プロセス５０６ｃの処理は、生成処理部５５０ｃの処理に対応する。抽出プロセス５０６ｄの処理は、抽出部１５０ｄの処理に対応する。特定プロセス５０６ｅの処理は、特定部１５０ｅの処理に対応する。グラフ生成プロセス５０６ｆの処理は、グラフ生成部１５０ｆの処理に対応する。【０１３１】
なお、各プログラム５０７ａ〜５０７ｆついては、必ずしも最初からハードディスク装置５０７に記憶させておかなくてもよい。例えば、コンピュータ５００に挿入されるフレキシブルディスク（ＦＤ）、ＣＤ−ＲＯＭ、ＤＶＤディスク、光磁気ディスク、ＩＣカードなどの「可搬用の物理媒体」に各プログラムを記憶させておく。そして、コンピュータ５００が各プログラム５０７ａ〜５０７ｆを読み出して実行するようにしてもよい。
【符号の説明】
【０１３２】
１０Ａ  テキストファイル
１０Ｂ  テキスト圧縮ファイル
１５    辞書情報
２０Ａ  検索クエリ
３１    第１候補リスト
３２    第２候補リスト
１００    情報処理装置
１１０    通信部
１２０    入力部
１３０    表示部
１４０    記憶部
１４０ａ  単語ベクトルテーブル
１４０ｂ  次元圧縮単語ベクトルテーブル
１４０ｃ  単語インデックス
１４０ｄ  同義語インデックス
１４０ｅ  同義文インデックス
１４０ｆ  文ベクトルテーブル
１４０ｇ  動的辞書
１５０    制御部
１５０ａ  受付部
１５０ｂ  次元圧縮部
１５０ｃ  生成処理部
１５０ｄ  抽出部
１５０ｅ  特定部
１５０ｆ  グラフ生成部
【図１】
2020213158.tif 000005
【図２】
2020213158.tif 000006
【図３】
2020213158.tif 000007
【図４】
2020213158.tif 000008
【図５】
2020213158.tif 000009
【図６】
2020213158.tif 000010
【図７】
2020213158.tif 000011
【図８】
2020213158.tif 000012
【図９Ａ】
2020213158.tif 000013
【図９Ｂ】
2020213158.tif 000014
【図１０】
2020213158.tif 000015
【図１１】
2020213158.tif 000016
【図１２】
2020213158.tif 000017
【図１３】
2020213158.tif 000018
【図１４】
2020213158.tif 000019
【図１５】
2020213158.tif 000020
【図１６】
2020213158.tif 000021
【図１７】
2020213158.tif 000022
【国際調査報告】
2020213158.tif 000023
2020213158.tif 000024
2020213158.tif 000025
2020213158.tif 000026
2020213158.tif 000027
2020213158.tif 000028