(57)【要約】  文字列照合部１１０は入力文書８０１と照合条件情報１０９が示す分類キーワードとの文字列照合により入力文書８０１のカテゴリを特定する。学習データ２０９は各カテゴリの統計情報を示す。分類部２２０は入力文書８０１と学習データ２０９が示す統計情報との対応比率に基づいて入力文書８０１のカテゴリを特定する。正解比較部１２０は文字列照合部１１０が特定したカテゴリと正解情報８０３のカテゴリとを比較する。学習部２１０は分類部２２０が特定したカテゴリと正解情報８０３のカテゴリとを比較する。エラー率算出部３１０は正解比較部１２０の比較結果と学習部２１０の比較結果とに基づいて文字列照合型フィルタ部１００と学習型フィルタ部２００との分類エラー率とを算出する。結果出力部３２０は分類エラー率の小さいフィルタにより特定されたカテゴリを分類対象文書８０４の分類結果３０１として出力する。
2009087757.tif 000002
【特許請求の範囲】
【請求項１】
複数種類のうち少なくともいずれかの種類に属する文書データを入力機器から入力し、入力した前記文書データの属する種類を特定する所定の分類処理をＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）を用いて実行し、入力した前記文書データの属する種類を第１の分類情報として特定する第１のフィルタ部と、
前記文書データを入力機器から入力し、前記第１のフィルタ部の前記分類処理とは異なる所定の分類処理をＣＰＵを用いて実行し、入力した前記文書データの属する種類を第２の分類情報として特定する第２のフィルタ部と、
属する種類が予め特定されている複数の学習文書データそれぞれを前記文書データとして前記第１のフィルタ部が特定した前記複数の学習文書データの前記第１の分類情報と予め特定されている前記属する種類を示す前記複数の学習文書データの正解情報とをＣＰＵを用いて比較し、比較結果に基づいて前記第１の分類情報が前記正解情報に一致したか否かを示す前記複数の学習文書データの第１の学習結果情報を生成し、生成した前記複数の学習文書データの前記第１の学習結果情報を記憶機器に記憶する第１の正解比較部と、
前記複数の学習文書データそれぞれを前記文書データとして前記第２のフィルタ部が特定した前記複数の学習文書データの前記第２の分類情報と前記複数の学習文書データの前記正解情報とをＣＰＵを用いて比較し、比較結果に基づいて前記第２の分類情報が前記正解情報に一致したか否かを示す前記複数の学習文書データの第２の学習結果情報を生成し、生成した前記複数の学習文書データの前記第２の学習結果情報を記憶機器に記憶する第２の正解比較部と、
前記第１の正解比較部が生成した前記複数の前記学習文書データの前記第１の学習結果情報に基づいて前記第１の分類情報が前記正解情報に一致しなかった割合を示す第１のエラー率をＣＰＵを用いて算出すると共に、前記第２の正解比較部が生成した前記複数の前記学習文書データの前記第２の学習結果情報に基づいて前記第２の分類情報が前記正解情報に一致しなかった割合を示す第２のエラー率をＣＰＵを用いて算出するエラー率算出部と、
特定の種類に分類する対象である分類対象文書データを前記文書データとして前記第１のフィルタ部が特定した前記第１の分類情報と、前記分類対象文書データを前記文書データとして前記第２のフィルタ部が特定した前記第２の分類情報と、前記エラー率算出部が算出した前記第１のエラー率と、前記エラー率算出部が算出した前記第２のエラー率とに基づいて前記分類対象文書データの属する種類をＣＰＵを用いて特定し、特定した種類を分類結果として出力機器に出力する結果出力部と
を備えたことを特徴とする情報フィルタリングシステム。
【請求項２】
前記第１のフィルタ部は、
前記学習文書データと前記正解情報との組を入力機器から複数組入力し、各種類に属する各学習文書データに共通する統計情報を学習データとして生成する統計処理を前記複数組に基づいてＣＰＵを用いて実行し、前記統計処理により生成した前記学習データを記憶機器に記憶する学習部と、
前記分類対象文書データを入力機器から入力し、前記学習部により生成された前記学習データが示す前記統計情報に対して前記分類対象文書データの対応する比率を種類毎に分類確率としてＣＰＵを用いて算出し、種類毎の前記分類確率に基づいて前記分類対象文書データの属する種類を特定する学習型分類部と
を備えた学習型フィルタ部である
ことを特徴とする請求項１記載の情報フィルタリングシステム。
【請求項３】
前記学習部は、
ベイズ理論と、ＳＶＭ（Ｓｕｐｐｏｒｔ  Ｖｅｃｔｏｒ  Ｍａｃｈｉｎｅ）と、ニューラルネットワークモデルとのいずれかを用いて前記統計処理を行う
ことを特徴とする請求項２記載の情報フィルタリングシステム。
【請求項４】
前記第２のフィルタ部は、
前記文書データを入力機器から入力し、各種類に属する分類キーワードを照合条件情報として予め記憶している記憶機器から前記照合条件情報を入力し、前記照合条件情報が示す各種類の前記分類キーワードが前記文書データに含まれているか否かを判定する文字列照合処理をＣＰＵを用いて実行し、前記文字列照合処理で前記文書データに含まれていると判定された前記分類キーワードが属する種類を前記文書データの属する種類と特定する文字列照合型フィルタ部である
ことを特徴とする請求項３記載の情報フィルタリングシステム。
【請求項５】
前記文字列照合型フィルタ部は、
決定性有限オートマトンを用いて前記文字列照合処理を行う
ことを特徴とする請求項４記載の情報フィルタリングシステム。
【請求項６】
前記文字列照合型フィルタ部は、
前記分類キーワードを表す前記決定性有限オートマトンの状態遷移表を前記照合条件情報として前記文字列照合処理を実行する
ことを特徴とする請求項５記載の情報フィルタリングシステム。
【請求項７】
前記文字列照合型フィルタ部は、
非決定性有限オートマトンを用いて前記文字列照合処理を行う
ことを特徴とする請求項４記載の情報フィルタリングシステム。
【請求項８】
前記結果出力部は、
前記第１のエラー率が前記第２のエラー率より小さい場合には前記第１の分類情報を前記分類結果として出力し、前記第２のエラー率が前記第１のエラー率より小さい場合には前記第２の分類情報を前記分類結果として出力する
ことを特徴とする請求項４記載の情報フィルタリングシステム。
【請求項９】
前記結果出力部は、
前記第１の分類情報と前記第２の分類情報とを所定の数値で表し、前記第１のエラー率に応じて前記第１の分類情報を重み付けすると共に、前記第２のエラー率に応じて前記第２の分類情報を重み付けし、重み付けした前記第１の分類情報と重み付けした前記第２の分類情報との平均値を加重平均値として算出し、算出した加重平均値と所定の閾値とを比較し、比較結果に基づいて前記分類結果を出力する
ことを特徴とする請求項４記載の情報フィルタリングシステム。
【請求項１０】
前記照合条件情報は、複数の前記分類キーワードのうち特定の前記分類キーワードを特定キーワードとして示し、
前記結果出力部は、
前記文字列照合型フィルタ部により前記特定キーワードが含まれていると判定された前記分類対象文書データの前記分類結果として、前記特定キーワードの属する種類を出力する
ことを特徴とする請求項４記載の情報フィルタリングシステム。
【請求項１１】
前記エラー率算出部は、
所定の期間内に生成された前記第１の学習結果情報に基づいて前記第１のエラー率を算出すると共に、前記所定の期間内に生成された前記第２の学習結果情報に基づいて前記第２のエラー率を算出する
ことを特徴とする請求項４記載の情報フィルタリングシステム。
【請求項１２】
前記学習型フィルタ部は、第１の学習型フィルタ部と第２の学習型フィルタ部とを備え、
前記第１の学習型フィルタ部と前記第２の学習型フィルタ部とは、それぞれ前記学習部と前記学習型分類部とを備え、
前記第１の学習型フィルタ部の前記学習部と前記第２の学習型フィルタ部の前記学習部とは、それぞれ異なる前記統計処理を実行し、
前記第１の分類情報は、前記第１の学習型フィルタ部の前記学習型分類部により特定された前記種類を示す第１の学習分類情報と、前記第２の学習型フィルタ部の前記学習型分類部により特定された前記種類を示す第２の学習分類情報とを示す
ことを特徴とする請求項２記載の情報フィルタリングシステム。
【請求項１３】
前記結果出力部は、前記第１の分類情報を前記分類結果として出力する場合、前記第１の学習分類情報が示す前記種類と前記第２の学習分類情報が示す前記種類との論理和を求め、求めた前記論理和が示す前記種類を前記分類結果として出力する
ことを特徴とする請求項１２記載の情報フィルタリングシステム。
【請求項１４】
前記結果出力部は、前記第１の分類情報を前記分類結果として出力する場合、前記第１の学習分類情報が示す前記種類の前記分類確率と前記第２の学習分類情報が示す前記種類の前記分類確率とに基づいて前記分類結果を出力する
ことを特徴とする請求項１２記載の情報フィルタリングシステム。
【請求項１５】
前記結果出力部は、前記第１の分類情報を前記分類結果として出力する場合、前記第１の学習分類情報の前記第１のエラー率に応じて前記第１の学習分類情報を重み付けすると共に、前記第１の学習分類情報の前記第１のエラー率に応じて前記第１の学習分類情報を重み付けし、重み付けした前記第１の学習分類情報と重み付けした前記第２の学習分類情報との平均値を加重平均値として算出し、算出した加重平均値と所定の閾値とを比較し、比較結果に基づいて前記分類結果を出力する
ことを特徴とする請求項１２記載の情報フィルタリングシステム。
【請求項１６】
前記学習型フィルタ部は、前記学習部と前記学習型分類部との組を複数備え、
複数の前記学習部は、それぞれ異なる前記統計処理を実行し、
前記第１の分類情報は、各組の前記学習型分類部それぞれにより特定された前記種類を示し、
前記結果出力部は、前記第１の分類情報を前記分類結果として出力する場合、最も多くの組に特定された前記種類を前記分類結果として出力する
ことを特徴とする請求項２記載の情報フィルタリングシステム。
【請求項１７】
第１のフィルタ部が、複数種類のうち少なくともいずれかの種類に属する文書データを入力機器から入力し、入力した前記文書データの属する種類を特定する所定の分類処理をＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）を用いて実行し、入力した前記文書データの属する種類を第１の分類情報として特定する第１のフィルタ処理を行い、
第２のフィルタ部が、前記文書データを入力機器から入力し、前記第１のフィルタ部の前記分類処理とは異なる所定の分類処理をＣＰＵを用いて実行し、入力した前記文書データの属する種類を第２の分類情報として特定する第２のフィルタ処理を行い、
第１の正解比較部が、属する種類が予め特定されている複数の学習文書データそれぞれを前記文書データとして前記第１のフィルタ部が特定した前記複数の学習文書データの前記第１の分類情報と予め特定されている前記属する種類を示す前記複数の学習文書データの正解情報とをＣＰＵを用いて比較し、比較結果に基づいて前記第１の分類情報が前記正解情報に一致したか否かを示す前記複数の学習文書データの第１の学習結果情報を生成し、生成した前記複数の学習文書データの前記第１の学習結果情報を記憶機器に記憶する第１の正解比較処理を行い、
第２の正解比較部が、前記複数の学習文書データそれぞれを前記文書データとして前記第２のフィルタ部が特定した前記複数の学習文書データの前記第２の分類情報と前記複数の学習文書データの前記正解情報とをＣＰＵを用いて比較し、比較結果に基づいて前記第２の分類情報が前記正解情報に一致したか否かを示す前記複数の学習文書データの第２の学習結果情報を生成し、生成した前記複数の学習文書データの前記第２の学習結果情報を記憶機器に記憶する第２の正解比較処理を行い、
エラー率算出部が、前記第１の正解比較部が生成した前記複数の前記学習文書データの前記第１の学習結果情報に基づいて前記第１の分類情報が前記正解情報に一致しなかった割合を示す第１のエラー率をＣＰＵを用いて算出すると共に、前記第２の正解比較部が生成した前記複数の前記学習文書データの前記第２の学習結果情報に基づいて前記第２の分類情報が前記正解情報に一致しなかった割合を示す第２のエラー率をＣＰＵを用いて算出するエラー率算出処理を行い、
結果出力部が、特定の種類に分類する対象である分類対象文書データを前記文書データとして前記第１のフィルタ部が特定した前記第１の分類情報と、前記分類対象文書データを前記文書データとして前記第２のフィルタ部が特定した前記第２の分類情報と、前記エラー率算出部が算出した前記第１のエラー率と、前記エラー率算出部が算出した前記第２のエラー率とに基づいて前記分類対象文書データの属する種類をＣＰＵを用いて特定し、特定した種類を分類結果として出力機器に出力する結果出力処理を行う
ことを特徴とする情報フィルタリング方法。
【請求項１８】
請求項１７記載の情報フィルタリング方法をコンピュータに実行させる情報フィルタリングプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、例えば、入力文書を分類する情報フィルタリングシステム、情報フィルタリング方法および情報フィルタリングプログラムに関するものである。
【背景技術】
【０００２】
情報フィルタリングとは、ユーザが事前に設定した要求（フィルタリング条件）に合致するか否かによって、情報を自動的に選別する情報処理を指す。情報フィルタリングでは、フィルタリングの精度を向上させるために、機械学習による文書の自動分類技術を用い、ユーザ指定のフィードバックによりフィルタリング条件を追加または変更する方法が一般的である（特許文献１）。これを学習型フィルタと呼ぶ。【０００３】
さらに、フィルタリングの精度を向上させるための方法として、異なるフィルタリング条件を持つ複数の学習型フィルタを組み合わせたフィルタリング方法もある（特許文献２）。この方法では、複数のフィルタの出力（フィルタリング条件への適合度）がユーザの指定に基づいて合成され、最終出力となっている。
【特許文献１】特開平９−２８８６８３号公報
【特許文献２】特開２００１−２２９１６４号公報
【発明の開示】
【発明が解決しようとする課題】
【０００４】
しかしながら、このような学習型フィルタにおいては、学習量の少ない初期状態ではフィルタリング精度が低いという課題があった。この課題を解決するためには、例えば、システムの運用前に十分な量の学習サンプルデータが用意され、十分な精度が得られるまでシステムが学習を行えばよい。しかし、学習サンプルデータの作成には要求（フィルタリング条件）に合致するか否かを人手により識別する必要がある。このため、実際のシステムにおいては十分な量の学習サンプルデータを用意することが困難である。
また、環境変化（例えば、企業内の組織異動）などによって、ユーザの要求やフィルタリング対象のデータ内容が短時間で大きく変化するような場合、その変化の際にフィルタリング精度が一時的に大きく低下する。そして、ユーザ指定のフィードバックにより学習型フィルタをその変化に追従させた場合、フィルタリング精度を元に戻すのに時間がかかるという課題がある。【０００５】
本発明は、例えば、上記のような課題を解決するためになされたもので、学習量の少ない初期状態のとき又はユーザ要求や対象データ内容が大きく変化したときでも、一定レベルのフィルタリング精度を確保できる情報フィルタリングシステムを提供することを目的とする。
【課題を解決するための手段】
【０００６】
本発明の情報フィルタリングシステムは、複数種類のうち少なくともいずれかの種類に属する文書データを入力機器から入力し、入力した前記文書データの属する種類を特定する所定の分類処理をＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）を用いて実行し、入力した前記文書データの属する種類を第１の分類情報として特定する第１のフィルタ部と、前記文書データを入力機器から入力し、前記第１のフィルタ部の前記分類処理とは異なる所定の分類処理をＣＰＵを用いて実行し、入力した前記文書データの属する種類を第２の分類情報として特定する第２のフィルタ部と、属する種類が予め特定されている複数の学習文書データそれぞれを前記文書データとして前記第１のフィルタ部が特定した前記複数の学習文書データの前記第１の分類情報と予め特定されている前記属する種類を示す前記複数の学習文書データの正解情報とをＣＰＵを用いて比較し、比較結果に基づいて前記第１の分類情報が前記正解情報に一致したか否かを示す前記複数の学習文書データの第１の学習結果情報を生成し、生成した前記複数の学習文書データの前記第１の学習結果情報を記憶機器に記憶する第１の正解比較部と、前記複数の学習文書データそれぞれを前記文書データとして前記第２のフィルタ部が特定した前記複数の学習文書データの前記第２の分類情報と前記複数の学習文書データの前記正解情報とをＣＰＵを用いて比較し、比較結果に基づいて前記第２の分類情報が前記正解情報に一致したか否かを示す前記複数の学習文書データの第２の学習結果情報を生成し、生成した前記複数の学習文書データの前記第２の学習結果情報を記憶機器に記憶する第２の正解比較部と、前記第１の正解比較部が生成した前記複数の前記学習文書データの前記第１の学習結果情報に基づいて前記第１の分類情報が前記正解情報に一致しなかった割合を示す第１のエラー率をＣＰＵを用いて算出すると共に、前記第２の正解比較部が生成した前記複数の前記学習文書データの前記第２の学習結果情報に基づいて前記第２の分類情報が前記正解情報に一致しなかった割合を示す第２のエラー率をＣＰＵを用いて算出するエラー率算出部と、特定の種類に分類する対象である分類対象文書データを前記文書データとして前記第１のフィルタ部が特定した前記第１の分類情報と、前記分類対象文書データを前記文書データとして前記第２のフィルタ部が特定した前記第２の分類情報と、前記エラー率算出部が算出した前記第１のエラー率と、前記エラー率算出部が算出した前記第２のエラー率とに基づいて前記分類対象文書データの属する種類をＣＰＵを用いて特定し、特定した種類を分類結果として出力機器に出力する結果出力部とを備える。【０００７】
前記第１のフィルタ部は、前記学習文書データと前記正解情報との組を入力機器から複数組入力し、各種類に属する各学習文書データに共通する統計情報を学習データとして生成する統計処理を前記複数組に基づいてＣＰＵを用いて実行し、前記統計処理により生成した前記学習データを記憶機器に記憶する学習部と、前記分類対象文書データを入力機器から入力し、前記学習部により生成された前記学習データが示す前記統計情報に対して前記分類対象文書データの対応する比率を種類毎に分類確率としてＣＰＵを用いて算出し、種類毎の前記分類確率に基づいて前記分類対象文書データの属する種類を特定する学習型分類部とを備えた学習型フィルタ部である。【０００８】
前記学習部は、ベイズ理論、ＳＶＭ（Ｓｕｐｐｏｒｔ  Ｖｅｃｔｏｒ  Ｍａｃｈｉｎｅ）、ニューラルネットワークモデルまたはその他の学習型アルゴリズムを用いて前記統計処理を行う。【０００９】
前記第２のフィルタ部は、前記文書データを入力機器から入力し、各種類に属する分類キーワードを照合条件情報として予め記憶している記憶機器から前記照合条件情報を入力し、前記照合条件情報が示す各種類の前記分類キーワードが前記文書データに含まれているか否かを判定する文字列照合処理をＣＰＵを用いて実行し、前記文字列照合処理で前記文書データに含まれていると判定された前記分類キーワードが属する種類を前記文書データの属する種類と特定する文字列照合型フィルタ部である。【００１０】
前記文字列照合型フィルタ部は、決定性有限オートマトンを用いて前記文字列照合処理を行う。【００１１】
前記文字列照合型フィルタ部は、前記分類キーワードを表す前記決定性有限オートマトンの状態遷移表を前記照合条件情報として前記文字列照合処理を実行する。【００１２】
前記文字列照合型フィルタ部は、非決定性有限オートマトンを用いて前記文字列照合処理を行う。【００１３】
前記結果出力部は、前記第１のエラー率が前記第２のエラー率より小さい場合には前記第１の分類情報を前記分類結果として出力し、前記第２のエラー率が前記第１のエラー率より小さい場合には前記第２の分類情報を前記分類結果として出力する。【００１４】
前記結果出力部は、前記第１の分類情報と前記第２の分類情報とを所定の数値で表し、前記第１のエラー率に応じて前記第１の分類情報を重み付けすると共に、前記第２のエラー率に応じて前記第２の分類情報を重み付けし、重み付けした前記第１の分類情報と重み付けした前記第２の分類情報との平均値を加重平均値として算出し、算出した加重平均値と所定の閾値とを比較し、比較結果に基づいて前記分類結果を出力する。【００１５】
前記照合条件情報は、複数の前記分類キーワードのうち特定の前記分類キーワードを特定キーワードとして示し、前記結果出力部は、前記文字列照合型フィルタ部により前記特定キーワードが含まれていると判定された前記分類対象文書データの前記分類結果として、前記特定キーワードの属する種類を出力する。【００１６】
前記エラー率算出部は、所定の期間内に生成された前記第１の学習結果情報に基づいて前記第１のエラー率を算出すると共に、前期所定の期間内に生成された前記第２の学習結果情報に基づいて前記第２のエラー率を算出する。【００１７】
前記学習型フィルタ部は、第１の学習型フィルタ部と第２の学習型フィルタ部とを備え、前記第１の学習型フィルタ部と前記第２の学習型フィルタ部とは、それぞれ前記学習部と前記学習型分類部とを備え、前記第１の学習型フィルタ部の前記学習部と前記第２の学習型フィルタ部の前記学習部とは、それぞれ異なる前記統計処理を実行し、前記第１の分類情報は、前記第１の学習型フィルタ部の前記学習型分類部により特定された前記種類を示す第１の学習分類情報と、前記第２の学習型フィルタ部の前記学習型分類部により特定された前記種類を示す第２の学習分類情報とを示す。【００１８】
前記結果出力部は、前記第１の分類情報を前記分類結果として出力する場合、前記第１の学習分類情報が示す前記種類と前記第２の学習分類情報が示す前記種類との論理和を求め、求めた前記論理和が示す前記種類を前記分類結果として出力する。【００１９】
前記結果出力部は、前記第１の分類情報を前記分類結果として出力する場合、前記第１の学習分類情報が示す前記種類の前記分類確率と前記第２の学習分類情報が示す前記種類の前記分類確率とに基づいて前記分類結果を出力する。【００２０】
前記結果出力部は、前記第１の分類情報を前記分類結果として出力する場合、前記第１の学習分類情報の前記第１のエラー率に応じて前記第１の学習分類情報を重み付けすると共に、前記第１の学習分類情報の前記第１のエラー率に応じて前記第１の学習分類情報を重み付けし、重み付けした前記第１の学習分類情報と重み付けした前記第２の学習分類情報との平均値を加重平均値として算出し、算出した加重平均値と所定の閾値とを比較し、比較結果に基づいて前記分類結果を出力する。【００２１】
前記学習型フィルタ部は、前記学習部と前記学習型分類部との組を複数備え、複数の前記学習部は、それぞれ異なる前記統計処理を実行し、前記第１の分類情報は、各組の前記学習型分類部それぞれにより特定された前記種類を示し、前記結果出力部は、前記第１の分類情報を前記分類結果として出力する場合、最も多くの組に特定された前記種類を前記分類結果として出力する。【００２２】
本発明の情報フィルタリング方法は、第１のフィルタ部が、複数種類のうち少なくともいずれかの種類に属する文書データを入力機器から入力し、入力した前記文書データの属する種類を特定する所定の分類処理をＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）を用いて実行し、入力した前記文書データの属する種類を第１の分類情報として特定する第１のフィルタ処理を行い、第２のフィルタ部が、前記文書データを入力機器から入力し、前記第１のフィルタ部の前記分類処理とは異なる所定の分類処理をＣＰＵを用いて実行し、入力した前記文書データの属する種類を第２の分類情報として特定する第２のフィルタ処理を行い、第１の正解比較部が、属する種類が予め特定されている複数の学習文書データそれぞれを前記文書データとして前記第１のフィルタ部が特定した前記複数の学習文書データの前記第１の分類情報と予め特定されている前記属する種類を示す前記複数の学習文書データの正解情報とをＣＰＵを用いて比較し、比較結果に基づいて前記第１の分類情報が前記正解情報に一致したか否かを示す前記複数の学習文書データの第１の学習結果情報を生成し、生成した前記複数の学習文書データの前記第１の学習結果情報を記憶機器に記憶する第１の正解比較処理を行い、第２の正解比較部が、前記複数の学習文書データそれぞれを前記文書データとして前記第２のフィルタ部が特定した前記複数の学習文書データの前記第２の分類情報と前記複数の学習文書データの前記正解情報とをＣＰＵを用いて比較し、比較結果に基づいて前記第２の分類情報が前記正解情報に一致したか否かを示す前記複数の学習文書データの第２の学習結果情報を生成し、生成した前記複数の学習文書データの前記第２の学習結果情報を記憶機器に記憶する第２の正解比較処理を行い、エラー率算出部が、前記第１の正解比較部が生成した前記複数の前記学習文書データの前記第１の学習結果情報に基づいて前記第１の分類情報が前記正解情報に一致しなかった割合を示す第１のエラー率をＣＰＵを用いて算出すると共に、前記第２の正解比較部が生成した前記複数の前記学習文書データの前記第２の学習結果情報に基づいて前記第２の分類情報が前記正解情報に一致しなかった割合を示す第２のエラー率をＣＰＵを用いて算出するエラー率算出処理を行い、結果出力部が、特定の種類に分類する対象である分類対象文書データを前記文書データとして前記第１のフィルタ部が特定した前記第１の分類情報と、前記分類対象文書データを前記文書データとして前記第２のフィルタ部が特定した前記第２の分類情報と、前記エラー率算出部が算出した前記第１のエラー率と、前記エラー率算出部が算出した前記第２のエラー率とに基づいて前記分類対象文書データの属する種類をＣＰＵを用いて特定し、特定した種類を分類結果として出力機器に出力する結果出力処理を行う。【００２３】
本発明の情報フィルタリングプログラムは、前記情報フィルタリング方法をコンピュータに実行させる。
【発明の効果】
【００２４】
本発明によれば、例えば、結果出力部が第１のフィルタ部により特定された第１の分類情報と第２のフィルタ部により特定された第２の分類情報と各フィルタ部のエラー率とに基づいて分類結果を出力することにより、情報フィルタリングシステムは一定レベルのフィルタリング精度を確保することができる。
【発明を実施するための最良の形態】
【００２５】
実施の形態１．
図１は、実施の形態１における情報フィルタリングシステム９００の機能構成図である。
実施の形態１における情報フィルタリングシステム９００の機能構成について、図１に基づいて以下に説明する。【００２６】
情報フィルタリングシステム９００は、文字列照合型フィルタ部１００、学習型フィルタ部２００および結果判定部３００を備える。【００２７】
文字列照合型フィルタ部１００（第２のフィルタ部）は、文字列照合部１１０、正解比較部１２０および文字列照合型フィルタ記憶部１９０を備え、複数の分類カテゴリ（分類種類）のうち少なくともいずれかのカテゴリに属する入力文書８０１（学習用文書８０２、分類対象文書８０４）を入力機器から入力し、入力文書８０１に対して文字列照合処理（所定の分類処理の一例）をＣＰＵを用いて実行し、入力文書８０１の属するカテゴリを合致情報１０１（第２の分類情報）として特定する。【００２８】
文字列照合型フィルタ記憶部１９０は、文字列照合型フィルタ部１００が用いる各種情報を記憶する記憶機器である。例えば、文字列照合型フィルタ記憶部１９０には、各カテゴリに属する分類キーワード１０８を示す照合条件情報１０９が予め記憶されている。【００２９】
文字列照合部１１０は、文字列照合型フィルタ記憶部１９０から照合条件情報１０９を入力し、照合条件情報１０９の示す各カテゴリの分類キーワード１０８が入力文書８０１に含まれているか否かを判定する文字列照合処理をＣＰＵを用いて実行する。そして、文字列照合部１１０は、入力文書８０１に含まれていると判定した分類キーワード１０８が属するカテゴリを当該入力文書８０１の合致情報１０１とする。例えば、文字列照合部１１０は、決定性有限オートマトンまたは非決定性有限オートマトンを用いて文字列照合処理を行う。決定性有限オートマトンにより文字列照合処理が行われる場合、分類キーワード１０８を表す決定性有限オートマトンの状態遷移表が照合条件情報１０９として予め文字列照合型フィルタ記憶部１９０に記憶されている。文字列照合部１１０は文字列照合型フィルタ記憶部１９０に予め記憶されている状態遷移表を用いて文字列照合処理を実行する。例えば、この状態遷移表は、情報フィルタリングシステム９００の運用開始前に生成され、文字列照合型フィルタ記憶部１９０に記憶される。【００３０】
正解比較部１２０（第２の正解比較部）は、文字列照合部１１０が特定した学習用文書８０２（学習文書データ）の合致情報１０１と、予め特定されている学習用文書８０２の属するカテゴリを示す正解情報８０３とをＣＰＵを用いて比較する。次に、正解比較部１２０は、比較結果に基づいて合致情報１０１が正解情報８０３に一致したか否かを示す合致エラー有無情報１０２（第２の学習結果情報）を生成する。そして、正解比較部１２０は、生成した合致エラー有無情報１０２を学習結果情報３０９として結果判定記憶部３９０に記憶する。正解比較部１２０は複数の学習用文書８０２について学習用文書８０２毎に合致エラー有無情報１０２を生成して記憶する。【００３１】
学習型フィルタ部２００（第１のフィルタ部）は、学習部２１０、分類部２２０および学習型フィルタ記憶部２９０を備え、入力文書８０１を入力機器から入力し、学習型フィルタ処理（文字列照合型フィルタ部１００の分類処理とは異なる所定の分類処理の一例）をＣＰＵを用いて実行し、入力文書８０１の属するカテゴリを分類情報２０１（第１の分類情報）として特定する。【００３２】
学習型フィルタ記憶部２９０は、学習型フィルタ部２００が用いる各種情報を記憶する記憶機器である。例えば、学習型フィルタ記憶部２９０には、カテゴリ毎に当該カテゴリに属する各入力文書８０１に共通する統計情報が学習データ２０９として記憶される。【００３３】
学習部２１０は、学習用文書８０２と正解情報８０３との組を入力機器から複数組入力し、入力した複数組に基づく統計処理をＣＰＵを用いて実行し、統計処理により生成した学習データ２０９を学習型フィルタ記憶部２９０に記憶する。例えば、学習部２１０は、ベイズ理論、ＳＶＭ（Ｓｕｐｐｏｒｔ  Ｖｅｃｔｏｒ  Ｍａｃｈｉｎｅ）またはニューラルネットワークモデルを用いて統計処理を行う。【００３４】
分類部２２０（学習型分類部）は、特定のカテゴリに分類する対象である分類対象文書８０４（分類対象文書データ）を入力機器から入力し、学習部２１０により生成された学習データ２０９が示す統計情報に対して分類対象文書８０４の対応する比率を、カテゴリ毎に分類確率としてＣＰＵを用いて算出する。そして、分類部２２０は、カテゴリ毎の分類確率に基づいて分類対象文書８０４の属するカテゴリを分類情報２０１として特定する。【００３５】
また、学習部２１０（第１の正解比較部）は、分類部２２０が特定した学習用文書８０２の分類情報２０１と正解情報８０３とをＣＰＵを用いて比較する。次に、学習部２１０は、比較結果に基づいて分類情報２０１が正解情報８０３に一致したか否かを示す分類エラー有無情報２０２（第２の学習結果情報）を生成する。そして、学習部２１０は、生成した分類エラー有無情報２０２を学習結果情報３０９として結果判定記憶部３９０に記憶する。学習部２１０は複数の学習用文書８０２について学習用文書８０２毎に分類エラー有無情報２０２を生成して記憶する。【００３６】
結果判定部３００は、エラー率算出部３１０、結果出力部３２０および結果判定記憶部３９０を備え、分類対象文書８０４の分類結果３０１を出力機器に出力する。【００３７】
結果判定記憶部３９０は、結果判定部３００が用いる各種情報を記憶する記憶機器である。例えば、結果判定記憶部３９０には、文字列照合型フィルタ部１００の正解比較部１２０が生成した複数の合致エラー有無情報１０２や学習型フィルタ部２００の学習部２１０が生成した複数の分類エラー有無情報２０２が学習結果情報３０９として記憶される。また例えば、結果判定記憶部３９０には、文字列照合型フィルタ部１００の分類エラー率や学習型フィルタ部２００の分類エラー率がエラー率情報３０８として記憶される。【００３８】
エラー率算出部３１０は、文字列照合型フィルタ部１００の正解比較部１２０が生成した複数の合致エラー有無情報１０２に基づいて、合致情報１０１が正解情報８０３と一致しなかった割合を示す文字列照合型フィルタ部１００の分類エラー率（第２のエラー率）をＣＰＵを用いて算出する。また、エラー率算出部３１０は、学習型フィルタ部２００の学習部２１０が生成した複数の分類エラー有無情報２０２に基づいて、分類情報２０１が正解情報８０３と一致しなかった割合を示す学習型フィルタ部２００の分類エラー率（第１のエラー率）をＣＰＵを用いて算出する。エラー率算出部３１０が算出した文字列照合型フィルタ部１００の分類エラー率および学習型フィルタ部２００の分類エラー率は結果判定記憶部３９０にエラー率情報３０８として記憶される。
また、エラー率算出部３１０は、所定の期間内に生成された学習結果情報３０９に基づいて文字列照合型フィルタ部１００の分類エラー率と学習型フィルタ部２００の分類エラー率とを算出する。
ここで、分類エラー率とは１００％から分類正解率を差し引いた値であるから、分類エラー率を算出するということは、分類正解率を算出するということに置き換えることができる。つまり、エラー率算出部３１０は分類正解率を算出するともいえる。【００３９】
結果出力部３２０は、文字列照合型フィルタ部１００の文字列照合部１１０が特定した合致情報１０１と、学習型フィルタ部２００の分類部２２０が特定した分類情報２０１と、エラー率算出部３１０が算出したエラー率情報３０８とに基づいて、分類対象文書８０４の属するカテゴリをＣＰＵを用いて特定する。そして、結果出力部３２０は特定したカテゴリを分類結果３０１として出力機器に出力する。これは、結果出力部３２０が合致情報１０１と分類情報２０１と各フィルタ部の分類正解率とに基づいて分類対象文書８０４のカテゴリを特定することに相当する。
例えば、結果出力部３２０は、文字列照合型フィルタ部１００の分類エラー率が学習型フィルタ部２００の分類エラー率より小さい場合には合致情報１０１が示すカテゴリを分類結果３０１として出力し、学習型フィルタ部２００の分類エラー率が文字列照合型フィルタ部１００の分類エラー率より小さい場合には分類情報２０１が示すカテゴリを分類結果３０１として出力する。これは、文字列照合型フィルタ部１００の分類正解率が学習型フィルタ部２００の分類正解率より大きい場合には合致情報１０１が示すカテゴリを分類結果３０１として出力し、学習型フィルタ部２００の分類正解率が文字列照合型フィルタ部１００の分類正解率より大きい場合には分類情報２０１が示すカテゴリを分類結果３０１として出力することに相当する。
また例えば、結果出力部３２０は、合致情報１０１と分類情報２０１とを所定の数値で表し、文字列照合型フィルタ部１００の分類エラー率に応じて合致情報１０１を重み付けすると共に、学習型フィルタ部２００の分類エラー率に応じて分類情報２０１を重み付けする。次に、結果出力部３２０は、重み付けした合致情報１０１と重み付けした分類情報２０１との平均値を加重平均値として算出する。そして、結果出力部３２０は、算出した加重平均値と所定の閾値とを比較し、比較結果に基づいて分類結果３０１を出力する。
また例えば、照合条件情報１０９には、分類結果として優先させる特定のキーワード（優先キーワード）が予め設定される。そして、文字列照合型フィルタ部１００の文字列照合部１１０が分類対象文書８０４に優先キーワードが含まれていると判定した場合、結果出力部３２０は、文字列照合型フィルタ部１００と学習型フィルタ部２００との分類エラー率の大小や加重平均値などに関わらず、優先キーワードが属するカテゴリを分類結果３０１として出力する。【００４０】
図２は、実施の形態１における情報フィルタリングシステム９００の外観の一例を示す図である。
図２において、情報フィルタリングシステム９００は、システムユニット９１０、ＣＲＴ（Ｃａｔｈｏｄｅ・Ｒａｙ・Ｔｕｂｅ）やＬＣＤ（液晶）の表示画面を有する表示装置９０１、キーボード９０２（Ｋｅｙ・Ｂｏａｒｄ：Ｋ／Ｂ）、マウス９０３、ＦＤＤ９０４（Ｆｌｅｘｉｂｌｅ・Ｄｉｓｋ・Ｄｒｉｖｅ）、ＣＤＤ９０５（コンパクトディスク装置）、プリンタ装置９０６、スキャナ装置９０７などのハードウェア資源を備え、これらはケーブルや信号線で接続されている。
システムユニット９１０は、コンピュータであり、ファクシミリ機９３２、電話器９３１とケーブルで接続され、また、ＬＡＮ９４２（ローカルエリアネットワーク）、ゲートウェイ９４１を介してインターネット９４０に接続されている。【００４１】
図３は、実施の形態１における情報フィルタリングシステム９００のハードウェア資源の一例を示す図である。
図３において、情報フィルタリングシステム９００は、プログラムを実行するＣＰＵ９１１（Ｃｅｎｔｒａｌ・Ｐｒｏｃｅｓｓｉｎｇ・Ｕｎｉｔ、中央処理装置、処理装置、演算装置、マイクロプロセッサ、マイクロコンピュータ、プロセッサともいう）を備えている。ＣＰＵ９１１は、バス９１２を介してＲＯＭ９１３、ＲＡＭ９１４、通信ボード９１５、表示装置９０１、キーボード９０２、マウス９０３、ＦＤＤ９０４、ＣＤＤ９０５、プリンタ装置９０６、スキャナ装置９０７、磁気ディスク装置９２０と接続され、これらのハードウェアデバイスを制御する。磁気ディスク装置９２０の代わりに、光ディスク装置、メモリカード読み書き装置などの記憶装置でもよい。
ＲＡＭ９１４は、揮発性メモリの一例である。ＲＯＭ９１３、ＦＤＤ９０４、ＣＤＤ９０５、磁気ディスク装置９２０の記憶媒体は、不揮発性メモリの一例である。これらは、記憶機器、記憶装置あるいは記憶部の一例である。また、入力データが記憶されている記憶機器は入力機器、入力装置あるいは入力部の一例であり、出力データが記憶される記憶機器は出力機器、出力装置あるいは出力部の一例である。
通信ボード９１５、キーボード９０２、スキャナ装置９０７、ＦＤＤ９０４などは、入力機器、入力装置あるいは入力部の一例である。
また、通信ボード９１５、表示装置９０１、プリンタ装置９０６などは、出力機器、出力装置あるいは出力部の一例である。【００４２】
通信ボード９１５は、ファクシミリ機９３２、電話器９３１、ＬＡＮ９４２等に接続されている。通信ボード９１５は、ＬＡＮ９４２に限らず、インターネット９４０、ＩＳＤＮ等のＷＡＮ（ワイドエリアネットワーク）などに接続されていても構わない。インターネット９４０或いはＩＳＤＮ等のＷＡＮに接続されている場合、ゲートウェイ９４１は不用となる。【００４３】
磁気ディスク装置９２０には、ＯＳ９２１（オペレーティングシステム）、ウィンドウシステム９２２、プログラム群９２３、ファイル群９２４が記憶されている。プログラム群９２３のプログラムは、ＣＰＵ９１１、ＯＳ９２１、ウィンドウシステム９２２により実行される。【００４４】
上記プログラム群９２３には、実施の形態において「〜部」として説明する機能を実行するプログラムが記憶されている。プログラムは、ＣＰＵ９１１により読み出され実行される。【００４５】
ファイル群９２４には、実施の形態において、「〜部」の機能を実行した際の「〜の判定結果」、「〜の計算結果」、「〜の処理結果」などの結果データ、「〜部」の機能を実行するプログラム間で受け渡しするデータ、その他の情報やデータや信号値や変数値やパラメータが、「〜ファイル」や「〜データベース」の各項目として記憶されている。合致情報１０１、照合条件情報１０９、分類情報２０１、学習データ２０９、分類結果３０１、エラー率情報３０８、学習結果情報３０９などはファイル群９２４に含まれる電子データの一例である。
「〜ファイル」や「〜データベース」は、ディスクやメモリなどの記録媒体に記憶される。ディスクやメモリなどの記憶媒体に記憶された情報やデータや信号値や変数値やパラメータは、読み書き回路を介してＣＰＵ９１１によりメインメモリやキャッシュメモリに読み出され、抽出・検索・参照・比較・演算・計算・処理・出力・印刷・表示などのＣＰＵの動作に用いられる。抽出・検索・参照・比較・演算・計算・処理・出力・印刷・表示のＣＰＵの動作の間、情報やデータや信号値や変数値やパラメータは、メインメモリやキャッシュメモリやバッファメモリに一時的に記憶される。
また、実施の形態において説明するフローチャートの矢印の部分は主としてデータや信号の入出力を示し、データや信号値は、ＲＡＭ９１４のメモリ、ＦＤＤ９０４のフレキシブルディスク、ＣＤＤ９０５のコンパクトディスク、磁気ディスク装置９２０の磁気ディスク、その他光ディスク、ミニディスク、ＤＶＤ（Ｄｉｇｉｔａｌ・Ｖｅｒｓａｔｉｌｅ・Ｄｉｓｃ）等の記録媒体に記録される。また、データや信号値は、バス９１２や信号線やケーブルその他の伝送媒体によりオンライン伝送される。【００４６】
また、実施の形態において「〜部」として説明するものは、「〜回路」、「〜装置」、「〜機器」であってもよく、また、「〜ステップ」、「〜手順」、「〜処理」であってもよい。すなわち、「〜部」として説明するものは、ＲＯＭ９１３に記憶されたファームウェアで実現されていても構わない。或いは、ソフトウェアのみ、或いは、素子・デバイス・基板・配線などのハードウェアのみ、或いは、ソフトウェアとハードウェアとの組み合わせ、さらには、ファームウェアとの組み合わせで実施されても構わない。ファームウェアとソフトウェアは、プログラムとして、磁気ディスク、フレキシブルディスク、光ディスク、コンパクトディスク、ミニディスク、ＤＶＤ等の記録媒体に記憶される。プログラムはＣＰＵ９１１により読み出され、ＣＰＵ９１１により実行される。すなわち、情報フィルタリングプログラムなどのプログラムは、「〜部」としてコンピュータを機能させるものである。あるいは、「〜部」の手順や方法をコンピュータに実行させるものである。【００４７】
図４は、実施の形態１における学習結果生成処理の流れを示すフローチャートである。
情報フィルタリングシステム９００が学習データ２０９、学習結果情報３０９およびエラー率情報３０８を生成する方法について、図４に基づいて以下に説明する。
情報フィルタリングシステム９００を構成する各部は、以下で説明する各処理をＣＰＵを用いて実行する。【００４８】
＜Ｓ１１０：第２の学習分類処理＞
文字列照合型フィルタ部１００の文字列照合部１１０は照合条件情報１０９に基づいて学習用文書８０２を文字列照合し、合致情報１０１を出力する。
以下に、第２の学習分類処理（Ｓ１１０）の詳細について説明する。【００４９】
まず、文字列照合部１１０は、入力機器から学習用文書８０２を入力する。
学習用文書８０２の属するカテゴリはユーザにより予め特定されている。【００５０】
次に、文字列照合部１１０は文字列照合型フィルタ記憶部１９０から照合条件情報１０９を入力する。【００５１】
照合条件情報１０９は、システムの運用前あるいはシステムの運用中にユーザにより設定されて文字列照合型フィルタ記憶部１９０に記憶される。照合条件情報１０９は、入力文書８０１を分類する各カテゴリに属する分類キーワード１０８が、カテゴリ毎に１つ以上設定されている。【００５２】
分類キーワード１０８は、固定の用語であってもよいし、正規表現であってもよい。例えば、照合条件情報１０９には、「会社情報（機密情報の一例）」カテゴリに属する分類キーワード１０８として、「社外秘」という固定の用語、または、「社＊外＊秘」という正規表現が設定される。「＊」は任意の１文字または任意の文字列（連続する複数文字、文字組）を示しており、「社＊外＊秘」には「社＿外＿秘」（“＿”はスペースを示す）のように文字間にスペースが含まれたものも含まれる。つまり、正規表現は、１つの表記で、表記ゆれによる異なる複数の表記を、同じ意味の単語として表すことができる。表記ゆれとは、送り仮名や音引き（長音符）やスペースの有無を示す。分類キーワード１０８が正規表現で示されることにより、文字列照合部１１０は単純な用語のみでなく、複雑な表現を照合対象とすることができる。【００５３】
また、ユーザは、各分類種別それぞれを複数のグループに分けると共にグループ毎に分類キーワード１０８を設定して、照合条件情報１０９を詳細化、階層化してもよい。
例えば、情報フィルタリングシステム９００に機密情報を検出させるために、ユーザは、機密文書を「個人情報」、「顧客情報」、「新技術情報」などのカテゴリに分け、「個人情報」カテゴリに属するグループとして「氏名」、「住所」などを設け、「氏名」グループに属する分類キーワード１０８として“氏名”、“住所”、個々の氏名（“鈴木”、“佐藤”、“田中”など）、地名（“東京都”、“千代田区”など）などの単語（正規表現を含む）を設定してもよい。この場合、“氏名”、“住所”、個々の氏名、地名を示す各分類キーワード１０８は機密文書の「個人情報」カテゴリに属する。
また例えば、ユーザは、機密のレベルを示す等級毎に各カテゴリをグループ分けしてもよい。
また例えば、ユーザは、時間単位（１年単位、１月単位など）で各カテゴリをグループ分けしてもよい。会社設立時の部署名（略称を含む）を分類キーワード１０８とするグループやＸＸＸＸ年ＹＹ月ＺＺ日付け組織改正により変更された部署名を分類キーワード１０８とするグループは、時間単位で分けたグループの一例である。【００５４】
ユーザは、分類キーワード１０８毎に追加、変更および削除して照合条件情報１０９を設定してもよいし、グループ毎またはカテゴリ毎に照合条件情報１０９を設定してもよい。【００５５】
照合条件情報１０９は、ユーザにより設定された「１つ以上のカテゴリ」、「各カテゴリに属する１つ以上のグループ」および「各グループに属する１つ以上の分類キーワード１０８」を示す。また、各グループはＩＤ（Ｉｄｅｎｔｉｆｉｅｒ）で識別される。【００５６】
照合条件情報１０９は、カテゴリ、グループおよび分類キーワード１０８が羅列されたテキストファイルであってもよいし、ＤＦＡ（Ｄｅｔｅｒｍｉｎｉｓｔｉｃ  Ｆｉｎｉｔｅ  Ａｕｔｏｍａｔｏｎ、決定性有限オートマトン）の状態遷移表を示すテーブルファイルであってもよい。
ＤＦＡとして知られている方法では、各分類キーワード１０８の正規表現を示す照合条件がコンパイルされ、照合条件を示す状態遷移表が生成され、その状態遷移表に基づいて文字列照合が行われる。
予め、照合条件をコンパイルして状態遷移表を照合条件情報１０９として保存しておくことで、システム起動時のコンパイル時間を不要とし、システムの起動処理を高速化することができる。【００５７】
ＤＦＡの状態遷移表は、文字の並び順を「状態（例えば、状態０、状態１、・・・）」とし、「現在の状態」と「次の文字」とを表の列項目および行項目とし、「現在の状態」と「次の文字」との組み合わせを「次の状態」として示す。文字列照合部１１０は、入力文書８０１から文字を順次入力し、入力した文字に応じて「現在の状態」から「次の状態」へと状態遷移を繰り返し、「現在の状態」が最終状態（分類キーワード１０８の先頭文字から最終文字までの並び順を示す状態）になった場合に、当該分類キーワード１０８が入力文書８０１に含まれていると判定する。【００５８】
図５は、実施の形態１におけるＤＦＡの状態遷移表の一例を示す図である。
例えば、“ａｂｃ”という分類キーワード１０８は図５の状態遷移表で表される。但し、図５では、“ａ”、“ｂ”、“ｃ”の３文字のみについて状態遷移を示し、他の文字（例えば、“ｄ”、“ｅ”、・・・“ｚ”）については省略している。
図５において、第１列に示されている「状態０」、「状態１」、「状態２」、「状態３」は現在の状態を示し、第１行に示されている「ａ」、「ｂ」、「ｃ」は新たな入力文字（次の文字）を示し、第２行２列から第５行４列までの値は次の状態を示している。
「状態０」は分類キーワード１０８の先頭文字“ａ”が入力されていない状態を示す。
「状態１」は分類キーワード１０８の先頭文字“ａ”が入力された状態を示す。
「状態２」は“ａ”の次に“ｂ”が入力された状態を示す。
「状態３」は“ａｂ”の次に“ｃ”が入力された最終状態を示す。
現在の状態が「状態０」の場合、次の文字が“ａ”であれば状態は「状態１」に遷移し、次の文字が“ｂ”または“ｃ”であれば状態は「状態０」のままとなる。
現在の状態が「状態１」の場合、次の文字が“ａ”であれば状態は「状態１」のままとなり、次の文字が“ｂ”であれば状態は「状態２」に遷移し、次の文字が“ｃ”であれば状態は「状態０」に戻る。
現在の状態が「状態２」の場合、次の文字が“ａ”であれば状態は「状態１」に戻り、次の文字が“ｂ”であれば状態は「状態０」に戻り、次の文字が“ｃ”であれば状態は最終状態である「状態３」に遷移する。
つまり、状態は、文字の並び順が「ａ→ｂ→ｃ」である場合に限り、“ａｂｃ”という分類キーワード１０８を示す最終状態となる。【００５９】
文字列照合部１１０は、文字列照合型フィルタ記憶部１９０から照合条件情報１０９を入力した後、照合条件情報１０９に設定されている各分類キーワード１０８が学習用文書８０２に含まれるか否かを判定する文字列照合処理を行う。【００６０】
例えば、文字列照合処理には、Ｃ言語のｓｔｒｓｔｒ関数や、ｇｒｅｐ、ｓｅｄ、ｐｅｒｌなどのツールや、その他の正規表現ライブラリが用いられる。【００６１】
文字列照合処理は、照合条件情報１０９に設定されている各分類キーワード１０８を検索キーワードとして学習用文書８０２が検索される処理でもよいし、学習用文書８０２に含まれている各語と照合条件情報１０９に設定されている各分類キーワード１０８とが比較される処理でもよい。例えば、学習用文書８０２に含まれている各語は、形態素解析により抽出される。【００６２】
そして、文字列照合部１１０は、文字列照合処理の結果に基づいて合致情報１０１を生成し、生成した合致情報１０１を正解比較部１２０に出力する。【００６３】
合致情報１０１は、学習用文書８０２（入力文書８０１の一例）がどのカテゴリの照合条件（分類キーワード１０８）に合致したか、つまり、学習用文書８０２がどのカテゴリに属するかを示す。合致情報１０１が示すカテゴリ（学習用文書８０２が照合条件に合致したカテゴリ）は文字列照合部１１０が特定した学習用文書８０２の属するカテゴリを示す。
例えば、文字列照合部１１０は、文字列照合処理において、あるカテゴリ（例えば、「個人情報」）に属する複数の分類キーワード１０８のうち、少なくとも１つの分類キーワード１０８（例えば、“氏名”）が学習用文書８０２に含まれていると判定した場合、学習用文書８０２がそのカテゴリ（「個人情報」）に属すると判定する。そして、文字列照合部１１０は、学習用文書８０２がそのカテゴリ（「個人情報」）の照合条件に合致するという情報を合致情報１０１に設定する。
また例えば、文字列照合部１１０は、文字列照合処理において、学習用文書８０２に対してカテゴリ毎に分類キーワード１０８の出現回数（ヒット数）の合計値を算出する。そして、文字列照合部１１０は、属する分類キーワード１０８の出現回数の合計値が所定の閾値以上であったカテゴリに学習用文書８０２が属すると判定し、学習用文書８０２がそのカテゴリの照合条件に合致するという情報を合致情報１０１に設定する。例えば、閾値を「１０」とする。このとき、文字列照合部１１０は、“氏名”、“住所”、個々の氏名、地名などの「個人情報」に属する各分類キーワード１０８が合計で学習用文書８０２内の１０箇所以上に含まれているか否かを判定する。そして、文字列照合部１１０は、「個人情報」に属する各分類キーワード１０８が１０箇所以上に含まれていると判定した場合、学習用文書８０２が「個人情報」に属すると判定する。
合致情報１０１は全カテゴリについて「合致」または「非合致」を示してもよいし、カテゴリ単位ではなくグループ単位で「合致」または「非合致」を示してもよい。【００６４】
次に、図４の第２の正解比較処理（Ｓ１２０）について説明する。【００６５】
＜Ｓ１２０：第２の正解比較処理＞
Ｓ１１０の後、文字列照合型フィルタ部１００の正解比較部１２０は合致情報１０１と正解情報８０３とを比較し、合致エラー有無情報１０２を学習結果情報３０９として蓄積する。
以下に、第２の正解比較処理（Ｓ１２０）の詳細について説明する。【００６６】
まず、正解比較部１２０は文字列照合部１１０がＳ１１０で出力した合致情報１０１を入力し、また、入力機器から正解情報８０３を入力する。【００６７】
次に、正解比較部１２０は合致情報１０１と正解情報８０３とを比較し、合致情報１０１と正解情報８０３とが一致するか否かを判定する。
正解情報８０３は、学習用文書８０２と組を構成し、ユーザにより予め特定された学習用文書８０２の属するカテゴリが設定されている。正解情報８０３に設定されるカテゴリは１つの学習用文書８０２に対して１つでも複数でもよい。
例えば、正解情報８０３に１つのカテゴリが設定されているとする。このとき、正解比較部１２０は、正解情報８０３に設定されているカテゴリが合致情報１０１で「合致」と示されている場合に合致情報１０１と正解情報８０３とが一致すると判定する。
また例えば、正解情報８０３に複数のカテゴリが設定されているとする。このとき、正解比較部１２０は、正解情報８０３に設定されている複数のカテゴリのうち、少なくとも１つのカテゴリについて合致情報１０１が「合致」を示している場合に合致情報１０１と正解情報８０３とが一致すると判定する。また、正解比較部１２０は、正解情報８０３に設定されている複数のカテゴリ全てについて合致情報１０１が「合致」を示している場合にのみ合致情報１０１と正解情報８０３とが一致すると判定してもよい。また、正解比較部１２０は、合致情報１０１と正解情報８０３とが一致するか否かをカテゴリ毎に判定してもよい。【００６８】
そして、正解比較部１２０は判定結果を示す合致エラー有無情報１０２を学習結果情報３０９として結果判定記憶部３９０に蓄積する。
合致エラー有無情報１０２は、合致情報１０１と正解情報８０３との一致を「正解」として示し、合致情報１０１と正解情報８０３との不一致を「エラー」として示す。【００６９】
次に、図４の第１の学習分類処理（Ｓ１３０）について説明する。【００７０】
＜Ｓ１３０：第１の学習分類処理＞
学習型フィルタ部２００の分類部２２０は学習データ２０９に基づいて学習用文書８０２を分類し、分類情報２０１を出力する。
以下に、第１の学習分類処理（Ｓ１３０）の詳細について説明する。【００７１】
まず、分類部２２０は入力機器から学習用文書８０２を入力し、また、学習型フィルタ記憶部２９０から学習データ２０９を入力する。【００７２】
学習データ２０９は、学習部２１０が正解情報８０３に基づいて生成する統計情報であり、文書のカテゴリ毎に当該カテゴリに属する各入力文書８０１に共通する統計情報が設定されている。例えば、学習データ２０９には、統計情報として、当該カテゴリに属する文書に出現する各用語の出現頻度が設定されている。
以下、学習データ２０９にはカテゴリ毎に各用語の出現頻度が設定されているものとする。
出現頻度とは、例えば、１つの入力文書８０１あたりの出現回数や文字数当りの出現回数を示す。【００７３】
次に、分類部２２０は学習用文書８０２に含まれている各語を抽出し、学習用文書８０２から抽出した各語の出現頻度を算出する。
例えば、学習用文書８０２に含まれている各語は、学習データ２０９に設定されている用語を検索キーワードとして学習用文書８０２が検索されて抽出されてもよいし、学習用文書８０２に対する形態素解析により抽出されてもよい。【００７４】
次に、分類部２２０は学習用文書８０２に含まれている各語の出現頻度と学習データ２０９に設定されている各用語の出現頻度とを比較し、学習用文書８０２の属するカテゴリを特定する。
例えば、分類部２２０は、学習用文書８０２に含まれている各語の出現頻度と学習データ２０９に設定されている各用語の出現頻度とに基づいて、カテゴリ毎に学習用文書８０２が属する確率（分類確率）を算出する。そして、分類部２２０は、分類確率が最も高いカテゴリや分類確率が所定の閾値（分類確率の第１の閾値）以上であるカテゴリを学習用文書８０２の属するカテゴリと特定する。【００７５】
例えば、分類確率は、ナイーブ・ベイズ分類法に基づいて、以下の式１で算出される。【００７６】
【数１】
2009087757.tif 000003
【００７７】
そして、分類部２２０は特定した学習用文書８０２の属するカテゴリを分類情報２０１として学習部２１０に出力する。また、分類情報２０１にはカテゴリの分類確率が設定されてもよい。【００７８】
次に、図４の第１の正解比較処理（Ｓ１４０）の詳細について説明する。【００７９】
＜Ｓ１４０：第１の正解比較処理＞
Ｓ１３０の後、学習型フィルタ部２００の学習部２１０は分類情報２０１と正解情報８０３とを比較し、分類エラー有無情報２０２を学習結果情報３０９として蓄積する。
以下に、第１の正解比較処理（Ｓ１４０）の詳細について説明する。【００８０】
まず、学習部２１０は分類部２２０が出力した分類情報２０１を入力し、また、入力機器から正解情報８０３を入力する。【００８１】
次に、学習部２１０は分類情報２０１と正解情報８０３とを比較し、合致情報１０１と正解情報８０３とが一致するか否かを判定する。
例えば、正解情報８０３に１つのカテゴリが設定されているとする。このとき、学習部２１０は、正解情報８０３に設定されているカテゴリが分類情報２０１に示されている場合に分類情報２０１と正解情報８０３とが一致すると判定する。
また例えば、正解情報８０３に複数のカテゴリが設定されているとする。このとき、学習部２１０は、正解情報８０３に設定されている複数のカテゴリのうち、少なくとも１つのカテゴリについて分類情報２０１に示されている場合に分類情報２０１と正解情報８０３とが一致すると判定する。また、学習部２１０は、正解情報８０３に設定されている複数のカテゴリ全てについて分類情報２０１に示されている場合にのみ合致情報１０１と正解情報８０３とが一致すると判定してもよい。また、学習部２１０は、カテゴリ毎に、分類情報２０１と正解情報８０３とが一致するか否かを判定してもよい。【００８２】
そして、学習部２１０は判定結果を示す分類エラー有無情報２０２を学習結果情報３０９として結果判定記憶部３９０に蓄積する。
分類エラー有無情報２０２は、分類情報２０１と正解情報８０３との一致を「正解」として示し、分類情報２０１と正解情報８０３との不一致を「エラー」として示す。【００８３】
次に、図４の学習処理（Ｓ１５０）について説明する。【００８４】
＜Ｓ１５０：学習処理＞
学習部２１０は、第１の正解比較処理（Ｓ１４０）の判定結果に基づいて学習の要否を判定し（Ｓ１５１）、学習要と判定した場合に、学習用文書８０２と正解情報８０３とに基づいて学習データ２０９を生成する（Ｓ１５２）。
以下に、Ｓ１５１とＳ１５２との詳細について説明する。【００８５】
＜Ｓ１５１：学習要否判定処理＞
学習部２１０は、第１の正解比較処理（Ｓ１４０）において分類情報２０１と正解情報８０３とが不一致であると判定した場合に学習が必要であると判定し、第１の正解比較処理（Ｓ１４０）において分類情報２０１と正解情報８０３とが一致すると判定した場合に学習が不要であると判定する。
学習とは、学習データ２０９の生成を意味する。
分類情報２０１と正解情報８０３とが不一致であった場合にのみ、つまり、分類エラーが発生した場合にのみ、学習データ２０９を生成することにより、不要な学習が減り、学習時間の削減、分類精度の向上が実現できる。【００８６】
また、学習部２１０は、第１の学習分類処理（Ｓ１３０）で分類部２２０が算出した分類確率または正解情報８０３が示すカテゴリに基づいて学習の要否を判定してもよい。
例えば、学習部２１０は、分類情報２０１と正解情報８０３とが一致すると判定した場合でも、分類情報２０１に設定されたカテゴリの分類確率が所定の閾値（分類確率の第２の閾値）以下である場合には、十分な学習ができていないと判断し、学習が必要であると判定してもよい。これにより、分類精度をさらに向上させることができる。
また例えば、学習部２１０は、分類情報２０１と正解情報８０３との一致または不一致に関わらず、正解情報８０３に設定されているカテゴリが特定のカテゴリである場合には、学習が必要であると判定してもよい。例えば、「個人情報」が特定のカテゴリである場合、「個人情報」カテゴリに属する学習用文書８０２は必ず学習の対象となる。
また、学習部２１０は、分類情報２０１と正解情報８０３との一致または不一致に関わらず、必ず、学習が必要であると判定し、全ての学習用文書８０２を学習対象にしてもよい。つまり、学習要否判定処理（Ｓ１５１）は実行されなくてもよい。【００８７】
学習が不要であると判定された場合、次に、Ｓ１６０が実行される。【００８８】
＜Ｓ１５２：学習データ生成処理＞
Ｓ１５１において学習が必要であると判定した場合、学習部２１０は、学習用文書８０２を分析して学習用文書８０２の統計情報を算出し、算出した統計情報を学習用文書８０２と同じカテゴリに属する入力文書８０１の統計情報として学習データ２０９に反映する。
例えば、学習部２１０は、ベイズ理論（ベイズ統計）、ＳＶＭまたはニューラルネットワークモデルを用いたアルゴリズムに基づいて統計処理を行い、学習用文書８０２の統計情報を算出する。
例えば、統計情報は、前述の通り、各用語の出現頻度を示す。【００８９】
＜Ｓ１６０＞
次に、情報フィルタリングシステム９００（例えば、文字列照合型フィルタ部１００、学習型フィルタ部２００）は、ユーザにより入力された全ての学習用文書８０２を処理したか否かを判定する。
未処理の学習用文書８０２が存在する場合、未処理の学習用文書８０２に対してＳ１１０〜Ｓ１５０の各処理が実行される。つまり、文字列照合型フィルタ部１００および学習型フィルタ部２００は学習用文書８０２毎にＳ１１０〜Ｓ１５０の各処理を実行する。
全ての学習用文書８０２が処理されたと判定された場合、次に、エラー率算出処理（Ｓ１７０）が実行される。【００９０】
＜Ｓ１７０：エラー率算出処理＞
全ての学習用文書８０２に対してＳ１１０〜Ｓ１５０の各処理が実行された後、結果判定部３００のエラー率算出部３１０は学習結果情報３０９に基づいて文字列照合型フィルタ部１００の分類エラー率と学習型フィルタ部２００の分類エラー率とを算出する。
以下に、エラー率算出処理（Ｓ１７０）の詳細について説明する。【００９１】
まず、結果判定部３００のエラー率算出部３１０は、結果判定記憶部３９０から学習結果情報３０９を入力する。学習結果情報３０９には文字列照合型フィルタ部１００の正解比較部１２０から出力された各合致エラー有無情報１０２と学習型フィルタ部２００の学習部２１０から出力された各分類エラー有無情報２０２とが含まれている。つまり、学習結果情報３０９は、学習用文書８０２毎に、文字列照合型フィルタ部１００の分類正否および学習型フィルタ部２００の分類正否を示している。【００９２】
次に、エラー率算出部３１０は、学習結果情報３０９に基づいて以下の式２を計算して、文字列照合型フィルタ部１００の分類エラー率と学習型フィルタ部２００の分類エラー率とを算出する。【００９３】
分類エラー率＝エラー発生数／学習文書数  ・・・（式２）【００９４】
「エラー発生数」とは、「エラー」が設定されている合致エラー有無情報１０２または分類エラー有無情報２０２の数を示す。
「学習文書数」とは、学習用文書８０２の総数を示す。また、「学習文書数」は「エラー」が設定されている合致エラー有無情報１０２と「正解」が設定されている合致エラー有無情報１０２との合計数（合致エラー有無情報１０２の総数）または「エラー」が設定されている分類エラー有無情報２０２と「正解」が設定されている分類エラー有無情報２０２との合計数（分類エラー有無情報２０２の総数）を示す。【００９５】
エラー率算出部３１０は、一定期間内に蓄積された学習結果情報３０９を用いて最近の分類エラー率を算出してもよい。分類エラーは分類対象文書８０４に新しい用語が多く含まれるような場合に発生する。つまり、分類エラーの発生頻度は時間の経過と共に変化し、古い分類精度情報は重要でなくなる。そこで、エラー率算出部３１０は、最近の分類エラーの発生頻度を考慮することにより、分類エラーの発生頻度の変化に対応することができる。例えば、一定期間内に蓄積された学習結果情報３０９とは、新しく生成された順での所定の件数分の学習結果情報３０９（例えば、最新の１００件の学習結果情報３０９）のことである。また例えば、一定期間内に蓄積された学習結果情報３０９とは、分類エラー率の算出時や最新の学習結果情報３０９が生成された時刻を基準として過去の所定の時間内に生成された学習結果情報３０９（例えば、過去１ヶ月内に生成された学習結果情報３０９）のことである。【００９６】
そして、エラー率算出部３１０は、文字列照合型フィルタ部１００の分類エラー率と学習型フィルタ部２００の分類エラー率とをエラー率情報３０８として結果判定記憶部３９０に記憶する。
エラー率情報３０８は、文字列照合型フィルタ部１００の分類信頼度と学習型フィルタ部２００の分類信頼度とを、分類エラー率で表す情報である。【００９７】
以上で学習結果生成処理（Ｓ１１０〜Ｓ１７０）について説明した。上記の学習結果生成処理（Ｓ１１０〜Ｓ１７０）において、文字列照合型フィルタ部１００が実行する処理（Ｓ１１０〜Ｓ１２０）と学習型フィルタ部２００が実行する処理（Ｓ１３０〜Ｓ１５０）とは、互いに独立した処理であり、並行して処理されてもよい。例えば、情報フィルタリングシステム９００は、文字列照合型フィルタ部１００の処理を１つのスレッドとすると共に学習型フィルタ部２００の処理を他のスレッドとして、文字列照合型フィルタ部１００の処理と学習型フィルタ部２００の処理とをマルチスレッド処理してもよい。文字列照合型フィルタ部１００の処理と学習型フィルタ部２００の処理とが並行して処理されることで、学習結果生成処理（Ｓ１１０〜Ｓ１７０）にかかる処理時間が短縮される。【００９８】
上記の学習結果生成処理（Ｓ１１０〜Ｓ１７０）により、学習データ２０９、学習結果情報３０９およびエラー率情報３０８が生成される。【００９９】
図６は、実施の形態１における情報フィルタリングシステム９００のフィルタリング処理の流れを示すフローチャートである。
学習結果生成処理（Ｓ１１０〜Ｓ１７０）で生成された学習データ２０９およびエラー率情報３０８を用いて、分類対象文書８０４が属するカテゴリを特定するフィルタリング方法について、図６に基づいて以下に説明する。
情報フィルタリングシステム９００を構成する各部は、以下で説明する各処理をＣＰＵを用いて実行する。【０１００】
＜Ｓ２１０：第２の分類処理＞
文字列照合型フィルタ部１００の文字列照合部１１０は、第２の学習分類処理（Ｓ１１０）と同様に、照合条件情報１０９に基づいて分類対象文書８０４を文字列照合し、合致情報１０１を出力する。
Ｓ２１０では、文字列照合の対象は学習用文書８０２ではなく分類対象文書８０４であり、合致情報１０１の出力先は正解比較部１２０ではなく結果判定部３００の結果出力部３２０である。【０１０１】
＜Ｓ２２０：第１の分類処理＞
学習型フィルタ部２００の分類部２２０は、第１の学習分類処理（Ｓ１３０）と同様に、学習データ２０９に基づいて分類対象文書８０４を分類し、分類情報２０１を出力する。
Ｓ２２０では、分類対象は学習用文書８０２ではなく分類対象文書８０４であり、分類情報２０１の出力先は学習部２１０ではなく結果判定部３００の結果出力部３２０である。【０１０２】
＜Ｓ２３０：結果出力処理＞
結果判定部３００の結果出力部３２０は、合致情報１０１と分類情報２０１とエラー率情報３０８とに基づいて分類結果３０１を出力する。
以下に、結果出力処理（Ｓ２３０）の詳細について説明する。【０１０３】
まず、結果出力部３２０は、文字列照合型フィルタ部１００の文字列照合部１１０がＳ２１０の処理において出力した合致情報１０１を入力し、学習型フィルタ部２００の分類部２２０がＳ２２０の処理において出力した分類情報２０１を入力し、結果判定記憶部３９０からエラー率情報３０８を入力する。【０１０４】
次に、結果出力部３２０は、合致情報１０１と分類情報２０１とエラー率情報３０８とに基づいて分類対象文書８０４の属するカテゴリを特定する。【０１０５】
例えば、結果出力部３２０は、エラー率情報３０８を参照し、分類エラー率の小さい方（分類信頼度の大きい方）のフィルタ部（文字列照合型フィルタ部１００または学習型フィルタ部２００）により特定されたカテゴリを分類対象文書８０４の属するカテゴリとして選択する。
つまり、結果出力部３２０は、文字列照合型フィルタ部１００の分類エラー率が学習型フィルタ部２００の分類エラー率より小さければ、文字列照合型フィルタ部１００の合致情報１０１に「合致」と設定されているカテゴリを分類対象文書８０４のカテゴリとする。また、結果出力部３２０は、学習型フィルタ部２００の分類エラー率が文字列照合型フィルタ部１００の分類エラー率より小さければ、学習型フィルタ部２００の分類情報２０１に設定されているカテゴリを分類対象文書８０４のカテゴリとする。また、結果出力部３２０は、文字列照合型フィルタ部１００の分類エラー率と学習型フィルタ部２００の分類エラー率とが同じ（または、差が所定の範囲内）である場合には、合致情報１０１に「合致」と設定されているカテゴリと分類情報２０１に設定されているカテゴリとの論理和を求め、論理和が示す各カテゴリを分類対象文書８０４のカテゴリとする。例えば、合致情報１０１に「合致」と設定されているカテゴリがＡとＢであり、分類情報２０１に設定されているカテゴリがＢとＣであれば、分類対象文書８０４のカテゴリはＡ、ＢおよびＣとなる。【０１０６】
また例えば、結果出力部３２０は、合致情報１０１と分類情報２０１との加重平均値と所定の閾値との比較結果に基づいて分類対象文書８０４の属するカテゴリを特定する。
このとき、結果出力部３２０は、合致情報１０１と分類情報２０１とを所定の数値で表す。例えば、合致情報１０１は「０」にマッピングされ、分類情報２０１は「１」にマッピングされる。
次に、結果出力部３２０は、以下の式３により、合致情報１０１の数値を重み付けした合致情報１０１の加重値と分類情報２０１の数値を重み付けした分類情報２０１の加重値とに基づく加重平均値を算出する。以下の式３では、両フィルタ部の分類正解率（＝１−分類エラー率）（分類信頼度）の合計値に対する各フィルタ部の分類正解率により合致情報１０１と分類情報２０１とが重み付けされている。【０１０７】
加重平均値
＝照合型フィルタ結果
×（照合型フィルタ正解率／（照合型フィルタ正解率＋学習型フィルタ正解率））
＋学習型フィルタ結果
×（学習型フィルタ正解率／（照合型フィルタ正解率＋学習型フィルタ正解率））
・・・（式３）【０１０８】
「照合型フィルタ結果」とは、合致情報１０１の数値（例えば、「０」）を示す。
「学習型フィルタ結果」とは、分類情報２０１の数値（例えば、「１」）を示す。
「照合型フィルタ正解率」とは、文字列照合型フィルタ部１００の分類正解率を示す。
「学習型フィルタ正解率」とは、学習型フィルタ部２００の分類正解率を示す。
式３の第１項（照合型フィルタ結果×（・・・学習型フィルタ正解率））は合致情報１０１の加重値を示し、式３の第２項（学習型フィルタ結果×（学習型フィルタ正解率））は分類情報２０１の加重値を示す。【０１０９】
そして、結果出力部３２０は、上記の式３により算出した加重平均値と所定の閾値とを比較し、比較結果に基づいて分類対象文書８０４のカテゴリを特定する。
例えば、合致情報１０１の数値が「０」、分類情報２０１の数値が「１」、文字列照合型フィルタ部１００の分類正解率が「０．６（６０％）」、学習型フィルタ部２００の分類正解率が「０．４（４０％）」である場合、加重平均値は「０．４（＝（０×０．６）＋（１×０．４））となる。このとき、閾値が「０．５」であれば、加重平均値（０．４）が閾値未満であり、閾値と比べて合致情報１０１の値（０）に近いため、結果出力部３２０は合致情報１０１に「合致」と設定されているカテゴリを分類対象文書８０４のカテゴリとする。また、閾値が「０．３」であれば、加重平均値（０．４）が閾値以上であり、閾値と比べて分類情報２０１の値（１）に近いため、結果出力部３２０は分類情報２０１に設定されているカテゴリを分類対象文書８０４のカテゴリとする。
つまり、結果出力部３２０は加重平均値が閾値未満である場合には閾値未満の値がマッピングされた方のフィルタ部が特定したカテゴリを分類対象文書８０４のカテゴリとし、加重平均値が閾値以上である場合には閾値以上の値がマッピングされた方のフィルタ部が特定したカテゴリを分類対象文書８０４のカテゴリとする。
加重平均値との比較に使用する閾値は、どのフィルタ部の結果を重視するかの度合いを示している。【０１１０】
また例えば、結果出力部３２０は、各フィルタ部の分類正解率に各フィルタ部の結果に対する重要度を示す重み付け係数を乗じ、重み付けした各フィルタ部の分類正解率を比較して、重み付けした分類正解率が大きい方のフィルタ部が特定したカテゴリを分類対象文書８０４のカテゴリとする。
文字列照合型フィルタ部１００の分類正解率と学習型フィルタ部２００の分類正解率とが共に「０．５（５０％）」、合致情報１０１の重み付け係数が「０．７」、分類情報２０１の重み付け係数が「１．０」である場合、結果出力部３２０は、重み付けした文字列照合型フィルタ部１００の分類正解率「０．３５（＝０．５×０．７）」と重み付けした学習型フィルタ部２００の分類正解率「０．５（＝０．５×１．０）」とを比較する。そして、結果出力部３２０は、重み付けした分類正解率は学習型フィルタ部２００の方が大きいため、学習型フィルタ部２００が特定したカテゴリを分類対象文書８０４のカテゴリとする。【０１１１】
また例えば、結果出力部３２０は、分類情報２０１に設定されているカテゴリの分類確率を所定の閾値（分類確率の第３の閾値）と比較し、分類確率が閾値以上の場合に分類情報２０１に設定されているカテゴリを分類対象文書８０４のカテゴリとし、分類確率が閾値未満の場合に合致情報１０１に「合致」と設定されているカテゴリを分類対象文書８０４のカテゴリとする。つまり、結果出力部３２０は分類情報２０１に設定されているカテゴリの分類確率の大小に応じて分類対象文書８０４のカテゴリを特定する。【０１１２】
また例えば、文字列照合型フィルタ部１００の照合条件情報１０９に優先キーワードが予め設定され、且つ、合致情報１０１に優先キーワードの属するカテゴリの「合致」が設定されている場合、結果出力部３２０は、分類エラー率の大小や加重平均値に関わらず、優先キーワードの属するカテゴリを分類対象文書８０４の属するカテゴリとする。
例えば、照合条件情報１０９において、カテゴリに属する各分類キーワード１０８がグループ分けされ、各グループがＩＤで識別される場合、各グループのＩＤは６４ビット整数で表されると共に最上位ビットが優先フラグとして使用される。この場合の優先キーワードは、ＩＤの優先フラグに「１」が設定されているグループ（優先グループ）に属する全ての分類キーワード１０８である。
機密情報検出の応用分野においては、機密情報の中でもある特定の内容（入力文書８０１）を１００％検出することが求められる場合がある。例えば、ユーザが特定の顧客を示す“ｘｘｘ株式会社”という記述を含む文書を１００％検出したい場合などである。このような場合でも、優先キーワードが設定された情報フィルタリングシステム９００は、統計的な手法（学習型フィルタ部２００の分類手法）によらず、優先キーワードを含んでいる特定の文書を１００％特定することできる。
また、ユーザの環境の変化などによって検出すべき用語の語彙（分類キーワード１０８）が大きく増える場合、ユーザは、増加分の各新用語を「新技術情報」カテゴリの新たな１グループとし、この新たなグループに優先フラグを設定することで、「新技術情報」カテゴリについて情報フィルタリングシステム９００から高い精度の分類結果３０１を得ることができる。新用語のグループに優先フラグが設定された情報フィルタリングシステム９００は、新用語を含む学習用文書８０２について学習型フィルタ部２００による学習が済んでいない時点でも、新用語に対応して分類対象文書８０４を「新技術情報」カテゴリに分類し、分類結果３０１の精度低下を抑えることができる。さらに、情報フィルタリングシステム９００が「新技術情報」カテゴリについて高い精度で分類結果３０１を出力することにより、ユーザは、「新技術情報」カテゴリに属する分類対象文書８０４を学習用文書８０２として情報フィルタリングシステム９００にフィードバックして、学習型フィルタ部２００の分類精度を向上させることができる。【０１１３】
分類対象文書８０４の属するカテゴリを特定した結果出力部３２０は、特定したカテゴリを分類結果３０１に設定し、分類結果３０１を出力機器に出力する。
結果出力部３２０は、分類信頼度の高い方のフィルタ部により特定されたカテゴリを設定することにより、分類結果３０１の精度を向上させることができる。
また、結果出力部３２０は、選択されなかった方のフィルタ部により特定されたカテゴリも参考情報として分類結果３０１に設定してもよい。これにより、ユーザによる総合的な結果判断を促すことが可能となる。【０１１４】
上記のフィルタリング処理（Ｓ２１０〜Ｓ２３０）において、文字列照合型フィルタ部１００の処理（Ｓ２１０）と学習型フィルタ部２００の処理（Ｓ２２０）とは並行して処理されてもよい。文字列照合型フィルタ部１００の処理と学習型フィルタ部２００の処理とが並行して処理されることで、フィルタリング処理（Ｓ２１０〜Ｓ２２０）にかかる処理時間が短縮される。【０１１５】
上記のフィルタリング処理（Ｓ２１０〜Ｓ２３０）により、分類対象文書８０４の属するカテゴリを示す分類結果３０１が出力される。
情報フィルタリングシステム９００は、入力された分類対象文書８０４毎に、上記のフィルタリング処理（Ｓ２１０〜Ｓ２３０）を実行する。【０１１６】
図７は、実施の形態１における情報フィルタリングシステム９００の運用手順を示すフローチャートである。
実施の形態１における情報フィルタリングシステム９００の運用方法について、図７に基づいて以下に説明する。【０１１７】
＜Ｓ３１０：照合条件設定処理＞
まず、ユーザは分類キーワード１０８を定義して照合条件情報１０９を生成し、生成した照合条件情報１０９を文字列照合型フィルタ部１００の文字列照合型フィルタ記憶部１９０に記憶させる。【０１１８】
＜Ｓ３２０：学習結果生成処理＞
次に、ユーザは情報フィルタリングシステム９００に学習用文書８０２および正解情報８０３を入力し、図４に基づいて説明した学習結果生成処理（Ｓ１１０〜Ｓ１７０）を情報フィルタリングシステム９００に実行させる。情報フィルタリングシステム９００は学習結果生成処理（Ｓ１１０〜Ｓ１７０）を実行して学習結果情報３０９を生成する。
但し、ユーザは必ずしも学習結果生成処理（Ｓ３２０）を実行しなくてもよい。【０１１９】
＜Ｓ３３０：フィルタリング処理＞
次に、ユーザは情報フィルタリングシステム９００に分類対象文書８０４を入力し、図６に基づいて説明したフィルタリング処理（Ｓ２１０〜Ｓ２３０）を情報フィルタリングシステム９００に実行させる。情報フィルタリングシステム９００はフィルタリング処理（Ｓ２１０〜Ｓ２３０）を実行して分類結果３０１を出力する。【０１２０】
＜Ｓ３４０：フィードバック判定処理＞
次に、ユーザは、分類結果３０１に基づいて、分類対象文書８０４を学習用文書８０２として情報フィルタリングシステム９００にフィードバックする必要があるか否かを判断する。
フィードバックが不要であると判定した場合、ユーザはＳ３６０に処理を進める。
分類対象文書８０４のフィードバックにより、情報フィルタリングシステム９００は学習型フィルタ部２００の分類精度を向上させることができる。ユーザはフィードバックするか否かをユーザ作業量とのトレードオフを考慮して判断するとよい。全てのフィルタ通過文書（分類結果３０１が出力された全ての分類対象文書８０４）がフィードバックされることで、情報フィルタリングシステム９００は学習型フィルタ部２００の分類精度の向上を早められる。しかし、ユーザは、通常、特定の条件（例えば、「新技術用語」カテゴリに分類されたもの）に合致した分類対象文書８０４のみをフィードバック対象とするという最低限のユーザ作業により、情報フィルタリングシステム９００に学習型フィルタ部２００の分類精度を向上させることができる。【０１２１】
＜Ｓ３５０：学習データ生成処理＞
Ｓ３４０においてフィードバックが必要であると判断したユーザは、分類対象文書８０４を学習用文書８０２として情報フィルタリングシステム９００に入力すると共に、分類対象文書８０４の正解情報８０３を生成し、生成した正解情報８０３を情報フィルタリングシステム９００に入力する。学習用文書８０２と正解情報８０３とを入力した情報フィルタリングシステム９００では、学習型フィルタ部２００が、学習用文書８０２と正解情報８０３とに基づいて、図４で説明した学習データ生成処理（Ｓ１５２）を実行し、学習データ２０９を生成する。【０１２２】
＜Ｓ３６０＞
ユーザは全ての分類対象文書８０４を情報フィルタリングシステム９００に処理させたか否かを判断する。
未処理の分類対象文書８０４がある場合、ユーザはＳ３１０に処理を戻す。
全ての分類対象文書８０４が処理済みである場合、ユーザは情報フィルタリングシステム９００の運用を終了する。【０１２３】
上記の説明では機密情報文書の分類を例として挙げているが、情報フィルタリングシステム９００は分類対象が機密情報に限定されるものではなく、広く一般に文書の分類に用いることができるものである。また、上記の説明では日本語文書の分類を例として挙げているが、情報フィルタリングシステム９００は分類対象が日本語文書に限定されるものではなく、どのような文字コードの文書にも適用可能である。また、上記の説明では非学習型フィルタの例として文字列照合型フィルタ部１００を挙げた。しかし、学習型フィルタ部２００のように学習により分類条件（学習データ２０９）を生成するフィルタであっても、予め行われた学習により分類条件が予め生成され、追加の学習が行われない場合、分類条件が固定的になるため、このフィルタを非学習型フィルタとして考えることができる。【０１２４】
実施の形態１では、以下のような情報フィルタリングシステム９００について説明した。
情報フィルタリングシステム９００は、入力文書８０１に対して複数の所定の分類のうちいずれに該当するかを判定するフィルタを２つ以上（文字列照合型フィルタ部１００、学習型フィルタ部２００）備える。
また、情報フィルタリングシステム９００は、各フィルタの結果（合致情報１０１、分類情報２０１）から入力文書８０１の分類の最終結果（分類結果３０１）を判定する学習型フィルタ部２００を備える。
フィルタのうちの少なくとも１つは、複数の分類に対してどの分類に該当するかの正解情報８０３を付した学習サンプル入力文書（学習用文書８０２）を入力として学習を行って学習データ２０９を更新し、その学習データに基づきフィルタリング対象入力文書（分類対象文書８０４）がどの分類に該当するかを判定する学習型フィルタ部２００である。
各フィルタは、学習動作時に、正解情報８０３と学習サンプル入力文書の分類結果（合致情報１０１、分類情報２０１）を比較し、エラーかどうかの判定を行い、エラー情報（合致エラー有無情報１０２、分類エラー有無情報２０２）を出力する。
結果判定部３００は、各フィルタのエラー情報をそれぞれ蓄積し、それぞれのフィルタのエラー率を算出する。
結果判定部３００は、分類動作時に、各フィルタの判定結果（合致情報１０１、分類情報２０１）とエラー情報とに応じて最終結果（分類結果３０１）を出力する。【０１２５】
また、情報フィルタリングシステム９００は、前記フィルタのうちの少なくとも１つ（文字列照合型フィルタ部１００）が、学習動作時に学習データ（照合条件情報１０９）の更新を行わず、エラー情報（合致エラー有無情報１０２）の出力のみを行う非学習型フィルタである。【０１２６】
また、結果判定部３００は、エラー率が小さいフィルタの結果を最終結果として出力する。【０１２７】
また、結果判定部３００は、エラー率に応じて、各フィルタの判定結果の加重平均を取り、最終結果を出力する。【０１２８】
また、結果判定部３００は、エラー情報を蓄積する際に、過去一定件数のエラー情報を蓄積する。【０１２９】
また、非学習型フィルタは、入力文書に対して１つ以上の照合条件（分類キーワード１０８）に基づく文字列照合を行い、照合結果が正解情報８０３と合致するかどうかを判定結果（合致エラー有無情報１０２）とする。【０１３０】
また、照合条件は、照合条件ＩＤとそれに対応する照合条件の組（グループ）の集合として表される。
文字列照合フィルタは、それぞれの照合条件ＩＤ毎に合致するかどうかの判定結果を出力する。
結果判定部３００は特定の照合条件ＩＤに対して入力文書８０１が合致している場合には、他の結果に関わらずそれを最終結果として出力する。【０１３１】
また、文字列照合フィルタは、決定性有限オートマトン（ＤＦＡ）による文字列照合を行う。【０１３２】
また、文字列照合フィルタは、照合条件をコンパイルして状態遷移表を作成し、その状態遷移表を照合条件ファイルとして保存し、照合条件ファイルが示す状態遷移表を用いて照合処理を実行する。【０１３３】
また、文字列照合フィルタは、非決定性有限オートマトン（ＮＦＡ）による文字列照合を行う。【０１３４】
実施の形態２．
実施の形態２では、学習型フィルタを複数有する情報フィルタリングシステム９００について説明する。
以下、実施の形態１と異なる事項について主に説明し、説明を省略する事項は実施の形態１と同様であるものとする。【０１３５】
図８は、実施の形態２における情報フィルタリングシステム９００の機能構成図である。
実施の形態２における情報フィルタリングシステム９００の機能構成について、図８に基づいて以下に説明する。【０１３６】
情報フィルタリングシステム９００は、学習型フィルタ部２００ａ、学習型フィルタ部２００ｂ、学習型フィルタ部２００ｃなど、複数の学習型フィルタ部２００を備える。複数の学習型フィルタ部２００を学習型フィルタ集合部４００とする。【０１３７】
学習型フィルタ部２００ａ、学習型フィルタ部２００ｂ、学習型フィルタ部２００ｃなどの各学習型フィルタ部２００は、実施の形態１の学習型フィルタ部２００と同じく、学習部２１０、分類部２２０および学習型フィルタ記憶部２９０を備え（図示省略）、実施の形態１の学習型フィルタ部２００と同じ機能を有する。
但し、各学習型フィルタ部２００の学習部２１０は、それぞれに異なる統計処理を実行する。例えば、学習型フィルタ部２００ａの学習部２１０はベイズ理論に基づく統計処理を行い、学習型フィルタ部２００ｂの学習部２１０はＳＶＭに基づく統計処理を行い、学習型フィルタ部２００ｃの学習部２１０はニューラルネットワークモデルに基づく統計処理を行う。これにより、各学習型フィルタ部２００は、それぞれに独自の学習データ２０９を生成し、各自の学習データ２０９に基づいて分類情報２０１を生成する。
各学習型フィルタ部２００が異なる統計処理を行うことにより、少なくともいずれかの学習型フィルタ部２００により分類対象文書８０４が正しく分類される可能性が高くなり、分類結果３０１の分類精度が向上する。
各学習型フィルタ部２００は、それぞれ、分類対象文書８０４に対する分類情報２０１を結果出力部３２０に出力する。【０１３８】
結果判定記憶部３９０には、文字列照合型フィルタ部１００の合致エラー有無情報１０２と各学習型フィルタ部２００の分類エラー有無情報２０２とが学習結果情報３０９として蓄積される。【０１３９】
エラー率算出部３１０は、学習型フィルタ部２００毎に算出した各分類エラー率を学習型フィルタ集合部４００の分類エラー率としてもよいし、各学習型フィルタ部２００の分類エラー率を併合して学習型フィルタ集合部４００の分類エラー率を算出してもよい。例えば、学習型フィルタ集合部４００の分類エラー率は、各学習型フィルタ部２００の分類エラー率の平均値、各学習型フィルタ部２００の分類エラー率の中での最大値または最小値となる。
エラー率情報３０８は、文字列照合型フィルタ部１００の分類エラー率と学習型フィルタ集合部４００の分類エラー率とを示す。【０１４０】
結果出力部３２０は、文字列照合型フィルタ部１００の分類エラー率と学習型フィルタ集合部４００の分類エラー率とに基づいて、実施の形態１と同様に、分類対象文書８０４の属するカテゴリを特定し、特定したカテゴリを分類結果３０１として出力する。
例えば、結果出力部３２０は、文字列照合型フィルタ部１００の分類エラー率が学習型フィルタ集合部４００の併合した分類エラー率より小さい場合には文字列照合型フィルタ部１００が特定したカテゴリを分類対象文書８０４の属するカテゴリとし、学習型フィルタ集合部４００の併合した分類エラー率が文字列照合型フィルタ部１００の分類エラー率より小さい場合には学習型フィルタ集合部４００が特定したカテゴリを分類対象文書８０４の属するカテゴリとする。
また例えば、結果出力部３２０は、文字列照合型フィルタ部１００と各学習型フィルタ部２００とのうち、最も分類エラー率が小さいフィルタにより特定されたカテゴリを分類対象文書８０４の属するカテゴリとする。【０１４１】
また、結果出力部３２０は各学習型フィルタ部２００の分類情報２０１を併合した結果を学習型フィルタ集合部４００が特定したカテゴリとする。
例えば、結果出力部３２０は多数決により各分類情報２０１を併合する。つまり、結果出力部３２０は、各学習型フィルタ部２００の分類情報２０１に設定されているカテゴリのうち、最も多くの分類情報２０１に設定されているカテゴリを学習型フィルタ集合部４００が特定したカテゴリとする。
また例えば、結果出力部３２０は各分類情報２０１に設定されている各カテゴリの論理和を併合結果とする。
また例えば、結果出力部３２０は、実施の形態１と同様に、各分類情報２０１の加重平均値を算出し、算出した加重平均値と所定の閾値とを比較し、比較結果に基づいて一つ（または、複数）の分類情報２０１を選択し、選択した分類情報２０１を併合結果とする。
また例えば、結果出力部３２０は、実施の形態１と同様に、重み付けした各学習型フィルタ部２００の分類正解率を比較し、分類正解率が最も大きい学習型フィルタ部２００の分類情報２０１を併合結果とする。
また例えば、結果出力部３２０は、各分類情報２０１に設定されているカテゴリの分類確率を比較し、分類確率が最も高いカテゴリを併合結果とする。【０１４２】
また、結果出力部３２０は、文字列照合型フィルタ部１００の合致情報１０１と各学習型フィルタ部２００の分類情報２０１とを多数決、論理和、加重平均値、重み付け分類正解率などにより併合し、併合結果を分類対象文書８０４の属するカテゴリとしてもよい。【０１４３】
例えば、機密情報に属する分類対象文書８０４を検出したいため、検出漏れを無くすことが優先され、過剰検出が増えてもよいというような場合には、論理和による併合結果を分類対象文書８０４の属するカテゴリとする方法が有効的である。
また例えば、検出漏れも過剰検出も最小限に抑えたいという場合には、多数決による併合結果を分類対象文書８０４の属するカテゴリとする方法が有効的である。【０１４４】
その他、情報フィルタリングシステム９００の外観、ハードウェア資源、学習結果生成処理、フィルタリング処理、運用手順などは実施の形態１と同様である。【０１４５】
実施の形態２では、以下のような情報フィルタリングシステム９００について説明した。
結果出力部３２０は、複数の学習型フィルタの出力（分類情報２０１）を併合して１つの学習型フィルタ出力とみなす。【０１４６】
また、結果出力部３２０は、複数の学習型フィルタの出力を併合して１つの学習型フィルタ出力とみなす際に、それぞれの学習型フィルタの出力を論理和により併合する。【０１４７】
また、結果出力部３２０は、複数の学習型フィルタの出力を併合して１つの学習型フィルタ出力とみなす際に、それぞれの学習型フィルタの出力を多数決により併合する。
【図面の簡単な説明】
【０１４８】
【図１】実施の形態１における情報フィルタリングシステム９００の機能構成図。
【図２】実施の形態１における情報フィルタリングシステム９００の外観の一例を示す図。
【図３】実施の形態１における情報フィルタリングシステム９００のハードウェア資源の一例を示す図。
【図４】実施の形態１における学習結果生成処理の流れを示すフローチャート。
【図５】実施の形態１におけるＤＦＡの状態遷移表の一例を示す図。
【図６】実施の形態１における情報フィルタリングシステム９００のフィルタリング処理の流れを示すフローチャート。
【図７】実施の形態１における情報フィルタリングシステム９００の運用手順を示すフローチャート。
【図８】実施の形態２における情報フィルタリングシステム９００の機能構成図。
【符号の説明】
【０１４９】
１００  文字列照合型フィルタ部、１０１  合致情報、１０２  合致エラー有無情報、１０８  分類キーワード、１０９  照合条件情報、１１０  文字列照合部、１２０  正解比較部、１９０  文字列照合型フィルタ記憶部、２００，２００ａ，２００ｂ，２００ｃ  学習型フィルタ部、２０１  分類情報、２０２  分類エラー有無情報、２０９  学習データ、２１０  学習部、２２０  分類部、２９０  学習型フィルタ記憶部、３００  結果判定部、３０１  分類結果、３０８  エラー率情報、３０９  学習結果情報、３１０  エラー率算出部、３２０  結果出力部、３９０  結果判定記憶部、４００  学習型フィルタ集合部、８０１  入力文書、８０２  学習用文書、８０３  正解情報、８０４  分類対象文書、９００  情報フィルタリングシステム、９０１  表示装置、９０２  キーボード、９０３  マウス、９０４  ＦＤＤ、９０５  ＣＤＤ、９０６  プリンタ装置、９０７  スキャナ装置、９１０  システムユニット、９１１  ＣＰＵ、９１２  バス、９１３  ＲＯＭ、９１４  ＲＡＭ、９１５  通信ボード、９２０  磁気ディスク装置、９２１  ＯＳ、９２２  ウィンドウシステム、９２３  プログラム群、９２４  ファイル群、９３１  電話器、９３２  ファクシミリ機、９４０  インターネット、９４１  ゲートウェイ、９４２  ＬＡＮ。
【図１】
2009087757.tif 000004
【図２】
2009087757.tif 000005
【図３】
2009087757.tif 000006
【図４】
2009087757.tif 000007
【図５】
2009087757.tif 000008
【図６】
2009087757.tif 000009
【図７】
2009087757.tif 000010
【図８】
2009087757.tif 000011
【国際調査報告】
2009087757.tif 000012
2009087757.tif 000013
2009087757.tif 000014
2009087757.tif 000015