説明

構造化文書を分類するためのルールを生成するための方法、並びにそのコンピュータ・プログラム及びコンピュータ

【課題】 XML文書のような構造化文書を効率的に分類するためのルールを生成するための方法、コンピュータ及びコンピュータ・プログラムを提供することを目的とする。
【解決手段】 本発明は、同一のスキーマが適用される複数の電子化された構造化文書を分類するためのルールを生成するための方法を提供する。当該方法は、スキーマを走査して、当該スキーマによって定義される1以上の変動部分を特定するステップと、当該特定された変動部分の特徴値を複数の構造化文書それぞれから取得し、当該取得された特徴値それぞれを当該特徴値が取得された構造化文書に関連付けるステップと、構造化文書に関連付けられた特徴値に基づいて、上記ルールを生成するステップとを含む。また、本発明は、同一のスキーマが適用される複数の電子化された構造化文書を分類するためのルールを生成するコンピュータ及びそのコンピュータ・プログラムを提供する。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、一般的には、情報処理技術に関する。より詳細には、本発明は、構造化文書を分類するためのルールを生成するための方法、並びにそのコンピュータ及びコンピュータ・プログラムに関する。また、より詳細には、本発明は、当該生成されたルールを使用して、構造化文書を分類し、検索し又は検査するための方法、並びにそのコンピュータ及びコンピュータ・プログラムに関する。
【背景技術】
【0002】
近年のIT技術の普及により、企業又は個人が電子データであるコンテンツを作成して、当該コンテンツをインターネット上で交換したり又は公開したりすることが日常的に行われている。多くのコンテンツは、XML、HTML、XHTML及びSGMLのようなメタ言語のフォーマットに従う電子化された構造化文書として作成され、様々なコンピュータ上で処理される。上記構造化文書については、XML Schema、文書型定義(DTD)、RELAX(Regular Language description for XML)、RELAX NG(RELAX Next Generation)、NVDL(Name space-based Validation Dispatching Language)、スキマトロン(Schemaron)のようなスキーマ言語のフォーマットに従って構造化文書の文書構造を定義するスキーマ・データが作成されることがある。
【0003】
また、近年オフィス・アプリケーションのファイル形式としてXMLが使われており、その例がODF(Open Document Format)又はOOXML(Office Open XML)である。
【0004】
下記特許文献1は、複数のXML文書の類似度検出方法および類似性検出システム、ならびにXML文書の統合方法の発明に関する(段落0001)。当該XML文書の類似度検出方法は、複数のXML文書の類似度を検出する方法であって、一のXML文書Tbと、他のXML文書Ttとの間の類似度を検出するに際して、XML文書Tbと、XML文書Ttとを、それぞれ独立して意味を持つ最大の部分木構造に構成する段階(A)と、前記XML文書Tbを構成する部分木の葉ノードクラスタと、前記XML文書Ttを構成する部分木の葉ノードクラスタとを照合して、照合する葉ノードクラスタの間で同じ内容を有する葉ノードの個数の比率に基づいて部分木間の類似度を求める段階(D)と、前記部分木間の類似度からXML文書間の類似度を求める段階(C)とを含むことを特徴とする(段落0011)。
【0005】
下記特許文献2は、構造化文書データベースに格納されている構造化文書の分析表示方法および、それを用いた構造化文書分析表示装置の発明に関する(段落0001)。当該構造化文書分析表示方法および装置は、データベースに格納された構造化文書に対して、複数の分析軸に対応してそれぞれ分析条件を設定する手段と、分析用階層情報を生成する手段と、前記分析条件および分析用階層情報に基づき前記構造化文書データベースから構造化文書を検索する手段と、前記検索結果に対して集計を行う手段と、前記集計結果を表示する手段とを具備する分析表示装置であって、前記分析用階層情報は、指定された分析条件の種類に応じて、構造階層情報または概念階層情報の少なくとも一方を基に生成されることを特徴とする(段落0036)。
【0006】
下記特許文献3は、サーチ結果内の諸文書にわたる文脈要約情報を決定する方法の発明に関する(段落0001)。当該方法は、一致文書について各文書のクエリー依存サブセクションを選択するステップと、この文書サブセクションに関連する文書特性を選択するステップと、結果セットにわたる文書特性についての要約情報を計算するステップとを含むことを特徴とする(段落0006)。
【0007】
下記特許文献4は、大規模データの解析における前処理方法及び前処理システムの発明に関する(段落0001)。特許文献4は、XMLデータから、当該XMLデータの属性を葉ノードあるいは非葉ノードとし、属性値を含まず前記属性間の関係を表現し、ノード間の冗長な親子関係をマージして最適化したツリー構造である階層ユニットツリーを作成するステップと、前記階層ユニットツリーに対して変更を加えるステップと、前記階層ユニットツリーに対して加えられた変更を反映するように前記XMLデータを変換するステップとを含むことを特徴とするデータマイニングにおける前処理方法を記載する(請求項1)。
【0008】
下記特許文献5は、構造化文書の検索を行う構造化文書検索システムの発明に関する(段落0001)。特許文献5は、1件の文書が複数の論理構造で構成される構造化文書を検索する構造化文書検索システムにおいて、検索時に一括して参照される可能性の高い文字列データに所定のインデックスグループ識別子を付与して文書登録し、インデックスグループ識別子の等しいインデックスデータを用いて文書検索を行うことを記載する(段落0026)。
【0009】
下記特許文献6は、階層化された論理構造をもつ構造化文書データベースの発明に関する(段落0001)。特許文献6は、複数の要素データをそれぞれ含む複数の構造化データを複数の記憶エリアのそれぞれに記憶するものであって、その際に、(1)前記複数の構造化データ中での出現頻度が第1の閾値以上の要素データに対し、前記複数の記憶エリアのそれぞれにおける記憶位置を定めるエレメントIDを決定し、(2)前記複数の構造化データのうちの1つである第1の構造化データに含まれる要素データ群のうち、前記エレメントIDの決定された各要素データを、前記複数の記憶エリアのうち前記第1の構造化データを記憶するための第1の記憶エリアの当該エレメントIDに対応する記憶位置に記憶することを記載する(段落0014)。
【0010】
下記特許文献7は、大量の構造化文書を、階層化された論理構造を持つ構造化文書データベース群で分散配置して格納、管理する構造化文書管理システム、構造化文書検索方法、検索装置、および文書管理装置の発明に関する(段落0001)。当該検索装置は、前記論理構造ごとに、前記論理構造に対応する前記構造化文書内の構造要素と値に関する統計情報を記憶する構造情報記憶手段と、前記統計情報に関する条件と、構造要素と値から構成される文字列を表現する表現形式とを対応づけた規則を記憶する規則記憶手段と、ネットワークに接続されたクライアント端末からの前記構造化文書の検索要求に基づいて、前記構造化文書に対する検索処理の実行プランを生成するプラン生成手段と、生成した前記実行プランの検索対象となる前記論理構造に対応する前記統計情報を前記構造情報記憶手段から取得する取得手段と、取得した前記統計情報が満たす前記条件に対応する前記表現形式を前記規則記憶手段から取得して前記実行プランに対応づける対応づけ手段と、前記表現形式を対応づけた前記実行プランを前記文書管理装置に送信するプラン送信手段と、前記実行プランの実行結果である検索結果を前記文書管理装置から受信する結果受信手段と、前記検索結果を前記クライアント端末に送信する第1結果送信手段とを備えることを特徴とする(段落0015)。
【0011】
下記特許文献8は、文字列のパターンを効率的に検索するための方法およびシステムの発明に関する(段落0001)。特許文献8は、パターン・マッチング・アプリケーション内の状態マシン・アルゴリズムの状態表を作成することを記載する(段落0013)。
【先行技術文献】
【特許文献】
【0012】
【特許文献1】特開2007−52556号公報
【特許文献2】特開2004−118379号公報
【特許文献3】特開2008−541223号公報
【特許文献4】特開2003−30227号公報
【特許文献5】特開2000−3366号公報
【特許文献6】特開2005−227851号公報
【特許文献7】特開2008−84113号公報
【特許文献8】特開2008−507789号公報
【非特許文献】
【0013】
【非特許文献1】Hisashi Kashima et al., “Marginalized Kernels Between Labeled Graphs”, Proceedings of the Twentieth International Conference on Machine Learning (ICML-2003) ,AAAI Press, pp321-328, 2003
【非特許文献2】Tim Bray et al., “Extensible Markup Language(XML) 1.0 (Fifth Edition)”, The World Wide Web Consortium(W3C), W3C Recommendation 26 November 2008, URL:http://www.w3.org/TR/xml/(Retrieved June 9, 2010)
【非特許文献3】Henry S. Thompson et al., “W3C XML Schema Definition Language (XSD) 1.1 Part 1: Structures”, The World Wide Web Consortium (W3C), W3C Working Draft 3 December 2009, URL:http://www.w3.org/TR/xmlschema11-1/(Retrieved June 9, 2010)
【非特許文献4】David Peterson et al., “W3C XML Schema Definition Language (XSD) 1.1 Part 2: Data types “The World Wide Web Consortium, W3C Working Draft 3 December 2009, URL:http://www.w3.org/TR/xmlschema11-2/ (Retrieved June 9, 2010)
【発明の概要】
【発明が解決しようとする課題】
【0014】
オフィス・アプリケーション(例えば、文書作成、表計算、プレゼンテーションの各ソフト)のファイルの分類は、例えば、DLP(Data Loss Prevention又はData Leak Prevention)の分野において重要である。オフィス・アプリケーションの保存形式の一つがメタ言語のフォーマットに従う構造化文書である。構造化文書の一つであるXML文書は、テキスト・ファイルであるので、テキスト・マイニングの手法を用いてそのXML文書の分類をすることができる。しかし、テキスト・マイニングによる分類はテキスト表現に関しての分類であり、XMLの木構造は意識されていない。また、XMLは木構造である為に、XML文書の分類のためにグラフ・マイニングと呼ばれる手法を用いることができる。グラフ・マイニングでは、例えば、グラフ同士のカーネル関数を定義する(下記非特許文献1を参照)。しかし、このグラフ・マイニングの手法では、1対1のグラフの距離を計算するために、多数の未知文書を幾つかのクラスタに分類する場合には計算時間が大きくなってしまう。そこで、本発明は、XML文書のような構造化文書を効率的に分類するためのルールを生成するための方法、並びにコンピュータ及びコンピュータ・プログラムを提供することを目的とする。また、本発明は、その生成されたルールを使用して、構造化文書を分類し、検索し又は検査するための方法、並びにそのコンピュータ及びコンピュータ・プログラムを提供することを目的とする。
【課題を解決するための手段】
【0015】
本発明は、上記目的を達成するために、スキーマ、例えばXMLスキーマ、文書型定義(DTD)、RELAX(Regular Language description for XML)、RELAX NG(RELAX Next Generation)、NVDL(Name space-based Validation Dispatching Language)、スキマトロン(Schemaron)のいずれかのようなスキーマ言語のフォーマットに従うスキーマの情報を用いてルールを作成する。詳細には、一つのスキーマ(例えば、XMLスキーマ)の個々の定義に対して、実際の構造化文書(例えば、XML文書)がどのようになっているのかの情報を用いてルールを作成する。
【0016】
本発明は、同一のスキーマが適用される複数の電子化された構造化文書を分類するためのルールを生成するための方法を提供する。当該方法は、スキーマを走査して、当該スキーマによって定義される1以上の変動部分を特定するステップと、上記特定された変動部分の特徴値を上記複数の構造化文書それぞれから取得し、当該取得された特徴値それぞれを当該特徴値が取得された構造化文書に関連付けるステップと、上記構造化文書に関連付けられた上記特徴値に基づいて、上記ルールを生成するステップとを含む。
【0017】
本発明の1つの実施態様において、構造化文書が、XML、HTML、XHTML、SGML、ODF(Open Document Format)、OOXML(Office Open XML)のいずれかのようなメタ言語のフォーマットに従うものであることが好ましい。また、本発明の1つの実施態様において、スキーマが、XMLスキーマ、文書型定義(DTD)、RELAX(Regular Language description for XML)、RELAX NG(RELAX Next Generation)、NVDL(Name space-based Validation Dispatching Language)、スキマトロン(Schemaron)のいずれかのようなスキーマ言語のフォーマットに従うものであることが好ましい。
【0018】
本発明の1つの実施態様において、上記変動部分を特定するステップが、上記スキーマによって定義される木構造に含まれる1以上の要素、又は上記スキーマによって定義される1以上の属性を特定するステップを含み、及び、上記関連付けるステップが、上記特定された要素又は属性の特徴値を上記複数の構造化文書それぞれから取得し、当該取得された特徴値それぞれを当該特徴値が取得された構造化文書に関連付けるステップを含みうる。
【0019】
本発明の1つの実施態様において、上記特定された要素の特徴値が、上記木構造に含まれる要素(すなわち、上記構造化文書中の要素)の繰り返し数、上記木構造に含まれる単純型要素(すなわち、上記構造化文書中の単純型要素)のテキスト部分のサイズ、上記木構造に含まれる、数値を表す単純型要素(すなわち、上記構造化文書中の、数値を表す単純型要素)の数値、又は上記木構造に含まれる選択可能な要素(すなわち、上記構造化文書中に含まれる選択可能な要素)に関連付けられた値でありうる。また、本発明の1つの実施態様において、上記要素の繰り返し数が、子要素の出現頻度でありうる。
【0020】
本発明の1つの実施態様において、上記特定された要素の特徴値が、上記スキーマ上で同じ一つの定義に属している少なくとも2以上のノードに含まれる要素の繰り返し数の平均値、上記スキーマ上で同じ一つの定義に属している少なくとも2以上のノードに含まれる単純型要素のテキスト部分のサイズの平均値、上記スキーマ上で同じ一つの定義に属している少なくとも2以上のノードに含まれる、数値を表す単純型要素の数値の平均値、又は上記スキーマ上で同じ一つの定義に属している少なくとも2以上のノードに含まれる選択可能な要素に関連付けられた値の平均値である。
【0021】
本発明の1つの実施態様において、上記特定された属性の特徴値が、上記木構造に含まれる属性のある/なしに関連付けられた値、又は上記木構造に含まれる属性のテキスト部分のサイズでありうる。
【0022】
本発明の1つの実施態様において、上記ルールを生成するための方法は、上記特定された要素のうちの少なくとも1つの要素を木構造の絶対パスに関連付けるステップをさらに含み、上記関連付けるステップが、上記絶対パスに関連付けられた要素の特徴値を上記複数の構造化文書から取得し、当該取得された特徴値それぞれを当該特徴値が取得された構造化文書に関連付けるステップを含みうる。また、本発明の1つの実施態様において、上記要素を特定するステップが、上記スキーマを走査して、最初にある要素を選択するステップと、上記選択された最初にある要素に、当該要素を特定するための名称を特徴名(以下、第1の特徴名ともいう)として付与するステップとをさらに含みうる。また、本発明の1つの実施態様において、上記関連付けるステップが、上記構造化文書の上記第1の特徴名に、当該第1の特徴名に対応する特徴値を関連付けるステップをさらに含みうる。
【0023】
本発明の1つの実施態様において、上記要素を特定するステップが、上記スキーマを走査して、要素を特定するための名称である上記特徴名が記録されておらず且つ上記選択された要素の次に最初にある要素を選択するステップと、上記選択された次に最初にある要素に、当該要素を特定するための名称を特徴名(以下、第2の特徴名ともいう)として付与するステップとをさらに含みうる。本発明の1つの実施態様において、上記関連付けるステップが、上記構造化文書の上記第2の特徴名に、当該第2の特徴名に対応する特徴値を関連付けるステップをさらに含みうる。
【0024】
本発明の1つの実施態様において、上記ルールを生成するステップが、構造化文書に関連付けられた特徴値を機械学習手法、データマイニング手法、又は統計的手法を使用してクラスタ化ルールを生成するステップを含みうる。本発明の1つの実施態様において、クラスタ化ルールが、クラスタ分析、主成分分析、ベクトル量子化、自己組織化マップ、強化学習、教師なし学習、k−means法、又は期待値最大化法を使用して生成されうる。
【0025】
また、本発明は、同一のスキーマが適用される複数の電子化された構造化文書を分類するための方法を提供する。当該方法は、1以上の変動部分の特徴値を分類対象である構造化文書から取得するステップと、上記取得された特徴値を、上記分類対象である構造化文書の変数部分の特徴値に基づいて当該分類対象である構造化文書がどのクラスタ化された構造化文書の集合に属するかを決定するためのルールであるに適用して、上記取得された特徴値を有する構造化文書を分類するステップと
を含む。当該ルールは、上記方法によって生成されたルールである。
【0026】
また、本発明は、同一のスキーマが適用される複数の電子化された構造化文書から、特定の構造化文書に類似している構造化文書を検索するための方法を提供する。当該方法は、1以上の変動部分の特徴値を上記特定の構造化文書から取得し、当該取得された特徴値を下記ルールに適用して第1の結果を得るステップと、1以上の変動部分の特徴値を検索対象である複数の構造化文書それぞれから取得し、当該取得されたそれぞれの特徴値を下記ルールに適用して第2の結果を得るステップと、XML文書ごとに、上記第2の結果を上記第1の結果と比較して、上記特定の構造化文書に類似している構造化文書を抽出するステップとを含む。当該ルールは、上記特定の構造化文書又は上記検索対象である構造化文書の変数部分の特徴値に基づいて当該特定の構造化文書又は当該検索対象である構造化文書がどのクラスタ化された構造化文書の集合に属するかを決定するためのルールである。また、当該ルールは、上記方法によって生成されたルールである。
【0027】
また、本発明は、同一のスキーマが適用される電子化された構造化文書が特定の構造化文書に類似しているかどうかを検査するための方法を提供する。当該方法は、1以上の変動部分の特徴値を上記特定の構造化文書から取得し、当該取得された特徴値を下記ルールに適用して第3の結果を得るステップと、1以上の変動部分の特徴値を検査対象である構造化文書から取得し、当該取得された特徴値を下記ルールに適用して第4の結果を得るステップと、上記第4の結果を上記第3の結果と比較して、上記検査対象である構造化文書が上記特定の構造化文書に類似しているかどうかを検査するステップとを含む。当該ルールは、上記特定の構造化文書又は前記検査対象である構造化文書の変数部分の特徴値に基づいて当該特定の構造化文書又は当該検査対象である構造化文書がどのクラスタ化された構造化文書の集合に属するかを決定するためのルールである。
【0028】
以上において、同一のスキーマが適用される複数の電子化された構造化文書を分類するためのルールを生成するための方法、及び、当該ルールを使用して上記構造化文書を分類し、検索し又は検査するための方法として本発明の概要を説明したが、本発明は、コンピュータ・プログラム、プログラム製品、ソフトウェア、ソフトウェア製品として把握することもできる。プログラム製品ないしソフトウェア製品は、例えば、前述のプログラム、ソフトウェアを格納する記憶媒体、又はプログラム、ソフトウェアを伝送する伝送媒体を含めることができる。
【0029】
また、本発明は、同一のスキーマが適用される複数の電子化された構造化文書を分類するためのルールを生成するためのコンピュータを提供する。本発明の1つの実施態様において、当該コンピュータは、メモリと、当該メモリに接続されたプロセッサとを備えており、当該プロセッサに上記方法の各ステップを実行させるプログラムを上記メモリ内に読み出して、上記ルールを生成する。本発明の他の実施態様において、当該コンピュータは、上記スキーマを走査して、当該スキーマによって定義される1以上の変動部分を特定する特定部と、上記特定された変動部分の特徴値を上記複数の構造化文書それぞれから取得し、当該取得された特徴値それぞれを当該特徴値が取得された構造化文書に関連付ける取得部と、上記構造化文書に関連付けられた上記特徴値に基づいて、上記ルールを生成するルール生成部とを備えている。
【0030】
本発明の1つの実施態様において、上記特定部が、上記スキーマによって定義される木構造に含まれる1以上の要素、又は上記スキーマによって定義される1以上の属性を特定する。また、上記取得部が、上記特定された要素又は属性の特徴値を上記複数の構造化文書それぞれから取得し、当該取得された特徴値それぞれを当該特徴値が取得された構造化文書にさらに関連付ける。
【0031】
また、本発明は、同一のスキーマが適用される複数の電子化された構造化文書を分類するためのコンピュータを提供する。当該コンピュータは特定部、取得部、及び分類部を備えている。特定部は、上記スキーマを走査して、分類対象である複数の構造化文書中の、当該スキーマによって定義される1以上の変動部分を特定する。取得部は、分類対象である構造化文書から、1以上の変動部分の特徴値を取得する。分類部は、当該取得された特徴値を上記ルール生成部によって生成されたルールに適用して、上記取得された特徴値を有する構造化文書を分類する。
【0032】
また、本発明は、同一のスキーマが適用される複数の電子化された構造化文書から、特定の構造化文書に類似している構造化文書を検索するためのコンピュータを提供する。当該コンピュータは、特定部、取得部、及び検索部を備えている。特定部は、上記スキーマを走査して、特定の構造化文書及び検索対象である複数の構造化文書中の、当該スキーマによって定義される1以上の変動部分をそれぞれ特定する。取得部は、上記特定の構造化文書から上記特定された変動部分の特徴値(以下、第1の特徴値ともいう)を取得し、且つ、上記検索対象である複数の構造化文書それぞれから上記特定された変動部分の特徴値(以下、第2の特徴値ともいう)を取得する。検索部は、上記第1の特徴値を上記ルール生成部によって生成されたルールに適用して第1の結果を取得し、且つ、上記第2の特徴値をXML文書ごとに上記ルール生成部によって生成されたルールに適用して第2の結果を取得する。検索部は、上記第2の結果を上記第1の結果と比較して、上記特定の構造化文書に類似している構造化文書を抽出する。
【0033】
また、本発明は、同一のスキーマが適用される電子化された構造化文書が特定の構造化文書に類似しているかどうかを検査するためのコンピュータを提供する。当該コンピュータは、特定部、取得部、及び検査部を備えている。特定部は、上記スキーマを走査して、特定の構造化文書及び検査対象である複数の構造化文書中の、当該スキーマによって定義される1以上の変動部分を特定する。取得部は、上記特定の構造化文書から上記特定された要素の特徴値(以下、第3の特徴値ともいう)を取得し、且つ、上記検査対象である構造化文書から上記特定された要素の特徴値(以下、第4の特徴値ともいう)を取得する。検査部は、上記第3の特徴値を上記ルール生成部によって生成されたルールに適用して第3の結果を取得し、且つ上記第4の特徴値を上記ルール生成部によって生成されたルールに適用して第4の結果を取得する。検索部は、上記第4の結果を上記第3の結果と比較して、上記検査対象である構造化文書が特定の構造化文書に類似しているかどうかを検査する。
【0034】
上記の発明の概要は、本発明の必要な特徴の全てを列挙したものではなく、これらの構成要素のコンビネーションまたはサブコンビネーションもまた、発明となり得ることに留意すべきである。
【0035】
本発明の実施形態において使用されるコンピュータの各ハードウェア構成要素を、複数のマシンと組み合わせ、それらに機能を配分し実施する等の種々の変更は当業者によって容易に想定され得ることは勿論である。それらの変更は、当然に本発明の思想に包含される概念である。ただし、これらの構成要素は例示であり、そのすべての構成要素が本発明の必須構成要素となるわけではない。
【0036】
また、本発明は、ハードウェア、ソフトウェア、またはハードウェア及びソフトウェアの組み合わせとして実現可能である。ハードウェアとソフトウェアの組み合わせによる実行において、所定のプログラムを有するデータ処理システムにおける実行が典型的な例として挙げられる。かかる場合、該所定プログラムが該データ処理システムにロードされ実行されることにより、該プログラムは、データ処理システムを制御し、本発明にかかる処理を実行させる。このプログラムは、任意の言語・コード・表記によって表現可能な命令群から構成される。そのような命令群は、システムが特定の機能を直接、または1.他の言語・コード・表記への変換、2.他の媒体への複製、のいずれか一方もしくは双方が行われた後に、実行することを可能にするものである。
【0037】
また、本発明は、そのようなプログラム自体のみならず、プログラムを記録した媒体もその範囲に含むものである。本発明の機能を実行するためのプログラムは、フレキシブル・ディスク、MO、CD−ROM、DVD、ハードディスク装置、ROM、MRAM、RAM等の任意のコンピュータ読み取り可能な記録媒体に格納することができる。かかるプログラムは、記録媒体への格納のために、通信回線で接続する他のデータ処理システムからダウンロードしたり、他の記録媒体から複製したりすることができる。また、かかるプログラムは、圧縮し、または複数に分割して、単一または複数の記録媒体に格納することもできる。また、様々な形態で、本発明を実施するプログラム製品を提供することも勿論可能であることにも留意されたい。
【発明の効果】
【0038】
本発明では、スキーマの個々の定義に対して、実際の構造化文書がどのようになっているのかの情報を用いることにより、構造化文書の木構造を意識しつつ、且つ高速に分類を行うことが可能である。また、当該木構造から得られる特徴値に対して既存の機械学習手法、データマイニング手法、又は統計的手法を活用して、構造化文書を高速に分類し、検索し及び検査することが可能である。
【図面の簡単な説明】
【0039】
【図1】本発明の実施形態に従うコンピュータを実現するための情報処理装置のハードウェア構成の一例を示した図である。
【図2】図1に従うハードウェア構成を有し、本発明の実施形態に従うコンピュータの機能ブロック図を示す。
【図3】本発明の実施態様において使用されうるスキーマの例を示す。
【図4】本発明の実施態様において使用されうる、図3で示されるスキーマに対する構造化文書の例(図4A)及び当該構造化文書を木構造で表現した場合の例(図4B)を示す。
【図5】本発明の実施態様に従う、図4Aに示される構造化文書及びその他の構造化文書を分類するために使用される特徴名及びその特徴値を示すテーブルである。
【図6】本発明の実施態様に従い、XMLスキーマを読み込み、特徴名を列挙するための処理のフローチャートを示す。
【図7】本発明の実施態様に従い、XML文書毎に、XMLスキーマの<element>定義に対して繰り返し数を特徴値として取得し、及び単純型の定義に対してバイト数を特徴値として取得するための処理のフローチャートを示す。
【図8】本発明の実施態様に従い、図7で取得された特徴値から、データマイニングの手法を適用してルールを作成するための処理のフローチャートを示す。
【図9】本発明の実施態様に従い、図8で作成されたルールを使用して、XML文書を分類するための処理のフローチャートを示す。
【図10】本発明の実施態様に従い、図8で作成されたルールを使用して、特定のXML文書に類似しているXML文書を検索対象であるXML文書から抽出するための処理のフローチャートを示す。
【図11】本発明の実施態様に従い、図8で作成されたルールを使用して、検査対象であるXML文書が特定のXML文書に類似しているかどうかを検査するための処理のフローチャートを示す。
【図12】本発明の実施態様に従う、図3に示されるXMLコード及びその他のXMLコードを分類するために使用される、XPath表現に対する特徴値を示すテーブルである。
【図13】本発明の実施態様に従い、図12に示されるXpath表現を使用して、同じ子ノード名を有し、同じ親ノード名を有する親ノード下にあるが、当該親ノードが別のノード下にあることを区別することを可能にすることを示す。
【図14】本発明の実施態様に従い、図12に示されるXpath表現を使用して、同じ子ノード名を有するが、異なる親ノード名を有する親ノード下にあることを区別することを可能にすることを示す。
【図15】本発明の実施態様に従い、図3で取得された特徴値からXML文書を抽出するための具体例を説明するためのXML文書である。
【図16】本発明の実施態様に従う、図15のXML文書に対するXMLスキーマである。
【図17】本発明の実施態様である図8に記載されたフローチャートに従い生成されたルールを用いて、XML文書の冒頭文からどのクラスタに近いかを判定するために使用されるオートマトンの例を示す。
【図18】本発明の実施態様である図8に記載されたフローチャートに従い生成されたルールを用いて、DLPのために類似文書を検出又は検査するために使用されるODF文書の例を示す。
【図19】本発明の実施態様である図9に記載されたフローチャートに従いXML文書を予めクラスタに分類し、そしてクラスタ毎に分割手法を予測してXML文書を分割するための処理のフローチャートを示す。
【図20】本発明の実施態様において使用される、属性、属性の定義、要素の定義の例を示す。
【発明を実施するための形態】
【0040】
以下、本発明を実施するための最良の形態を図面に基づいて詳細に説明するが、以下の実施形態は特許請求の範囲にかかる発明を限定するものでなく、また実施形態の中で説明されている特徴の組み合わせの全てが発明の解決手段に必須であるとは限らない。また、以下の実施形態において、種々の変更または改良を加えることが可能であることが当業者に明らかである。
【0041】
また、以下に示す本発明の実施形態では、XML文書及びXMLスキーマを例として説明するが、上記した構造化文書及び上記したスキーマを用いてもよいことは当業者に明らかである。そのような変更または改良を加えた形態はまた当然に本発明の技術的範囲に含まれる。
【0042】
また、本発明は多くの異なる態様で実施することが可能であり、実施の形態の記載内容に限定して解釈されるべきものではない。また、実施の形態の中で説明されている特徴の組み合わせの全てが発明の解決手段に必須とは限らないことに留意されたい。実施の形態の説明の全体を通じて同じ要素には同じ番号を付している。
【0043】
図1は、本発明の実施形態に従うコンピュータを実現するための情報処理装置のハードウェア構成の一例を示した図である。
コンピュータ(101)は、CPU(102)とメイン・メモリ(103)とを備えており、これらはバス(104)に接続されている。CPU(102)は好ましくは、32ビット又は64ビットのアーキテクチャに基づくものであり、例えば、インテル社のCore i(商標)シリーズ、Core 2(商標)シリーズ、Atom(商標)シリーズ、Xeon(商標)シリーズ、Pentium(登録商標)シリーズ、Celeron(登録商標)シリーズ、AMD社のPhenom(商標)シリーズ、Athlon(商標)シリーズ、Turion(商標)シリーズ又はSempron(商標)が使用されうる。バス(104)には、ディスプレイ・コントローラ(105)を介して、ディスプレイ(106)、例えば液晶ディスプレイ(LCD)が接続されうる。ディスプレイ(106)は、コンピュータの管理のために、通信回線を介してネットワークに接続されたコンピュータについての情報と、そのコンピュータ上で動作中のソフトウェアについての情報を、適当なグラフィック・インタフェースで表示するために使用される。バス(104)にはまた、SATA又はIDEコントローラ(107)を介して、ディスク(108)、例えばハードディスク又はシリコン・ディスクと、ドライブ(109)、例えばCD、DVD又はBDドライブとが接続されうる。バス(104)にはさらに、キーボード・マウスコントローラ(110)又はUSBバス(図示せず)を介して、キーボード(111)及びマウス(112)が接続されうる。
【0044】
ディスク(108)には、オペレーティング・システム、J2EEなどのJava(登録商標)処理環境、Java(登録商標)アプリケーション、Java(登録商標)仮想マシン(VM)、Java(登録商標)実行時(JIT)コンパイラを提供するプログラム、その他のプログラム、及びデータが、メイン・メモリにロード可能に記憶されている。
ドライブ(109)は、必要に応じて、CD−ROM、DVD−ROM又はBDからプログラムをディスク(108)にインストールするために使用される。
【0045】
通信インタフェース(114)は、例えばイーサネット(登録商標)・プロトコルに従う。通信インタフェース(114)は、通信コントローラ(113)を介してバス(104)に接続され、コンピュータ(101)を通信回線(115)に物理的に接続する役割を担い、コンピュータ(101)のオペレーティング・システムの通信機能のTCP/IP通信プロトコルに対して、ネットワーク・インタフェース層を提供する。なお、通信回線は、有線LAN環境、又は例えばIEEE802.11a/b/g/nなどの無線LAN接続規格に基づく無線LAN環境であってもよい。
【0046】
以上の説明により、本発明の実施の形態に従うコンピュータは、通常のパーソナル・コンピュータ、ワークステーション、メインフレームなどの情報処理装置、または、これらの組み合わせを含むシステムによって実現されることが容易に理解されるであろう。
【0047】
本発明の実施の形態のデータ処理システムは、マイクロソフト・コーポレーションが提供するWindows(商標)オペレーティング・システム、アップル・コンピュータ・インコーポレイテッドが提供するMacOS(商標)、X Window Systemを備えるUNIX(商標)系システム(たとえば、インターナショナル・ビジネス・マシーンズ・コーポレーション(商標)が提供するAIX(商標))のような、グラフィカル・ユーザ・インターフェース(GUI)マルチウィンドウ環境をサポートするオペレーティング・システムを採用しうる。
【0048】
以上から、本発明の実施の形態において使用されるデータ処理システムは、特定のマルチウィンドウ・オペレーティング・システム環境に限定されるものではないことを理解することができるであろう。
【0049】
図2は、図1に従うハードウェア構成を有し、本発明の実施形態に従うコンピュータの機能ブロック図を示す。
本発明の実施形態のコンピュータ(201)は、図1に示す例えばCPU(102)、メイン・メモリ(103)及び記憶装置(108)に加えて、特定部(211)、取得部(212)及びルール生成部(213)の各構成要素を備えている。また、コンピュータ(201)は、XMLスキーマ記憶部(221)、XML文書記憶部(222)及び特徴値テーブル(231)の各構成要素を備えうる。また、コンピュータ(201)は、ルール記憶部を備えうる。また、コンピュータ(201)は、分類部(241)、検索部(242)及び検査部(243)の少なくとも1つの構成要素をさらに備えうる。なお、コンピュータ(201)とは別のコンピュータ(図示せず)が、ルール記憶部(223)と、分類部(241)、検索部(242)及び検査部(243)の少なくとも1つとを備えていてもよい。なお、図1の機能ブロック図に示す各構成要素は、図1に例示したハードウェア構成を有するコンピュータ(101)において、ディスク(108)などに格納されたオペレーティング・システムやオーサリング・ソフトウェアなどのコンピュータ・プログラムをメイン・メモリ(103)上にロードした上でCPU(102)に読み込ませ、ハードウェア資源とソフトウェアを協働させることによって実現することができる。
【0050】
特定部(211)は、スキーマを走査して、当該スキーマによって定義される1以上の変動部分を特定する。スキーマの個々の定義には、一意に決まる部分と、変動のある部分(変動部分である)とが存在する。本発明の実施態様において、この変動部分について、XML文書がどのような構造であるかの情報をXMLスキーマと関連付けて記録する。特定部(211)は、変動部分として、例えば、スキーマによって定義される木構造に含まれる1以上の要素、又はスキーマによって定義される1以上の属性を特定しうる。
【0051】
要素は、例えば、XMLスキーマの場合、<xs:element>タグ又は<xs:complex>タグなどの定義(以下、単に、<element>定義という場合がある)を用いて定義されうる(下記図3を参照されたい)。また、要素は、例えば、単純型要素を包含する。
【0052】
属性は、例えば、XMLスキーマの場合、<A attr>タグで定義されうる(下記図20の「A.属性の例」、及び「B.属性の定義例」を参照されたい)。
【0053】
取得部(212)は、特定部(211)において特定された要素の特徴値を1又は複数の構造化文書それぞれから取得する。特徴値は、スキーマの変動部分から得られる値である。
【0054】
変動部分が要素である場合、当該要素の特徴値は、例えば、上記木構造に含まれる要素(すなわち、上記構造化文書中の要素)の繰り返し数、単純型要素のテキスト部分のサイズ、数値を表す単純型要素の数値、又は上記木構造に含まれる選択可能な要素(すなわち、上記構造化文書中に含まれる選択可能な要素)に関連付けられた値を包含する。特に、変動部分が単純型要素である場合、当該単純型要素の特徴値は、当該単純型要素のテキスト部分のサイズ、又は数値を表す単純型要素の数値を包含する。また、当該要素の特徴値は、例えば、上記スキーマ上で同じ一つの定義に属している少なくとも2以上のノードに含まれる要素の繰り返し数の平均値、上記スキーマ上で同じ一つの定義に属している少なくとも2以上のノードに含まれる単純型要素のテキスト部分のサイズの平均値、上記スキーマ上で同じ一つの定義に属している少なくとも2以上のノードに含まれる、数値を表す単純型要素の数値の平均値、又は上記スキーマ上で同じ一つの定義に属している少なくとも2以上のノードに含まれる選択可能な要素に関連付けられた値の平均値である。
【0055】
変動部分が属性である場合、当該属性の特徴値は、例えば、上記木構造に含まれる属性のある/なしに関連付けられた値、又は当該属性のテキスト部分のサイズを包含する。
【0056】
木構造に含まれる要素の繰り返し数は、例えば<element>定義である<xs:element>タグ又は<xs:complex>タグに対するその繰り返し数であり、例えば木構造における子要素の出現頻度である(図3を参照されたい)。
【0057】
選択可能な要素の関連付けられた値とは、下記図20Cに示されているように、例えば<xs:choice>に対してどれが選ばれたかによって定められる値である(2003)。図20Cに示すように、<xs:choice>において、”element name”として”x”、”y”、”z”が選択可能である場合に、例えば”x”に値0、”y”に値1、”z”に値2を特徴値として関連付けおくか、又は”x”、”y”及び”z”に値0又は1のいずれかを特徴値として関連付けておく。なお、後者の場合の特徴値は、”x”、”y”及び”z”の各繰り返し数と同等である。
【0058】
単純型要素のテキスト部分のサイズは、属性のテキスト部分のサイズであり、例えば、xsd:string又はxsd:intなどの文字数又はバイト数でありうる。属性のテキスト部分のサイズは、例えば、下記図20Aに示されているように、属性attr1のテキスト部分”abcdefghij”の文字サイズが10であるので(2001)、特徴値は10である。
【0059】
数値を表す単純型要素の数値は、数値そのものである。
【0060】
属性のある/なしに関連付けられた値は、例えば、構造化文書中にスキーマで指定された属性ありの場合が1であり、属性なしの場合が0である。属性は、例えば、下記図20Aは属性の例(2001)を示し、例えば、構造化文書中にスキーマで指定された属性attr1が存在する場合(すなわち、属性あり)は1であり、属性が存在しない場合(すなわち、属性なし)が0である。また、図20Bは属性の定義の例を示し(2002)、当該属性attr1が省略可能であることを示す。
【0061】
属性のテキスト部分のサイズは、例えば、図20Aに示されているように、造化文書中にスキーマで指定された属性attr1に属するテキスト部分“abcdefghij”のサイズである。図20Aの上記例の場合、特徴値は10である。
【0062】
変動部分の特徴値はスカラー値であり、本発明の実施態様においてルールを生成するために用いられる。
【0063】
取得部(212)は、当該取得された特徴値それぞれを当該特徴値が取得された構造化文書に関連付ける。
【0064】
本発明の1つの実施態様として、特定部(211)は、スキーマによって定義される木構造に含まれる1以上の要素、又はスキーマによって定義される1以上の属性を特定する。これに対応して、取得部(212)は、上記特定された要素又は属性の特徴値を複数の構造化文書それぞれから取得し、当該取得された特徴値それぞれを当該特徴値が取得された構造化文書に関連付ける。
【0065】
本発明の他の実施態様として、特定部(211)は、スキーマを走査して、最初にある要素を選択し、当該選択された最初にある要素に、当該要素を特定するための名称を特徴名(第1の特徴名)として付与しうる。これに対応して、取得部(212)は、構造化文書の第1の特徴名に、当該第1の特徴名に対応する特徴値を関連付けうる。
【0066】
本発明の他の実施態様として、特定部(211)は、スキーマを走査して、要素を特定するための名称である特徴名が記録されておらず且つ選択された要素の次に最初にある要素を選択し、当該選択された次に最初にある要素に、当該要素を特定するための名称を特徴名(第2の特徴名)として付与しうる。これに対応して、取得部(212)は、構造化文書の第2の特徴名に、当該第2の特徴名に対応する特徴値を関連付けうる。
【0067】
本発明の他の実施態様として、特定部(211)は、特定された要素のうちの少なくとも1つの要素(例えば子要素)を木構造の絶対パス、例えばXpathに関連付けうる。これに対応して、取得部(212)は、上記絶対パスに関連付けられた要素の特徴値を1又は複数の構造化文書から取得し、当該取得された特徴値それぞれを当該特徴値が取得された構造化文書に関連付けうる。
【0068】
特徴値テーブル(231)は、特定部(211)において特定された要素と、当該要素の特徴値とをXML文書ごとに格納するテーブルである。特徴値テーブル(231)は、例えば記憶装置内に格納される。特徴値テーブル(231)の例が、下記図5及び図12に示されているので参照されたい。
【0069】
ルール生成部(213)は、特徴値テーブル(231)に格納された上記テーブルを読み出して、当該テーブル中の構造化文書に関連付けられた特徴値に基づいて、ルールを生成する。詳細には、ルール生成部(213)は、例えば、構造化文書に関連付けられた特徴値を機械学習手法、データマイニング手法、又は統計的手法を使用してクラスタ化ルールを生成する。ルール生成部(213)は、例えば、一定数のXML文書の訓練データを用いて、当該訓練データを幾つかのクラスタに分類するためのルール(クラスタ化ルールともいう)を作成する。訓練データの数は、そのルールの生成手法、及び構造化文書のデータの分野によって異なりうる。
【0070】
ルールの生成において、機械学習手法、データマイニング手法、及び統計的手法として、既存の各手法を適宜使用することができる。例えば、クラスタ分析、主成分分析、ベクトル量子化、自己組織化マップ、強化学習、教師なし学習、k−means法、又は期待値最大化法などが使用されうる。
【0071】
ルール生成部(213)で生成されたルールは、分類対象である構造化文書を分類し、検索対象である構造化文書を検索し、又は検査対象である構造化文書を検査するために使用されうる。構造化文書の分類は分類部(241)において、構造化文書の検索は検索部(242)において、及び構造化文書の検査は検査部(243)において実行される。
【0072】
XMLスキーマ記憶部(221)は、XMLスキーマを格納するための記憶装置である。XMLスキーマは、XML文書の構造を記述する文書である。
【0073】
XML文書記憶部(222)は、処理対象のXML文書のデータを格納するための記憶装置である。XML文書は、メタ言語であるXML言語を用いて作成された言語に従う電子的な構造化文書である。XML文書の内容は、XML言語の仕様および適用されるXMLスキーマで定義された制約に従わなければならない。本明細書においてXML文書及びXMLスキーマの一例を用いて説明がされている、当業者は例えば非特許文献2、3及び4の標準によって定められた仕様に従って、XML文書及びXMLスキーマを適宜準備することができることに留意されたい。また、本明細書を読んだ当業者はその内容を補足、追加、変更等をしてバリエーションを作成することができるので、さらなる詳細な説明は省略する。
【0074】
ルール記憶部(223)は、ルール生成部(213)において生成されたルールを格納する。
【0075】
分類部(241)は、同一のスキーマが適用される複数の電子化された構造化文書を分類する。詳細には、分類部(241)は、ルール生成部(213)で生成された上記ルールをルール記憶部(223)から読み出して、当該ルールに、構造化文書から取得された変動部分の特徴値を適用して、上記構造化文書を分類する。
【0076】
検索部(242)は、同一のスキーマが適用される複数の電子化された構造化文書から、特定の構造化文書に類似している構造化文書を検索する。詳細には、検索部(242)は、ルール生成部(213)で生成された上記ルールをルール記憶部(223)から読み出して、当該ルールに、特定の構造化文書から取得された変動部分の特徴値を適用して第1の結果を得る。また、検索部(242)は、ルール生成部(213)で生成された上記ルールをルール記憶部(223)から読み出して、当該ルールに、検索対象である構造化文書から取得された変動部分の特徴値を適用して第2の結果を得る。そして、検索部(242)は、第2の結果を第1の結果と比較して、特定の構造化文書に類似している構造化文書を抽出する。
【0077】
検査部(243)は、同一のスキーマが適用される電子化された構造化文書が特定の構造化文書に類似しているかどうかを検査する。詳細には、検査部(243)は、ルール生成部(213)で生成された上記ルールをルール記憶部(223)から読み出して、当該ルールに、特定の構造化文書から取得された要素の特徴値を適用して第3の結果を得る。また、検査部(243)は、ルール生成部(213)で生成された上記ルールをルール記憶部(223)から読み出して、当該ルールに、検査対象である構造化文書から取得された要素の特徴値を適用して第4の結果を得る。そして、検査部(243)は、第4の結果を第3の結果と比較して、検査対象である構造化文書が特定の構造化文書に類似しているかどうかを検査する。
【0078】
図3は、本発明の実施態様において使用されうるスキーマの例を示す。
図3のスキーマ(301)は、XMLスキーマの例である。このXMLスキーマは、下記図4に示す構造化文書(XML文書)を分類するためのルールを生成するために使用される。なお、スキーマ(301)において、各行左の数字(1〜13行)は、説明の便宜上付したものである。
ここで、スキーマにおいて、要素の出現回数(特徴値である)は、例えば、下記の属性で定義されうる:minOccursは要素の最小出現回数を表す;maxOccursは要素の最大出現回数を表す;及び、“unbounded”は、要素の最大出現回数の制限が無いことを表す。そして、出現回数の指定は、例えば、下記のように定義されうる。
【0079】
出現回数の指定の例
minOccurs=”0”maxOccurs=”1” ; 0回又は1回
minOccurs=”A”maxOccurs=”B” ; A回以上B回以下
minOccurs=”0”maxOccurs=”B” ; 0回以上B回以下
minOccurs=”A”maxOccurs=”unbounded” ; A回以上
minOccurs=”0”maxOccurs=”unbounded” ; 0回以上
minOccurs=”0” ; 0回以上1回以下
maxOccurs=”unbounded” ; 1回以上
(指定なし) ; 1回(minOccursの定義が無い場合、1回出現するものとされる)
【0080】
XMLスキーマ(301)は、”Root”という名前の要素(以下、”Root”要素という)の構造が定義されている。”Root”要素は、<xs:element>タグを用いて宣言される。
【0081】
XMLスキーマのコード部分(311)は、”Root”要素の宣言である。コード部分(312)は、”Root”要素の最上位階層の構造を定義する。この例では、”Root”要素には、子要素”C”(行4)、”A”(行5)、”B”(行6)がこの順序で出現することが記述されている。
【0082】
行4には、子要素”C”が1回以上出現すること(maxOccurs=”unbounded”)が記述されている。さらに、子要素”C”が下位の要素”D”(便宜上、孫要素という)を有することも記述されている(type=”tns:D”)。行5には、子要素”A”が1回出現すること(minOccurs及びmaxOccursの定義無し)、文字列が記述されること(type=”xsd:string”)が記述されており、行5の型が単純型(文字列型[xsd:string])であることから、さらなる下位の階層がないことが示されている。行6には、子要素”B”が0回以上1回以下出現すること(minOccurs=”0”及びmaxOccursの定義無し)、かつ、文字列が記述され、これ以上下位の階層がないこと(type=”xsd:string”)が記述されている。
【0083】
コード部分(313)は、”D”要素の最上位階層の構造を定義する。この例では、”Root”要素には、子要素”D”(行11)が1回以上出現すること(maxOccurs=”unbounded”)、整数が記述され、さらなる下位の階層がないこと(type=”xsd:int”)が記述されている。
【0084】
なお、”Root”要素は、スキーマ(301)において独立した要素として<element>定義を用いて宣言されているので、XML文書において独立して出現することができる。これに対して、要素”A”、”B”、”C”、”D”は他の要素の子要素として宣言されているので、XML文書において独立して使用することができず、XMLスキーマに記述された他の要素の子要素としてのみ出現することのみが許される。
【0085】
図4は、本発明の実施態様において使用されうる、図3で示されるスキーマに対する構造化文書の例(図4A)及び当該構造化文書を木構造で表現した場合の例(図4B)を示す。
図4Aは、XML文書(451)の例である。
図4Bは、図4Aで示されるXML文書(451)(ファイル名:foo.xml)を木構造で表したものであり、要素”ルート(Root)”が親ノードであり(401)、要素”C”及び要素”A”が子ノードであり(411、412、413、414)、要素”D”が孫ノードである(421〜423、424〜426、427〜429)。要素”B”(子ノード)(415)は、存在しない(従って、図4Bでは、点線で示されている)。
【0086】
特定部(211)は、スキーマ(301)を操作して、当該スキーマによって定義される1以上の変動部分(例えば、要素又は属性によって定義されている)を特定する。取得部(212)は、上記特定された変動部分の各特徴値を図4Aに示す構造化文書から取得する。
【0087】
特定される要素が個々の<element>定義”Root”、”C”、”A”、”B”及び”D”である場合、その特徴値は当該<element>定義の繰り返し数であり、詳細には次の通りである。図3のスキーマ行1において、”element name”が”Root”である場合の繰り返し数は、1である(401)。同スキーマ行4において、”element name”が”C”である場合の繰り返し数は、3である(411、412及び413)。同スキーマ行5において、”element name”が”A”である場合の繰り返し数は、1である(414)。同スキーマ行6において、”element name”が”B”である場合の繰り返し数は、0である(415)。同スキーマ行11において、”element name”が”D”である場合の繰り返し数は、9である(421〜423、424〜426、427〜429)。しかし、ノードがルートから遠くなるにつれてそのノード数が多くなるために、例えば孫ノード以下では、平均値を特徴値としうる。従って、行11において、”xsd:int”のノード数の平均値は3であるので、その特徴値は3である。
【0088】
特定される要素が単純型要素”xsd:string”(行5)、”xsd:string”(行6)及び”xsd:int”(行11)である場合、その特徴値は当該単純要素のサイズ(バイト数)であり、詳細には次の通りである。行5において、”xsd:string”のバイト数は”abcdefghij”の10バイトである。行6において、”xsd:string”のバイト数は0(N/A)である。なぜならば、要素”B”が存在しないために、”B”のテキスト部分のサイズが評価できないからである。行11において、”xsd:int”のバイト数は、”111”(431)、”112”(432)、”113”(433)、”221”(434)、”222”(435)、”223”(436)、”331”(437)、”332”(438)、”333”(439)の合計27バイトである。しかし、ノードがルートから遠くなるにつれてバイト数が多くなるために、例えば孫ノード以下では、平均値を特徴値としうる。従って、行11において、”xsd:int”のバイト数(平均値)は、3バイトである。
【0089】
図5は、本発明の実施態様に従う、図4Aに示される構造化文書及びその他の構造化文書を分類するために使用される特徴名及びその特徴値を示すテーブルである。
図5の特徴値テーブル(501)は、図3で示されるスキーマが適用される場合の特徴名(521〜526)と、各XML文書(foo.xml, bar.xml, baz.xml)(511〜513)についての特徴値とを有する。
図5の特徴値テーブル(501)では、要素の繰り返し数である特徴値の特徴名として、XMLスキーマ(301)の要素定義を特定する表現が用いられている。よって、図4Aに示される構造化文書の場合において、要素名Root、A、B、C、及びDが、XMLスキーマ(301)の要素定義を特定するための特徴名としてそれぞれ使用されている。また、要素のテキスト部分のサイズである特徴値の特徴名は、例えば、当該要素の要素定義の最後に“/text()“を付したものを用いうる。よって、図4Aに示される構造化文書の場合において、各要素名Root、A、B、C、及びDに、“/text()“を付したRoot/text()、A/text()、B/text()、C/text()、及びD/text()を要素のテキスト部分のサイズを特定するための特徴値としてそれぞれ使用しうる。
【0090】
特徴値テーブル(501)の特徴名は、A/text()、B、B/text()、C、D、及びD//text()である。なお、特徴値テーブル(501)は特徴名Root、Root/text()、A及びC/text()を有していても有していなくてもよい。なぜならば、特徴名Root、Root/text()、A及びC/text()の各特徴値はいずれも0であるために、機械学習において使用されるデータとなり得ないからである。特徴値テーブル(501)が特徴名Root、Root/text()及びC/text()を有している場合には、ルール生成部(213)は、当該特徴名についての特徴値をメモリ上に読み出さなければよいだけである。
【0091】
図4AのXML文書であるfoo.xml(511)の各特徴名A/text()、B、B/text()、C、D、及びD/text()に対応する特徴値は、図4において述べたように、10、0、N/A、3、3(平均値である)、3(平均値である)である。
bar.xml(512)(コードは図示せず)の上記各特徴名に対応する特徴値は、25、1、10、7、1(平均値である)及び10(平均値である)である。
baz.xml(513)(コードは図示せず)の上記各特徴名に対応する特徴値は、12、0、N/A、3、3(平均値である)及び4(平均値である)である。
【0092】
特徴値テーブル(501)は、特徴値テーブル(231)内に格納される。
【0093】
ルール生成部(213)は、特徴値テーブル(231)から特徴値テーブル(501)をメモリ内に読み出して、各特徴名とそれに対応する特徴値を、機械学習手法、データマイニング手法、又は統計的手法を使用して、図3で示されるスキーマについてのルールを生成する。生成されたルールは、ルール記憶部(223)内に格納される。
【0094】
図5の例では、ルール生成部(213)は、foo.xml(511)、bar.xml(512)及びbaz.xml(513)の全ての特徴値を用いてルールを生成する。当該生成されたルールは、foo.xml(511)及びbaz.xml(513)のクラスタとbar.xml(512)のクラスタとを分類するものとなる。この例の場合、ルールの生成とともに、分類部(241)は、入力データであるfoo.xml(511)、bar.xml(512)及びbaz.xml(513)をそれぞれ分類しうる。分類部(241)は、foo.xml(511)及びbaz.xml(513)を同じクラスタに分類する。なお、foo.xml(511)、bar.xml(512)及びbaz.xml(513)以外のXML文書について当該生成されたルールに従い分類する場合、分類部(241)は、ルール記憶部(223)に記憶された当該ルールを読み出して、分類を行う。すなわち、ルールの生成と構造化文書の分類とは、同時ではないことに留意されたい。
【0095】
図6は、本発明の実施態様に従い、XMLスキーマを読み込み、特徴名を列挙するための処理のフローチャートを示す。
ステップ601では、特定部(211)は、特徴名を列挙するためのアルゴリズムを開始する。
ステップ602では、特定部(211)は、XMLスキーマ記憶部(221)から対象のXMLスキーマ(例えば図3のスキーマ(301))をメモリ内にロードし、当該XMLスキーマの先頭から順にその内容を読み込む。
ステップ603では、特定部(211)は、上記XMLスキーマにおいて最初に出現する要素(<element>定義により特定される)を選択する。
ステップ604では、特定部(211)は、選択された<element>定義を特定するために使用される名称を当該選択された<element>定義の特徴名として、特徴値テーブル(231)内に記録する。
ステップ605では、特定部(211)は、選択された<element>定義が単純型要素である場合、当該選択された<element>定義が特定される名称の最後に“/text()“を追加した名称を、当該単純型要素のテキスト部分のサイズを表す特徴値の特徴名として、特徴値テーブル(231)内に記録する。
ステップ606では、特定部(211)は、メモリ上に読み込んだXMLスキーマ上に、特徴名を特徴値テーブル(231)内に記録していない<element>定義がまだ存在するかどうかを確認する。記録していない<element>定義がある場合、処理はステップ607に進む。一方、記録していない<element>定義がない場合、処理はステップ608に進む。
ステップ607では、特定部(211)は、特徴名が記録されていない最初の<element>定義を選択する。選択後、処理はステップ604に戻り、特定部(211)は、特徴名が記録されていない最初の<element>定義が特定される名称を当該<element>定義の特徴名として、特徴値テーブル(231)内に記録する。
ステップ608では、特定部(211)は、特徴名を列挙するためのアルゴリズムを終了する。処理は、ルールを生成するために、図7に示すフローチャートのアルゴリズムのステップ701に進む。
【0096】
図7は、本発明の実施態様に従い、XML文書毎に、XMLスキーマの<element>定義に対して繰り返し数を特徴値として取得し、及び単純型の定義に対してバイト数を特徴値として取得するための処理のフローチャートを示す。
ステップ701では、取得部(212)は、特徴値を取得するためのアルゴリズムを開始する。
ステップ702では、取得部(212)は、XMLスキーマ記憶部(221)から対象のXMLスキーマ(例えば図3のスキーマ(301))をメモリ内にロードし、当該XMLスキーマの検証をしながら、XML文書記憶部(222)からロードしたXML文書の先頭からその内容を読み込む。
ステップ703では、取得部(212)は、読み込みがXML文書中の最初の要素に到達したら、ステップ704に進む。
ステップ704では、取得部(212)は、ステップ703で到達した要素についてのXMLスキーマ上の定義が単純型であるか、それ以外であるかを確認する。単純型要素である場合、ステップ705に進む。一方、単純型要素でない場合、ステップ706に進む。
ステップ705では、取得部(212)は、単純型要素のテキスト部分のサイズ又はそのサイズの平均値を特徴値テーブル(231)内に記録する。XMLスキーマ上の1つの<element>定義がXML文書の複数の部分に対応する場合があるので、特徴値の記録は複数回行われる場合がある。そのために、特徴値の記録時には、記録が行われた回数を同時に記録しておき、2回目以降の記録時には、それまでの平均値を上書き記録しうる。上記記録が終了すると、処理はステップ706に進む。
ステップ706では、取得部(212)は、ステップ704からの場合に、単純型要素でない要素のスキーマ上の<element>定義の特徴値のカウンタをインクリメントする。また、取得部(212)は、ステップ705からステップ706に進んだ場合に、単純型要素のスキーマ上の<element>定義の特徴値のカウンタをインクリメントする。
ステップ707では、取得部(212)は、XML文書中の次の要素に到達したら、処理はステップ707に進む。また、取得部(212)は、XML文書の最後に到達したら、処理はステップ707に進む。要素の繰り返しの終了は、(1)別の要素が現れるか又は(2)親要素の終了タグに到達することによって判別可能である。ステップ707では、上記(1)及び(2)の条件を同時にチェック可能なものとして、「次の要素に到達」としている。これは、例えば図4Aに示されている〈C〉(2行目)、〈D〉(3行目)、〈D〉(4行目)、〈D〉(5行目)、〈C〉(7行目)、〈D〉(8行目)、〈D〉(9行目)、〈D〉(10行目)、〈C〉(12行目)、〈D〉(13行目)、〈D〉(14行目)、〈D〉(15行目)、及び〈A〉(17行目)の各開始タグに到達するまでに、XML文書を読み進めることを意味する。
ステップ708では、取得部(212)は、1つ前の要素の繰り返しが終了かどうかを判定する。終了であれば、処理はステップ709に進む。一方、終了でなければ、処理はステップ710に進む。
ステップ709では、取得部(212)は、1つ前の要素のカウンタの値を特徴値として記録し、カウンタをリセットする。そして、処理はステップ710に進む。
ステップ710では、取得部は、XML文書中の文書末かどうかを判定する。次の要素に到達する前に文書末にきた場合、繰り返し数のカウンタを記録し、ステップ711に進む。一方、文書末でない場合、ステップ704に戻り、次の要素について、ステップ704〜710を繰り返す。
ステップ711では、取得部(212)は、特徴値を取得するためのアルゴリズムを終了する。処理は、ルールを作成するために、図8に示すフローチャートのアルゴリズムを開始する。
【0097】
図8は、本発明の実施態様に従い、図7で取得された特徴値から、データマイニングの手法を適用してルールを作成するための処理のフローチャートを示す。
ステップ801では、ルール生成部(213)は、ルールを生成するためのアルゴリズムを開始する。
ステップ802では、ルール生成部(213)は、図7のフローチャートに従い得られた、複数のXML文書についての特徴値の集合を用意する。特徴値の当該集合は、例えば、特徴値テーブル(231)として用意されうる。
ステップ803では、ルール生成部(213)は、特徴値の集合を訓練データとして、データマイニングの手法により、ルールを作成する。ルール生成部(213)は、生成されたルールを、ルール記憶部(223)に格納する。
ステップ804では、ルール生成部(213)は、ルールを生成するためのアルゴリズムを終了する。
【0098】
図9は、本発明の実施態様に従い、図8で作成されたルールを使用して、XML文書を分類するための処理のフローチャートを示す。
ステップ901では、分類部(241)は、XML文書を分類するためのアルゴリズムを開始する。
ステップ902では、取得部(212)は、図7に示すフローチャートに従い、分類対象であるXML文書から当該XML文書中の要素の特徴値を取得する。取得部(212)は、当該取得された特徴値を当該特徴値が取得されたXML文書に関連付ける。
ステップ903では、分類部(241)は、ルール記憶部(223)からルールをメモリ上にロードし、上記取得された特徴値を当該ルールに適用して、上記取得された特徴値を有するXML文書をルールに従い分類する。
ステップ904では、分類部(241)は、XML文書を分類するためのアルゴリズムを終了する。
【0099】
図10は、本発明の実施態様に従い、図8で作成されたルールを使用して、特定のXML文書に類似しているXML文書を検索対象であるXML文書から抽出するための処理のフローチャートを示す。
ステップ1001では、検索部(242)は、特定のXML文書に類似しているXML文書を抽出するためのアルゴリズムを開始する。
ステップ1002では、取得部(212)は、図7に示すフローチャートに従い、特定のXML文書から当該XML文書中の要素の特徴値を取得する。取得部(212)は、当該取得された特徴値それぞれを当該特徴値が取得されたXML文書に関連付ける。
ステップ1003では、検索部(242)は、ルール記憶部(223)からルールをメモリ上にロードし、ステップ1002において取得された特徴値を当該ルールに適用して、第1の結果を取得する。
ステップ1004では、取得部(212)は、図7に示すフローチャートに従い、検索対象である複数のXML文書それぞれから当該XML文書中の要素の特徴値を取得する。取得部(212)は、当該取得された特徴値それぞれを当該特徴値が取得されたXML文書に関連付ける。
ステップ1005では、検索部(242)は、ルール記憶部(223)からルールをメモリ上にロードし、ステップ1004において取得された特徴値をXML文書ごとに当該ルールに適用して、各第2の結果を取得する。
ステップ1006では、検索部(242)は、ステップ1005からの各第2の結果をステップ1003からの第1の結果と比較して、特定の構造化文書に類似している構造化文書を抽出する。当該抽出によって、特定の構造化文書に類似している構造化文書が検索される。
ステップ1007では、検索部(242)は、特定のXML文書に類似しているXML文書を抽出するためのアルゴリズムを終了する。
【0100】
図11は、本発明の実施態様に従い、図8で作成されたルールを使用して、検査対象であるXML文書が特定のXML文書に類似しているかどうかを検査するための処理のフローチャートを示す。
ステップ1101では、検査部(243)は、特定のXML文書に類似しているXML文書を抽出するためのアルゴリズムを開始する。
ステップ1102では、取得部(212)は、図7に示すフローチャートに従い、特定のXML文書から当該XML文書中の要素の特徴値を取得する。取得部(212)は、当該取得された特徴値それぞれを当該特徴値が取得されたXML文書に関連付ける。
ステップ1103では、検査部(243)は、ルール記憶部(223)からルールをメモリ上にロードし、ステップ1002において取得された特徴値を当該ルールに適用して、第1の結果を取得する。
ステップ1104では、検査部(243)は、図7に示すフローチャートに従い、検査対象であるXML文書それぞれから当該XML文書中の要素の特徴値を取得する。取得部(212)は、当該取得された特徴値を当該特徴値が取得されたXML文書に関連付ける。
ステップ1105では、検査部(243)は、ルール記憶部(223)からルールをメモリ上にロードし、ステップ1004において取得された特徴値を当該ルールに適用して、第2の結果を取得する。
ステップ1106では、検査部(243)は、ステップ1105からの第2の結果をステップ1103からの第1の結果と比較して、検査対象である構造化文書が特定の構造化文書に類似しているかどうかを検査する。当該類似しているかどうかは、第2の結果と第1の結果が、例えば所定の割合(例えば80%以上)で共通又は類似することで判定されうる。所定の割合は、どの程度の類似度の文書であるかによって任意に設定しうる値である。
ステップ1107では、検査部(243)は、特定のXML文書に類似しているXML文書を抽出するためのアルゴリズムを終了する。
【0101】
図12は、本発明の実施態様に従う、図3に示されるXMLコード及びその他のXMLコードを分類するために使用される、XPath表現に対する特徴値を示すテーブルである。
図6の特徴名を列挙するためのフローチャートにおいて、特徴値として、図3に示すスキーマの場合、XMLスキーマ上の<xs:element>タグ又は<xs:complex>タグなどの定義についての繰り返し数が使用されている。これらの定義に加えて、ノードが一意に定まる絶対ロケーション・パス(例えばXPath)表現についての特徴値を使用することが可能である。この絶対ロケーション・パスを使用することによって、<element>定義と比べて、より正確な分類を行うことが可能である。絶対ロケーション・パスは、子(child)基準点(Axes)とposition()との数値比較のみを用いた表現である。絶対ロケーション・パスの特徴は次の通りである:(1)1つのノードを必ず選択する(言い換えれば、複数のノードを選択しない);(2)あるノードを指す表現は一意に決まる;(3)最後のノードについては、position()は指定されない(なぜならば、繰り返し数が指定されるようにするためである)。絶対ロケーション・パスの例は、”/child::Root/child::C[position()=1]/child::D[position()=1]/text()”で表現されうる。この表現は、”/Root/C[1]/D[1]/text()”の省略形でも表されうる。絶対ロケーション・パスを使用することによって、繰り返し現れる要素に対して、個々の部分木の傾向が出現場所によって異なる場合の区別をすることが可能であり、またXMLスキーマ上の定義が再帰的に利用されている場合に、XMLスキーマ上の定義が再帰的に利用されている場合において、同じ定義に対応する部分であるけれども実際のXML文書上の出現場所が異なる(絶対パスが異なる)要素の区別をすることが可能である。
【0102】
図12の特徴値テーブル(1201)は、XML文書とその特徴名との対応、及びXML文書ごとの各特徴名の特徴値を示す。特徴名は、Xpath表現が用いられている:/Root/C[1]/D,/Root/C[1]/D[1]/text(),/Root/C[3]/D[3]/text()。なお、XML文書中の最後のノードには、上記したように、position()は指定されない。また、テキスト部分のサイズを表す特徴値の特徴名には、絶対ロケーション・パスの最後に“/text()“を追加した名称が特徴値名として、特徴値テーブル(231)内に記録される。
図12の特徴値テーブル(1201)は、特徴名(1221〜1223)と、各XML文書(foo.xml, bar.xml, baz.xml)(1211〜1213)についての特徴値とを有する。
図12の特徴値テーブル(1201)では、要素の繰り返し数である特徴値の特徴名として、Xpath表現が用いられている。よって、図12に示される構造化文書の場合において、Xpath表現/Root/C[1]/D(以下、「表現1」という),/Root/C[1]/D[1]/text()(以下、「表現2」という),/Root/C[3]/D[3]/text()(以下、「表現3」という)が、特徴名としてそれぞれ使用されている。なお、“/text()“は、上記したように、テキスト部分のサイズを表す特徴値の特徴名において、その最後に付されたものである。
【0103】
foo.xml(1211)の各特徴名 表現1(1221)、表現2(1222)、及び表現3(1223)に対応する特徴値はそれぞれ、3、3及び3である。
bar.xml(1212)(コードは図示せず)の上記各特徴名に対応する特徴値はそれぞれ、1、10及びN/Aである。bar.xml(1212)において、要素D[3]は存在しないので、要素D[3]のテキスト部分のサイズは評価できない。
baz.xml(1213)(コードは図示せず)の上記各特徴名に対応する特徴値はそれぞれ、3、4及び4である。
【0104】
特徴値テーブル(1201)は、特徴値テーブル(231)内に格納される。
【0105】
ルール生成部(213)は、特徴値テーブル(231)から特徴値テーブル(1201)をメモリ内に読み出して、各特徴名とそれに対応する特徴値について機械学習の手法を適用しうる。そして、スキーマについてのルールを生成する。当該ルールは、ルール記憶部(223)内に格納される。
【0106】
図12の例では、ルール生成部(213)は、foo.xml(1211)、bar.xml(1212)及びbaz.xml(1213)の全ての特徴値を用いルールを生成する。当該生成されたルールは、foo.xml(1211)及びbaz.xml(1213)のクラスタとbar.xml(1212)のクラスタとを分類するものとなる。この例の場合、ルールの生成とともに、分類部(241)は、入力データであるfoo.xml(1211)、bar.xml(1212)及びbaz.xml(1213)をそれぞれ分類しうる。分類部(241)は、foo.xml(511)及びbaz.xml(513))を同じクラスタに分類する。なお、foo.xml(1211)、bar.xml(1212)及びbaz.xml(1213)以外のXML文書について当該生成されたルールに従い分類する場合、分類部(241)は、ルール記憶部(223)に記憶された当該ルールを読み出して、分類を行う。すなわち、ルールの生成と構造化文書の分類とは、同時ではないことに留意されたい。
【0107】
図13及び図14では、図12に示されるXpath表現を使用する具体例を説明する。
【0108】
図13は、本発明の実施態様に従い、図12に示されるXpath表現を使用して、同じ子ノード名を有し且つ同じ親ノード名を有する親ノード下にあるが、当該親ノードが別のノード下にあることを区別することを可能にすることを示す。
子ノード(1321)のテキスト・サイズ(1331)は、数値が「1」であるからそのテキスト・サイズ(特徴値)は1である。子ノード(1322)のテキスト・サイズは、数値が「12」(1332)であるからそのテキスト・サイズ(特徴値)は2である。子ノード(1323)のテキスト・サイズは、数値が「113」(1333)であるからそのテキスト・サイズ(特徴値)は3である。子ノード(1327)のテキスト・サイズは、数値が「3333331」(1337)であるからそのテキスト・サイズ(特徴値)は7である。子ノード(1328)のテキスト・サイズは、数値が「33333332」(1338)であるからそのテキスト・サイズ(特徴値)は8である。子ノード(1329)のテキスト・サイズは、数値が「333333333」(1339)であるからそのテキスト・サイズは「9」(特徴値)である。従って、子ノードDの特徴値は、上記6つの特徴値の平均である(1+2+3+7+8+9)/6=5である。
【0109】
例えば、2つの子ノード(例えば、1321及び1329)は、XMLスキーマ上で同じ子ノード“D”として定義されているために、区別されない。一方、Xpath表現を用いることによって、この2つの子ノード(1321及び1329)を区別することが可能である。すなわち、子ノード(1321)はXpath表現“/Root/C[1]/D[1]/text()”で表され、一方、子ノード(1329)はXpath表現”/Root/C[3]/D[3]/text()”で表されるので、両ノードを区別することが可能である。従って、子ノードD(1321)のテキスト・サイズである特徴値「1」及び子ノードD(1329)のテキスト・サイズである特徴値「9」を用いて、ルールを生成すること、並びに構造化文書を分類し、検出し及び検査することが可能である。
【0110】
図14は、本発明の実施態様に従い、図12に示されるXpath表現を使用して、同じ子ノード名を有するが、異なる親ノード名を有する親ノード下にあることを区別することを可能にすることを示す。
図13において、各子ノードD(1321〜1323、1324〜1326、及び1327〜1329)は、その各親ノードC(1311、1312及び1313)から参照されている。すなわち、名称が同じCである親ノードから参照されている。しかしながら、図14において、子ノードDは、図14に示すように、ノードC(1411、1412及び1413)だけでなく、ノードCと名称の異なるノードB(1415)からも参照可能である。
【0111】
図14では、各子ノードC(1411、1412及び1413)から参照されている子ノードD(1421〜1423、1424〜1426及び1427〜1429)のテキスト(1441〜1449)のサイズは各「3」である。これに対して、親ノードB(1415)から参照されている子ノードD(1430〜1432)のテキスト(1450〜1452)のサイズは各「10」である。Xpath表現を用いない場合、この3つの子ノードD(1421〜1423、1424〜1426及び1427〜1429)と子ノードD(1430〜1432)とは、XMLスキーマ上では別々の子ノードとして区別されない。一方、Xpath表現を用いることによって、この3つの子ノードD(1421〜1423、1424〜1426及び1427〜1429)と子ノードD(1430〜1432)とは、別々の子ノードとして区別することが可能である。
【0112】
例えば、Cが「address」であり、Bが「person」であり、及びDが「name」である場合、子ノードD(1421〜1423、1424〜1426、及び1427〜1429)は「address下のname」であり、子ノードD(1430〜1432)は「person下のname」であるために、両ノードDは互いに区別可能である。従って、ルール生成部(213)は、子ノードD(1421〜1429)の特徴値「3」(平均値である)及び子ノードD(1430〜1432)の特徴値「10」(平均値である)をそれぞれ用いて、ルールを生成する。そして、当該再生されたルールを用いて、構造化文書を分類し、検出し及び検査することが可能である。
【0113】
図15は、本発明の実施態様に従い、図3で取得された特徴値からXML文書を抽出するための具体例を説明するためのXML文書である。
図15では、下記のような都道府県の人口に関する情報を保存するためのスキーマを考える。
−要素定義
・都道府県:属性は都道府県名
・市区町村:属性は市区町村名
・勤労者:勤労者に関する情報をまとめるための要素
・高齢者:高齢者に関する情報をまとめるための要素
・人口割合:値として整数値を持つ
−構造
・“都道府県”は文書に一つ
・“勤労者”及び“高齢者”は“都道府県”の子要素
・“市区町村”は“人口区分”の子要素として、いくつでも可
・“人口割合”は“市区町村”の子要素として、必ず一つ
【0114】
同じ「人口割合」という要素でも、以下の2つは異なる特徴を有するので、別々に扱えた方が分類の上で好都合である。
−「勤労者/市区町村/人口割合」
−「高齢者/市区町村/人口割合」
【0115】
図15のXML文書(1501)は、神奈川県における勤労者及び高齢者それぞれの市区町村毎における人口割合を規定する。また、XML文書(1502)は、岐阜県における勤労者及び高齢者それぞれの市区町村毎における人口割合を規定する。このような場合において、「勤労者/市区町村/人口割合」と「高齢者/市区町村/人口割合」とをXpath表現を使用して、それらを別々に扱うことによって、高齢者と勤労者との割合が異なる都道府県を分類可能である。一方、Xpath表現を用いずに、別々に扱わない場合、数値(特徴値)が平均化されてしまうために、下記に述べるような区別をすることができない。
【0116】
XML文書(1503)はXML文書(1501)と同じであるが、XML文書(1503)にマーク付けしたように、各市区町村において勤労者の方が高齢者よりも人口割合が多いことがわかる。同様に、XML文書(1504)はXML文書(1502)と同じであるが、XML文書(1504)にマーク付けしたように、各市区町村において高齢者の方が勤労者よりも人口割合が多いことがわかる。
【0117】
図16は、本発明の実施態様に従う、図15のXML文書に対するXMLスキーマである。なお、スキーマ(1501)において、各行左の数字(1〜19行)は、説明の便宜上付したものである。
【0118】
図17は、本発明の実施態様である図8に記載されたフローチャートに従い生成されたルールを用いて、XML文書の冒頭文からどのクラスタに近いかを判定するために使用されるオートマトンの例を示す。
まず、クラスタ毎の1又は複数の代表文書についてタグ単位のオートマトンを図17に示すように作る。そして、選択されたfoo.xml及びbar.xmlのXML文書を先頭からそれぞれチェックし、異なる部分が現れた時点で分岐するようなオートマトンを作成する。オートマトンの作成手法の一つとして、本願出願人によって出願された日本国特許公開2006−24179号公報に記載の作成手法を使用しうる(特に、図32及び図33を参照)。
【0119】
図17は、クラスタ1(1711)、クラスタ2(1712)及びクラスタ3(1713)の3つのクラスタがあることを示す。そして、上記異なる部分がノード(1701及び1703)であることを示す。図5又は図12の例を挙げて説明すると、コンピュータが、foo.xml及びbaz.xmlのクラスタから例えばfoo.xmlを代表文書として選択し、及び、bar.xmlのクラスタからbar.xmlを代表文書として選択する。選択方法は任意であるが、例えば一番単純な選択法補は、単に1つ目のXML文書を選択することである。そして、1つのクラスタに定まった時点で判定を終了する。
【0120】
なお、XML文書の前半の大きな範囲が同一である複数のクラスタがある場合、判定のために大きな範囲をコンピュータが読む必要がある。そのために、そのような複数のクラスタを同じ一つのクラスタにまとめる方がよい。また、オートマトンに合致するパスがない場合にもより近いクラスタへ分類するようにしてもよい。近いクラスタへの分類の単純な方法は、より確率の高い(すなわち、インスタンス数の多い)クラスタに分類することである。近いクラスタへ分類することによって、繰り返し数又はテキスト部分のみが異なるものを吸収することが可能である。また、合致するパスが大幅に異なる場合においても、より確率の高い(すなわち、インスタンス数の多い)クラスタに分類するのがよい。
【0121】
図18は、本発明の実施態様である図8に記載されたフローチャートに従い生成されたルールを用いて、DLPのために類似文書を検出又は検査するために使用されるODF文書の例を示す。
図18は、ODF文書として機密文書などの社外に流出させたくないXML文書(例えばオフィス・アプリケーションで作成されたXML文書)を木構造で表現したものである。当該木構造は、ルート(1801)及び子ノード(1802〜1813)からなる。子ノード(1802〜1813)は、例えば、スタイルのテンプレート(1803)、テキスト・ボックス(1808〜1810)、及び図形(1811〜1813)を包含する。
【0122】
検査部(243)は、検査対象である新規XML文書をルールに適用して、ODF文書に類似する文書を当該新規XML文書から検出しうる。それによって、当該ODF文書に社外に流出させたくない情報が指定されている場合に、当該ODF文書に類似するXML文書を検索することが可能になり、且つ、当該ODF文書に類似するXML文書が、例えばメール送信を通じて流出することを事前に防ぐことが可能になる。なお、DLPのための類似文書の検出においては、ODF文書と新規XML1対1の類似度計算ではなく、ある1つの新規XML文書に対して、複数のODF文書の類似度計算を同時に行うことによって、種々の観点からDLPのための類似文書を検出又は検査することが可能である。
また、DLPのための類似文書の検出において、XML文書がODF文書とどの程度類似するかの数値を計算することも可能である。
特定のXML文書に類似しているXML文書を検索対象であるXML文書から抽出するための処理、及び、検査対象であるXML文書が特定のXML文書に類似しているかどうかを検査するための処理については、それぞれ図10及び図11の各フローチャートに示されているので参照されたい。
【0123】
図19は、本発明の実施態様である図9に記載されたフローチャートに従いXML文書を予めクラスタに分類し、そしてクラスタ毎に分割手法を予測してXML文書を分割するための処理のフローチャートを示す。
XML文書に対応する構文木を分割することによって、当該分割された部分記木それぞれをマルチコア・プロセッサによって並列処理をすることが可能である。この分割をする前に、図9に記載されたフローチャートに従いXML文書を予め分類する処理を行うことで、同じスキーマに属する複数のXML文書においてその構造が大きく異なるXML文書又はXML文書のグループがある場合であっても、効果的に構文木の分割をすることが可能になり、さらにマルチプロセッサによる高速化処理を実現することが可能になる。
【0124】
以下に、その具体的な処理を図19に示すフローチャートに従い説明する。
ステップ1901では、コンピュータは、構文木の分割及びその分割された部分木の並列処理を開始する。
ステップ1902では、コンピュータは、図9に記載されたフローチャートに従い、例えば、一つのスキーマに属するある程度の量のXML文書の集合を事前にバッチ処理的にクラスタに分類する。
ステップ1903では、コンピュータは、ステップ1902により得られたクラスタの特徴値をクラスタ毎に取得し、メモリ内に記憶する。コンピュータは、取得した特徴値に基づいて、事前にクラスタ毎に適当な分割手法を予測しておく。
ステップ1904では、コンピュータは、新規のXML文書を処理する際に、当該新規のXML文書の冒頭部分から近いクラスタを判定して当該XML文書を分類し、そして、事前に予測しておいた分割手法によって、当該新規のXML文書の分割を行う。XML文書に対応する構文木の分割手法の一つとして、本願出願人によって出願された日本国特許出願2010−14356号(整理番号JP100028A)に記載の分割手法を使用しうる。特願2010−14356号に記載の内容は参照によって本明細書に取り込まれて、本明細書の一部をなす。
ステップ1905では、コンピュータは、分割された部分木毎に、マルチプロセッサによる並列処理を行う。
ステップ1906では、コンピュータは、構文木の分割及びその分割された部分木の並列処理を終了する。

