(57)【特許請求の範囲】
【請求項１】
コンピュータ処理によって、同一のスキーマが適用される複数の電子化された構造化文書を分類するためのルールを生成するための方法であって、前記コンピュータが、
前記スキーマを走査して、当該スキーマによって定義される１以上の変動部分を特定するステップと、
前記特定された変動部分の特徴値を前記複数の構造化文書それぞれから取得し、当該取得された特徴値それぞれを当該特徴値が取得された構造化文書に関連付けるステップと、
前記構造化文書に関連付けられた前記特徴値に基づいて、前記ルールを生成するステップと
を実行することを含む、前記方法。
【請求項２】
前記変動部分を特定するステップが、前記スキーマによって定義される木構造に含まれる１以上の要素、又は前記スキーマによって定義される木構造に含まれる１以上の属性を特定するステップを含み、
前記関連付けるステップが、前記特定された要素又は属性の特徴値を前記複数の構造化文書それぞれから取得し、当該取得された特徴値それぞれを当該特徴値が取得された構造化文書に関連付けるステップを含む、請求項１に記載の方法。
【請求項３】
前記特定された要素の特徴値が、前記木構造に含まれる要素の繰り返し数、前記木構造に含まれる単純型要素のテキスト部分のサイズ、前記木構造に含まれる、数値を表す単純型要素の数値、又は前記木構造に含まれる選択可能な要素に関連付けられた値である、請求項２に記載の方法。
【請求項４】
前記特定された要素の特徴値が、前記スキーマ上で同じ一つの定義に属している少なくとも２以上のノードに含まれる要素の繰り返し数の平均値、前記スキーマ上で同じ一つの定義に属している少なくとも２以上のノードに含まれる単純型要素のテキスト部分のサイズの平均値、前記スキーマ上で同じ一つの定義に属している少なくとも２以上のノードに含まれる、数値を表す単純型要素の数値の平均値、又は前記スキーマ上で同じ一つの定義に属している少なくとも２以上のノードに含まれる選択可能な要素に関連付けられた値の平均値である、請求項２に記載の方法。
【請求項５】
前記特定された属性の特徴値が、前記木構造に含まれる属性のある／なしに関連付けられた値、又は前記木構造に含まれる属性のテキスト部分のサイズである、請求項２に記載の方法。
【請求項６】
前記コンピュータが、
前記特定された要素のうちの少なくとも１つの要素を木構造の絶対パスに関連付けるステップを実行することをさらに含み、
前記関連付けるステップが、前記絶対パスに関連付けられた要素の特徴値を前記複数の構造化文書から取得し、当該取得された特徴値それぞれを当該特徴値が取得された構造化文書に関連付けるステップを含む、
請求項２に記載の方法。
【請求項７】
前記要素を特定するステップが、
前記スキーマを走査して、最初にある要素を選択するステップと、
前記選択された最初にある要素に、当該要素を特定するための名称を特徴名（以下、第１の特徴名）として付与するステップと
をさらに含む、請求項２に記載の方法。
【請求項８】
前記関連付けるステップが、
前記構造化文書の前記第１の特徴名に、当該第１の特徴名に対応する特徴値を関連付けるステップをさらに含む、請求項７に記載の方法。
【請求項９】
前記要素を特定するステップが、
前記スキーマを走査して、要素を特定するための名称である特徴名が記録されておらず且つ前記選択された要素の次に最初にある要素を選択するステップと、
前記選択された次に最初にある要素に、当該要素を特定するための名称を特徴名（以下、第２の特徴名）として付与するステップと
をさらに含む、請求項２に記載の方法。
【請求項１０】
前記関連付けるステップが、
前記構造化文書の前記第２の特徴名に、当該第２の特徴名に対応する特徴値を関連付けるステップをさらに含む、請求項９に記載の方法。
【請求項１１】
前記ルールを生成するステップが、前記構造化文書に関連付けられた特徴値を機械学習手法、データマイニング手法、又は統計的手法を使用してクラスタ化ルールを生成するステップを含む、請求項１に記載の方法。
【請求項１２】
前記クラスタ化ルールが、クラスタ分析、主成分分析、ベクトル量子化、自己組織化マップ、強化学習、教師なし学習、ｋ−ｍｅａｎｓ法、又は期待値最大化法を使用して生成される、請求項１１に記載の方法。
【請求項１３】
前記構造化文書が、ＸＭＬ、ＨＴＭＬ、ＸＨＴＭＬ、ＳＧＭＬ、ＯＤＦ（Open Document Format）、ＯＯＸＭＬ（Office Open XML）のいずれかのようなメタ言語のフォーマットに従うものである、請求項１に記載の方法。
【請求項１４】
前記スキーマが、ＸＭＬスキーマ、文書型定義（ＤＴＤ）、ＲＥＬＡＸ（Regular Language description for XML）、ＲＥＬＡＸ  ＮＧ（RELAX Next Generation）、ＮＶＤＬ（Name space-based Validation Dispatching Language）、スキマトロン（Schemaron）のいずれかのようなスキーマ言語のフォーマットに従うものである、請求項１に記載の方法。
【請求項１５】
コンピュータ処理によって、同一のスキーマが適用される複数の電子化された構造化文書を分類するための方法であって、コンピュータが、
分類対象である構造化文書から、１以上の変動部分の特徴値を取得するステップと、
前記取得された特徴値をルールに適用して、前記取得された特徴値を有する構造化文書を分類するステップであって、前記ルールは、前記分類対象である構造化文書の変数部分の特徴値に基づいて当該分類対象である構造化文書がどのクラスタ化された構造化文書の集合に属するかを決定するためのルールである、前記分類するステップと
を実行することを含む、前記方法。
【請求項１６】
コンピュータ処理によって、同一のスキーマが適用される複数の電子化された構造化文書から、特定の構造化文書に類似している構造化文書を検索するための方法であって、前記コンピュータが、
前記特定の構造化文書から、１以上の変動部分の特徴値を取得し、当該取得された特徴値をルールに適用して第１の結果を得るステップと、
検索対象である複数の構造化文書それぞれから、１以上の変動部分の特徴値を取得し、当該取得された特徴値をＸＭＬ文書ごとに前記ルールに適用して第２の結果を得るステップと、
ＸＭＬ文書ごとに、前記第２の結果を前記第１の結果と比較して、前記特定の構造化文書に類似している構造化文書を抽出するステップと
を実行することを含み、前記ルールは、前記特定の構造化文書又は前記検索対象である構造化文書の変数部分の特徴値に基づいて当該特定の構造化文書又は当該検索対象である構造化文書がどのクラスタ化された構造化文書の集合に属するかを決定するためのルールである、前記方法。
【請求項１７】
コンピュータ処理によって、同一のスキーマが適用される電子化された構造化文書が特定の構造化文書に類似しているかどうかを検査するための方法であって、前記コンピュータが、
前記特定の構造化文書から、１以上の変動部分の特徴値を取得し、当該取得された特徴値をルールに適用して第１の結果を得るステップと、
検査対象である構造化文書から、１以上の変動部分の特徴値を取得し、当該取得された特徴値を前記ルールに適用して第２の結果を得るステップと、
前記第２の結果を前記第１の結果と比較して、前記検査対象である構造化文書が前記特定の構造化文書に類似しているかどうかを検査するステップと
を実行することを含み、前記ルールは、前記特定の構造化文書又は前記検査対象である構造化文書の変数部分の特徴値に基づいて当該特定の構造化文書又は当該検査対象である構造化文書がどのクラスタ化された構造化文書の集合に属するかを決定するためのルールである、前記方法。
【請求項１８】
コンピュータに請求項１〜１７のいずれか一項に記載の方法の各ステップを実行させるコンピュータ・プログラム。
【請求項１９】
同一のスキーマが適用される複数の電子化された構造化文書を分類するためのルールを生成するためのコンピュータであって、メモリと、前記メモリに接続されたプロセッサとを備えており、前記プロセッサに請求項１〜１４に記載の方法の各ステップを実行させるプログラムを前記メモリに読み出して、前記ルールを生成する、前記コンピュータ。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、一般的には、情報処理技術に関する。より詳細には、本発明は、構造化文書を分類するためのルールを生成するための方法、並びにそのコンピュータ及びコンピュータ・プログラムに関する。また、より詳細には、本発明は、当該生成されたルールを使用して、構造化文書を分類し、検索し又は検査するための方法、並びにそのコンピュータ及びコンピュータ・プログラムに関する。
【背景技術】
【０００２】
近年のＩＴ技術の普及により、企業又は個人が電子データであるコンテンツを作成して、当該コンテンツをインターネット上で交換したり又は公開したりすることが日常的に行われている。多くのコンテンツは、ＸＭＬ、ＨＴＭＬ、ＸＨＴＭＬ及びＳＧＭＬのようなメタ言語のフォーマットに従う電子化された構造化文書として作成され、様々なコンピュータ上で処理される。上記構造化文書については、ＸＭＬ  Ｓｃｈｅｍａ、文書型定義（ＤＴＤ）、ＲＥＬＡＸ（Regular Language description for XML）、ＲＥＬＡＸ  ＮＧ（RELAX Next Generation）、ＮＶＤＬ（Name space-based Validation Dispatching Language）、スキマトロン（Schemaron）のようなスキーマ言語のフォーマットに従って構造化文書の文書構造を定義するスキーマ・データが作成されることがある。
【０００３】
また、近年オフィス・アプリケーションのファイル形式としてＸＭＬが使われており、その例がＯＤＦ（Open Document Format）又はＯＯＸＭＬ（Office Open XML）である。
【０００４】
下記特許文献１は、複数のＸＭＬ文書の類似度検出方法および類似性検出システム、ならびにＸＭＬ文書の統合方法の発明に関する（段落０００１）。当該ＸＭＬ文書の類似度検出方法は、複数のＸＭＬ文書の類似度を検出する方法であって、一のＸＭＬ文書Ｔｂと、他のＸＭＬ文書Ｔｔとの間の類似度を検出するに際して、ＸＭＬ文書Ｔｂと、ＸＭＬ文書Ｔｔとを、それぞれ独立して意味を持つ最大の部分木構造に構成する段階（Ａ）と、前記ＸＭＬ文書Ｔｂを構成する部分木の葉ノードクラスタと、前記ＸＭＬ文書Ｔｔを構成する部分木の葉ノードクラスタとを照合して、照合する葉ノードクラスタの間で同じ内容を有する葉ノードの個数の比率に基づいて部分木間の類似度を求める段階（Ｄ）と、前記部分木間の類似度からＸＭＬ文書間の類似度を求める段階（Ｃ）とを含むことを特徴とする（段落００１１）。
【０００５】
下記特許文献２は、構造化文書データベースに格納されている構造化文書の分析表示方法および、それを用いた構造化文書分析表示装置の発明に関する（段落０００１）。当該構造化文書分析表示方法および装置は、データベースに格納された構造化文書に対して、複数の分析軸に対応してそれぞれ分析条件を設定する手段と、分析用階層情報を生成する手段と、前記分析条件および分析用階層情報に基づき前記構造化文書データベースから構造化文書を検索する手段と、前記検索結果に対して集計を行う手段と、前記集計結果を表示する手段とを具備する分析表示装置であって、前記分析用階層情報は、指定された分析条件の種類に応じて、構造階層情報または概念階層情報の少なくとも一方を基に生成されることを特徴とする（段落００３６）。
【０００６】
下記特許文献３は、サーチ結果内の諸文書にわたる文脈要約情報を決定する方法の発明に関する（段落０００１）。当該方法は、一致文書について各文書のクエリー依存サブセクションを選択するステップと、この文書サブセクションに関連する文書特性を選択するステップと、結果セットにわたる文書特性についての要約情報を計算するステップとを含むことを特徴とする（段落０００６）。
【０００７】
下記特許文献４は、大規模データの解析における前処理方法及び前処理システムの発明に関する（段落０００１）。特許文献４は、ＸＭＬデータから、当該ＸＭＬデータの属性を葉ノードあるいは非葉ノードとし、属性値を含まず前記属性間の関係を表現し、ノード間の冗長な親子関係をマージして最適化したツリー構造である階層ユニットツリーを作成するステップと、前記階層ユニットツリーに対して変更を加えるステップと、前記階層ユニットツリーに対して加えられた変更を反映するように前記ＸＭＬデータを変換するステップとを含むことを特徴とするデータマイニングにおける前処理方法を記載する（請求項１）。
【０００８】
下記特許文献５は、構造化文書の検索を行う構造化文書検索システムの発明に関する（段落０００１）。特許文献５は、１件の文書が複数の論理構造で構成される構造化文書を検索する構造化文書検索システムにおいて、検索時に一括して参照される可能性の高い文字列データに所定のインデックスグループ識別子を付与して文書登録し、インデックスグループ識別子の等しいインデックスデータを用いて文書検索を行うことを記載する（段落００２６）。
【０００９】
下記特許文献６は、階層化された論理構造をもつ構造化文書データベースの発明に関する（段落０００１）。特許文献６は、複数の要素データをそれぞれ含む複数の構造化データを複数の記憶エリアのそれぞれに記憶するものであって、その際に、（１）前記複数の構造化データ中での出現頻度が第１の閾値以上の要素データに対し、前記複数の記憶エリアのそれぞれにおける記憶位置を定めるエレメントＩＤを決定し、（２）前記複数の構造化データのうちの１つである第１の構造化データに含まれる要素データ群のうち、前記エレメントＩＤの決定された各要素データを、前記複数の記憶エリアのうち前記第１の構造化データを記憶するための第１の記憶エリアの当該エレメントＩＤに対応する記憶位置に記憶することを記載する（段落００１４）。
【００１０】
下記特許文献７は、大量の構造化文書を、階層化された論理構造を持つ構造化文書データベース群で分散配置して格納、管理する構造化文書管理システム、構造化文書検索方法、検索装置、および文書管理装置の発明に関する（段落０００１）。当該検索装置は、前記論理構造ごとに、前記論理構造に対応する前記構造化文書内の構造要素と値に関する統計情報を記憶する構造情報記憶手段と、前記統計情報に関する条件と、構造要素と値から構成される文字列を表現する表現形式とを対応づけた規則を記憶する規則記憶手段と、ネットワークに接続されたクライアント端末からの前記構造化文書の検索要求に基づいて、前記構造化文書に対する検索処理の実行プランを生成するプラン生成手段と、生成した前記実行プランの検索対象となる前記論理構造に対応する前記統計情報を前記構造情報記憶手段から取得する取得手段と、取得した前記統計情報が満たす前記条件に対応する前記表現形式を前記規則記憶手段から取得して前記実行プランに対応づける対応づけ手段と、前記表現形式を対応づけた前記実行プランを前記文書管理装置に送信するプラン送信手段と、前記実行プランの実行結果である検索結果を前記文書管理装置から受信する結果受信手段と、前記検索結果を前記クライアント端末に送信する第１結果送信手段とを備えることを特徴とする（段落００１５）。
【００１１】
下記特許文献８は、文字列のパターンを効率的に検索するための方法およびシステムの発明に関する（段落０００１）。特許文献８は、パターン・マッチング・アプリケーション内の状態マシン・アルゴリズムの状態表を作成することを記載する（段落００１３）。
【先行技術文献】
【特許文献】
【００１２】
【特許文献１】特開２００７−５２５５６号公報
【特許文献２】特開２００４−１１８３７９号公報
【特許文献３】特開２００８−５４１２２３号公報
【特許文献４】特開２００３−３０２２７号公報
【特許文献５】特開２０００−３３６６号公報
【特許文献６】特開２００５−２２７８５１号公報
【特許文献７】特開２００８−８４１１３号公報
【特許文献８】特開２００８−５０７７８９号公報
【非特許文献】
【００１３】
【非特許文献１】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
【非特許文献２】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)
【非特許文献３】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)
【非特許文献４】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)
【発明の概要】
【発明が解決しようとする課題】
【００１４】
オフィス・アプリケーション（例えば、文書作成、表計算、プレゼンテーションの各ソフト）のファイルの分類は、例えば、ＤＬＰ（Data Loss Prevention又はData Leak Prevention）の分野において重要である。オフィス・アプリケーションの保存形式の一つがメタ言語のフォーマットに従う構造化文書である。構造化文書の一つであるＸＭＬ文書は、テキスト・ファイルであるので、テキスト・マイニングの手法を用いてそのＸＭＬ文書の分類をすることができる。しかし、テキスト・マイニングによる分類はテキスト表現に関しての分類であり、ＸＭＬの木構造は意識されていない。また、ＸＭＬは木構造である為に、ＸＭＬ文書の分類のためにグラフ・マイニングと呼ばれる手法を用いることができる。グラフ・マイニングでは、例えば、グラフ同士のカーネル関数を定義する（下記非特許文献１を参照）。しかし、このグラフ・マイニングの手法では、１対１のグラフの距離を計算するために、多数の未知文書を幾つかのクラスタに分類する場合には計算時間が大きくなってしまう。そこで、本発明は、ＸＭＬ文書のような構造化文書を効率的に分類するためのルールを生成するための方法、並びにコンピュータ及びコンピュータ・プログラムを提供することを目的とする。また、本発明は、その生成されたルールを使用して、構造化文書を分類し、検索し又は検査するための方法、並びにそのコンピュータ及びコンピュータ・プログラムを提供することを目的とする。
【課題を解決するための手段】
【００１５】
本発明は、上記目的を達成するために、スキーマ、例えばＸＭＬスキーマ、文書型定義（ＤＴＤ）、ＲＥＬＡＸ（Regular Language description for XML）、ＲＥＬＡＸ  ＮＧ（RELAX Next Generation）、ＮＶＤＬ（Name space-based Validation Dispatching Language）、スキマトロン（Schemaron）のいずれかのようなスキーマ言語のフォーマットに従うスキーマの情報を用いてルールを作成する。詳細には、一つのスキーマ（例えば、ＸＭＬスキーマ）の個々の定義に対して、実際の構造化文書（例えば、ＸＭＬ文書）がどのようになっているのかの情報を用いてルールを作成する。
【００１６】
本発明は、同一のスキーマが適用される複数の電子化された構造化文書を分類するためのルールを生成するための方法を提供する。当該方法は、スキーマを走査して、当該スキーマによって定義される１以上の変動部分を特定するステップと、上記特定された変動部分の特徴値を上記複数の構造化文書それぞれから取得し、当該取得された特徴値それぞれを当該特徴値が取得された構造化文書に関連付けるステップと、上記構造化文書に関連付けられた上記特徴値に基づいて、上記ルールを生成するステップとを含む。
【００１７】
本発明の１つの実施態様において、構造化文書が、ＸＭＬ、ＨＴＭＬ、ＸＨＴＭＬ、ＳＧＭＬ、ＯＤＦ（Open Document Format）、ＯＯＸＭＬ（Office Open XML）のいずれかのようなメタ言語のフォーマットに従うものであることが好ましい。また、本発明の１つの実施態様において、スキーマが、ＸＭＬスキーマ、文書型定義（ＤＴＤ）、ＲＥＬＡＸ（Regular Language description for XML）、ＲＥＬＡＸ  ＮＧ（RELAX Next Generation）、ＮＶＤＬ（Name space-based Validation Dispatching Language）、スキマトロン（Schemaron）のいずれかのようなスキーマ言語のフォーマットに従うものであることが好ましい。
【００１８】
本発明の１つの実施態様において、上記変動部分を特定するステップが、上記スキーマによって定義される木構造に含まれる１以上の要素、又は上記スキーマによって定義される１以上の属性を特定するステップを含み、及び、上記関連付けるステップが、上記特定された要素又は属性の特徴値を上記複数の構造化文書それぞれから取得し、当該取得された特徴値それぞれを当該特徴値が取得された構造化文書に関連付けるステップを含みうる。
【００１９】
本発明の１つの実施態様において、上記特定された要素の特徴値が、上記木構造に含まれる要素（すなわち、上記構造化文書中の要素）の繰り返し数、上記木構造に含まれる単純型要素（すなわち、上記構造化文書中の単純型要素）のテキスト部分のサイズ、上記木構造に含まれる、数値を表す単純型要素（すなわち、上記構造化文書中の、数値を表す単純型要素）の数値、又は上記木構造に含まれる選択可能な要素（すなわち、上記構造化文書中に含まれる選択可能な要素）に関連付けられた値でありうる。また、本発明の１つの実施態様において、上記要素の繰り返し数が、子要素の出現頻度でありうる。
【００２０】
本発明の１つの実施態様において、上記特定された要素の特徴値が、上記スキーマ上で同じ一つの定義に属している少なくとも２以上のノードに含まれる要素の繰り返し数の平均値、上記スキーマ上で同じ一つの定義に属している少なくとも２以上のノードに含まれる単純型要素のテキスト部分のサイズの平均値、上記スキーマ上で同じ一つの定義に属している少なくとも２以上のノードに含まれる、数値を表す単純型要素の数値の平均値、又は上記スキーマ上で同じ一つの定義に属している少なくとも２以上のノードに含まれる選択可能な要素に関連付けられた値の平均値である。
【００２１】
本発明の１つの実施態様において、上記特定された属性の特徴値が、上記木構造に含まれる属性のある／なしに関連付けられた値、又は上記木構造に含まれる属性のテキスト部分のサイズでありうる。
【００２２】
本発明の１つの実施態様において、上記ルールを生成するための方法は、上記特定された要素のうちの少なくとも１つの要素を木構造の絶対パスに関連付けるステップをさらに含み、上記関連付けるステップが、上記絶対パスに関連付けられた要素の特徴値を上記複数の構造化文書から取得し、当該取得された特徴値それぞれを当該特徴値が取得された構造化文書に関連付けるステップを含みうる。また、本発明の１つの実施態様において、上記要素を特定するステップが、上記スキーマを走査して、最初にある要素を選択するステップと、上記選択された最初にある要素に、当該要素を特定するための名称を特徴名（以下、第１の特徴名ともいう）として付与するステップとをさらに含みうる。また、本発明の１つの実施態様において、上記関連付けるステップが、上記構造化文書の上記第１の特徴名に、当該第１の特徴名に対応する特徴値を関連付けるステップをさらに含みうる。
【００２３】
本発明の１つの実施態様において、上記要素を特定するステップが、上記スキーマを走査して、要素を特定するための名称である上記特徴名が記録されておらず且つ上記選択された要素の次に最初にある要素を選択するステップと、上記選択された次に最初にある要素に、当該要素を特定するための名称を特徴名（以下、第２の特徴名ともいう）として付与するステップとをさらに含みうる。本発明の１つの実施態様において、上記関連付けるステップが、上記構造化文書の上記第２の特徴名に、当該第２の特徴名に対応する特徴値を関連付けるステップをさらに含みうる。
【００２４】
本発明の１つの実施態様において、上記ルールを生成するステップが、構造化文書に関連付けられた特徴値を機械学習手法、データマイニング手法、又は統計的手法を使用してクラスタ化ルールを生成するステップを含みうる。本発明の１つの実施態様において、クラスタ化ルールが、クラスタ分析、主成分分析、ベクトル量子化、自己組織化マップ、強化学習、教師なし学習、ｋ−ｍｅａｎｓ法、又は期待値最大化法を使用して生成されうる。
【００２５】
また、本発明は、同一のスキーマが適用される複数の電子化された構造化文書を分類するための方法を提供する。当該方法は、１以上の変動部分の特徴値を分類対象である構造化文書から取得するステップと、上記取得された特徴値を、上記分類対象である構造化文書の変数部分の特徴値に基づいて当該分類対象である構造化文書がどのクラスタ化された構造化文書の集合に属するかを決定するためのルールであるに適用して、上記取得された特徴値を有する構造化文書を分類するステップと
を含む。当該ルールは、上記方法によって生成されたルールである。
【００２６】
また、本発明は、同一のスキーマが適用される複数の電子化された構造化文書から、特定の構造化文書に類似している構造化文書を検索するための方法を提供する。当該方法は、１以上の変動部分の特徴値を上記特定の構造化文書から取得し、当該取得された特徴値を下記ルールに適用して第１の結果を得るステップと、１以上の変動部分の特徴値を検索対象である複数の構造化文書それぞれから取得し、当該取得されたそれぞれの特徴値を下記ルールに適用して第２の結果を得るステップと、ＸＭＬ文書ごとに、上記第２の結果を上記第１の結果と比較して、上記特定の構造化文書に類似している構造化文書を抽出するステップとを含む。当該ルールは、上記特定の構造化文書又は上記検索対象である構造化文書の変数部分の特徴値に基づいて当該特定の構造化文書又は当該検索対象である構造化文書がどのクラスタ化された構造化文書の集合に属するかを決定するためのルールである。また、当該ルールは、上記方法によって生成されたルールである。
【００２７】
また、本発明は、同一のスキーマが適用される電子化された構造化文書が特定の構造化文書に類似しているかどうかを検査するための方法を提供する。当該方法は、１以上の変動部分の特徴値を上記特定の構造化文書から取得し、当該取得された特徴値を下記ルールに適用して第３の結果を得るステップと、１以上の変動部分の特徴値を検査対象である構造化文書から取得し、当該取得された特徴値を下記ルールに適用して第４の結果を得るステップと、上記第４の結果を上記第３の結果と比較して、上記検査対象である構造化文書が上記特定の構造化文書に類似しているかどうかを検査するステップとを含む。当該ルールは、上記特定の構造化文書又は前記検査対象である構造化文書の変数部分の特徴値に基づいて当該特定の構造化文書又は当該検査対象である構造化文書がどのクラスタ化された構造化文書の集合に属するかを決定するためのルールである。
【００２８】
以上において、同一のスキーマが適用される複数の電子化された構造化文書を分類するためのルールを生成するための方法、及び、当該ルールを使用して上記構造化文書を分類し、検索し又は検査するための方法として本発明の概要を説明したが、本発明は、コンピュータ・プログラム、プログラム製品、ソフトウェア、ソフトウェア製品として把握することもできる。プログラム製品ないしソフトウェア製品は、例えば、前述のプログラム、ソフトウェアを格納する記憶媒体、又はプログラム、ソフトウェアを伝送する伝送媒体を含めることができる。
【００２９】
また、本発明は、同一のスキーマが適用される複数の電子化された構造化文書を分類するためのルールを生成するためのコンピュータを提供する。本発明の１つの実施態様において、当該コンピュータは、メモリと、当該メモリに接続されたプロセッサとを備えており、当該プロセッサに上記方法の各ステップを実行させるプログラムを上記メモリ内に読み出して、上記ルールを生成する。本発明の他の実施態様において、当該コンピュータは、上記スキーマを走査して、当該スキーマによって定義される１以上の変動部分を特定する特定部と、上記特定された変動部分の特徴値を上記複数の構造化文書それぞれから取得し、当該取得された特徴値それぞれを当該特徴値が取得された構造化文書に関連付ける取得部と、上記構造化文書に関連付けられた上記特徴値に基づいて、上記ルールを生成するルール生成部とを備えている。
【００３０】
本発明の１つの実施態様において、上記特定部が、上記スキーマによって定義される木構造に含まれる１以上の要素、又は上記スキーマによって定義される１以上の属性を特定する。また、上記取得部が、上記特定された要素又は属性の特徴値を上記複数の構造化文書それぞれから取得し、当該取得された特徴値それぞれを当該特徴値が取得された構造化文書にさらに関連付ける。
【００３１】
また、本発明は、同一のスキーマが適用される複数の電子化された構造化文書を分類するためのコンピュータを提供する。当該コンピュータは特定部、取得部、及び分類部を備えている。特定部は、上記スキーマを走査して、分類対象である複数の構造化文書中の、当該スキーマによって定義される１以上の変動部分を特定する。取得部は、分類対象である構造化文書から、１以上の変動部分の特徴値を取得する。分類部は、当該取得された特徴値を上記ルール生成部によって生成されたルールに適用して、上記取得された特徴値を有する構造化文書を分類する。
【００３２】
また、本発明は、同一のスキーマが適用される複数の電子化された構造化文書から、特定の構造化文書に類似している構造化文書を検索するためのコンピュータを提供する。当該コンピュータは、特定部、取得部、及び検索部を備えている。特定部は、上記スキーマを走査して、特定の構造化文書及び検索対象である複数の構造化文書中の、当該スキーマによって定義される１以上の変動部分をそれぞれ特定する。取得部は、上記特定の構造化文書から上記特定された変動部分の特徴値（以下、第１の特徴値ともいう）を取得し、且つ、上記検索対象である複数の構造化文書それぞれから上記特定された変動部分の特徴値（以下、第２の特徴値ともいう）を取得する。検索部は、上記第１の特徴値を上記ルール生成部によって生成されたルールに適用して第１の結果を取得し、且つ、上記第２の特徴値をＸＭＬ文書ごとに上記ルール生成部によって生成されたルールに適用して第２の結果を取得する。検索部は、上記第２の結果を上記第１の結果と比較して、上記特定の構造化文書に類似している構造化文書を抽出する。
【００３３】
また、本発明は、同一のスキーマが適用される電子化された構造化文書が特定の構造化文書に類似しているかどうかを検査するためのコンピュータを提供する。当該コンピュータは、特定部、取得部、及び検査部を備えている。特定部は、上記スキーマを走査して、特定の構造化文書及び検査対象である複数の構造化文書中の、当該スキーマによって定義される１以上の変動部分を特定する。取得部は、上記特定の構造化文書から上記特定された要素の特徴値（以下、第３の特徴値ともいう）を取得し、且つ、上記検査対象である構造化文書から上記特定された要素の特徴値（以下、第４の特徴値ともいう）を取得する。検査部は、上記第３の特徴値を上記ルール生成部によって生成されたルールに適用して第３の結果を取得し、且つ上記第４の特徴値を上記ルール生成部によって生成されたルールに適用して第４の結果を取得する。検索部は、上記第４の結果を上記第３の結果と比較して、上記検査対象である構造化文書が特定の構造化文書に類似しているかどうかを検査する。
【００３４】
上記の発明の概要は、本発明の必要な特徴の全てを列挙したものではなく、これらの構成要素のコンビネーションまたはサブコンビネーションもまた、発明となり得ることに留意すべきである。
【００３５】
本発明の実施形態において使用されるコンピュータの各ハードウェア構成要素を、複数のマシンと組み合わせ、それらに機能を配分し実施する等の種々の変更は当業者によって容易に想定され得ることは勿論である。それらの変更は、当然に本発明の思想に包含される概念である。ただし、これらの構成要素は例示であり、そのすべての構成要素が本発明の必須構成要素となるわけではない。
【００３６】
また、本発明は、ハードウェア、ソフトウェア、またはハードウェア及びソフトウェアの組み合わせとして実現可能である。ハードウェアとソフトウェアの組み合わせによる実行において、所定のプログラムを有するデータ処理システムにおける実行が典型的な例として挙げられる。かかる場合、該所定プログラムが該データ処理システムにロードされ実行されることにより、該プログラムは、データ処理システムを制御し、本発明にかかる処理を実行させる。このプログラムは、任意の言語・コード・表記によって表現可能な命令群から構成される。そのような命令群は、システムが特定の機能を直接、または１．他の言語・コード・表記への変換、２．他の媒体への複製、のいずれか一方もしくは双方が行われた後に、実行することを可能にするものである。
【００３７】
また、本発明は、そのようなプログラム自体のみならず、プログラムを記録した媒体もその範囲に含むものである。本発明の機能を実行するためのプログラムは、フレキシブル・ディスク、ＭＯ、ＣＤ−ＲＯＭ、ＤＶＤ、ハードディスク装置、ＲＯＭ、ＭＲＡＭ、ＲＡＭ等の任意のコンピュータ読み取り可能な記録媒体に格納することができる。かかるプログラムは、記録媒体への格納のために、通信回線で接続する他のデータ処理システムからダウンロードしたり、他の記録媒体から複製したりすることができる。また、かかるプログラムは、圧縮し、または複数に分割して、単一または複数の記録媒体に格納することもできる。また、様々な形態で、本発明を実施するプログラム製品を提供することも勿論可能であることにも留意されたい。
【発明の効果】
【００３８】
本発明では、スキーマの個々の定義に対して、実際の構造化文書がどのようになっているのかの情報を用いることにより、構造化文書の木構造を意識しつつ、且つ高速に分類を行うことが可能である。また、当該木構造から得られる特徴値に対して既存の機械学習手法、データマイニング手法、又は統計的手法を活用して、構造化文書を高速に分類し、検索し及び検査することが可能である。
【図面の簡単な説明】
【００３９】
【図１】本発明の実施形態に従うコンピュータを実現するための情報処理装置のハードウェア構成の一例を示した図である。
【図２】図１に従うハードウェア構成を有し、本発明の実施形態に従うコンピュータの機能ブロック図を示す。
【図３】本発明の実施態様において使用されうるスキーマの例を示す。
【図４】本発明の実施態様において使用されうる、図３で示されるスキーマに対する構造化文書の例（図４Ａ）及び当該構造化文書を木構造で表現した場合の例（図４Ｂ）を示す。
【図５】本発明の実施態様に従う、図４Ａに示される構造化文書及びその他の構造化文書を分類するために使用される特徴名及びその特徴値を示すテーブルである。
【図６】本発明の実施態様に従い、ＸＭＬスキーマを読み込み、特徴名を列挙するための処理のフローチャートを示す。
【図７】本発明の実施態様に従い、ＸＭＬ文書毎に、ＸＭＬスキーマの<element>定義に対して繰り返し数を特徴値として取得し、及び単純型の定義に対してバイト数を特徴値として取得するための処理のフローチャートを示す。
【図８】本発明の実施態様に従い、図７で取得された特徴値から、データマイニングの手法を適用してルールを作成するための処理のフローチャートを示す。
【図９】本発明の実施態様に従い、図８で作成されたルールを使用して、ＸＭＬ文書を分類するための処理のフローチャートを示す。
【図１０】本発明の実施態様に従い、図８で作成されたルールを使用して、特定のＸＭＬ文書に類似しているＸＭＬ文書を検索対象であるＸＭＬ文書から抽出するための処理のフローチャートを示す。
【図１１】本発明の実施態様に従い、図８で作成されたルールを使用して、検査対象であるＸＭＬ文書が特定のＸＭＬ文書に類似しているかどうかを検査するための処理のフローチャートを示す。
【図１２】本発明の実施態様に従う、図３に示されるＸＭＬコード及びその他のＸＭＬコードを分類するために使用される、ＸＰａｔｈ表現に対する特徴値を示すテーブルである。
【図１３】本発明の実施態様に従い、図１２に示されるＸｐａｔｈ表現を使用して、同じ子ノード名を有し、同じ親ノード名を有する親ノード下にあるが、当該親ノードが別のノード下にあることを区別することを可能にすることを示す。
【図１４】本発明の実施態様に従い、図１２に示されるＸｐａｔｈ表現を使用して、同じ子ノード名を有するが、異なる親ノード名を有する親ノード下にあることを区別することを可能にすることを示す。
【図１５】本発明の実施態様に従い、図３で取得された特徴値からＸＭＬ文書を抽出するための具体例を説明するためのＸＭＬ文書である。
【図１６】本発明の実施態様に従う、図１５のＸＭＬ文書に対するＸＭＬスキーマである。
【図１７】本発明の実施態様である図８に記載されたフローチャートに従い生成されたルールを用いて、ＸＭＬ文書の冒頭文からどのクラスタに近いかを判定するために使用されるオートマトンの例を示す。
【図１８】本発明の実施態様である図８に記載されたフローチャートに従い生成されたルールを用いて、ＤＬＰのために類似文書を検出又は検査するために使用されるＯＤＦ文書の例を示す。
【図１９】本発明の実施態様である図９に記載されたフローチャートに従いＸＭＬ文書を予めクラスタに分類し、そしてクラスタ毎に分割手法を予測してＸＭＬ文書を分割するための処理のフローチャートを示す。
【図２０】本発明の実施態様において使用される、属性、属性の定義、要素の定義の例を示す。
【発明を実施するための形態】
【００４０】
以下、本発明を実施するための最良の形態を図面に基づいて詳細に説明するが、以下の実施形態は特許請求の範囲にかかる発明を限定するものでなく、また実施形態の中で説明されている特徴の組み合わせの全てが発明の解決手段に必須であるとは限らない。また、以下の実施形態において、種々の変更または改良を加えることが可能であることが当業者に明らかである。
【００４１】
また、以下に示す本発明の実施形態では、ＸＭＬ文書及びＸＭＬスキーマを例として説明するが、上記した構造化文書及び上記したスキーマを用いてもよいことは当業者に明らかである。そのような変更または改良を加えた形態はまた当然に本発明の技術的範囲に含まれる。
【００４２】
また、本発明は多くの異なる態様で実施することが可能であり、実施の形態の記載内容に限定して解釈されるべきものではない。また、実施の形態の中で説明されている特徴の組み合わせの全てが発明の解決手段に必須とは限らないことに留意されたい。実施の形態の説明の全体を通じて同じ要素には同じ番号を付している。
【００４３】
図１は、本発明の実施形態に従うコンピュータを実現するための情報処理装置のハードウェア構成の一例を示した図である。
コンピュータ（１０１）は、ＣＰＵ（１０２）とメイン・メモリ（１０３）とを備えており、これらはバス（１０４）に接続されている。ＣＰＵ（１０２）は好ましくは、３２ビット又は６４ビットのアーキテクチャに基づくものであり、例えば、インテル社のＣｏｒｅ  ｉ（商標）シリーズ、Ｃｏｒｅ  ２（商標）シリーズ、Ａｔｏｍ（商標）シリーズ、Ｘｅｏｎ（商標）シリーズ、Ｐｅｎｔｉｕｍ（登録商標）シリーズ、Ｃｅｌｅｒｏｎ（登録商標）シリーズ、ＡＭＤ社のＰｈｅｎｏｍ（商標）シリーズ、Ａｔｈｌｏｎ（商標）シリーズ、Ｔｕｒｉｏｎ（商標）シリーズ又はＳｅｍｐｒｏｎ（商標）が使用されうる。バス（１０４）には、ディスプレイ・コントローラ（１０５）を介して、ディスプレイ（１０６）、例えば液晶ディスプレイ（ＬＣＤ）が接続されうる。ディスプレイ（１０６）は、コンピュータの管理のために、通信回線を介してネットワークに接続されたコンピュータについての情報と、そのコンピュータ上で動作中のソフトウェアについての情報を、適当なグラフィック・インタフェースで表示するために使用される。バス（１０４）にはまた、ＳＡＴＡ又はＩＤＥコントローラ（１０７）を介して、ディスク（１０８）、例えばハードディスク又はシリコン・ディスクと、ドライブ（１０９）、例えばＣＤ、ＤＶＤ又はＢＤドライブとが接続されうる。バス（１０４）にはさらに、キーボード・マウスコントローラ（１１０）又はＵＳＢバス（図示せず）を介して、キーボード（１１１）及びマウス（１１２）が接続されうる。
【００４４】
ディスク（１０８）には、オペレーティング・システム、Ｊ２ＥＥなどのＪａｖａ（登録商標）処理環境、Ｊａｖａ（登録商標）アプリケーション、Ｊａｖａ（登録商標）仮想マシン（ＶＭ）、Ｊａｖａ（登録商標）実行時（ＪＩＴ）コンパイラを提供するプログラム、その他のプログラム、及びデータが、メイン・メモリにロード可能に記憶されている。
ドライブ（１０９）は、必要に応じて、ＣＤ−ＲＯＭ、ＤＶＤ−ＲＯＭ又はＢＤからプログラムをディスク（１０８）にインストールするために使用される。
【００４５】
通信インタフェース（１１４）は、例えばイーサネット（登録商標）・プロトコルに従う。通信インタフェース（１１４）は、通信コントローラ（１１３）を介してバス（１０４）に接続され、コンピュータ（１０１）を通信回線（１１５）に物理的に接続する役割を担い、コンピュータ（１０１）のオペレーティング・システムの通信機能のＴＣＰ／ＩＰ通信プロトコルに対して、ネットワーク・インタフェース層を提供する。なお、通信回線は、有線ＬＡＮ環境、又は例えばＩＥＥＥ８０２．１１ａ／ｂ／ｇ／ｎなどの無線ＬＡＮ接続規格に基づく無線ＬＡＮ環境であってもよい。
【００４６】
以上の説明により、本発明の実施の形態に従うコンピュータは、通常のパーソナル・コンピュータ、ワークステーション、メインフレームなどの情報処理装置、または、これらの組み合わせを含むシステムによって実現されることが容易に理解されるであろう。
【００４７】
本発明の実施の形態のデータ処理システムは、マイクロソフト・コーポレーションが提供するＷｉｎｄｏｗｓ（商標）オペレーティング・システム、アップル・コンピュータ・インコーポレイテッドが提供するＭａｃＯＳ（商標）、Ｘ  Ｗｉｎｄｏｗ  Ｓｙｓｔｅｍを備えるＵＮＩＸ（商標）系システム（たとえば、インターナショナル・ビジネス・マシーンズ・コーポレーション（商標）が提供するＡＩＸ（商標））のような、グラフィカル・ユーザ・インターフェース（ＧＵＩ）マルチウィンドウ環境をサポートするオペレーティング・システムを採用しうる。
【００４８】
以上から、本発明の実施の形態において使用されるデータ処理システムは、特定のマルチウィンドウ・オペレーティング・システム環境に限定されるものではないことを理解することができるであろう。
【００４９】
図２は、図１に従うハードウェア構成を有し、本発明の実施形態に従うコンピュータの機能ブロック図を示す。
本発明の実施形態のコンピュータ（２０１）は、図１に示す例えばＣＰＵ（１０２）、メイン・メモリ（１０３）及び記憶装置（１０８）に加えて、特定部（２１１）、取得部（２１２）及びルール生成部（２１３）の各構成要素を備えている。また、コンピュータ（２０１）は、ＸＭＬスキーマ記憶部（２２１）、ＸＭＬ文書記憶部（２２２）及び特徴値テーブル（２３１）の各構成要素を備えうる。また、コンピュータ（２０１）は、ルール記憶部を備えうる。また、コンピュータ（２０１）は、分類部（２４１）、検索部（２４２）及び検査部（２４３）の少なくとも１つの構成要素をさらに備えうる。なお、コンピュータ（２０１）とは別のコンピュータ（図示せず）が、ルール記憶部（２２３）と、分類部（２４１）、検索部（２４２）及び検査部（２４３）の少なくとも１つとを備えていてもよい。なお、図１の機能ブロック図に示す各構成要素は、図１に例示したハードウェア構成を有するコンピュータ（１０１）において、ディスク（１０８）などに格納されたオペレーティング・システムやオーサリング・ソフトウェアなどのコンピュータ・プログラムをメイン・メモリ（１０３）上にロードした上でＣＰＵ（１０２）に読み込ませ、ハードウェア資源とソフトウェアを協働させることによって実現することができる。
【００５０】
特定部（２１１）は、スキーマを走査して、当該スキーマによって定義される１以上の変動部分を特定する。スキーマの個々の定義には、一意に決まる部分と、変動のある部分（変動部分である）とが存在する。本発明の実施態様において、この変動部分について、ＸＭＬ文書がどのような構造であるかの情報をＸＭＬスキーマと関連付けて記録する。特定部（２１１）は、変動部分として、例えば、スキーマによって定義される木構造に含まれる１以上の要素、又はスキーマによって定義される１以上の属性を特定しうる。
【００５１】
要素は、例えば、ＸＭＬスキーマの場合、<xs:element>タグ又は<xs:complex>タグなどの定義（以下、単に、<element>定義という場合がある）を用いて定義されうる（下記図３を参照されたい）。また、要素は、例えば、単純型要素を包含する。
【００５２】
属性は、例えば、ＸＭＬスキーマの場合、<A attr>タグで定義されうる（下記図２０の「Ａ．属性の例」、及び「Ｂ．属性の定義例」を参照されたい）。
【００５３】
取得部（２１２）は、特定部（２１１）において特定された要素の特徴値を１又は複数の構造化文書それぞれから取得する。特徴値は、スキーマの変動部分から得られる値である。
【００５４】
変動部分が要素である場合、当該要素の特徴値は、例えば、上記木構造に含まれる要素（すなわち、上記構造化文書中の要素）の繰り返し数、単純型要素のテキスト部分のサイズ、数値を表す単純型要素の数値、又は上記木構造に含まれる選択可能な要素（すなわち、上記構造化文書中に含まれる選択可能な要素）に関連付けられた値を包含する。特に、変動部分が単純型要素である場合、当該単純型要素の特徴値は、当該単純型要素のテキスト部分のサイズ、又は数値を表す単純型要素の数値を包含する。また、当該要素の特徴値は、例えば、上記スキーマ上で同じ一つの定義に属している少なくとも２以上のノードに含まれる要素の繰り返し数の平均値、上記スキーマ上で同じ一つの定義に属している少なくとも２以上のノードに含まれる単純型要素のテキスト部分のサイズの平均値、上記スキーマ上で同じ一つの定義に属している少なくとも２以上のノードに含まれる、数値を表す単純型要素の数値の平均値、又は上記スキーマ上で同じ一つの定義に属している少なくとも２以上のノードに含まれる選択可能な要素に関連付けられた値の平均値である。
【００５５】
変動部分が属性である場合、当該属性の特徴値は、例えば、上記木構造に含まれる属性のある／なしに関連付けられた値、又は当該属性のテキスト部分のサイズを包含する。
【００５６】
木構造に含まれる要素の繰り返し数は、例えば<element>定義である<xs:element>タグ又は<xs:complex>タグに対するその繰り返し数であり、例えば木構造における子要素の出現頻度である（図３を参照されたい）。
【００５７】
選択可能な要素の関連付けられた値とは、下記図２０Ｃに示されているように、例えば<xs:choice>に対してどれが選ばれたかによって定められる値である（２００３）。図２０Ｃに示すように、<xs:choice>において、”element name”として”x”、”y”、”z”が選択可能である場合に、例えば”x”に値０、”y”に値１、”z”に値２を特徴値として関連付けおくか、又は”x”、”y”及び”z”に値０又は１のいずれかを特徴値として関連付けておく。なお、後者の場合の特徴値は、”x”、”y”及び”z”の各繰り返し数と同等である。
【００５８】
単純型要素のテキスト部分のサイズは、属性のテキスト部分のサイズであり、例えば、xsd:string又はxsd:intなどの文字数又はバイト数でありうる。属性のテキスト部分のサイズは、例えば、下記図２０Ａに示されているように、属性attr1のテキスト部分”abcdefghij”の文字サイズが１０であるので（２００１）、特徴値は１０である。
【００５９】
数値を表す単純型要素の数値は、数値そのものである。
【００６０】
属性のある／なしに関連付けられた値は、例えば、構造化文書中にスキーマで指定された属性ありの場合が１であり、属性なしの場合が０である。属性は、例えば、下記図２０Ａは属性の例（２００１）を示し、例えば、構造化文書中にスキーマで指定された属性attr1が存在する場合（すなわち、属性あり）は１であり、属性が存在しない場合（すなわち、属性なし）が０である。また、図２０Ｂは属性の定義の例を示し（２００２）、当該属性attr1が省略可能であることを示す。
【００６１】
属性のテキスト部分のサイズは、例えば、図２０Ａに示されているように、造化文書中にスキーマで指定された属性attr1に属するテキスト部分“abcdefghij”のサイズである。図２０Ａの上記例の場合、特徴値は１０である。
【００６２】
変動部分の特徴値はスカラー値であり、本発明の実施態様においてルールを生成するために用いられる。
【００６３】
取得部（２１２）は、当該取得された特徴値それぞれを当該特徴値が取得された構造化文書に関連付ける。
【００６４】
本発明の１つの実施態様として、特定部（２１１）は、スキーマによって定義される木構造に含まれる１以上の要素、又はスキーマによって定義される１以上の属性を特定する。これに対応して、取得部（２１２）は、上記特定された要素又は属性の特徴値を複数の構造化文書それぞれから取得し、当該取得された特徴値それぞれを当該特徴値が取得された構造化文書に関連付ける。
【００６５】
本発明の他の実施態様として、特定部（２１１）は、スキーマを走査して、最初にある要素を選択し、当該選択された最初にある要素に、当該要素を特定するための名称を特徴名（第１の特徴名）として付与しうる。これに対応して、取得部（２１２）は、構造化文書の第１の特徴名に、当該第１の特徴名に対応する特徴値を関連付けうる。
【００６６】
本発明の他の実施態様として、特定部（２１１）は、スキーマを走査して、要素を特定するための名称である特徴名が記録されておらず且つ選択された要素の次に最初にある要素を選択し、当該選択された次に最初にある要素に、当該要素を特定するための名称を特徴名（第２の特徴名）として付与しうる。これに対応して、取得部（２１２）は、構造化文書の第２の特徴名に、当該第２の特徴名に対応する特徴値を関連付けうる。
【００６７】
本発明の他の実施態様として、特定部（２１１）は、特定された要素のうちの少なくとも１つの要素（例えば子要素）を木構造の絶対パス、例えばＸｐａｔｈに関連付けうる。これに対応して、取得部（２１２）は、上記絶対パスに関連付けられた要素の特徴値を１又は複数の構造化文書から取得し、当該取得された特徴値それぞれを当該特徴値が取得された構造化文書に関連付けうる。
【００６８】
特徴値テーブル（２３１）は、特定部（２１１）において特定された要素と、当該要素の特徴値とをＸＭＬ文書ごとに格納するテーブルである。特徴値テーブル（２３１）は、例えば記憶装置内に格納される。特徴値テーブル（２３１）の例が、下記図５及び図１２に示されているので参照されたい。
【００６９】
ルール生成部（２１３）は、特徴値テーブル（２３１）に格納された上記テーブルを読み出して、当該テーブル中の構造化文書に関連付けられた特徴値に基づいて、ルールを生成する。詳細には、ルール生成部（２１３）は、例えば、構造化文書に関連付けられた特徴値を機械学習手法、データマイニング手法、又は統計的手法を使用してクラスタ化ルールを生成する。ルール生成部（２１３）は、例えば、一定数のＸＭＬ文書の訓練データを用いて、当該訓練データを幾つかのクラスタに分類するためのルール（クラスタ化ルールともいう）を作成する。訓練データの数は、そのルールの生成手法、及び構造化文書のデータの分野によって異なりうる。
【００７０】
ルールの生成において、機械学習手法、データマイニング手法、及び統計的手法として、既存の各手法を適宜使用することができる。例えば、クラスタ分析、主成分分析、ベクトル量子化、自己組織化マップ、強化学習、教師なし学習、ｋ−ｍｅａｎｓ法、又は期待値最大化法などが使用されうる。
【００７１】
ルール生成部（２１３）で生成されたルールは、分類対象である構造化文書を分類し、検索対象である構造化文書を検索し、又は検査対象である構造化文書を検査するために使用されうる。構造化文書の分類は分類部（２４１）において、構造化文書の検索は検索部（２４２）において、及び構造化文書の検査は検査部（２４３）において実行される。
【００７２】
ＸＭＬスキーマ記憶部（２２１）は、ＸＭＬスキーマを格納するための記憶装置である。ＸＭＬスキーマは、ＸＭＬ文書の構造を記述する文書である。
【００７３】
ＸＭＬ文書記憶部（２２２）は、処理対象のＸＭＬ文書のデータを格納するための記憶装置である。ＸＭＬ文書は、メタ言語であるＸＭＬ言語を用いて作成された言語に従う電子的な構造化文書である。ＸＭＬ文書の内容は、ＸＭＬ言語の仕様および適用されるＸＭＬスキーマで定義された制約に従わなければならない。本明細書においてＸＭＬ文書及びＸＭＬスキーマの一例を用いて説明がされている、当業者は例えば非特許文献２、３及び４の標準によって定められた仕様に従って、ＸＭＬ文書及びＸＭＬスキーマを適宜準備することができることに留意されたい。また、本明細書を読んだ当業者はその内容を補足、追加、変更等をしてバリエーションを作成することができるので、さらなる詳細な説明は省略する。
【００７４】
ルール記憶部（２２３）は、ルール生成部（２１３）において生成されたルールを格納する。
【００７５】
分類部（２４１）は、同一のスキーマが適用される複数の電子化された構造化文書を分類する。詳細には、分類部（２４１）は、ルール生成部（２１３）で生成された上記ルールをルール記憶部（２２３）から読み出して、当該ルールに、構造化文書から取得された変動部分の特徴値を適用して、上記構造化文書を分類する。
【００７６】
検索部（２４２）は、同一のスキーマが適用される複数の電子化された構造化文書から、特定の構造化文書に類似している構造化文書を検索する。詳細には、検索部（２４２）は、ルール生成部（２１３）で生成された上記ルールをルール記憶部（２２３）から読み出して、当該ルールに、特定の構造化文書から取得された変動部分の特徴値を適用して第１の結果を得る。また、検索部（２４２）は、ルール生成部（２１３）で生成された上記ルールをルール記憶部（２２３）から読み出して、当該ルールに、検索対象である構造化文書から取得された変動部分の特徴値を適用して第２の結果を得る。そして、検索部（２４２）は、第２の結果を第１の結果と比較して、特定の構造化文書に類似している構造化文書を抽出する。
【００７７】
検査部（２４３）は、同一のスキーマが適用される電子化された構造化文書が特定の構造化文書に類似しているかどうかを検査する。詳細には、検査部（２４３）は、ルール生成部（２１３）で生成された上記ルールをルール記憶部（２２３）から読み出して、当該ルールに、特定の構造化文書から取得された要素の特徴値を適用して第３の結果を得る。また、検査部（２４３）は、ルール生成部（２１３）で生成された上記ルールをルール記憶部（２２３）から読み出して、当該ルールに、検査対象である構造化文書から取得された要素の特徴値を適用して第４の結果を得る。そして、検査部（２４３）は、第４の結果を第３の結果と比較して、検査対象である構造化文書が特定の構造化文書に類似しているかどうかを検査する。
【００７８】
図３は、本発明の実施態様において使用されうるスキーマの例を示す。
図３のスキーマ（３０１）は、ＸＭＬスキーマの例である。このＸＭＬスキーマは、下記図４に示す構造化文書（ＸＭＬ文書）を分類するためのルールを生成するために使用される。なお、スキーマ（３０１）において、各行左の数字（１〜１３行）は、説明の便宜上付したものである。
ここで、スキーマにおいて、要素の出現回数（特徴値である）は、例えば、下記の属性で定義されうる：minOccursは要素の最小出現回数を表す；maxOccursは要素の最大出現回数を表す；及び、“unbounded”は、要素の最大出現回数の制限が無いことを表す。そして、出現回数の指定は、例えば、下記のように定義されうる。
【００７９】
出現回数の指定の例
minOccurs=”0”maxOccurs=”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回以上１回以下
maxOccurs=”unbounded”                  ；      １回以上
(指定なし)                               ；      １回（minOccursの定義が無い場合、1回出現するものとされる）
【００８０】
ＸＭＬスキーマ（３０１）は、”Root”という名前の要素（以下、”Root”要素という）の構造が定義されている。”Root”要素は、<xs:element>タグを用いて宣言される。
【００８１】
ＸＭＬスキーマのコード部分（３１１）は、”Root”要素の宣言である。コード部分（３１２）は、”Root”要素の最上位階層の構造を定義する。この例では、”Root”要素には、子要素”C”（行４）、”A”（行５）、”B”（行６）がこの順序で出現することが記述されている。
【００８２】
行４には、子要素”C”が１回以上出現すること（maxOccurs=”unbounded”）が記述されている。さらに、子要素”C”が下位の要素”D”（便宜上、孫要素という）を有することも記述されている（type=”tns:D”）。行５には、子要素”A”が１回出現すること（minOccurs及びmaxOccursの定義無し）、文字列が記述されること（type=”xsd:string”）が記述されており、行５の型が単純型（文字列型[xsd:string]）であることから、さらなる下位の階層がないことが示されている。行６には、子要素”B”が0回以上1回以下出現すること（minOccurs=”0”及びmaxOccursの定義無し）、かつ、文字列が記述され、これ以上下位の階層がないこと（type=”xsd:string”）が記述されている。
【００８３】
コード部分（３１３）は、”D”要素の最上位階層の構造を定義する。この例では、”Root”要素には、子要素”D”（行１１）が１回以上出現すること（maxOccurs=”unbounded”）、整数が記述され、さらなる下位の階層がないこと（type=”xsd:int”）が記述されている。
【００８４】
なお、”Root”要素は、スキーマ（３０１）において独立した要素として<element>定義を用いて宣言されているので、ＸＭＬ文書において独立して出現することができる。これに対して、要素”A”、”B”、”C”、”D”は他の要素の子要素として宣言されているので、ＸＭＬ文書において独立して使用することができず、ＸＭＬスキーマに記述された他の要素の子要素としてのみ出現することのみが許される。
【００８５】
図４は、本発明の実施態様において使用されうる、図３で示されるスキーマに対する構造化文書の例（図４Ａ）及び当該構造化文書を木構造で表現した場合の例（図４Ｂ）を示す。
図４Ａは、ＸＭＬ文書（４５１）の例である。
図４Ｂは、図４Ａで示されるＸＭＬ文書（４５１）（ファイル名：foo.xml）を木構造で表したものであり、要素”ルート(Root)”が親ノードであり（４０１）、要素”C”及び要素”A”が子ノードであり（４１１、４１２、４１３、４１４）、要素”D”が孫ノードである（４２１〜４２３、４２４〜４２６、４２７〜４２９）。要素”B”（子ノード）（４１５）は、存在しない（従って、図４Ｂでは、点線で示されている）。
【００８６】
特定部（２１１）は、スキーマ（３０１）を操作して、当該スキーマによって定義される１以上の変動部分（例えば、要素又は属性によって定義されている）を特定する。取得部（２１２）は、上記特定された変動部分の各特徴値を図４Ａに示す構造化文書から取得する。
【００８７】
特定される要素が個々の<element>定義”Root”、”C”、”A”、”B”及び”D”である場合、その特徴値は当該<element>定義の繰り返し数であり、詳細には次の通りである。図３のスキーマ行１において、”element name”が”Root”である場合の繰り返し数は、１である（４０１）。同スキーマ行４において、”element name”が”C”である場合の繰り返し数は、３である（４１１、４１２及び４１３）。同スキーマ行５において、”element name”が”A”である場合の繰り返し数は、１である（４１４）。同スキーマ行６において、”element name”が”B”である場合の繰り返し数は、０である（４１５）。同スキーマ行１１において、”element name”が”D”である場合の繰り返し数は、９である（４２１〜４２３、４２４〜４２６、４２７〜４２９）。しかし、ノードがルートから遠くなるにつれてそのノード数が多くなるために、例えば孫ノード以下では、平均値を特徴値としうる。従って、行１１において、”xsd:int”のノード数の平均値は３であるので、その特徴値は３である。
【００８８】
特定される要素が単純型要素”xsd:string”（行５）、”xsd:string”（行６）及び”xsd:int”（行１１）である場合、その特徴値は当該単純要素のサイズ（バイト数）であり、詳細には次の通りである。行５において、”xsd:string”のバイト数は”abcdefghij”の１０バイトである。行６において、”xsd:string”のバイト数は０（N/A）である。なぜならば、要素”B”が存在しないために、”B”のテキスト部分のサイズが評価できないからである。行１１において、”xsd:int”のバイト数は、”111”（４３１）、”112”（４３２）、”113”（４３３）、”221”（４３４）、”222”（４３５）、”223”（４３６）、”331”（４３７）、”332”（４３８）、”333”（４３９）の合計２７バイトである。しかし、ノードがルートから遠くなるにつれてバイト数が多くなるために、例えば孫ノード以下では、平均値を特徴値としうる。従って、行１１において、”xsd:int”のバイト数（平均値）は、３バイトである。
【００８９】
図５は、本発明の実施態様に従う、図４Ａに示される構造化文書及びその他の構造化文書を分類するために使用される特徴名及びその特徴値を示すテーブルである。
図５の特徴値テーブル（５０１）は、図３で示されるスキーマが適用される場合の特徴名（５２１〜５２６）と、各ＸＭＬ文書（foo.xml, bar.xml, baz.xml）（５１１〜５１３）についての特徴値とを有する。
図５の特徴値テーブル（５０１）では、要素の繰り返し数である特徴値の特徴名として、ＸＭＬスキーマ（３０１）の要素定義を特定する表現が用いられている。よって、図４Ａに示される構造化文書の場合において、要素名Root、A、B、C、及びDが、ＸＭＬスキーマ（３０１）の要素定義を特定するための特徴名としてそれぞれ使用されている。また、要素のテキスト部分のサイズである特徴値の特徴名は、例えば、当該要素の要素定義の最後に“/text()“を付したものを用いうる。よって、図４Ａに示される構造化文書の場合において、各要素名Root、A、B、C、及びDに、“/text()“を付したRoot/text()、A/text()、B/text()、C/text()、及びD/text()を要素のテキスト部分のサイズを特定するための特徴値としてそれぞれ使用しうる。
【００９０】
特徴値テーブル（５０１）の特徴名は、A/text()、B、B/text()、C、D、及びD//text()である。なお、特徴値テーブル（５０１）は特徴名Root、Root/text()、A及びC/text()を有していても有していなくてもよい。なぜならば、特徴名Root、Root/text()、A及びC/text()の各特徴値はいずれも０であるために、機械学習において使用されるデータとなり得ないからである。特徴値テーブル（５０１）が特徴名Root、Root/text()及びC/text()を有している場合には、ルール生成部（２１３）は、当該特徴名についての特徴値をメモリ上に読み出さなければよいだけである。
【００９１】
図４ＡのＸＭＬ文書であるfoo.xml（５１１）の各特徴名A/text()、B、B/text()、C、D、及びD/text()に対応する特徴値は、図４において述べたように、10、0、N/A、3、3（平均値である）、3（平均値である）である。
bar.xml（５１２）（コードは図示せず）の上記各特徴名に対応する特徴値は、25、1、10、7、1（平均値である）及び10（平均値である）である。
baz.xml（５１３）（コードは図示せず）の上記各特徴名に対応する特徴値は、12、0、N/A、3、3（平均値である）及び4（平均値である）である。
【００９２】
特徴値テーブル（５０１）は、特徴値テーブル（２３１）内に格納される。
【００９３】
ルール生成部（２１３）は、特徴値テーブル（２３１）から特徴値テーブル（５０１）をメモリ内に読み出して、各特徴名とそれに対応する特徴値を、機械学習手法、データマイニング手法、又は統計的手法を使用して、図３で示されるスキーマについてのルールを生成する。生成されたルールは、ルール記憶部（２２３）内に格納される。
【００９４】
図５の例では、ルール生成部（２１３）は、foo.xml（５１１）、bar.xml（５１２）及びbaz.xml（５１３）の全ての特徴値を用いてルールを生成する。当該生成されたルールは、foo.xml（５１１）及びbaz.xml（５１３）のクラスタとbar.xml（５１２）のクラスタとを分類するものとなる。この例の場合、ルールの生成とともに、分類部（２４１）は、入力データであるfoo.xml（５１１）、bar.xml（５１２）及びbaz.xml（５１３）をそれぞれ分類しうる。分類部（２４１）は、foo.xml（５１１）及びbaz.xml（５１３）を同じクラスタに分類する。なお、foo.xml（５１１）、bar.xml（５１２）及びbaz.xml（５１３）以外のＸＭＬ文書について当該生成されたルールに従い分類する場合、分類部（２４１）は、ルール記憶部（２２３）に記憶された当該ルールを読み出して、分類を行う。すなわち、ルールの生成と構造化文書の分類とは、同時ではないことに留意されたい。
【００９５】
図６は、本発明の実施態様に従い、ＸＭＬスキーマを読み込み、特徴名を列挙するための処理のフローチャートを示す。
ステップ６０１では、特定部（２１１）は、特徴名を列挙するためのアルゴリズムを開始する。
ステップ６０２では、特定部（２１１）は、ＸＭＬスキーマ記憶部（２２１）から対象のＸＭＬスキーマ（例えば図３のスキーマ（３０１））をメモリ内にロードし、当該ＸＭＬスキーマの先頭から順にその内容を読み込む。
ステップ６０３では、特定部（２１１）は、上記ＸＭＬスキーマにおいて最初に出現する要素（<element>定義により特定される）を選択する。
ステップ６０４では、特定部（２１１）は、選択された<element>定義を特定するために使用される名称を当該選択された<element>定義の特徴名として、特徴値テーブル（２３１）内に記録する。
ステップ６０５では、特定部（２１１）は、選択された<element>定義が単純型要素である場合、当該選択された<element>定義が特定される名称の最後に“/text()“を追加した名称を、当該単純型要素のテキスト部分のサイズを表す特徴値の特徴名として、特徴値テーブル（２３１）内に記録する。
ステップ６０６では、特定部（２１１）は、メモリ上に読み込んだＸＭＬスキーマ上に、特徴名を特徴値テーブル（２３１）内に記録していない<element>定義がまだ存在するかどうかを確認する。記録していない<element>定義がある場合、処理はステップ６０７に進む。一方、記録していない<element>定義がない場合、処理はステップ６０８に進む。
ステップ６０７では、特定部（２１１）は、特徴名が記録されていない最初の<element>定義を選択する。選択後、処理はステップ６０４に戻り、特定部（２１１）は、特徴名が記録されていない最初の<element>定義が特定される名称を当該<element>定義の特徴名として、特徴値テーブル（２３１）内に記録する。
ステップ６０８では、特定部（２１１）は、特徴名を列挙するためのアルゴリズムを終了する。処理は、ルールを生成するために、図７に示すフローチャートのアルゴリズムのステップ７０１に進む。
【００９６】
図７は、本発明の実施態様に従い、ＸＭＬ文書毎に、ＸＭＬスキーマの<element>定義に対して繰り返し数を特徴値として取得し、及び単純型の定義に対してバイト数を特徴値として取得するための処理のフローチャートを示す。
ステップ７０１では、取得部（２１２）は、特徴値を取得するためのアルゴリズムを開始する。
ステップ７０２では、取得部（２１２）は、ＸＭＬスキーマ記憶部（２２１）から対象のＸＭＬスキーマ（例えば図３のスキーマ（３０１））をメモリ内にロードし、当該ＸＭＬスキーマの検証をしながら、ＸＭＬ文書記憶部（２２２）からロードしたＸＭＬ文書の先頭からその内容を読み込む。
ステップ７０３では、取得部（２１２）は、読み込みがＸＭＬ文書中の最初の要素に到達したら、ステップ７０４に進む。
ステップ７０４では、取得部（２１２）は、ステップ７０３で到達した要素についてのＸＭＬスキーマ上の定義が単純型であるか、それ以外であるかを確認する。単純型要素である場合、ステップ７０５に進む。一方、単純型要素でない場合、ステップ７０６に進む。
ステップ７０５では、取得部（２１２）は、単純型要素のテキスト部分のサイズ又はそのサイズの平均値を特徴値テーブル（２３１）内に記録する。ＸＭＬスキーマ上の１つの<element>定義がＸＭＬ文書の複数の部分に対応する場合があるので、特徴値の記録は複数回行われる場合がある。そのために、特徴値の記録時には、記録が行われた回数を同時に記録しておき、２回目以降の記録時には、それまでの平均値を上書き記録しうる。上記記録が終了すると、処理はステップ７０６に進む。
ステップ７０６では、取得部（２１２）は、ステップ７０４からの場合に、単純型要素でない要素のスキーマ上の<element>定義の特徴値のカウンタをインクリメントする。また、取得部（２１２）は、ステップ７０５からステップ７０６に進んだ場合に、単純型要素のスキーマ上の<element>定義の特徴値のカウンタをインクリメントする。
ステップ７０７では、取得部（２１２）は、ＸＭＬ文書中の次の要素に到達したら、処理はステップ７０７に進む。また、取得部（２１２）は、ＸＭＬ文書の最後に到達したら、処理はステップ７０７に進む。要素の繰り返しの終了は、（１）別の要素が現れるか又は（２）親要素の終了タグに到達することによって判別可能である。ステップ７０７では、上記（１）及び（２）の条件を同時にチェック可能なものとして、「次の要素に到達」としている。これは、例えば図４Ａに示されている〈C〉（２行目）、〈D〉（３行目）、〈D〉（４行目）、〈D〉（５行目）、〈C〉（７行目）、〈D〉（８行目）、〈D〉（９行目）、〈D〉（１０行目）、〈C〉（１２行目）、〈D〉（１３行目）、〈D〉（１４行目）、〈D〉（１５行目）、及び〈A〉（１７行目）の各開始タグに到達するまでに、ＸＭＬ文書を読み進めることを意味する。
ステップ７０８では、取得部（２１２）は、１つ前の要素の繰り返しが終了かどうかを判定する。終了であれば、処理はステップ７０９に進む。一方、終了でなければ、処理はステップ７１０に進む。
ステップ７０９では、取得部（２１２）は、１つ前の要素のカウンタの値を特徴値として記録し、カウンタをリセットする。そして、処理はステップ７１０に進む。
ステップ７１０では、取得部は、ＸＭＬ文書中の文書末かどうかを判定する。次の要素に到達する前に文書末にきた場合、繰り返し数のカウンタを記録し、ステップ７１１に進む。一方、文書末でない場合、ステップ７０４に戻り、次の要素について、ステップ７０４〜７１０を繰り返す。
ステップ７１１では、取得部（２１２）は、特徴値を取得するためのアルゴリズムを終了する。処理は、ルールを作成するために、図８に示すフローチャートのアルゴリズムを開始する。
【００９７】
図８は、本発明の実施態様に従い、図７で取得された特徴値から、データマイニングの手法を適用してルールを作成するための処理のフローチャートを示す。
ステップ８０１では、ルール生成部（２１３）は、ルールを生成するためのアルゴリズムを開始する。
ステップ８０２では、ルール生成部（２１３）は、図７のフローチャートに従い得られた、複数のＸＭＬ文書についての特徴値の集合を用意する。特徴値の当該集合は、例えば、特徴値テーブル（２３１）として用意されうる。
ステップ８０３では、ルール生成部（２１３）は、特徴値の集合を訓練データとして、データマイニングの手法により、ルールを作成する。ルール生成部（２１３）は、生成されたルールを、ルール記憶部（２２３）に格納する。
ステップ８０４では、ルール生成部（２１３）は、ルールを生成するためのアルゴリズムを終了する。
【００９８】
図９は、本発明の実施態様に従い、図８で作成されたルールを使用して、ＸＭＬ文書を分類するための処理のフローチャートを示す。
ステップ９０１では、分類部（２４１）は、ＸＭＬ文書を分類するためのアルゴリズムを開始する。
ステップ９０２では、取得部（２１２）は、図７に示すフローチャートに従い、分類対象であるＸＭＬ文書から当該ＸＭＬ文書中の要素の特徴値を取得する。取得部（２１２）は、当該取得された特徴値を当該特徴値が取得されたＸＭＬ文書に関連付ける。
ステップ９０３では、分類部（２４１）は、ルール記憶部（２２３）からルールをメモリ上にロードし、上記取得された特徴値を当該ルールに適用して、上記取得された特徴値を有するＸＭＬ文書をルールに従い分類する。
ステップ９０４では、分類部（２４１）は、ＸＭＬ文書を分類するためのアルゴリズムを終了する。
【００９９】
図１０は、本発明の実施態様に従い、図８で作成されたルールを使用して、特定のＸＭＬ文書に類似しているＸＭＬ文書を検索対象であるＸＭＬ文書から抽出するための処理のフローチャートを示す。
ステップ１００１では、検索部（２４２）は、特定のＸＭＬ文書に類似しているＸＭＬ文書を抽出するためのアルゴリズムを開始する。
ステップ１００２では、取得部（２１２）は、図７に示すフローチャートに従い、特定のＸＭＬ文書から当該ＸＭＬ文書中の要素の特徴値を取得する。取得部（２１２）は、当該取得された特徴値それぞれを当該特徴値が取得されたＸＭＬ文書に関連付ける。
ステップ１００３では、検索部（２４２）は、ルール記憶部（２２３）からルールをメモリ上にロードし、ステップ１００２において取得された特徴値を当該ルールに適用して、第１の結果を取得する。
ステップ１００４では、取得部（２１２）は、図７に示すフローチャートに従い、検索対象である複数のＸＭＬ文書それぞれから当該ＸＭＬ文書中の要素の特徴値を取得する。取得部（２１２）は、当該取得された特徴値それぞれを当該特徴値が取得されたＸＭＬ文書に関連付ける。
ステップ１００５では、検索部（２４２）は、ルール記憶部（２２３）からルールをメモリ上にロードし、ステップ１００４において取得された特徴値をＸＭＬ文書ごとに当該ルールに適用して、各第２の結果を取得する。
ステップ１００６では、検索部（２４２）は、ステップ１００５からの各第２の結果をステップ１００３からの第１の結果と比較して、特定の構造化文書に類似している構造化文書を抽出する。当該抽出によって、特定の構造化文書に類似している構造化文書が検索される。
ステップ１００７では、検索部（２４２）は、特定のＸＭＬ文書に類似しているＸＭＬ文書を抽出するためのアルゴリズムを終了する。
【０１００】
図１１は、本発明の実施態様に従い、図８で作成されたルールを使用して、検査対象であるＸＭＬ文書が特定のＸＭＬ文書に類似しているかどうかを検査するための処理のフローチャートを示す。
ステップ１１０１では、検査部（２４３）は、特定のＸＭＬ文書に類似しているＸＭＬ文書を抽出するためのアルゴリズムを開始する。
ステップ１１０２では、取得部（２１２）は、図７に示すフローチャートに従い、特定のＸＭＬ文書から当該ＸＭＬ文書中の要素の特徴値を取得する。取得部（２１２）は、当該取得された特徴値それぞれを当該特徴値が取得されたＸＭＬ文書に関連付ける。
ステップ１１０３では、検査部（２４３）は、ルール記憶部（２２３）からルールをメモリ上にロードし、ステップ１００２において取得された特徴値を当該ルールに適用して、第１の結果を取得する。
ステップ１１０４では、検査部（２４３）は、図７に示すフローチャートに従い、検査対象であるＸＭＬ文書それぞれから当該ＸＭＬ文書中の要素の特徴値を取得する。取得部（２１２）は、当該取得された特徴値を当該特徴値が取得されたＸＭＬ文書に関連付ける。
ステップ１１０５では、検査部（２４３）は、ルール記憶部（２２３）からルールをメモリ上にロードし、ステップ１００４において取得された特徴値を当該ルールに適用して、第２の結果を取得する。
ステップ１１０６では、検査部（２４３）は、ステップ１１０５からの第２の結果をステップ１１０３からの第１の結果と比較して、検査対象である構造化文書が特定の構造化文書に類似しているかどうかを検査する。当該類似しているかどうかは、第２の結果と第１の結果が、例えば所定の割合（例えば８０％以上）で共通又は類似することで判定されうる。所定の割合は、どの程度の類似度の文書であるかによって任意に設定しうる値である。
ステップ１１０７では、検査部（２４３）は、特定のＸＭＬ文書に類似しているＸＭＬ文書を抽出するためのアルゴリズムを終了する。
【０１０１】
図１２は、本発明の実施態様に従う、図３に示されるＸＭＬコード及びその他のＸＭＬコードを分類するために使用される、ＸＰａｔｈ表現に対する特徴値を示すテーブルである。
図６の特徴名を列挙するためのフローチャートにおいて、特徴値として、図３に示すスキーマの場合、ＸＭＬスキーマ上の<xs:element>タグ又は<xs:complex>タグなどの定義についての繰り返し数が使用されている。これらの定義に加えて、ノードが一意に定まる絶対ロケーション・パス（例えばＸＰａｔｈ）表現についての特徴値を使用することが可能である。この絶対ロケーション・パスを使用することによって、<element>定義と比べて、より正確な分類を行うことが可能である。絶対ロケーション・パスは、子（child）基準点(Axes)とposition()との数値比較のみを用いた表現である。絶対ロケーション・パスの特徴は次の通りである：（１）１つのノードを必ず選択する（言い換えれば、複数のノードを選択しない）；（２）あるノードを指す表現は一意に決まる；（３）最後のノードについては、position()は指定されない（なぜならば、繰り返し数が指定されるようにするためである）。絶対ロケーション・パスの例は、”/child::Root/child::C[position()=1]/child::D[position()=1]/text()”で表現されうる。この表現は、”/Root/C[1]/D[1]/text()”の省略形でも表されうる。絶対ロケーション・パスを使用することによって、繰り返し現れる要素に対して、個々の部分木の傾向が出現場所によって異なる場合の区別をすることが可能であり、またＸＭＬスキーマ上の定義が再帰的に利用されている場合に、ＸＭＬスキーマ上の定義が再帰的に利用されている場合において、同じ定義に対応する部分であるけれども実際のＸＭＬ文書上の出現場所が異なる（絶対パスが異なる）要素の区別をすることが可能である。
【０１０２】
図１２の特徴値テーブル（１２０１）は、ＸＭＬ文書とその特徴名との対応、及びＸＭＬ文書ごとの各特徴名の特徴値を示す。特徴名は、Ｘｐａｔｈ表現が用いられている：/Root/C[1]/D，/Root/C[1]/D[1]/text()，/Root/C[3]/D[3]/text()。なお、ＸＭＬ文書中の最後のノードには、上記したように、position()は指定されない。また、テキスト部分のサイズを表す特徴値の特徴名には、絶対ロケーション・パスの最後に“/text()“を追加した名称が特徴値名として、特徴値テーブル（２３１）内に記録される。
図１２の特徴値テーブル（１２０１）は、特徴名（１２２１〜１２２３）と、各ＸＭＬ文書（foo.xml, bar.xml, baz.xml）（１２１１〜１２１３）についての特徴値とを有する。
図１２の特徴値テーブル（１２０１）では、要素の繰り返し数である特徴値の特徴名として、Ｘｐａｔｈ表現が用いられている。よって、図１２に示される構造化文書の場合において、Ｘｐａｔｈ表現/Root/C[1]/D（以下、「表現１」という），/Root/C[1]/D[1]/text()（以下、「表現２」という），/Root/C[3]/D[3]/text()（以下、「表現３」という）が、特徴名としてそれぞれ使用されている。なお、“/text()“は、上記したように、テキスト部分のサイズを表す特徴値の特徴名において、その最後に付されたものである。
【０１０３】
foo.xml（１２１１）の各特徴名  表現１（１２２１）、表現２（１２２２）、及び表現３（１２２３）に対応する特徴値はそれぞれ、３、３及び３である。
bar.xml（１２１２）（コードは図示せず）の上記各特徴名に対応する特徴値はそれぞれ、１、１０及びN/Aである。bar.xml（１２１２）において、要素D[3]は存在しないので、要素D[3]のテキスト部分のサイズは評価できない。
baz.xml（１２１３）（コードは図示せず）の上記各特徴名に対応する特徴値はそれぞれ、３、４及び４である。
【０１０４】
特徴値テーブル（１２０１）は、特徴値テーブル（２３１）内に格納される。
【０１０５】
ルール生成部（２１３）は、特徴値テーブル（２３１）から特徴値テーブル（１２０１）をメモリ内に読み出して、各特徴名とそれに対応する特徴値について機械学習の手法を適用しうる。そして、スキーマについてのルールを生成する。当該ルールは、ルール記憶部（２２３）内に格納される。
【０１０６】
図１２の例では、ルール生成部（２１３）は、foo.xml（１２１１）、bar.xml（１２１２）及びbaz.xml（１２１３）の全ての特徴値を用いルールを生成する。当該生成されたルールは、foo.xml（１２１１）及びbaz.xml（１２１３）のクラスタとbar.xml（１２１２）のクラスタとを分類するものとなる。この例の場合、ルールの生成とともに、分類部（２４１）は、入力データであるfoo.xml（１２１１）、bar.xml（１２１２）及びbaz.xml（１２１３）をそれぞれ分類しうる。分類部（２４１）は、foo.xml（５１１）及びbaz.xml（５１３））を同じクラスタに分類する。なお、foo.xml（１２１１）、bar.xml（１２１２）及びbaz.xml（１２１３）以外のＸＭＬ文書について当該生成されたルールに従い分類する場合、分類部（２４１）は、ルール記憶部（２２３）に記憶された当該ルールを読み出して、分類を行う。すなわち、ルールの生成と構造化文書の分類とは、同時ではないことに留意されたい。
【０１０７】
図１３及び図１４では、図１２に示されるＸｐａｔｈ表現を使用する具体例を説明する。
【０１０８】
図１３は、本発明の実施態様に従い、図１２に示されるＸｐａｔｈ表現を使用して、同じ子ノード名を有し且つ同じ親ノード名を有する親ノード下にあるが、当該親ノードが別のノード下にあることを区別することを可能にすることを示す。
子ノード（１３２１）のテキスト・サイズ（１３３１）は、数値が「１」であるからそのテキスト・サイズ（特徴値）は１である。子ノード（１３２２）のテキスト・サイズは、数値が「１２」（１３３２）であるからそのテキスト・サイズ（特徴値）は２である。子ノード（１３２３）のテキスト・サイズは、数値が「１１３」（１３３３）であるからそのテキスト・サイズ（特徴値）は３である。子ノード（１３２７）のテキスト・サイズは、数値が「3333331」（１３３７）であるからそのテキスト・サイズ（特徴値）は７である。子ノード（１３２８）のテキスト・サイズは、数値が「33333332」（１３３８）であるからそのテキスト・サイズ（特徴値）は８である。子ノード（１３２９）のテキスト・サイズは、数値が「333333333」（１３３９）であるからそのテキスト・サイズは「９」（特徴値）である。従って、子ノードＤの特徴値は、上記６つの特徴値の平均である（１＋２＋３＋７＋８＋９）／６＝５である。
【０１０９】
例えば、２つの子ノード（例えば、１３２１及び１３２９）は、ＸＭＬスキーマ上で同じ子ノード“Ｄ”として定義されているために、区別されない。一方、Ｘｐａｔｈ表現を用いることによって、この２つの子ノード（１３２１及び１３２９）を区別することが可能である。すなわち、子ノード（１３２１）はＸｐａｔｈ表現“/Root/C[1]/D[1]/text()”で表され、一方、子ノード（１３２９）はＸｐａｔｈ表現”/Root/C[3]/D[3]/text()”で表されるので、両ノードを区別することが可能である。従って、子ノードＤ（１３２１）のテキスト・サイズである特徴値「１」及び子ノードＤ（１３２９）のテキスト・サイズである特徴値「９」を用いて、ルールを生成すること、並びに構造化文書を分類し、検出し及び検査することが可能である。
【０１１０】
図１４は、本発明の実施態様に従い、図１２に示されるＸｐａｔｈ表現を使用して、同じ子ノード名を有するが、異なる親ノード名を有する親ノード下にあることを区別することを可能にすることを示す。
図１３において、各子ノードＤ（１３２１〜１３２３、１３２４〜１３２６、及び１３２７〜１３２９）は、その各親ノードＣ（１３１１、１３１２及び１３１３）から参照されている。すなわち、名称が同じＣである親ノードから参照されている。しかしながら、図１４において、子ノードＤは、図１４に示すように、ノードＣ（１４１１、１４１２及び１４１３）だけでなく、ノードＣと名称の異なるノードＢ（１４１５）からも参照可能である。
【０１１１】
図１４では、各子ノードＣ（１４１１、１４１２及び１４１３）から参照されている子ノードＤ（１４２１〜１４２３、１４２４〜１４２６及び１４２７〜１４２９）のテキスト（１４４１〜１４４９）のサイズは各「３」である。これに対して、親ノードＢ（１４１５）から参照されている子ノードＤ（１４３０〜１４３２）のテキスト（１４５０〜１４５２）のサイズは各「１０」である。Ｘｐａｔｈ表現を用いない場合、この３つの子ノードＤ（１４２１〜１４２３、１４２４〜１４２６及び１４２７〜１４２９）と子ノードＤ（１４３０〜１４３２）とは、ＸＭＬスキーマ上では別々の子ノードとして区別されない。一方、Ｘｐａｔｈ表現を用いることによって、この３つの子ノードＤ（１４２１〜１４２３、１４２４〜１４２６及び１４２７〜１４２９）と子ノードＤ（１４３０〜１４３２）とは、別々の子ノードとして区別することが可能である。
【０１１２】
例えば、Ｃが「address」であり、Ｂが「person」であり、及びＤが「name」である場合、子ノードＤ（１４２１〜１４２３、１４２４〜１４２６、及び１４２７〜１４２９）は「address下のname」であり、子ノードＤ（１４３０〜１４３２）は「person下のname」であるために、両ノードＤは互いに区別可能である。従って、ルール生成部（２１３）は、子ノードＤ（１４２１〜１４２９）の特徴値「３」（平均値である）及び子ノードＤ（１４３０〜１４３２）の特徴値「１０」（平均値である）をそれぞれ用いて、ルールを生成する。そして、当該再生されたルールを用いて、構造化文書を分類し、検出し及び検査することが可能である。
【０１１３】
図１５は、本発明の実施態様に従い、図３で取得された特徴値からＸＭＬ文書を抽出するための具体例を説明するためのＸＭＬ文書である。
図１５では、下記のような都道府県の人口に関する情報を保存するためのスキーマを考える。
−要素定義
・都道府県：属性は都道府県名
・市区町村：属性は市区町村名
・勤労者：勤労者に関する情報をまとめるための要素
・高齢者：高齢者に関する情報をまとめるための要素
・人口割合：値として整数値を持つ
−構造
・“都道府県”は文書に一つ
・“勤労者”及び“高齢者”は“都道府県”の子要素
・“市区町村”は“人口区分”の子要素として、いくつでも可
・“人口割合”は“市区町村”の子要素として、必ず一つ
【０１１４】
同じ「人口割合」という要素でも、以下の２つは異なる特徴を有するので、別々に扱えた方が分類の上で好都合である。
−「勤労者／市区町村／人口割合」
−「高齢者／市区町村／人口割合」
【０１１５】
図１５のＸＭＬ文書（１５０１）は、神奈川県における勤労者及び高齢者それぞれの市区町村毎における人口割合を規定する。また、ＸＭＬ文書（１５０２）は、岐阜県における勤労者及び高齢者それぞれの市区町村毎における人口割合を規定する。このような場合において、「勤労者／市区町村／人口割合」と「高齢者／市区町村／人口割合」とをＸｐａｔｈ表現を使用して、それらを別々に扱うことによって、高齢者と勤労者との割合が異なる都道府県を分類可能である。一方、Ｘｐａｔｈ表現を用いずに、別々に扱わない場合、数値（特徴値）が平均化されてしまうために、下記に述べるような区別をすることができない。
【０１１６】
ＸＭＬ文書（１５０３）はＸＭＬ文書（１５０１）と同じであるが、ＸＭＬ文書（１５０３）にマーク付けしたように、各市区町村において勤労者の方が高齢者よりも人口割合が多いことがわかる。同様に、ＸＭＬ文書（１５０４）はＸＭＬ文書（１５０２）と同じであるが、ＸＭＬ文書（１５０４）にマーク付けしたように、各市区町村において高齢者の方が勤労者よりも人口割合が多いことがわかる。
【０１１７】
図１６は、本発明の実施態様に従う、図１５のＸＭＬ文書に対するＸＭＬスキーマである。なお、スキーマ（１５０１）において、各行左の数字（１〜１９行）は、説明の便宜上付したものである。
【０１１８】
図１７は、本発明の実施態様である図８に記載されたフローチャートに従い生成されたルールを用いて、ＸＭＬ文書の冒頭文からどのクラスタに近いかを判定するために使用されるオートマトンの例を示す。
まず、クラスタ毎の１又は複数の代表文書についてタグ単位のオートマトンを図１７に示すように作る。そして、選択されたfoo.xml及びbar.xmlのＸＭＬ文書を先頭からそれぞれチェックし、異なる部分が現れた時点で分岐するようなオートマトンを作成する。オートマトンの作成手法の一つとして、本願出願人によって出願された日本国特許公開２００６−２４１７９号公報に記載の作成手法を使用しうる（特に、図３２及び図３３を参照）。
【０１１９】
図１７は、クラスタ１（１７１１）、クラスタ２（１７１２）及びクラスタ３（１７１３）の３つのクラスタがあることを示す。そして、上記異なる部分がノード（１７０１及び１７０３）であることを示す。図５又は図１２の例を挙げて説明すると、コンピュータが、foo.xml及びbaz.xmlのクラスタから例えばfoo.xmlを代表文書として選択し、及び、bar.xmlのクラスタからbar.xmlを代表文書として選択する。選択方法は任意であるが、例えば一番単純な選択法補は、単に１つ目のＸＭＬ文書を選択することである。そして、１つのクラスタに定まった時点で判定を終了する。
【０１２０】
なお、ＸＭＬ文書の前半の大きな範囲が同一である複数のクラスタがある場合、判定のために大きな範囲をコンピュータが読む必要がある。そのために、そのような複数のクラスタを同じ一つのクラスタにまとめる方がよい。また、オートマトンに合致するパスがない場合にもより近いクラスタへ分類するようにしてもよい。近いクラスタへの分類の単純な方法は、より確率の高い（すなわち、インスタンス数の多い）クラスタに分類することである。近いクラスタへ分類することによって、繰り返し数又はテキスト部分のみが異なるものを吸収することが可能である。また、合致するパスが大幅に異なる場合においても、より確率の高い（すなわち、インスタンス数の多い）クラスタに分類するのがよい。
【０１２１】
図１８は、本発明の実施態様である図８に記載されたフローチャートに従い生成されたルールを用いて、ＤＬＰのために類似文書を検出又は検査するために使用されるＯＤＦ文書の例を示す。
図１８は、ＯＤＦ文書として機密文書などの社外に流出させたくないＸＭＬ文書（例えばオフィス・アプリケーションで作成されたＸＭＬ文書）を木構造で表現したものである。当該木構造は、ルート（１８０１）及び子ノード（１８０２〜１８１３）からなる。子ノード（１８０２〜１８１３）は、例えば、スタイルのテンプレート（１８０３）、テキスト・ボックス（１８０８〜１８１０）、及び図形（１８１１〜１８１３）を包含する。
【０１２２】
検査部（２４３）は、検査対象である新規ＸＭＬ文書をルールに適用して、ＯＤＦ文書に類似する文書を当該新規ＸＭＬ文書から検出しうる。それによって、当該ＯＤＦ文書に社外に流出させたくない情報が指定されている場合に、当該ＯＤＦ文書に類似するＸＭＬ文書を検索することが可能になり、且つ、当該ＯＤＦ文書に類似するＸＭＬ文書が、例えばメール送信を通じて流出することを事前に防ぐことが可能になる。なお、ＤＬＰのための類似文書の検出においては、ＯＤＦ文書と新規ＸＭＬ１対１の類似度計算ではなく、ある１つの新規ＸＭＬ文書に対して、複数のＯＤＦ文書の類似度計算を同時に行うことによって、種々の観点からＤＬＰのための類似文書を検出又は検査することが可能である。
また、ＤＬＰのための類似文書の検出において、ＸＭＬ文書がＯＤＦ文書とどの程度類似するかの数値を計算することも可能である。
特定のＸＭＬ文書に類似しているＸＭＬ文書を検索対象であるＸＭＬ文書から抽出するための処理、及び、検査対象であるＸＭＬ文書が特定のＸＭＬ文書に類似しているかどうかを検査するための処理については、それぞれ図１０及び図１１の各フローチャートに示されているので参照されたい。
【０１２３】
図１９は、本発明の実施態様である図９に記載されたフローチャートに従いＸＭＬ文書を予めクラスタに分類し、そしてクラスタ毎に分割手法を予測してＸＭＬ文書を分割するための処理のフローチャートを示す。
ＸＭＬ文書に対応する構文木を分割することによって、当該分割された部分記木それぞれをマルチコア・プロセッサによって並列処理をすることが可能である。この分割をする前に、図９に記載されたフローチャートに従いＸＭＬ文書を予め分類する処理を行うことで、同じスキーマに属する複数のＸＭＬ文書においてその構造が大きく異なるＸＭＬ文書又はＸＭＬ文書のグループがある場合であっても、効果的に構文木の分割をすることが可能になり、さらにマルチプロセッサによる高速化処理を実現することが可能になる。
【０１２４】
以下に、その具体的な処理を図１９に示すフローチャートに従い説明する。
ステップ１９０１では、コンピュータは、構文木の分割及びその分割された部分木の並列処理を開始する。
ステップ１９０２では、コンピュータは、図９に記載されたフローチャートに従い、例えば、一つのスキーマに属するある程度の量のＸＭＬ文書の集合を事前にバッチ処理的にクラスタに分類する。
ステップ１９０３では、コンピュータは、ステップ１９０２により得られたクラスタの特徴値をクラスタ毎に取得し、メモリ内に記憶する。コンピュータは、取得した特徴値に基づいて、事前にクラスタ毎に適当な分割手法を予測しておく。
ステップ１９０４では、コンピュータは、新規のＸＭＬ文書を処理する際に、当該新規のＸＭＬ文書の冒頭部分から近いクラスタを判定して当該ＸＭＬ文書を分類し、そして、事前に予測しておいた分割手法によって、当該新規のＸＭＬ文書の分割を行う。ＸＭＬ文書に対応する構文木の分割手法の一つとして、本願出願人によって出願された日本国特許出願２０１０−１４３５６号（整理番号ＪＰ１０００２８Ａ）に記載の分割手法を使用しうる。特願２０１０−１４３５６号に記載の内容は参照によって本明細書に取り込まれて、本明細書の一部をなす。
ステップ１９０５では、コンピュータは、分割された部分木毎に、マルチプロセッサによる並列処理を行う。
ステップ１９０６では、コンピュータは、構文木の分割及びその分割された部分木の並列処理を終了する。
【図１】
0005496853.tif 000002
【図２】
0005496853.tif 000003
【図３】
0005496853.tif 000004
【図４】
0005496853.tif 000005
【図５】
0005496853.tif 000006
【図６】
0005496853.tif 000007
【図７】
0005496853.tif 000008
【図８】
0005496853.tif 000009
【図９】
0005496853.tif 000010
【図１０】
0005496853.tif 000011
【図１１】
0005496853.tif 000012
【図１２】
0005496853.tif 000013
【図１３】
0005496853.tif 000014
【図１４】
0005496853.tif 000015
【図１５】
0005496853.tif 000016
【図１６】
0005496853.tif 000017
【図１７】
0005496853.tif 000018
【図１８】
0005496853.tif 000019
【図１９】
0005496853.tif 000020
【図２０】
0005496853.tif 000021