(57)【要約】【課題】演算コストを小さくする。【解決手段】複数の文書から複数のサンプル文書を選択する選択部と、複数のサンプル文書を解析することにより、複数のサンプル文書に含まれる複数の単語のそれぞれ毎の複数のトピックのそれぞれに含まれる確率を表す初期パラメータ行列を生成する第１パラメータ生成部と、初期パラメータ行列に含まれる各値を初期値として複数の文書を解析することにより、複数の文書に含まれる複数の単語のそれぞれ毎の複数のトピックのそれぞれに含まれる確率を表すパラメータ行列を生成する第２パラメータ生成部と、を備える装置を提供する。【選択図】図１
2015004996.tif 000002
【特許請求の範囲】
【請求項１】
複数の文書から複数のサンプル文書を選択する選択部と、
前記複数のサンプル文書を解析することにより、前記複数のサンプル文書に含まれる複数の単語のそれぞれ毎の複数のトピックのそれぞれに含まれる確率を表す初期パラメータ行列を生成する第１パラメータ生成部と、
前記初期パラメータ行列に含まれる各値を初期値として前記複数の文書を解析することにより、前記複数の文書に含まれる複数の単語のそれぞれ毎の複数のトピックのそれぞれに含まれる確率を表すパラメータ行列を生成する第２パラメータ生成部と、
を備える装置。
【請求項２】
前記第１パラメータ生成部および前記第２パラメータ生成部は、潜在的ディリクレ配分法により前記初期パラメータ行列および前記パラメータ行列を生成する
請求項１に記載の装置。
【請求項３】
前記第２パラメータ生成部は、
前記複数の文書を複数のグループに分割する分割部と、
前記複数のグループのそれぞれに対応して設けられ、前記初期パラメータ行列の各値を初期値として対応するグループに含まれる複数の文書を解析することにより、対応するグループに含まれる複数の文書に含まれる複数の単語のそれぞれ毎の複数のトピックのそれぞれに含まれる確率を表す要素パラメータ行列を生成する複数の要素パラメータ生成部と、
複数の前記要素パラメータ行列を合成して前記パラメータ行列を生成する合成部と、
を有する請求項１または２に記載の装置。
【請求項４】
前記分割部は、
前記初期パラメータ行列に基づき前記複数の文書を複数のクラスタにクラスタリングするプリクラスタリング部と、
前記複数のクラスタのそれぞれの文書を前記複数のグループのそれぞれに分配する分配部と、
を含む請求項３に記載の装置。
【請求項５】
前記分配部は、前記初期パラメータ行列に基づき前記複数の文書をクラスタリングした複数のクラスタのそれぞれがグループ間において均一の比率で含まれるように、前記複数の文書を前記複数のグループに分配する
請求項４に記載の装置。
【請求項６】
前記合成部は、算出した前記パラメータ行列を前記複数の要素パラメータ生成部のそれぞれにフィードバックし、
前記複数の要素パラメータ生成部のそれぞれは、フィードバックされた前記パラメータ行列の各値を初期値として対応するグループに含まれる複数の文書を解析することにより、前記要素パラメータ行列を再度生成し、
前記合成部は、フィードバックされた前記パラメータ行列の各値を初期値として生成された複数の前記要素パラメータ行列を合成して、前記パラメータ行列を再度生成する
請求項３から５の何れか１項に記載の装置。
【請求項７】
前記合成部は、算出した前記パラメータ行列を前記分割部にフィードバックし、
前記分割部は、フィードバックされた前記パラメータ行列に基づき前記複数の文書をクラスタリングした複数のクラスタのそれぞれがグループ間において均一の比率で含まれるように、前記複数の文書を前記複数のグループに再度分割し、
前記複数の要素パラメータ生成部のそれぞれは、再度分割された対応するグループに含まれる複数の文書を解析することにより、前記要素パラメータ行列を生成する
請求項６に記載の装置。
【請求項８】
前記第２パラメータ生成部は、前記初期パラメータ行列に含まれないトピックを含む前記パラメータ行列を生成する
請求項１または２に記載の装置。
【請求項９】
前記第２パラメータ生成部は、前記初期パラメータ行列に含まれないトピックについての初期値を、前記初期パラメータ行列に含まれる複数のトピックについての初期値の平均より小さくして前記複数の文書を解析することにより、前記パラメータ行列を生成する
請求項８に記載の装置。
【請求項１０】
前記第２パラメータ生成部は、前記初期パラメータ行列に含まれない単語についての初期値を、前記初期パラメータ行列に含まれる複数の単語についての初期値の平均より小さくして前記複数の文書を解析することにより、前記パラメータ行列を生成する
請求項８または９に記載の装置。
【請求項１１】
サンプル文書の選択数を段階的に大きくしながら複数回設定する設定部を更に備え、
前記選択部は、前記選択数の設定毎に、前記複数の文書から前記選択数のサンプル文書を選択し、
前記第１パラメータ生成部は、前記選択数の設定毎に、選択された前記複数のサンプル文書を解析することにより前記初期パラメータを生成するとともに、２回目以降の前記選択数の設定において、直前に生成された前記初期パラメータ行列に含まれる各値を初期値として、選択された前記複数のサンプル文書を解析することにより前記初期パラメータ行列を生成し、
前記第２パラメータ生成部は、予め定められた回数分前記選択数を設定して生成された前記初期パラメータ行列に含まれる各値を初期値として前記複数の文書を解析することにより、前記パラメータ行列を生成する
請求項１に記載の装置。
【請求項１２】
前記第２パラメータ生成部が生成した前記パラメータ行列に基づき、前記複数の文書をクラスタリングするクラスタリング部を更に備える請求項１に記載の装置。
【請求項１３】
複数の文書をクラスタリングする装置であって、
前記複数の文書から複数のサンプル文書を選択する選択部と、
前記複数のサンプル文書を解析することにより、前記複数のサンプル文書に含まれる複数の単語のそれぞれ毎の複数のトピックのそれぞれに含まれる確率を表すパラメータ行列を生成するパラメータ生成部と、
前記パラメータ行列に基づき前記複数の文書を複数のクラスタにクラスタリングするクラスタリング部と、
を備える装置。
【請求項１４】
コンピュータを請求項１に記載の装置として機能させるためのプログラム。
【請求項１５】
コンピュータを請求項１３に記載の装置として機能させるためのプログラム。
【請求項１６】
複数の文書から複数のサンプル文書を選択する選択ステップと、
前記複数のサンプル文書を解析することにより、前記複数のサンプル文書に含まれる複数の単語のそれぞれ毎の複数のトピックのそれぞれに含まれる確率を表す初期パラメータ行列を生成する第１パラメータ生成ステップと、
前記初期パラメータ行列に含まれる各値を初期値として前記複数の文書を解析することにより、前記複数の文書に含まれる複数の単語のそれぞれ毎の複数のトピックのそれぞれに含まれる確率を表すパラメータ行列を生成する第２パラメータ生成ステップと、
を有する方法。
【請求項１７】
複数の文書をクラスタリングする方法であって、
前記複数の文書から複数のサンプル文書を選択する選択ステップと、
前記複数のサンプル文書を解析することにより、前記複数のサンプル文書に含まれる複数の単語のそれぞれ毎の複数のトピックのそれぞれに含まれる確率を表すパラメータ行列を生成する第１パラメータ生成ステップと、
前記パラメータ行列に基づき、前記複数の文書を複数のクラスタにクラスタリングするクラスタリングステップと、
を有する方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、複数の文書をクラスタリングする装置、プログラムおよび方法に関する。
【背景技術】
【０００２】
例えばクラスタリングをするために複数の文書の集合（文書集合）を解析するアルゴリズムとして、ＬＤＡ（潜在的ディリクレ配分法）が知られている（例えば、非特許文献１を参照）。
［先行技術文献］
［非特許文献］
［非特許文献１］  David M. Blei, Andrew Y. Ng, Michael I. Jordan, "Latent Dirichlet Allocation", [online], ［平成２４年２月１日検索］, インターネット<URL:http://www.cs.princeton.edu/~blei/papers/BleiNgJordan2003.pdf>
［非特許文献２］  Yi Wang, Hongjie Bai, Matt Stanton,Wen-Yen Chen, Edward Y. Chang, "Parallel Latent Dirichlet Allocation for Large-scale Applications", [online], ［平成２４年２月１日検索］, インターネット<URL:http://code.google.com/p/plda/downloads/detail?name=aaim.pdf>
［非特許文献３］  William Chang, Abijit Bej, "PARALLELIZING LDA USING HADOOP MAP-REDUCE", [online], ［平成２４年２月１日検索］, インターネット<URL:http://www-scf.usc.edu/~abej/parallelizing_lda.pdf>
【発明の概要】
【発明が解決しようとする課題】
【０００３】
ＬＤＡにより文書集合を解析する場合、コンピュータは、解析対象である文書集合に含まれる単語数の２乗以上の処理ステップを実行しなければならない。従って、例えばネットワーク上に存在する数千万、数億といったオーダーの数の文書を含む文書集合をＬＤＡにより解析することは非常に困難であった。
【０００４】
また、ＬＤＡの処理を分散処理環境により並列実行することも知られている（例えば、非特許文献２および非特許文献３を参照）。しかしながら、このような分散処理環境によりＬＤＡの処理を並列化したとしても、数千万、数億といったオーダーの数の文書を含む文書集合を解析することは困難であった。
【課題を解決するための手段】
【０００５】
本発明の第１の態様においては、複数の文書から複数のサンプル文書を選択する選択部と、前記複数のサンプル文書を解析することにより、前記複数のサンプル文書に含まれる複数の単語のそれぞれ毎の複数のトピックのそれぞれに含まれる確率を表す初期パラメータ行列を生成する第１パラメータ生成部と、前記初期パラメータ行列に含まれる各値を初期値として前記複数の文書を解析することにより、前記複数の文書に含まれる複数の単語のそれぞれ毎の複数のトピックのそれぞれに含まれる確率を表すパラメータ行列を生成する第２パラメータ生成部と、を備える装置、このような装置としてコンピュータを機能させるためのプログラム、および、方法を提供する。
【０００６】
本発明の第２の態様においては、複数の文書をクラスタリングする装置であって、前記複数の文書から複数のサンプル文書を選択する選択部と、前記複数のサンプル文書を解析することにより、前記複数のサンプル文書に含まれる複数の単語のそれぞれ毎の複数のトピックのそれぞれに含まれる確率を表すパラメータ行列を生成するパラメータ生成部と、前記パラメータ行列に基づき前記複数の文書を複数のクラスタにクラスタリングするクラスタリング部と、を備える装置、このような装置としてコンピュータを機能させるためのプログラム、および、方法を提供する。
【０００７】
なお、上記の発明の概要は、本発明の必要な特徴の全てを列挙したものではない。また、これらの特徴群のサブコンビネーションもまた、発明となりうる。
【図面の簡単な説明】
【０００８】
【図１】図１は、実施形態に係るクラスタリング装置１０の機能構成を示す。
【図２】図２は、実施形態に係るクラスタリング装置１０の処理フローを示す。
【図３】図３は、実施形態に係るクラスタリング装置１０でのパラメータ行列βｉｊに対する処理例を示す。
【図４】図４は、実施形態の第１変形例に係るクラスタリング装置１０の機能構成を示す。
【図５】図５は、第１変形例に係るクラスタリング装置１０の処理フローを示す。
【図６】図６は、第１変形例に係るクラスタリング装置１０でのパラメータ行列βｉｊに対する処理例を示す。
【図７】図７は、実施形態の第２変形例に係るクラスタリング装置１０の機能構成を示す。
【図８】図８は、ＬＤＡの処理を実現するためにコンピュータに実行させるプログラムコード例を示す。
【図９】図９は、実施形態に係るコンピュータ１９００のハードウェア構成の一例を示す。
【発明を実施するための形態】
【０００９】
以下、発明の実施の形態を通じて本発明を説明するが、以下の実施形態は特許請求の範囲にかかる発明を限定するものではない。また、実施形態の中で説明されている特徴の組み合わせの全てが発明の解決手段に必須であるとは限らない。
【００１０】
図１は、実施形態に係るクラスタリング装置１０の機能構成を示す。本実施形態に係るクラスタリング装置１０は、テキストの複数の文書の集合（文書集合）を内容が近似した複数の文書の小集合（クラスタ）にクラスタリングする。
【００１１】
クラスタリング装置１０は、文書取得部２２と、選択部２４と、サンプル記憶部２６と、第１パラメータ生成部２８と、第２パラメータ生成部３０と、クラスタリング部３２とを備える。このようなクラスタリング装置１０は、プログラムを実行するコンピュータにより実現される。
【００１２】
文書取得部２２は、記憶装置またはネットワーク上のサーバ等から、クラスタリングの対象となる文書集合を取得する。文書取得部２２は、単語の検索等ができるように予め構造化されている文書を含む文書集合を取得する。文書取得部２２は、構造化されていない文書が含まれる場合には、当該文書を辞書を参照して構造化してもよい。
【００１３】
選択部２４は、文書取得部２２が取得した文書集合から複数のサンプル文書を選択する。選択部２４は、一例として、ランダムにサンプル文書を選択する。また、選択部２４は、一例として、予め設定された数のサンプル文書を選択する。
【００１４】
サンプル記憶部２６は、選択部２４が選択した複数のサンプル文書を記憶する。サンプル記憶部２６は、文書が記憶されている場所を示すリンクを記憶してもよい。
【００１５】
第１パラメータ生成部２８は、サンプル記憶部２６に記憶された複数のサンプル文書をＬＤＡ（潜在的ディリクレ配分法）により解析することにより、複数のサンプル文書に含まれる複数の単語のそれぞれ毎の複数のトピックのそれぞれに含まれる確率を表す初期パラメータ行列を生成する。なお、初期パラメータ行列は、ＬＤＡによる解析結果として算出されるパラメータ行列βに対応する。なお、ＬＤＡの解析アルゴリズムおよびパラメータ行列βの内容等については、詳細を後述する。
【００１６】
第１パラメータ生成部２８は、ＬＤＡにより複数のサンプル文書を解析する場合において、パラメータの初期値として、予め定められた値またはランダムに設定された値を用いる。また、第１パラメータ生成部２８は、複数のサンプル文書に含まれるトピックの数として、ユーザ等により予め設定された値を用いる。
【００１７】
第２パラメータ生成部３０は、文書取得部２２が取得した文書集合をＬＤＡにより解析することにより、文書集合に含まれる複数の単語のそれぞれ毎の複数のトピックのそれぞれに含まれる確率を表すパラメータ行列を生成する。なお、パラメータ行列は、ＬＤＡによる解析結果として算出されるパラメータ行列βに対応する。
【００１８】
ここで、第２パラメータ生成部３０は、ＬＤＡにより文書集合を解析する場合において、パラメータの初期値として、第１パラメータ生成部２８が生成した初期パラメータ行列に含まれる各値を用いる。また、第２パラメータ生成部３０は、文書集合に含まれるトピックの数として、ユーザ等により予め設定された値を用いる。この場合において、第２パラメータ生成部３０は、第１パラメータ生成部２８がＬＤＡにより複数のサンプル文書を解析する場合に用いたトピック数よりも多いトピック数を用いてもよい。
【００１９】
クラスタリング部３２は、第２パラメータ生成部３０が生成したパラメータ行列に基づき、文書取得部２２が取得した文書集合を複数のクラスタにクラスタリングする。さらに、クラスタリング部３２は、第２パラメータ生成部３０が生成したパラメータ行列に基づき、文書取得部２２が取得した文書集合を階層化してもよい。また、クラスタリング部３２は、第２パラメータ生成部３０が生成したパラメータ行列に基づき、文書取得部２２が取得した文書集合から、入力した文字または文章に近似する文書を検索する検索処理を実行してもよい。
【００２０】
図２は、実施形態に係るクラスタリング装置１０の処理フローを示す。本実施形態に係るクラスタリング装置１０は、以下のステップＳ１１からステップＳ１４の処理を実行することにより、文書集合を複数のクラスタにクラスタリングする。
【００２１】
まず、ステップＳ１１において、クラスタリング装置１０の選択部２４は、クラスタリングの対象となる文書集合から、予め設定された数の複数のサンプル文書をランダムに選択する。なお、選択部２４は、サンプル文書の選択数として、予め定められた期間内にＬＤＡの処理が完了する程度であって、文書集合の全体におけるトピックに対する単語の出現頻度が推定できる程度の数が設定される。
【００２２】
続いて、ステップＳ１２において、クラスタリング装置１０の第１パラメータ生成部２８は、選択部２４が選択した複数のサンプル文書をＬＤＡにより解析して、初期パラメータ行列を生成する。この場合において、第１パラメータ生成部２８は、パラメータの初期値として、予め定められた値またはランダムに設定された値をＬＤＡによる解析をする。
【００２３】
続いて、ステップＳ１３において、クラスタリング装置１０の第２パラメータ生成部３０は、文書取得部２２が取得した文書集合をＬＤＡにより解析して、パラメータ行列を生成する。この場合において、第２パラメータ生成部３０は、パラメータの初期値として、ステップＳ１２で第１パラメータ生成部２８が生成した初期パラメータ行列の各値を用いる。
【００２４】
なお、文書集合に含まれる全ての単語のうち、複数のサンプル文書には含まれない単語が存在する場合がある。この場合、第２パラメータ生成部３０が生成するパラメータ行列に、第１パラメータ生成部２８が生成した初期パラメータ行列には含まれない新たな単語についての値が含まれる。このような場合において、第２パラメータ生成部３０は、一例として、初期パラメータ行列に含まれない単語についての初期値を、初期パラメータ行列に含まれる複数の単語についての初期値よりも相対的に小さくして文書集合をＬＤＡにより解析することにより、パラメータ行列を生成する。
【００２５】
例えば、第２パラメータ生成部３０は、第１パラメータ生成部２８が生成した初期パラメータ行列に含まれない単語についての初期値を、初期パラメータ行列に含まれる複数の単語についての初期値の平均より小さくしたランダムな値とする。これにより、第２パラメータ生成部３０は、複数のサンプル文書を解析して得られた結果の寄与度を大きくした初期値を用いるので、ＬＤＡの処理が収束するまでの演算コストを小さくすることができる。
【００２６】
また、第２パラメータ生成部３０は、第１パラメータ生成部２８が生成した初期パラメータ行列に含まれないトピックを含むパラメータ行列を生成してもよい。この場合において、第２パラメータ生成部３０は、初期パラメータ行列に含まれないトピックについての初期値を、初期パラメータ行列に含まれる複数のトピックについての初期値よりも相対的に小さくして文書集合をＬＤＡにより解析することにより、パラメータ行列を生成する。
【００２７】
例えば、第２パラメータ生成部３０は、初期パラメータ行列に含まれないトピックについての初期値を、初期パラメータ行列に含まれる複数のトピックについての初期値の平均より小さくしたランダムな値とする。これにより、第２パラメータ生成部３０は、複数のサンプル文書を解析して得られた結果の寄与度を大きくした初期値を用いるので、ＬＤＡの処理が収束するまでの演算コストを小さくすることができる。
【００２８】
続いて、ステップＳ１４において、クラスタリング装置１０のクラスタリング部３２は、第２パラメータ生成部３０が生成したパラメータ行列に基づき、文書取得部２２が取得した文書集合を複数のクラスタにクラスタリングする。クラスタリング部３２は、一例として、文書集合に含まれる文書のそれぞれについて、第２パラメータ生成部３０が生成したパラメータ行列に基づき、当該文書における複数のトピックの出現確率を表す文書ベクトルを生成する。そして、クラスタリング部３２は、一例として、文書ベクトルが互いに近似する一群の文書を同一のクラスタに含めるように、文書集合を複数のクラスタにクラスタリングする。
【００２９】
クラスタリング装置１０は、以上の処理を実行することにより、テキストの複数の文書（文書集合）を複数のクラスタにクラスタリングすることができる。
【００３０】
図３は、実施形態に係るクラスタリング装置１０でのパラメータ行列βｉｊに対する処理例を示す。ＬＤＡにおいて、パラメータ行列βｉｊは、トピックｉに単語ｊが出現する確率を表す。パラメータ行列βｉｊは、文書集合に含まれる全ての単語のそれぞれおよび予め設定された数のトピックのそれぞれをインデックスとした行列である。
【００３１】
また、ｉは、文書集合に含まれるトピックのインデックス（１から文書集合全体のトピック数までの整数）を表す。また、ｊは、文書集合に含まれる単語のインデックス（１から文書集合に含まれる単語数までの整数）を表す。
【００３２】
また、ＬＤＡを実行する場合、コンピュータは、単語およびトピックの組み合わせを順次に変更しながらパラメータ行列βｉｊの各値を更新する演算処理を実行する。さらに、コンピュータは、全ての単語および全てのトピックについて演算処理を実行した後にパラメータ行列βｉｊが一定の値に収束したか否かを判定し、一定の値に収束していなければ同一の処理を繰り返す。ｔは、コンピュータによるこのような繰り返し処理の回数を表す。また、βｔは、ｔ回繰り返し処理がされた後のβを表す。
【００３３】
クラスタリング装置１０は、まず、文書集合の一部分である複数のサンプル文書に対してＬＤＡを実行して、初期パラメータ行列βｉｊｐを生成する。続いて、クラスタリング装置１０は、文書集合の全体に対してＬＤＡを実行して、パラメータ行列βｉｊを生成する。
【００３４】
ここで、ＬＤＡを実行する場合、コンピュータは、文書毎に処理を実行する。このため、ＬＤＡを実行することによる演算コストは、対象となる文書の数が少ないほど小さくなる。従って、クラスタリング装置１０によれば、初期パラメータ行列βｉｊｐを生成するための演算コストを、パラメータ行列βｉｊを生成するための演算コストと比較して小さくすることができる。
【００３５】
また、クラスタリング装置１０は、複数のサンプル文書に対してＬＤＡを実行する場合には、初期パラメータ行列βｉｊの初期値として、例えば予め定められた値またはランダムに設定された値を用いる。これに対して、クラスタリング装置１０は、文書集合の全体に対してＬＤＡを実行する場合には、パラメータ行列βｉｊの初期値として、サンプル文書に対してＬＤＡを実行した結果である初期パラメータ行列βｉｊｐの各値を用いる。
【００３６】
ここで、ＬＤＡを実行する場合、コンピュータは、各文書の処理において、パラメータ行列βｉｊが一定の値に収束するまで演算処理を繰り返す。この繰り返し回数は、初期値が最終値に近いほど少なくなる。このため、ＬＤＡを実行することによる演算コストは、パラメータ行列βｉｊの初期値が最終値に近いほど小さくなる。
【００３７】
クラスタリング装置１０は、文書集合の全体に対してＬＤＡを実行する場合において、パラメータ行列βｉｊの初期値として、最終的に収束した値に近いと推定される初期パラメータ行列βｉｊｐの各値を用いる。従って、クラスタリング装置１０は、文書集合の全体に対してＬＤＡを実行する場合の演算コストを小さくすることができる。
【００３８】
このように、本実施形態に係るクラスタリング装置１０によれば、複数のサンプル文書に対してＬＤＡを実行するので演算コストが増加する一方で、収束した値に近い値を含むパラメータ行列βｉｊを初期値として文書集合に対してＬＤＡを実行するので演算コストを減少させることができる。従って、クラスタリング装置１０によれば、サンプル文書の選択数を適切に設定することにより、増加する演算コストよりも、減少する演算コストを大きくして、全体として演算コストを低下させることができる。この結果、本実施形態に係るクラスタリング装置１０によれば、例えば、膨大な文書を含む文書集合に対してＬＤＡを実行してクラスタリングをすることができる。
【００３９】
図４は、実施形態の第１変形例に係るクラスタリング装置１０の機能構成を示す。本変形例に係るクラスタリング装置１０は、図１に示したクラスタリング装置１０と略同一の構成および機能を採るので、図１に示したクラスタリング装置１０が備える構成要素と略同一の構成および機能の構成要素に同一の符号を付け、以下相違点を除き説明を省略する。
【００４０】
クラスタリング装置１０は、文書取得部２２と、選択部２４と、サンプル記憶部２６と、第１パラメータ生成部２８と、分割部４０と、グループ記憶部４２と、第２パラメータ生成部３０と、クラスタリング部３２とを備える。
【００４１】
分割部４０は、文書取得部２２が取得した文書集合を複数のグループに分割する。分割部４０は、一例として、プリクラスタリング部５２と、プリクラスタ記憶部５４と、分配部５６とを有する。
【００４２】
プリクラスタリング部５２は、第１パラメータ生成部２８が生成した初期パラメータ行列に基づき、文書取得部２２が取得した文書集合を複数のクラスタにクラスタリングする。プリクラスタ記憶部５４は、プリクラスタリング部５２がクラスタリングした複数のクラスタを記憶する。プリクラスタ記憶部５４は、対応する文書が記憶されている場所を示すリンクを記憶してもよい。
【００４３】
分配部５６は、プリクラスタ記憶部５４に記憶された複数のクラスタのそれぞれから文書を選択して、複数のグループのそれぞれに分配する。より具体的には、分配部５６は、初期パラメータ行列に基づき文書集合をクラスタリングした複数のクラスタのそれぞれがグループ間において均一の比率で含まれるように、文書集合を複数のグループに分配する。これにより、分配部５６は、ＬＤＡを実行した結果が互いに近似する複数のグループを生成することができる。
【００４４】
グループ記憶部４２は、分割部４０が分割した複数のグループのそれぞれを記憶する。グループ記憶部４２は、一例として、対応する文書が記憶されている場所を示すリンクを記憶してもよい。
【００４５】
第２パラメータ生成部３０は、複数の要素パラメータ生成部６０と、合成部６２とを有する。複数の要素パラメータ生成部６０のそれぞれは、分割部４０が分割した複数のグループのそれぞれに対応して設けられる。
【００４６】
複数の要素パラメータ生成部６０のそれぞれは、対応するグループに含まれる複数の文書をＬＤＡにより解析することにより、これら複数の文書に含まれる複数の単語のそれぞれ毎の複数のトピックのそれぞれに含まれる確率を表す要素パラメータ行列を生成する。なお、要素パラメータ行列は、ＬＤＡによる解析結果として算出されるパラメータ行列βに対応する。
【００４７】
ここで、複数の要素パラメータ生成部６０のそれぞれは、ＬＤＡによる解析において、パラメータ行列βの初期値として、第１パラメータ生成部２８が生成した初期パラメータ行列に含まれる各値を用いる。これにより、複数の要素パラメータ生成部６０のそれぞれは、最終的に収束する値に近い値をパラメータ行列βの初期値とするので、演算コストを小さくすることができる。
【００４８】
また、複数の要素パラメータ生成部６０のそれぞれは、一例として、互いに同一のトピック数のパラメータ行列βを用いてもよい。また、複数の要素パラメータ生成部６０のそれぞれは、図１に示された第２パラメータ生成部３０と同様にパラメータ行列βの初期値が設定される。
【００４９】
合成部６２は、複数の要素パラメータ生成部６０のそれぞれが生成した複数の要素パラメータ行列を合成して、パラメータ行列を生成する。合成部６２は、一例として、複数の要素パラメータ行列に含まれる同一のインデックスの値を平均化した値を含むパラメータ行列を生成する。合成部６２は、生成したパラメータ行列をクラスタリング部３２へと供給する。
【００５０】
なお、合成部６２は、生成したパラメータ行列を複数の要素パラメータ生成部６０にフィードバックして、再度、複数の要素パラメータ生成部６０に要素パラメータ行列を生成させてもよい。この場合、複数の要素パラメータ生成部６０のそれぞれは、フィードバックされたパラメータ行列の各値を初期値として、対応するグループに含まれる複数の文書をＬＤＡにより解析することにより、要素パラメータ行列を再度生成する。そして、合成部６２は、フィードバックされたパラメータ行列の各値を初期値として生成された複数の要素パラメータ行列を合成して、パラメータ行列を再度生成する。これにより、第２パラメータ生成部３０は、正確なパラメータ行列を生成することができる。
【００５１】
また、分割部４０は、以上のようなフィードバックを複数回繰り返して実行してもよい。これにより、第２パラメータ生成部３０は、更により正確なパラメータ行列を生成することができる。
【００５２】
また、合成部６２は、生成したパラメータ行列を分割部４０にフィードバックしてもよい。この場合、分割部４０は、フィードバックされたパラメータ行列に基づき複数の文書をクラスタリングした複数のクラスタのそれぞれがグループ間において均一の比率で含まれるように、文書集合を複数のグループに再度分割する。そして、複数の要素パラメータ生成部６０のそれぞれは、再度分割された対応するグループに含まれる複数の文書をＬＤＡにより解析することにより、要素パラメータ行列を生成する。これにより、分割部４０は、ＬＤＡの結果がより近似する複数のグループを生成することができる。
【００５３】
図５は、第１変形例に係るクラスタリング装置１０の処理フローを示す。本変形例に係るクラスタリング装置１０は、以下のステップＳ２１からステップＳ２８の処理を実行することにより、文書集合を複数のクラスタにクラスタリングする。
【００５４】
まず、ステップＳ２１において、クラスタリング装置１０の選択部２４は、クラスタリングの対象となる文書集合から複数のサンプル文書を選択する。ステップＳ２１の処理は、図２のステップＳ１１の処理と同様である。
【００５５】
続いて、ステップＳ２２において、クラスタリング装置１０の第１パラメータ生成部２８は、選択部２４が選択した複数のサンプル文書をＬＤＡにより解析して、初期パラメータ行列を生成する。ステップＳ２２の処理は、図２のステップＳ１２の処理と同様である。
【００５６】
続いて、ステップＳ２３において、クラスタリング装置１０のプリクラスタリング部５２は、第１パラメータ生成部２８が生成した初期パラメータ行列に基づき、文書取得部２２が取得した文書集合を複数のクラスタにクラスタリングする。プリクラスタリング部５２は、一例として、文書集合に含まれる文書のそれぞれについて、第１パラメータ生成部２８が生成した初期パラメータ行列に基づき、当該文書における複数のトピックの出現確率を表す文書ベクトルを生成する。そして、プリクラスタリング部５２は、一例として、文書ベクトルが互いに近似する一群の文書を同一のクラスタに含めるように、文書集合を複数のクラスタにクラスタリングする。
【００５７】
続いて、ステップＳ２４において、クラスタリング装置１０の分配部５６は、プリクラスタリング部５２によりクラスタリングした複数のクラスタのそれぞれがグループ間において均一の比率で含まれるように、文書集合を複数のグループに分配する。
【００５８】
例えば、プリクラスタリング部５２が、ステップＳ２３で９００個の文書集合をそれぞれが３００個の文書を有するクラスタＡ、クラスタＢ、クラスタＣにクラスタリングしたとする。これらを３つのグループに分配する場合、プリクラスタ記憶部５４は、３つのグループのそれぞれに、クラスタＡの文書、クラスタＢの文書およびクラスタＣの文書のそれぞれが１００個ずつ含まれるように文書を分配する。これにより、分配部５６は、複数のクラスタのそれぞれがグループ間において均一の比率で含まれるように、文書集合を複数のグループに分配することができる。
【００５９】
続いて、ステップＳ２５において、クラスタリング装置１０の複数の要素パラメータ生成部６０のそれぞれは、対応するグループに含まれる複数の文書をＬＤＡにより解析することにより、これら複数の文書に含まれる複数の単語のそれぞれ毎の複数のトピックのそれぞれに含まれる確率を表す要素パラメータ行列を生成する。この場合において、複数の要素パラメータ生成部６０のそれぞれは、第１パラメータ生成部２８が生成した初期パラメータ行列に含まれる各値をパラメータの初期値として用いる。
【００６０】
続いて、ステップＳ２６において、クラスタリング装置１０の合成部６２は、複数の要素パラメータ生成部６０のそれぞれが生成した複数の要素パラメータ行列を合成して１つのパラメータ行列を生成する。
【００６１】
続いて、ステップＳ２７において、合成部６２は、ループ処理を終了するか否かを判定する。合成部６２は、一例として、予め設定された回数分ループ処理を実行した場合、または、生成したパラメータ行列が一定の値に収束した場合に、ループ処理を終了すると判定する。
【００６２】
合成部６２は、ループ処理を終了しないと判定した場合には（ステップＳ２７のＮｏ）、処理をステップＳ２５に戻す。処理が戻された場合、ステップＳ２５において、複数の要素パラメータ生成部６０のそれぞれは、直前のステップＳ２６で合成部６２により合成されたパラメータ行列に含まれる各値をパラメータの初期値として用いる。これにより、複数の要素パラメータ生成部６０のそれぞれは、パラメータの初期値としてより収束値に近い値を用いて、ＬＤＡを実行することができる。
【００６３】
また、合成部６２は、ループ処理を終了しないと判定した場合に（ステップＳ２７のＮｏ）、処理をステップＳ２３に戻してもよい。処理が戻された場合、ステップＳ２３において、プリクラスタリング部５２は、直前のステップＳ２６で合成部６２により合成されたパラメータ行列に基づき、文書集合を複数のクラスタに再度クラスタリングする。そして、処理が戻された場合、ステップＳ２４において、分配部５６は、再度クラスタリングした複数のクラスタのそれぞれがグループ間において均一の比率で含まれるように、文書集合を複数のグループに再度分配する。これにより、分配部５６は、ＬＤＡの結果がより近似する複数のグループを生成することができる。
【００６４】
合成部６２は、ループ処理を終了すると判定した場合には（ステップＳ２７のＹｅｓ）、処理をステップＳ２８に進める。ステップＳ２７において、クラスタリング装置１０のクラスタリング部３２は、直前のステップＳ２６で合成部６２により合成されたパラメータ行列に基づき、文書取得部２２が取得した文書集合を複数のクラスタにクラスタリングする。ステップＳ２７の処理は、図２のステップＳ１４の処理と同様である。
【００６５】
本変形例に係るクラスタリング装置１０は、以上の処理を実行することにより、複数の文書の集合（文書集合）を複数のクラスタにクラスタリングすることができる。
【００６６】
図６は、第１変形例に係るクラスタリング装置１０でのパラメータ行列βｉｊに対する処理例を示す。本変形例に係るクラスタリング装置１０は、サンプル文書に対してＬＤＡを実行した結果である初期パラメータ行列βｉｊｐに基づき、文書集合を複数のクラスタにクラスタリングする。そして、クラスタリング装置１０は、このように生成された複数のクラスタが均一に含まれるような複数のグループを生成する。
【００６７】
このような複数のグループは、それぞれに対して独立にＬＤＡが実行された場合、その結果得られるパラメータ行列が互いに近似すると推定される。従って、本変形例に係るクラスタリング装置１０は、複数の要素パラメータ行列βｉｊｇを合成すれば、合成結果をフィードバックして再度のＬＤＡを実行しなくても、または、合成結果をフィードバックしたとしても少ないループ回数で、本来得られるべきパラメータ行列から少ない誤差のパラメータ行列を得ることができる。これにより、本変形例に係るクラスタリング装置１０によれば、効率良く分散処理を実行して、演算コストを小さくすることができる。
【００６８】
図７は、実施形態の第２変形例に係るクラスタリング装置１０の機能構成を示す。本変形例に係るクラスタリング装置１０は、図１に示したクラスタリング装置１０と略同一の構成および機能を採るので、図１に示したクラスタリング装置１０が備える構成要素と略同一の構成および機能の構成要素に同一の符号を付け、以下相違点を除き説明を省略する。
【００６９】
本変形例に係るクラスタリング装置１０は、文書取得部２２と、選択部２４と、サンプル記憶部２６と、第１パラメータ生成部２８と、第２パラメータ生成部３０と、クラスタリング部３２と、設定部７０とを備える。設定部７０は、選択部２４が選択するサンプル文書のサンプル数を複数回設定する。設定部７０は、サンプル数を設定する場合、サンプル文書の選択数を段階的に大きくしながら設定する。
【００７０】
選択部２４は、選択数の設定毎に、文書集合から選択数のサンプル文書を選択する。また、第１パラメータ生成部２８は、選択数の設定毎に、選択された複数のサンプル文書をＬＤＡにより解析することにより初期パラメータを生成する。
【００７１】
ここで、第１パラメータ生成部２８は、１回目の選択数の設定において、ランダムな値をパラメータの行列の初期値として、選択された複数のサンプル文書をＬＤＡにより解析することにより初期パラメータ行列を生成する。そして、第１パラメータ生成部２８は、２回目以降の選択数の設定において、直前に生成された初期パラメータ行列に含まれる各値を初期値として、選択された複数のサンプル文書をＬＤＡにより解析することにより初期パラメータ行列を生成する。
【００７２】
サンプル文書の選択数は、予め定められた期間内にＬＤＡの処理が完了する程度であって、文書集合の全体におけるトピックに対する単語の出現頻度が推定できる程度の数が好ましい。しかしながら、文書集合に含まれる文書数が膨大である場合、１回のサンプル文書の選択では、文書集合の全体におけるトピックに対する単語の出現頻度が推定できる程度の数のサンプル文書を選択できない。
【００７３】
しかしながら、このような場合であっても、本変形例に係るクラスタリング装置１０は、サンプル文書の選択数を段階的に大きくしながら、複数回のサンプル文書によるＬＤＡの解析を実行する。従って、本変形例に係るクラスタリング装置１０によれば、少ない演算コストで、文書集合の全体におけるトピックに対する単語の出現頻度が推定できる程度の数のサンプル文書に対してＬＤＡを実行して、初期パラメータ行列を生成することができる。
【００７４】
図８は、ＬＤＡの処理を実現するためにコンピュータに実行させるプログラムコード例を示す。以下、ＬＤＡの処理を実現するためにコンピュータに実行させるプログラムコードについて説明する。
【００７５】
まず、ＬＤＡの考え方について説明する。ＬＤＡでは、文書に単語が出現する現象を、以下のように仮定している。
仮定１：文書には、複数のトピックが含まれる。
仮定２：文書に含まれる単語の出現頻度は、その文書に含まれるトピックに起因する。
【００７６】
更に、ＬＤＡでは、トピックが確率θで現れる確率ｐ（θ｜α）が、Ｄｉｒｉｃｈｌｅｔ分布に従うと仮定している。具体的には、ＬＤＡでは、下記の式（１）のような、Ｄｉｒｉｃｈｌｅｔ分布に従う確率モデルにより、トピックｉが確率θで現れる確率ｐ（θ｜α）が表されると仮定している。
【数１】
2015004996.tif 000003
【００７７】
式（１）において、各変数は以下の内容を表す。
【００７８】
ｉは、トピックのインデックスであり、１からｋまでの整数である。ｋは、文書集合に含まれるトピックの数である。ｋは、実際の文書集合から観測できない。従って、ｋは、ユーザ等により予め設定される。
【００７９】
αｉは、未知のパラメータであり、トピックｉが出現する頻度を表す。θｘは、文書集合にトピックｘが少なくとも１回出現する確率を表す。θｘｙは、文書集合にトピックｘがｙ回出現する確率を表す。
【００８０】
次に、式（１）から、実際の文書集合から観測することができる値に基づく式を導き出す。まず、トピックｉに単語ｊが出現する確率をβｉｊと表す。従って、ある単語ｊがトピックｉに付随して出現する確率は、θｉβｉｊと表される。
【００８１】
θｉがある値をとる確率は、式（１）から算出できる。式（１）を、トピック毎に、θｉを変数として０から１まで積分すると、以下の式（２）の確率分布が算出できる。式（２）は、各単語ｊが頻度ｗｎｊで出現する確率ｐ（ｗ｜α，β）を表す。
【数２】
2015004996.tif 000004
【００８２】
ｊは、実際の文書集合に含まれる単語のインデックスであり、１からＶまでの整数である。Ｖは、実際の文書集合に含まれる単語の数である。
【００８３】
ｎは、特定の文書内における単語のインデックスであり、１からＮまでの整数である。Ｎは、特定の文書に含まれる単語の数である。
【００８４】
単語ｊが頻度ｗｎｊで出現する確率ｐ（ｗ｜α，β）は、実際の文書集合から観測することができる。従って、単語ｊが頻度ｗｎｊで出現する確率ｐ（ｗ｜α，β）を観測して、式（２）からαおよびβを算出すれば、文書集合におけるトピックと単語との関係を推定することができる。そこで、ＬＤＡでは、実際の文書集合から測定された各文書における単語の出現頻度から式（２）の確率モデルにおけるパラメータを算出し、文書集合におけるトピックと単語との関係を推定する。
【００８５】
次に、ＬＤＡをコンピュータにより実現するためのアルゴリズムについて説明する。
【００８６】
式（２）は、αおよびβがθを介して互いに確率ｐ（ｗ｜α，β）に影響する。従って、式（２）を用いてコンピュータにαおよびβを算出させるのは困難である。そこで、コンピュータによりαおよびβを算出する場合には、文書毎のトピックｉの出現頻度を表すパラメータγｉおよび文書内における単語ｎのトピックｉでの出現頻度を表すΦｎｉを導入する。
【００８７】
以下の式（３）により、確率ｑを定義する。
【数３】
2015004996.tif 000005
【００８８】
式（３）は、θと文書内でのトピックの出現確率γｉとを独立に扱っており、単純な積の形で表される。このように表されるのは、γｉおよびΦｎｉが文書毎のパラメータであることによる。
【００８９】
ここで、式（３）を式（２）に近似させるべく、Φｎｉおよびγｉを以下の式（４）および式（５）のように定義する。
【数４】
2015004996.tif 000006
【００９０】
式（４）のＥｑ［ｌｏｇ（θｉ）｜γ］は、ｌｏｇ（θｉ）の期待値を、確率ｐ（θ｜γ）から算出した値である。具体的には、Ｅｑ［ｌｏｇ（θｉ）｜γ］は、γｉを用いて以下の式（６）のように表される。なお、Ψ（ｘ）は、ガンマ関数（Γ（ｘ））の一次微分を表す。
【数５】
2015004996.tif 000007
【００９１】
ＬＤＡの処理をコンピュータにより実現する場合、以上の式を用いて、コンピュータは、図８のようなプログラムコードを文書毎に実行する。以下、図８のプログラムコードの説明をする。
【００９２】
１行目のコードは、全てのｉおよびｎについて、Φｎｉを１／ｋに初期化することを記述している。なお、Φの上付きの文字は、３行目から９行目までのコードの繰り返し回数を示し、初期化時においては０となっている。
【００９３】
２行目のコードは、全てのｉについて、γｉを、αｉ＋Ｎ／ｋに初期化することを記述している。なお、γの上付きの文字は、３行目から９行目までのコードの繰り返し回数を示し、初期化時においては０となっている。
【００９４】
３行目および９行目のコードは、γｉｔが全てのｉについて一定の値に収束するまで、４行目から８行目までのコードを繰り返して実行することを記述している。なお、γの上付きのｔは、３行目から９行目までのコードの繰り返し回数を示す。
【００９５】
４行目のコードは、５行目から８行目までのコードをＮ回実行するとともに、ｎの値を１からＮまで１ずつインクリメントすることを記述している。
【００９６】
５行目のコードは、６行目から７行目までのコードをｋ回実行するとともに、ｉの値を１からｋまで１ずつインクリメントすることを記述している。
【００９７】
６行目のコードは、Φｎｉｔ＋１に対して、βｉｗｎｅｘｐ（Ψ（γｉｔ））を代入することを記述している。なお、Φの上付けのｔは、３行目から９行目までのコードのループ回数を表す。また、ｔ＋１は、次のループ処理でのループ回数を表す。
【００９８】
７行目のコードは、各ｎ毎に、全てのｉについてのΦｎｉｔ＋１の合計値が"１"となるように、Φｎｉｔ＋１を正規化することを記述している。
【００９９】
８行目のコードは、γｉｔ＋１に、下記の式（７）の値を代入することを記述している。
【数６】
2015004996.tif 000008
【０１００】
コンピュータは、以上の１行目から９行目までのコードを複数の文書のそれぞれについて実行する。そして、コンピュータは、各文書について図８のようなプログラムコードの実行が完了する毎に、算出されたγｉおよびΦｎｉから、αおよびβを更新する。
【０１０１】
具体的には、コンピュータは、各文書に対するプログラムコードの実行を終える毎に、以下の式（８）によりβｉｊを更新する。
【数７】
2015004996.tif 000009
【０１０２】
ｄは、文書のインデックスであり、１からＭまでの整数である。Ｍは、文書集合に含まれる文書数である。また、Φの上付けのアスタリスクは、１つの文書に対する処理において、γｄｎｉが一定の値に収束するまでに繰り返された繰り返し回数を表す。即ち、式（８）は、βｉｊが、文書毎でのトピック毎の単語の出現確率とその文書での単語の出現頻度とを乗算した値を、全ての文書について加算した値に比例することを表す。
【０１０３】
そして、コンピュータは、全ての文書について処理を終えると、最終的に得られたβｉｊを単語ｊの文書集合でのあるトピックｉの出現確率を表すパラメータ行列として出力する。
【０１０４】
本実施形態に係るクラスタリング装置１０においては、第１パラメータ生成部２８は、図８に示すプログラムコードを実行する。また、本実施形態に係るクラスタリング装置１０においては、第２パラメータ生成部３０は、図８に示すプログラムコードにおける第１行および第２行のコードとして、第１パラメータ生成部２８が生成したαｉおよびβｉｊを用いて、γｉ０およびΦｎｉ０を初期化する。これにより、本実施形態に係るクラスタリング装置１０は、第３行から第９行のループ処理の回数を少なくして、演算コストを小さくすることができる。
【０１０５】
図９は、本実施形態に係るコンピュータ１９００のハードウェア構成の一例を示す。本実施形態に係るコンピュータ１９００は、ホスト・コントローラ２０８２により相互に接続されるＣＰＵ２０００、ＲＡＭ２０２０、グラフィック・コントローラ２０７５、及び表示装置２０８０を有するＣＰＵ周辺部と、入出力コントローラ２０８４によりホスト・コントローラ２０８２に接続される通信インターフェイス２０３０、ハードディスクドライブ２０４０、及びＣＤ−ＲＯＭドライブ２０６０を有する入出力部と、入出力コントローラ２０８４に接続されるＲＯＭ２０１０、フレキシブルディスク・ドライブ２０５０、及び入出力チップ２０７０を有するレガシー入出力部とを備える。
【０１０６】
ホスト・コントローラ２０８２は、ＲＡＭ２０２０と、高い転送レートでＲＡＭ２０２０をアクセスするＣＰＵ２０００及びグラフィック・コントローラ２０７５とを接続する。ＣＰＵ２０００は、ＲＯＭ２０１０及びＲＡＭ２０２０に格納されたプログラムに基づいて動作し、各部の制御を行う。グラフィック・コントローラ２０７５は、ＣＰＵ２０００等がＲＡＭ２０２０内に設けたフレーム・バッファ上に生成する画像データを取得し、表示装置２０８０上に表示させる。これに代えて、グラフィック・コントローラ２０７５は、ＣＰＵ２０００等が生成する画像データを格納するフレーム・バッファを、内部に含んでもよい。
【０１０７】
入出力コントローラ２０８４は、ホスト・コントローラ２０８２と、比較的高速な入出力装置である通信インターフェイス２０３０、ハードディスクドライブ２０４０、ＣＤ−ＲＯＭドライブ２０６０を接続する。通信インターフェイス２０３０は、ネットワークを介して他の装置と通信する。ハードディスクドライブ２０４０は、コンピュータ１９００内のＣＰＵ２０００が使用するプログラム及びデータを格納する。ＣＤ−ＲＯＭドライブ２０６０は、ＣＤ−ＲＯＭ２０９５からプログラム又はデータを読み取り、ＲＡＭ２０２０を介してハードディスクドライブ２０４０に提供する。
【０１０８】
また、入出力コントローラ２０８４には、ＲＯＭ２０１０と、フレキシブルディスク・ドライブ２０５０、及び入出力チップ２０７０の比較的低速な入出力装置とが接続される。ＲＯＭ２０１０は、コンピュータ１９００が起動時に実行するブート・プログラム、及び／又は、コンピュータ１９００のハードウェアに依存するプログラム等を格納する。フレキシブルディスク・ドライブ２０５０は、フレキシブルディスク２０９０からプログラム又はデータを読み取り、ＲＡＭ２０２０を介してハードディスクドライブ２０４０に提供する。入出力チップ２０７０は、フレキシブルディスク・ドライブ２０５０を入出力コントローラ２０８４へと接続すると共に、例えばパラレル・ポート、シリアル・ポート、キーボード・ポート、マウス・ポート等を介して各種の入出力装置を入出力コントローラ２０８４へと接続する。
【０１０９】
ＲＡＭ２０２０を介してハードディスクドライブ２０４０に提供されるプログラムは、フレキシブルディスク２０９０、ＣＤ−ＲＯＭ２０９５、又はＩＣカード等の記録媒体に格納されて利用者によって提供される。プログラムは、記録媒体から読み出され、ＲＡＭ２０２０を介してコンピュータ１９００内のハードディスクドライブ２０４０にインストールされ、ＣＰＵ２０００において実行される。
【０１１０】
コンピュータ１９００にインストールされ、コンピュータ１９００を、クラスタリング装置１０として機能させるプログラムは、文書取得モジュールと、選択モジュールと、サンプル記憶モジュールと、第１パラメータ生成モジュールと、第２パラメータ生成モジュールと、クラスタリングモジュールとを備える。これらのプログラム又はモジュールは、ＣＰＵ２０００等に働きかけて、コンピュータ１９００を、文書取得部２２、選択部２４、サンプル記憶部２６第１パラメータ生成部２８、第２パラメータ生成部３０およびクラスタリング部３２としてそれぞれ機能させる。
【０１１１】
これらのプログラムに記述された情報処理は、コンピュータ１９００に読込まれることにより、ソフトウェアと上述した各種のハードウェア資源とが協働した具体的手段である、文書取得部２２、選択部２４、サンプル記憶部２６第１パラメータ生成部２８、第２パラメータ生成部３０およびクラスタリング部３２として機能する。そして、これらの具体的手段によって、本実施形態におけるコンピュータ１９００の使用目的に応じた情報の演算又は加工を実現することにより、使用目的に応じた特有のクラスタリング装置１０が構築される。
【０１１２】
一例として、コンピュータ１９００と外部の装置等との間で通信を行う場合には、ＣＰＵ２０００は、ＲＡＭ２０２０上にロードされた通信プログラムを実行し、通信プログラムに記述された処理内容に基づいて、通信インターフェイス２０３０に対して通信処理を指示する。通信インターフェイス２０３０は、ＣＰＵ２０００の制御を受けて、ＲＡＭ２０２０、ハードディスクドライブ２０４０、フレキシブルディスク２０９０、又はＣＤ−ＲＯＭ２０９５等の記憶装置上に設けた送信バッファ領域等に記憶された送信データを読み出してネットワークへと送信し、もしくは、ネットワークから受信した受信データを記憶装置上に設けた受信バッファ領域等へと書き込む。このように、通信インターフェイス２０３０は、ＤＭＡ（ダイレクト・メモリ・アクセス）方式により記憶装置との間で送受信データを転送してもよく、これに代えて、ＣＰＵ２０００が転送元の記憶装置又は通信インターフェイス２０３０からデータを読み出し、転送先の通信インターフェイス２０３０又は記憶装置へとデータを書き込むことにより送受信データを転送してもよい。
【０１１３】
また、ＣＰＵ２０００は、ハードディスクドライブ２０４０、ＣＤ−ＲＯＭドライブ２０６０（ＣＤ−ＲＯＭ２０９５）、フレキシブルディスク・ドライブ２０５０（フレキシブルディスク２０９０）等の外部記憶装置に格納されたファイルまたはデータベース等の中から、全部または必要な部分をＤＭＡ転送等によりＲＡＭ２０２０へと読み込ませ、ＲＡＭ２０２０上のデータに対して各種の処理を行う。そして、ＣＰＵ２０００は、処理を終えたデータを、ＤＭＡ転送等により外部記憶装置へと書き戻す。このような処理において、ＲＡＭ２０２０は、外部記憶装置の内容を一時的に保持するものとみなせるから、本実施形態においてはＲＡＭ２０２０および外部記憶装置等をメモリ、記憶部、または記憶装置等と総称する。本実施形態における各種のプログラム、データ、テーブル、データベース等の各種の情報は、このような記憶装置上に格納されて、情報処理の対象となる。なお、ＣＰＵ２０００は、ＲＡＭ２０２０の一部をキャッシュメモリに保持し、キャッシュメモリ上で読み書きを行うこともできる。このような形態においても、キャッシュメモリはＲＡＭ２０２０の機能の一部を担うから、本実施形態においては、区別して示す場合を除き、キャッシュメモリもＲＡＭ２０２０、メモリ、及び／又は記憶装置に含まれるものとする。
【０１１４】
また、ＣＰＵ２０００は、ＲＡＭ２０２０から読み出したデータに対して、プログラムの命令列により指定された、本実施形態中に記載した各種の演算、情報の加工、条件判断、情報の検索・置換等を含む各種の処理を行い、ＲＡＭ２０２０へと書き戻す。例えば、ＣＰＵ２０００は、条件判断を行う場合においては、本実施形態において示した各種の変数が、他の変数または定数と比較して、大きい、小さい、以上、以下、等しい等の条件を満たすかどうかを判断し、条件が成立した場合（又は不成立であった場合）に、異なる命令列へと分岐し、またはサブルーチンを呼び出す。
【０１１５】
また、ＣＰＵ２０００は、記憶装置内のファイルまたはデータベース等に格納された情報を検索することができる。例えば、第１属性の属性値に対し第２属性の属性値がそれぞれ対応付けられた複数のエントリが記憶装置に格納されている場合において、ＣＰＵ２０００は、記憶装置に格納されている複数のエントリの中から第１属性の属性値が指定された条件と一致するエントリを検索し、そのエントリに格納されている第２属性の属性値を読み出すことにより、所定の条件を満たす第１属性に対応付けられた第２属性の属性値を得ることができる。
【０１１６】
以上に示したプログラム又はモジュールは、外部の記録媒体に格納されてもよい。記録媒体としては、フレキシブルディスク２０９０、ＣＤ−ＲＯＭ２０９５の他に、ＤＶＤ又はＣＤ等の光学記録媒体、ＭＯ等の光磁気記録媒体、テープ媒体、ＩＣカード等の半導体メモリ等を用いることができる。また、専用通信ネットワーク又はインターネットに接続されたサーバシステムに設けたハードディスク又はＲＡＭ等の記憶装置を記録媒体として使用し、ネットワークを介してプログラムをコンピュータ１９００に提供してもよい。
【０１１７】
以上、本発明を実施の形態を用いて説明したが、本発明の技術的範囲は上記実施の形態に記載の範囲には限定されない。上記実施の形態に、多様な変更または改良を加えることが可能であることが当業者に明らかである。その様な変更または改良を加えた形態も本発明の技術的範囲に含まれ得ることが、特許請求の範囲の記載から明らかである。
【０１１８】
特許請求の範囲、明細書、および図面中において示した装置、システム、プログラム、および方法における動作、手順、ステップ、および段階等の各処理の実行順序は、特段「より前に」、「先立って」等と明示しておらず、また、前の処理の出力を後の処理で用いるのでない限り、任意の順序で実現しうることに留意すべきである。特許請求の範囲、明細書、および図面中の動作フローに関して、便宜上「まず、」、「次に、」等を用いて説明したとしても、この順で実施することが必須であることを意味するものではない。
【符号の説明】
【０１１９】
１０  クラスタリング装置
２２  文書取得部
２４  選択部
２６  サンプル記憶部
２８  第１パラメータ生成部
３０  第２パラメータ生成部
３２  クラスタリング部
４０  分割部
４２  グループ記憶部
５２  プリクラスタリング部
５４  プリクラスタ記憶部
５６  分配部
６０  要素パラメータ生成部
６２  合成部
７０  設定部
１９００  コンピュータ
２０００  ＣＰＵ
２０１０  ＲＯＭ
２０２０  ＲＡＭ
２０３０  通信インターフェイス
２０４０  ハードディスクドライブ
２０５０  フレキシブルディスク・ドライブ
２０６０  ＣＤ−ＲＯＭドライブ
２０７０  入出力チップ
２０７５  グラフィック・コントローラ
２０８０  表示装置
２０８２  ホスト・コントローラ
２０８４  入出力コントローラ
２０９０  フレキシブルディスク
２０９５  ＣＤ−ＲＯＭ
【図１】
2015004996.tif 000010
【図２】
2015004996.tif 000011
【図３】
2015004996.tif 000012
【図４】
2015004996.tif 000013
【図５】
2015004996.tif 000014
【図６】
2015004996.tif 000015
【図７】
2015004996.tif 000016
【図８】
2015004996.tif 000017
【図９】
2015004996.tif 000018