(57)【特許請求の範囲】
【請求項１】
コンピュータに、
複数の文書から、複数の単語と第１の符号群とを対応付けた第１の符号化情報に基づいて、前記第１の符号化情報に含まれる単語を変換した、複数の第１符号化文書を生成し、
前記複数の第１符号化文書における、前記第１の符号化により変換された符号ごとに頻度集計を行い、
前記複数の第１符号化文書それぞれを、前記頻度集計の結果を用いた第２の符号化により変換した、複数の第２符号化文書を出力し、
前記複数の第２符号化文書から、前記第２の符号化による符号に対応付けられた前記第１の符号化情報に基づいて、前記複数の第１符号化文書を生成し、
前記複数の第１符号化文書について、前記頻度集計の結果を用いて、所定の文書処理を行う、
処理を実行させることを特徴とする文書処理プログラム。
【請求項２】
前記出力する処理は、前記複数の第１符号化文書それぞれの頻度集計の結果をマージした統合集計情報を生成し、生成された統合集計情報に基づき、複数の第１符号化文書それぞれを第２の符号化により変換し、複数の第２符号化文書を出力する
処理を実行させることを特徴とする請求項１に記載の文書処理プログラム。
【請求項３】
前記第１の符号化情報は、複数の単語と固定長の第１の符号群とを対応付け、
前記複数の第１符号化文書を生成する処理は、前記第２の符号化が行われた前記複数の第２符号化文書それぞれに対し、前記第１の符号化情報に基づいて前記第１の符号化を行う
処理を実行させることを特徴とする請求項１または請求項２に記載の文書処理プログラム。
【請求項４】
前記所定の文書処理を行う処理は、
複数の第１符号化文書から特定のキーワードを含む第１符号化文書を検索する場合に、前記複数の第１符号化文書それぞれの頻度集計の結果に基づいて、前記第１の符号化が行われた前記複数の第１符号化文書の中から前記特定のキーワードを含む第１符号化文書を決定し、
決定した第１符号化文書に対応する前記第１の符号化の符号列を検索する
処理を実行させることを特徴とする請求項１または請求項３に記載の文書処理プログラム。
【請求項５】
前記所定の文書処理を行う処理は、
複数の第１符号化文書の第１のキーワードを第２のキーワードに置換する場合に、前記複数の第１符号化文書それぞれの頻度集計の結果に基づいて、前記第１のキーワードを含む第１符号化文書を決定し、
決定した第１符号化文書に対応する前記第１の符号化の符号列に対して、前記第１のキーワードの第１の符号を前記第２のキーワードの第１の符号に置換する
処理を実行させることを特徴とする請求項１または請求項３に記載の文書処理プログラム。
【請求項６】
複数の文書から、複数の単語と第１の符号群とを対応付けた第１の符号化情報に基づいて、前記第１の符号化情報に含まれる単語を変換した、複数の第１符号化文書を生成する第１符号化部と、
前記複数の第１符号化文書における、前記第１の符号化により変換された符号ごとに頻度集計を行う集計部と、
前記第１符号化部により生成された複数の第１符号化文書それぞれを、前記頻度集計の結果を用いた第２の符号化により変換した、複数の第２符号化文書を出力する第２符号化部と、
前記複数の第２符号化文書から、前記第２の符号化による符号に対応付けられた前記第１の符号化情報に基づいて、前記複数の第１符号化文書を生成する生成部と、
前記生成部により生成された前記複数の第１符号化文書について、前記頻度集計の結果を用いて、所定の文書処理を行う文書処理部と、
を有することを特徴とする情報処理装置。
【請求項７】
コンピュータが、
複数の文書から、複数の単語と第１の符号群とを対応付けた第１の符号化情報に基づいて、前記第１の符号化情報に含まれる単語を変換した、複数の第１符号化文書を生成し、
前記複数の第１符号化文書における、前記第１の符号化により変換された符号ごとに頻度集計を行い、
前記複数の第１符号化文書それぞれを、前記頻度集計の結果を用いた第２の符号化により変換した、複数の第２符号化文書を出力し、
前記複数の第２符号化文書から、前記第２の符号化による符号に対応付けられた前記第１の符号化情報に基づいて、前記複数の第１符号化文書を生成し、
前記複数の第１符号化文書について、前記頻度集計の結果を用いて、所定の文書処理を行う、
各処理を実行することを特徴とする文書処理方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、文書処理プログラム等に関する。
【背景技術】
【０００２】
複数の文書にわたる検索を行う場合、検索を行う装置は、各文書で生成されたインデックス情報を用いる必要があるか、全ての文書を伸長してから検索する必要がある。
【０００３】
特に、各文書が圧縮されている場合、単語ごとに圧縮が行われているとは限らず、単語ごとに圧縮が行われている場合であっても、文書ごとに単語に対応する圧縮符号が異なる。したがって、複数の文書にわたる検索を行う場合、装置は、全ての文書を伸長してから検索する必要がある。
【０００４】
ここで、圧縮アルゴリズムには、ＬＺ７７に基づいたＺＩＰがある。ＺＩＰでは、圧縮対象の文字列に対して、スライド窓を用いて最長一致の文字列を判定し、圧縮データを生成する。したがって、単語ごとに圧縮が行われていないので、複数の文書にわたる検索を行う場合、装置は、全ての文書を伸長してから検索する必要がある。
【０００５】
また、別の圧縮アルゴリズムとして、圧縮対象の文書で単語の出現回数をカウントし、出現回数に応じて単語に可変長符号を割り当てる技術がある（例えば、特許文献１参照）。かかる技術では、単語ごとに出現回数をカウントした字句解析の集計結果を用いて、圧縮データを生成する。複数の文書が存在する場合には、複数の文書ごとに単語に割り当てる符号が異なることになるので、複数の文書にわたる検索を行う場合、装置は、全ての文書の符号を伸長してから検索する必要がある。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】特開平１１−１６８３９０号公報
【発明の概要】
【発明が解決しようとする課題】
【０００７】
しかしながら、複数の文書にわたる検索等の処理を行う場合、圧縮の際に生成される複数の文書の集計結果を利用できないという問題がある。
【０００８】
例えば、ＺＩＰでは、圧縮処理は、スライド窓を用いて最長一致の文字列を判定するので、最長一致の文字列から生成される圧縮符号として単語の区切りを意識しない符号となる。つまり、圧縮処理と単語の検索処理とは、共通性がない。したがって、複数の文書にわたる検索等の処理を行う場合、圧縮の際に生成される複数の文書の集計結果を利用できない。
【０００９】
また、出現回数を利用した圧縮アルゴリズムであっても、圧縮で用いられる単語辞書は、符号化前の文書中に出現される単語と単語についての品詞情報とをカテゴリ情報として登録されたものであるので、文書ごとに独立する。圧縮処理は、文書に対応する単語辞書を用いて、該文書を単語単位に分割し、分割した単語をカウントした結果である集計結果を生成する。生成される集計結果は、複数の文書ごとに独立する。したがって、複数の文書にわたる検索等の処理を行う場合、圧縮の際に生成される複数の文書の集計結果を利用できない。
【００１０】
出現回数を利用した圧縮アルゴリズムにおいて、複数の文書にわたる検索等の処理を行う場合、圧縮の際に生成される複数の集計結果を利用できないという問題について、図１Ａおよび図１Ｂを参照して説明する。図１Ａは、圧縮処理の一例を示す図である。図１Ａに示すように、単語カウント部は、未圧縮状態のファイルを該ファイルに対応する単語辞書を用いて、単語単位に分割する。単語カウント部は、分割した単語をカウントし、カウントした結果である集計結果を生成する。集計結果は、ファイル単位に生成される。そして、符号割当部は、集計結果を用いて単語に対して圧縮符号を割り当てる。この結果、圧縮状態のファイルが生成される。集計結果は、圧縮状態のファイルが生成された後削除される。これは、集計結果が、ファイルごとに異なった単語辞書から生成されるものであるので、ファイルごとに共通性がないからである。
【００１１】
図１Ｂは、圧縮状態のファイルを活用する文書処理の一例を示す図である。図１Ｂに示すように、文書処理は、圧縮状態のファイルＡを伸長し（１０１）、伸長した未圧縮状態のファイルについて字句解析を行う（１０２）。ここでいう字句解析とは、未圧縮状態のファイル中のデータを単語に分割することをいう。また、文書処理は、圧縮状態のファイルＢを伸長し（１０１）、伸長した未圧縮状態のファイルについて字句解析を行う（１０２）。そして、文書処理は、字句解析がされた未圧縮状態のファイルＡ、Ｂを統合する（１０３）。そして、文書処理は、複数のファイルにわたる検索等の処理を行う（１０４）。例えば、処理が検索処理の場合には、文書処理は、検索処理に合致する文書を抽出する。そして、文書処理は、抽出した文書について集計を行い、圧縮の際に生成される集計結果とは別の新たな集計結果を生成する（１０５）。そして、文書処理は、生成した集計結果、すなわち圧縮状態のファイルを活用する（１０６）。つまり、文書処理は、複数のファイルにわたる検索等の処理を行う場合、圧縮の際に生成される複数の集計結果を利用できない。
【００１２】
１つの側面では、複数の文書にわたる検索処理等の処理を行う場合、圧縮の際に生成される複数の集計結果を利用することを目的とする。
【課題を解決するための手段】
【００１３】
第１の案では、コンピュータに、下記の処理を実行させる。複数の文書から、複数の単語と第１の符号群とを対応付けた第１の符号化情報に基づいて、前記第１の符号化情報に含まれる単語を変換した、複数の第１符号化文書を生成し、前記複数の第１符号化文書における、前記第１の符号化により変換された符号ごとに頻度集計を行い、前記複数の第１符号化文書それぞれを、前記頻度集計の結果を用いた第２の符号化により変換した、複数の第２符号化文書を出力する、処理を実行させる。
【発明の効果】
【００１４】
本発明の１実施態様によれば、複数の文書にわたる検索処理等の処理を行う場合、圧縮の際に生成される複数の集計結果を利用できる。
【図面の簡単な説明】
【００１５】
【図１Ａ】図１Ａは、圧縮処理の一例を示す図である。
【図１Ｂ】図１Ｂは、圧縮状態のファイルを活用する文書処理の一例を示す図である。
【図２Ａ】図２Ａは、実施例に係る圧縮処理の一例を示す図である。
【図２Ｂ】図２Ｂは、実施例に係る文書処理の一例を示す図である。
【図３】図３は、中間符号を説明する図である。
【図４】図４は、実施例に係る情報処理装置の構成を示す機能ブロック図である。
【図５】図５は、実施例に係る静的単語辞書のデータ構造の一例を示す図である。
【図６】図６は、実施例に係る中間符号表のデータ構造の一例を示す図である。
【図７】図７は、実施例に係る集計情報のデータ構造の一例を示す図である。
【図８】図８は、実施例に係る最適符号表のデータ構造の一例を示す図である。
【図９】図９は、静的単語辞書と中間符号表と最適符号表の関係を示す図である。
【図１０】図１０は、実施例に係る圧縮部の構成の一例を示す機能ブロック図である。
【図１１】図１１は、実施例に係る文書処理制御部の構成の一例を示す機能ブロック図である。
【図１２】図１２は、実施例に係る伸長部の構成の一例を示す機能ブロック図である。
【図１３Ａ】図１３Ａは、文書の統合の一例を説明する図である。
【図１３Ｂ】図１３Ｂは、文書の統合の別の例を説明する図である。
【図１４】図１４は、実施例に係る圧縮部の処理手順を示すフローチャートである。
【図１５】図１５は、実施例に係る文書処理制御部の処理手順を示すフローチャートである。
【図１６】図１６は、実施例に係る文書処理制御部の検索処理手順を示すフローチャートである。
【図１７】図１７は、実施例に係る文書処理制御部の置換処理手順を示すフローチャートである。
【図１８】図１８は、実施例に係る伸長部の処理手順を示すフローチャートである。
【図１９Ａ】図１９Ａは、実施例に係る文書処理における用途の一例を示す図である。
【図１９Ｂ】図１９Ｂは、文書処理における用途の参考例を示す図である。
【図２０】図２０は、情報処理装置のハードウェアの構成の一例を示す図である。
【発明を実施するための形態】
【００１６】
以下に、本願の開示する文書処理プログラム、情報処理装置および文書処理方法の実施例を図面に基づいて詳細に説明する。なお、この実施例によりこの発明が限定されるものではない。
【実施例】
【００１７】
図２Ａは、本実施例に係る圧縮処理の一例を示す図である。
【００１８】
図２Ａに示すように、中間符号変換部は、未圧縮状態のファイルを、静的単語辞書を用いて、単語単位に分割する。中間符号変換部は、分割した単語を中間符号表に基づいて中間符号化を行う。静的単語辞書とは、一般的な国語辞典や教科書等を基にして文書中に出現する単語を品詞と対応付けた静的な辞書である。中間符号表とは、単語を中間符号に対応付けた情報である。中間符号とは、最適な圧縮符号に符号化される際に用いられる中間的な符号のことをいい、単語に対して固定の長さの符号が割り当てられる。固定の長さは、一例として３バイトである。
【００１９】
単語カウント部は、ファイルに含まれる複数の文書それぞれについて、中間符号化により生成された単語に対応する中間符号ごとに出現回数をカウントする。単号カウント部は、中間符号ごとに出現回数をカウントした結果である集計結果を生成する。すなわち、集計結果は、中間符号ごとの頻度集計の結果であり、文書単位に生成される。
【００２０】
符号割当部は、中間符号化が行われた複数の文書それぞれに、複数の文書それぞれの集計結果を用いた最適符号化を行う。例えば、符号割当部は、複数の文書それぞれの集計結果をマージした統合集計情報を生成し、生成された統合集計情報に基づき、中間符号化がなされた複数の文書それぞれに最適な圧縮符号に符号化する最適符号化を行う。この結果、圧縮状態のファイルが生成される。
【００２１】
図２Ｂは、実施例に係る文書処理の一例を示す図である。
【００２２】
図２Ｂに示すように、圧縮状態のファイルＡと圧縮処理の際に生成された文書単位の集計結果が存在する。圧縮状態のファイルＢと圧縮処理の際に生成された文書単位の集計結果が存在する。
【００２３】
文書処理は、圧縮状態のファイルＡについて、最適符号化が行われた複数の文書それぞれに対し、中間符号表に基づいて中間符号化を行うことで伸長する（２０１）。すなわち、文書処理は、複数の文書を、中間符号を用いて符号化した状態を示す中間符号状態にする。文書処理は、検索を所望するキーワードがある場合には、中間符号状態の複数の文書から検索キーワードを含む文書を検索する（２０２）。例えば、文書処理は、検索キーワードを受け取ると、圧縮処理の際に生成された複数の文書それぞれの集計結果に基づいて、中間符号状態の複数の文書から検索キーワードを含む文書を決定する。文書処理は、決定した文書に対応する中間符号状態を検索対象とする。
【００２４】
文書処理は、圧縮状態のファイルＢについて、最適符号化が行われた複数の文書それぞれに対し、中間符号表に基づいて中間符号化を行うことで伸長する（２０１）。すなわち、文書処理は、複数の文書を、中間符号を用いて符号化した状態を示す中間符号状態にする。文書処理は、検索を所望するキーワードがある場合には、中間符号状態の複数の文書から検索キーワードを含む文書を検索する（２０２）。例えば、文書処理は、検索キーワードを受け取ると、圧縮処理の際に生成された複数の文書それぞれの集計結果に基づいて、中間符号状態の複数の文書から検索キーワードを含む文書を決定する。文書処理は、決定した文書に対応する中間符号状態を検索対象とする。
【００２５】
文書処理は、ファイルＡおよびファイルＢに対応するそれぞれの検索対象の文書に対応する中間符号状態を統合する（２０３）。そして、文書処理は、検索対象の文書の集計結果を抽出する。
【００２６】
文書処理は、所定のキーワードについて置換を所望する場合には、統合された中間符号状態の複数の文書に対して、所定のキーワードを置換する（２０４）。例えば、文書処理は、置換前の第１のキーワードと置換後の第２のキーワードを受け取ると、圧縮処理の際に生成された複数の文書それぞれの集計結果に基づいて、第１のキーワードの中間符号を含む中間符号状態の文書を決定する。文書処理は、決定した文書に対応する中間符号状態の第１のキーワードの中間符号を第２のキーワードの中間符号に置換する。
【００２７】
文書処理は、処理を行った結果の文書の中間符号状態について集計を行い、新たな集計結果を生成する（２０５）。そして、文書処理は、生成した集計結果、すなわち圧縮状態のファイルを活用する（２０６）。
【００２８】
これにより、文書処理は、複数のファイルにわたる検索等の処理を行う場合、圧縮の際に生成される集計結果を利用できる。また、文書処理は、中間符号状態で、検索等の処理や統合といった複数の文書に跨った処理を行うことにより、文書を伸長した未圧縮状態で行う処理と比較して少なくとも字句解析１０２がない分、Ｉ／Ｏの負荷を軽減することができ、処理を高速化できる。
【００２９】
図３は、中間符号を説明する図である。なお、中間符号表には、単語「さくら」に対して中間符号「０ｘＤ２ＡＣ３７」が対応付けられ、単語「学校」に対して中間符号「０ｘＤ１８ＦＣ５」が対応付けられ、単語「の」に対して中間符号「０ｘＥ３８２８９」が対応付けられているとする。
【００３０】
圧縮処理において、中間変換部は、未圧縮状態の文書を単語単位に分割し、分割した単語を中間符号表に基づいて中間符号化を行う。図３の例では、未圧縮状態の文書として「さくら学校の・・・」が設定されている。中間符号化部は、未圧縮状態の文書を単語単位「さくら」、「学校」、「の」・・・に分割する。中間符号化部は、中間符号表に基づいて、単語「さくら」に対して中間符号「０ｘＤ２ＡＣ３７」を対応付ける。中間符号化部は、単語「学校」に対して中間符号「０ｘＤ１８ＦＣ５」を対応付ける。中間符号化部は、単語「の」に対して中間符号「０ｘＥ３８２８９」を対応付ける。すると、中間変換部は、未圧縮状態の文書「さくら学校の・・・」を中間符号状態「０ｘＤ２ＡＣ３７  ０ｘＤ１８ＦＣ５  ０ｘＥ３８２８９」に変換する。
【００３１】
また、文書処理において、最適符号化が行われた複数の文書それぞれに対し、中間符号表に基づいて中間符号化を行うことで伸長する。図３の例では、単語「さくら」に対して圧縮符号（最適符号）「０１０・・・０１１」が対応付けられ、単語「学校」に対して圧縮符号「０１０・・・１１１」が対応付けられ、単語「の」に対して圧縮符号「０１１・・・０１」が対応付けられているとする。圧縮状態の文書として「０１０・・・０１１０１０・・・１１１０１１・・・０１・・・」が設定されている。圧縮状態の文書は、未圧縮状態の文書の圧縮状態である。文書処理は、最適符号「０１０・・・０１１」に対して中間符号「０ｘＤ２ＡＣ３７」を対応付ける。文書処理は、最適符号「０１０・・・１１１」に対して中間符号「０ｘＤ１８ＦＣ５」を対応付ける。文書処理は、最適符号「０１１・・・０１」に対して中間符号「０ｘＥ３８２８９」を対応付ける。すると、文書処理は、圧縮状態の文書「０１０・・・０１１０１０・・・１１１０１１・・・０１・・・」を中間符号状態「０ｘＤ２ＡＣ３７  ０ｘＤ１８ＦＣ５  ０ｘＥ３８２８９」に変換することで伸長する。
【００３２】
これにより、固定長の中間符号が単語と対応付けられるので、中間変換部が、文書を中間符号化すると、中間符号化された中間符号状態を字句解析結果として扱うことができる。また、固定長の中間符号が単語と対応付けられるので、文書処理が、圧縮状態の文書を完全に伸長しなくても、圧縮状態の文書を中間符号状態にすることで、中間符号状態を字句解析結果として扱うことができる。これは、中間符号状態のそれぞれの固定長の中間符号を単語と判別できるからである。
【００３３】
図４は、実施例に係る情報処理装置の構成を示す機能ブロック図である。図４に示すように、情報処理装置１は、圧縮部１０、文書処理制御部２０、伸長部３０および記憶部４０を有する。
【００３４】
圧縮部１０は、図２Ａに示した圧縮処理を実行する処理部である。文書処理制御部２０は、図２Ｂに示した文書処理を実行する処理部である。伸長部３０は、圧縮部１０によって圧縮されたデータを伸長する処理部である。
【００３５】
記憶部４０は、例えばフラッシュメモリ（Flash  Memory）やＦＲＡＭ（登録商標）（Ferroelectric  Random  Access  Memory）等の不揮発性の半導体メモリ素子等の記憶装置に対応する。記憶部４０は、静的単語辞書４１、中間符号表４２、集計情報４３および最適符号表４４を有する。
【００３６】
静的単語辞書４１は、一般的な国語辞典や教科書等を基にして文書中に出現する単語を品詞と対応付けた辞書である。静的単語辞書４１は、あらかじめ定められる。ここで、静的単語辞書４１のデータ構造を、図５を参照して説明する。
【００３７】
図５は、実施例に係る静的単語辞書のデータ構造の一例を示す図である。図５に示すように、静的単語辞書４１は、単語ＩＤ（identification）４１ａ、単語４１ｂおよび品詞等付加情報４１ｃを対応付けて記憶する。単語ＩＤ４１ａは、単語の識別子を示す。単語４１ｂは、単語そのものを示す。品詞等付加情報４１ｃは、例えば、単語の品詞を示す。一例として、単語ＩＤ４１ａが「１」である場合に、単語４１ｂとして「さくら」、品詞等付加情報４１ｃとして「名詞」を記憶する。
【００３８】
図４に戻って、中間符号表４２は、単語を中間符号に対応付けた情報である。中間符号表４２は、静的な情報であって、あらかじめ定められる。ここで、中間符号表４２のデータ構造を、図６を参照して説明する。
【００３９】
図６は、実施例に係る中間符号表のデータ構造の一例を示す図である。図６に示すように、中間符号表４２は、単語ＩＤ４２ａおよび中間符号４２ｂを対応付けて記憶する。単語ＩＤ４２ａは、単語の識別子を示す。単語ＩＤ４２ａは、静的単語辞書４１の単語ＩＤ４１ａと紐づく。中間符号４２ｂは、単語ＩＤ４２ａに対応する単語の中間符号を示す。中間符号４２ｂは、例えば固定長の３バイトで表わされる。一例として、単語ＩＤ４２ａが「１」である場合に、中間符号４２ｂとして「Ｄ２ＡＣ３７」を記憶する。単語ＩＤ４２ａが「２」である場合に、中間符号４２ｂとして「Ｄ１８ＦＣ５」を記憶する。
【００４０】
図４に戻って、集計情報４３は、文書内に含まれる各単語の出現回数を表す情報である。集計情報４３は、文書単位に管理される。集計情報４３は、図２Ａおよび図２Ｂの集計結果に対応する。ここで、集計情報４３のデータ構造を、図７を参照して説明する。
【００４１】
図７は、実施例に係る集計情報のデータ構造の一例を示す図である。図７に示すように、集計情報４３には、文書番号４３ａごとに文書に含まれる単語４３ｂの出現回数４３ｃが記憶される。文書番号４３ａには、文書の番号が設定される。単語４３ｂには、文書に含まれる単語が設定される。単語４３ｂには、単語とともに単語に対応する中間符号が設定されても良い。出現回数４３ｃには、文書番号４３ａの文書内に含まれる単語４３ｂの出現回数が設定される。出現回数４３ｃは、文書番号４３ａと単語４３ｂとで特定される位置に設定される。一例として、文書番号４３ａが「１」である場合に、単語４３ｂとして「さくら」、出現回数４３ｃとして「１」を記憶している。文書番号４３ａが「１」である場合に、単語４３ｂとして「かえで」、出現回数４３ｃとして「０」を記憶している。文書番号４３ａが「１」である場合に、単語４３ｂとして「学校」、出現回数４３ｃとして「１」を記憶している。文書番号４３ａが「１」である場合に、単語４３ｂとして「の」、出現回数４３ｃとして「１」を記憶している。
【００４２】
図４に戻って、最適符号表４４は、単語を最適な圧縮符号（以降、最適符号と同義）に対応付けた情報である。すなわち、最適符号表４４は、集計情報４３に基づいて出現頻度のより高い単語に対して、より短い圧縮符号を割り当てた情報である。最適符号表４４は、後述する圧縮部１０によって動的に生成される。ここで、最適符号表４４のデータ構造を、図８を参照して説明する。
【００４３】
図８は、実施例に係る最適符号表のデータ構造の一例を示す図である。図８に示すように、最適符号表４４は、単語ＩＤ４４ａおよび最適符号４４ｂを対応付けて記憶する。単語ＩＤ４４ａは、単語の識別子を示す。単語ＩＤ４４ａは、静的単語辞書４１の単語ＩＤ４１ａと紐づくとともに、中間符号表４２の単語ＩＤ４２ａと紐づく。最適符号４４ｂは、単語ＩＤ４２ａに対応する単語の最適符号を示す。一例として、単語ＩＤ４４ａが「１」である場合に、最適符号４４ｂとして「０１０・・・０１１」を記憶する。
【００４４】
図９は、静的単語辞書と中間符号表と最適符号表の関係を示す図である。図９に示すように、静的単語辞書４１、中間符号表４２および最適符号表４４では、静的単語辞書４１の単語４１ｂに対応付けて中間符号４２ｂおよび最適符号４４ｂが管理される。すなわち、単語４１ｂの識別子である単語ＩＤ４１ａによって単語４１ｂと中間符号４２ｂと最適符号４４ｂとが対応付けられる。一例として、単語ＩＤが「１」である場合、単語４１ｂとして「さくら」、中間符号４２ｂとして「Ｄ２ＡＣ３７」、最適符号４４ｂとして「０１０・・・０１１」が対応付けられる。なお、静的単語辞書４１、中間符号表４２および最適符号表４４は、別個に管理する場合を説明したが、これに限定されず、纏めて管理する場合であっても良い。かかる場合には、単語ＩＤに対して単語、中間符号および最適符号が１レコードに設定されれば良い。
【００４５】
図１０は、実施例に係る圧縮部の構成の一例を示す機能ブロック図である。この圧縮部１０は、中間符号生成部１１および最適符号生成部１２を有する。中間符号生成部１１は、未圧縮状態の文書の中間符号列９１を生成する。最適符号生成部１２は、中間符号状態の文書の圧縮状態を生成する。中間符号生成部１１は、字句解析部１１１、中間符号変換部１１２および単語カウント部１１３を有する。最適符号生成部１２は、最適符号割当部１２１、最適符号変換部１２２および符号情報出力部１２３を有する。
【００４６】
字句解析部１１１は、圧縮対象文書データ９０を字句解析する。圧縮対象文書データ９０は、未圧縮状態の文書のデータである。例えば、字句解析部１１１は、圧縮対象文書データ９０を入力する。字句解析部１１１は、静的単語辞書４１を参照し、入力した圧縮対象文書データ９０を字句解析する。一例として、圧縮対象文書データ９０が「さくら学校の・・・」である場合に、字句解析部１１１は、字句解析の結果として、「さくら」、「学校」、「の」に分割する。字句解析部１１１は、字句解析によって解析された単語を集計情報４３の単語４３ｂ欄に追加する。なお、字句解析部１１１は、追加する単語が集計情報４３に既に設定されている場合には、重複して当該単語を追加しない。
【００４７】
中間符号変換部１１２は、字句解析された圧縮対象文書データ９０を中間符号に変換する。例えば、中間符号変換部１１２は、中間符号表４２を参照し、圧縮対象文書データ９０が字句解析によって分割された単語ごとに、各単語を中間符号に変換する。一例として、圧縮対象文書データ９０が字句解析によって分割された単語が「さくら」、「学校」、「の」であって、中間符号表４２が図６で示す内容であるとする。中間符号変換部１１２は、中間符号表４２を参照し、単語「さくら」に対して中間符号「Ｄ２ＡＣ３７」を対応付ける。中間符号変換部１１２は、単語「学校」に対して中間符号「Ｄ１８ＦＣ５」を対応付ける。中間符号変換部１１２は、単語「の」に対して中間符号「Ｅ３８２８９」を対応付ける。そして、中間符号変換部１１２は、圧縮対象文書データ９０に対応する中間符号列９１を生成する。
【００４８】
単語カウント部１１３は、文書ごとに、中間符号の出現回数をカウントし、集計情報４３を生成する。例えば、単語カウント部１１３は、中間符号変換部１１２によって中間符号に変換された単語と文書の文書番号とで特定される出現回数４３ｃの位置に、現に設定された値を１だけ加算する。一例として、中間符号変換部１１２によって文書番号「１」の文書内の「さくら」が中間符号「Ｄ２ＡＣ３７」に変換されたとする。すると、単語カウント部１１３は、単語「さくら」と文書番号「１」とで特定される出現回数４３ｃの位置に、現に「１」が設定されていれば、「２」を設定する。
【００４９】
最適符号割当部１２１は、文書ごとに生成された集計情報４３を用いて、静的単語辞書４１に設定されたそれぞれの単語に最適符号を割り当てる。例えば、最適符号割当部１２１は、文書ごとに生成された集計情報４３をマージした統合集計情報を生成する。統合集計情報には、各単語に対して集計された出現回数が設定される。最適符号割当部１２１は、統合集計情報に基づき、静的単語辞書４１に設定されたそれぞれの単語に最適符号を割り当てる。そして、最適符号割当部１２１は、最適符号表４４を生成する。
【００５０】
最適符号変換部１２２は、最適符号表４４に基づき、圧縮対象文書データ９０の中間符号列９１の最適符号化を行う。例えば、最適符号変換部１２２は、中間符号列９１の先頭から順次中間符号を取得する。最適符号変換部１２２は、順次取得した中間符号を、最適符号表４４を参照して、最適符号に変換する。
【００５１】
符号情報出力部１２３は、圧縮対象文書データ９０の最適符号化結果および最適符号表４４を圧縮済文書データ９２として出力する。符号情報出力部１２３は、最適符号割当部１２１によって生成された集計情報４３を出力する。
【００５２】
図１１は、実施例に係る文書処理制御部の構成の一例を示す機能ブロック図である。この文書処理制御部２０は、最適符号伸長部２１、文書処理部２２および最適符号生成部２３を有する。最適符号伸長部２１は、最適符号を中間符号まで伸長し、中間符号列９３を生成する。文書処理部２２は、中間符号列９３を用いて検索等文書に対する処理を行う。最適符号生成部２３は、文書に対する処理を行った結果、中間符号状態の文書の圧縮状態を生成する。最適符号伸長部２１は、符号表展開部２１１および最適符号伸長部２１２を有する。最適符号生成部２３は、最適符号割当部２３１、最適符号変換部２３２および符号情報出力部２３３を有する。
【００５３】
符号表展開部２１１は、圧縮済文書データ９２に含まれる最適符号表４４を展開する。例えば、符号表展開部２１１は、圧縮済文書データ９２および集計情報４３を入力する。圧縮済文書データ９２および集計情報４３は、圧縮部１０によって出力された情報である。符号表展開部２１１は、圧縮済文書データ９２に含まれる最適符号表４４を、例えば記憶部４０に展開する。
【００５４】
最適符号伸長部２１２は、最適符号表４４および中間符号表４２を参照し、圧縮済文書データ９２に含まれるそれぞれの最適符号を中間符号に変換する。例えば、最適符号伸長部２１２は、圧縮済文書データ９２に含まれる最適符号化結果の先頭から所定のビット数だけ取得する。最適符号伸長部２１２は、最適符号表４４を参照し、取得したビット数のデータに含まれる最適符号４４ｂを探索し、単語ＩＤ４４ａを特定する。最適符号伸長部２１２は、中間符号表４２を参照し、特定した単語ＩＤ４４ａに対応する中間符号４２ｂを決定する。そして、最適符号伸長部２１２は、次の最適符号を探索すべく、最適符号化結果の中で合致した最適符号の次のビットから所定のビット数だけ取得し、探索処理を行い、最適符号を中間符号に変換する。そして、最適符号伸長部２１２は、圧縮済文書データ９２に対応する中間符号列９３を生成する。なお、所定のビット数は、例えば、最適符号の最大のビット数より大きいビット数であれば良い。
【００５５】
文書処理部２２は、中間符号列９３および集計情報４３を用いて、文書に対する処理を行う。例えば、文書に対する処理が検索処理である場合には、文書処理部２２は、検索キーワードを入力する。検索キーワードは、符号化されていないキーワードである。文書処理部２２は、検索キーワードが静的単語辞書４１に存在する場合には、集計情報４３を参照して、検索キーワードを含む文書を決定する。すなわち、文書処理部２２は、検索キーワードに対する出現回数４３ｂが１以上である文書番号４３ａの文書を検索結果として決定する。一例として、検索キーワードが「学校」であって、集計情報４３が図７で示す内容であるとする。文書処理部２２は、検索キーワードである「学校」に対する出現回数４３ｂが１以上である文書番号４３ａ「１」および「２」の文書を検索結果として決定する。
【００５６】
文書処理部２２は、検索キーワードが静的単語辞書４１に存在しない場合には、検索キーワードを単語や文字に分解する。検索キーワードが、一例として連結単語である場合である。文書処理部２２は、集計情報４３を参照して、分解した単語や文字を含む文書を特定する。文書処理部２２は、検索キーワードを中間符号に変換し、特定した文書の中間符号状態から、変換した検索キーワードの中間符号を含む文書を決定する。
【００５７】
文書処理部２２は、決定した文書を中間符号状態のまま統合し、統合した文書を検索結果として抽出する。文書処理部２２は、抽出した検索結果および集計情報を出力する。
【００５８】
なお、文書処理部２２は、文書に対する処理として検索処理を一例に挙げたが、これに限定しない。文書処理部２２は、文書に対する処理として置換処理であっても良い。置換処理の手順は、後述する。
【００５９】
最適符号割当部２３１は、文書ごとに生成された集計情報４３を用いて、静的単語辞書４１に設定されたそれぞれの単語に最適符号を割り当てる。なお、最適符号割当部２３１の処理は、圧縮部１０の最適符号割当部１２１の処理と同様であるので、その説明を省略する。
【００６０】
最適符号変換部２３２は、最適符号表４４に基づき、文書処理部２２によって処理された結果を示す文書データの中間符号列の最適符号化を行う。なお、最適符号変換部２３２の処理は、圧縮部１０の最適符号変換部１２２の処理と同様であるので、その説明を省略する。
【００６１】
符号情報出力部２３３は、文書処理部２２によって処理された結果を示す文書データの最適符号化結果および最適符号表４４を圧縮済文書データ９２として出力する。符号情報出力部２３３は、集計情報４３を出力する。なお、符号情報出力部２３３の処理は、圧縮部１０の符号情報出力部１２３の処理と同様である。
【００６２】
図１２は、実施例に係る伸長部の構成の一例を示す機能ブロック図である。この伸長部３０は、最適符号伸長部３１を有する。最適符号伸長部３１は、最適符号を伸長し、伸長済文書データ９５を生成する。最適符号伸長部３１は、符号表展開部３１１および最適符号伸長部３１２を有する。
【００６３】
符号表展開部３１１は、圧縮済文書データ９２に含まれる最適符号表４４を展開する。例えば、符号表展開部３１１は、圧縮済文書データ９２を入力する。圧縮済文書データ９２は、圧縮部１０または文書処理制御部２０によって出力された情報である。符号表展開部３１１は、圧縮済文書データ９２に含まれる最適符号表４４を展開する。
【００６４】
最適符号伸長部３１２は、最適符号表４４および静的単語辞書４１を参照し、圧縮済文書データ９２に含まれるそれぞれの最適符号を単語に変換する。例えば、最適符号伸長部３１２は、圧縮済文書データ９２に含まれる最適符号化結果の先頭から所定のビット数だけ取得する。最適符号伸長部３１２は、最適符号表４４を参照し、取得したビット数のデータに含まれる最適符号４４ｂを探索し、単語ＩＤ４４ａを特定する。最適符号伸長部３１２は、静的単語辞書４１を参照し、特定した単語ＩＤ４４ａに対応する単語４１ｂを決定する。そして、最適符号伸長部３１２は、次の最適符号を探索すべく、最適符号化結果の中で合致した最適符号の次のビットから所定のビット数だけ取得し、探索処理を行い、最適符号を単語に変換する。そして、最適符号伸長部３１２は、圧縮済文書データ９２に対応する伸長済文書データ９５を生成する。なお、所定のビット数は、例えば、最適符号の最大のビット数より大きいビット数であれば良い。
【００６５】
ここで、文書の統合の一例を、図１３Ａおよび図１３Ｂを参照して説明する。図１３Ａおよび図１３Ｂは、文書の統合の一例を説明する図である。図１３Ａおよび図１３Ｂでは、圧縮部１０の中間符号生成部１１が、複数の未圧縮状態の文書（圧縮対象文書データ９０）ａ、ｂの中間符号列をそれぞれ生成し、統合する場合の一例を説明する。
【００６６】
図１３Ａでは、中間符号生成部１１が、圧縮対象ごとに、同一の静的単語辞書４１と中間符号表４２を用いる場合について説明する。ここでは、静的単号辞書４１を静的単語辞書Ａとして表す。中間符号表４２を中間符号表Ａとして表す。
【００６７】
図１３Ａに示すように、字句解析部１１１が、静的単語辞書Ａを参照し、未圧縮状態の文書ａを字句解析する。中間符号変換部１１２は、中間符号表Ａを参照し、字句解析によって分割された単語ごとに、各単語を中間符号に変換する。この結果、中間符号生成部１１は、未圧縮状態の文書ａを中間符号列ａ´に変換する。
【００６８】
そして、字句解析部１１１が、静的単語辞書Ａを参照し、未圧縮状態の文書ｂを字句解析する。中間符号変換部１１２は、中間符号表Ａを参照し、字句解析によって分割された単語ごとに、各単語を中間符号に変換する。この結果、中間符号生成部１１は、未圧縮状態の文書ｂを中間符号列ｂ´に変換する。
【００６９】
そして、圧縮の際に、同一の静的単語辞書４１と中間符号表４２を用いているので、中間符号生成部１１は、中間状態のまま中間符号列を統合することが可能となる。ここでは、中間符号生成部１１は、使用した未圧縮状態の文書ａ、ｂの中間符号列ａ´、ｂ´を中間符号列ａ´＋ｂ´に統合できる。
【００７０】
図１３Ｂでは、中間符号生成部１１が、圧縮対象ごとに、異なる静的単語辞書４１と中間符号表４２を用いる場合について説明する。ここでは、各静的単号辞書４１を静的単語辞書Ａ、Ｂとして表す。各中間符号表４２を中間符号表Ａ、Ｂとして表す。
【００７１】
図１３Ｂに示すように、字句解析部１１１が、静的単語辞書Ａを参照し、未圧縮状態の文書ａを字句解析する。中間符号変換部１１２は、中間符号表Ａを参照し、字句解析によって分割された単語ごとに、各単語を中間符号に変換する。この結果、中間符号生成部１１は、未圧縮状態の文書ａを中間符号列ａ´に変換する。
【００７２】
そして、字句解析部１１１が、静的単語辞書Ｂを参照し、未圧縮状態の文書ｂを字句解析する。中間符号変換部１１２は、中間符号表Ｂを参照し、字句解析によって分割された単語ごとに、各単語を中間符号に変換する。この結果、中間符号生成部１１は、未圧縮状態の文書ｂを中間符号列ｂ´に変換する。
【００７３】
圧縮の際、文書ごとに異なる静的単語辞書４１と中間符号表４２とを用いるので、中間符号生成部１１は、静的単語辞書４１と中間符号表４２をそれぞれ統一すべく、それぞれ再構築する。すなわち、中間符号生成部１１は、静的単語辞書４１を静的単語辞書Ａ、Ｂの内容を含む辞書に再構築するとともに、中間符号表４２を中間符号表Ａ、Ｂの内容を含む表に再構築する。そして、中間符号生成部１１は、再構築された静的単語辞書４１と中間符号表４２を用いて、中間符号列ａ´を中間符号列ａ´´に再変換する。中間符号生成部１１は、再構築された静的単語辞書４１と中間符号表４２を用いて、中間符号列ｂ´を中間符号列ｂ´´に再変換する。
【００７４】
統一された静的単語辞書４１と中間符号表４２を用いるので、中間符号生成部１１は、中間状態のまま中間符号列を統合することが可能となる。ここでは、中間符号生成部１１は、使用した未圧縮状態の文書ａ、ｂの中間符号列ａ´´、ｂ´´を中間符号列ａ´´＋ｂ´´に統合できる。
【００７５】
なお、図１３Ａおよび図１３Ｂでは、圧縮の際に、圧縮部１０が、複数の未圧縮状態の文書（圧縮対象文書データ９０）ａ、ｂの中間符号列をそれぞれ生成し、中間符号状態のまま統合する場合を説明した。しかしながら、文書処理制御部２０であっても、中間状態のまま統合することができる。すなわち、文書処理制御部２０は、統一された最適符号表４４と中間符号表４２とを用いて、複数の圧縮状態の文書の中間符号列をそれぞれ生成する。文書処理制御部２０は、圧縮の際に生成される集計情報４３を用いることで、例えば検索キーワードを持つ文書を中間符号状態のまま統合することができる。
【００７６】
図１４は、実施例に係る圧縮部の処理手順を示すフローチャートである。なお、圧縮対象文書データ９０には、複数の文書が含まれているものとする。
【００７７】
図１４に示すように、圧縮部１０は、圧縮対象文書データ９０（以降、「入力データ」という）を入力する（ステップＳ１１）。圧縮部１０は、静的単語辞書４１を参照し、入力データを字句解析し（ステップＳ１２）、字句解析によって解析された単語を集計情報４３の単語４３ｂ欄に追加する。
【００７８】
圧縮部１０は、中間符号表４２を参照し、入力データを中間符号化する（ステップＳ１３）。例えば、圧縮部１０は、中間符号表４２を参照し、字句解析によって分割された単語に対して中間符号を対応付ける。そして、圧縮部１０は、入力データに対応する中間符号列９１を生成する。
【００７９】
圧縮部１０は、文書ごとに中間符号の出現回数をカウントし、集計情報４３を生成する（ステップＳ１４）。例えば、圧縮部１０は、集計情報４３に対して、中間符号に変換された単語４３ｂと文書の文書番号４３ａとで特定される出現回数４３ｃの位置に、現に設定されている値を１だけ加算する。
【００８０】
圧縮部１０は、文書ごとの集計情報４３を単語単位で集計し、最適符号の割り当てを行い、最適符号表４４を生成する（ステップＳ１５）。例えば、圧縮部１０は、文書ごとに生成された集計情報４３をマージした統合集計情報を生成する。統合集計情報には、各単語に対して集計された出現回数が設定される。圧縮部１０は、統合集計情報に基づき、静的単語辞書４１に設定されたそれぞれの単語に最適符号を割り当て、最適符号表４４を生成する。
【００８１】
圧縮部１０は、最適符号表４４に基づき、入力データに対応する中間符号列９１を最適符号化する（ステップＳ１６）。例えば、圧縮部１０は、中間符号列９１の先頭から順次中間符号を取得する。圧縮部１０は、取得した中間符号について、中間符号表４２の中間符号４２ｂに対応する単語ＩＤ４２ａを読み出す。圧縮部１０は、最適符号表４４を参照し、取得した中間符号を、単語ＩＤ４２ａに紐づく最適符号４４ｂに変換する。
【００８２】
圧縮部１０は、入力データを最適符号化した最適符号化結果および最適符号表４４を圧縮済文書データとして出力するとともに、集計情報４３を出力する（ステップＳ１７）。そして、圧縮部１０は、圧縮処理を終了する。
【００８３】
図１５は、実施例に係る文書処理制御部の処理手順を示すフローチャートである。
【００８４】
図１５に示すように、文書処理制御部２０は、圧縮済文書データ９２および集計情報４３（以降、入力データという）を入力する（ステップＳ２１）。文書処理制御部２０は、圧縮済文書データ９２から最適符号表４４を展開する（ステップＳ２２）。
【００８５】
文書処理制御部２０は、最適符号表４４および中間符号表４２を参照し、入力データを中間符号化する（ステップＳ２３）。例えば、文書処理制御部２０は、入力データに含まれる最適符号化結果の先頭から所定のビット数だけ取得する。文書処理制御部２０は、最適符号表４４を参照し、取得したビット数のデータに含まれる最適符号４４ｂを探索し、単語ＩＤ４４ａを特定する。文書処理制御部２０は、中間符号表４２を参照し、特定した単語ＩＤ４４ａに対応する中間符号４２ｂを決定する。そして、文書処理制御部２０は、最適符号化結果に対応する中間符号列９３を生成する。
【００８６】
文書処理制御部２０は、中間符号列９３および集計情報４３を用いた文書処理を行う（ステップＳ２４）。なお、中間符号列９３および集計情報４３を用いた文書処理の手順は、後述する。
【００８７】
文書処理制御部２０は、文書処理結果の集計情報４３を元に最適符号の割り当てを行い、最適符号表４４を生成する（ステップＳ２５）。例えば、文書処理制御部２０は文書処理結果の集計情報４３に基づき、静的単語辞書４１に設定されたそれぞれの単語に最適符号を割り当て、最適符号表４４を生成する。
【００８８】
文書処理制御部２０は、最適符号表４４に基づき、中間符号列９３を最適符号化する（ステップＳ２６）。例えば、文書処理制御部２０は、中間符号列９３の先頭から順次中間符号を取得する。文書処理制御部２０は、取得した中間符号について、中間符号表４２の中間符号４２ｂに対応する単語ＩＤ４２ａを読み出す。文書処理制御部２０は、最適符号表４４を参照し、取得した中間符号を、単語ＩＤ４２ａに紐づく最適符号４４ｂに変換する。
【００８９】
文書処理制御部２０は、中間符号列９３を最適符号化した最適符号化結果および最適符号表４４を圧縮済文書データとして出力するとともに、集計情報４３を出力する（ステップＳ２７）。そして、文書処理制御部２０は、文書処理制御を終了する。
【００９０】
図１６は、実施例に係る文書処理制御部の検索処理手順を示すフローチャートである。
【００９１】
図１６に示すように、文書処理制御部２０は、中間符号列９３および文書単位の集計情報４３を検索対象として設定する（ステップＳ３１）。文書処理制御部２０は、符号化されていない検索キーワードを入力する（ステップＳ３２）。文書処理制御部２０は、検索キーワードが静的単語辞書４１に存在するか否かを判定する（ステップＳ３３）。
【００９２】
文書処理制御部２０は、検索キーワードが静的単語辞書４１に存在する場合には（ステップＳ３３；Ｙｅｓ）、集計情報４３を元に検索結果となる文書を決定する（ステップＳ３４）。例えば、文書処理制御部２０は、集計情報４３を参照して、検索キーワードを含む文書を決定する。すなわち、文書処理制御部２０は、検索キーワードに対する出現回数４３ｂが１以上である文書番号４３ａの文書を検索結果として決定する。そして、文書処理制御部２０は、ステップＳ３９Ａに移行する。
【００９３】
一方、文書処理制御部２０は、検索キーワードが静的単語辞書４１に存在しない場合には（ステップＳ３３；Ｎｏ）、検索キーワードを単語や文字に分解する（ステップＳ３５）。文書処理制御部２０は、集計情報４３を元に検索結果候補となる文書を特定する（ステップＳ３６）。例えば、文書処理制御部２０は、分解した単語や文字に対する出現回数４３ｂが１以上である文書番号４３ａの文書を特定する。
【００９４】
文書処理制御部２０は、検索キーワードを中間符号に変換する（ステップＳ３７）。例えば、文書処理制御部２０は、静的単語辞書４１および中間符号表４３を参照して、検索キーワードを分解した単語や文字を中間符号に変換する。
【００９５】
文書処理制御部２０は、検索結果候補となる文書の中間符号列から検索キーワードの中間符号を含む文書を決定する（ステップＳ３８）。そして、文書処理制御部２０は、ステップＳ３９Ａに移行する。
【００９６】
ステップＳ３９Ａにおいて、文書処理制御部２０は、決定した文書の中間符号列を統合し、検索結果として抽出する（ステップＳ３９Ａ）。文書処理制御部２０は、検索結果および集計情報を出力する（ステップＳ３９Ｂ）。そして、文書処理制御部２０は、検索処理を終了する。
【００９７】
図１７は、実施例に係る文書処理制御部の置換処理手順を示すフローチャートである。
【００９８】
図１７に示すように、文書処理制御部２０は、中間符号列９３および文書単位の集計情報４３を置換対象として設定する（ステップＳ４１）。文書処理制御部２０は、符号化されていない置換キーワードを入力する（ステップＳ４２）。置換キーワードとは、置換前のキーワードと置換後のキーワードとを含む。文書処理制御部２０は、置換前のキーワードが静的単語辞書４１に存在するか否かを判定する（ステップＳ４３）。
【００９９】
文書処理制御部２０は、置換前のキーワードが静的単語辞書４１に存在する場合には（ステップＳ４３；Ｙｅｓ）、集計情報４３を元に置換対象とする文書を決定する（ステップＳ４４）。例えば、文書処理制御部２０は、集計情報４３を参照して、置換前のキーワードを含む文書を決定する。すなわち、文書処理制御部２０は、置換前のキーワードに対する出現回数４３ｂが１以上である文書番号４３ａの文書を置換対象として決定する。そして、文書処理制御部２０は、ステップＳ４９Ａに移行する。
【０１００】
一方、文書処理制御部２０は、置換前のキーワードが静的単語辞書４１に存在しない場合には（ステップＳ４３；Ｎｏ）、置換前のキーワードを単語や文字に分解する（ステップＳ４５）。文書処理制御部２０は、集計情報４３を元に置換対象候補となる文書を特定する（ステップＳ４６）。例えば、文書処理制御部２０は、分解した単語や文字に対する出現回数４３ｂが１以上である文書番号４３ａの文書を特定する。
【０１０１】
文書処理制御部２０は、置換キーワードを中間符号に変換する（ステップＳ４７）。例えば、文書処理制御部２０は、静的単語辞書４１および中間符号表４３を参照して、置換キーワードを分解した単語や文字を中間符号に変換する。
【０１０２】
文書処理制御部２０は、置換対象候補となる文書の中間符号列から置換前のキーワードの中間符号を含む文書を置換対象の文書として決定する（ステップＳ４８）。そして、文書処理制御部２０は、ステップＳ４９Ａに移行する。
【０１０３】
ステップＳ４９Ａにおいて、文書処理制御部２０は、置換対象の文書の中間符号列に対して、置換キーワードの中間符号で置換する（ステップＳ４９Ａ）。すなわち、文書処理制御部２０は、置換対象の文書の中間符号列に対して、置換前のキーワードの中間符号を置換後のキーワードの中間符号に置換する。
【０１０４】
文書処理制御部２０は、集計情報４３を変更する（ステップＳ４９Ｂ）。例えば、文書処理制御部２０は、置換対象の文書と置換前のキーワードとで特定される出現回数４３ｃを１だけ減算する。文書処理制御部２０は、置換対象の文書と置換後のキーワードとで特定される出現回数４３ｃを１だけ加算する。そして、文書処理制御部２０は、置換処理を終了する。
【０１０５】
図１８は、実施例に係る伸長部の処理手順を示すフローチャートである。
【０１０６】
図１８に示すように、伸長部３０は、圧縮済文書データ９２（以降、入力データという）を入力する（ステップＳ５１）。文書処理制御部２０は、入力データから最適符号表４４を展開する（ステップＳ５２）。
【０１０７】
伸長部３０は、最適符号表４４および静的単語辞書４１を参照し、入力データを伸長する（ステップＳ５３）。例えば、伸長部３０は、入力データに含まれる最適符号化結果の先頭から所定のビット数だけ取得する。伸長部３０は、最適符号表４４を参照し、取得したビット数のデータに含まれる最適符号４４ｂを探索し、単語ＩＤ４４ａを特定する。伸長部３０は、静的単語辞書４１を参照し、特定した単語ＩＤ４４ａに対応する単語４１ｂを決定する。そして、伸長部３０は、最適符号化結果に対応する伸長結果を生成する。そして、伸長部３０は、伸長処理を終了する。
【０１０８】
図１９Ａおよび図１９Ｂは、文書処理における用途の一例を示す図である。図１９Ａは、実施例に係る文書処理における用途の一例を示す図である。図１９Ｂでは、文書処理における用途の参考例を示す図である。図１９Ａおよび図１９Ｂのどちらも、テキストマイニングを行うために、ＨａｄｏｏｐのＨＤＦＳを実装した場合の処理である。図１９Ａでは、左図では、字句・品詞解析と頻度集計を活用の用途としている。中図では、構文解析を活用の用途としている。右図では、因果・相関分析を活用の用途としている。
【０１０９】
図１９Ａ内の「Ｍａｐ」とは、入力データを読み込み、フィルタリングする機能であり、図２Ｂで示した伸長２０１および検索／分割２０２に対応する。「Ｓｈｕｆｆｌｅ  ＆  Ｓｏｒｔ」とは、図２Ｂで示した統合２０３に対応する。「Ｒｅｄｕｃｅ」とは、統合されたデータに対して結果を出力する機能であり、集計２０５および活用２０６に対応する。
【０１１０】
図１９Ａに示すように、例えば、左図において、ＨＤＦＳには、複数の文書に対する最適符号状態と、集計結果４３が管理されている。「Ｍａｐ」において、最適符号伸長部２１は、最適符号状態の複数の文書を中間符号状態に変換する。そして、最適符号伸長部２１は、最適符号状態に対応する中間符号列９３を生成する。そして、文書処理部２２は、集計情報４３を参照して、中間符号列９３から検索キーワードを含む文書の中間符号列９３を決定する。
【０１１１】
「Ｓｈｕｆｆｌｅ  ＆  Ｓｏｒｔ」において、文書処理部２２は、決定した文書の中間符号列９３を統合する。
【０１１２】
「Ｒｅｄｕｃｅ」において、文書処理部２２は、統合した文書の中間符号列９３について集計し、集計情報４３を変更する。そして、文書処理部２２は、集計情報４３を用いて、テキストマイニングにおける字句・品詞解析と頻度集計を行う。
【０１１３】
そして、最適符号生成部２３は、集計情報４３を用いて、単語に最適な符号を割り当て、最適符号表４４を生成する。最適符号生成部２３は、生成した最適符号表４４を用いて、中間符号列９３の最適な符号化を行う。すなわち、最適符号生成部２３は、中間符号状態を最適符号状態に変換して、変換した最適符号状態と集計結果４３をＨＤＦＳに管理させる。
【０１１４】
これにより、実施例に係る文書処理は、圧縮の際に生成される集計情報４３を、複数の文書にわたる検索等の処理に利用することができる。また、実施例に係る文書処理は、中間符号状態で、検索等の処理や統合といった複数の文書に跨った処理を行うことにより、文書を伸長した未圧縮状態で行う処理と比較してＩ／Ｏの負荷を軽減することができ、処理を高速化できる。
【０１１５】
なお、図１９Ｂは、文書を伸長した未圧縮状態で文書処理を行う参考例である。図１９Ｂ内の「Ｍａｐ」とは、入力データを読み込み、フィルタリングする機能であり、図１Ｂで示した伸長１０１および字句解析１０２に対応する。「Ｓｈｕｆｆｌｅ  ＆  Ｓｏｒｔ」とは、図１Ｂで示した統合１０３に対応する。「Ｒｅｄｕｃｅ」とは、統合されたデータに対して結果を出力する機能であり、検索／分割／置換１０４、集計１０５および活用１０６に対応する。
【０１１６】
図１９Ｂに示すように、例えば、左図において、ＨＤＦＳには、複数の文書に対する最適符号状態が管理される。「Ｍａｐ」において、文書処理は、最適符号状態の複数の文書を伸長する。そして、文書処理は、伸長した複数の文書について字句解析を行う。
【０１１７】
「Ｓｈｕｆｆｌｅ  ＆  Ｓｏｒｔ」において、文書処理は、字句解析がされた複数の文書を統合する。
【０１１８】
「Ｒｅｄｕｃｅ」において、文書処理は、伸長した複数の文書にわたる検索等の処理を行う。文書処理は、検索等の処理後の複数の文書について集計し、集計情報を生成する。そして、文書処理は、集計情報を用いて、テキストマイニングにおける字句・品詞解析と頻度集計を行う。
【０１１９】
そして、文書処理は、集計情報を用いて、単語に最適な符号を割り当て、最適符号表を生成する。文書処理は、生成した最適符号表を用いて、複数の文書に対して最適な符号化を行う。すなわち、文書処理は、伸長された複数の文書を最適符号状態に変換して、変換した最適符号状態をＨＤＦＳに管理させる。
【０１２０】
このようにして、図１９Ａで示した実施例に係る文書処理は、中間符号状態で、検索等の処理や統合といった複数の文書に跨った処理を行うことにより、図１９Ｂで示した文書を伸長した未圧縮状態で行う処理と比較してＩ／Ｏの負荷を軽減することができる。この結果、実施例に係る文書処理は、処理を高速化できる。
【０１２１】
次に、本実施例に係る情報処理装置１の効果について説明する。情報処理装置１は、複数の文書から、複数の単語と中間符号群とを対応付けた中間符号表４２に基づいて、中間符号表４２に含まれる単語を変換した、複数の中間符号化文書を生成する。情報処理装置１は、複数の中間符号化文書における、中間符号化により変換された符号ごとに頻度集計を行う。情報処理装置１は、複数の中間符号化文書それぞれを、頻度集計の結果を用いた最適化符号化により変換した、複数の最適化文書を出力する。かかる構成によれば、情報処理装置１は、複数の文書に対して共通の中間符号表４２を用いて中間符号化を行い、中間符号ごとの頻度集計を行うので、例えば、複数の文書にわたる検索等の処理を行う場合に、頻度集計の結果を利用できる。
【０１２２】
また、本実施例に係る情報処理装置１によれば、複数の中間符号化文書それぞれの頻度集計の結果をマージした統合集計情報を生成する。情報処理装置１は、生成された統合集計情報に基づき、複数の中間符号化文書それぞれを最適符号化により変換し、複数の最適符号化文書を出力する。かかる構成によれば、情報処理装置１は、中間符号化がなされた複数の文書の頻度集計の結果をマージした統合集計情報を利用して最適符号化を行うことができる。
【０１２３】
また、本実施例に係る情報処理装置１によれば、中間符号表４２は、複数の単語と固定長の中間符号群とを対応付ける。情報処理装置１は、最適符号化が行われた複数の最適符号化文書それぞれに対し、中間符号表４２に基づいて中間符号化を行う。かかる構成によれば、情報処理装置１は、複数の文書それぞれに対し、固定長の中間符号化を行うので、中間符号化された符号列を字句解析結果として扱うことができる。
【０１２４】
また、本実施例に係る情報処理装置１によれば、複数の中間符号化文書から特定のキーワードを含む中間符号化文書を検索する場合に、以下の処理を行う。情報処理装置１は、複数の中間符号化文書それぞれの頻度集計の結果に基づいて、中間符号化が行われた複数の中間符号化文書の中から特定のキーワードを含む中間符号化文書を決定する。情報処理装置１は、決定した中間符号化文書に対応する中間符号化の符号列を検索する。かかる構成によれば、情報処理装置１は、複数の文書それぞれの頻度集計の結果を用いて、複数の文書の中間符号状態から特定のキーワードを含む文書を決定できるので、文書を伸長した未圧縮状態で行う処理と比較してＩ／Ｏの負荷を軽減することができる。この結果、情報処理装置１は、文書処理を高速化できる。
【０１２５】
また、本実施例に係る情報処理装置１によれば、複数の中間符号化文書の第１のキーワードを第２のキーワードに置換する場合に、複数の中間符号化文書それぞれの頻度集計の結果に基づいて、第１のキーワードを含む中間符号化文書を決定する。情報処理装置１は、決定した中間符号化文書に対応する中間符号化の符号列に対して、第１のキーワードの中間符号を第２のキーワードの中間符号に置換する。かかる構成によれば、情報処理装置１は、複数の文書の中間符号状態からキーワードを置換するので、文書を伸長した未圧縮状態で行う処理と比較してＩ／Ｏの負荷を軽減することができる。この結果、情報処理装置１は、文書処理を高速化できる。
【０１２６】
また、本実施例に係る情報処理装置１によれば、検索する処理によって検索された中間符号化文書の符号列または置換する処理によって置換された中間符号化文書の符号列を統合する。情報処理装置１は、統合された中間符号化文書を含む複数の中間符号化文書における頻度集計の結果を更新する。かかる構成によれば、情報処理装置１は、文書処理対象の文書を中間符号状態で統合し、中間符号状態のまま頻度集計の結果を更新するので、文書処理を高速化できる。
【０１２７】
［情報処理装置のハードウェア構成］
図２０は、情報処理装置のハードウェア構成の一例を示す図である。図２０に示すように、コンピュータ５００は、各種演算処理を実行するＣＰＵ５０１と、ユーザからのデータ入力を受け付ける入力装置５０２と、モニタ５０３とを有する。また、コンピュータ５００は、記憶媒体からプログラムなどを読み取る媒体読取装置５０４と、他の装置と接続するためのインターフェース装置５０５と、他の装置と無線により接続するための無線通信装置５０６とを有する。また、コンピュータ５００は、各種情報を一時記憶するＲＡＭ（Random  Access  Memory）５０７と、ハードディスク装置５０８とを有する。また、各装置５０１〜５０８は、バス５０９に接続される。
【０１２８】
ハードディスク装置５０８には、図４に示した圧縮部１０、文書処理制御部２０および伸長部３０と同様の機能を有する文書処理プログラムが記憶される。また、ハードディスク装置５０８には、文書処理プログラムを実現するための各種データが記憶される。各種データには、図４に示した記憶部４０内のデータが含まれる。
【０１２９】
ＣＰＵ５０１は、ハードディスク装置５０８に記憶された各プログラムを読み出して、ＲＡＭ５０７に展開して実行することで、各種の処理を行う。これらのプログラムは、コンピュータ５００を図４に示した各機能部として機能させることができる。
【０１３０】
なお、上記の文書処理プログラムは、必ずしもハードディスク装置５０８に記憶されている必要はない。例えば、コンピュータ５００が読み取り可能な記憶媒体に記憶されたプログラムを、コンピュータ５００が読み出して実行するようにしてもよい。コンピュータ５００が読み取り可能な記憶媒体は、例えば、ＣＤ−ＲＯＭやＤＶＤディスク、ＵＳＢ（Universal  Serial  Bus）メモリなどの可搬型記録媒体、フラッシュメモリなどの半導体メモリ、ハードディスクドライブなどが対応する。また、公衆回線、インターネット、ＬＡＮ（Local  Area  Network）などに接続された装置にこのプログラムを記憶させておき、コンピュータ５００がこれらからプログラムを読み出して実行するようにしても良い。
【０１３１】
以上の各実施例を含む実施形態に関し、さらに以下の付記を開示する。
【０１３２】
（付記１）コンピュータに、
複数の文書から、複数の単語と第１の符号群とを対応付けた第１の符号化情報に基づいて、前記第１の符号化情報に含まれる単語を変換した、複数の第１符号化文書を生成し、
前記複数の第１符号化文書における、前記第１の符号化により変換された符号ごとに頻度集計を行い、
前記複数の第１符号化文書それぞれを、前記頻度集計の結果を用いた第２の符号化により変換した、複数の第２符号化文書を出力する、
処理を実行させることを特徴とする文書処理プログラム。
【０１３３】
（付記２）前記出力する処理は、前記複数の第１符号化文書それぞれの頻度集計の結果をマージした統合集計情報を生成し、生成された統合集計情報に基づき、複数の第１符号化文書それぞれを第２の符号化により変換し、複数の第２符号化文書を出力する
処理を実行させることを特徴とする付記１に記載の文書処理プログラム。
【０１３４】
（付記３）前記第１の符号化情報は、複数の単語と固定長の第１の符号群とを対応付け、
前記第２の符号化が行われた前記複数の第２符号化文書それぞれに対し、前記第１の符号化情報に基づいて前記第１の符号化を行う
処理を実行させることを特徴とする付記１または付記２に記載の文書処理プログラム。
【０１３５】
（付記４）複数の第１符号化文書から特定のキーワードを含む第１符号化文書を検索する場合に、前記複数の第１符号化文書それぞれの頻度集計の結果に基づいて、前記第１の符号化が行われた前記複数の第１符号化文書の中から前記特定のキーワードを含む第１符号化文書を決定し、
決定した第１符号化文書に対応する前記第１の符号化の符号列を検索する
処理を実行させることを特徴とする付記３に記載の文書処理プログラム。
【０１３６】
（付記５）複数の第１符号化文書の第１のキーワードを第２のキーワードに置換する場合に、前記複数の第１符号化文書それぞれの頻度集計の結果に基づいて、前記第１のキーワードを含む第１符号化文書を決定し、
決定した第１符号化文書に対応する前記第１の符号化の符号列に対して、前記第１のキーワードの第１の符号を前記第２のキーワードの第１の符号に置換する
処理を実行させることを特徴とする付記３に記載の文書処理プログラム。
【０１３７】
（付記６）前記検索する処理によって検索された第１符号化文書に対応する前記第１の符号化の符号列または前記置換する処理によって置換された第１符号化文書に対応する前記第１の符号化の符号列を統合し、
前記統合する処理によって統合された第１符号化文書を含む前記複数の第１符号化文書における前記頻度集計の結果を更新する
処理を実行させることを特徴とする付記４または付記５に記載の文書処理プログラム。
【０１３８】
（付記７）複数の文書から、複数の単語と第１の符号群とを対応付けた第１の符号化情報に基づいて、前記第１の符号化情報に含まれる単語を変換した、複数の第１符号化文書を生成する第１符号化部と、
前記複数の第１符号化文書における、前記第１の符号化により変換された符号ごとに頻度集計を行う集計部と、
前記第１符号化部により生成された複数の第１符号化文書それぞれを、前記頻度集計の結果を用いた第２の符号化により変換した、複数の第２符号化文書を出力する第２符号化部と、
を有することを特徴とする情報処理装置。
【０１３９】
（付記８）コンピュータが、
複数の文書から、複数の単語と第１の符号群とを対応付けた第１の符号化情報に基づいて、前記第１の符号化情報に含まれる単語を変換した、複数の第１符号化文書を生成し、
前記複数の第１符号化文書における、前記第１の符号化により変換された符号ごとに頻度集計を行い、
前記複数の第１符号化文書それぞれを、前記頻度集計の結果を用いた第２の符号化により変換した、複数の第２符号化文書を出力する
各処理を実行することを特徴とする文書処理方法。
【符号の説明】
【０１４０】
１  情報処理装置
１０  圧縮部
１１  中間符号生成部
１１１  字句解析部
１１２  中間符号変換部
１１３  単語カウント部
１２  最適符号生成部
１２１  最適符号割当部
１２２  最適符号変換部
１２３  符号情報出力部
２０  文書処理制御部
２１  最適符号伸長部
２１１  符号表展開部
２１２  最適符号伸長部
２２  文書処理部
２３  最適符号生成部
２３１  最適符号割当部
２３２  最適符号変換部
２３３  符号情報出力部
３０  伸長部
３１  最適符号伸長部
３１１  符号表展開部
３１２  最適符号伸長部
４０  記憶部
４１  静的単語辞書
４２  中間符号表
４３  集計情報
４４  最適符号表
【図１Ａ】
0006467937.tif 000002
【図１Ｂ】
0006467937.tif 000003
【図２Ａ】
0006467937.tif 000004
【図２Ｂ】
0006467937.tif 000005
【図３】
0006467937.tif 000006
【図４】
0006467937.tif 000007
【図５】
0006467937.tif 000008
【図６】
0006467937.tif 000009
【図７】
0006467937.tif 000010
【図８】
0006467937.tif 000011
【図９】
0006467937.tif 000012
【図１０】
0006467937.tif 000013
【図１１】
0006467937.tif 000014
【図１２】
0006467937.tif 000015
【図１３Ａ】
0006467937.tif 000016
【図１３Ｂ】
0006467937.tif 000017
【図１４】
0006467937.tif 000018
【図１５】
0006467937.tif 000019
【図１６】
0006467937.tif 000020
【図１７】
0006467937.tif 000021
【図１８】
0006467937.tif 000022
【図１９Ａ】
0006467937.tif 000023
【図１９Ｂ】
0006467937.tif 000024
【図２０】
0006467937.tif 000025