(57)【特許請求の範囲】
【請求項１】
階層構造を構成する複数のノードからなる階層構造データと、複数の分類器によって算出された前記複数のノードの各々に対する分類結果データとを記憶する記憶手段と、
前記分類結果データに含まれる前記各ノードの適正位置が前記階層構造データの前記各ノードの位置である現在位置より上位の階層である割合を示す上げ操作指数が第１の所定値を超えている、前記現在位置から前記上位の階層に変更する上げ操作の候補になる前記ノードの集合を抽出する上げ操作候補抽出手段と、
前記上げ操作候補抽出手段によって抽出された上げ操作の候補になるノードの変更先である階層にあるノードの事例数を算出し、該事例数が、予め定められた閾値より多い又は以上である場合は、該ノードを前記集合から取り除く取除手段と、
を備え、
前記取除手段は、ノードの事例数として、前記変更先である階層にあるノードの親ノードから各子ノードへの前記分類器を訓練するための事例数の合計を算出する
階層構造改変処理装置。
【請求項２】
同一の階層の前記各ノードの組み合わせのうち、前記分類結果データに含まれる前記各ノードの適正位置から、ペア対象毎に、正解データと結果データとが不一致となる場合にカウントするミスに対する、正解データと結果データとが不一致で、かつ、その結果データがペア対象の場合にカウントする曖昧性の割合に基づき算出された曖昧性スコアを示す下げ操作指数が最高値の組み合わせに対して、所定の条件によって前記現在位置から下位の階層に変更する下げ操作の候補になる前記ノードの集合を抽出する下げ操作候補抽出手段
を更に備える請求項１に記載の階層構造改変処理装置。
【請求項３】
前記上げ操作候補抽出手段により抽出された前記上げ操作の候補になる前記ノードと、前記下げ操作候補抽出手段により抽出された前記下げ操作の候補になる前記ノードとに対する操作をまとめて処理することで、互いに矛盾する操作を回避する矛盾回避処理手段
を更に備える請求項２に記載の階層構造改変処理装置。
【請求項４】
階層構造を構成する複数のノードからなる階層構造データと、複数の分類器によって算出された前記複数のノードの各々に対する分類結果データとを記憶する記憶手段と、
同一の階層の前記各ノードの組み合わせのうち、前記分類結果データに含まれる前記各ノードの適正位置から、ペア対象毎に、正解データと結果データとが不一致となる場合にカウントするミスに対する、正解データと結果データとが不一致で、かつ、その結果データがペア対象の場合にカウントする曖昧性の割合に基づき算出された曖昧性スコアを示す下げ操作指数が最高値の組み合わせに対して、所定の条件によって前記現在位置から下位の階層に変更する下げ操作の候補になる前記ノードの集合を抽出する下げ操作候補抽出手段と、
前記下げ操作候補抽出手段によって抽出された下げ操作の候補になるノードのアクセスの頻度を示すアクセス係数が、予め定められた閾値より多い又は以上である場合は、該ノードを前記集合から取り除く取除手段と、
を備える階層構造改変処理装置。
【請求項５】
前記ノードは、文書に対応付けられている、
請求項１から請求項４までのいずれか１項に記載の階層構造改変処理装置。
【請求項６】
階層構造を構成する複数のノードからなる階層構造データと、複数の分類器によって算出された前記複数のノードの各々に対する分類結果データとを記憶する記憶手段と、上げ操作候補抽出手段と、取除手段とを備えるコンピュータによって行われる階層構造改変方法であって、
前記上げ操作候補抽出手段が行う、前記分類結果データに含まれる前記各ノードの適正位置が前記階層構造データの前記各ノードの位置である現在位置より上位の階層である割合を示す上げ操作指数が第１の所定値を超えている、前記現在位置から前記上位の階層に変更する上げ操作の候補になる前記ノードの集合を抽出するステップと、
前記取除手段が行う、前記上げ操作候補抽出手段によって抽出された上げ操作の候補になるノードの変更先である階層にあるノードの事例数を算出し、該事例数が、予め定められた閾値より多い又は以上である場合は、該ノードを前記集合から取り除くステップ
を含み、
前記取除手段は、ノードの事例数として、前記変更先である階層にあるノードの親ノードから各子ノードへの前記分類器を訓練するための事例数の合計を算出する
階層構造改変方法。
【請求項７】
請求項６に記載の階層構造改変方法のステップをコンピュータに実行させるためのプログラム。
【請求項８】
階層構造を構成する複数のノードからなる階層構造データと、複数の分類器によって算出された前記複数のノードの各々に対する分類結果データとを記憶する記憶手段と、下げ操作候補抽出手段と、取除手段とを備えるコンピュータによって行われる階層構造改変方法であって、
前記下げ操作候補抽出手段が行う、同一の階層の前記各ノードの組み合わせのうち、前記分類結果データに含まれる前記各ノードの適正位置から、ペア対象毎に、正解データと結果データとが不一致となる場合にカウントするミスに対する、正解データと結果データとが不一致で、かつ、その結果データがペア対象の場合にカウントする曖昧性の割合に基づき算出された曖昧性スコアを示す下げ操作指数が最高値の組み合わせに対して、所定の条件によって前記現在位置から下位の階層に変更する下げ操作の候補になる前記ノードの集合を抽出するステップと、
前記取除手段が行う、前記下げ操作候補抽出手段によって抽出された下げ操作の候補になるノードのアクセスの頻度を示すアクセス係数が、予め定められた閾値より多い又は以上である場合は、該ノードを前記集合から取り除くステップ
を含む階層構造改変方法。
【請求項９】
請求項８に記載の階層構造改変方法のステップをコンピュータに実行させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、階層構造改変処理装置、階層構造改変方法及びプログラムに関する。
【背景技術】
【０００２】
従来、階層構造を微小変化させるタクソノミー（分類学）改変手法が開示されている（例えば、非特許文献１）。
また、特許文献１には、階層構造のデータの変更をまとめて適用すると共に互いに矛盾する変更を回避する階層構造改変処理装置、階層構造改変方法及びプログラムを提供することを課題とし、階層構造改変処理装置は、階層構造のノードを格納する階層構造データと複数のノードの各々の分類結果データとを記憶する記憶部と、所定の条件で現在位置から上位の階層に変更する上げ操作候補のノードの集合を抽出する上げ操作候補抽出部と、他の所定の条件で現在位置から下位の階層に変更する下げ操作候補のノードの集合を抽出する下げ操作候補抽出部と、上げ操作候補抽出部により抽出された上げ操作候補のノードと下げ操作候補抽出部により抽出された下げ操作候補のノードとに対する操作をまとめて処理することで、互いに矛盾する操作を回避する矛盾回避処理部とを備えることが開示されている。
【０００３】
特許文献２には、複雑な属性情報が付与されたコンテンツを動的かつ自動的に分類をどの程度の細かさで行うかを設定して分類可能な情報処理装置、コンテンツ記録装置、コンテンツ記録システム及び情報処理プログラムを提供することを課題とし、２階層以上の階層構造を有する属性情報が付加されたコンテンツデータを、属性情報に基づいていずれかの階層に分類して記録部に記録する情報処理装置であって、フォルダ管理部は、記録部に新たにコンテンツデータが記録された際に、任意の階層の任意のフォルダに関して、そのフォルダに属するコンテンツ数とそのフォルダの下位となるフォルダの数との合計が所定の閾値以上とならないように、コンテンツの分類をどの程度の細かさで行うかを変化させることが開示されている。
【０００４】
特許文献３には、複数の異なるクラスタリング方法及び自動分類方法を１つの分類階層の中で自由に組み合わせて用いることを可能とすることを課題とし、クラスタリング制御部は、複数の文書のうちユーザによって指定された文書からなる文書集合に対して文書クラスタリング処理又は単語クラスタリング処理を実行し、カテゴリ分類方法設定部は、クラスタリング処理によって生成された文書集合中の部分集合が分類されるカテゴリの分類方法をカテゴリ記憶部に設定し、自動分類制御部は、ユーザの操作に応じて分類先候補カテゴリ集合及び分類対象文書集合を決定し、自動分類制御部は、カテゴリ記憶部に設定された分類先候補カテゴリ集合の各カテゴリの分類方法に基づいて、分類先候補カテゴリ集合及び分類対象文書集合を対象にルールベース自動分類処理及び事例ベース自動分類処理を制御することが開示されている。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開２０１０−１７０１９２号公報
【特許文献２】特開２００９−８６９７０号公報
【特許文献３】特開２０１０−２６７１４１号公報
【非特許文献】
【０００６】
【非特許文献１】タンレイ（Lei Tang）、他4名、「グループ・プロファイリングへのトピック・タクソノミー適応（Topictaxonomy adaptation for group profiling）」、（米国）、エーシーエム データからの知識発見論文集（ACMTransactions on Knowledge Discovery from Data）、2008年1月、第1巻、第4号、p.1-28
【発明の概要】
【発明が解決しようとする課題】
【０００７】
非特許文献１に記載の従来技術は、階層構造を構成する１つのノードの位置を移動させる（微小変化を行う）毎に、影響を受ける階層構造部分の性能を測定しなおすものである。そのため、例えば、数十万のノードからなる大規模階層構造に適用する場合には、事例数が膨大となってしまう階層が発生し、又はアクセス数が多いにもかかわらず下位の階層に移動してしまうこととなり、効率的な検索等には適さないような階層構造が生じる場合がある。
【０００８】
本発明は、上げ操作先の階層における事例数が膨大となってしまうこと又はアクセス数が多いにもかかわらず下げ操作の対象となってしまうことを回避する階層構造改変処理装置、階層構造改変方法及びプログラムを提供することを目的とする。
【課題を解決するための手段】
【０００９】
かかる目的を達成するための本発明の要旨とするところは、次の各項の発明に存する。
（１）  階層構造を構成する複数のノードからなる階層構造データと、複数の分類器によって算出された前記複数のノードの各々に対する分類結果データとを記憶する記憶手段と、前記分類結果データに含まれる前記各ノードの適正位置が前記階層構造データの前記各ノードの位置である現在位置より上位の階層である割合を示す上げ操作指数が第１の所定値を超えている、前記現在位置から前記上位の階層に変更する上げ操作の候補になる前記ノードの集合を抽出する上げ操作候補抽出手段と、前記上げ操作候補抽出手段によって抽出された上げ操作の候補になるノードの変更先である階層にあるノードの事例数を算出し、該事例数が、予め定められた閾値より多い又は以上である場合は、該ノードを前記集合から取り除く取除手段と、を備え、前記取除手段は、ノードの事例数として、前記変更先である階層にあるノードの親ノードから各子ノードへの前記分類器を訓練するための事例数の合計を算出する階層構造改変処理装置である。
【００１０】
（２）  階層構造を構成する複数のノードからなる階層構造データと、複数の分類器によって算出された前記複数のノードの各々に対する分類結果データとを記憶する記憶手段と、同一の階層の前記各ノードの組み合わせのうち、前記分類結果データに含まれる前記各ノードの適正位置から、ペア対象毎に、正解データと結果データとが不一致となる場合にカウントするミスに対する、正解データと結果データとが不一致で、かつ、その結果データがペア対象の場合にカウントする曖昧性の割合に基づき算出された曖昧性スコアを示す下げ操作指数が最高値の組み合わせに対して、所定の条件によって前記現在位置から下位の階層に変更する下げ操作の候補になる前記ノードの集合を抽出する下げ操作候補抽出手段と、前記下げ操作候補抽出手段によって抽出された下げ操作の候補になるノードのアクセスの頻度を示すアクセス係数が、予め定められた閾値より多い又は以上である場合は、該ノードを前記集合から取り除く取除手段と、を備える階層構造改変処理装置である。
【００１１】
（３）  階層構造を構成する複数のノードからなる階層構造データと、複数の分類器によって算出された前記複数のノードの各々に対する分類結果データとを記憶する記憶手段と、上げ操作候補抽出手段と、取除手段とを備えるコンピュータによって行われる階層構造改変方法であって、前記上げ操作候補抽出手段が行う、前記分類結果データに含まれる前記各ノードの適正位置が前記階層構造データの前記各ノードの位置である現在位置より上位の階層である割合を示す上げ操作指数が第１の所定値を超えている、前記現在位置から前記上位の階層に変更する上げ操作の候補になる前記ノードの集合を抽出するステップと、前記取除手段が行う、前記上げ操作候補抽出手段によって抽出された上げ操作の候補になるノードの変更先である階層にあるノードの事例数を算出し、該事例数が、予め定められた閾値より多い又は以上である場合は、該ノードを前記集合から取り除くステップを含み、前記取除手段は、ノードの事例数として、前記変更先である階層にあるノードの親ノードから各子ノードへの前記分類器を訓練するための事例数の合計を算出する階層構造改変方法である。
【００１２】
（４）  （３）に記載の階層構造改変方法のステップをコンピュータに実行させるためのプログラムである。
【００１３】
（５）  階層構造を構成する複数のノードからなる階層構造データと、複数の分類器によって算出された前記複数のノードの各々に対する分類結果データとを記憶する記憶手段と、下げ操作候補抽出手段と、取除手段とを備えるコンピュータによって行われる階層構造改変方法であって、前記下げ操作候補抽出手段が行う、同一の階層の前記各ノードの組み合わせのうち、前記分類結果データに含まれる前記各ノードの適正位置から、ペア対象毎に、正解データと結果データとが不一致となる場合にカウントするミスに対する、正解データと結果データとが不一致で、かつ、その結果データがペア対象の場合にカウントする曖昧性の割合に基づき算出された曖昧性スコアを示す下げ操作指数が最高値の組み合わせに対して、所定の条件によって前記現在位置から下位の階層に変更する下げ操作の候補になる前記ノードの集合を抽出するステップと、前記取除手段が行う、前記下げ操作候補抽出手段によって抽出された下げ操作の候補になるノードのアクセスの頻度を示すアクセス係数が、予め定められた閾値より多い又は以上である場合は、該ノードを前記集合から取り除くステップを含む階層構造改変方法である。
【００１４】
（６）  （５）に記載の階層構造改変方法のステップをコンピュータに実行させるためのプログラムである。
【発明の効果】
【００１５】
本発明によれば、階層構造を構成する複数のノードからなる階層構造データを、複数の分類器によって算出された分類結果データを用いて改変するのに際して、上げ操作先の階層における事例数が膨大となってしまうこと又はアクセス数が多いにもかかわらず下げ操作の対象となってしまうことを回避することができる。
【図面の簡単な説明】
【００１６】
【図１】第１実施形態に係る階層構造改変処理装置の機能構成を示す図である。
【図２】第１実施形態に係る階層構造改変処理装置のハードウェア構成を示す図である。
【図３】第１実施形態に係る階層構造データの例を示す図である。
【図４】第１実施形態に係るノード上げ操作を説明する図である。
【図５】第１実施形態に係るノード下げ操作を説明する図である。
【図６】第１実施形態に係る矛盾する変更に対する回避方法を示す図である。
【図７】第１実施形態に係るノードマージ操作を説明する図である。
【図８】第１実施形態に係る訓練事例抑制処理を説明する図である。
【図９】第１実施形態に係る階層構造改変処理のフローチャートである。
【図１０】第１実施形態に係る階層構造改変処理のフローチャートである。
【図１１】第２実施形態に係る階層構造改変処理装置の機能構成を示す図である。
【図１２】第２実施形態に係る矛盾する変更に対する回避方法を示す図である。
【図１３】第２実施形態に係る階層構造改変処理のフローチャートである。
【図１４】第２実施形態に係る階層構造改変処理のフローチャートである。
【図１５】第３実施形態に係る階層構造改変処理装置の機能構成を示す図である。
【図１６】第３実施形態に係る矛盾する変更に対する回避方法を示す図である。
【図１７】第３実施形態に係る階層構造改変処理のフローチャートである。
【図１８】第３実施形態に係る階層構造改変処理のフローチャートである。
【発明を実施するための形態】
【００１７】
以下、本発明を実施するための形態について図を参照しながら説明する。なお、これはあくまでも一例であって、本発明の技術的範囲はこれに限られるものではない。
【００１８】
（第１実施形態）
［階層構造改変処理装置１００の機能構成］
図１は、第１実施形態に係る階層構造改変処理装置１００の機能構成を示す図である。階層構造改変処理装置１００は、階層構造を構成する複数のノードを記憶した階層構造データに対して、タクソノミー改変を行う装置である。階層構造データを構成する複数のノードは、例えば、文書に対応している。文書を階層構造に分類することで、例えば、情報検索時の検索の性能を向上させることができ、オントロジーの構築に用いることができる。タクソノミー改変とは、分類法を用いた階層構造データの変更をいい、具体的には、階層構造を構成するノードの位置を、その位置から上位又は下位に変更することをいう。
【００１９】
階層構造改変処理装置１００は、制御モジュール１と記憶モジュール２とを備える。制御モジュール１は、上げ操作候補抽出モジュール１０と、下げ操作候補抽出モジュール１１と、操作判定モジュール１２と、階層構造改変処理モジュール１３と、矛盾回避処理モジュール１５と、操作抑制モジュール１６とを備える。操作判定モジュール１２と、階層構造改変処理モジュール１３とは、矛盾回避処理モジュール１５の処理の一部である。記憶モジュール２は、階層構造データを記憶する階層構造データ記憶モジュール２０、分類結果データ記憶モジュール２１、改変後階層構造データ記憶モジュール２２を備える。各機能の詳細は、後述する。
【００２０】
階層構造改変処理装置１００は、ハードウェアの数に制限はなく、必要に応じて一又は複数のハードウェアで構成してよい。また、複数のハードウェアで構成する場合には、例えば、通信回線（図示せず）を介して各ハードウェアを接続してもよい。前述した各機能毎に別サーバとし、各サーバ間での信号の送受信により、各サーバを連携させることで、本実施形態の機能を実現してもよい。
【００２１】
［階層構造改変処理装置１００のハードウェア構成図］
図２は、第１実施形態に係る階層構造改変処理装置１００のハードウェア構成を示す図である。本発明が実施される処理装置は標準的なものでよく、以下に、構成の一例を示す。
【００２２】
階層構造改変処理装置１００は、制御モジュール１を構成するＣＰＵ（Ｃｅｎｔｒａｌ
Ｐｒｏｃｅｓｓｉｎｇ Ｕｎｉｔ）１０１０（マルチプロセッサ構成ではＣＰＵ１０１２等複数のＣＰＵが追加されてもよい）、バスライン１００５、通信Ｉ／Ｆ（Ｉ／Ｆ：インタフェース）１０４０、メインメモリ１０５０、ＢＩＯＳ（Ｂａｓｉｃ  Ｉｎｐｕｔ  Ｏｕｔｐｕｔ  Ｓｙｓｔｅｍ）１０６０、表示装置１１２２、Ｉ／Ｏコントローラ１０７０、キーボード及びマウス等の入力装置１１００、ハードディスク１０７４、光ディスクドライブ１０７６、並びに半導体メモリ１０７８を備える。なお、ハードディスク１０７４、光ディスクドライブ１０７６、及び半導体メモリ１０７８はまとめて記憶モジュール２と呼ぶ。
【００２３】
制御モジュール１は、階層構造改変処理装置１００を統括的に制御する部分であり、ハードディスク１０７４に記憶された各種プログラムを適宜読み出して実行することにより、前述したハードウェアと協働し、本発明に係る各種機能を実現している。
【００２４】
通信Ｉ／Ｆ１０４０は、階層構造改変処理装置１００が、通信回線を介して他の装置と情報を送受信する場合のネットワーク・アダプタである。通信Ｉ／Ｆ１０４０は、モデム、ケーブル・モデム及びイーサネット（登録商標）・アダプタを含んでよい。
【００２５】
ＢＩＯＳ１０６０は、階層構造改変処理装置１００の起動時にＣＰＵ１０１０が実行するブートプログラムや、階層構造改変処理装置１００のハードウェアに依存するプログラム等を記録する。
【００２６】
表示装置１１２２は、ブラウン管表示装置（ＣＲＴ）、液晶表示装置（ＬＣＤ）等のディスプレイ装置を含む。
【００２７】
Ｉ／Ｏコントローラ１０７０には、ハードディスク１０７４、光ディスクドライブ１０７６、及び半導体メモリ１０７８等の記憶装置である記憶モジュール２を接続することができる。
【００２８】
入力装置１１００は、階層構造改変処理装置１００の管理者による入力の受け付けを行うものである。
【００２９】
ハードディスク１０７４は、本ハードウェアを階層構造改変処理装置１００として機能させるための各種プログラム、本発明の機能を実行するプログラム及び前述した階層構造データ等を記憶する。なお、階層構造改変処理装置１００は、外部に別途設けたハードディスク（図示せず）を外部記憶装置として利用することもできる。
【００３０】
光ディスクドライブ１０７６としては、例えば、ＤＶＤ−ＲＯＭドライブ、ＣＤ−ＲＯＭドライブ、ＤＶＤ−ＲＡＭドライブ、ＣＤ−ＲＡＭドライブを使用することができる。この場合は各ドライブに対応した光ディスク１０７７を使用する。光ディスク１０７７から光ディスクドライブ１０７６によりプログラム又はデータを読み取り、Ｉ／Ｏコントローラ１０７０を介してメインメモリ１０５０又はハードディスク１０７４に提供することもできる。
【００３１】
なお、本発明でいうコンピュータとは、記憶モジュール、制御モジュール等を備えた情報処理装置をいい、階層構造改変処理装置１００は、記憶モジュール２、制御モジュール１等を備えた情報処理装置により構成され、この情報処理装置は、本発明のコンピュータの概念に含まれる。
【００３２】
［階層構造データ３０］
図３は、第１実施形態に係る階層構造データ３０の例を示す図である。階層構造データ３０は、階層構造データ記憶モジュール２０（図１参照）に格納されている。階層構造データ３０は、図３において円で表された複数のノードが、線で表されるエッジによって結び付けられ、階層構造を形成している。階層構造データ３０は、１つのノードの下位に複数のノードがつながっている構造である。なお、下位には１つのノードがつながっていてもよいし、下位につながっているノードがない場合（いわゆるリーフノード）もある。図３の例は、ノード３１の上位のノードがノード３２であり、ノード３２の更に上位のノードがノード３３であることを示し、ノード３３は、下位のノード３２以外の複数のノードに対してつながっている。階層構造は、木構造を含む。また、１つの下位のノードが２つ以上の上位のノードにつながっていてもよい。図３の例に表された１つのノードは、例えば、１つの文書に対応している。なお、階層構造データ３０は、文書に対応している必要はないが、文書を分類するための文書分類器を実際に構成するためには、ノードに対応付けられた文書事例が必要であり、これをコーパスという。コーパスには、機械学習分類器を訓練するための訓練コーパス（トレーニングコーパス）と、分類性能を測定するためのテストコーパス（正解データ）とがあるが、いずれも、１つのノードに対して複数の文書が対応してよい。また、１つのノードは、文書の他、属性を表すクラスに対応付けられていてもよい。なお、以降の図において、ノード内に表される記号、例えば、ノード３１の「ｋ．３」をラベルという。
コーパスはタクソノミーを前提として、それに付随するものである。上げ操作等は全てタクソノミーの構造を対象としたものであるので、その結果としてテストコーパスにもトレーニングコーパスにも影響する。したがって、本実施の形態における対象としている階層構造データ３０は、訓練コーパス、テストコーパスのいずれか一方又は両方であってもよい。
【００３３】
［基本操作］
図４は、第１実施形態に係るノード上げ操作を説明する図である。図５は、第１実施形態に係るノード下げ操作を説明する図である。ここでは、いずれも「ｋ．３」のラベルを有するノード３１に焦点をあてて説明する。
【００３４】
図４（ａ）は、階層分類器（複数の局所分類器）で分類を行った結果である分類結果データに、評価を反映した上げ操作検証テーブル４０である。上げ操作検証テーブル４０は、分類結果データから集計して生成することができる。分類結果データは、分類結果データ記憶モジュール２１に記憶されている。生成した上げ操作検証テーブル４０を、分類結果データ記憶モジュール２１に記憶してもよい。階層分類器とは、機械学習分類器であり、事前に与えられたデータを例題として、例題のデータをガイドに学習を行い、その結果を反映したものである。階層分類器毎に事前に与えられた例題が異なるため、各階層分類器は、階層分類器毎に異なる分類結果データを出力することになる。なお、「階層分類器」という場合は、分類器全体を指す場合に用い、「局所分類器」という場合は、階層分類器を構成する多数の分類器を指す。本実施の形態では、階層分類器を実現するための手法として、局所分類器手法を採用する。つまり、親子関係にある構造の親ノードに子ノードへの分類を行う局所分類器をそれぞれ配置するという構成をとる。
【００３５】
分類結果データは、正解データ４１と、その結果データ４２とからなる。正解データ４１は、階層構造データ３０においての正解のデータである。結果データ４２は、階層分類器毎に導き出された結果のデータである。正解データ４１に対する結果データ４２の差異は、前述での説明の通り、階層分類器の学習過程により生じる。Ｈミス４３には、正解データ４１のノードの親と結果データ４２のノードの親とが異なる場合に「１」を格納する。また、Ｌミス４４には、正解データ４１のノードの親と結果データ４２のノードの親とは一致するが、ラベルが異なる場合に「１」を格納する。ＨＩＴ４５は、正解データ４１と、その結果データ４２とが同一の場合に「１」を格納する。Ｈミス４３、Ｌミス４４、ＨＩＴ４５は、各々その件数が合計されて、順番に、ｈｍ４６、ｌｍ４７、Ｎｈ４８に合計数が格納される。
【００３６】
次に、図４（ｂ）に示す式により、上げ操作指数ｄｕを算出する。上げ操作指数ｄｕは、分類結果データにおけるＨミス４３の割合と、Ｌミス４４の割合との差の大きさにより求められる。上げ操作指数ｄｕが、予め定められた係数α（第１の所定値）を超えていれば、対象のノード３１の位置を上位の階層に変更する候補とする。しかし、上げ操作指数ｄｕが、予め定められた係数α以下の場合には、何もしない（変更しない）。
【００３７】
図４（ｃ）は、ノード３１の上げ操作指数ｄｕが係数αを超えている場合に、ノード３１を上位の階層に変更する階層構造データ３０の状態を表す。「ｋ．３」のラベルを有するノード３１を、上位の階層であるノード３２と同一の階層にするため、ノード３２の上位の階層であるノード３３の階層の子ノードに移動することで、「ｋ．３」のラベルを有するノードをノード３１からノード３４に変更する。
【００３８】
図５（ａ）は、階層分類器で分類を行った結果である分類結果データに、図４（ａ）とは異なる評価を反映した下げ操作検証テーブル５０である。下げ操作検証テーブル５０は、分類結果データから集計して生成することができる。生成した下げ操作検証テーブル５０を分類結果データ記憶モジュール２１に記憶してもよい。分類結果データである正解データ５１及び結果データ５２は、上げ操作検証テーブル４０の正解データ４１及び結果データ４２と同一である。下げ操作検証テーブル５０は、あるノードの下位に位置する同一の階層のノードのペアの組み合わせについて検証したテーブルである。ここでは、「ｊ．３」のラベルを有するノード３２の下位のノードのうち、「ｋ．３」のラベルを有するノード３１と、「ｋ．２」のラベルを有するノード３５との組み合わせについて検討する。なお、ノード３２の下位の同一の階層の組み合わせは、（ｋ．１，ｋ．２），（ｋ．１，ｋ．３），…，（ｋ．１，ｋ．ｍ），（ｋ．２，ｋ．３），…（ｋ．２，ｋ．ｍ），…、であり、Ｃ（ｍ，２）通り存在する。
【００３９】
下げ操作検証テーブル５０に記憶されるのは、正解データ５１と、結果データ５２とが各々の組み合わせの対象であるものである。図５（ａ）の例では、下げ操作検証テーブル５０には、「ｋ．２」のラベルと「ｋ．３」のラベルとを有するノードについて記憶している。曖昧性５３は、例えば、下げ操作検証子テーブル５０Ａの場合には、正解データ５１と結果データ５２との内容が不一致で、間違えた先が「ｋ．２」の場合に「１」を格納する。図５（ａ）では、下げ操作検証テーブル５０のうち、下げ操作検証子テーブル５０Ａは、正解データ５１が「ｋ．３」であって、結果データ５２が「ｋ．２」のラベルを有するデータであり、「ｋ．３」から「ｋ．２」への曖昧性を意味する。また、下げ操作検証子テーブル５０Ｂは、「ｋ．２」から「ｋ．３」への曖昧性を意味する。ミス５４は、正解データ５１と結果データ５２との内容（ノードのラベル）が不一致の場合に「１」を格納する。ＨＩＴ５５は、正解データ５１と結果データ５２との内容が一致する場合に「１」を格納する。ミス５４とＨＩＴ５５とは、常に逆の関係が成り立つ。曖昧性５３、ミス５４、ＨＩＴ５５は、各々その件数が合計されて、順番に、Ｎａ５６、Ｎｍ５７、Ｎｈ５８に合計数が格納される。
【００４０】
次に、図５（ｂ）に示す式により、下げ操作指数ｄｄを算出する。下げ操作指数ｄｄは、分類結果データにおける組み合わせの各々のノードの、ミス５４に対する曖昧性５３の割合を合算してその大きさにより算出される曖昧性スコアである。下げ操作指数ｄｄは、組み合わせのノードがノードＡ，Ｂの場合に、「ｄｄ（Ａ，Ｂ）」と記述する。同一の階層の各組み合わせにおいて下げ操作指数ｄｄを算出し、下げ操作指数ｄｄが最大値のペアに対して、係数βとの関係（所定の条件）で、図５（ｂ）に示すように組み合わせのノードの一方を他方のノードの下位ノードにしたり、組み合わせのノードの両方を、新たに組み合わせのノードの位置に新設したノードの下位ノードにしたりして、階層構造データ３０を変更する候補とする。
【００４１】
図５（ｃ）は、下げ操作指数ｄｄ（ノード３１，ノード３５）がノード３１と同一の階層の組み合わせの中で最大値であり、ノード３１のミスに対する曖昧性の割合の、ノード３５のミスに対する曖昧性の割合の差が、係数βより大きい場合に、ノード３１をノード３５の下位の階層に変更する階層構造データ３０の状態を表す。「ｋ．３」のラベルを有するノード３１を、ノード３５の下位に「ｋ．３」のラベルを有するノード３６として移動する。
【００４２】
階層構造データ３０を対象として、分類結果データを用いて改変する場合に、図４でのノードの上げ操作の対象であるノードが、図５でのノードの下げ操作の対象になる場合がある。よって、ノードの上げ操作と下げ操作とをまとめて変更しようとすると、両方に該当するノードにおいて互いに矛盾する変更が生じてしまう。
【００４３】
［アルゴリズム１］
そこで、次に、矛盾する変更をなくしてまとめて処理を行う場合に有用なアルゴリズムについて説明する。図６は、第１実施形態に係る矛盾する変更に対する回避方法を示す図である。ここで、以下は、操作判定モジュール１２により判定処理が行われる。「ｋ．３」のラベルを有するノード３１は、上げ操作対象のノードであると共に、下げ操作対象のノードである。この場合、一律に下げ操作を優先するものである。
【００４４】
図６（１）は、階層構造データ３０のノード３１が、上げ操作の態様かつ下げ操作の態様である場合に、ノード３１を下げ操作を行うために、ノード３５の下位のノード３６に変更する過程を示す。図６（２）は、下げ操作を行った後の階層構造データ３０を示す。図６（２）に示す階層構造データ３０は、ノード３２からエッジでつながっている下位ノードに、「ｋ．３」のラベルを有するノードがない。「ｋ．３」のラベルを有するノード３５は、ノード３２の下位ノードであるノード３５からエッジでつながって位置している。変更された階層構造データ３０は、改変後階層構造データ記憶モジュール２２に記憶する。なお、記憶モジュール２に改変後階層構造データ記憶モジュール２２を有さず、階層構造データ記憶モジュール２０に、変更された階層構造データ３０を上書きしてもよい。
【００４５】
図７は、第１実施形態に係るノードマージ操作を説明する図である。兄弟ノードが相互に混同して予測される場合に、このマージ操作を行う。このマージ操作は、下げ操作の１種である。
図７（１）は、「ｋ．２」のラベルを有するノード３５と「ｋ．３」のラベルを有するノード３１が、「ｊ．３」のラベルを有するノード３２の子のノードの全ての組み合わせの中で最も高い曖昧性スコアｄｄ（下げ操作指数ｄｄ）を持ち、ノード３５からノード３１方向の混同数とノード３１からノード３５方向の混同数に大きな差がないとする。そして、マージ用ノード６１（「ｋ．４」のラベル）を新設し、ノード３５とノード３１をノード６１の下に移動する。これは、図５（ｂ）に示したように「組み合わせのノードの両方を、新たに組み合わせのノードの位置に新設したノードの下位ノードにする」ことに該当する。図７（２）は、その移動後の結果を示すものであり、ノード６１の下にノード６２（「ｋ．２」のラベルであり、元のノード３５）とノード６３（「ｋ．３のラベルであり、元のノード３１）がある。
【００４６】
図８は、第１実施形態に係る訓練事例抑制処理を説明する図である。つまり、条件を満たす上げ操作候補を適用予定の操作集合から取り除くものである。結果的に階層構造の幅方向を抑制することになる。
操作抑制モジュール１６は、上げ操作候補抽出モジュール１０によって抽出された上げ操作の候補になるノードの変更先である階層にあるノードの事例数を算出し、その事例数が、予め定められた閾値より多い又は以上である場合は、そのノードを集合（上げ操作の候補になるノードの集合）から取り除く。なお、操作抑制モジュール１６は、ノードの事例数として、変更先である階層にあるノードの親ノードから各子ノードへの階層分類器を訓練するための事例数の合計を算出する。
例えば、図８（１）の例に示すように、「上げ操作候補抽出モジュール１０によって抽出された上げ操作の候補になるノード」として、ノード３１（「ｋ．３」のラベル）が抽出されたとする。ここで親ノード３３（「ｉ」のラベル）から子ノード群ｊ．ｘ（「ｊ．１」〜「ｊ．ｎ」のラベル）への階層分類器を訓練するための事例集合を、それぞれＴｒ（ｊ．ｘ）とする。｜Ｔｒ（ｊ．ｘ）｜は、各事例集合内の要素の数（そのノードにおける事例数（例題数））である。つまり、「変更先である階層（ノード３１が属している階層）にあるノードの親ノード（ノード３３）から各子ノード（「ｊ．１」〜「ｊ．ｎ」のラベルのノード）への階層分類器を訓練するための事例数」である。なお、親ノード３３（「ｉ」のラベル）の子ノードの数をｃｎ（ｉ）とする。
Σｘ＝１，・・・，ｃｎ（ｉ）｜Ｔｒ（ｊ．ｘ）｜＞Ｔｍａｘ      （１）
ただし、Ｔｍａｘは、予め定められた定数（閾値）である。ただし、性能測定の結果によって、この定数を調整するようにしてもよい。また、条件（１）は、Σｘ＝１，・・・，ｃｎ（ｉ）｜Ｔｒ（ｊ．ｘ）｜≧Ｔｍａｘであってもよい。
条件（１）が成立する場合、ノード３１（「ｋ．３」のラベル）を集合から取り除く。つまり、上げ操作の対象としない。そして、条件（１）が成立しない場合、ノード３１（「ｋ．３」のラベル）を集合に残す。つまり、上げ操作の対象とする。
【００４７】
次に、図７を用いて、第１実施形態に係るアクセス数抑制処理を説明する。条件を満たす下げ操作候補を適用予定の操作集合から取り除くものである。結果的に階層構造の深さ方向を抑制することになる。
操作抑制モジュール１６は、下げ操作候補抽出モジュール１１によって抽出された下げ操作の候補になるノードのアクセスの頻度を示すアクセス係数が、予め定められた閾値より多い又は以上である場合は、そのノードを集合（下げ操作の候補になるノードの集合）から取り除く。ここで、ノードのアクセス係数とは、そのノードへのアクセスの頻度を示す値であって、例えば、階層構造をＨＴＭＬ等としてインターネット上等に実現した場合に、ノードのＰＶ（Ｐａｇｅ  Ｖｉｅｗ、ウェブサイト、又はウェブサイト内の特定のページが閲覧された回数。ウェブサイトがどのくらい閲覧されているかを測るための指標。）、クリック率等が該当する。
例えば、図７（１）の例に示すように、「下げ操作候補抽出モジュール１１によって抽出された下げ操作（マージ操作を含む）の候補になるノード」として、ノード３１（「ｋ．３」のラベル）が抽出されたとする。ここでノード３２（「ｊ．３」のラベル）のアクセス係数をａｊ．３だったとする。
ａｊ．３＞Ａｍａｘ      （２）
ただし、Ａｍａｘは、予め定められた定数（閾値）である。ただし、性能測定の結果によって、この定数を調整するようにしてもよい。また、条件（２）は、ａｊ．３≧Ａｍａｘであってもよい。
条件（２）が成立する場合、ノード３１（「ｋ．３」のラベル）を集合から取り除く。つまり、下げ操作の対象としない。そして、条件（２）が成立しない場合、ノード３１（「ｋ．３」のラベル）を集合に残す。つまり、下げ操作の対象とする。
【００４８】
また、訓練事例抑制機能は上げ操作に、アクセス数抑制機能は下げ操作及びマージ操作に適用するものである。
【００４９】
次に、図６の処理を説明する。図９は、第１実施形態に係る階層構造改変処理のフローチャートである。
【００５０】
Ｓ１０：制御モジュール１（上げ操作候補抽出モジュール１０）は、階層構造データ３０の全てのノードに対して、上げ操作の候補を抽出する。上げ操作の候補は、前述の図４で説明した処理により抽出できる。階層構造データ３０の各ノードに対する処理順序は、どのような順序でもよく、例えば、上からでも、下からでも、深さ優先でも、ランダムでもよい。
【００５１】
Ｓ１１：制御モジュール１（操作抑制モジュール１６）は、訓練事例抑制の条件を満たす上げ操作候補を適用予定の操作集合から取り除く。
Ｓ１２：制御モジュール１は、上げ操作の対象になるノードの集合を記憶モジュール２に退避する。
【００５２】
Ｓ１３：制御モジュール１（下げ操作候補抽出モジュール１１）は、階層構造データ３０の全てのノードに対して、下げ操作の候補を抽出する。下げ操作の候補は、前述の図５で説明した処理により抽出できる。階層構造データ３０の各ノードに対する処理順序は、どのような順序でもよい。
【００５３】
Ｓ１４：制御モジュール１（下げ操作候補抽出モジュール１１）は、階層構造データ３０の全てのノードに対して、マージ操作の候補を抽出する。
Ｓ１５：制御モジュール１（操作抑制モジュール１６）は、アクセス数抑制の条件を満たす下げ操作候補又はマージ操作候補を適用予定の操作集合から取り除く。
Ｓ１６：制御モジュール１は、下げ操作とマージ操作の対象になるノードの集合を記憶モジュール２に退避する。
【００５４】
Ｓ１７：制御モジュール１（操作判定モジュール１２）は、上げ操作対象かつ下げ操作対象になるノードが存在するか否かを判断する。制御モジュール１は、対象のノードが存在する場合（Ｓ１７：ＹＥＳ）は、処理をＳ１８に移し、対象のノードが存在しない場合（Ｓ１７：ＮＯ）は、処理をＳ１９に移す。
【００５５】
Ｓ１８：制御モジュール１（操作判定モジュール１２）は、上げ操作の対象になるノードの集合から、上げ操作の対象かつ下げ操作の対象になるノードを削除する。本処理により、上げ操作の対象になり、下げ操作の対象になるノードは、下げ操作の対象にのみ含まれる。
【００５６】
Ｓ１９：制御モジュール１（階層構造改変処理モジュール１３）は、上げ操作の対象になるノードの集合の各ノードに対して上げ操作を行う。
【００５７】
Ｓ２０：制御モジュール１（階層構造改変処理モジュール１３）は、下げ操作の対象になるノードの集合の各ノードに対して下げ操作を行う。
Ｓ２１：制御モジュール１（階層構造改変処理モジュール１３）は、マージ操作の対象になるノードの集合の各ノードに対してマージ操作を行う。
【００５８】
Ｓ２２：制御モジュール１は、操作を行った階層構造データを、改変後階層構造データ記憶モジュール２２に記憶する。
【００５９】
このように、階層構造改変処理装置１００は、階層構造データ３０に対する矛盾する変更を生じるノードに対して、一律下げ操作を優先する。よって、階層構造データ３０のタクソノミー改変を、矛盾解決に要する計算コストを抑えつつ、矛盾する変更を回避するものにすることができる。また、上げ操作の候補と下げ操作の候補とを抽出した上で、まとめて操作処理を行うので、効率がよい。また、訓練事例抑制機能、アクセス数抑制機能によって、上げ操作先の階層における事例数が膨大となってしまうこと又はアクセス数が多いにもかかわらず下げ操作の対象となってしまうことを回避することができる。その結果、高精度で高効率な機械的処理が容易な階層構造とすることができる。
【００６０】
なお、本処理において、上げ操作の対象になりかつ下げ操作の対象になるノードに関する判定処理を行ってから、全てのノードに対する上げ操作の対象のノードと、下げ操作の対象のノードとの処理を行うものであった。しかし、上げ操作の対象になりかつ下げ操作の対象になるノード以外のノードに関して、判定処理と並行して操作処理を行ってもよい。そのようにすることで、処理に要する時間を更に短縮できる。
【００６１】
図１０は、第１実施形態に係る別の階層構造改変処理のフローチャートである。図９に例示のフローチャートでは、前半で訓練事例抑制、アクセス数抑制を行ったが、図１０に例示のフローチャートでは、後半で行うものである。先に矛盾解消を行った後に訓練事例抑制、アクセス数抑制の処理を行うので、訓練事例抑制、アクセス数抑制の対象は図９に例示のフローチャートよりは減ることになるが、その効果は図９に例示のフローチャートとほぼ同等である。
【００６２】
Ｓ１１０：制御モジュール１（上げ操作候補抽出モジュール１０）は、階層構造データ３０の全てのノードに対して、上げ操作の候補を抽出する。上げ操作の候補は、前述の図４で説明した処理により抽出できる。階層構造データ３０の各ノードに対する処理順序は、どのような順序でもよく、例えば、上からでも、下からでも、深さ優先でも、ランダムでもよい。
【００６３】
Ｓ１１１：制御モジュール１は、上げ操作の対象になるノードの集合を記憶モジュール２に退避する。
Ｓ１１２：制御モジュール１（下げ操作候補抽出モジュール１１）は、階層構造データ３０の全てのノードに対して、下げ操作の候補を抽出する。下げ操作の候補は、前述の図５で説明した処理により抽出できる。階層構造データ３０の各ノードに対する処理順序は、どのような順序でもよい。
【００６４】
Ｓ１１３：制御モジュール１（下げ操作候補抽出モジュール１１）は、階層構造データ３０の全てのノードに対して、マージ操作の候補を抽出する。
Ｓ１１４：制御モジュール１は、下げ操作とマージ操作の対象になるノードの集合を記憶モジュール２に退避する。
【００６５】
Ｓ１１５：制御モジュール１（操作判定モジュール１２）は、上げ操作対象かつ下げ操作対象になるノードが存在するか否かを判断する。制御モジュール１は、対象のノードが存在する場合（Ｓ１１５：ＹＥＳ）は、処理をＳ１１６に移し、対象のノードが存在しない場合（Ｓ１１５：ＮＯ）は、処理をＳ１１７に移す。
【００６６】
Ｓ１１６：制御モジュール１（操作判定モジュール１２）は、上げ操作の対象になるノードの集合から、上げ操作の対象かつ下げ操作の対象になるノードを削除する。本処理により、上げ操作の対象になり、下げ操作の対象になるノードは、下げ操作の対象にのみ含まれる。
【００６７】
Ｓ１１７：制御モジュール１（操作抑制モジュール１６）は、訓練事例抑制の条件を満たす上げ操作候補を適用予定の操作集合から取り除く。
Ｓ１１８：制御モジュール１（操作抑制モジュール１６）は、アクセス数抑制の条件を満たす下げ操作候補又はマージ操作候補を適用予定の操作集合から取り除く。
【００６８】
Ｓ１１９：制御モジュール１（階層構造改変処理モジュール１３）は、上げ操作の対象になるノードの集合の各ノードに対して上げ操作を行う。
Ｓ１２０：制御モジュール１（階層構造改変処理モジュール１３）は、下げ操作の対象になるノードの集合の各ノードに対して下げ操作を行う。
Ｓ１２１：制御モジュール１（階層構造改変処理モジュール１３）は、マージ操作の対象になるノードの集合の各ノードに対してマージ操作を行う。
Ｓ１２２：制御モジュール１は、操作を行った階層構造データを、改変後階層構造データ記憶モジュール２２に記憶する。
【００６９】
（第２実施形態）
次に、本発明を適用した第２実施形態について説明する。第２実施形態は、まとめて処理を行う場合に有用な、第１実施形態とは異なる第２のアルゴリズムに関するものである。なお、以下の説明及び図面において、前述した実施形態と同様の機能を果たす部分には、同一の符号又は末尾に同一の符号を付して、重複する説明を適宜省略する。
【００７０】
［階層構造改変処理装置２００の機能構成］
図１１は、第２実施形態に係る階層構造改変処理装置２００の機能構成を示す図である。階層構造改変処理装置２００の制御モジュール２０１は、次点下げ操作候補抽出モジュール２１４を備える。また、矛盾回避処理モジュール２１５の操作判定モジュール２１２は、次点下げ操作候補抽出モジュール２１４により抽出されたノードに対する判定をする。記憶モジュール２０２は、第１実施形態の改変後階層構造データ記憶モジュール２２とは異なる階層構造データを格納する改変後階層構造データ記憶モジュール２２２を備える。
【００７１】
［アルゴリズム２］
図１２は、第２実施形態に係る矛盾する変更に対する回避方法を示す図である。ここで、以下は、操作判定モジュール２１２により判定処理が行われる。「ｋ．３」のラベルを有するノード３１は、上げ操作対象のノードであると共に、下げ操作対象のノードである。次点下げ操作候補抽出モジュール２１４により抽出された組み合わせ（ｋ．１，ｋ．２）と、下げ操作指数ｄｄが最大である組み合わせ（ｋ．２，ｋ．３）との関係において、下げ操作指数ｄｄ（ｋ．２，ｋ．３）と下げ操作指数ｄｄｎ（ｋ．１，ｋ．２）との差の絶対値は、係数γ（第２の所定値）以下である。ここで、次点の組み合わせに対する下げ操作指数を、ｄｄｎで表す。この場合に、「ｋ．３」のラベルを有するノード３１は、上げ操作対象にする。また、次点の組み合わせである（ｋ．１，ｋ．２）に対して、下げ操作の対象にする。
【００７２】
図１２（１）は、階層構造データ３０のノード３１を、上げ操作を行うために、ノード３３の下位のノード３４に変更する過程を示す。また、下げ操作対象の組み合わせ（ｋ．１，ｋ．２）のうち、下げ操作の対象である「ｋ．１」のラベルを有するノード３７を、ノード３５の下位のノード３８に変更する過程を示す。なお、（ｋ．１，ｋ．２）の組み合わせに対する変更処理は、前述の図５（ｂ）に示した式により行われる。図１２（２）は、「ｋ．３」のラベルを有するノード３１に対する上げ操作と、「ｋ．１」のラベルを有するノード３７に対する下げ操作とを行った後の階層構造データ３０を示す。変更された階層構造データ３０は、改変後階層構造データ記憶モジュール２２２に記憶する。
【００７３】
なお、次点下げ操作候補抽出モジュール２１４により抽出された組み合わせ（ｋ．１，ｋ．２）と、下げ操作指数ｄｄが最大である組み合わせ（ｋ．２，ｋ．３）との関係において、下げ操作指数ｄｄ（ｋ．２，ｋ．３）と下げ操作指数ｄｄ（ｋ．１，ｋ．２）との差の絶対値が係数γより大きい場合には、「ｋ．３」のラベルを有するノード３１は、下げ操作対象にする。そして、次点の組み合わせである（ｋ．１，ｋ．２）に対しては、変更を行わない。なお、係数γは、階層構造改変処理装置２００の入力モジュール（図示せず）から、パラメータとして与えてよい。
【００７４】
次に、図１２の処理を説明する。図１３は、第２実施形態に係る階層構造改変処理のフローチャートである。
【００７５】
Ｓ３０〜Ｓ３７：制御モジュール２０１は、第１実施形態のＳ１０〜Ｓ１７と同様の処理を行う。なお、Ｓ３７がＮＯの場合には、Ｓ４４に処理を移す。
【００７６】
Ｓ３８：制御モジュール２０１（次点下げ操作候補抽出モジュール２１４）は、Ｓ３３で抽出された下げ操作の候補の次に下げ操作指数ｄｄが大きい値であったノードの組み合わせである次点下げ操作の候補を抽出する。この次点下げ操作の候補が上げ操作の候補になっていた場合には、制御モジュール２０１は、更に次の次点下げ操作の候補を抽出する。
なお、この時点で、次点下げ操作の候補に対してアクセス数抑制を行ってもよい。
【００７７】
Ｓ３９：制御モジュール２０１は、次点下げ操作の対象になるノードを、下げ操作対象のノードに対応付けて記憶モジュール２０２に退避する。
【００７８】
Ｓ４０：制御モジュール２０１（操作判定モジュール２１２）は、Ｓ３３で抽出された下げ操作の対象になるノードの下げ操作指数（ｄｄ）と、そのノードと同じ階層の次に下げ操作の対象になる次点下げ操作対象のノードの下げ操作指数（ｄｄｎ）との下げ操作指数の差の絶対値が、係数γより大きいか否かを判断する。差の絶対値が係数γより大きい場合（Ｓ４０：ＹＥＳ）には、処理をＳ４１に移し、差の絶対値が係数γ以下の場合（Ｓ４０：ＮＯ）には、処理をＳ４２に移す。
【００７９】
Ｓ４１：制御モジュール２０１（操作判定モジュール２１２）は、Ｓ４０にて処理対象のノードを、上げ操作の対象になるノードの集合から削除する。よって、処理対象のノードは、下げ操作の対象になる。その後、処理をＳ４４に移す。
【００８０】
Ｓ４２：制御モジュール２０１（操作判定モジュール２１２）は、Ｓ４０にて処理対象のノードを、下げ操作の対象になるノードの集合から削除する。よって、処理対象のノードは、上げ操作の対象になる。
【００８１】
Ｓ４３：制御モジュール２０１（操作判定モジュール２１２）は、Ｓ４０にて処理対象のノードに対応する同じ階層の次点下げ操作の対象になるノードを、下げ操作の対象に追加する。
【００８２】
Ｓ４４〜Ｓ４７：制御モジュール２０１は、第１実施形態のＳ１９〜Ｓ２２と同様の処理を行う。なお、Ｓ４７では、改変後階層構造データ記憶モジュール２２２に記憶する。
【００８３】
このように、階層構造改変処理装置２００は、矛盾する変更を生じるノードに対して、下げ操作指数ｄｄが最大値のものと、その次に大きい値のものとの差の絶対値が、係数γより大きい場合には、下げ操作を優先し、そうでない場合には、上げ操作を優先してかつ次点の組み合わせに対して下げ操作を適用することができる。よって、階層構造データ３０の下げ操作の必然性が比較的小さい場合に、上げ操作の機会を失わずに済む。また、上げ操作の候補と下げ操作の候補とを抽出した上で、まとめて操作処理を行うので、効率がよい。また、訓練事例抑制機能、アクセス数抑制機能によって、上げ操作先の階層における事例数が膨大となってしまうこと又はアクセス数が多いにもかかわらず下げ操作の対象となってしまうことを回避することができる。その結果、高精度で高効率な機械的処理が容易な階層構造とすることができる。
【００８４】
図１４は、第２実施形態に係る階層構造改変処理のフローチャートである。図１３に例示のフローチャートでは、前半で訓練事例抑制、アクセス数抑制を行ったが、図１４に例示のフローチャートでは、後半で行うものである。先に矛盾解消を行った後に訓練事例抑制、アクセス数抑制の処理を行うので、訓練事例抑制、アクセス数抑制の対象は図１３に例示のフローチャートよりは減ることになるが、その効果は図１３に例示のフローチャートとほぼ同等である。
【００８５】
Ｓ１３０〜Ｓ１３５：制御モジュール２０１は、第１実施形態のＳ１１０〜Ｓ１１５と同様の処理を行う。なお、Ｓ１３５がＮＯの場合には、Ｓ１４２に処理を移す。
【００８６】
Ｓ１３６：制御モジュール２０１（次点下げ操作候補抽出モジュール２１４）は、Ｓ１３２で抽出された下げ操作の候補の次に下げ操作指数ｄｄが大きい値であったノードの組み合わせである次点下げ操作の候補を抽出する。この次点下げ操作の候補が上げ操作の候補になっていた場合には、制御モジュール２０１は、更に次の次点下げ操作の候補を抽出する。
なお、この時点で、次点下げ操作の候補に対してアクセス数抑制を行ってもよい。
【００８７】
Ｓ１３７：制御モジュール２０１は、次点下げ操作の対象になるノードを、下げ操作対象のノードに対応付けて記憶モジュール２０２に退避する。
Ｓ１３８：制御モジュール２０１（操作判定モジュール２１２）は、Ｓ１３２で抽出された下げ操作の対象になるノードの下げ操作指数（ｄｄ）と、そのノードと同じ階層の次に下げ操作の対象になる次点下げ操作対象のノードの下げ操作指数（ｄｄｎ）との下げ操作指数の差の絶対値が、係数γより大きいか否かを判断する。差の絶対値が係数γより大きい場合（Ｓ１３８：ＹＥＳ）には、処理をＳ１３９に移し、差の絶対値が係数γ以下の場合（Ｓ１３８：ＮＯ）には、処理をＳ１４０に移す。
【００８８】
Ｓ１３９：制御モジュール２０１（操作判定モジュール２１２）は、Ｓ１３８にて処理対象のノードを、上げ操作の対象になるノードの集合から削除する。よって、処理対象のノードは、下げ操作の対象になる。その後、処理をＳ１４２に移す。
Ｓ１４０：制御モジュール２０１（操作判定モジュール２１２）は、Ｓ１３８にて処理対象のノードを、下げ操作の対象になるノードの集合から削除する。よって、処理対象のノードは、上げ操作の対象になる。
Ｓ１４１：制御モジュール２０１（操作判定モジュール２１２）は、Ｓ１３８にて処理対象のノードに対応する同じ階層の次点下げ操作の対象になるノードを、下げ操作の対象に追加する。
Ｓ１４２〜Ｓ１４７：制御モジュール２０１は、第１実施形態のＳ１１７〜Ｓ１２２と同様の処理を行う。なお、Ｓ１４７では、改変後階層構造データ記憶モジュール２２２に記憶する。
【００８９】
（第３実施形態）
次に、本発明を適用した第３実施形態について説明する。第３実施形態は、まとめて処理を行う場合に有用な、第１及び第２実施形態とは異なる第３のアルゴリズムに関するものである。
【００９０】
［階層構造改変処理装置３００の機能構成］
図１５は、第３実施形態に係る階層構造改変処理装置３００の機能構成を示す図である。階層構造改変処理装置３００の制御モジュール３０１は、上げ操作候補抽出モジュール３１０、下げ操作候補抽出モジュール３１１、操作判定モジュール３１２、矛盾回避処理モジュール３１５、操作抑制モジュール３１６を備える。また、記憶モジュール３０２は、第１実施形態の改変後階層構造データ記憶モジュール２２や第２実施形態の改変後階層構造データ記憶モジュール２２２とは異なる階層構造データを格納する改変後階層構造データ記憶モジュール３２２を備える。なお、操作抑制モジュール３１６は、前述の操作抑制モジュール１６と同等の機能を有する。
【００９１】
［アルゴリズム３］
図１６は、第３実施形態に係る矛盾する変更に対する回避方法を示す図である。ここで、以下は、操作判定モジュール３１２により判定処理が行われる。「ｋ．３」のラベルを有するノード３１は、上げ操作対象のノードであると共に、下げ操作対象のノードである。この場合に、「ｋ．３」ラベルを有するノード３１の上げ操作指数ｄｕと、ノード３１と同一の階層であり下げ操作指数ｄｄが最大値である下げ操作指数ｄｄ（ｋ．２，ｋ．３）とにおいて、上げ操作指数ｄｕが、下げ操作指数ｄｄに係数δ（第３の所定値）を乗じた値より小さければ、下げ操作対象にする。他方、上げ操作指数ｄｕが、下げ操作指数ｄｄに係数δを乗じた値以上であれば、上げ操作対象にする。なお、係数δは、階層構造改変処理装置３００の入力モジュール（図示せず）から、パラメータとして与えてよい。
【００９２】
図１６（ａ）は、階層構造データ３０のノード３１が、下げ操作の対象である場合、つまり、「ｋ．３」のラベルを有する上げ操作指数ｄｕが、下げ操作指数ｄｄ（ｋ．２，ｋ．３）に係数δを乗じた値より小さい場合を示す。図１６（ａ）には、階層構造データ３０のノード３１を、下げ操作を行うために、ノード３５の下位のノード３６に変更する過程が示されている。
【００９３】
図１６（ｂ）は、階層構造データ３０のノード３１が、上げ操作の対象である場合、つまり、「ｋ．３」のラベルを有する上げ操作指数ｄｕが、下げ操作指数ｄｄ（ｋ．２，ｋ．３）に係数δを乗じた値以上である場合を示す。図１６（ｂ）には、階層構造データ３０のノード３１を、上げ操作を行うために、ノード３３の下位のノード３４に変更する過程が示されている。
【００９４】
次に、図１６で説明した処理を説明する。図１７は、第３実施形態に係る階層構造改変処理のフローチャートである。
【００９５】
Ｓ５０：制御モジュール３０１（上げ操作候補抽出モジュール３１０）は、階層構造データ３０の全てのノードに対して、上げ操作候補を抽出する。そして、抽出した上げ操作候補に関して上げ操作指数ｄｕを算出する。上げ操作候補の抽出及び上げ操作指数ｄｕの算出は、前述の図４で説明した処理により抽出できる。
Ｓ５１：制御モジュール３０１（操作抑制モジュール３１６）は、訓練事例抑制の条件を満たす上げ操作候補を適用予定の操作集合から取り除き、ｄｕを算出する。
【００９６】
Ｓ５２：制御モジュール３０１は、上げ操作の対象になるノードの集合と、各ノードの上げ操作指数ｄｕとを記憶モジュール３０２に退避する。
【００９７】
Ｓ５３：制御モジュール３０１（下げ操作候補抽出モジュール３１１）は、階層構造データ３０の全てのノードに対して、下げ操作候補を抽出する。そして、抽出した下げ操作候補に関して下げ操作指数ｄｄを算出する。下げ操作候補の抽出及び下げ操作指数ｄｄの算出は、前述の図５で説明した処理により抽出できる。
Ｓ５４：制御モジュール３０１（下げ操作候補抽出モジュール３１１）は、階層構造データ３０の全てのノードに対して、マージ操作の候補を抽出する。
Ｓ５５：制御モジュール３０１（操作抑制モジュール３１６）は、アクセス数抑制の条件を満たす下げ操作候補又はマージ操作候補を適用予定の操作集合から取り除き、ｄｄを算出する。
【００９８】
Ｓ５６：制御モジュール３０１は、下げ操作とマージ操作の対象になるノードの集合と、各ノードの下げ操作指数ｄｄとを記憶モジュール３０２に退避する。
【００９９】
Ｓ５７：制御モジュール３０１（操作判定モジュール３１２）は、上げ操作対象かつ下げ操作対象になるノードが存在するか否かを判断する。制御モジュール３０１は、対象のノードが存在する場合（Ｓ５７：ＹＥＳ）は、処理をＳ５８に移し、対象のノードが存在しない場合（Ｓ５７：ＮＯ）は、処理をＳ６１に移す。
【０１００】
Ｓ５８：制御モジュール３０１（操作判定モジュール３１２）は、上げ操作の対象になるノードの集合の各ノードの上げ操作指数ｄｕが、各ノードに対応する下げ操作の対象になるノードの下げ操作指数ｄｄに係数δを乗じた数より小さいか否かを各々判断する。上げ操作指数ｄｕが下げ操作指数ｄｄに係数δを乗じた数より小さい場合（Ｓ５８：ＹＥＳ）には、処理をＳ５９に移し、上げ操作指数ｄｕが下げ操作指数ｄｄに係数δを乗じた数以上である場合（Ｓ５８：ＮＯ）には、処理をＳ６０に移す。
【０１０１】
Ｓ５９：制御モジュール３０１（操作判定モジュール３１２）は、Ｓ５８で処理対象にしたノードを、上げ操作の対象になるノードの集合から削除する。よって、処理対象のノードは、下げ操作の対象になる。その後、処理をＳ６１に移す。
【０１０２】
Ｓ６０：制御モジュール３０１（操作判定モジュール３１２）は、Ｓ５８で処理対象にしたノードを、下げ操作の対象になるノードの集合から削除する。よって、処理対象のノードは、上げ操作の対象になる。
【０１０３】
Ｓ６１：制御モジュール３０１（階層構造改変処理モジュール１３）は、上げ操作の対象になるノードの集合の各ノードに対して上げ操作を行う。
【０１０４】
Ｓ６２：制御モジュール３０１（階層構造改変処理モジュール１３）は、下げ操作の対象になるノードの集合の各ノードに対して下げ操作を行う。
Ｓ６３：制御モジュール３０１（階層構造改変処理モジュール１３）は、マージ操作の対象になるノードの集合の各ノードに対してマージ操作を行う。
【０１０５】
Ｓ６４：制御モジュール３０１は、操作を行った階層構造データを改変後階層構造データ記憶モジュール３２２に記憶する。
【０１０６】
このように、階層構造改変処理装置３００は、矛盾する変更を生じるノードに対して、上げ操作指数ｄｕと下げ操作指数ｄｄとの割合によって上げ操作と下げ操作とのどちらを適用するかを判定するので、より適した根拠により、採用する変更を決定することができる。また、上げ操作の候補と下げ操作の候補とを抽出した上で、まとめて操作処理を行うので、効率がよい。また、訓練事例抑制機能、アクセス数抑制機能によって、上げ操作先の階層における事例数が膨大となってしまうこと又はアクセス数が多いにもかかわらず下げ操作の対象となってしまうことを回避することができる。その結果、高精度で高効率な機械的処理が容易な階層構造とすることができる。
【０１０７】
図１８は、第３実施形態に係る階層構造改変処理のフローチャートである。図１７に例示のフローチャートでは、前半で訓練事例抑制、アクセス数抑制を行ったが、図１８に例示のフローチャートでは、後半で行うものである。先に矛盾解消を行った後に訓練事例抑制、アクセス数抑制の処理を行うので、訓練事例抑制、アクセス数抑制の対象は図１７に例示のフローチャートよりは減ることになるが、その効果は図１７に例示のフローチャートとほぼ同等である。
【０１０８】
Ｓ１５０：制御モジュール３０１（上げ操作候補抽出モジュール３１０）は、階層構造データ３０の全てのノードに対して、上げ操作候補を抽出する。そして、抽出した上げ操作候補に関して上げ操作指数ｄｕを算出する。上げ操作候補の抽出及び上げ操作指数ｄｕの算出は、前述の図４で説明した処理により抽出できる。
【０１０９】
Ｓ１５１：制御モジュール３０１は、上げ操作の対象になるノードの集合と、各ノードの上げ操作指数ｄｕとを記憶モジュール３０２に退避する。
Ｓ１５２：制御モジュール３０１（下げ操作候補抽出モジュール３１１）は、階層構造データ３０の全てのノードに対して、下げ操作候補を抽出する。そして、抽出した下げ操作候補に関して下げ操作指数ｄｄを算出する。下げ操作候補の抽出及び下げ操作指数ｄｄの算出は、前述の図５で説明した処理により抽出できる。
Ｓ１５３：制御モジュール３０１（下げ操作候補抽出モジュール３１１）は、階層構造データ３０の全てのノードに対して、マージ操作の候補を抽出する。
Ｓ１５４：制御モジュール３０１は、下げ操作とマージ操作の対象になるノードの集合と、各ノードの下げ操作指数ｄｄとを記憶モジュール３０２に退避する。
【０１１０】
Ｓ１５５：制御モジュール３０１（操作判定モジュール３１２）は、上げ操作対象かつ下げ操作対象になるノードが存在するか否かを判断する。制御モジュール３０１は、対象のノードが存在する場合（Ｓ１５５：ＹＥＳ）は、処理をＳ１５６に移し、対象のノードが存在しない場合（Ｓ１５５：ＮＯ）は、処理をＳ１５９に移す。
Ｓ１５６：制御モジュール３０１（操作判定モジュール３１２）は、上げ操作の対象になるノードの集合の各ノードの上げ操作指数ｄｕが、各ノードに対応する下げ操作の対象になるノードの下げ操作指数ｄｄに係数δを乗じた数より小さいか否かを各々判断する。上げ操作指数ｄｕが下げ操作指数ｄｄに係数δを乗じた数より小さい場合（Ｓ１５６：ＹＥＳ）には、処理をＳ１５７に移し、上げ操作指数ｄｕが下げ操作指数ｄｄに係数δを乗じた数以上である場合（Ｓ１５６：ＮＯ）には、処理をＳ１５８に移す。
【０１１１】
Ｓ１５７：制御モジュール３０１（操作判定モジュール３１２）は、Ｓ１５６で処理対象にしたノードを、上げ操作の対象になるノードの集合から削除する。よって、処理対象のノードは、下げ操作の対象になる。その後、処理をＳ１５９に移す。
Ｓ１５８：制御モジュール３０１（操作判定モジュール３１２）は、Ｓ１５６で処理対象にしたノードを、下げ操作の対象になるノードの集合から削除する。よって、処理対象のノードは、上げ操作の対象になる。
【０１１２】
Ｓ１５９：制御モジュール３０１（操作抑制モジュール３１６）は、訓練事例抑制の条件を満たす上げ操作候補を適用予定の操作集合から取り除く。
Ｓ１６０：制御モジュール３０１（操作抑制モジュール３１６）は、アクセス数抑制の条件を満たす下げ操作候補又はマージ操作候補を適用予定の操作集合から取り除く。
【０１１３】
Ｓ１６１：制御モジュール３０１（階層構造改変処理モジュール１３）は、上げ操作の対象になるノードの集合の各ノードに対して上げ操作を行う。
Ｓ１６２：制御モジュール３０１（階層構造改変処理モジュール１３）は、下げ操作の対象になるノードの集合の各ノードに対して下げ操作を行う。
Ｓ１６３：制御モジュール３０１（階層構造改変処理モジュール１３）は、マージ操作の対象になるノードの集合の各ノードに対してマージ操作を行う。
Ｓ１６４：制御モジュール３０１は、操作を行った階層構造データを改変後階層構造データ記憶モジュール３２２に記憶する。
【０１１４】
特に、矛盾回避処理に関する発明については、以下のように捉えてもよい。
（１）矛盾回避処理部は、上げ操作候補抽出部による上げ操作の候補であり、かつ下げ操作候補抽出部による下げ操作の候補である各ノードに対して、下げ操作を行うように判定する操作判定部と、前記操作判定部の判定結果に応じた操作を行い、前記上げ操作候補抽出部による前記上げ操作のみの候補である前記各ノードに対して上げ操作を行い、前記下げ操作候補抽出部による前記下げ操作のみの候補である前記各ノードに対して下げ操作を行うことで、対象になる前記各ノードの位置を変更して前記階層構造データを改変する階層構造改変処理部とを有する。
（２）同一の階層の前記各ノードの組み合わせのうち、前記下げ操作指数が前記最高値の組み合わせの次に大きい値の組み合わせである次点組み合わせに対して、前記所定の条件によって前記下げ操作の候補になる前記ノードの集合を抽出する次点下げ操作候補抽出部を備え、矛盾回避処理部は、前記上げ操作候補抽出部による前記上げ操作の候補であり、かつ前記下げ操作候補抽出部による前記下げ操作の候補である前記各ノードに対する操作を判定する操作判定部と、前記操作判定部の判定結果に応じた操作を行い、前記上げ操作候補抽出部による前記上げ操作のみの候補である前記各ノードに対して上げ操作を行い、前記下げ操作候補抽出部による前記下げ操作のみの候補である前記各ノードに対して下げ操作を行うことで、対象になる前記各ノードの位置を変更して前記階層構造データを改変する階層構造改変処理部と、を有し、前記操作判定部は、前記最高値の組み合わせと前記次点組み合わせとの前記下げ操作指数の差の絶対値が第２の所定値より大きいことに応じて、前記各ノードに対して前記下げ操作を行うように判定し、前記最高値の組み合わせと前記次点組み合わせとの前記下げ操作指数の差の絶対値が前記第２の所定値に等しいか小さいことに応じて、前記各ノードに対して、前記上げ操作を行い、かつ、前記次点下げ操作候補抽出部により抽出された前記下げ操作の候補である前記各ノードに対して前記下げ操作を行うように判定する。
（３）矛盾回避処理部は、前記上げ操作候補抽出部による前記上げ操作の候補であり、かつ前記下げ操作候補抽出部による前記下げ操作の候補である前記各ノードに対する操作を判定する操作判定部と、前記操作判定部の判定結果に応じた操作を行い、前記上げ操作候補抽出部による前記上げ操作のみの候補である前記各ノードに対して上げ操作を行い、前記下げ操作候補抽出部による前記下げ操作のみの候補である前記各ノードに対して下げ操作を行うことで、対象になる前記各ノードの位置を変更して前記階層構造データを改変する階層構造改変処理部と、を有し、前記操作判定部は、前記各ノードの前記上げ操作指数が前記下げ操作指数に第３の所定値を乗じた値よりも小さいことに応じて前記下げ操作を行うように判定し、前記上げ操作指数が前記下げ操作指数に前記第３の所定値を乗じた値に等しいか大きいことに応じて前記上げ操作を行うように判定する。
【０１１５】
以上、本発明の実施形態について説明したが、本発明は前述した実施形態に限るものではない。また、本発明の実施形態に記載された効果は、本発明から生じる最も好適な効果を列挙したに過ぎず、本発明による効果は、本発明の実施形態に記載されたものに限定されるものではない。実施の形態におけるモジュールは、部、セクション、ユニット、回路等と読み替えてもよい。特に、回路については、一部分のモジュールだけをハードウェアとしての回路と読み替えてもよい。そして、請求項に記載の「手段」は、実施形態におけるモジュールを含み、回路等であってもよい。
前述の実施の形態では、上げ操作に対して訓練事例抑制、下げ操作またはマージ操作に対してアクセス数抑制を行っているが、上げ操作に対してアクセス数抑制、下げ操作またはマージ操作に対して訓練事例抑制を行うようにしてもよい。さらに、上げ操作に対して訓練事例抑制とアクセス数抑制の両方、下げ操作またはマージ操作に対して訓練事例抑制とアクセス数抑制の両方を行うようにしてもよい。
【符号の説明】
【０１１６】
１，２０１，３０１ 制御モジュール
２，２０２，３０２ 記憶モジュール
１０，３１０ 上げ操作候補抽出モジュール
１１，３１１ 下げ操作候補抽出モジュール
１２，２１２，３１２ 操作判定モジュール
１３ 階層構造改変処理モジュール
１５，２１５，３１５ 矛盾回避処理モジュール
１６，３１６ 操作抑制モジュール
２０ 階層構造データ記憶モジュール
２１ 分類結果データ記憶モジュール
２２，２２２，３２２ 改変後階層構造データ記憶モジュール
３０ 階層構造データ
３１〜３８ ノード
１００，２００，３００ 階層構造改変処理装置
２１４ 次点下げ操作候補抽出モジュール
ｄｄ 下げ操作指数
ｄｕ 上げ操作指数
【要約】
【課題】階層構造に対する操作において、上げ操作先の階層における事例数が膨大となってしまうこと又はアクセス数が多いにもかかわらず下げ操作の対象となってしまうことを回避する階層構造改変処理装置を提供する。
【解決手段】階層構造改変処理装置は、階層構造のノードを格納する階層構造データと複数のノードの各々の分類結果データとを記憶する記憶手段と、所定の条件で現在位置から上位の階層に変更する上げ操作候補のノードの集合を抽出する上げ操作候補抽出手段と、上げ操作の候補になるノードの変更先である階層にあるノードの事例数を算出し、該事例数が、予め定められた閾値より多い又は以上である場合は、該ノードを前記集合から取り除く取除手段を備える。
【選択図】図１【図１】
0005433765.tif 000002
【図２】
0005433765.tif 000003
【図３】
0005433765.tif 000004
【図４】
0005433765.tif 000005
【図５】
0005433765.tif 000006
【図６】
0005433765.tif 000007
【図７】
0005433765.tif 000008
【図８】
0005433765.tif 000009
【図９】
0005433765.tif 000010
【図１０】
0005433765.tif 000011
【図１１】
0005433765.tif 000012
【図１２】
0005433765.tif 000013
【図１３】
0005433765.tif 000014
【図１４】
0005433765.tif 000015
【図１５】
0005433765.tif 000016
【図１６】
0005433765.tif 000017
【図１７】
0005433765.tif 000018
【図１８】
0005433765.tif 000019