(57)【要約】【課題】出現頻度の高い単語に個別の符号を割り当てて符号化する場合の圧縮率を向上すること。【解決手段】情報処理装置は、対象文章データ１０に含まれる符号化対象データを符号化する際に、符号化対象データが単語の変化形であるか否かを判定する処理と、符号化対象データが単語の変化形である場合、かかる符号化対象データと符号とを対応付けて動的辞書１２２に登録する処理と、を実行する。【選択図】図１
2018195028.tif 000002
【特許請求の範囲】
【請求項１】
コンピュータに、
対象文章データに含まれる符号化対象データを符号化する際に、前記符号化対象データが単語の変化形であるか否かを判定し、
前記符号化対象データが前記単語の変化形である場合、当該符号化対象データと符号とを対応付けて動的辞書に登録する、
処理を実行させる符号化プログラム。
【請求項２】
前記判定する処理は、前記符号化対象データが静的辞書に登録されている前記単語の変化形であるか否かを判定する請求項１に記載の符号化プログラム。
【請求項３】
コンピュータに、
対象文章データに含まれる符号化対象データを符号化する際に、前記符号化対象データが単語の変化形であるか否かを判定し、
前記符号化対象データが前記単語の変化形である場合、当該符号化対象データと符号とを対応付けて動的辞書に登録し、
前記単語の基本形および変化形と、前記符号化対象データとを対応付けてインデックスに登録する、
処理を実行させるインデックス生成プログラム。
【請求項４】
コンピュータに、
対象文章データを符号化した符号化文章データに対する検索要求を受け付け、
前記検索要求に含まれる検索キーが、単語の変化形であるか否かを判定し、
前記検索キーが前記単語の変化形である場合、前記単語の基本形および変化形と、前記対象文章データに含まれる符号化対象データとを対応付けたインデックスを参照して前記検索要求に対応した検索を行う、
処理を実行させる検索プログラム。
【請求項５】
対象文章データに含まれる符号化対象データを符号化する際に、前記符号化対象データが単語の変化形であるか否かを判定する判定部と、
前記符号化対象データが前記単語の変化形である場合、当該符号化対象データと符号とを対応付けて動的辞書に登録する登録部と、
を有する符号化装置。
【請求項６】
対象文章データに含まれる符号化対象データを符号化する際に、前記符号化対象データが単語の変化形であるか否かを判定する判定部と、
前記符号化対象データが前記単語の変化形である場合、当該符号化対象データと符号とを対応付けて動的辞書に登録する登録部と、
前記単語の基本形および変化形と、前記符号化対象データとを対応付けてインデックスに登録するインデックス登録部と、
を有するインデックス生成装置。
【請求項７】
対象文章データを符号化した符号化文章データに対する検索要求を受け付ける受付部と、
前記検索要求に含まれる検索キーが、単語の変化形であるか否かを判定する検索キー判定部と、
前記検索キーが前記単語の変化形である場合、前記単語の基本形および変化形と、前記対象文章データに含まれる符号化対象データとを対応付けたインデックスを参照して前記検索要求に対応した検索を行う検索部と、
を有する検索装置。
【請求項８】
コンピュータが、
対象文章データに含まれる符号化対象データを符号化する際に、前記符号化対象データが単語の変化形であるか否かを判定し、
前記符号化対象データが前記単語の変化形である場合、当該符号化対象データと符号とを対応付けて動的辞書に登録する、
処理を実行する符号化方法。
【請求項９】
コンピュータが、
対象文章データに含まれる符号化対象データを符号化する際に、前記符号化対象データが単語の変化形であるか否かを判定し、
前記符号化対象データが前記単語の変化形である場合、当該符号化対象データと符号とを対応付けて動的辞書に登録し、
前記単語の基本形および変化形と、前記符号化対象データとを対応付けてインデックスに登録する、
処理を実行するインデックス生成方法。
【請求項１０】
コンピュータが、
対象文章データを符号化した符号化文章データに対する検索要求を受け付け、
前記検索要求に含まれる検索キーが、単語の変化形であるか否かを判定し、
前記検索キーが前記単語の変化形である場合、前記単語の基本形および変化形と、前記対象文章データに含まれる符号化対象データとを対応付けたインデックスを参照して前記検索要求に対応した検索を行う、
処理を実行する検索方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、符号化プログラム、インデックス生成プログラムおよび検索プログラム等に関する。
【背景技術】
【０００２】
圧縮対象のテキストファイルから単語を抽出し、抽出した単語をアルファベット単位で圧縮する技術が知られている。かかる技術では、a〜zまでの各アルファベットに符号を割り当て、圧縮対象のテキストファイルから抽出した単語に含まれる各アルファベットを符号に変換する。さらに、変換された符号に、例えば全角または半角の指定、大文字または小文字の指定などに関する情報を表す符号を付加することで単語を符号に変換する。さらに近年では、出現頻度の高い単語に個別の符号を割り当て、圧縮対象のテキストファイルから抽出した出現頻度の高い単語を直接符号に変換する技術が提案されている。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】国際公開第２００８／０４７４３２号
【特許文献２】特開２０１３−１５００４１号公報
【特許文献３】特開平０５−１７４０６４号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
しかしながら、上記技術では、出現頻度の高い単語について、基本形（例えば現在形）のみならず過去形や過去分詞形、複数形などの変化形にもそれぞれ個別の符号を割り当て、かかる符号と単語の変化形とを対応付けて静的辞書に登録した場合、静的辞書に必要となる容量が増加するため、圧縮率が低下する場合がある。
【０００５】
一つの側面では、出現頻度の高い単語に個別の符号を割り当てて符号化する場合の圧縮率を向上させる符号化プログラム、インデックス生成プログラムおよび検索プログラム等を提供することを目的とする。
【課題を解決するための手段】
【０００６】
第１の案では、符号化プログラムは、コンピュータに、対象文章データに含まれる符号化対象データを符号化する際に、前記符号化対象データが単語の変化形であるか否かを判定する処理を実行させる。符号化プログラムは、コンピュータに、前記符号化対象データが前記単語の変化形である場合、当該符号化対象データと符号とを対応付けて動的辞書に登録する処理を実行させる。
【発明の効果】
【０００７】
一実施形態によれば、出現頻度の高い単語に個別の符号を割り当てて符号化する場合の圧縮率を向上できる。
【図面の簡単な説明】
【０００８】
【図１】図１は、実施例１の単語の符号化処理を説明するための図である。
【図２】図２は、情報処理装置のシステム構成の例を説明するための図である。
【図３】図３は、実施例１の符号化処理に係るシステム構成の例を示す図である。
【図４】図４は、ビットフィルタの第１の例を示す図である。
【図５】図５は、動的辞書の一例を示す図である。
【図６】図６は、ビットフィルタの第２の例を示す図である。
【図７】図７は、実施例１の符号化処理の流れの例を示す図である。
【図８】図８は、実施例２のインデックス生成処理に係るシステム構成の例を示す図である。
【図９】図９は、ビットマップ型転置インデックスの一例を示す図である。
【図１０】図１０は、実施例２のインデックス生成処理の流れの例を示す図である。
【図１１】図１１は、実施例３の検索処理に係るシステム構成の例を示す図である。
【図１２】図１２は、圧縮ファイル選択の処理の流れの一例を示す図である。
【図１３】図１３は、圧縮ファイル選択の処理の流れの別の例を示す図である。
【図１４】図１４は、実施例３の検索処理の流れの例を示す図である。
【図１５】図１５は、実施例１〜３の情報処理装置のハードウェア構成を示す図である。
【図１６】図１６は、コンピュータで動作するプログラムの構成例を示す図である。
【図１７】図１７は、実施形態のシステムにおける装置の構成例を示す図である。
【発明を実施するための形態】
【０００９】
以下に、本願の開示する符号化プログラム、インデックス生成プログラムおよび検索プログラム等の実施例を図面に基づいて詳細に説明する。なお、この実施例によりこの権利範囲が限定されるものではない。各実施例は、処理内容を矛盾させない範囲で適宜組み合わせることが可能である。
【実施例１】
【００１０】
（実施例１の符号化処理）
図１を用いて、実施例１の情報処理装置１００（図２参照）による符号化処理について説明する。図１は、実施例１の単語の符号化処理を説明するための図である。図１の例のように、情報処理装置１００は、符号化処理の対象である対象文章データ１０に含まれる「She  acted  in  a  movie.・・・」を「She」「acted」「in」「a」「movie」のように数値または単語ごとに区切り、符号化対象データである各数値または各単語を取得する。以下、１以上の数字を有する数値を数値文字列と呼ぶ。数値文字列は、数字以外にプラス・マイナス、カンマおよび小数点等の符号を含んでもよい。
【００１１】
情報処理装置１００は、符号化対象データとして、例えば「acted」を抽出してビットフィルタ１２１に出力し、抽出された符号化対象データが単語の変化形であるか否かを判定する。ビットフィルタ１２１は、各単語に対してかかる単語の基本形と、動的符号とを対応付ける辞書である。ビットフィルタ１２１は、それぞれの単語の基本形と、かかる単語の基本形に対応する基本コードとがあらかじめ登録されている。例えば、ビットフィルタ１２１には、単語の変化形「acted」「acting」「acts」…に対応する単語の基本形「act」と、かかる単語の基本形「act」に対応する基本コード「ｃ（act）」とがあらかじめ登録されている。なお、図１において「ｃ（単語）」の表記は、カッコ内の単語に対応する基本コードを表す。例えば、「ｃ（act）」は、「act」の基本コードを表す。ビットフィルタ１２１のデータ構造に関する詳細は後述する。
【００１２】
次いで、情報処理装置１００は、抽出された符号化対象データ「acted」が単語の変化形である場合、ビットフィルタ１２１から単語「acted」の基本形「act」に対応する基本コード「ｃ（act）」を取得する。次いで、情報処理装置１００は、取得した基本コード「ｃ（act）」と、抽出された単語「acted」の変化種別（ここでは「過去形」）と、登録された順に動的に付される動的符号（ここでは「A100h」）とを対応づけて動的辞書１２２に登録する。なお、動的符号「A100h」の末尾に示す「h」は、１６進数で表記されていることを示す符号である。
【００１３】
次いで、情報処理装置１００は、動的辞書１２２において動的に付された動的符号「A100h」を、単語の基本形「act」および基本コード「ｃ（act）」と対応づけてビットフィルタ１２１に登録する。そして、情報処理装置１００は、ビットフィルタ１２１および動的辞書１２２を基にして単語「acted」に対応する動的符号「A100h」を取得し、圧縮ファイル１１に出力する。
【００１４】
また、情報処理装置１００は、次回、対象文章データ１０に単語「acted」が出現した場合、既にビットフィルタ１２１に登録されている動的符号「A100h」を取得し、圧縮ファイル１１に出力する。
【００１５】
（実施例１と参考例との比較）
上述したように実施例１では、単語の変化形を静的辞書であるビットフィルタ１２１ではなく、動的辞書１２２に登録して符号化する。一方、参考例では、単語の変化形を、単語の基本形と同様に静的辞書であるビットフィルタ１２１に登録して符号化するものとする。参考例のように単語の変化形も静的辞書に登録すると、静的辞書の容量が増加してしまうことから、符号化した場合の圧縮率が低下する場合がある。これに対して、実施例１のように単語の変化形を動的辞書１２２に登録して符号化すれば、静的辞書の容量増加を抑制することができる。したがって、参考例と比べて符号化した際の圧縮率を向上させることができる。
【００１６】
（実施例１の符号化処理に関する処理部の構成）
図２を用いて、情報処理装置１００の圧縮部１１０と記憶部１２０との関係について説明する。図２は、情報処理装置１００のシステム構成の例を説明するための図である。図２の例に示すように、情報処理装置１００の記憶部１２０は、圧縮部１１０と処理部１５０とに接続される。記憶部１２０は例えば、ＲＡＭ（Random  Access  Memory）、ＲＯＭ（Read  Only  Memory）、フラッシュメモリなどの半導体メモリ素子、ハードディスクや光ディスクなどの記憶装置に対応する。
【００１７】
また、情報処理装置１００は、圧縮部１１０と、処理部１５０とを有する。圧縮部１１０および処理部１５０の機能は例えば、ＣＰＵ（Central  Processing  Unit）が所定のプログラムを実行することで実現することができる。また、圧縮部１１０および処理部１５０の機能は例えば、ＡＳＩＣ（Application  Specific  Integrated  Circuit）やＦＰＧＡ（Field  Programmable  Gate  Array）などの集積回路により実現することができる。
【００１８】
圧縮部１１０は、入力されたデータから単語を抽出する。圧縮部１１０は、単語と符号とを対応付けて記憶する辞書を参照し、抽出された単語に対応する符号に変換する。
【００１９】
かかる辞書は、所定の複数の単語の基本形を予め記憶する第１の辞書と、第１の辞書に登録されている単語の変化形を記憶する第２の辞書とである。圧縮部１１０は、抽出された単語の基本形が第１の辞書に登録されており、かつ、かかる単語の変化形に対応する動的符号が第１の辞書に登録されていない場合、かかる単語に動的符号を付与して第１の辞書におけるかかる単語の基本形に対応付けてかかる動的符号を登録する。なお、第１の辞書は、例えば、ビットフィルタであり、第２辞書は、例えば、動的辞書である。
【００２０】
図３を用いて、実施例１の符号化処理に係るシステム構成について説明する。図３は、実施例１の符号化処理に係るシステム構成の例を示す図である。図３の例に示されるように、情報処理装置１００は、圧縮部１１０と、記憶部１２０とを有する。圧縮部１１０は、ファイルリード部１１１、判定部１１２、動的符号付与部１１３およびファイルライト部１１４を有する。記憶部１２０は、ビットフィルタ１２１および動的辞書１２２を有する。なお、ビットフィルタ１２１は静的辞書の一例であり、動的符号付与部１１３は登録部の一例である。以下、実施例１の圧縮部１１０および記憶部１２０の構成について詳細に説明する。
【００２１】
（記憶部の各構成）
まずは、ビットフィルタ１２１について説明する。ビットフィルタ１２１は、出現頻度の高い単語に基本コードおよび動的符号を対応付けた辞書である。図４は、ビットフィルタ１２１の第１の例を示す図である。図４の例に示すように、ビットフィルタ１２１は、２グラムと、ビットマップと、単語と、文字列長と、出現頻度と、符号長と、基本コードと、動的符号とを対応付ける。「２グラム」は、各単語に含まれる連数字である。例えば「act」は、「ac」「ct」に対応する２グラムを有する。
【００２２】
「ビットマップ」は、２グラムの文字列に対応するビットマップを表す。例えば、「act」は、各単語へのポインタによって、２グラム「ac」のビットマップ「１＿０＿０＿０＿０」と、２グラム「ct」のビットマップ「０＿１＿０＿０＿０」とに対応付けられる。例えば、情報処理装置１００は、対象文章データ１０から「act」を取得した場合に、２グラム「ac」のビットマップ「１＿０＿０＿０＿０」と、２グラム「ct」のビットマップ「０＿１＿０＿０＿０」および、２グラム「t△」のビットマップ「０＿０＿１＿０＿０」とを用いて単語「act」にアクセスする。「単語」は、ビットフィルタ１２１に登録された単語である。例えば、「単語」とは、辞典、テキスト群等からあらかじめ抽出された単語である。なお、「単語」の登録数は任意でよい。
【００２３】
「文字列長」は、登録された単語における文字列の長さである。「出現頻度」は、頻度集計用のテキストファイル群において各単語が出現した回数である。ここで、頻度集計用のテキストファイル群とは、対象文章データ１０とは別に用意された各単語の出現頻度を集計するための１以上のテキストファイルである。
【００２４】
単語の出現頻度の集計について説明する。情報処理装置１００は、頻度集計用のテキストファイルを読込み、頻度集計用のテキストファイル群に存在する単語を適宜抽出してビットフィルタ１２１に登録する。さらに、情報処理装置１００は、ビットフィルタ１２１に登録された各々の単語に関し、頻度集計用のテキストファイル群において出現した回数を出現頻度としてカウントする。例えば、図４の例において、ビットフィルタ１２１は、単語「a」が、頻度集計用のテキストファイル群において「9738」回出現したことを示す。
【００２５】
「基本コード」は、単語の基本形にそれぞれ割り当てられた符号である。情報処理装置１００は、出現頻度が高い単語に対してより短い符号長を有する符号を割り当てる。なお、図４の例では、各項目のデータがレコードとして関連づけられて記憶されている例を示したが、上記説明において互いに関連づけられた項目どうしの関係が保たれれば、データは他の記憶のされ方をしても構わない。これは、後述する図５、図６に示されるビットフィルタ１２１および動的辞書１２２に関しても同様である。
【００２６】
次に、動的辞書１２２について説明する。動的辞書１２２は、単語の基本形に対応する基本コードと、かかる単語の変化種別と、付与された動的符号とを対応付ける辞書である。図５は、動的辞書１２２の一例を示す図である。図５の例に示すように、動的辞書１２２は、動的符号と、単語の基本コードおよび変化種別とを対応付ける。「基本コード」は、ビットフィルタ１２１に登録された基本コードである。「変化種別」は、単語の基本形がどのように変化したかを示す変化種別である。「動的符号」は、例えば動的辞書１２２に登録された順番に基本コードおよび変化種別に昇順に付与される固定長の動的符号である。
【００２７】
例えば、情報処理装置１００が、対象文章データ１０から単語の変化形を順番に抽出した場合、各々の単語の変化形に対して、動的符号「A100h」「A101h」「A102h」「A103h」…を割当てる。例えば、対象文章データ１０から「acted」「eating」…の順番に単語を抽出した場合、抽出された単語が変化形であるか否かを判定し、抽出された単語が変化形である場合には抽出された単語の変化種別を判定する。そして、抽出された単語が変化形である場合、図５の例に示すように、単語の基本形「act」における基本コード「6041h」および変化種別「過去形」に対して、動的符号「A100h」を割当て、次に単語の基本形「eat」における基本コード「60F5h」および変化種別「進行形」に対して、動的符号「A101h」を割当てる。
【００２８】
（圧縮部の各構成）
図３に戻り、圧縮部１１０の各構成について説明する。ファイルリード部１１１は、対象文章データ１０を読み出して、対象文章データ１０から符号化対象データを抽出する処理部である。ファイルリード部１１１は、対象文章データ１０における文字列中の空白文字やカンマなどによって文字列を単語または数値表記文字列ごとに区切り、対象文章データ１０から各符号化対象データを抽出する。そして、ファイルリード部１１１は、抽出した符号化対象データを判定部１１２に出力する。
【００２９】
判定部１１２は、対象文章データ１０から抽出された符号化対象データが単語の変化形であるか否かを判定し、抽出された符号化対象データが単語の変化形である場合、抽出された単語の基本形および変化種別を判定する処理部である。そして、抽出された符号化対象データが単語の変化形である場合、判定部１１２は、抽出された単語の変化形と、かかる単語の基本形および変化種別の情報とを動的符号付与部１１３に出力する。
【００３０】
動的符号付与部１１３は、対象文章データ１０から抽出された単語の変化形に動的符号を付与する処理部である。動的符号付与部１１３は、判定部１１２から単語の変化形を受け付けると、ビットフィルタ１２１に登録されているかかる単語の基本形を参照して、抽出された単語の変化形にアクセスする。
【００３１】
動的符号付与部１１３は、アクセスした単語の変化形に対応する動的符号がビットフィルタ１２１に既に登録されていた場合、ビットフィルタ１２１から単語の変化形に対応する動的符号を取得してファイルライト部１１４に出力する。
【００３２】
一方、動的符号付与部１１３は、アクセスした単語の変化形に対応する動的符号がビットフィルタ１２１に登録されていない場合、ビットフィルタ１２１から単語の基本形に対応する基本コードを取得する。次いで、動的符号付与部１１３は、ビットフィルタ１２１から取得した基本コードを、動的辞書１２２への登録順に付与される動的符号と、かかる単語の変化種別とに対応付けて動的辞書１２２に登録する。
【００３３】
図５を用いて、動的辞書１２２への動的符号の登録の具体例について説明する。図５の例に示すように、動的符号付与部１１３は、１番目に登録された単語「acted」について、かかる単語の基本形「act」に対応する基本コード「6041h」および変化種別「過去形」に、動的符号「A100h」を対応づけて動的辞書１２２に登録する。また、動的符号付与部１１３は、２番目に登録された単語「eating」について、かかる単語の基本形「eat」に対応する基本コード「60F5h」および変化種別「進行形」に、動的符号「A101h」を対応づけて動的辞書１２２に登録する。このように、動的符号付与部１１３は、抽出された単語の変化形に対して動的辞書１２２へ登録された順番に対応する動的符号を付与し、単語の基本形に対応する基本コードおよび変化種別と、付与された動的符号とを対応付けて動的辞書１２２に登録する。
【００３４】
次いで、動的符号付与部１１３は、動的辞書１２２に登録した動的符号を、単語の基本形に対応付けてビットフィルタ１２１に登録する。
【００３５】
図６を用いて、登録番号および動的符号が登録された後のビットフィルタ１２１の具体例について説明する。図６は、ビットフィルタ１２１の第２の例を示す図である。図６の例に示すように、ビットフィルタ１２１に動的符号が登録される。ビットフィルタ１２１において、「動的符号」は、単語の変化形に対応する動的符号である。例えば、ビットフィルタ１２１には、単語の基本形「act」に対応する単語の変化形「acted」に付与された動的符号「A100h」が登録される。なお、動的符号には、かかる単語の変化種別についても登録される。
【００３６】
そして、動的符号付与部１１３は、ビットフィルタ１２１に登録した動的符号をファイルライト部１１４に出力する。
【００３７】
ファイルライト部１１４は、動的符号付与部１１３から出力された動的符号を基に圧縮ファイル１１を生成する処理部である。ファイルライト部１１４は、例えば動的符号付与部１１３から出力された単語の変化形に対応する各動的符号を、それぞれバッファに格納して圧縮データを生成する。ファイルライト部１１４は、バッファに生成された圧縮データを基に圧縮ファイル１１を生成する。
【００３８】
（実施例１の符号化処理の流れ）
次に、実施例１の符号化処理の流れについて説明する。図７は、実施例１の符号化処理の流れの例を示す図である。図７の例に示すように、情報処理装置１００は、最初に、前処理をおこなう（ステップＳ１０）。例えば、情報処理装置１００は、前処理においてビットフィルタ１２１を保持する領域や、動的辞書１２２を作成する作業領域を確保する。次いで、ファイルリード部１１１は、対象文章データ１０を読み出す（ステップＳ１１）。次いで、判定部１１２は、読み出された対象文章データ１０から抽出された符号化対象データが、単語の変化形であるか否かを判定する（ステップＳ１２）。そして、抽出された符号化対象データが単語の変化形でない場合（ステップＳ１２，Ｎｏ）、ステップＳ２１の処理に移行する。
【００３９】
一方、抽出された符号化対象データが単語の変化形である場合（ステップＳ１２，Ｙｅｓ）、判定部１１２は、抽出された単語の基本形および変化種別を判定する（ステップＳ１３）。そして、動的符号付与部１１３は、対象文章データ１０から抽出された単語の変化形に対応する動的符号がビットフィルタ１２１に登録されているか否かを判定する（ステップＳ１４）。そして、動的符号付与部１１３は、ビットフィルタ１２１に動的符号が登録されている場合（ステップＳ１４，Ｙｅｓ）、ステップＳ１９の処理に移行する。
【００４０】
一方、動的符号付与部１１３は、ビットフィルタ１２１に動的符号が登録されていない場合（ステップＳ１４，Ｎｏ）、ビットフィルタ１２１から抽出された単語の基本形に対応する基本コードを取得する（ステップＳ１５）。次いで、動的符号付与部１１３は、ビットフィルタ１２１から取得した基本コードと、単語の変化形における変化種別と、動的辞書１２２に単語の変化形を登録する順に付与される動的符号とを対応付けて動的辞書１２２に登録する（ステップＳ１６）。例えば、動的符号付与部１１３は、単語の変化形が動的辞書１２２に登録される順番に、単語の変化形（すなわち、単語の基本コードと変化種別との組み合わせ）に動的符号「A100h」「A101h」「A102h」「A103h」「A104h」「A105h」…を付与する。動的符号付与部１１３は、動的辞書１２２から登録された動的符号を取得する（ステップＳ１７）。次いで、動的符号付与部１１３は、動的辞書１２２から取得された動的符号を、単語の基本形に対応づけてビットフィルタ１２１に登録する（ステップＳ１８）。
【００４１】
次いで、動的符号付与部１１３は、ビットフィルタ１２１から単語の変化形に対応する動的符号を取得する（ステップＳ１９）。そして、ファイルライト部１１４は、ビットフィルタ１２１から取得された動的符号を圧縮ファイル１１に書き込む（ステップＳ２０）。
【００４２】
次いで、ファイルリード部１１１は、ファイルの読み出し位置がファイルの終端であるか否かを判定する（ステップＳ２１）。ファイルリード部１１１は、読み出し位置がファイルの終端である場合（ステップＳ２１，Ｙｅｓ）、処理を終了させる。一方、ファイルリード部１１１は、読み出し位置がファイルの途中である場合（ステップＳ２１，Ｎｏ）、ステップＳ１１の処理に戻る。
【００４３】
以上のように実施例１の情報処理装置１００は、対象文章データ１０に含まれる各単語の変化形に動的符号を割り当てるので、符号化処理時に単語の変化形に割り当てる符号長を短くできる。
【００４４】
（効果）
圧縮部１１０は、対象文章データ１０に含まれる符号化対象データを符号化する際に、符号化対象データが単語の変化形であるか否かを判定し、符号化対象データが単語の変化形である場合、かかる符号化対象データと符号とを対応付けて動的辞書１２２に登録する。これにより、出現頻度の高い単語に個別の符号を割り当てて符号化する場合の圧縮率を向上することができる。
【００４５】
圧縮部１１０における判定する処理は、符号化対象データが静的辞書（ビットフィルタ１２１）に登録されている単語の変化形であるか否かを判定する。これにより、出現頻度の高い単語に個別の符号を割り当てて、高い圧縮率で符号化することができる。
【実施例２】
【００４６】
図８を用いて、実施例２のインデックス生成処理に係るシステム構成について説明する。図８は、実施例２のインデックス生成処理に係るシステム構成の例を示す図である。図８の例に示されるように、情報処理装置２００は、圧縮部２１０と、記憶部２２０とを有する。圧縮部２１０は、ファイルリード部２１１、判定部２１２、動的符号付与部２１３およびファイルライト部２１４を有する。記憶部２２０は、ビットフィルタ２２１、動的辞書２２２およびビットマップ型転置インデックス２２３を記憶する。なお、実施例１と同じ構成に関しては、番号の下２桁を同一にして適宜説明を省略する。
【００４７】
圧縮部２１０は、抽出処理で単語の基本形および変化形が抽出された際に、複数の圧縮ファイルのうち単語の基本形および変化形が含まれる圧縮ファイルを示す情報ビット列を単語の基本形および変化形ごとに対応付けて保持するビットマップ型転置インデックス２２３を更新する。なお、ファイルライト部２１４は、インデックス登録部の一例であり、ビットマップ型転置インデックス２２３はインデックスの一例である。以下、実施例２の圧縮部２１０および記憶部２２０の構成について詳細に説明する。
【００４８】
実施例２の情報処理装置２００は、記憶部２２０がビットマップ型転置インデックス２２３を記憶する点で、実施例１の情報処理装置１００と異なる。図９を用いてビットマップ型転置インデックス２２３のデータ構造について説明する。図９は、ビットマップ型転置インデックス２２３の一例を示す図である。図９の例に示すように、ビットマップ型転置インデックス２２３は、単語の基本形にかかる基本コードや単語の変化形に係る動的付号ごとにビットマップを対応付ける。ビットマップとは、単語の基本形および変化形がいずれの圧縮ファイルに含まれるかを表す符号ビット列である。ビットマップの各ビットが、各圧縮ファイルに単語の基本形または変化形が含まれているか否かを表す。
【００４９】
ビットマップ型転置インデックス２２３は、例えば、出現頻度の高い単語の基本形、およびかかる単語の変化形ごとにビットマップを対応付ける。出現頻度の高い単語とは、出現頻度集計用のテキストファイル群において各単語の出現頻度を集計した場合に、出現頻度の高い単語を表す。
【００５０】
例えば、ビットマップ型転置インデックス２２３の有効行１行目は、基本コード「25h」に対応する単語の基本形「ａ」のビットマップが「…0110111101」となっている。ビットマップ型転置インデックス２２３の有効行１行目のビットマップは、単語の基本形「ａ」の基本コードが含まれるファイルを表す。ビットマップ「…0110111101」は、レジスタの０番に「1」が格納されているのでファイル１に単語の基本形「ａ」が含まれ、レジスタの１番に「0」が格納されているのでファイル２に単語の基本形「ａ」が含まれず、レジスタの２番に「1」が格納されているのでファイル３に単語の基本形「ａ」が含まれることを表す。また、ビットマップ「…0110111101」は、レジスタの３番に「1」が格納されているのでファイル４に単語の基本形「ａ」が含まれ、レジスタの４番に「1」が格納されているのでファイル５に単語の基本形「ａ」が含まれていることを表す。なお、ビットマップ「…0110111101」は、ファイル６以降の他の各ファイルに単語の基本形「ａ」が含まれるか否かについても表す。
【００５１】
次に、ビットマップ型転置インデックス２２３の更新について説明する。ファイルライト部２１４は、動的符号付与部２１３から受け付けた基本コードや動的符号がビットマップ型転置インデックス２２３に登録されているか否かを判定する。ファイルライト部２１４は、ビットマップ型転置インデックス２２３に、受け付けた基本コードや動的符号に対応するビットマップが登録されている場合、受け付けた基本コードや動的符号に対応するビットマップを参照する。ファイルライト部２１４は、参照したビットマップのうち、対象ファイルに対応するビットが「0」の場合、ビットを「1」に更新する。なお、ファイルライト部２１４は、対象ファイルに対応するビットが「1」の場合、ビットマップを更新しない。
【００５２】
一方、ファイルライト部２１４は、受け付けた基本コードや動的符号に対応するビットマップがビットマップ型転置インデックス２２３に登録されていない場合、ビットマップ型転置インデックス２２３に新しくビットマップを登録する。
【００５３】
具体的には、ファイルライト部２１４は、動的符号付与部２１３が対象ファイル中の単語の変化形を動的辞書２２２に登録した場合に、単語の変化形に付与された動的符号を取得する。かかる場合において、ファイルライト部２１４は、取得した動的符号に係るビットマップをビットマップ型転置インデックス２２３に登録する。このビットマップには、対象ファイルの数分のビット「0」が含まれる。さらに、ファイルライト部２１４は、登録したビットマップのビットのうち、対象ファイルに対応するビットを「1」に更新する。すなわち、ファイルライト部２１４は、対象ファイルにおいて初出である単語の変化形を動的辞書２２２に登録した際に、ビットマップ型転置インデックス２２３に登録された単語の変化形に対応するビットマップを登録する。このようにしてビットマップ型転置インデックス２２３を生成する。
【００５４】
（実施例２のインデックス生成処理の流れ）
次に、実施例２のインデックス生成処理の流れについて説明する。図１０は、実施例２のインデックス生成処理の流れの例を示す図である。図１０の例に示すように、情報処理装置２００は、最初に、前処理をおこなう（ステップＳ３０）。例えば、情報処理装置２００は、前処理においてビットフィルタ２２１を保持する領域や、動的辞書２２２を作成する作業領域を確保する。次いで、ファイルリード部２１１は、対象文章データ１０を読み出す（ステップＳ３１）。次いで、判定部２１２は、読み出された対象文章データ１０から抽出された符号化対象データが、単語の変化形であるか否かを判定する（ステップＳ３２）。そして、抽出された符号化対象データが単語の変化形でない場合（ステップＳ３２，Ｎｏ）、ステップＳ４２の処理に移行する。
【００５５】
一方、抽出された符号化対象データが単語の変化形である場合（ステップＳ３２，Ｙｅｓ）、判定部２１２は、抽出された単語の基本形および変化種別を判定する（ステップＳ３３）。そして、動的符号付与部２１３は、対象文章データ１０から抽出された単語の変化形に対応する動的符号がビットフィルタ２２１に登録されているか否かを判定する（ステップＳ３４）。そして、動的符号付与部２１３は、ビットフィルタ２２１に動的符号が登録されている場合（ステップＳ３４，Ｙｅｓ）、ステップＳ３９の処理に移行する。
【００５６】
一方、動的符号付与部２１３は、ビットフィルタ２２１に動的符号が登録されていない場合（ステップＳ３４，Ｎｏ）、ビットフィルタ２２１から抽出された単語の基本形に対応する基本コードを取得する（ステップＳ３５）。次いで、動的符号付与部２１３は、ビットフィルタ２２１から取得した基本コードと、単語の変化形における変化種別と、動的辞書２２２に単語の変化形を登録する順に付与される動的符号とを対応付けて動的辞書２２２に登録する（ステップＳ３６）。例えば、動的符号付与部２１３は、単語の変化形が動的辞書２２２に登録される順番に、単語の変化形（すなわち、単語の基本コードと変化種別との組み合わせ）に動的符号「A100h」「A101h」「A102h」「A103h」「A104h」「A105h」…を付与する。動的符号付与部２１３は、動的辞書２２２から登録された動的符号を取得する（ステップＳ３７）。次いで、動的符号付与部２１３は、動的辞書２２２から取得された動的符号を、単語の基本形に対応づけてビットフィルタ２２１に登録する（ステップＳ３８）。次いで、動的符号付与部２１３は、ビットフィルタ２２１から単語の変化形に対応する動的符号を取得する（ステップＳ３９）。
【００５７】
次に、ファイルライト部２１４は、動的符号付与部２１３が取得した動的符号、およびかかる動的符号に対応付けられた基本コードを基にして、ビットマップ型転置インデックス２２３を更新する（ステップＳ４０）。例えば、ファイルライト部２１４は、ビットマップ型転置インデックス２２３に動的符号に対応するビットマップが登録されている場合、ビットマップに含まれるビットのうち、対象ファイルに対応するビットを「1」に更新する。一方、ファイルライト部２１４は、ビットマップ型転置インデックス２２３に動的符号に対応するビットマップが登録されていない場合、ビットマップ型転置インデックス２２３に新しく動的符号に対応するビットマップを登録する。
【００５８】
そして、ファイルライト部２１４は、ビットフィルタ２２１から取得された動的符号を圧縮ファイル１１に書き込む（ステップＳ４１）。
【００５９】
次いで、ファイルリード部２１１は、ファイルの読み出し位置がファイルの終端であるか否かを判定する（ステップＳ４２）。ファイルリード部２１１は、読み出し位置がファイルの終端である場合（ステップＳ４２，Ｙｅｓ）、処理を終了させる。一方、ファイルリード部２１１は、読み出し位置がファイルの途中である場合（ステップＳ４２，Ｎｏ）、ステップＳ３１の処理に戻る。
【００６０】
以上のように実施例２の情報処理装置２００は、ファイル圧縮を行う際にビットマップ型転置インデックス２２３を生成する。これにより、情報処理装置２００は、複数の圧縮ファイルを基に単語の検索をおこなう際に、検索対象のうち、単語の基本形または変化形を有するファイルを特定でき、オープンする圧縮ファイルを絞り込むことができるので単語検索を高速化することができる。
【００６１】
（効果）
圧縮部２１０は、対象文章データ１０に含まれる符号化対象データを符号化する際に、符号化対象データが単語の変化形であるか否かを判定し、符号化対象データが単語の変化形である場合、かかる符号化対象データと符号とを対応付けて動的辞書２２１に登録し、単語の基本形および変化形と、符号化対象データとを対応付けてインデックス（ビットマップ型転置インデックス２２３）に登録する。これにより、複数の圧縮ファイルを基に単語検索をおこなう際に、検索対象のうち単語の基本形または変化形を有するファイルを特定でき、オープンする圧縮ファイルを絞り込むことができるので単語検索を高速化することができる。
【実施例３】
【００６２】
図１１を用いて、実施例３の検索処理に係るシステム構成について説明する。図１１は、実施例３の検索処理に係るシステム構成の例を示す図である。図１１の例に示されるように、情報処理装置３００は、圧縮部３１０と、記憶部３２０と、検索処理部３３０とを有する。圧縮部３１０は、ファイルリード部３１１、判定部３１２、動的符号付与部３１３およびファイルライト部３１４を有する。記憶部３２０は、ビットフィルタ３２１、動的辞書３２２およびビットマップ型転置インデックス３２３を記憶する。検索処理部３３０は、受付部３３１、検索キー判定部３３２および検索部３３３を有する。なお、ビットマップ型転置インデックス３２３はインデックスの一例である。また、実施例１、２と同じ構成に関しては、番号の下２桁を同一にして適宜説明を省略する。
【００６３】
検索処理部３３０は、ビットマップ型転置インデックス３２３が作成された際に、かかるビットマップ型転置インデックス３２３を参照して、複数の圧縮ファイルの中から検索キーに対応する単語を検索する。以下、実施例３の検索処理部３３０の構成について詳細に説明する。
【００６４】
実施例３の情報処理装置３００は、検索処理部３３０を有する点で、実施例２の情報処理装置２００と異なる。受付部３３１は、実施例２に記載の方法で符号化された対象文章データ１０に対する検索要求を受け付ける。検索キー判定部３３２は、かかる検索要求に含まれる検索キーが、単語の変化形であるか否かを判定する。検索部３３３は、かかる検索キーが単語の変化形である場合に、ビットマップ型転置インデックス３２３を参照して検索要求に対応した検索を行う。
【００６５】
次に、実施例３に係る単語の検索処理の流れを説明する。図１２は、圧縮ファイル選択の処理の流れの一例を示す図である。図１２の例に示すように、例えば、検索キーが「act」であった場合、検索キー判定部３３２は、かかる検索キーが単語の変化形であるか否かを判定する。ここで、検索キー「act」は単語の変化形ではなく基本形であることから、検索部３３３は、ビットフィルタ３２１からかかる検索キーに対応する基本コード「6041h」を取得し、取得された基本コードのビットマップを抽出する。次いで、検索部３３３は、検索範囲内で抽出されたビットマップのＡＮＤ演算を行い、選択結果マップ「…0110000111」を生成する。かかる生成された選択結果マップ「…0110000111」は、単語「act」を含む圧縮ファイルを示す。
【００６６】
ここで、図１２の例に示すように、フォルダ５１には、複数の圧縮ファイル５２ａ、５２ｂ、５２ｃ…が含まれる。検索部３３３は、選択結果マップが「…0110000111」となっているので、フォルダ５１に含まれるファイルのうち、１番目の圧縮ファイル５２ａと、２番目の圧縮ファイル５２ｂと、３番目の圧縮ファイル５２ｃとをオープンする。なお、検索部３３３は、他にも８番目、９番目のファイルをオープンする。検索部３３３によってオープンされた圧縮ファイル５２ａには、例えば検索キー「act」に属する単語「acted」が格納されている。
【００６７】
図１３は、圧縮ファイル選択の処理の流れの別の例を示す図である。図１３の例に示すように、例えば、検索キーが「acting」であった場合、検索キー判定部３３２は、かかる検索キーが単語の変化形であるか否かを判定する。ここで、検索キー「acting」は単語の変化形であることから、検索キー判定部３３２は、かかる検索キー「acting」の基本形「act」および変化種別「進行形」を判定する。つづいて、検索部３３３は、かかる検索キーに対応する基本コード「6041h」および動的符号「A104h」を取得し、取得された基本コードおよび動的符号のビットマップを抽出する。次いで、検索部３３３は、検索範囲内で抽出されたビットマップのＡＮＤ演算を行い、選択結果マップ「…0000000010」を生成する。かかる生成された選択結果マップ「…0000000010」は、単語「acting」を含む圧縮ファイルを示す。
【００６８】
ここで、検索部３３３は、選択結果マップが「…0000000010」となっているので、フォルダ５１に含まれるファイルのうち、２番目の圧縮ファイル５２ｂをオープンする。検索部３３３によってオープンされた圧縮ファイル５２ｂには、検索キー「acting」に属する単語「acting」が格納されている。
【００６９】
（実施例３の検索処理の流れ）
次に、実施例３の検索処理の流れについて説明する。図１４は、実施例３の検索処理の流れの例を示す図である。図１４の例に示すように、情報処理装置３００は、前処理をおこなう（ステップＳ５０）。例えば、情報処理装置３００は、前処理として選択結果マップを生成するための作業領域を確保する。
【００７０】
次いで、受付部３３１は、検索要求を検索キーとして受け付ける（ステップＳ５１）。そして、検索キー判定部３３２は、受け付けられた検索キーが単語の変化形であるか否かを判定する（ステップＳ５２）。ここで、受け付けられた検索キーが単語の変化形でない場合（ステップＳ５２，Ｎｏ）、検索キー判定部３３２は、かかる検索キーとして受け付けられた単語の基本形に対応する基本コードを取得する（ステップＳ５３）。一方、受け付けられた検索キーが単語の変化形である場合（ステップＳ５２，Ｙｅｓ）、検索キー判定部３３２は、かかる検索キーとして受け付けられた単語の変化形に対応する動的符号と、かかる単語の基本形に対応する基本コードとを取得する（ステップＳ５４）。
【００７１】
次いで、検索部３３３は、取得された基本コードや動的符号に基づいて、検索範囲内に属するビットマップをビットマップ型転置インデックス３２３から抽出する（ステップＳ５５）。つづいて、検索部３３３は、ビットマップ型転置インデックス３２３から抽出した複数のビットマップ間で検索クエリの複数の単語に対応したＡＮＤ演算をおこなうことで選択結果マップを生成する（ステップＳ５６）。そして、検索部３３３は、生成された選択結果マップに基づいてオープンする圧縮ファイルを選択し、選択された圧縮ファイルに関する検索結果を表示して（ステップＳ５７）、処理を終了させる。
【００７２】
（効果）
情報処理装置３００は、対象文章データ１０を符号化した符号化文章データに対する検索要求を受け付け、かかる検索要求に含まれる検索キーが、単語の変化形であるか否かを判定し、検索キーが単語の変化形である場合、単語の基本形および変化形と、対象文章データ１０に含まれる符号化対象データとを対応付けたインデックス（ビットマップ型転置インデックス３２３）を参照して検索要求に対応した検索を行う。これにより、単語の基本形および変化形といった類義語における検索の高速化を図ることができる。
【００７３】
（実施例１、２に関連する他の態様）
以下、上述の実施形態における変形例の一部を説明する。下記の変形例のみでなく、本発明の本旨を逸脱しない範囲の設計変更は適宜行われうる。
【００７４】
例えば、上述の実施例１〜３では、ビットフィルタ１２１、２２１、３２１に登録される単語の基本形として、かかる単語の現在形を用いた例について示したが、単語の基本形はかかる単語の現在形に限られず、単語の変化形のうちいずれか１種類を用いてもよい。しかしながら、単語の基本形にかかる単語の現在形を用いることにより、単語の各種変化形といった類義語を容易に検索することができる。
【００７５】
また、符号化処理の対象は、ファイル内のデータ以外にも、システムから出力される監視メッセージなどでもよい。例えば、バッファに順次格納される監視メッセージを上述の符号化処理により圧縮し、ログファイルとして格納するなどの処理が行なわれる。また、例えば、データベース内のページ単位に圧縮が行なわれてもよいし、複数のページをまとめた単位で圧縮が行なわれてもよい。
【００７６】
また、実施例１に示した処理手順、制御手順、具体的名称、各種のデータやパラメータを含む情報については、特記する場合を除いて任意に変更することができる。
【００７７】
（情報処理装置のハードウェア構成）
図１５は、実施例１〜３の情報処理装置１００、２００、３００のハードウェア構成を示す図である。図１５の例に示すように、コンピュータ４００は、各種演算処理を実行するＣＰＵ４０１と、ユーザからのデータ入力を受け付ける入力装置４０２と、モニタ４０３とを有する。また、コンピュータ４００は、記憶媒体からプログラム等を読み取る媒体読取装置４０４と、他の装置と接続するためのインターフェース装置４０５と、他の装置と無線により接続するための無線通信装置４０６とを有する。また、コンピュータ４００は、各種情報を一時記憶するＲＡＭ４０７と、ハードディスク装置４０８とを有する。また、各装置４０１〜４０８は、バス４０９に接続される。
【００７８】
ハードディスク装置４０８には、例えば図３に示したファイルリード部１１１、判定部１１２、動的符号付与部１１３およびファイルライト部１１４の各処理部と同様の機能を有する情報処理プログラムが記憶される。また、ハードディスク装置４０８には、情報処理プログラムを実現するための各種データが記憶される。
【００７９】
ＣＰＵ４０１は、ハードディスク装置４０８に記憶された各プログラムを読み出して、ＲＡＭ４０７に展開して実行することで各種の処理を行う。これらのプログラムは、コンピュータ４００を、例えば図３に示したファイルリード部１１１、判定部１１２、動的符号付与部１１３およびファイルライト部１１４として機能させることができる。
【００８０】
なお、上記の情報処理プログラムは、必ずしもハードディスク装置４０８に記憶されている必要はない。例えば、コンピュータ４００が読み取り可能な記憶媒体に記憶されたプログラムを、コンピュータ４００が読み出して実行するようにしてもよい。コンピュータ４００が読み取り可能な記憶媒体は、例えば、ＣＤ−ＲＯＭやＤＶＤディスク、ＵＳＢ（Universal  Serial  Bus）メモリ等の可搬型記録媒体、フラッシュメモリ等の半導体メモリ、ハードディスクドライブ等が対応する。また、公衆回線、インターネット、ＬＡＮ（Local  Area  Network）等に接続された装置にこのプログラムを記憶させておき、コンピュータ４００がこれらからプログラムを読み出して実行するようにしてもよい。
【００８１】
図１６は、コンピュータ４００で動作するプログラムの構成例を示す図である。コンピュータ４００において、図１５に示すハードウェア群２６（４０１〜４０９）の制御を行なうＯＳ（オペレーティング・システム）２７が動作する。ＯＳ２７に従った手順でＣＰＵ４０１が動作して、ハードウェア群２６の制御・管理が行なわれることにより、アプリケーションプログラム２９やミドルウェア２８に従った処理がハードウェア群２６で実行される。さらに、コンピュータ４００において、ミドルウェア２８またはアプリケーションプログラム２９が、ＲＡＭ４０７に読み出されてＣＰＵ４０１により実行される。
【００８２】
ＣＰＵ４０１により圧縮機能が呼び出された場合、ミドルウェア２８またはアプリケーションプログラム２９の少なくとも一部に基づく処理を行なうことで、（それらの処理をＯＳ２７に基づいてハードウェア群２６を制御して）圧縮部１１０の機能が実現される。圧縮機能は、それぞれアプリケーションプログラム２９自体に含まれてもよいし、アプリケーションプログラム２９に従って呼び出されることで実行されるミドルウェア２８の一部であってもよい。
【００８３】
アプリケーションプログラム２９（またはミドルウェア２８）の圧縮機能により得られる圧縮ファイル１１は、部分的に伸張することも可能である。圧縮ファイル１１の途中を伸張する場合には、伸張対象の部分までの圧縮データの伸張処理が抑制されるため、ＣＰＵ４０１の負荷が抑制される。また、伸張対象の圧縮データを部分的にＲＡＭ４０７上に展開するので、ワークエリアも削減される。
【００８４】
図１７は、実施形態のシステムにおける装置の構成例を示す図である。図１７のシステムは、コンピュータ４００ａ、コンピュータ４００ｂ、基地局３０およびネットワーク４０を含む。コンピュータ４００ａは、無線または有線の少なくとも一方により、コンピュータ４００ｂと接続されたネットワーク４０に接続している。
【符号の説明】
【００８５】
１００              情報処理装置
１１０              圧縮部
１１１              ファイルリード部
１１３              動的符号付与部
１２０              記憶部
１２１              ビットフィルタ
１２２              動的辞書
２２３              ビットマップ型転置インデックス
３３０              検索処理部
３３１              受付部
３３２              検索キー判定部
３３３              検索部
【図１】
2018195028.tif 000003
【図２】
2018195028.tif 000004
【図３】
2018195028.tif 000005
【図４】
2018195028.tif 000006
【図５】
2018195028.tif 000007
【図６】
2018195028.tif 000008
【図７】
2018195028.tif 000009
【図８】
2018195028.tif 000010
【図９】
2018195028.tif 000011
【図１０】
2018195028.tif 000012
【図１１】
2018195028.tif 000013
【図１２】
2018195028.tif 000014
【図１３】
2018195028.tif 000015
【図１４】
2018195028.tif 000016
【図１５】
2018195028.tif 000017
【図１６】
2018195028.tif 000018
【図１７】
2018195028.tif 000019