(57)【要約】【課題】  テキストがあるカテゴリーに属すか否かを判定するテキスト分類処理方法を提供する。【解決手段】  テキスト分類処理方法は、テキストから一定長以下の文字列を抽出し、文字列の特徴量を計算し、特徴量を素性とした特徴ベクトルを生成する。テキストがあるカテゴリーに属するか否かに関するラベルがあらかじめ付与された訓練データ集合が与えられた場合に、訓練データ集合のテキストを特徴ベクトルに変換し、ラベルとともに特徴ベクトルをサポートベクトルマシンに適用して、学習を行って、サポートベクトルマシンによるテキスト分類器を生成する。あるカテゴリーに属すか否かが未知のテキストが与えられると、未知テキストの特徴ベクトルを生成し、生成されたテキスト分類器を用いて、テキストがそのカテゴリーに属するか否かを判定する。【選択図】  図１
2008084064.tif 000002
【特許請求の範囲】
【請求項１】
形態素解析が困難な文字列を含むテキストを格納したデータ格納装置と、前記テキストがあるカテゴリーに属すか否かを判定するテキスト分類処理を行うデータ処理装置を備え、前記テキストを分類するテキスト分類処理方法であって、
前記テキストから一定長以下の任意の文字列を抽出し、当該文字列の特徴量を計算し、前記特徴量を素性とした特徴ベクトルを生成する特徴ベクトル生成過程と、
前記テキストがあるカテゴリーに属するか否かに関するラベルがあらかじめ付与された訓練データ集合が与えられた場合に、前記訓練データ集合のテキストを前記特徴ベクトル生成過程により特徴ベクトルに変換し、ラベルとともに前記特徴ベクトルをサポートベクトルマシンに適用して、当該サポートベクトルマシンに学習を行って、サポートベクトルマシンによるテキスト分類器を生成する分類器生成過程と、
あるカテゴリーに属すか否かが未知のテキストが与えられる場合に、前記特徴ベクトル生成過程により当該テキストの特徴ベクトルを生成し、前記分類器生成過程により生成されたテキスト分類器を用いて、当該テキストがそのカテゴリーに属するか否かを判定するカテゴリー判定過程と
の処理をデータ処理装置により実行することを特徴とするテキスト分類処理方法。
【請求項２】
請求項１に記載のテキスト分類処理方法において、
前記分類器生成過程は、
訓練データ集合を複数の部分集合に分割し、各部分集合に対して順番に、サポートベクトルマシンを適用し、一時的な分類器を学習させた後、その分類器からサポートベクトルを抽出し、抽出されたサポートベクトルと次の部分集合を混合し、再びサポートベクトルマシンの入力とするという処理を繰り返す
ことを特徴とするテキスト分類処理方法。
【請求項３】
形態素解析が困難な文字列を含むテキストを格納したデータ格納装置と、前記テキストがあるカテゴリーに属すか否かを判定するテキスト分類処理を行うデータ処理装置を備え、前記テキストを分類するテキスト分類処理装置であって、
前記テキストから一定長以下の任意の文字列を抽出し、当該文字列の特徴量を計算し、前記特徴量を素性とした特徴ベクトルを生成する特徴ベクトル生成手段と、
前記テキストがあるカテゴリーに属するか否かに関するラベルがあらかじめ付与された訓練データ集合が与えられた場合に、前記訓練データ集合のテキストを前記特徴ベクトル生成手段により特徴ベクトルに変換し、ラベルとともに前記特徴ベクトルをサポートベクトルマシンに適用して、当該サポートベクトルマシンに学習を行って、サポートベクトルマシンによるテキスト分類器を生成する分類器生成手段と、
あるカテゴリーに属すか否かが未知のテキストが与えられる場合に、前記特徴ベクトル生成手段により当該テキストの特徴ベクトルを生成し、前記分類器生成手段により生成されたテキスト分類器を用いて、当該テキストがそのカテゴリーに属するか否かを判定するカテゴリー判定手段と、
を備えることを特徴とするテキスト分類処理装置。
【請求項４】
請求項１に記載のテキスト分類処理装置において、
前記分類器生成手段は、
訓練データ集合を複数の部分集合に分割し、各部分集合に対して順番に、サポートベクトルマシンを適用し、一時的な分類器を学習させた後、その分類器からサポートベクトルを抽出し、抽出されたサポートベクトルと次の部分集合を混合し、再びサポートベクトルマシンの入力とするという処理を繰り返す
ことを特徴とするテキスト分類処理装置。
【請求項５】
形態素解析が困難な文字列を含むテキストがあるカテゴリーに属すか否かを判定するテキスト分類処理をコンピュータにより実行するテキスト分類処理プログラムであって、
前記テキストから一定長以下の任意の文字列を抽出し、当該文字列の特徴量を計算し、前記特徴量を素性とした特徴ベクトルを生成する特徴ベクトル生成手段と、
前記テキストがあるカテゴリーに属するか否かに関するラベルがあらかじめ付与された訓練データ集合が与えられた場合に、前記訓練データ集合のテキストを前記特徴ベクトル生成手段により特徴ベクトルに変換し、ラベルとともに前記特徴ベクトルをサポートベクトルマシンに適用して、当該サポートベクトルマシンに学習を行って、サポートベクトルマシンによるテキスト分類器を生成する分類器生成手段と、
あるカテゴリーに属すか否かが未知のテキストが与えられる場合に、前記特徴ベクトル生成手段により当該テキストの特徴ベクトルを生成し、前記分類器生成手段により生成されたテキスト分類器を用いて、当該テキストがそのカテゴリーに属するか否かを判定するカテゴリー判定手段と、
としてコンピュータを機能させるテキスト分類処理プログラム。
【請求項６】
請求項１に記載のテキスト分類処理プログラムにおいて、
前記分類器生成手段は、
訓練データ集合を複数の部分集合に分割し、各部分集合に対して順番に、サポートベクトルマシンを適用し、一時的な分類器を学習させた後、その分類器からサポートベクトルを抽出し、抽出されたサポートベクトルと次の部分集合を混合し、再びサポートベクトルマシンの入力とするという処理を繰り返す
ことを特徴とするテキスト分類処理プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、例えば、形態素解析が困難な文字列を含むテキストについて、当該テキストがあるカテゴリーに属すか否かを判定するテキスト分類処理を行うテキスト分類処理方法、および、そのような分類を実現する分類器をカテゴリーに属すか否かについてあらかじめラベル付けされたテキスト集合の訓練データ集合から構築するための方法に関するもののである。
【背景技術】
【０００２】
テキスト分類については、これまでに多くの研究開発がなされてきた。例えば、不適切な電子メイル（ジャンクメイルあるいはスパムと呼ばれるユーザーにとって不要な電子メイル）を除去したり、カスタマーセンターにおいて、問い合わせメイルを自動的に担当者に振り分けたり、することを目的として開発され、ニュース記事をトピック毎に整理したり等、さまざまな応用を目指して、多くの研究開発がなされている。
【０００３】
テキスト分類を実現する一つの方法は、あらかじめ用意した分類器により分類する方法である。典型的には、あらかじめ定義したＩＦ・ＴＨＥＮルールに基づいてテキストを分類する方法である。例えば、「東証」、「終値」という単語と数字が出現すれば「株式市場」に関するテキストであるというようなルールを用いて、テキストを分類する方法である。しかし、残念ながら、このような方法によるテキスト分類は、テキストの数や語彙数が増大すると、整合性を保ちつつ、分類のためのルールを維持管理してくことが困難になるという問題がある。
【０００４】
従って、近年では、このような静的な分類器を用いる手法に代わって、データから必要に応じて、動的に分類器を学習させる手法が主流となっている。この種の分類器については、ＩＦ・ＴＨＥＮルール、ニューラルネットワーク、決定木、確率モデル、分離超平面等、さまざまな表現形式が用いられるが、各表現形式毎にさまざまな学習アルゴリズムが提案されている。これらの分類器の学習法については、一般的に知られているところであり、それぞれの説明は当業者にとっては周知であるので、ここでの説明は省略する。
【０００５】
ここでは、本発明において利用するサポートベクトルマシン（非特許文献１）について概要を説明する。データがｎ次元空間上の点として表現されており、さらに、これらの点には、あるカテゴリーに属するか否かを表す２種類のラベル＋１と−１の内一つが付与されているとする。このとき、サポートベクトルマシンは、これらのラベル付のデータをある基準の下で最適に分離するｎ次元空間の超平面を計算し、この超平面によりデータを分類する方法である。そして、データの分類では、ラベルが未知のデータが与えられると、このデータが超平面のどちら側にあるかを調べることにより、このデータのラベルを予測することができる。つまり、何らかの方法で、テキストをｎ次元空間上の点（特徴ベクトルと呼ばれる）として表現してしまえば、テキストがあるカテゴリーに属するか否かを判定する分類器を、サポートベクトルマシンを用いて、ｎ次元空間の超平面を計算し、データから学習させて、適宜に分類器を生成することができる。
【０００６】
テキスト分類器の学習にサポートベクトルマシンを用いる利点の一つは、超平面の次元が仮に非常に高次元であったとしても、カーネルトリックと呼ばれる方法を用いると、この次元に依存しない計算量で、超平面を学習させることができるという点である。もう一つの利点は、特徴ベクトルの次元が非常に高次元であったとしても、分類器が訓練データに過剰に適合して一般性を失う危険性（オーバーフィッティングと呼ばれる）が、他の学習法と比較して小さいことが経験的に知られている点である。
【０００７】
例えば、非特許文献２においては、テキストを、出現する単語の特徴量を成分(素性)とする特徴ベクトルとして表現した場合、サポートベクトルマシンを用いることで、他の学習法を用いるよりも高精度の分類器を学習可能であることが示されている。しかも、１万個を超える単語を用いても、オーバーフィッティングを起こすことなく、むしろ学習性能が向上することが示されている。なお、サポートベクトルマシンのテキスト分類への適用に関するより詳細な情報及び理論的な解析については、非特許文献４を参照することができる。
【０００８】
特許文献１においては、日本語のテキストから形態素解析により単語を抽出して、品詞情報などに基づいて単語を分析して、単語を素性とする特徴ベクトルを生成した上で、サポートベクトルマシンを適用する技術を開示している。
【０００９】
特許文献２には、空白または句読点で区切られたトークンを基本的な素性として、特徴ベクトルを計算した上で、サポートベクトルマシンを用いて超平面を学習させ、得られた超平面の重みベクトルを含むある種の単調関数を分類器として用いるテキスト分類技術を開示している。
【００１０】
これらの文献に見られるように、テキスト分類においては、単語を素性する特徴ベクトルが用いられることが多いが、単語の並びが重要な場合には、特許文献３に見られるように、単語のＮ個の連接（Ｎグラムと呼ばれる）を素性とする場合もある。また、特許文献５、特許文献６あるいは特許文献１８等に見られるように、素性として用いるべき単語、フレーズ、あるいは係り受けの構造などを、あらかじめ素性辞書に用意しておき、この辞書を用いて素性を抽出し、特徴ベクトルを生成する方法も一般的に用いられている。
【００１１】
また、日本語のテキストの場合、英語のテキストとは異なり、単語が分かち書きされていないので、通常、形態素解析により単語を抽出するが、この際、やはり素性（形態素）辞書を用いることになる。素性辞書を用いることの問題点は、辞書に登録されていない素性を抽出できないことであるが、前後の関係などから、未登録語を未知語として検出できる場合も多いので、標準的な日本語のテキスト分類において、素性辞書の使用が問題になることは少なく、実際、以下に引用した日本語テキスト分類に関する特許文献においては、いずれも何らかの素性辞書を用いている。
【００１２】
一方で、素性辞書を用いずに、テキスト中の任意の文字列を分析の対象とする方法も知られている。例えば、特許文献４では、テキスト中に現れる長さＮの文字列（文字のＮグラムと呼ぶ）を抽出し重要度を計算することで、この文字列が一般表現であるか専門表現であるかを判定する技術を開示している。このような、文字Ｎグラムの使用は、素性辞書に制約されないという長所を持つ一方、言語的に意味のない文字列が抽出されてしまうという問題があり、このような文字列をいかに排除するかが特許文献４で開示された技術の要点の一つである。しかし、テキストのカテゴリー分類に適用する場合は、ある文字列が言語的に意味があるかどうかは問題ではなく、分類に寄与するかどうかが問題となるわけであり、任意の文字Ｎグラムを素性とする特徴ベクトルを用いて、テキスト分類器の学習を行い、学習の過程で分類に寄与しない文字列を自動的に排除するような手法が有効であるかどうかは、興味深い未知の問題である。
【００１３】
このような問題に関する数少ない研究としては、非特許文献３が挙げられる。ここでは、単語が分かち書きされた英語のテキストに対して、連続する３文字を一つの素性とする特徴ベクトルを用いた場合のテキスト分類性能を、言語知識を用いて生成した特徴ベクトルのテキスト分類性能と比較している。非特許文献３によれば、文字Ｎグラムを用いる場合、１０００個より多い素性を用いるだけで性能が劣化し始めるということ、また、品詞に基づく素性の選別や語の活用部分を除去するステミングといった言語知識を利用することでより良い性能が得られることを報告している。しかし、素性の数が多くてもオーバーフィッティングを起こし難いサポートベクトルマシンを用いた場合、あるいは、単語が分かち書きされておらず、しかも上述したような言語的な知識が有効に機能しないような日本語テキストを対象とする場合、文字Ｎグラムを素性とする手法が有効であるかどうかは、興味深い未知の問題であって、本発明が解決する課題である。
【００１４】
この種のテキスト分類に関係する従来における技術の文献としては、次のような各文献が参照できる。
【特許文献１】特開２００１−２２７２７号公報
【特許文献２】特表２００２−５１９７６６号公報
【特許文献３】特開２００４−３４８２３９号公報
【特許文献４】特開平１１−２７２７０２号公報
【特許文献５】特開２００５−２３４７３１号公報
【特許文献６】特開２００５−１９０２８４号公報
【特許文献７】特開２００４−２４０５１７号公報
【特許文献８】特開２００４−２３４０５１号公報
【特許文献９】特開２００３−２７１６１６号公報
【特許文献１０】特開２００２−７４３３号公報
【特許文献１１】特開２００２−３０４４０１号公報
【特許文献１２】特開２００１−３１２５０１号公報
【特許文献１３】特開２０００−１７２６９１号公報
【特許文献１４】特開平１１−３２８２１１号公報
【特許文献１５】特開平１１−２９６５５２号公報
【特許文献１６】特開平１１−１６７５８１号公報
【特許文献１７】特開平１１−１６１６７１号公報
【特許文献１８】特開平９−２６９６３号公報
【特許文献１９】特開２００３−２５６８０１号公報
【非特許文献１】Ｖ．Ｖａｐｎｉｋ：  Ｔｈｅ  Ｎａｔｕｒｅ  ｏｆ  Ｓｔａｔｉｓｔｉｃａｌ  Ｌｅａｒｎｉｎｇ  Ｔｈｅｏｒｙ，  Ｓｐｒｉｎｇｅｒ−Ｖｅｒｌａｇ，  １９９５．
【非特許文献２】Ｔ．Ｊｏａｃｈｉｍｓ：  Ｔｅｘｔ  Ｃａｔｅｇｏｒｉｚａｔｉｏｎ  ｗｉｔｈ  Ｓｕｐｐｏｒｔ  Ｖｅｃｔｏｒ  Ｍａｃｈｉｎｅｓ：  Ｌｅａｒｎｉｎｇ  ｗｉｔｈ  Ｍａｎｙ  Ｒｅｌｅｖａｎｔ  Ｆｅａｔｕｒｅｓ，  Ｐｒｏｃ．  ｏｆ    Ｅｕｒｏｐｅａｎ  Ｃｏｎｆｅｒｅｎｃｅ  ｏｎ  Ｍａｃｈｉｎｅ  Ｌｅａｒｎｉｎｇ，  ｐｐ．１３７−１４２，  １９９８．
【非特許文献３】Ｇ．Ｎｅｕｍａｎｎ  ａｎｄ  Ｓ．Ｓｃｈｍｅｉｅｒ：  Ｃｏｍｂｉｎｉｎｇ  ｓｈａｌｌｏｗ  ｔｅｘｔ  ｐｒｏｃｅｓｓｉｎｇ  ａｎｄ  ｍａｃｈｉｎｅ  ｌｅａｒｎｉｎｇ  ｉｎ  ｒｅａｌ  ｗｏｒｌｄ  ａｐｐｌｉｃａｔｉｏｎｓ，  Ｐｒｏｃ．  ｏｆ  Ｍａｃｈｉｎｅ  Ｌｅａｒｎｉｎｇ  ｆｏｒ  Ｉｎｆｏｒｍａｔｉｏｎ  Ｆｉｌｔｅｒｉｎｇ，  １９９９．
【非特許文献４】Ｔ．Ｊｏａｃｈｉｍｓ：  Ｌｅａｒｎｉｎｇ  ｔｏ  ｃｌａｓｓｉｆｙ  ｔｅｘｔ  ｕｓｉｎｇ  ｓｕｐｐｏｒｔ  ｖｅｃｔｏｒ  ｍａｃｈｉｎｅｓ：  ｍｅｔｈｏｄｓ，ｔｈｅｏｒｙ，ａｎｄ  ａｌｇｏｒｉｔｈｍｓ，Ｋｌｕｗｅｒ  Ａｃａｄｅｍｉｃ  Ｐｕｂｌｉｓｈｅｒｓ，２００２．
【非特許文献５】Ｎ．Ｃｒｉｓｔｉａｎｉｎｉ  ａｎｄ  Ｊ．Ｓｈａｗｅ−Ｔａｙｌｏｒ：  Ａｎ  Ｉｎｔｒｏｄｕｃｔｉｏｎ  ｔｏ  Ｓｕｐｐｏｒｔ  Ｖｅｃｔｏｒ  Ｍａｃｈｉｎｅｓ，  Ｃａｍｂｒｉｄｇｅ  Ｕｎｉｖｅｒｓｉｔｙ  Ｐｒｅｓｓ，  ２００２．
【非特許文献６】Ｉ．Ｇｕｙｏｎ  ｅｔ  ａｌ．：  Ｇｅｎｅ  ｓｅｌｅｃｔｉｏｎ  ｆｏｒ  ｃａｎｃｅｒ  ｃｌａｓｓｉｆｉｃａｔｉｏｎ  ｕｓｉｎｇ  ｓｕｐｐｏｒｔ  ｖｅｃｔｏｒ  ｍａｃｈｉｎｅｓ，  Ｍａｃｈｉｎｅ  Ｌｅａｒｎｉｎｇ，  ｐｐ．３８９−４２２，  Ｖｏｌ．４６，  ２００２．
【発明の開示】
【発明が解決しようとする課題】
【００１５】
ところで、例えば、形態素解析が困難な文字列を含むようなテキストについては、すなわち、テキストの特性が異なる場合については、そのテキスト分類を行う際には、従来の技術のテキスト分類の手法がそのままでは適用できない。特に、インターネット上の日本語の掲示板サイトにおいて、不適切な書き込みテキストを同定して、除去する場合に適用するには、従来のテキスト分類手法では十分な分類精度が得られない。掲示板サイトにおける書き込みテキストは、ニュース記事や電子メイルに見られるテキストとは異なる以下のような特徴を有している。
（ａ）人名、製品名などの固有名詞、ジャーゴン、伏字、絵文字等の一般的な辞書には登録されていな語が多数出現する。
（ｂ）書き込みは、文法的に正しくない場合が多い。
（ｃ）一件の書き込みは短い。一方で、書き込み件数は非常に多い。
【００１６】
単語が分かち書きされる英語とは異なり、日本語のテキストから単語を抽出するためには、通常、形態素解析等の言語処理が行われる。このような言語処理には、辞書や文法のような言語的な知識が、陽にあるいは暗黙のうちに用いられる。掲示板サイトの書き込みテキストの場合には、例えば、上述した特性（ａ）、特性（ｂ）の影響で、言語知識の有効性が低下し、間違った形態素への分割や、未登録語を未知語と認識できない場合が頻繁に起こってしまい、形態素解析の性能が著しく劣化してしまう。したがって、間違った形態素から生成された特徴ベクトルを用いたテキスト分類の性能も、同様に劣化してしまうという問題がある。
【００１７】
また、掲示板サイトの書き込みが不適切か否かを判定するテキスト分類器の学習に、サポートベクトルマシンを用いる場合、学習に要する計算コストの問題が生じる。一般的には、サポートベクトルマシンによる分類器を学習させるために要する計算時間は、他の学習法に比べて長くなる傾向があり、経験的には、訓練データの数の２乗から３乗に比例する時間を要する。したがって、掲示板サイトの書き込み件数が増加すると、学習に要する時間が急速に増加してしまうという問題が生じる。また、学習の効率化のために、カーネルマトリックスと呼ばれる訓練データの特徴ベクトル間の内積を格納した行列を用いる場合が多いが、この場合には、行列を格納するためには、訓練データ数の２乗に比例するメモリ領域が必要になり、掲示板サイトの書き込み件数の増加にともなって、急速にメモリ消費量が増加してしまうという問題も生じる。
【００１８】
本発明は、上記のような様々な問題を解決するためになされたものであり、本発明の目的は、素性辞書などの言語知識を用いることなく、テキストのみを用いて、特徴ベクトルを生成し、カテゴリーが付与された大量の特徴ベクトルを訓練データとして与える場合においても、計算時間・領域に関して効率良く、テキスト分類器の学習を行うことができ、カテゴリーが未知のテキストが与えられると、これに対応する特徴ベクトル生成し、学習されたテキスト分類器を用いて、テキストのカテゴリーを判定することができるテキスト分類処理法、テキスト分類処理装置ならびにテキスト分類処理プログラムを提供することにある。
【課題を解決するための手段】
【００１９】
上記のような目的を達成するため、本発明は、第１の態様として、本発明によるテキスト分類処理方法は、例えば、形態素解析が困難な文字列を含むテキストを格納したデータ格納装置と、前記テキストがあるカテゴリーに属すか否かを判定するテキスト分類処理を行うデータ処理装置を備え、前記テキストを分類するテキスト分類処理方法であって、前記テキストから一定長以下の任意の文字列を抽出し、当該文字列の特徴量を計算し、前記特徴量を素性とした特徴ベクトルを生成する特徴ベクトル生成過程と、前記テキストがあるカテゴリーに属するか否かに関するラベルがあらかじめ付与された訓練データ集合が与えられた場合に、前記訓練データ集合のテキストを前記特徴ベクトル生成過程により特徴ベクトルに変換し、ラベルとともに前記特徴ベクトルをサポートベクトルマシンに適用して、当該サポートベクトルマシンに学習を行って、サポートベクトルマシンによるテキスト分類器を生成する分類器生成過程と、あるカテゴリーに属すか否かが未知のテキストが与えられる場合に、前記特徴ベクトル生成過程により当該テキストの特徴ベクトルを生成し、前記分類器生成過程により生成されたテキスト分類器を用いて、当該テキストがそのカテゴリーに属するか否かを判定するカテゴリー判定過程との処理をデータ処理装置により実行するように構成される。
【００２０】
この場合に、前記分類器生成過程は、訓練データ集合を複数の部分集合に分割し、各部分集合に対して順番に、サポートベクトルマシンを適用し、一時的な分類器を学習させた後、その分類器からサポートベクトルを抽出し、抽出されたサポートベクトルと次の部分集合を混合し、再びサポートベクトルマシンの入力とするという処理を繰り返すように構成される。
【００２１】
本発明は、第２の態様として、本発明によるテキスト分類処理装置が、例えば、形態素解析が困難な文字列を含むテキストを格納したデータ格納装置と、前記テキストがあるカテゴリーに属すか否かを判定するテキスト分類処理を行うデータ処理装置を備え、前記テキストを分類するテキスト分類処理装置であって、前記テキストから一定長以下の任意の文字列を抽出し、当該文字列の特徴量を計算し、前記特徴量を素性とした特徴ベクトルを生成する特徴ベクトル生成手段と、前記テキストがあるカテゴリーに属するか否かに関するラベルがあらかじめ付与された訓練データ集合が与えられた場合に、前記訓練データ集合のテキストを前記特徴ベクトル生成手段により特徴ベクトルに変換し、ラベルとともに前記特徴ベクトルをサポートベクトルマシンに適用して、当該サポートベクトルマシンに学習を行って、サポートベクトルマシンによるテキスト分類器を生成する分類器生成手段と、あるカテゴリーに属すか否かが未知のテキストが与えられる場合に、前記特徴ベクトル生成手段により当該テキストの特徴ベクトルを生成し、前記分類器生成手段により生成されたテキスト分類器を用いて、当該テキストがそのカテゴリーに属するか否かを判定するカテゴリー判定手段とを備えるように構成される。
【００２２】
この場合に、前記分類器生成手段は、訓練データ集合を複数の部分集合に分割し、各部分集合に対して順番に、サポートベクトルマシンを適用し、一時的な分類器を学習させた後、その分類器からサポートベクトルを抽出し、抽出されたサポートベクトルと次の部分集合を混合し、再びサポートベクトルマシンの入力とするという処理を繰り返すように構成される。
【００２３】
また、本発明は、第３の態様として、本発明によるテキスト分類処理プログラムは、例えば、形態素解析が困難な文字列を含むテキストがあるカテゴリーに属すか否かを判定するテキスト分類処理をコンピュータにより実行するテキスト分類処理プログラムであって、前記テキストから一定長以下の任意の文字列を抽出し、当該文字列の特徴量を計算し、前記特徴量を素性とした特徴ベクトルを生成する特徴ベクトル生成手段と、前記テキストがあるカテゴリーに属するか否かに関するラベルがあらかじめ付与された訓練データ集合が与えられた場合に、前記訓練データ集合のテキストを前記特徴ベクトル生成手段により特徴ベクトルに変換し、ラベルとともに前記特徴ベクトルをサポートベクトルマシンに適用して、当該サポートベクトルマシンに学習を行って、サポートベクトルマシンによるテキスト分類器を生成する分類器生成手段と、あるカテゴリーに属すか否かが未知のテキストが与えられる場合に、前記特徴ベクトル生成手段により当該テキストの特徴ベクトルを生成し、前記分類器生成手段により生成されたテキスト分類器を用いて、当該テキストがそのカテゴリーに属するか否かを判定するカテゴリー判定手段と、としてコンピュータを機能させるものある。
【００２４】
この場合に、前記分類器生成手段は、訓練データ集合を複数の部分集合に分割し、各部分集合に対して順番に、サポートベクトルマシンを適用し、一時的な分類器を学習させた後、その分類器からサポートベクトルを抽出し、抽出されたサポートベクトルと次の部分集合を混合し、再びサポートベクトルマシンの入力とするという処理を繰り返すように構成される。
【発明の効果】
【００２５】
このように構成された本発明のテキスト分類処理方法、テキスト分類処理装置およびテキスト分類処理プログラムによれば、言語知識の有効性の乏しいテキストに対して、素性辞書などの言語知識を用いることなく、一定長以下の任意の文字列を素性とする特徴ベクトルを生成し、カテゴリーに入るか否かのラベルが付与された特徴ベクトル集合から、テキスト分類器をサポートベクトルマシンに学習させることが可能になる。これが少ない計算資源で行うことができ、しかも、カテゴリーが未知のテキストが与えられるとき、学習された分類器を用いて、このテキストのカテゴリーを高精度に判定（予測）することが可能になる。
【発明を実施するための最良の形態】
【００２６】
以下、本発明を実施する場合の一形態について図面を参照して説明する。図１は、本発明に係るテキスト分類処理方法の処理フローの一例を示すフローチャートである。本発明のテキスト分類処理においては、基本的な処理として、図１に示すように、テキストに現れる長さが一定長以下の任意の文字列を抽出し特徴量を計算して、これら特徴量を素性とする特徴ベクトルを生成する特徴ベクトル生成過程（Ｐ１）と、カテゴリーが付与された特徴ベクトル集合を入力として、サポートベクトルマシンを用いて分類器を生成する分類器生成過程（Ｐ２）と、未分類テキストを、前記特徴ベクトル生成過程（Ｐ１）により特徴ベクトルに変換した後、前記分類器生成過程（Ｐ２）により学習された分類器を用いてカテゴリーを判定するカテゴリー判定過程（Ｐ３）の各処理を行う。
【００２７】
すなわち、本発明によるテキスト分類処理では、例えば、形態素解析が困難な文字列を含むテキストを格納したデータ格納装置と、前記テキストがあるカテゴリーに属すか否かを判定するテキスト分類処理を行うデータ処理装置を備えており、このデータ処理装置により、テキストを分類するテキスト分類処理を行う。この場合に、テキストから一定長以下の任意の文字列を抽出し、当該文字列の特徴量を計算し、前記特徴量を素性とした特徴ベクトルを生成する特徴ベクトル生成過程（Ｐ１）と、テキストがあるカテゴリーに属するか否かに関するラベルがあらかじめ付与された訓練データ集合が与えられた場合に、訓練データ集合のテキストを前記特徴ベクトル生成過程により特徴ベクトルに変換し、ラベルとともに前記特徴ベクトルをサポートベクトルマシンに適用して、当該サポートベクトルマシンに学習を行って、サポートベクトルマシンによるテキスト分類器を生成する分類器生成過程（Ｐ２）と、あるカテゴリーに属すか否かが未知のテキストが与えられる場合に、前記特徴ベクトル生成過程（Ｐ１）により当該テキストの特徴ベクトルを生成し、前記分類器生成過程により生成されたテキスト分類器を用いて、当該テキストがそのカテゴリーに属するか否かを判定するカテゴリー判定過程（Ｐ３）との処理を実行する。
【００２８】
更に詳細に説明する。テキスト分類処理を実行する場合に、まず、与えられた分類済みテキストは、計算機の主記憶上に読み込まれ（ステップ１０１）、特徴生成ベクトル過程（Ｐ１）により、テキスト中に現れる長さ一定長以下の文字列を素性とする特徴ベクトルが計算される（ステップ１０２）。
【００２９】
図２は、特徴ベクトル生成過程（Ｐ１）の詳細な処理フローを示す図である。特徴ベクトル生成過程（Ｐ１）では、まず、テキストが分類済みであるか否かを判定し（ステップ１２１）、テキストが分類済みである場合には、テキストから、長さＮ以下の任意の文字列ｓが抽出され、この文字列ｓの各テキストｔｉにおける出現頻度ＴＦ（ｓ，ｔｉ）と、この文字列が出現するテキストの数ＤＦ（ｓ）を計算する（ステップ１２２）。このテキスト中に現れる長さＮ以下の任意の文字列の出現頻度は、トライとよばれるデータ構造を用いて効率よく計算できる。このトライとよばれるデータ構造を用いる計算は、当業者には周知であり、ここでの説明は省略する。
【００３０】
次に、全ての素性の中から、数千から数万個の素性を選択し（ステップ１２３）、任意のｔに対して、特徴量ｆ（ｓｉ，ｔ）を成分とするベクトルを生成し（ステップ１２４）、これを特徴ベクトルとする。ここでは、素性の選択（ステップ１２３）を行うが、これはあまりに素性の数が多すぎる場合、オーバーフィッティングの危険性が増大したり、分類器学習時の計算コストが許容できなくなる恐れがあるからである。素性の選択には、相互情報量、カイ二乗検定などの公知の技術を用いる。
【００３１】
このようにして、選択された素性ｓ１，…，ｓｄを用いて、各テキストｔｉが、ｄ次元の特徴ベクトル（ｆ（ｓ１，ｔｉ），…，ｆ（ｓｄ，ｔｉ））に変換される。ｆ（ｓｊ，ｔｉ）は、素性ｓｊの特徴量であり、例えば、単純にＴＦ（ｓｊ，ｔｉ）を用いたり、ＴＦ（ｓｊ，ｔｉ）にｌｏｇ（Ｄ／ＤＦ（ｓｊ））（ただし、Ｄはテキストの総数）を乗じたＴＦＩＤＦ値などの標準的指標を用いる。また、これらの値は、ある特定の閾値を超えるか否かで２値化することもできる。その場合、特徴ベクトルは２値ベクトルとなり、計算資源を節約した実装が可能になる。
【００３２】
なお、特徴ベクトルの成分は、多くの場合ゼロであるので、スパースベクトル技法を用いて、大きな一つの配列ではなくて、二つの小さな配列を用いるようにした実装も可能である。すなわち、一つ目の配列には、ゼロでない値を持つ成分のインデックスを保持し、二つめの配列にはゼロでない成分の実際の値を保持する。特に、特徴ベクトルが２値ベクトルの場合は、二つ目の配列は不要となる。
【００３３】
分類済みのテキスト集合は、上述したような処理を経て、分類ラベルが付与された特徴ベクトルの集合に変換され、その後、これを訓練データとして、分類器生成過程（Ｐ２）において分類器が学習される（ステップ１０３）。
【００３４】
図３は、分類器生成過程（Ｐ２）の詳細な処理フローを説明する図である。分類器生成過程（Ｐ２）の処理では、まず、分類ラベルが付与された特徴ベクトル集合は、ｋ個の部分集合Ｄ１，…，Ｄｋに分割される（ステップ１３１）。この分割の処理は、訓練データが多すぎるために、サポートベクトルマシンの訓練に要する時間やメモリが許容できなくなることを防ぐためである。分割のサイズは、許容できる計算資源の範囲で、できるだけ大きなサイズに分割することが望ましい。したがって、もし、全ての訓練データを用いた学習が許容できるのであれば、ｋ＝１とすることが望ましい。また、分割された訓練データは、カテゴリーに属するデータと属さないデータの割合が、どれもほぼ等しくなるように分割することが望ましい。
【００３５】
次に、サポートベクトルの集合Ｓを空集合に初期化した（ステップ１３２）後で、各１≦ｉ≦ｋに対して、以下の処理を繰り返す（ステップ１３３〜１３７）。すなわち、訓練データＴをＤｉ∪Ｓとし（ステップ１３４）、Ｔを用いてサポートベクトルマシンを訓練して分類器を計算し（ステップ１３５）、訓練した分類器からサポートベクトルを抽出して、これを新たなＳとする。これをサポートベクトルの集合として（ステップ１３６）、この処理を繰り返す。
【００３６】
サポートベクトルマシンの訓練法については、本発明の本質的な部分でないので、説明を省略するが、詳細については、非特許文献１あるいは非特許文献４等に記述されているので参照できる。ここでは、本発明の理解に必要な部分だけを以下に述べるに留める。
【００３７】
Ｍ個の訓練データ集合
｛（ｙｉ，ｘｉ）｜ｙｉ＝＋１あるいは−１，ｘｉは特徴ベクトル，１≦ｉ≦Ｍ｝
が与えられるとき、サポートベクトルマシンは、ある凸二次計画問題を解き、その解を
α１＊，…，αＭ＊とするとき、以下のような超平面
【数１】
2008084064.tif 000003
を分類境界として出力する。ただし、ｂ＊は、αｉ＊＞０であるｉに対して、
ｙｉｄ（ｘｉ）＝１であるように決定する。
【００３８】
ここで、αｉ＊≠０である訓練データｘｉはサポートベクトルと呼ばれ、分類境界に最も近いところに位置する、超平面を定義するにあたって本質的なデータである。多くの場合、サポートベクトルは、訓練データに比べてかなり少ない数となり、図３に示す分類器生成過程（Ｐ２）の処理（ステップ１３４〜ステップ１３７）では、訓練データの部分集合を全て受け渡す代わりに、それと同じ情報量を持ちながらより数の少ないサポートベクトルを受け渡すことで、全ての訓練データを用いて得られる超平面を近似している。
【００３９】
また、ここでのＫ（ｘ，ｘｉ）は、カーネル関数と呼ばれ、データ間の類似性を表す関数であり、公知の多項式カーネル、ガウシアンカーネルなどを用いることができるほか、特徴ベクトルが２値ベクトルである場合は、特許文献１９で開示されたブーリアンカーネルを用いることもできる。
【００４０】
このような、サポートベクトルの抽出と学習データとの混合という方法は、また、インクリメンタルな分類器の学習とすることも可能である。つまり、図３のＳの初期化（ステップ１３２）において、Ｓを空集合にするのではなく、既に学習されている分類器から抽出したサポートベクトル集合としてＳを初期化すれば、既存の分類器に対するインクリメンタルな学習が実現できる。
【００４１】
さらに、非特許文献６あるいは特許文献１９で示された素性選択法を用いて、最終的に得られた超平面を分析し、分類に寄与しない素性を除去した上で、より分類精度の高い超平面を再学習することも可能である。
【００４２】
このように、未分類テキストが存在する場合に（ステップ１０４）、未分類テキストを読み込み（ステップ１０５）、特徴ベクトル生成過程（Ｐ１）の処理を行い（ステップ１０６）、学習された超平面を用いて、カテゴリー判定過程（Ｐ３）の処理（ステップ１０７）を行って、未分類のテキストのカテゴリーを判定する。より詳細に説明すると、特徴ベクトル生成過程（Ｐ１）により、未分類テキストを特徴ベクトルｘに変換し、ｄ（ｘ）を計算し、この値が閾値Ｄｍａｘ以上であれば、＋１のカテゴリーに、閾値Ｄｍｉｎ以下であれば−１のカテゴリーに分類し、Ｄｍｉｎより大きくＤｍａｘよりも小さい場合は、カテゴリーが不定であると判定する処理を行う。
【００４３】
図４は、本発明によるテキスト分類処理装置のハードウェア構成の一例を示すブロック図である。図４に示すように、ここでのテキスト分類処理装置１０は、ハードウェア構成として、システム制御プログラムが組み込まれたＲＯＭを内蔵しデータ処理を行うＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）１０ａによって装置全体のシステム制御がなされる。ＣＰＵ１０ａには、バス１０ｇを介してＲＡＭ（Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）１０ｂ、ハードディスクドライブ（ＨＤＤ：Ｈａｒｄ  Ｄｉｓｋ  Ｄｒｉｖｅ）１０ｃ、グラフィック処理装置１０ｄ、入力インタフェース１０ｅ、及び通信インタフェース１０ｆが接続されている。
【００４４】
ＲＡＭ１０ｂには、ＣＰＵ１０ａに実行させるＯＳ（Ｏｐｅｒａｔｉｎｇ  Ｓｙｓｔｅｍ）のプログラムや、本発明によるテキスト分類処理プログラムの少なくとも一部が一時的に格納される。また、ＲＡＭ１０ｂには、ＣＰＵ１０ａによる処理に必要な各種データが保存される。ＨＤＤ１０ｃには、上記のＯＳやアプリケーションプログラム、各種データなどが格納される。
【００４５】
グラフィック処理装置１０ｄには、モニタ１０ｈが接続されている。グラフィック処理装置１０ｄは、ＣＰＵ１０ａからの命令に従って、入出力処理を行うための画像をモニタ１０ｈの表示画面に表示させる。入力インタフェース１０ｅには、キーボード１０ｉと、マウス１０ｊとが接続されている。入力インタフェース１０ｅは、キーボード１０ｉやマウス１０ｊから送られてくる信号を、バス１０ｇを介してＣＰＵ１０ａに送信する。
【００４６】
通信インタフェース１０ｆは、ネットワーク３０に接続されて、本発明によるテキスト分類処理装置が、ネットワークシステムの中のサーバとして用いられる構成とされてもよい。もちろん、装置単体として動作するように構成されてもよい。図５に示すように、ネットワークに接続された分類サーバ２０として動作する場合は、ユーザーが利用するクライアント２１は、ネットワーク３０を介して、分類サーバ２０にアクセスし、分類済みテキスト集合を送信して、分類器の構築を要求したり、未分類テキスト集合を送信して、テキストの分類を要求し、分類カテゴリーを受信するようにして、システムを利用することができる。また、この際に、用いられるテキスト集合は、ファイルサーバ２２に格納しておき、クライアント２１は、分類サーバ２０に対してファイルサーバ２２上のファイル名を指定し、分類サーバ２０は、必要に応じて、指定されたファイルをネットワークを介して読み込むことも可能である。
【００４７】
次に、テキスト分類処理装置１０が備える処理モジュールの各機能について説明する。図６は、テキスト分類処理装置の機能ブロック図であり、テキスト分類処理装置１０は、処理モジュールとして、特徴ベクトル生成手段（Ｂ１）と分類器生成手段（Ｂ２）とカテゴリー判定手段（Ｂ３）を有している。
【００４８】
特徴ベクトル生成手段（Ｂ１）は、分類済みのテキスト集合が与えられる場合には、テキスト中に現れる一定長以下の任意の文字列を抽出した後、素性とする文字列を数千〜数万個に絞り込む。そして、各テキスト、各素性毎に特徴量を計算し、この特徴量を成分とする特徴ベクトルを生成する。また、特徴ベクトル生成手段（Ｂ１）は、未分類テキスト集合が与えられるとき、既に選択された素性に対して特徴量を計算して、これを成分とする特徴ベクトルを生成する。
【００４９】
分類器生成手段（Ｂ２）は、分類ラベルが付与された特徴ベクトル集合から、サポートベクトルマシンを用いて分類器（Ｂ４）を構築し、ＲＡＭ１０ｂあるいはＨＤＤ１０ｃに格納する。この際、既に述べたように、特徴ベクトル集合が大きすぎる場合には、複数の部分集合に分割し、各部分集合に対して順番に、サポートベクトルマシンを適用し、一時的な分類器を学習させた後、その分類器からサポートベクトルを抽出し、抽出されたサポートベクトルと次の部分集合を混合し、再びサポートベクトルマシンの入力とするという処理を繰り返すことができる。
【００５０】
カテゴリー判定手段（Ｂ３）は、未分類のテキストが与えられるとき、前期特徴ベクトル生成手段（Ｂ１）により、このテキストの特徴ベクトルを生成し、前記分類器生成手段（Ｂ２）により生成された分類器を用いて、このテキストがカテゴリーに属するか否かを判定する。
【００５１】
図７は、本発明によるテキスト分類処理を図５で示すような分類サーバ２０上で実行する場合のプログラムのフローチャートである。この処理では、図７に示すように、クライアント２１から学習リクエストがあると、分類済みテキストを読み込み（Ｓ１）、特徴ベクトル生成ステップ（Ｓ２）によってテキストから特徴ベクトルを生成し、分類器生成ステップ（Ｓ３）によって分類器を生成する。そして、生成された分類器をＲＡＭ１０ｂあるいはＨＤＤ１０ｃに格納した後、クライアント２１に処理終了通知（Ｓ５）を行って、再びリクエストを待って待機する。また、分類リクエストがある場合は、未分類テキストを読み込み（Ｓ６）、特徴ベクトル生成ステップ（Ｓ３）によって特徴ベクトルを生成し、ＲＡＭ１０ｂあるいはＨＤＤ１０ｃ上に格納された分類器を読み込んだ後、カテゴリー判定ステップ（Ｓ８）によって未分類テキストのカテゴリーを判別（予測）し、クライアント２１に送信して（Ｓ９）、再び待機する。
【００５２】
このプログラムがインストールされた分類サーバ２０は、各ステップの処理を実行することにより、特徴ベクトル生成手段、分類器生成手段、カテゴリー判定手段として機能するテキスト分類処理装置を構成する。
【産業上の利用可能性】
【００５３】
以上に説明したように、本発明によるテキスト分類処理装置によれば、例えば、インターネット掲示板の書き込みテキストのような、大量で、しかも一般的な言語知識の適用が困難なテキストに対して、不適切な書き込みを高効率・高精度に同定・除去可能なテキストフィルタリング装置として利用される。
【図面の簡単な説明】
【００５４】
【図１】本発明に係るテキスト分類処理方法の処理フローの一例を示すフローチャートである。
【図２】本発明によるテキスト分類処理方法の特徴ベクトル生成過程を説明する図である。
【図３】本発明によるテキスト分類処理方法の分類器生成過程を説明する図である。
【図４】本発明によるテキスト分類処理装置のハードウェア構成の一例を示すブロック図である。
【図５】本発明によるテキスト分類処理装置を分類サーバとしてネットワーク上で動作させる場合のシステム構成図である。
【図６】本発明によるテキスト分類処理装置の機能ブロック構成図である。
【図７】本発明によるテキスト分類処理プログラムを分類サーバ上で動作させる場合の処理フローの一例を示すフローチャートである。
【図１】
2008084064.tif 000004
【図２】
2008084064.tif 000005
【図３】
2008084064.tif 000006
【図４】
2008084064.tif 000007
【図５】
2008084064.tif 000008
【図６】
2008084064.tif 000009
【図７】
2008084064.tif 000010