【特許請求の範囲】
【請求項1】
コンピュータ処理によって、同一のスキーマが適用される複数の電子化された構造化文書を分類するためのルールを生成するための方法であって、前記コンピュータが、
前記スキーマを走査して、当該スキーマによって定義される1以上の変動部分を特定するステップと、
前記特定された変動部分の特徴値を前記複数の構造化文書それぞれから取得し、当該取得された特徴値それぞれを当該特徴値が取得された構造化文書に関連付けるステップと、
前記構造化文書に関連付けられた前記特徴値に基づいて、前記ルールを生成するステップと
を実行することを含む、前記方法。
【請求項2】
前記変動部分を特定するステップが、前記スキーマによって定義される木構造に含まれる1以上の要素、又は前記スキーマによって定義される木構造に含まれる1以上の属性を特定するステップを含み、
前記関連付けるステップが、前記特定された要素又は属性の特徴値を前記複数の構造化文書それぞれから取得し、当該取得された特徴値それぞれを当該特徴値が取得された構造化文書に関連付けるステップを含む、請求項1に記載の方法。
【請求項3】
前記特定された要素の特徴値が、前記木構造に含まれる要素の繰り返し数、前記木構造に含まれる単純型要素のテキスト部分のサイズ、前記木構造に含まれる、数値を表す単純型要素の数値、又は前記木構造に含まれる選択可能な要素に関連付けられた値である、請求項2に記載の方法。
【請求項4】
前記特定された要素の特徴値が、前記スキーマ上で同じ一つの定義に属している少なくとも2以上のノードに含まれる要素の繰り返し数の平均値、前記スキーマ上で同じ一つの定義に属している少なくとも2以上のノードに含まれる単純型要素のテキスト部分のサイズの平均値、前記スキーマ上で同じ一つの定義に属している少なくとも2以上のノードに含まれる、数値を表す単純型要素の数値の平均値、又は前記スキーマ上で同じ一つの定義に属している少なくとも2以上のノードに含まれる選択可能な要素に関連付けられた値の平均値である、請求項2に記載の方法。
【請求項5】
前記特定された属性の特徴値が、前記木構造に含まれる属性のある/なしに関連付けられた値、又は前記木構造に含まれる属性のテキスト部分のサイズである、請求項2に記載の方法。
【請求項6】
前記コンピュータが、
前記特定された要素のうちの少なくとも1つの要素を木構造の絶対パスに関連付けるステップを実行することをさらに含み、
前記関連付けるステップが、前記絶対パスに関連付けられた要素の特徴値を前記複数の構造化文書から取得し、当該取得された特徴値それぞれを当該特徴値が取得された構造化文書に関連付けるステップを含む、
請求項2に記載の方法。
【請求項7】
前記要素を特定するステップが、
前記スキーマを走査して、最初にある要素を選択するステップと、
前記選択された最初にある要素に、当該要素を特定するための名称を特徴名(以下、第1の特徴名)として付与するステップと
をさらに含む、請求項2に記載の方法。
【請求項8】
前記関連付けるステップが、
前記構造化文書の前記第1の特徴名に、当該第1の特徴名に対応する特徴値を関連付けるステップをさらに含む、請求項7に記載の方法。
【請求項9】
前記要素を特定するステップが、
前記スキーマを走査して、要素を特定するための名称である特徴名が記録されておらず且つ前記選択された要素の次に最初にある要素を選択するステップと、
前記選択された次に最初にある要素に、当該要素を特定するための名称を特徴名(以下、第2の特徴名)として付与するステップと
をさらに含む、請求項2に記載の方法。
【請求項10】
前記関連付けるステップが、
前記構造化文書の前記第2の特徴名に、当該第2の特徴名に対応する特徴値を関連付けるステップをさらに含む、請求項9に記載の方法。
【請求項11】
前記ルールを生成するステップが、前記構造化文書に関連付けられた特徴値を機械学習手法、データマイニング手法、又は統計的手法を使用してクラスタ化ルールを生成するステップを含む、請求項1に記載の方法。
【請求項12】
前記クラスタ化ルールが、クラスタ分析、主成分分析、ベクトル量子化、自己組織化マップ、強化学習、教師なし学習、k−means法、又は期待値最大化法を使用して生成される、請求項11に記載の方法。
【請求項13】
前記構造化文書が、XML、HTML、XHTML、SGML、ODF(Open Document Format)、OOXML(Office Open XML)のいずれかのようなメタ言語のフォーマットに従うものである、請求項1に記載の方法。
【請求項14】
前記スキーマが、XMLスキーマ、文書型定義(DTD)、RELAX(Regular Language description for XML)、RELAX NG(RELAX Next Generation)、NVDL(Name space-based Validation Dispatching Language)、スキマトロン(Schemaron)のいずれかのようなスキーマ言語のフォーマットに従うものである、請求項1に記載の方法。
【請求項15】
コンピュータ処理によって、同一のスキーマが適用される複数の電子化された構造化文書を分類するための方法であって、コンピュータが、
分類対象である構造化文書から、1以上の変動部分の特徴値を取得するステップと、
前記取得された特徴値をルールに適用して、前記取得された特徴値を有する構造化文書を分類するステップであって、前記ルールは、前記分類対象である構造化文書の変数部分の特徴値に基づいて当該分類対象である構造化文書がどのクラスタ化された構造化文書の集合に属するかを決定するためのルールである、前記分類するステップと
を実行することを含む、前記方法。
【請求項16】
コンピュータ処理によって、同一のスキーマが適用される複数の電子化された構造化文書から、特定の構造化文書に類似している構造化文書を検索するための方法であって、前記コンピュータが、
前記特定の構造化文書から、1以上の変動部分の特徴値を取得し、当該取得された特徴値をルールに適用して第1の結果を得るステップと、
検索対象である複数の構造化文書それぞれから、1以上の変動部分の特徴値を取得し、当該取得された特徴値をXML文書ごとに前記ルールに適用して第2の結果を得るステップと、
XML文書ごとに、前記第2の結果を前記第1の結果と比較して、前記特定の構造化文書に類似している構造化文書を抽出するステップと
を実行することを含み、前記ルールは、前記特定の構造化文書又は前記検索対象である構造化文書の変数部分の特徴値に基づいて当該特定の構造化文書又は当該検索対象である構造化文書がどのクラスタ化された構造化文書の集合に属するかを決定するためのルールである、前記方法。
【請求項17】
コンピュータ処理によって、同一のスキーマが適用される電子化された構造化文書が特定の構造化文書に類似しているかどうかを検査するための方法であって、前記コンピュータが、
前記特定の構造化文書から、1以上の変動部分の特徴値を取得し、当該取得された特徴値をルールに適用して第1の結果を得るステップと、
検査対象である構造化文書から、1以上の変動部分の特徴値を取得し、当該取得された特徴値を前記ルールに適用して第2の結果を得るステップと、
前記第2の結果を前記第1の結果と比較して、前記検査対象である構造化文書が前記特定の構造化文書に類似しているかどうかを検査するステップと
を実行することを含み、前記ルールは、前記特定の構造化文書又は前記検査対象である構造化文書の変数部分の特徴値に基づいて当該特定の構造化文書又は当該検査対象である構造化文書がどのクラスタ化された構造化文書の集合に属するかを決定するためのルールである、前記方法。
【請求項18】
コンピュータに請求項1〜17のいずれか一項に記載の方法の各ステップを実行させるコンピュータ・プログラム。
【請求項19】
同一のスキーマが適用される複数の電子化された構造化文書を分類するためのルールを生成するためのコンピュータであって、メモリと、前記メモリに接続されたプロセッサとを備えており、前記プロセッサに請求項1〜14に記載の方法の各ステップを実行させるプログラムを前記メモリに読み出して、前記ルールを生成する、前記コンピュータ。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate

【図8】
image rotate

【図9】
image rotate

【図10】
image rotate

【図11】
image rotate

【図12】
image rotate

【図13】
image rotate

【図14】
image rotate

【図15】
image rotate

【図16】
image rotate

【図17】
image rotate

【図18】
image rotate

【図19】
image rotate

【図20】
image rotate


【公開番号】特開2012−98797(P2012−98797A)
【公開日】平成24年5月24日(2012.5.24)
【国際特許分類】
【出願番号】特願2010−243910(P2010−243910)
【出願日】平成22年10月29日(2010.10.29)
【出願人】(390009531)インターナショナル・ビジネス・マシーンズ・コーポレーション (4,084)
【氏名又は名称原語表記】INTERNATIONAL BUSINESS MASCHINES CORPORATION
【復代理人】
【識別番号】100085545
【弁理士】
【氏名又は名称】松井 光夫
【復代理人】
【識別番号】100118599
【弁理士】
【氏名又は名称】村上 博司
【Fターム(参考)】