(57)【特許請求の範囲】
【請求項１】
文字列とキーワードとの照合条件と前記照合条件を識別する特徴トークンとを対応付けて記憶する照合条件記憶手段と、
前記照合条件記憶手段に記憶された前記照合条件と前記特徴トークンとに基づいて、カテゴリ別に予め分類された学習用文書の文字列と前記キーワードとを照合して、合致した前記照合条件に対応する第１の特徴トークンを前記カテゴリと対応付けて抽出し、また、前記照合条件記憶手段に記憶された前記照合条件と前記特徴トークンとに基づいて、前記カテゴリ別に分類される分類対象文書の文字列と前記キーワードとを照合して、合致した前記照合条件に対応する第２の特徴トークンを抽出する特徴トークン抽出手段と、
前記第１の特徴トークンが抽出されなかった前記学習用文書の文字列を文字単位に分割した第１の非特徴トークンを前記カテゴリと対応付けて抽出し、また、前記第２の特徴トークンが抽出されなかった前記分類対象文書の文字列を文字単位に分割した第２の非特徴トークンを抽出する非特徴トークン抽出手段と、
前記第１の特徴トークンと前記第１の非特徴トークンとにより構成された第１のトークン列の出現頻度を学習頻度として前記カテゴリに対応付けて算出する学習手段と、
前記第２の特徴トークンと前記第２の非特徴トークンとにより構成された第２のトークン列の出現頻度と、前記学習手段により算出された前記学習頻度との類似度を示す分類確率を前記カテゴリ別に算出し、前記分類確率が所定の閾値を越える前記カテゴリに前記分類対象文書を分類する分類手段と、
を備えた情報検索システム。
【請求項２】
前記学習手段は、前記第１のトークン列中の連続するｎ（ｎは自然数）個のトークンにより構成された第１のトークン連鎖に前記第１の特徴トークンが含まれる場合のみ、この第１のトークン連鎖の出現頻度を前記学習頻度として算出し、
前記分類手段は、前記第２のトークン列中の連続するｎ（ｎは自然数）個のトークンにより構成された第２のトークン連鎖に前記第２の特徴トークンが含まれる場合のみ、この第２のトークン連鎖の出現頻度と、前記学習手段により算出された前記学習頻度との類似度を示す前記分類確率を前記カテゴリ別に算出する請求項１に記載の情報検索システム。
【請求項３】
前記照合条件記憶手段は、前記照合条件に優先度が設定された優先度設定照合条件を記憶し、
前記特徴トークン抽出手段は、前記優先度設定照合条件と前記特徴トークンとに基づいて、前記第１または第２の特徴トークンを抽出する請求項１または２に記載の情報検索システム。
【請求項４】
前記照合条件記憶手段は、前記照合条件が予め定義済みである組み込み照合条件と、ユーザが定義するユーザ定義照合条件とを記憶し、
前記特徴トークン抽出手段は、前記組み込み照合条件と前記ユーザ定義照合条件と前記特徴トークンとに基づいて、前記第１または第２の特徴トークンを抽出する請求項１乃至３のいずれかに記載の情報検索システム。
【請求項５】
前記照合条件記憶手段は、前記照合条件が正規表現で定義された正規表現照合条件を記憶し、
前記特徴トークン抽出手段は、前記正規表現照合条件と前記特徴トークンとに基づいて、前記第１または第２の特徴トークンを抽出する請求項１乃至４のいずれかに記載の情報検索システム。
【請求項６】
前記照合条件記憶手段は、前記照合条件に、前記キーワードの分類を示す用語クラス毎に複数の前記キーワードが定義された用語クラス照合条件を記憶し、
前記特徴トークン抽出手段は、前記用語クラス照合条件と前記特徴トークンとに基づいて、前記第１または第２の特徴トークンを抽出する請求項１乃至４のいずれかに記載の情報検索システム。
【請求項７】
前記照合条件記憶手段は、前記正規表現照合条件に自らの識別番号である照合条件ＩＤが付与されたＩＤ付与照合条件を記憶し、
前記特徴トークン抽出手段は、前記ＩＤ付与照合条件を基に文書中の文字列と前記キーワードとを照合し、合致した前記ＩＤ付与照合条件の前記照合条件ＩＤと、合致した前記文字列の終了位置を示すヒット位置とを出力する照合手段と、
前記照合手段が出力する前記照合条件ＩＤと前記ヒット位置とに基づいて、前記照合条件が合致した前記文字列を前記ＩＤ付与照合条件に対応する前記第１または第２の特徴トークンに置換する置換手段とを備えた請求項５に記載の情報検索システム。
【請求項８】
前記照合手段は、決定性有限オートマトンによる文字列照合を行なう請求項７に記載の情報検索システム。
【請求項９】
前記照合手段は、非決定性有限オートマトンによる文字列照合を行なう請求項７に記載の情報検索システム。
【請求項１０】
前記照合条件記憶手段は、前記照合条件ＩＤ中に前記用語クラスの識別番号を保持する用語クラスフィールドと、前記ＩＤ付与照合条件の前記キーワードの文字数を保持する文字数フィールドとを含むフィールド情報付与照合条件を記憶し、
前記置換手段は、前記フィールド情報付与照合条件の前記照合条件ＩＤの前記文字数フィールドに保持された文字数分の文字列を前記ヒット位置の前から取り除き、前記照合条件ＩＤに対応する前記第１または第２の特徴トークンを挿入する請求項７乃至９のいずれかに記載の情報検索システム。
【請求項１１】
前記フィールド情報付与照合条件は、複数の固定長キーワードを含み、
このフィールド情報付与照合条件を前記固定長キーワード別に分割し、分割された前記フィールド情報付与照合条件の中で前記固定長キーワードの文字数が一致する前記フィールド情報付与照合条件をまとめて新たなフィールド情報付与照合条件を合成する照合条件合成手段を備えた請求項１０に記載の情報検索システム。
【請求項１２】
前記照合条件記憶手段は、前記キーワードが可変長である場合に、この可変長キーワードに対応する前記文字数フィールドに可変長であることを示す可変長情報が設定された可変長情報設定照合条件を記憶し、
前記置換手段は、前記可変長情報設定照合条件の前記文字数フィールドに前記可変長情報が設定されている場合に、前記可変長キーワードが合致した文字列を前記ヒット位置の前から取り除かずに前記ヒット位置の直後に前記第１または第２の特徴トークンを挿入する請求項１０に記載の情報検索システム。
【請求項１３】
複数の前記照合条件ＩＤの順序関係を定義する照合条件シーケンスと自らの識別子であるルールＩＤとを対応付けて記憶するルールと、
前記照合手段により出力される前記照合条件ＩＤと前記ヒット位置とを解析して、前記ルールに記憶された前記照合条件シーケンスに一致する順序関係で出現する前記照合条件ＩＤの連鎖を検出し、この照合条件ＩＤの連鎖における前記ヒット位置間の距離と、前記照合条件シーケンスが一致した前記ルールの前記ルールＩＤとを組み合わせた識別子である特徴間距離トークンを生成する特徴間距離トークン生成手段を備え、
前記学習手段は、前記特徴間距離トークンの出現頻度に基づいて前記カテゴリ別の出現頻度である前記学習頻度を学習し、
前記分類手段は、前記特徴間距離トークンの出現頻度に基づいて前記カテゴリへの分類確率を算出し、この分類確率が所定の閾値を越える前記カテゴリに前記分類対象文書を分類する請求項７乃至９のいずれかに記載の情報検索システム。
【請求項１４】
前記特徴間距離トークン生成手段により生成された前記特徴間距離トークンと、前記特徴トークン抽出手段により抽出された前記特徴トークンと、前記非特徴トークン抽出手段により抽出された前記非特徴トークンとを選択的に出力するための動作モード条件が設定され、この動作モード条件が前記特徴トークンと前記非特徴トークンとの出力を抑止する設定である場合に、前記特徴間距離トークンのみを出力するように制御するトークン出力制御手段を備えた請求項１３に記載の情報検索システム。
【請求項１５】
前記分類手段は、前記特徴トークンと前記非特徴トークンとに基づいて算出された前記カテゴリへの第1の分類確率と、前記特徴間距離トークンに基づいて算出された前記カテゴリへの第２の分類確率とを重み付けして合算した第３の分類確率を用いて、前記カテゴリに前記分類対象文書を分類する請求項１３に記載の情報検索システム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、文書中に記載されたテキストを解析して、文書をテキストの内容に応じて分類する情報検索システムに関する。
【背景技術】
【０００２】
従来から、文書の自動分類に関する方法が提案されている。機械学習を用いた文書分類に関しては、例えば、特許文献１に開示された方法のように、予め定められた特定の用語グループまたは正規表現によって規則的表現を記述し、この規則的表現に合致した文字列をトークン（字句で表現されたラベル）に置き換えることにより、大きな語彙を持つ文書を分類するための学習に要する特徴要素数を削減していた。
【０００３】
【特許文献１】特表２００３−５３５４０７号公報  第７６頁〜８５頁
【発明の開示】
【発明が解決しようとする課題】
【０００４】
従来の機械学習による文書分類の例である特許文献１の方法においては、英語などのように単語ごとに区切られた文章を前提としており、日本語などのように単語区切りがない文章に対してそのまま適用することができないという問題があった。この問題を解決する技術として、単語区切りがない文章を単語ごとに分かち書きする形態素解析の技術が知られているが、形態素解析は処理量が多いために時間がかかるという課題があった。
【０００５】
また、特許文献１の方法を機密情報の検出に適用しようとすると、例えば、機密情報の一つである個人情報をトークン化する場合には、人名の誤検出が多くなるという課題があったが、これに対しても対策がなく、トークンの誤検出による分類精度低下の問題があった。
【０００６】
この発明は上記のような問題点を解決するためになされたもので、日本語などのように単語区切りがない文章を処理対象とし、文字列照合による高速な文章のトークン化を特徴とする情報検索システムを提供することを目的とする。また、文字列照合によって得られたトークンの誤検出を低減させて分類精度を高めることを特徴とする情報検索システムを提供することを目的とする。
【課題を解決するための手段】
【０００７】
上記で述べた課題を解決するため、本発明に係る情報検索システムは、文字列とキーワードとの照合条件と前記照合条件を識別する特徴トークンとを対応付けて記憶する照合条件記憶手段と、前記照合条件記憶手段に記憶された前記照合条件と前記特徴トークンとに基づいて、カテゴリ別に予め分類された学習用文書の文字列と前記キーワードとを照合して、合致した前記照合条件に対応する第１の特徴トークンを前記カテゴリと対応付けて抽出し、また、前記照合条件記憶手段に記憶された前記照合条件と前記特徴トークンとに基づいて、前記カテゴリ別に分類される分類対象文書の文字列と前記キーワードとを照合して、合致した前記照合条件に対応する第２の特徴トークンを抽出する特徴トークン抽出手段と、前記第１の特徴トークンが抽出されなかった前記学習用文書の文字列を文字単位に分割した第１の非特徴トークンを前記カテゴリと対応付けて抽出し、また、前記第２の特徴トークンが抽出されなかった前記分類対象文書の文字列を文字単位に分割した第２の非特徴トークンを抽出する非特徴トークン抽出手段と、前記第１の特徴トークンと前記第１の非特徴トークンとにより構成された第１のトークン列の出現頻度を学習頻度として前記カテゴリに対応付けて算出する学習手段と、前記第２の特徴トークンと前記第２の非特徴トークンとにより構成された第２のトークン列の出現頻度と、前記学習手段により算出された前記学習頻度との類似度を示す分類確率を前記カテゴリ別に算出し、前記分類確率が所定の閾値を越える前記カテゴリに前記分類対象文書を分類する分類手段とを備えることとしたものである。
【発明の効果】
【０００８】
本発明によれば、抽出すべき特徴トークンを定義した照合条件を用いて、入力文書から特徴トークンと非特徴トークンとからなるシーケンスを抽出し、照合条件の優先順位付けやトークンの連鎖確率を利用して学習あるいは分類するようにしたので、単語区切りの無い文章を含む文書を入力した場合にも、形態素解析に比べて処理の速い文字列照合を用いてトークン化が行なえるので高速な処理が可能となり、さらに、特徴トークンの誤検出を防止して、分類精度を向上させることができるようになるという効果がある。
【発明を実施するための最良の形態】
【０００９】
以下の説明では、実施の形態として機密情報検索を例としてあげるが、この発明は機密情報検索に限定されるものではなく、広く一般に文書の分類に用いることができるものである。また、以下の説明では、日本語文書の検索を例としてあげるが、この発明の用途は日本語に限定されるものではなく、どのような文字コードでも適用可能である。
【００１０】
実施の形態１．
図１は、実施の形態１における情報検索システムの一例を示す構成図である。
この情報検索システムは、前処理手段１００と、学習手段２００と、分類手段３００と、前処理手段１００に入力される照合条件を記憶する照合条件記憶手段４００とから構成される。
【００１１】
前処理手段１００はさらに、テキスト抽出手段１０１と、特徴トークン抽出手段１０２と、非特徴トークン抽出手段１０３とを備える。学習手段２００は、学習用にトークンの頻度を計算する学習用頻度計算手段２０１と、計算されたトークンの頻度を分類のカテゴリごとに蓄積し、学習頻度として記憶する学習頻度記憶手段２０２とを備える。分類手段３００は、分類用にトークンの頻度を計算する分類用頻度計算手段３０１と、この分類用のトークンの頻度と学習頻度記憶手段２０２に記憶されたトークンの学習頻度とに基づいて、入力文書の分類確率を算出する分類確率算出手段３０２と、最終的に入力文書のカテゴリを判定するカテゴリ判定手段３０３を備える。
【００１２】
学習用文書５０１は、予め複数のカテゴリに分類された複数の文書のセットである。カテゴリは、具体的には、（「非機密文書」、「機密文書」）のように二つの分類で表わすことができる。あるいは、機密文書の機密等級レベルに応じて、（「非機密文書」、「機密レベル１文書」、「機密レベル２文書」、・・・）などのように三つ以上の分類で表わしても良い。
【００１３】
一方、分類対象文書５０２は、カテゴリの分からない文書であり、分類の対象となる文書の集合である。この分類対象文書５０２の属するカテゴリが、本実施の形態１の情報検索システムにより判定される。
【００１４】
照合条件記憶手段４００は、前処理手段１００に入力される照合条件を記憶するものである。この照合条件は、学習や分類に先立って設定されるものであり、組み込み照合条件４００１とユーザ定義照合条件４００２とに分けることができる。組み込み照合条件４００１は、情報検索システムの出荷時に予め組み込まれた照合条件であり、これを基本的な照合条件としてユーザに提供することで、ユーザは直ちに情報検索システムの利用を開始できるようにするものである。また、ユーザ定義照合条件４００２は、各ユーザが、特有の用語などを追加して照合条件をカスタマイズできるようにするものである。
【００１５】
上記の照合条件は、キーワードと、照合条件を識別するための照合条件ＩＤとの組の集合で表される。ここでいうキーワードとは、単語や文字列の上位概念を示す複数の用語クラスに対して、各用語クラスに属する単語や文字列を指定する表現形式を意味する。キーワードの表現形式は、複数の固定の用語を羅列したものでも良いし、正規表現により記述したものでも良い。
【００１６】
次に、図２から図６を適宜参照しながら、本発明の実施の形態１における情報検索システムの動作を詳細に説明する。
【００１７】
まず、図２を参照して、学習段階の動作について説明する。
図２は、実施の形態１における情報検索システムの動作を示すフローチャートである。
ステップＳ１１において、予めカテゴリ分けされた学習用文書５０１が、前処理手段１００に入力される。次に、ステップＳ１２において、前処理手段１００により、学習用文書５０１からトークン列が抽出される。次に、ステップＳ１３において、学習用頻度計算手段２０１により、抽出されたトークン列を解析して、連続するＮ個のトークンから成るシーケンスの出現頻度を計算する。ここで、連続するトークンの数は、１つ以上、かつ、Ｎ個以下であっても良い。次に、ステップＳ１４において、学習頻度記憶手段２０２により、学習されたトークンの頻度が、カテゴリごとに学習頻度として記憶される。さらに、ステップＳ１５において、学習手段２００により、学習用文書５０１の全文書の学習が完了したか否かを判定する。判定の結果、学習用文書５０１に複数の文書が含まれる場合には、ＮＯの分岐へ進み、ステップＳ１１以下の動作を繰り返す。一方、判定の結果、全文書が完了した場合には、Ｙｅｓの分岐へ進み、学習段階の動作を終了する。
【００１８】
次に、図３を参照して、分類段階の動作について説明する。
図３は、実施の形態１において、分類段階の動作を示すフローチャートである。
ステップＳ２１において、分類対象文書５０２が前処理手段１００に入力される。次に、ステップＳ２２において、前処理手段１００により、分類対象文書５０２からトークン列が抽出される。次に、ステップＳ２３において、分類用頻度計算手段３０１により、抽出されたトークン列を解析して、連続するＮ個のトークンから成るシーケンスの出現頻度を計算する。ここで、連続するトークンの数は、１つ以上、かつ、Ｎ個以下であっても良い。次に、ステップＳ２４において、分類確率算出手段３０２により、学習結果に基づき、分類対象文書５０２が、各カテゴリに分類される確率を計算する。次に、ステップＳ２５において、カテゴリ判定手段３０３により、分類対象文書５０２が、いずれのカテゴリに分類されるかを、ステップＳ２４で算出された確率に基づいて判定する。最後に、ステップＳ２６において、分類手段３０３は、ステップＳ２５で判定された分類先のカテゴリを分類結果として出力する（Ｓ２６）。
【００１９】
上記で述べた学習および分類の動作を実現するためには、非特許文献１にCRM114として示されているテキスト分類ソフトウェアを用いることもできる。
【００２０】
【非特許文献１】William S. Yerazunis著「Sparse Binary Polynomial Hashing and the CRM114 Discriminator」, MIT Spam Conference 2003, ２００３年１月１７日
【００２１】
なお、学習動作は、最初にシステム初期化の段階で一括して実行するようにしても良い。さらに、分類動作時に分類誤りなどが発生した場合には、分類誤りが発生した文書を学習用として再度学習することにより、学習データの更新を行なうようにしても良い。
【００２２】
次に、図４を参照して、前処理手段１００の動作をより詳細に説明する。
図４は、実施の形態１において、前処理手段１００の動作を示すフローチャートである。
ステップＳ３１において、予めカテゴリ分けされた学習用文書５０１、あるいは、分類対象文書５０２が入力文書として前処理手段１００に入力される。次に、ステップＳ３２において、テキスト抽出手段１０１により、入力文書から、自然言語で表現された記述であるテキストが抽出される（Ｓ３２）。
【００２３】
テキスト抽出手段１０１は、任意の形式の文書からテキストを抽出するものである。任意の形式の文書としては、例えば、市販の文書編集ソフトウエアが生成する種々の形式の文書や、電子メール、ＨＴＭＬ（ＨｙｐｅｒＴｅｘｔ  Ｍａｒｋｕｐ  Ｌａｎｇｕａｇｅ）などのＷｅｂ上で用いられる文書などのように、テキストが含まれる文書であれば何であっても良い。また、テキスト抽出手段１０１は、市販のテキスト抽出ソフトウエアを用いることもできる。さらに、テキスト抽出手段１０１の出力としては、文書中の文字列からスペース、タブや改行などを取り除いたものとしてもよい。これにより、用語の途中にスペース、タブや改行が入ることに起因する検出漏れを削減できるようになる。
【００２４】
次に、ステップＳ３３において、特徴トークン抽出手段１０２により、ステップＳ３２で抽出されたテキストから、特徴トークンが抽出される。ここでの特徴トークンとは、照合条件記憶手段４００で記憶された照合条件において、各照合条件に対応して設定された用語クラスを表現する文字列を意味する。この特徴トークンは、用語クラス名そのものや、照合条件ＩＤそのものでも良いが、後述の非特徴トークン抽出手段１０３で文字列として抽出される非特徴トークンとの混同が無いように、例えば、照合条件ＩＤ＝１に対応して、半角英数字による「ＴＯＫＥＮ＿１」などのように特別の文字列を用いることもできる。
【００２５】
特徴トークン抽出手段１０２は、照合条件記憶手段４００で記憶された照合条件を参照して、ステップＳ３２で抽出されたテキストと、照合条件に設定されたキーワードとの照合を行ない、キーワードと合致したテキスト中の文字列を、合致した照合条件ＩＤに対応する特徴トークンに置き換える。このような照合処理、および、特徴トークンへの置き換え処理は、照合条件中のキーワードが複数の固定の用語で与えられる場合、次のようになる。特徴トークン抽出手段１０２は、全ての照合条件に対して、各照合条件に属する全ての用語とテキストとの文字列比較を行なって照合し、一致した場合に、その文字列を特徴トークンに置き換える。この処理を、テキストの照合位置を１文字づつずらしながら実行する。
【００２６】
また、照合条件に設定されたキーワードが正規表現で与えられる場合には、例えば、一般的なＯＳ（Ｏｐｅｒａｔｉｎｇ  Ｓｙｓｔｅｍ）で使用されるテキスト処理プログラムのＳＥＤや、プログラミング言語のＰＥＲＬ、その他の正規表現ライブラリなどのように、正規表現の置換機能を有するソフトウエアを用いることで実現することができる。
【００２７】
このように、テキスト中の用語を特徴トークンに置き換えることにより、文書分類の特徴量として用いられる語彙サイズを削減でき、後段の学習手段２００による学習処理において必要となる学習量を減らすことができる。例えば、個人情報に関する特徴量として用いられる人名については、頻出人名に限っても数千語程度の用語が必要となり、この頻出人名を学習するためには、数千語よりもさらに多量の学習データが必要となるため、ユーザにとって学習データの収集が困難であるという問題点がある。しかし、上記のような特徴トークン抽出による語彙サイズ削減を行なえば、より少ない学習データで精度の高い分類が実現できるようになる。
【００２８】
次に、ステップＳ３４において、非特徴トークン抽出手段１０３により、特徴トークンとして抽出されなかったテキスト中の文字列から、非特徴トークンの抽出を行なう。ここでの非特徴トークンは、１つの文字とする。すなわち、特徴トークン以外の文字列を１文字づつ取り出したものを非特徴トークンとする。
【００２９】
さらに望ましくは、日本語文書を例に取れば、日本語文字については１文字単位での取り出しを行ない、英数字および記号については、日本語文字と英数字など文字種の切り替わりの単位での取り出しを行なうようにする。こうすることで、特徴トークンを前記の「ＴＯＫＥＮ＿１」の例のように英数字および記号により記述すれば、特徴トークン抽出手段１０２により既に抽出した特徴トークンと、それ以外の文字列とを容易に区別できるようになり、非特徴トークン抽出手段１０３による抽出処理で特徴トークンが分割されないようにするために、特徴トークンかどうかのチェックを行なうという処理段階を省略できるようになる。もちろん、日本語以外の文書に対しても同様に、非特徴トークンを取り出すこともできる。
【００３０】
次に、ステップＳ３５において、前処理手段１００により、上記で抽出した特徴トークン、および、非特徴トークンとから成るトークン列が出力される。このトークン列のデータ出力方法としては、例えば、スペース区切りや改行区切り等を併用してトークン列を表現し、このトークン列を格納したテキストファイルを、後段の学習手段２００や分類手段３００に渡すようにする。または、トークン列を文字列の配列としてメモリに格納して、後段の学習手段２００や分類手段３００に渡すようにしても良い。
【００３１】
以上の前処理により、入力文書からトークン列（特徴トークンと非特徴トークンとからなるシーケンス）が抽出される。このように、単語区切りの無い文章を含む文書を入力した場合にも、形態素解析に比べて処理の速い文字列照合を用いてトークン化を行なうことで、高速な処理が可能となる。
【００３２】
ここで、図５に示す照合条件の例を参照しながら、照合条件についてさらに詳細に説明する。以下の説明では、正規表現により表現されたキーワード（正規表現キーワード）を例に取っているが、固定の用語によるキーワードでも同様に実施できる。
【００３３】
図５は、実施の形態１において、照合条件の例を示す図である。
照合条件には、各用語クラスに対して正規表現キーワードと照合条件ＩＤを組にしたものを用意し、それを複数組備えることができる。図５に示したように、例えば、人名（姓）や県名などの用語クラスについては、それに属する用語（固有名詞）を羅列する正規表現キーワードを作成することができる。また、メールアドレスや電話番号などの用語クラスについては、それらに固有の表現パターンに基づく正規表現キーワードを作成することができる。
【００３４】
ここで、機密情報を分類の対象とする場合には、機密情報の中の一つである個人情報に関して、人名と住所、電話番号、メールアドレスなどが特徴的な用語クラスとなる。さらに、名簿に使われることが多い名簿用語なども、個人情報ファイルの検出に有効である。また、一般の機密情報を検出するためには、「社外秘」などのような機密レベルを表わす用語クラスや、機密情報が含まれることの多い文書種類（仕様書など）、取引先名などの用語クラスを定義することができる。なお、図５では、用語クラスの一部の例を示したが、用語クラスとそれに属する正規表現キーワードはこれらに限られるものではない。
【００３５】
また、図５の組み込み照合条件４００１とユーザ定義照合条件４００２においては、照合条件ＩＤは重なりがあってもよい。すなわち、組み込み照合条件４００１にて既に定義されている用語クラスに用語を追加したい場合には、ユーザ定義照合条件４００２で同じ照合条件ＩＤを使用することにより、用語の追加ができる。図５の例では、照合条件ＩＤ＝１において、ユーザが所望する人名を追加していることを示す。
【００３６】
このように同じ照合条件ＩＤを使用することで、システム運用中に新たな用語を追加する場合でも、用語クラスとしては変わらないため、既に学習した学習データがそのまま利用できるという利点がある。もちろん、再度、学習文書５０１を学習させることで、追加された用語に関する差分情報を含めた学習結果にアップデートして保持するようにもできる。
【００３７】
ユーザ定義照合条件４００２においてはさらに、新しい照合条件ＩＤを割り当てることもできる。図５の例では、用語クラス「文書種類」において、照合条件ＩＤ＝１００という組み込み照合条件４００１にない照合条件ＩＤを用いている。このことにより、ユーザが新しい用語クラスを定義して用語を追加できるようになる。
【００３８】
さらに、照合条件には優先順位を付けることもできる。この場合、テキスト中の文字列との照合は、優先順位の高いものから順に実行される。優先順位を付ける方法としては、例えば、照合条件として（ＩＤ、正規表現キーワード、優先順位）といった組のように、優先順位を別途管理するようにすることもできるし、あるいは、照合条件を記述した順番により、先に記述された照合条件の優先順位を高くするというようにもできる。
【００３９】
さらに望ましい形態としては、照合条件ＩＤの大小により優先順位を判断することもできる。この場合、図５の例によれば、照合条件ＩＤ＝１が最も優先順位が低く、照合条件ＩＤ＝１０１が最も優先順位が高いとされる。例えば、テキスト中の「東京都」という文字列に対して照合を行なうと、ＩＤ＝１０にある「東京都」と、ＩＤ＝１にある「東」との二つがヒットするが、ＩＤ＝１０の方が優先順位が高いため、「東京都」という文字列がＴＯＫＥＮ＿１０として特徴トークン化される。人名による個人情報の検出を行なう場合には、「東」のような一文字の人名が誤検出されることによる分類精度低下が問題となるが、この照合条件の優先順位を利用することによって、人名漢字が地名や会社名などで使用されている場合の誤検出を減らすことができる。
【００４０】
このような誤検出が生じる場合の具体的な例を図６に示す。
図６は、実施の形態１において、図５の照合条件を用いて前処理手段１００により生成されたトークン列の例を示す図である。
トークン化された文字列は、１行あたり１トークンの表示形式で示されており、「鈴木」がＴＯＫＥＮ＿１、「東京都」がＴＯＫＥＮ＿１０、「東日本橋」の「東」がＴＯＫＥＮ＿１、「(０３)１１１１−２２２２」がＴＯＫＥＮ＿１２として特徴トークン化されている。また、それ以外の文字については、この例では日本語であるため、１文字が１トークンとして非特徴トークン化されている。図６の例の場合、「東日本橋」の「東」がＴＯＫＥＮ＿１として特徴トークン化されている点が誤検出となっている。このような誤検出に対応するためには、例えば、新たな用語クラス「地名」を定義して、用語として「東日本橋」を含むようにすることもできるが、全ての誤検出が回避できるわけではない。
【００４１】
本実施の形態においては、前述した照合条件の優先順位付けに加え、さらに、特徴トークンと、その前後の特徴トークン、または、非特徴トークンとを関連付けることにより誤検出を防ぎ、カテゴリ分類結果への誤検出の影響を減らすことができる。例えば、図６では、「ＴＯＫＥＮ＿１、日、本」という３個のトークンのシーケンスに関して、特徴トークンＴＯＫＥＮ＿１は、実際には人名であるよりも、「東日本」という地名である可能性が高い。このような３個のトークンの連鎖確率を、前述のように、学習手段２００により、トークン列から連続する１乃至Ｎ個のトークンのシーケンスを切り出して、そのシーケンスの出現頻度を計算することで、トークンの連鎖確率を学習することができる。このようなトークンの連鎖確率を利用して学習あるいは分類することにより、特徴トークンの誤検出を防止し、分類精度を向上させることができる。
【００４２】
さらにまた、本実施の形態においては、特徴トークンを一つも含まない１乃至Ｎ個のトークンのシーケンスを、学習あるいは分類に使用しないことにより、学習や分類に要する時間を削減し、さらに、学習データの格納に要する記憶容量を削減することができる。１乃至Ｎ個のトークンのシーケンスが特徴トークンを含まない場合、すなわち、全て非特徴トークンである場合、そのシーケンスは、学習あるいは分類に寄与しない文字（非特徴トークン）の羅列である。特に、学習用文書５０１に含まれる文書数が比較的少ない場合には、それぞれのシーケンスのパターンは出現頻度が低く、分類に有意である可能性が低いため、学習あるいは分類に使用しなくても結果は大きく変わらない。このための具体的な実現方法としては、学習手段２００、および、分類手段３００において、特徴トークンを含まない１乃至Ｎ個のトークンのシーケンスを無視するようにしてもよいし、前処理手段１００において、特徴トークンを含む１乃至Ｎ個のトークンのシーケンスのみ出力するようにしてもよい。
【００４３】
以上のように、実施の形態１によれば、抽出すべき特徴トークンを定義した照合条件を用いて、入力文書から特徴トークンと非特徴トークンとからなるシーケンスを抽出し、照合条件の優先順位付けやトークンの連鎖確率を利用して学習あるいは分類するようにしたので、単語区切りの無い文章を含む文書を入力した場合にも、形態素解析に比べて処理の速い文字列照合を用いてトークン化が行なえるので高速な処理が可能となり、さらに、特徴トークンの誤検出を防止して、分類精度を向上させることができるようになるという効果がある。
【００４４】
実施の形態２．
以上の実施の形態１では、特徴トークンの抽出を文字列の置換機能により実現するようにしたものであるが、次に、特徴トークンの抽出を正規表現の照合機能により実現する実施の形態を示す。
【００４５】
正規表現を照合条件とする文字列照合方法として、ＮＦＡ（Ｎｏｎ  Ｄｅｔｅｒｍｉｎｉｓｔｉｃ  Ｆｉｎｉｔｅ  Ａｕｔｏｍａｔｏｎ、非決定性有限オートマトン）による方法や、ＤＦＡ（Ｄｅｔｅｒｍｉｎｉｓｔｉｃ  Ｆｉｎｉｔｅ  Ａｕｔｏｍａｔｏｎ、決定性有限オートマトン）による方法が知られている。ＤＦＡの場合には、正規表現をコンパイルして状態遷移表を生成し、その状態遷移表を入力文字列に適用することで照合を行なうため、ＮＦＡに比べて高速に照合できることが知られている。この発明においては、いずれの方法を用いても実施可能であるが、以下の説明ではＤＦＡを用いる例を示す。
【００４６】
図７は、実施の形態２において、ＤＦＡを用いた場合の特徴トークン抽出手段１０２に関わる構成の一例を示す図である。
本実施の形態２では、照合条件記憶手段４００に記憶された照合条件から状態遷移表１０５を生成する状態遷移表生成手段１０４を備え、特徴トークン抽出手段１０２は、状態遷移表１０５を参照して入力文字列１０２０との照合を行なう照合手段１０２１と、照合結果から文字列の置き換えを行なう置換手段１０２２とにより構成される。
【００４７】
図7において、状態遷移表生成手段１０４は、照合条件に含まれる全ての文字列を解析し、ＤＦＡで文字列を受理するまでの解析過程を状態遷移で表現して状態遷移表１０５を生成する。状態遷移表１０５を生成する方法は一般に良く知られた方法であり、このような既存の方法を状態遷移表生成手段１０４で用いても構わない。
【００４８】
照合手段１０２１は、入力文字列１０２０（テキスト抽出手段１０１により抽出されたテキスト）が１文字づつ入力されて状態遷移表１０５による照合を行ない、照合条件の合致を判定する。合致した場合には、合致した文字列の終了位置（入力文字列１０２０の先頭からの位置であり、ここではヒット位置と呼ぶ）、及び、合致した照合条件ＩＤを出力する。さらに、照合手段１０２１では、合致した文字列の開始位置（入力文字列１０２０の先頭からの位置）を算出し、置換手段１０２２において、合致した文字列の開始位置、及び、終了位置（ヒット位置）に基づいて、特徴トークンへの置換を行なうことができる。
【００４９】
あるいは、照合手段１０２１において開始位置は算出せず、終了位置（ヒット位置）のみを算出するようにもできる。そうすることにより、開始位置を算出するために状態遷移表１０５を逆にたどったり、状態遷移表１０５の各状態で開始位置を管理したりするなどといった処理が不要となり、照合を高速化できる。
【００５０】
この場合、置換手段１０２２は以下のように動作する。
照合条件には、人名や地名、会社名などのような固有名詞を用語とする用語クラスと、メールアドレスのように可変長の用語に対して合致する正規表現キーワードを持つ用語クラスとがある。固有名詞の羅列となるような照合条件に対しては、照合条件記憶手段４００において、用語の長さごとに照合条件を分けて、照合条件ＩＤごとに一意に長さが決まるようにできる。したがって、照合手段により合致した照合条件ＩＤから、対応する長さの文字列を、対応する特徴トークンに置き換えることができる。可変長の用語を持つ用語クラスに対しては、置き換えを行なわずに、終了位置（ヒット位置）に続けて特徴トークンを挿入するように構成できる。
【００５１】
これにより、開始位置がわからない状態においても、文字列の置換を行なうことができ、置換処理を高速化できる。
【００５２】
図８は、実施の形態２において、用語の長さを分けた照合条件の例を示す図である。
照合条件ＩＤを、用語クラスを識別する用語クラスフィールドと、文字数を識別する文字数フィールドとから成るように構成する。図８において、ＩＤ＝１０１、１０２、１０３は用語クラスフィールドが１で文字数がそれぞれ１，２，３であることを示す。置換手段１０２２においては、用語クラスフィールドを用いて特徴トークンの生成（この場合は、ＴＯＫＥＮ＿１）を行ない、文字数フィールドに示される文字を入力文字列から取り除いて、特徴トークンを挿入する。ＩＤ＝１１００については、用語クラスフィールドが１１、文字数フィールドが０となる。文字数フィールド０は可変長であることを示し、この場合、置換手段１０２２は、入力文字列からの合致文字列の削除を行なわずに、特徴トークン（この場合は、ＴＯＫＥＮ＿１１）の挿入を行なう。図８の例では、ＩＤの１の位と１０の位を文字数フィールド、それ以上の位を用語クラスフィールドとしたが、フィールドの割り当てについてはこれに限るものではない。
【００５３】
このように、照合条件ＩＤの一部に文字数情報を持たせることにより、文字数を別に管理する場合の煩雑さを無くすことができる。
【００５４】
上記のように照合条件ＩＤに文字数情報を持たせる場合、ユーザが文字数を意識しながら照合条件を作成するのは手間がかかるため、照合条件を自動構成するようにすることもできる。
図９は、実施の形態２において、照合条件を自動構成する構成の例を示す図である。
図９の例では、照合条件合成手段１０６が追加されている。照合条件合成手段１０６は、文字数ごとに分かれていない図５のような照合条件を入力として、正規表現キーワードを解析し、文字数ごとに分けた照合条件を生成する。正規表現キーワードが人名のように固定長文字の羅列である場合には文字数ごとに分けた正規表現キーワードを生成し、それぞれの正規表現キーワードの文字数と元の照合条件ＩＤから、新しい照合条件ＩＤ（用語クラスフィールドと文字数フィールドをもつもの）を生成する。正規表現キーワードが可変長である場合には、照合条件ＩＤの文字数フィールドに０を入れる。
【００５５】
このように、文字数情報を持った照合条件を自動生成することで、ユーザが文字数を意識した照合条件を作成する手間を省くことができる。
【００５６】
実施の形態３．
以上の実施の形態２は、照合条件に合致した文字列の入力テキスト中の位置のみを出力する照合手段１０２１を用いた場合でも特徴トークンへの置換が行なえるようにするものであるが、次に、特徴的な用語同士の位置関係をトークン化する場合の実施の形態を示す。
【００５７】
個人情報の検出においては、名簿のように人名と住所、電話番号、メールアドレスなどが並んでいる構造を持つ文書を検出対象にする場合も多い。このような特徴的な用語同士の位置関係を抽出して学習することで、分類精度を上げることができる。
【００５８】
この実施の形態３における前処理手段１００は、照合条件ＩＤで指定される特徴的な用語の入力文書中のヒット位置を抽出して記憶し、２つ以上の特徴的な用語のシーケンスで予め定めたルールに合致するシーケンスが現れた場合に、それらの特徴間の距離を、記憶されたヒット位置により算出し、該当するルールにつけられたルールＩＤと距離とを合わせて特徴間距離トークンを生成する。学習手段２００、及び、分類手段３００においては、この特徴間距離トークンをその他のトークンと同じように学習することで、名簿のような構造を持った文書を効率的に学習・分類できる。
【００５９】
図１０は、実施の形態３における情報検索システムの一例を示す構成図である。
図１０では、前処理手段１００において、特徴間距離トークン生成手段１０７が追加され、さらにルール６００が追加される構成になっている。
【００６０】
図１１は、実施の形態３において、ルール６００の例を示す図である。
一つのルールは、ルールＩＤと照合条件シーケンスとの組から構成される。図１１のＩＤ＝１は、照合条件ＩＤが１、１１の順で現れるもの、すなわち、人名→メールアドレスの順に現れるものを検出するためのルールである。これを検出した場合、特徴間距離トークンとしてルールＩＤ＝１であることが識別可能であり、このＩＤと、検出したものの距離とを含むような特徴間距離トークンを、特徴間距離トークン生成手段１０５にて生成する。例えば、距離が２０であった場合には、ＲＵＬＥ＿１＿２０というトークンを生成する。
【００６１】
照合条件シーケンスは、２つ以上の照合条件の順序を示すものであり、ＩＤ＝３の例の場合には、３つの照合条件のシーケンスが記述される。この場合、距離の部分は、例えば、照合条件ＩＤの１と１０の間が５であって、１０と１２の間が６であれば、ＲＵＬＥ＿３＿５＿６などとすればよい。４つ以上のシーケンスも同様である。
【００６２】
距離の表記については、上限を設けることもできる。通常、名簿などにおいても一定以上離れた特徴的な用語は無関係である可能性が高く、関連する特徴的な用語は構造的に隣り合っている可能性が高い。構造的といったのは文書の構造という意味で、それをテキスト抽出したときに必ずしも文字列として隣り合っているわけではないが、ある程度の距離以内にはある可能性が高い。したがって、距離が条件を超える場合には無視しても影響は少ない。
【００６３】
また、距離は、必ずしも正確な距離である必要はなく、距離をいくつかの範囲に分けてラベルを付けてもよい。例えば、距離が５以下ならＡ、６以上１０以下ならＢ、１１以上２０以下ならＣ、それ以外は対象外、などとすることができる。検出された距離が６であれば、トークンはＲＵＬＥ＿１＿Ｂのように表される。このように距離を範囲にまとめることで、比較的少ない学習文書により効率的に学習できる。
【００６４】
また、照合条件記憶手段４００に記憶される照合条件が、組み込み照合条件４００１とユーザ定義照合条件４００２とにより構成される場合には、これらに対応して、ルール６００を、組み込みルールとユーザ定義ルールとにより構成することで、ユーザが定義した用語クラスを含むルールの作成ができるようになる。
【００６５】
ところで、実施の形態１で述べたように、この発明では、特徴トークンを含む１乃至Ｎ個のトークンのシーケンスについて学習あるいは分類するが、特徴間距離トークンに関しては、このようなシーケンスを学習することは意味が無い。これを回避する一つの方法としては、学習手段２００、及び、分類手段３００において特徴間距離トークンを検出した場合には、シーケンスではなく、単体（Ｎ＝１）で学習・分類するようにする。
【００６６】
あるいは別の方法として、前処理手段１００が特徴間距離トークンを出力する場合に、前後にＮ−１個のダミートークンを挿入し、学習・分類においては、そのままＮ個のシーケンスを学習するようにも構成できる。例えばＮ＝３とすると、トークン列はＤＵＭＭＹ、ＤＵＭＭＹ、ＲＵＬＥ＿Ｘ＿Ｘ、ＤＵＭＭＹ、ＤＵＭＭＹとなり、連続するＮ個のトークンの組合せとしては、
（ＤＵＭＭＹ、ＤＵＭＭＹ、ＲＵＬＥ＿Ｘ＿Ｘ）
（ＤＵＭＭＹ、ＲＵＬＥ＿Ｘ＿Ｘ、ＤＵＭＭＹ）
（ＲＵＬＥ＿Ｘ＿Ｘ、ＤＵＭＭＹ、ＤＵＭＭＹ）
となる。このようにして、特徴間距離トークンに関して隣り合う特徴間距離トークンとの関連性を学習することを回避できる。
【００６７】
実施の形態４．
以上の実施の形態３は、特徴的な用語同士の位置関係を特徴間距離トークン化してトークン列に追加し、学習・分類に使用するものであるが、次に、特徴間距離トークンのみによる学習を行なって、学習処理を高速化する場合の実施の形態を示す。
【００６８】
図１２は、実施の形態４における情報検索システムの一例を示す構成図である。
図１２では、前処理手段１００にトークン出力制御手段１０６が追加された構成となっている。トークン出力制御手段１０８は、２つの動作モード（モード１、モード２）を備えている。モード１が設定されると、実施の形態３と同様に、特徴トークンと非特徴トークンとからなるトークン列の最後に、特徴間距離トークンと、必要に応じてダミートークンとを出力する。また、モード２が設定されると、特徴トークンと非特徴トークンの出力を抑止して、特徴間距離トークンのみを出力する。
【００６９】
上記の動作モードの設定は、初期設定ファイル、あるいは、レジストリに設定するか、システムの実行時に実行コマンドパラメータとして与える。トークン出力制御手段１０８は、起動時にこれらの設定方法により動作モードが設定され、以後、その動作モードにて動作する。
【００７０】
モード１に設定された場合には、トークン出力制御手段１０８は、非特徴トークン抽出手段１０３からの出力、および、特徴間距離トークン生成手段１０７からの出力をそのまま出力する。
【００７１】
モード２に設定された場合には、トークン出力制御手段１０８は、非特徴トークン抽出手段１０３から出力されるトークン列（特徴トークンと非特徴トークンからなる列）は出力せず、特徴間距離トークン生成手段１０７により生成されたトークン列（特徴間距離トークンからなる列）を出力する。なお、このトークン列には、ダミートークンが含まれていても良い。モード２にて動作する場合には、隣り合うトークンとの関係の学習は不要であると設定されているため、特徴間距離トークン生成手段１０７、学習手段２００、及び、分類手段３００にて、Ｎ＝１として動作することで、無駄な学習を省いてより効率的に動作できる。
【００７２】
このように、学習処理の動作モードを選択可能とすることで、分類精度と分類速度とのトレードオフを、アプリケーションのタイプに応じて選択することが可能な柔軟性のあるシステムを提供できる。
【００７３】
実施の形態５．
実施の形態３は、トークンをすべて平等に扱うものであったが、次に、トークンの重み付けを設定可能とする場合の実施の形態を示す。
【００７４】
図１３は、実施の形態５において、トークンの重み付け設定方法の例を示す図である。
図１３において、種別は、特徴トークン（ＴＯＫＥＮ）であるか、特徴間距離トークン（ＲＵＬＥ）であるかを示す。分類手段３００は、この重み付け設定情報を持ち、特徴トークンと非特徴トークンとから算出された入力文書の各カテゴリへの分類確率と、特徴間距離トークンから算出された分類確率とを、この重みに応じて配分して最終的な分類確率を計算し、カテゴリ判定を行なう。
【００７５】
本実施の形態５の分類手段３００においては、トークンの種別により、それぞれ別の分類確率Ｐｃｔ（特徴トークンにより入力文書がカテゴリｃに分類される確率）、及び、Ｐｃｒ（特徴間距離トークンにより入力文書がカテゴリｃに分類される確率）を算出する。このとき、入力文書がカテゴリｃに分類される確率Ｐｃを以下の式にて算出し、これによりカテゴリを判定する。
Ｐｃ＝Ｐｃｔ・Ｗｔ＋Ｐｃｒ・Ｗｒ    （但し、Ｗｔ＋Ｗｒ＝１とする）
【００７６】
これにより、アプリケーションのタイプに応じて、分類精度をきめ細かくチューニングすることが可能となる。
【図面の簡単な説明】
【００７７】
【図１】実施の形態１における情報検索システムの一例を示す構成図である。
【図２】実施の形態１における情報検索システムの動作を示すフローチャートである。
【図３】実施の形態１において、分類段階の動作を示すフローチャートである。
【図４】実施の形態１において、前処理手段１００の動作を示すフローチャートである。
【図５】実施の形態１において、照合条件の例を示す図である。
【図６】実施の形態１において、図５の照合条件を用いて前処理手段１００により生成されたトークン列の例を示す図である。
【図７】実施の形態２において、ＤＦＡを用いた場合の特徴トークン抽出手段１０２に関わる構成の一例を示す図である。
【図８】実施の形態２において、用語の長さを分けた照合条件の例を示す図である。
【図９】実施の形態２において、照合条件を自動構成する構成の例を示す図である。
【図１０】実施の形態３における情報検索システムの一例を示す構成図である。
【図１１】実施の形態３において、ルール６００の例を示す図である。
【図１２】実施の形態４における情報検索システムの一例を示す構成図である。
【図１３】実施の形態５において、トークンの重み付け設定方法の例を示す図である。
【符号の説明】
【００７８】
１００  前処理手段、１０１  テキスト抽出手段、１０２  特徴トークン抽出手段、１０２０  入力文字列、１０２１  照合手段、１０２２  置換手段、１０２３  出力文字列、１０３  非特徴トークン抽出手段、１０４  状態遷移表生成手段、１０５  状態遷移表、１０６  照合条件生成手段、１０７  特徴間距離トークン生成手段、１０８  トークン出力制御手段、２００  学習手段、２０１  学習用頻度計算手段、２０２  学習頻度記憶手段、３００  分類手段、３０１  分類用頻度計算手段、３０２  分類確率算出手段、３０３  カテゴリ判定手段、４００  照合条件記憶手段、４００１  組み込み照合条件、４００２  ユーザ定義照合条件、５０１  学習用文書、５０２  分類対象文書、６００  ルール。
【図１】
0005056337.tif 000002
【図２】
0005056337.tif 000003
【図３】
0005056337.tif 000004
【図４】
0005056337.tif 000005
【図５】
0005056337.tif 000006
【図６】
0005056337.tif 000007
【図７】
0005056337.tif 000008
【図８】
0005056337.tif 000009
【図９】
0005056337.tif 000010
【図１０】
0005056337.tif 000011
【図１１】
0005056337.tif 000012
【図１２】
0005056337.tif 000013
【図１３】
0005056337.tif 000014