"入力文書を1つ以上のクラスに分類する文書分類装置であって、入力された訓練文書集合をクラス毎に分割し、各クラスの文書を連結したクラス別連結文書を作成する文書連結手段と、前記クラス別連結文書からクラス毎に接尾辞配列を構築する接尾辞配列構築手段と、前記接尾辞配列を記憶する接尾辞配列記憶手段と、前記入力文書に含まれる部分文字列の、前記クラス別訓練文書におけるクラス別出現頻度と、該クラス別訓練文書において該部分文字列の次に出現する文字の種類数であるクラス別異なり次文字数と、を前記接尾辞配列記憶手段に格納されている前記接尾辞配列から検索結果として取得する部分文字列検索手段と、前記部分文字列検索手段の前記検索結果から前記入力文書のクラス別文書スコアを計算する文書スコア計算手段と、前記クラス別文書スコアを基に、前記入力文書のクラスを決定する文書クラス決定手段と、を有することを特徴とする文書分類装置。前記部分文字列検索手段の検索結果を記憶する検索結果キャッシュ手段を更に有し、前記部分文字列検索手段は、前記入力文書に含まれる部分文字列の検索結果が前記検索結果キャッシュ手段に含まれていない場合は、該部分文字列の前記クラス別出現頻度と前記クラス別異なり次文字数を前記接尾辞配列から検索結果として取得すると同時に該検索結果を該検索結果キャッシュ手段に記憶し、前記入力文書に含まれる部分文字列の検索結果が該検索結果キャッシュ手段に含まれている場合は、該検索結果キャッシュ手段から該検索結果を取得する手段を含む、請求項1記載の文書分類装置。前記文書スコア出力手段は、前記部分文字列検索手段の検索結果を基に、前記入力文書に含まれる全ての文字毎に、該文字の生起確率に依存する直前の文字数モデル次数を決定して該文字の生起確率を推定し、前記生起確率を全ての文字に関して掛け合わせて、クラス別文書スコアを計算する手段を含む請求項1または2記載の文書分類装置。入力文書を1つ以上のクラスに分類する文書分類方法であって、文書連結手段が、入力された訓練文書集合をクラス毎に分割し、各クラスの文書を連結したクラス別連結文書を作成する文書連結ステップと、接尾辞配列構築手段が、前記クラス別連結文書からクラス毎に接尾辞配列を構築し、接尾辞配列記憶手段に格納する接尾辞配列構築ステップと、部分文字列検索手段が、前記入力文書に含まれる部分文字列の、前記クラス別訓練文書におけるクラス別出現頻度と、該クラス別訓練文書において該部分文字列の次に出現する文字の種類数であるクラス別異なり次文字数と、を前記接尾辞配列記憶手段に格納されている前記接尾辞配列から検索結果として取得する部分文字列検索ステップと、文書スコア計算手段が、前記部分文字列検索ステップの前記検索結果から前記入力文書のクラス別文書スコアを計算する文書スコア計算ステップと、文書クラス決定手段が、前記クラス別文書スコアを基に、前記入力文書のクラスを決定する文書クラス決定ステップと、を有することを特徴とする文書分類方法。前記部分文字列検索ステップにおいて、当該部分文字列検索ステップの検索結果を記憶するための検索結果キャッシュ手段に、前記入力文書に含まれる部分文字列の検索結果が含まれていない場合は、該部分文字列の前記クラス別出現頻度と前記クラス別異なり次文字数を前記接尾辞配列から検索結果として取得すると同時に該検索結果を該検索結果キャッシュ手段に記憶し、前記入力文書に含まれる部分文字列の検索結果が該検索結果キャッシュ手段に含まれている場合は、該検索結果キャッシュ手段から該検索結果を取得する、請求項4記載の文書分類方法。前記文書スコア出力ステップにおいて、前記部分文字列検索ステップの検索結果を基に、前記入力文書に含まれる全ての文字毎に、該文字の生起確率に依存する直前の文字数モデル次数を決定して該文字の生起確率を推定し、前記生起確率を全ての文字に関して掛け合わせて、クラス別文書スコアを計算する請求項4または5記載の文書分類方法。コンピュータを、請求項1乃至3のいずれか1項に記載の文書分類装置の各手段として機能させるための文書分類プログラム。請求項7の文書分類プログラムを格納したことを特徴とするコンピュータ読取可能な記録媒体。上記のように、現在は、入力文書を可変長な部分文字列の集合として扱う文書分類技術において、少ない記憶容量短い学習時間高精度な文書分類を同時に全て実現する技術は存在しない。本発明は、上記従来技術の問題点に鑑みて、訓練文書集合の学習を連結した文書の文字列から接尾辞配列を構築することのみとし、分類時に接尾辞配列から必要な情報を取得することで、形態素解析や部分文字列長の制限が無く、少ない記憶容量短い学習時間高精度な文書分類を同時に全て実現する文書分類装置及び方法及びプログラム及びコンピュータ読取可能な記録媒体を提供することを目的とする。上記の課題を解決するため、本発明請求項1は、入力文書を1つ以上のクラスに分類する文書分類装置であって、入力された訓練文書集合をクラス毎に分割し、各クラスの文書を連結したクラス別連結文書を作成する文書連結手段と、前記クラス別連結文書からクラス毎に接尾辞配列を構築する接尾辞配列構築手段と、前記接尾辞配列を記憶する接尾辞配列記憶手段と、前記入力文書に含まれる部分文字列の、前記クラス別訓練文書におけるクラス別出現頻度と、該クラス別訓練文書において該部分文字列の次に出現する文字の種類数であるクラス別異なり次文字数と、を前記接尾辞配列記憶手段に格納されている前記接尾辞配列から検索結果として取得する部分文字列検索手段と、前記部分文字列検索手段の前記検索結果から前記入力文書のクラス別文書スコアを計算する文書スコア計算手段と、前記クラス別文書スコアを基に、前記入力文書のクラスを決定する文書クラス決定手段と、を有する。また、本発明請求項2は、前記部分文字列検索手段の検索結果を記憶する検索結果キャッシュ手段を更に有し、前記部分文字列検索手段は、前記入力文書に含まれる部分文字列の検索結果が前記検索結果キャッシュ手段に含まれていない場合は、該部分文字列の前記クラス別出現頻度と前記クラス別異なり次文字数を前記接尾辞配列から検索結果として取得すると同時に該検索結果を該検索結果キャッシュ手段に記憶し、前記入力文書に含まれる部分文字列の検索結果が該検索結果キャッシュ手段に含まれている場合は、該検索結果キャッシュ手段から該検索結果を取得する手段を含む。また、本発明請求項3は、前記文書スコア出力手段において、前記部分文字列検索手段の検索結果を基に、前記入力文書に含まれる全ての文字毎に、該文字の生起確率に依存する直前の文字数モデル次数を決定して該文字の生起確率を推定し、前記生起確率を全ての文字に関して掛け合わせて、クラス別文書スコアを計算する手段を含む。上記のように構成された請求項1記載の文書分類装置によれば、入力文書に含まれる部分文字列が、どのクラスと強い関連を示すかについて、接尾辞配列からクラス毎の出現頻度や異なり次文字数を分類時に取得して計算し、高い分類精度を実現することができる。学習は訓練文書集合を連結した文書から接尾辞配列を構築するのみであるため、形態素解析やngram分割の必要が無く、どんな言語で記述された文書に対しても共通の処理を用いて、少ない記憶容量短い学習時間で文書分類器を実現できる。以下図面と共に、本発明の実施の形態を説明する。図1は、本発明の一実施の形態における文書分類装置の構成を示す。同図に示す文書分類装置は、文書連結部1と接尾辞配列構築部2と接尾辞配列記憶部3と部分文字列検索部4と文書スコア計算部5と文書クラス決定部6と検索結果キャッシュ部7から構成され、訓練文書集合と入力文書を受け取り、入力文書を1つ以上のクラスに分類する。まず、文書連結部1、接尾辞配列構築部2、接尾辞配列記憶部3による学習動作について説明する。図2は、本発明の一実施の形態における文書分類装置の学習動作フローチャートである。ステップ101文書連結部1は、入力された訓練文書集合から、クラスc毎に連結したクラス別連結文書Dcを作成する。ここで、文書の連結順序は、ランダム順、文書の作成時間順など如何なる順序でも良い。ステップ102接尾辞配列構築部2は、前記文書連結部1から出力されたクラス別連結文書Dc毎に接尾辞配列を構築する。図3に構築された接尾辞配列の例を示す。図3において、列SAは、各接尾辞suffixが、基の文書中のどの位置に出現するかを表す。また、列lcpは、接尾辞配列における次行の接尾辞との共通接頭辞長を表す。ここで、接尾辞配列の構築には、文献1GNongSZhangandWHChanTwoefficientalgorithmsforlinearsuffixarrayconstraction2008で示される手法などの公知のアルゴリズムが利用可能で、文書長の長さに比例する時間で高速に構築することが可能である。また、接尾辞配列よりもさらに必要な記憶容量を減らすことのできるCompressedSuffixArray文献2:RGrossiandJSVitterCompressedSuffixArraysandSuffixTreeswithApplicationstoTextIndexingandStringMatchingSIAMJournalonComputing352005378407やFMindex文献3:PaoloFerraginaandGiovanniManziniIndexingcompressedtextJournaloftheACM524552581などを用いても良い。ステップ103接尾辞配列記憶部3は、前記接尾辞配列構築部2が構築したクラス別接尾辞配列を記憶する。以上で学習動作は完了であり、本発明における学習動作は接尾辞配列の構築のみであるため、非常に短い時間で文書分類の準備を整えることができる。次に、文書分類装置の分類動作について説明する。当該処理は、接尾辞配列記憶部3、部分文字列検索部4、文書スコア計算部5、文書クラス決定部6、検索結果キャッシュ部7を用いる。図4は、本発明の一実施の形態における文書分類装置の分類動作フローチャートである。ステップ201部分文字列検索部4は、入力文書に含まれる全ての部分文字列を検索する。当該処理を図5に示す、入力文書がbracaraの場合を用いて本ステップの説明を行う。該部分文字列検索部4は、入力文書の長さがmこの例では7のとき、m回のループループ1~ループmを処理する。まずループ1では、文字列bのクラス別出現頻度を、前記検索結果キャッシュ部7または前記接尾辞配列記憶部3から検索して取得する。次は文字列br、その次はbra、という様に1文字ずつ検索文字列を追加していく。このとき、該部分文字列の接尾辞配列中の出現範囲を覚えておき、次の部分文字列の検索範囲として設定することで、効率的な検索が行える。なお、クラス別出現頻度が0になったところで、該クラスにおいては、該ループにおける以降の部分文字列のクラス別出現頻度は全て0となるので次ループに移る。ループ2も同様に、文字列r,ra,rac,...の順に検索結果を取得し、以降、最後のループmまで同様の処理を行う。当該ステップにより、部分文字列検索部4は、各クラス毎に、前記クラス別訓練文書において出現頻度が0となる部分文字列を除いた全ての部分文字列に関して、クラス別出現頻度と、クラス別異なり次文字数を取得する。入力文書に含まれる部分文字列数の総数はm2個であるが、出現頻度が0回の部分文字列については検索処理を打ち切るため、効率的かつ高速に該出現頻度と該異なり次文字数を取得できる。また、検索結果キャッシュ部7に接尾辞配列からの検索結果を記憶しておくことで、さらなる高速化が可能となる。この検索結果キャッシュ部7に検索結果を格納する条件は、全て記憶、部分文字列の長さがN1以上、部分文字列の出現頻度がN2以上、これらの条件の組み合わせ、などとする。ステップ202文書スコア計算部5は、以下の式に従って入力文書dのクラスcに対するスコアscoreを計算する。ここで、siは、入力文書dにおけるi番目の文字、は、j番目からi番目までの文字を表す。そして、siが依存する直前の文字数は、として各文字毎に決定する。ここで、ステップ201にて導出済みのはクラスcにおけるの出現頻度である。Fcutoffは、ハイパーパラメータである例えば、3などを設定する。また、を全ての文字で同じ値としても良い例えば、5などを設定する。文字siのクラスcにおける生起確率は、以下の通り計算する。ここで、重みwは以下の通り計算できる。ただし、p0はクラス別連結文書に出現する全ての異なり文字数の逆数、e00とする。そして、とは、以下の通り計算する。ここで、は、ステップ201にて導出済みのクラスcの連結文書中におけるの後に続く異なり文字数である。また、は、文献4北研二確率的言語モデル東京大学出版会1999にて公知のバックオフスムージングなどにより決定しても良い。最後に、クラスcの時前確率pは、各クラスの訓練文書数の比率から決定する。また、全てのクラスで等しいと設定しても良い。以上の様に入力文書の各クラスに対するスコアを計算することで、入力文書を単語に分割する必要無く、入力文書中の2単語以上に跨る情報や、1単語未満の文字レベル情報、文字の出現順序に関する情報を全て利用することができるので、高い精度での分類が可能となる。ステップ203文書クラス決定部6は、前記文書スコア計算部5が導出した入力文書のクラス別スコアscoreのうち、最大のスコアとなるcを出力する。また、各クラスのスコアの総和に対する比率が、閾値θ以上のクラスを全て出力する、などとして決定しても良い。図6に、訓練文書集合として地震に関する文書とスポーツに関する文書を与え、入力文書として原子力発電について考えるを与えた際の分類例を示す。この場合、クラス地震においては、原子力発電という文字列は多く出現するため、特にpの値が1に近づく。しかし、クラススポーツにおいては、原子力発電という文字列が出現する頻度は低いため、これらの文字列に対する生起確率は低くなる。この部分の差によって、入力文書がクラス地震に属すると分類することができる。このように、本発明では、クラス毎に特徴的な文字列の出現順序を捉えることができるので、高い精度で分類することが可能となる。また、学習は接尾辞配列の構築のみで良いので、少ない記憶容量短い学習時間で文書分類器を実現できる。また、扱う文書がどんな言語で書かれていても、本発明は適用できる。本発明は、どのような文書に対しても適用可能であるが、特に、Twitterなどのリアルタイム性の高く、文書長が短いものの分類に対して有効である。また、本発明は、図1に示す構成要素の動作をプログラムとして構築し、マイクロブログ文書分類装置として利用されるコンピュータにインストールして実行させる、または、ネットワークを介して流通させることが可能である。また、構築されたプログラムをハードディスクやフレキシブルディスク、CD-ROM等の可搬記憶媒体に格納し、コンピュータにインストールする、または、配布することが可能である。なお、本発明は、上記の実施の形態に限定されることなく、特許請求の範囲内において種々変更応用が可能である。"