(57)【要約】【課題】画面にグラフを表示してデータの分析を行う際に、画面に大量のノードを表示しなくとも詳細なデータの分析を的確に行えるようにする。【解決手段】表示用データ作成部１３は親ノードのうち少なくとも１つを含むグラフの表示用グラフデータ１３１を作成する。インタフェース部１４は表示用グラフデータ１３１を画面に表示する。また、表示用グラフデータ１３１に含まれる親ノードのうち１つを選択する操作と、複数種類の属性のうち１種類を選択する操作とを受け付ける。表示用データ作成部１３は、子ノードのうち、選択された親ノードに対応する子ノードであって、選択された属性について属性値が所定の基準を満たす子ノードを抽出する。そして、抽出した子ノードと当該子ノード及び当該親ノード間を結ぶエッジとを表示用グラフデータ１３１に追加してインタフェース部１４に表示させる。【選択図】図１
2011164830.tif 000002
【特許請求の範囲】
【請求項１】
複数のノードとノード間を結ぶ複数のエッジとで構成されるグラフを表示するグラフ可視化装置において、
前記複数のノードのうち、互いに親子関係をもつノードである親ノード及び子ノードを対応付けて示す階層ノードデータと、ノードごとに、複数種類の属性それぞれについて属性値を示すノード属性データとを格納する記憶装置と、
前記記憶装置に格納された階層ノードデータが示す親ノードのうち少なくとも１つを含むグラフの表示用グラフデータを処理装置により作成する表示用データ作成部と、
前記表示用データ作成部が作成した表示用グラフデータを出力装置により画面に表示し、表示した表示用グラフデータに含まれる親ノードのうち１つを選択する操作と、前記複数種類の属性のうち１種類を選択する操作とを入力装置により受け付けるインタフェース部とを備え、
前記表示用データ作成部は、前記記憶装置に格納された階層ノードデータが示す子ノードのうち、前記インタフェース部を介して選択された親ノードに対応する子ノードであって、前記インタフェース部を介して選択された属性について前記記憶装置に格納されたノード属性データが示す属性値が所定の基準を満たす子ノードを抽出し、抽出した子ノードと当該子ノード及び当該親ノード間を結ぶエッジである親子関係エッジとを前記処理装置により前記表示用グラフデータに追加し、新たな表示用グラフデータとして前記インタフェース部に表示させることを特徴とするグラフ可視化装置。
【請求項２】
前記記憶装置は、さらに、前記複数のノードのうち、互いに相関関係をもつノード同士を対応付けて示す関連ノードデータを格納し、
前記表示用データ作成部は、さらに、前記記憶装置に格納された関連ノードデータが示すノードのうち、抽出した子ノードと相関関係をもつノードを関連ノードとして抽出し、抽出した関連ノードと当該関連ノード及び当該子ノード間を結ぶエッジである関連エッジとを前記処理装置により前記表示用グラフデータに追加し、新たな表示用グラフデータとして前記インタフェース部に表示させることを特徴とする請求項１に記載のグラフ可視化装置。
【請求項３】
前記記憶装置は、さらに、互いに相関関係をもつノードの組み合わせごとに、前記複数種類の属性それぞれについて属性値を示すエッジ属性データを格納し、
前記表示用データ作成部は、前記インタフェース部を介して選択された属性について前記記憶装置に格納されたエッジ属性データが示す属性値に応じて、対応する組み合わせのノード間を結ぶ関連エッジの表示態様を設定することを特徴とする請求項２に記載のグラフ可視化装置。
【請求項４】
前記複数のノードは、所定の文書に記載された複数の単語を表すものであり、
前記記憶装置は、前記複数の単語の親子関係を示す単語階層データと、前記所定の文書における単語同士の相関関係を示す単語相関データと、単語ごとに、前記複数種類の属性それぞれについて属性値を示す属性値データとを予め格納し、
前記グラフ可視化装置は、さらに、
前記単語階層データと前記単語相関データと前記属性値データとから、前記処理装置によりそれぞれ前記階層ノードデータと前記関連ノードデータと前記ノード属性データとを作成して前記記憶装置に格納するグラフデータ作成部を備えることを特徴とする請求項２又は３に記載のグラフ可視化装置。
【請求項５】
前記記憶装置は、前記単語階層データと前記単語相関データと前記属性値データとを予め格納する補助記憶装置と、前記グラフデータ作成部が前記単語階層データと前記単語相関データと前記属性値データとから作成したデータを格納するための主記憶装置とからなり、
前記グラフデータ作成部は、前記表示用データ作成部が前記表示用グラフデータに追加したノードとエッジとに基づいて、次に前記表示用データ作成部が抽出するノードを前記処理装置により予測し、予測したノードに係るデータを前記単語階層データと前記単語相関データと前記属性値データとから作成して前記主記憶装置に格納することを特徴とする請求項４に記載のグラフ可視化装置。
【請求項６】
前記インタフェース部は、さらに、選択された属性について属性値の範囲を指定する操作を前記入力装置により受け付け、
前記表示用データ作成部は、前記記憶装置に格納された階層ノードデータが示す子ノードのうち、前記インタフェース部を介して選択された親ノードに対応する子ノードであって、前記インタフェース部を介して選択された属性について前記記憶装置に格納されたノード属性データが示す属性値が前記インタフェース部を介して指定された範囲内となる子ノードを抽出することを特徴とする請求項１から５までのいずれかに記載のグラフ可視化装置。
【請求項７】
前記記憶装置は、前記ノード属性データとして、ノードごとに、前記複数種類の属性と複数の期間との組み合わせそれぞれについて属性値を示すデータを格納し、
前記インタフェース部は、期間を選択する操作を前記入力装置により受け付け、
前記表示用データ作成部は、前記記憶装置に格納された階層ノードデータが示す子ノードのうち、前記インタフェース部を介して選択された親ノードに対応する子ノードであって、前記インタフェース部を介して選択された属性について前記記憶装置に格納されたノード属性データが示す、前記インタフェース部を介して選択された期間における属性値が前記所定の基準を満たす子ノードを抽出することを特徴とする請求項１から６までのいずれかに記載のグラフ可視化装置。
【請求項８】
複数のノードとノード間を結ぶ複数のエッジとで構成されるグラフを表示するグラフ可視化方法において、
前記複数のノードのうち、互いに親子関係をもつノードである親ノード及び子ノードを対応付けて示す階層ノードデータと、ノードごとに、複数種類の属性それぞれについて属性値を示すノード属性データとを格納する記憶装置を備えるコンピュータが、前記記憶装置に格納された階層ノードデータが示す親ノードのうち少なくとも１つを含むグラフの表示用グラフデータを処理装置により作成する表示用データ作成ステップと、
前記コンピュータが、前記表示用データ作成ステップで作成した表示用グラフデータを出力装置により画面に表示し、表示した表示用グラフデータに含まれる親ノードのうち１つを選択する操作と、前記複数種類の属性のうち１種類を選択する操作とを入力装置により受け付ける入出力ステップとを備え、
前記表示用データ作成ステップは、前記記憶装置に格納された階層ノードデータが示す子ノードのうち、前記入出力ステップで選択された親ノードに対応する子ノードであって、前記入出力ステップで選択された属性について前記記憶装置に格納されたノード属性データが示す属性値が所定の基準を満たす子ノードを抽出し、抽出した子ノードと当該子ノード及び当該親ノード間を結ぶエッジである親子関係エッジとを前記処理装置により前記表示用グラフデータに追加し、新たな表示用グラフデータとして前記入出力ステップで表示させることを特徴とするグラフ可視化方法。
【請求項９】
複数のノードとノード間を結ぶ複数のエッジとで構成されるグラフを表示するグラフ可視化プログラムにおいて、
前記複数のノードのうち、互いに親子関係をもつノードである親ノード及び子ノードを対応付けて示す階層ノードデータと、ノードごとに、複数種類の属性それぞれについて属性値を示すノード属性データとを格納する記憶装置を備えるコンピュータに、
前記記憶装置に格納された階層ノードデータが示す親ノードのうち少なくとも１つを含むグラフの表示用グラフデータを処理装置により作成する表示用データ作成処理と、
前記表示用データ作成処理が作成した表示用グラフデータを出力装置により画面に表示し、表示した表示用グラフデータに含まれる親ノードのうち１つを選択する操作と、前記複数種類の属性のうち１種類を選択する操作とを前記入力装置により受け付けるインタフェース処理とを実行させ、
前記表示用データ作成処理は、前記記憶装置に格納された階層ノードデータが示す子ノードのうち、前記インタフェース処理を介して選択された親ノードに対応する子ノードであって、前記インタフェース処理を介して選択された属性について前記記憶装置に格納されたノード属性データが示す属性値が所定の基準を満たす子ノードを抽出し、抽出した子ノードと当該子ノード及び当該親ノード間を結ぶエッジである親子関係エッジとを前記処理装置により前記表示用グラフデータに追加し、新たな表示用グラフデータとして前記インタフェース処理に表示させることを特徴とするグラフ可視化プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、グラフ可視化装置及びグラフ可視化方法及びグラフ可視化プログラムに関するものである。
【背景技術】
【０００２】
グラフ可視化装置は、蓄積された文書データを解析して、文書データのテキストに含まれる単語同士の関係をノード及びエッジで構成されたネットワークグラフとして表すグラフデータを生成し、このグラフデータを画面上に表示するものである（例えば、特許文献１〜４参照）。画面上に表示可能な情報量には限りがあるため、従来のグラフ可視化装置では、閾値処理法等によって重要度の低いデータを隠蔽し、重要度の高い特徴的部分のみを表示していた。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２００９−７５８８１号公報
【特許文献２】特開２００７−２９３６８５号公報
【特許文献３】特開２００７−２０６７７１号公報
【特許文献４】特開２００４−３４８５５５号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
従来のグラフ可視化装置では、閾値処理法等を用いる場合、データ全体に対して１つの閾値を使うのが一般的であった。そのため、グラフ可視化装置が大量のノードを間引いてグラフデータを表示している場合に、ユーザが画面上で隠蔽された部分の詳細を見ようとして閾値を下げる操作を行うと、わずかに閾値を操作しただけでグラフ可視化装置が表示すべきノードの数が大幅に増えることになる。しかし、表示すべきノードの数が画面上に表示可能な数を超えると、少なくとも超過分のノードは表示されなくなってしまうため、着目すべきデータが表示されない可能性がある。そのため、詳細なデータの分析が的確に行えないという課題があった。
【０００５】
本発明は、例えば、画面にグラフを表示してデータの分析を行う際に、画面に大量のノードを表示しなくとも詳細なデータの分析を的確に行えるようにすることを目的とする。
【課題を解決するための手段】
【０００６】
本発明の一の態様に係るグラフ可視化装置は、
複数のノードとノード間を結ぶ複数のエッジとで構成されるグラフを表示するグラフ可視化装置であり、
前記複数のノードのうち、互いに親子関係をもつノードである親ノード及び子ノードを対応付けて示す階層ノードデータと、ノードごとに、複数種類の属性それぞれについて属性値を示すノード属性データとを格納する記憶装置と、
前記記憶装置に格納された階層ノードデータが示す親ノードのうち少なくとも１つを含むグラフの表示用グラフデータを処理装置により作成する表示用データ作成部と、
前記表示用データ作成部が作成した表示用グラフデータを出力装置により画面に表示し、表示した表示用グラフデータに含まれる親ノードのうち１つを選択する操作と、前記複数種類の属性のうち１種類を選択する操作とを入力装置により受け付けるインタフェース部とを備え、
前記表示用データ作成部は、前記記憶装置に格納された階層ノードデータが示す子ノードのうち、前記インタフェース部を介して選択された親ノードに対応する子ノードであって、前記インタフェース部を介して選択された属性について前記記憶装置に格納されたノード属性データが示す属性値が所定の基準を満たす子ノードを抽出し、抽出した子ノードと当該子ノード及び当該親ノード間を結ぶエッジである親子関係エッジとを前記処理装置により前記表示用グラフデータに追加し、新たな表示用グラフデータとして前記インタフェース部に表示させることを特徴とする。
【発明の効果】
【０００７】
本発明の一の態様において、グラフ可視化装置の表示用データ作成部は、親ノードのうち少なくとも１つを含むグラフの表示用グラフデータを作成し、グラフ可視化装置のインタフェース部は、この表示用グラフデータを画面に表示する。インタフェース部は、この表示用グラフデータに含まれる親ノードのうち１つを選択する操作と、複数種類の属性のうち１種類を選択する操作とを受け付ける。表示用データ作成部は、子ノードのうち、インタフェース部を介して選択された親ノードに対応する子ノードであって、インタフェース部を介して選択された属性について属性値が所定の基準を満たす子ノードを抽出する。そして、表示用データ作成部は、抽出した子ノードと当該子ノード及び当該親ノード間を結ぶエッジである親子関係エッジとを表示用グラフデータに追加し、新たな表示用グラフデータとしてインタフェース部に表示させる。これにより、画面に大量のノードを表示しなくとも詳細なデータの分析を的確に行うことが可能となる。
【図面の簡単な説明】
【０００８】
【図１】実施の形態１に係るグラフ可視化装置の構成を示すブロック図である。
【図２】実施の形態１に係る単語階層データの例を示す図である。
【図３】実施の形態１に係る単語相関データ、属性値データ、属性値設定データの例を示す図である。
【図４】実施の形態１に係る階層ノードデータ、階層ノード優先度データの例を示す図である。
【図５】実施の形態１に係る関連エッジデータ、関連エッジ優先度データの例を示す図である。
【図６】実施の形態１に係るインタフェース部の入出力画面例を示す図である。
【図７】実施の形態１に係るグラフ可視化装置のハードウェア構成の一例を示す図である。
【図８】実施の形態１に係るグラフ可視化装置の動作を示すフローチャートである。
【図９】実施の形態１に係るグラフ可視化装置の動作を示すフローチャートである。
【図１０】実施の形態１に係るグラフ可視化装置の動作を示すフローチャートである。
【図１１】実施の形態１に係るグラフ可視化装置の動作を示すフローチャートである。
【図１２】実施の形態２に係るインタフェース部の入出力画面例を示す図である。
【図１３】実施の形態３に係るグラフ可視化装置の構成を示すブロック図である。
【発明を実施するための形態】
【０００９】
以下、本発明の実施の形態について、図を用いて説明する。
【００１０】
実施の形態１．
図１は、本実施の形態に係るグラフ可視化装置１０の構成を示すブロック図である。
【００１１】
グラフ可視化装置１０は、複数のノードとノード間を結ぶ複数のエッジとで構成されるグラフを表示する。本実施の形態において、複数のノードは、所定の文書に記載された複数の単語を表すものとする。例えば、任意の文書データのテキストに含まれる単語１つ１つをノードとすることができる。なお、後述するように、互いに親子関係又は相関関係をもつものであれば、単語以外のテキスト、あるいは、その他の種類のデータをノードとして扱ってもよい。
【００１２】
前述したように、従来のグラフ可視化装置では、データ全体に対して１つの閾値を使うのが一般的であったため、表示すべきノードの数が画面上に表示可能な数を超えると、着目すべきデータが表示されない可能性があり、詳細なデータの分析が的確に行えないという課題があった。これに対し、本実施の形態では、ノードやエッジに対して、閾値処理が適用可能な数値属性を複数付与している。そして、グラフ可視化装置１０では、それらの属性から閾値処理に用いる属性をユーザに選択させ、部分データごとに異なる値を用いて閾値処理をする。そのため、ユーザが１つの閾値を操作しただけでグラフ可視化装置１０が表示すべきノードの数が大幅に増えるということがない。したがって、画面に大量のノードを表示しなくとも詳細なデータの分析を的確に行うことが可能となる。
【００１３】
大量のデータをグラフ化の対象とする場合、それを何らかの基準で分類し、部分グラフ化した上で、その一部分で適用する閾値や閾値処理に用いる属性を変えると、よりデータの特性に合った情報を表示することができるようになる。本実施の形態では、そのような特徴的な機能をグラフ可視化装置１０に実装している。
【００１４】
ここで、データの部分ごとに閾値処理を行うためには、まず閾値を適用する部分を特定した上で、その部分のデータを、閾値処理に用いる属性の数値（属性値）でソートした状態で抽出する必要がある。従来のグラフ可視化装置では、属性を１つしか用いていなかったため、予めその属性値でソートした状態のデータリストを作成しておき、その上位データのみを抽出すればよかった。しかし、データの部分ごとに閾値処理を行う場合、抽出すべきデータが多岐にわたるため、抽出処理にかかる負荷が高くなる。さらに、属性の種類が増えることによって抽出処理で扱う属性値の数が増える。したがって、画面上でのインタラクティブな操作によってデータの分析を行う際に求められる応答性能を満たすには、適切なデータ構造を用いる必要がある。本実施の形態では、そのような特徴的なデータ構造をグラフ可視化装置１０に採用している。
【００１５】
図１において、グラフ可視化装置１０は、記憶装置１１を備えるほか、図示してない処理装置、入力装置、出力装置等のハードウェアを備える。また、グラフ可視化装置１０は、グラフデータ作成部１２、表示用データ作成部１３、インタフェース部１４を備える。ハードウェアはグラフ可視化装置１０の各部によって利用される。例えば、処理装置は、グラフ可視化装置１０の各部でデータや情報の演算、加工、読み取り、書き込み等を行うために利用される。記憶装置１１は、そのデータや情報を記憶するために利用される。また、入力装置は、そのデータや情報を入力するために、出力装置は、そのデータや情報を出力するために利用される。
【００１６】
記憶装置１１（例えば、ハードディスク）は、単語階層データ１１１、単語相関データ１１２、属性値データ１１３、属性値設定データ１１４の４種類の入力データを予め格納する。
【００１７】
単語階層データ１１１は、文書データから抽出された単語を、単語の意味等を用いて分類し、単語同士の親子関係を木構造で表したデータである。つまり、単語階層データ１１１は、所定の文書に記載された複数の単語の親子関係を示すデータである。ここで、図２に単語階層データ１１１の例を示す。図２の例において、『顧客』、『製品』、『開拓中』、『見込み』、『既存』、『Ａ社』、『Ｂ社』、『Ｓシリーズ』、『Ｓ０１』等は文書から抽出された単語やそれを階層化するために追加された抽象語であり、個々のノードである。ノード群は複数の階層で構成された木構造データである。例えば、『顧客』と『既存』は、前者を親、後者を子とする親子関係をもっている。同様に、『既存』と『Ａ社』は、前者を親、後者を子とする親子関係をもっている。また、『顧客』と『製品』は、互いに親が同じである兄弟の関係をもっている。同様に、『開拓中』と『見込み』と『既存』は、兄弟の関係をもっている。
【００１８】
単語相関データ１１２は、文書データから抽出された単語同士の、同一文書中に出現する頻度や、掛かり受け等の、親子関係以外の関係について集計したデータである。つまり、単語相関データ１１２は、所定の文書における単語同士の相関関係を示すデータである。ここで、図３（ａ）に単語相関データ１１２の例を示す。図３（ａ）の例において、「相関１」テーブルは、２つの単語の組み合わせごとに、両方の単語が同一文書中に出現した頻度（単語共起関係）を相関関係として表している。「抽出語」列には、単語の組み合わせが格納されている。「抽出語」列に含まれる『Ａ社』、『Ｂ社』、『Ｓシリーズ』、『Ｓ０１』等は文書から抽出された単語やそれを階層化するために追加された抽象語である。「共起文書数」列には、それらの単語が同時に使われている文書数の集計値が格納されている。
【００１９】
属性値データ１１３は、文書以外から得られる単語に関する情報、即ち、属性情報を数値等で表したデータである。例えば、単語として会社名があるとすると、それに対応する属性値として、会社別・製品別の売上高データや問い合わせ数、会社の従業員数等がある。つまり、属性値データ１１３は、単語ごとに、複数種類の属性それぞれについて属性値を示すデータである。ここで、図３（ｂ）に属性値データ１１３の例を示す。図３（ｂ）の例において、「属性１」テーブルには、会社別・製品別の売上高（単位：億円）を集計したデータが格納されている。例えば、『Ａ社』の『Ｓ０１』の売上高は０円、『Ａ社』の『Ｓ０２』の売上高は１億円であり、『Ａ社』の合計売上高は１億円である。また、『Ｂ社』の『Ｓ０１』の売上高は２００億円、『Ｂ社』の『Ｓ０２』の売上高は０円であり、『Ｂ社』の合計売上高は１０００億円である。
【００２０】
属性値設定データ１１４は、単語相関データ１１２や属性値データ１１３の種類ごとに表示名称等を設定したデータである。ここで、図３（ｃ）に属性値設定データ１１４の例を示す。図３（ｃ）の例において、１番目の単語相関データ１１２である「相関１」テーブルに格納されたデータは「共起文書数」であることが定義されている。また、例えば、１番目の属性値データ１１３である「属性１」テーブルに格納されたデータは「売上高」であることが定義されている。
【００２１】
グラフデータ作成部１２は、入力データをグラフとして表すデータを処理装置により作成し、作成したデータを記憶装置１１に格納する（例えば、メモリ上に展開する）。このとき、グラフデータ作成部１２は、表示用データ作成部１３によって問い合わせされる子ノード群ごとにデータを格納する。
【００２２】
グラフデータ作成部１２は、階層ノード作成部１２１、関連エッジ作成部１２２、優先度データ作成部１２３を備える。
【００２３】
階層ノード作成部１２１は、単語階層データ１１１から階層ノードデータ１２４を作成してメモリ上に展開する。階層ノードデータ１２４は、複数のノードのうち、互いに親子関係をもつノードである親ノード及び子ノードを対応付けて示すデータである。
【００２４】
関連エッジ作成部１２２は、単語相関データ１１２から関連エッジデータ１２５を作成してメモリ上に展開する。関連エッジデータ１２５は、複数のノードのうち、互いに相関関係をもつノード同士を対応付けて示す関連ノードデータの一例である。
【００２５】
優先度データ作成部１２３は、属性値データ１１３から階層ノード優先度データ１２６と関連エッジ優先度データ１２７を作成してメモリ上に展開する。階層ノード優先度データ１２６は、ノードごとに、複数種類の属性それぞれについて属性値を示すノード属性データの一例である。関連エッジ優先度データ１２７は、互いに相関関係をもつノードの組み合わせごとに、複数種類の属性それぞれについて属性値を示すエッジ属性データの一例である。なお、優先度データ作成部１２３は、既存の統計的手法（例えば、単語の出現する文書数の集計値や、文書データ全体に対する出現率等）によって属性値を作成して追加することも可能である。
【００２６】
ここで、図４及び図５にグラフデータ作成部１２が作成するデータの例を示す。以下の例に示すように、本実施の形態では、前述した特徴的なデータ構造を採用している。
【００２７】
図４の例において、階層ノードデータ１２４は、１行が１ノードを表すテーブルであり、ノードのＩＤ（識別子）となる行番号１２４１、画面上のノードに表示するラベル１２４２、ノードの下位に属する子ノード１２４３の列をもつ。この例では、ノードを兄弟ノード（同じノードに属する子ノード群）ごとに連続するように配置している。そのため、ノードに属する子ノード１２４３は、兄弟ノードの先頭行を表す先頭行番号１２４４と子ノード数１２４５で示されている。例えば、図２の例を参照すると、『既存』と、『Ａ社』、『Ｂ社』、『Ｃ社』、『Ｄ社』は親子関係をもっている。『既存』のノードは４行目、『Ａ社』、『Ｂ社』、『Ｃ社』、『Ｄ社』のノードはｎ行目〜ｎ＋３行目にあるから、４行目において、先頭行番号１２４４は「ｎ」、子ノード数１２４５は「４」となる。子ノードをもたないノードの場合、先頭行番号１２４４はｎｕｌｌ、子ノード数１２４５は「０」となる。
【００２８】
階層ノード優先度データ１２６は、属性値１２６１及びソート順行番号１２６２の２つのテーブルからなる。属性値１２６１のテーブルでは、ノードの属性値が、階層ノードデータ１２４でそのノードに該当する行と同じ行に、属性の種類（列）ごとに格納されている。そのため、階層ノードデータ１２４で１つのノードを参照するとき、階層ノード優先度データ１２６でも同じ行を指定することで、そのノードの属性値を参照可能である。ソート順行番号１２６２のテーブルでは、兄弟ノード群をそれぞれのノードの属性値でソートした順（例えば、降順）に行番号がインデックスとして属性の種類（列）ごとに格納されている。例えば、図３（ｂ）の例を参照すると、『Ａ社』の売上高は１億円、『Ｂ社』の売上高は１０００億円である。売上高を「優先度１」の属性とすると、『Ａ社』のノードはｎ行目にあるから、属性値１２６１のテーブルのｎ行目において、「優先度１」の属性値は「１」となる。同様に、『Ｂ社』のノードはｎ＋１行目にあるから、属性値１２６１のテーブルのｎ＋１行目において、「優先度１」の属性値は「１０００」となる。『Ｃ社』の売上高が１００億円、『Ｄ社』の売上高が１０億円であるとすると、属性値１２６１のテーブルのｎ行目〜ｎ＋３行目において、「優先度１」の属性値は「１」、「１０００」、「１００」、「１０」となる。この場合、ソート順行番号１２６２のテーブルのｎ行目〜ｎ＋３行目において、「優先度１」の行番号は、売上高の大きい順に「ｎ＋１」、「ｎ＋２」、「ｎ＋３」、「ｎ」となる。「優先度２」、「優先度３」の属性値についても同様である。例えば、図３（ｃ）の例における問い合わせ数を「優先度２」の属性とし、従業員数を「優先度３」の属性とすることができる。
【００２９】
なお、図４に例示した階層ノードデータ１２４及び階層ノード優先度データ１２６は、図２の例における『顧客』のサブツリーについて作成されるものである。図２の例における『製品』のサブツリーについても同様のデータ構造で階層ノードデータ１２４及び階層ノード優先度データ１２６が作成されるものとする。
【００３０】
図５の例において、関連エッジデータ１２５は、１行（ノード行番号１２５１）・１列（ノード行番号１２５２）が１ノードを表すノード間のマップインデックス表である。関連エッジ優先度データ１２７は、１行が１エッジを表すテーブルであり、エッジのＩＤとなる行番号１２７１、エッジの属性値１２７２の列をもつ。関連エッジデータ１２５では、関連エッジ優先度データ１２７の行番号１２７１への索引としてエッジデータが管理される。例えば、関連エッジデータ１２５のノード行番号１２５１が「ｎ」の行は図４の例における階層ノードデータ１２４のｎ行目にある『Ａ社』のノードに対応する。同様に、関連エッジデータ１２５のノード行番号１２５１が「ｎ＋１」の行は『Ｂ社』のノードに対応する。ここで、図２の例における『製品』のサブツリーについて作成される階層ノードデータ１２４のｍ行目〜ｍ＋２行目には、『Ｓ０１』、『Ｓ０２』、『Ｓ０３』のノードがあるものとする。この場合、関連エッジデータ１２５のノード行番号１２５２が「ｍ」の列は『製品』のサブツリーについて作成される階層ノードデータ１２４のｍ行目にある『Ｓ０１』のノードに対応する。同様に、関連エッジデータ１２５のノード行番号１２５２が「ｍ＋１」の列は『Ｓ０２』のノード、「ｍ＋２」の列は『Ｓ０３』のノードに対応する。図３（ａ）を参照すると、『Ａ社』と『Ｓ０２』の間には相関がある。そのため、関連エッジデータ１２５では、ノード行番号１２５１が「ｎ」でノード行番号１２５２が「ｍ＋１」となるエッジのＩＤとして「ｋ」が示されている。例えば、図３（ｂ）の例を参照すると、『Ａ社』の『Ｓ０２』の売上高は１億円であるから、関連エッジ優先度データ１２７の行番号１２７１が「ｋ」の行において、「優先度１」の属性値は「１」となる。同様に、図３（ａ）を参照すると、『Ｂ社』と『Ｓ０１』及び『Ｓ０３』の間には相関がある。そのため、関連エッジデータ１２５では、ノード行番号１２５１が「ｎ＋１」でノード行番号１２５２が「ｍ」、「ｍ＋２」となるエッジのＩＤとして「ｋ＋１」、「ｋ＋２」が示されている。例えば、図３（ｂ）の例を参照すると、『Ｂ社』の『Ｓ０１』、『Ｓ０３』の売上高はそれぞれ２００億円、０円であるから、関連エッジ優先度データ１２７の行番号１２７１が「ｋ＋１」、「ｋ＋２」の行において、「優先度１」の属性値は「２００」、「０」となる。
【００３１】
なお、図４及び図５の例において、属性の種類は３種類に限らず、２種類、あるいは、４種類以上であってもよい。また、ソート順行番号１２６２のソートは降順でなく、昇順で行われてもよいし、他の方法で行われてもよい。あるいは、属性の種類ごとに個別に決められた方法で行われてもよい。
【００３２】
上記のように、グラフデータ作成部１２は、単語階層データ１１１と単語相関データ１１２と属性値データ１１３とから、処理装置によりそれぞれ階層ノードデータ１２４と関連エッジデータ１２５と階層ノード優先度データ１２６及び関連エッジ優先度データ１２７とを作成して記憶装置１１に格納する（例えば、メモリ上に展開する）。
【００３３】
表示用データ作成部１３は、グラフデータ作成部１２が作成したデータから、画面に表示する表示用グラフデータ１３１を処理装置により作成し、作成した表示用グラフデータ１３１を記憶装置１１（例えば、メモリ）に格納する。
【００３４】
表示用データ作成部１３は、子ノード問い合わせ部１３２、表示用グラフデータ取得部１３３、表示優先度切り替え部１３４を備える。
【００３５】
子ノード問い合わせ部１３２は、階層ノード優先度データ１２６や関連エッジ優先度データ１２７から優先度の高いノードやエッジを抽出した上で、表示に必要なラベル１２４２（ノード名）等のデータを階層ノードデータ１２４から取得する。
【００３６】
表示用グラフデータ取得部１３３は、子ノード問い合わせ部１３２が抽出したノードやエッジを示すとともに、子ノード問い合わせ部１３２が取得したラベル１２４２等のデータを含む表示用グラフデータ１３１を取得してメモリに格納する。
【００３７】
表示優先度切り替え部１３４は、インタフェース部１４を介してユーザが優先度の切り替えを行うときに、候補となる属性の種類を属性値設定データ１１４から特定する。そして、表示優先度切り替え部１３４は、特定した属性の種類を示すデータをインタフェース部１４に渡す。また、表示優先度切り替え部１３４は、インタフェース部１４を介してユーザが属性の種類を選択したときに、選択された属性の種類をパラメータとして表示用グラフデータ取得部１３３に対して新たに表示用グラフデータ１３１を取得するように指示する。
【００３８】
インタフェース部１４は、グラフやその操作メニューを出力装置により表示するとともに、入力装置を介して操作内容を表示用データ作成部１３に入力する。
【００３９】
インタフェース部１４は、グラフ操作部１４１、グラフ表示部１４２、閾値設定部１４３を備える。
【００４０】
グラフ表示部１４２は、表示用データ作成部１３の表示用グラフデータ取得部１３３がメモリに格納した表示用グラフデータ１３１を画面上に表示する画像に変換して出力する。
【００４１】
グラフ操作部１４１は、画面に表示されたグラフデータに対して、ノードの展開／縮退、非表示／再表示等の操作を行うための入力インタフェースを提供する。
【００４２】
閾値設定部１４３は、表示用データ作成部１３の表示優先度切り替え部１３４から渡されたデータで示される属性の種類を、優先度の切り替え候補として画面上で操作メニューに表示する。そして、閾値設定部１４３は、操作メニューで選択された属性の種類を表示用データ作成部１３の表示優先度切り替え部１３４に通知する。
【００４３】
ここで、図６（ａ）〜（ｃ）にインタフェース部１４の入出力画面例を示す。以下の例に示すように、本実施の形態では、前述した特徴的な機能をグラフ可視化装置１０に実装している。
【００４４】
図６（ａ）の例において、画面１４２１ａは、インタフェース部１４のグラフ表示部１４２によって表示されている。画面１４２１ａでは、予め定められた階層までのノード１４２２のみが表示され、それより下位層のノードは縮退した状態（非表示の状態）となっている。下位層のノードは、展開操作を行うことで適宜表示させることができる。互いに親子関係をもつノード１４２２同士の間には、親子関係を示すエッジである親子関係エッジ１４２３が描画されている。また、互いに相関関係をもつノード１４２２同士の間には、相関関係を示すエッジである関連エッジ１４２４が描画されている。この例では、親子関係エッジ１４２３と関連エッジ１４２４の２種類のエッジを同じ線種で表示しているが、一方を黒い線、他方を赤い線とする、あるいは、一方を実線、他方を波線とする等、異なる態様で表示するようにしてもよい。
【００４５】
例えば、画面１４２１ａでは、『顧客』のノード１４２２と、その子ノードである『開拓中』、『見込み』、『既存』のノード１４２２が表示されるとともに、親子関係のあるノード１４２２同士の間に親子関係エッジ１４２３が描画されている。同様に、画面１４２１ａでは、『製品』、『Ｌシリーズ』、『Ｓシリーズ』、『その他』、『Ｓ０１』、『Ｓ０２』、『Ｓ０３』のノード１４２２が表示されるとともに、親子関係のあるノード１４２２同士の間に親子関係エッジ１４２３が描画されている。また、例えば、画面１４２１ａでは、『既存』のノード１４２２と、『Ｌシリーズ』、『Ｓ０１』、『Ｓ０２』、『Ｓ０３』のノード１４２２の間に関連エッジ１４２４が描画されている。ここで、関連エッジ１４２４の太さは、その属性値の大きさを表すものとする。なお、『既存』と『Ｓシリーズ』の間にも相関関係があるが、『Ｓシリーズ』のノード１４２２が展開されている（子ノードが表示されている）ため、『既存』のノード１４２２と『Ｓシリーズ』のノード１４２２の間を結ぶエッジは省略されている。
【００４６】
画面１４２１ａでは、非表示の状態となっている下位層のノードをもつノード１４２２（展開対象のノード１４２２）の上に、展開操作のための展開優先度メニュー１４３１が表示されている。ユーザが展開優先度メニュー１４３１に表示されている属性の種類を選択すると、展開対象のノード１４２２とユーザによって選択された属性の種類がインタフェース部１４の閾値設定部１４３から表示用データ作成部１３の表示優先度切り替え部１３４に通知される。表示用データ作成部１３では、表示優先度切り替え部１３４が、表示用グラフデータ取得部１３３に対し、展開対象のノード１４２２とユーザによって選択された属性の種類を通知して新たな表示用グラフデータ１３１を取得するように指示する。表示用グラフデータ取得部１３３は、表示優先度切り替え部１３４から通知された属性の種類について優先度の高いノード及びエッジを抽出するよう子ノード問い合わせ部１３２に指示する。子ノード問い合わせ部１３２は、展開対象のノード１４２２の子ノードのうち、その属性の種類について、属性値が上位の子ノードを階層ノード優先度データ１２６から取得する。このとき、子ノード問い合わせ部１３２が抽出する子ノードの数の上限は、予め設定されていてもよいし、画面に表示可能なノードの数に合わせて動的に設定されてもよいし、ユーザが属性の種類を選択する際に指定できるようにしてもよい。子ノード問い合わせ部１３２は、抽出した子ノードのラベル１２４２（ノード名）等のデータを階層ノードデータ１２４から取得する。また、子ノード問い合わせ部１３２は、抽出した子ノードを他のノードと結ぶエッジ及びその属性値を関連エッジデータ１２５及び関連エッジ優先度データ１２７から抽出する。表示用グラフデータ取得部１３３は、子ノード問い合わせ部１３２が抽出した子ノード、子ノードのラベル１２４２等、エッジ、エッジの属性値を示す表示用グラフデータ１３１を取得してメモリに格納する。インタフェース部１４のグラフ表示部１４２は、この表示用グラフデータ１３１を参照して展開操作を行う。つまり、インタフェース部１４のグラフ表示部１４２は、表示用グラフデータ１３１で示された子ノード及びエッジを画面１４２１ａに追加表示する。
【００４７】
例えば、画面１４２１ａにて、ユーザがインタフェース部１４のグラフ操作部１４１を介して『既存』のノード１４２２に対し、所定の選択操作を行うと、『既存』のノード１４２２が展開対象のノード１４２２となる。これに伴い、インタフェース部１４の閾値設定部１４３は、『既存』のノード１４２２の上に展開優先度メニュー１４３１を表示する。このとき、インタフェース部１４の閾値設定部１４３は、表示用データ作成部１３の表示優先度切り替え部１３４から属性の種類として、売上高、問い合わせ数、従業員数等があることを通知され、これらを選択肢として展開優先度メニュー１４３１に表示する。例えばユーザによって売上高が選択されると、インタフェース部１４の閾値設定部１４３は、『既存』のノード１４２２が展開対象のノード１４２２であること、及び、属性の種類として売上高が選択されたことを表示用データ作成部１３に通知する。表示用データ作成部１３において、子ノード問い合わせ部１３２は、階層ノード優先度データ１２６にアクセスする。図４の例を用いた場合、子ノード問い合わせ部１３２は、階層ノードデータ１２４にて『既存』のノード１４２２に対応する４行目の先頭行番号１２４４及び子ノード数１２４５を参照する。先頭行番号１２４４は「ｎ」、子ノード数１２４５は「４」であるから、子ノード問い合わせ部１３２は、ソート順行番号１２６２のテーブルのｎ行目〜ｎ＋３行目を参照する。売上高に対応する「優先度１」列は、売上高の大きい順に「ｎ＋１」、「ｎ＋２」、「ｎ＋３」、「ｎ」となっているため、抽出対象となる子ノードの数の上限が例えば２個であるとすると、ｎ＋１行目及びｎ＋２行目が抽出対象となる。子ノード問い合わせ部１３２は、階層ノードデータ１２４のｎ＋１行目及びｎ＋２行目、即ち、『Ｂ社』及び『Ｃ社』のノードを抽出する。また、図５の例を用いた場合、子ノード問い合わせ部１３２は、関連エッジデータ１２５にてノード行番号１２５１が「ｎ＋１」、「ｎ＋２」の行から、エッジのＩＤとして「ｋ＋１」、「ｋ＋２」等を抽出する。そして、子ノード問い合わせ部１３２は、関連エッジ優先度データ１２７の行番号１２７１が「ｋ＋１」、「ｋ＋２」等の行の「優先度１」列を参照し、各エッジの属性値を抽出する。表示用グラフデータ取得部１３３は、『Ｂ社』及び『Ｃ社』のノード、『Ｂ社』と『Ｓ０１』を結ぶエッジや『Ｂ社』と『Ｓ０３』を結ぶエッジ等、及び、これらの属性値を示す表示用グラフデータ１３１を取得してメモリに格納する。インタフェース部１４のグラフ表示部１４２は、表示用グラフデータ１３１で示された『Ｂ社』及び『Ｃ社』のノード１４２２、『Ｂ社』と『Ｓ０１』を結ぶ関連エッジ１４２４や『Ｂ社』と『Ｓ０３』を結ぶ関連エッジ１４２４等を画面１４２１ａに追加表示する。このとき、『Ｂ社』と『Ｓ０１』を結ぶ関連エッジ１４２４等、属性値の大きいものについては、太線で表示する。なお、属性値の大きさを関連エッジ１４２４の太さでなく、色等、他の態様で表してもよい。
【００４８】
図６（ｂ）の例において、画面１４２１ｂは、インタフェース部１４のグラフ表示部１４２によって表示されている。画面１４２１ｂでは、選択された属性値でノード１４２２がフィルタリング表示されている。
【００４９】
画面１４２１ｂでは、下位層のノードをもつノード１４２２（展開対象のノード１４２２）の上に、スクロールバー１４３２が表示されている。スクロールバー１４３２は、画面１４２１ｂで表示されている下位層のノードは属性値が上位のノードであり、それ以外にも下位層のノードが存在していることを示している。
【００５０】
図６（ｃ）の例において、画面１４２１ｃは、インタフェース部１４のグラフ表示部１４２によって表示されている。画面１４２１ｃでは、画面１４２１ｂのスクロールバー１４３２が操作され、図６（ｂ）の例における属性値の範囲と異なる範囲でノード１４２２がフィルタリング表示されている。
【００５１】
例えば、画面１４２１ｂにて、ユーザがスクロールバー１４３２を操作し、属性値の範囲を変更すると、図６（ａ）の例においてユーザが属性の種類を選択した場合と同様に、新たな表示用グラフデータ１３１が作成され、これに合わせて画面１４２１ｂが画面１４２１ｃに更新される。図６（ｃ）の例では、スクロールバー１４３２の操作によって新たに表示された『Ｃ社』のノード１４２２と『Ｓ０１』のノード１４２２の間の関連エッジ１４２４が太いことから、『Ｃ社』は『Ｓ０１』の売上高は下位だが『Ｓ０１』に関する問い合わせは積極的に行っていることが判明する。
【００５２】
以上のように、本実施の形態では、データ全体ではなく、注目している部分のみに対して適用するフィルタリング設定を行うことが可能となる。また、スクロールバー１４３２等の範囲選択インタフェースにより、範囲選択によって既表示のノード・エッジと入れ替えて別のノード・エッジを表示することにより、表示するノード数を大幅に増やさずに閾値により非表示化されたノード及びエッジが表示可能になる。なお、範囲選択インタフェースによってどのような範囲が選択されても、常に一定数以下の子ノードしか表示しないようにしてもよい。また、表示を許容する子ノードの数を直接数値入力できるようにしてもよい。これによって、表示するノード数が大幅に増えないことを確実にした上で、ノード及びエッジの表示／非表示をコントロールすることができる。
【００５３】
上記のように、表示用データ作成部１３は、記憶装置１１に格納された（例えば、メモリ上に展開された）階層ノードデータ１２４が示す親ノードのうち少なくとも１つ（例えば、『開拓中』、『見込み』、『既存』のノード１４２２）を含むグラフの表示用グラフデータ１３１を処理装置により作成する。インタフェース部１４は、表示用データ作成部１３が作成した表示用グラフデータ１３１を出力装置により画面に表示する（例えば、画面１４２１ａ）。また、インタフェース部１４は、表示した表示用グラフデータ１３１に含まれる親ノードのうち１つ（例えば、『既存』のノード１４２２）を選択する操作と、複数種類の属性（例えば、売上高、問い合わせ数、従業員数）のうち１種類（例えば、売上高）を選択する操作（例えば、展開優先度メニュー１４３１の操作）とを入力装置により受け付ける。表示用データ作成部１３は、記憶装置１１に格納された階層ノードデータ１２４が示す子ノードのうち、インタフェース部１４を介して選択された親ノードに対応する子ノードであって、インタフェース部１４を介して選択された属性について記憶装置１１に格納された階層ノード優先度データ１２６が示す属性値が所定の基準（例えば、上位２つ）を満たす子ノード（例えば、『Ｂ社』、『Ｃ社』のノード１４２２）を抽出する。そして、表示用データ作成部１３は、抽出した子ノードと当該子ノード及び当該親ノード間を結ぶエッジである親子関係エッジ１４２３とを処理装置により表示用グラフデータ１３１に追加する。表示用データ作成部１３は、さらに、記憶装置１１に格納された関連エッジデータ１２５が示すノードのうち、抽出した子ノードと相関関係をもつノード（例えば、『Ｓ０１』、『Ｓ０３』のノード１４２２等）を関連ノードとして抽出する。そして、表示用データ作成部１３は、抽出した関連ノードと当該関連ノード及び当該子ノード間を結ぶエッジである関連エッジ１４２４とを処理装置により表示用グラフデータ１３１に追加する。表示用データ作成部１３は、このように変更した表示用グラフデータ１３１を新たな表示用グラフデータ１３１としてインタフェース部１４に表示させる。
【００５４】
また、表示用データ作成部１３は、インタフェース部１４を介して選択された属性について記憶装置１１に格納された関連エッジ優先度データ１２７が示す属性値に応じて、対応する組み合わせのノード間を結ぶ関連エッジの表示態様（例えば、太さ）を設定する。
【００５５】
また、インタフェース部１４は、さらに、選択された属性について属性値の範囲を指定する操作（例えば、スクロールバー１４３２の操作）を入力装置により受け付ける。表示用データ作成部１３は、記憶装置１１に格納された階層ノードデータ１２４が示す子ノードのうち、インタフェース部１４を介して選択された親ノードに対応する子ノードであって、インタフェース部１４を介して選択された属性について記憶装置１１に格納された階層ノード優先度データ１２６が示す属性値がインタフェース部１４を介して指定された範囲内となる子ノードを抽出する。
【００５６】
図７は、グラフ可視化装置１０のハードウェア構成の一例を示す図である。
【００５７】
図７において、グラフ可視化装置１０は、コンピュータであり、ＬＣＤ９０１（Ｌｉｑｕｉｄ・Ｃｒｙｓｔａｌ・Ｄｉｓｐｌａｙ）、キーボード９０２（Ｋ／Ｂ）、マウス９０３、ＦＤＤ９０４（Ｆｌｅｘｉｂｌｅ・Ｄｉｓｋ・Ｄｒｉｖｅ）、ＣＤＤ９０５（Ｃｏｍｐａｃｔ・Ｄｉｓｃ・Ｄｒｉｖｅ）、プリンタ９０６といったハードウェアデバイスを備えている。これらのハードウェアデバイスはケーブルや信号線で接続されている。ＬＣＤ９０１の代わりに、ＣＲＴ（Ｃａｔｈｏｄｅ・Ｒａｙ・Ｔｕｂｅ）、あるいは、その他の表示装置が用いられてもよい。マウス９０３の代わりに、タッチパネル、タッチパッド、トラックボール、ペンタブレット、あるいは、その他のポインティングデバイスが用いられてもよい。
【００５８】
グラフ可視化装置１０は、プログラムを実行するＣＰＵ９１１（Ｃｅｎｔｒａｌ・Ｐｒｏｃｅｓｓｉｎｇ・Ｕｎｉｔ）を備えている。ＣＰＵ９１１は、処理装置の一例である。ＣＰＵ９１１は、バス９１２を介してＲＯＭ９１３（Ｒｅａｄ・Ｏｎｌｙ・Ｍｅｍｏｒｙ）、ＲＡＭ９１４（Ｒａｎｄｏｍ・Ａｃｃｅｓｓ・Ｍｅｍｏｒｙ）、通信ボード９１５、ＬＣＤ９０１、キーボード９０２、マウス９０３、ＦＤＤ９０４、ＣＤＤ９０５、プリンタ９０６、ＨＤＤ９２０（Ｈａｒｄ・Ｄｉｓｋ・Ｄｒｉｖｅ）と接続され、これらのハードウェアデバイスを制御する。ＨＤＤ９２０の代わりに、フラッシュメモリ、光ディスク装置、メモリカードリーダライタ又はその他の記憶媒体が用いられてもよい。
【００５９】
ＲＡＭ９１４は、揮発性メモリの一例である。ＲＯＭ９１３、ＦＤＤ９０４、ＣＤＤ９０５、ＨＤＤ９２０は、不揮発性メモリの一例である。これらは、記憶装置１１の一例である。通信ボード９１５、キーボード９０２、マウス９０３、ＦＤＤ９０４、ＣＤＤ９０５は、入力装置の一例である。また、通信ボード９１５、ＬＣＤ９０１、プリンタ９０６は、出力装置の一例である。
【００６０】
通信ボード９１５は、ＬＡＮ（Ｌｏｃａｌ・Ａｒｅａ・Ｎｅｔｗｏｒｋ）等に接続されている。通信ボード９１５は、ＬＡＮに限らず、ＩＰ−ＶＰＮ（Ｉｎｔｅｒｎｅｔ・Ｐｒｏｔｏｃｏｌ・Ｖｉｒｔｕａｌ・Ｐｒｉｖａｔｅ・Ｎｅｔｗｏｒｋ）、広域ＬＡＮ、ＡＴＭ（Ａｓｙｎｃｈｒｏｎｏｕｓ・Ｔｒａｎｓｆｅｒ・Ｍｏｄｅ）ネットワークといったＷＡＮ（Ｗｉｄｅ・Ａｒｅａ・Ｎｅｔｗｏｒｋ）、あるいは、インターネットに接続されていても構わない。ＬＡＮ、ＷＡＮ、インターネットは、ネットワークの一例である。
【００６１】
ＨＤＤ９２０には、オペレーティングシステム９２１（ＯＳ）、ウィンドウシステム９２２、プログラム群９２３、ファイル群９２４が記憶されている。プログラム群９２３のプログラムは、ＣＰＵ９１１、オペレーティングシステム９２１、ウィンドウシステム９２２により実行される。プログラム群９２３には、本実施の形態の説明において「〜部」として説明する機能を実行するプログラムが含まれている。プログラムは、ＣＰＵ９１１により読み出され実行される。ファイル群９２４には、本実施の形態の説明において、「〜データ」、「〜情報」、「〜ＩＤ（識別子）」、「〜フラグ」、「〜結果」として説明するデータや情報や信号値や変数値やパラメータが、「〜ファイル」や「〜データベース」や「〜テーブル」の各項目として含まれている。「〜ファイル」や「〜データベース」や「〜テーブル」は、ＲＡＭ９１４やＨＤＤ９２０等の記憶媒体に記憶される。ＲＡＭ９１４やＨＤＤ９２０等の記憶媒体に記憶されたデータや情報や信号値や変数値やパラメータは、読み書き回路を介してＣＰＵ９１１によりメインメモリやキャッシュメモリに読み出され、抽出、検索、参照、比較、演算、計算、制御、出力、印刷、表示といったＣＰＵ９１１の処理（動作）に用いられる。抽出、検索、参照、比較、演算、計算、制御、出力、印刷、表示といったＣＰＵ９１１の処理中、データや情報や信号値や変数値やパラメータは、メインメモリやキャッシュメモリやバッファメモリに一時的に記憶される。
【００６２】
本実施の形態の説明において用いるブロック図やフローチャートの矢印の部分は主としてデータや信号の入出力を示す。データや信号は、ＲＡＭ９１４等のメモリ、ＦＤＤ９０４のフレキシブルディスク（ＦＤ）、ＣＤＤ９０５のコンパクトディスク（ＣＤ）、ＨＤＤ９２０の磁気ディスク、光ディスク、ＤＶＤ（Ｄｉｇｉｔａｌ・Ｖｅｒｓａｔｉｌｅ・Ｄｉｓｃ）、あるいは、その他の記録媒体に記録される。また、データや信号は、バス９１２、信号線、ケーブル、あるいは、その他の伝送媒体により伝送される。
【００６３】
本実施の形態の説明において「〜部」として説明するものは、「〜回路」、「〜装置」、「〜機器」であってもよく、また、「〜ステップ」、「〜工程」、「〜手順」、「〜処理」であってもよい。即ち、「〜部」として説明するものは、ＲＯＭ９１３に記憶されたファームウェアで実現されていても構わない。あるいは、「〜部」として説明するものは、ソフトウェアのみ、あるいは、素子、デバイス、基板、配線といったハードウェアのみで実現されていても構わない。あるいは、「〜部」として説明するものは、ソフトウェアとハードウェアとの組み合わせ、あるいは、ソフトウェアとハードウェアとファームウェアとの組み合わせで実現されていても構わない。ファームウェアとソフトウェアは、プログラムとして、フレキシブルディスク、コンパクトディスク、磁気ディスク、光ディスク、ＤＶＤ等の記録媒体に記憶される。プログラムはＣＰＵ９１１により読み出され、ＣＰＵ９１１により実行される。即ち、プログラムは、本実施の形態の説明で述べる「〜部」としてコンピュータを機能させるものである。あるいは、プログラムは、本実施の形態の説明で述べる「〜部」の手順や方法をコンピュータに実行させるものである。
【００６４】
以下では、グラフ可視化装置１０の動作（本実施の形態に係るグラフ可視化方法、本実施の形態に係るグラフ可視化プログラムの処理手順）について説明する。
【００６５】
図８は、グラフ可視化装置１０が実行する基本処理の構成を表すフローチャートである。
【００６６】
グラフ可視化装置１０は、グラフデータ作成部１２において入力データからグラフデータを作成する処理（Ｓ１）を処理装置により行う。グラフ可視化装置１０は、表示用データ作成部１３において表示用グラフデータ１３１を作成する処理（Ｓ２）を処理装置により行う。グラフ可視化装置１０は、インタフェース部１４においてグラフ表示処理（Ｓ３）を処理装置により行う。グラフの表示後、ノード１４２２が操作され、表示するグラフが変化する場合（Ｓ４）、グラフ可視化装置１０は、表示用グラフデータ１３１を再度処理装置により作成する。
【００６７】
図９は、グラフデータ作成処理（Ｓ１）のフローチャートである。
【００６８】
まず、階層ノード作成部１２１が単語階層データ１１１を解析し、階層ノードデータ１２４を処理装置により作成する（Ｓ１１）。次に、優先度データ作成部１２３は、属性値データ１１３を基に、階層ノード優先度データ１２６を処理装置により作成する（Ｓ１２）。このとき、優先度データ作成部１２３は、属性値データ１１３から属性値１２６１を階層ノードデータ１２４の該当する行に収めた上で、兄弟ノードデータをソートし、ソートした順に行番号をソート順行番号１２６２の該当する属性の列に収めていく。関連エッジ作成部１２２は、単語相関データ１１２から関連エッジデータ１２５を処理装置により作成するとともに関連エッジ優先度データ１２７へのインデックスを作成する（Ｓ１３）。優先度データ作成部１２３は、関連エッジ優先度データ１２７を処理装置により作成する（Ｓ１４）。なお、関連エッジデータ１２５の作成は、階層ノード優先度データ１２６の作成の完了を待つ必要はないので、並行して実行することが可能である。
【００６９】
図１０は、表示用グラフデータ作成処理（Ｓ２）のフローチャートである。
【００７０】
表示用グラフデータ１３１の作成には、親となるノードを指定する必要がある。初期画面の場合はルートノード、ノード展開操作の場合は展開操作を行ったノード等である。
【００７１】
まず、子ノード問い合わせ部１３２は、親となるノードの階層ノードデータ１２４でのノードの行番号１２４１を処理装置により設定する（Ｓ２０１）。このとき、ラベル１２４２等では重複がある場合があり、ノードを一意に定められないため、行番号１２４１を用いることが望ましい。
【００７２】
次に、子ノード問い合わせ部１３２は、子ノード取得のためのパラメータを処理装置により設定する（Ｓ２０２）。パラメータには、優先度表示に用いる属性の種類、取得する子ノード数、取得する子ノードの先頭順位がある。優先度表示に用いる属性の種類としては、展開優先度メニュー１４３１等で指定された属性を設定する。取得する子ノード数としては、前述したように、表示制御で設定されている値を与える。取得する子ノードの先頭順位としては、例えばデフォルトでは最上位を設定し、スクロールバー１４３２等で範囲が指定された場合には、指定範囲の中での最上位を設定する。
【００７３】
次に、子ノード問い合わせ部１３２は、階層ノードデータ１２４においてノードの子ノードの先頭行番号１２４４を処理装置により取得する（Ｓ２０３）。子ノード問い合わせ部１３２は、実際に取得する順位のデータにアクセスするため、取得した先頭行番号１２４４の値に、取得する子ノードの先頭順位を足し合わせたものをインデックス番号とする（Ｓ２０４）。
【００７４】
子ノード問い合わせ部１３２は、階層ノード優先度データ１２６のソート順行番号１２６２の、指定された属性の列において、得られたインデックス番号から、取得する子ノード数分の兄弟ノードインデックスを配列として処理装置により取得する（Ｓ２０５）。
【００７５】
次に、子ノード問い合わせ部１３２は、子ノードの表示に用いる情報を処理装置により取得する。表示には、ラベルと関連エッジが最低限必要であるとする。子ノード問い合わせ部１３２は、子ノードのソート順インデックス配列に従ってデータを取得していく（Ｓ２０６）。子ノード問い合わせ部１３２は、子ノードのラベルとして、階層ノードデータ１２４のインデックスが該当する行番号１２４１のラベル１２４２列の値を取得する（Ｓ２０７）。子ノード問い合わせ部１３２は、子ノードに接続する関連エッジを取得するため、関連エッジデータ１２５において子ノードのインデックス位置を指定して取得する（Ｓ２０８）。
【００７６】
表示データとして２階層以上を同時に表示する必要がある場合（Ｓ２０９）、子ノード問い合わせ部１３２は、取得した兄弟ノードインデックスを親ノードとして（Ｓ２１０）表示用データ作成処理を処理装置により行っていく（Ｓ２１１）。一方、必要なデータの取得が完了した場合、子ノード問い合わせ部１３２は、取得したデータを表示用グラフデータ１３１として表示用グラフデータ取得部１３３へ渡す。
【００７７】
図１１は、関連エッジデータ取得処理（Ｓ２０８）のフローチャートである。
【００７８】
関連エッジデータ１２５も、階層ノードデータ１２４と同じで兄弟ノードごとのノード番号配置になっているため、子ノード問い合わせ部１３２は、ノードのインデックスを処理装置により設定する（Ｓ２０８１）。
【００７９】
ノードの接続先となる相手方の階層のデータが必要である。これは、グラフの表示状況によるため、子ノード問い合わせ部１３２は、表示用グラフデータ１３１から、相手階層のリーフノード（画面上で展開されている最下位層のノード）のリストインデックスを取得して処理装置により設定する（Ｓ２０８２）。
【００８０】
子ノード問い合わせ部１３２は、エッジの表示（太さ、色等）に属性値を用いる場合は属性の種類を処理装置により指定する（Ｓ２０８３）。
【００８１】
子ノード問い合わせ部１３２は、相手階層のリーフノードのリストインデックス全てについて、関連エッジデータ１２５で該当するデータがあれば、そのデータを処理装置により取得する（Ｓ２０８４）。ここでは、そのデータの集合を関連エッジリストと称する。具体的には、子ノード問い合わせ部１３２は、相手階層のリーフノードのリストインデックそれぞれについて、関連エッジデータ１２５のノードインデックスの行と、相手階層のリーフノードのリストインデックスの値の列の対応する値を関連エッジ優先度データ１２７におけるエッジの行番号１２７１として取得する（Ｓ２０８４）。子ノード問い合わせ部１３２は、関連エッジ優先度データ１２７において、取得した行番号の、使用する属性の値を取得し、エッジリストに加える（Ｓ２０８５）。
【００８２】
なお、本実施の形態では、グラフの初期表示の際にノードのラベルのみを取得し、ノードの属性値を取得しないが、ノードの属性値を取得しておき、グラフに表示したり、表示後の操作に対する処理に利用したりしてもよい。
【００８３】
本実施の形態では、階層ノードデータ１２４や関連エッジデータ１２５が、親ノードに属する子ノードごとにメモリに配置されるため、子ノードの先頭行番号１２４４と子ノード数１２４５によって子ノードのデータのかたまり（リスト）に即座にアクセスできる。また、階層ノード優先度データ１２６では、行番号順に配置した属性値と兄弟ノードごとにソートした行番号とを同じ行に配置することで、データの検索処理を行わずに表示に必要なデータを抽出して操作対象とするノードデータを高速に表示することができる。これにより、インタラクティブな操作を行うために十分な応答性能を発揮することができる。
【００８４】
以上説明したように、本実施の形態に係るグラフ可視化装置１０は、文書から得られた単語を木構造に階層化したデータ（単語階層データ１１１）と、単語間の相関の強さを表すデータ（単語相関データ１１２）と、単語やその組み合わせの属性の値を表す属性値データ１１３と、属性値の名称等を表す属性値設定データ１１４を入力とし、入力された各データからノードとエッジからなるネットワークグラフのデータを作成するグラフデータ作成部１２と、グラフデータのうち画面表示する部分を抽出し、表示用属性等を付与した表示用グラフデータ１３１を作成する表示用データ作成部１３と、表示用グラフと操作メニューを画面に表示するインタフェース部１４をもち、以下の特徴をもつ。
（ａ）グラフデータ作成部１２は、ノードの階層関係を表す階層ノードデータ１２４と、ノードの属性値とソート後のインデックスをもつ階層ノード優先度データ１２６と、ノード間の相関関係を表すエッジの有無を表す関連エッジデータ１２５と、関連エッジの属性値をもつ関連エッジ優先度データ１２７からなるグラフデータを作成する。
（ｂ）階層ノードデータ１２４は、兄弟ノード（同じ親をもつノード）単位でメモリ配置される。
（ｃ）階層ノード優先度データ１２６は、兄弟ノードを属性値でソートし、ソート順のインデックスを、階層ノードデータ１２４における兄弟ノードの配置行範囲に配置したものである。
（ｄ）関連エッジデータ１２５は、階層ノードデータ１２４と同じ行列番号配置でエッジの有無を表し、エッジがある場合は関連エッジ優先度データ１２７へのインデックスをもつ。
（ｅ）グラフデータ作成部１２は、入力データを（ａ）のデータに変換し、メモリに配置する。
（ｆ）表示用データ作成部１３は、設定された優先度の種類に応じてグラフデータからソート順インデックスを取得し、インデックスに従ってノード及びエッジのデータを取得し、表示用グラフデータ１３１を作成する子ノード問い合わせ機能をもつ。
【００８５】
また、グラフ可視化装置１０は、以下の特徴をもつ。
（ａ）インタフェース部１４は、異なる種類の属性を複数もつノードに対し、その属性を表示優先度の基準として選択するメニューをもつ。
（ｂ）表示用データ作成部１３は、選択された優先度の種類に応じて表示用グラフデータ１３１を変更する子ノード問い合わせ機能をもつ。
【００８６】
また、グラフ可視化装置１０は、以下の特徴をもつ。
（ａ）インタフェース部１４の画面上では、スクロールバー１４３２等の表示範囲選択操作可能な操作インタフェースがノードに付与されている。
（ｂ）インタフェース部１４は、スクロールによってソートされた子ノードの表示範囲を変える。
【００８７】
また、グラフ可視化装置１０は、以下の特徴をもつ。
（ａ）表示用データ作成部１３は、インタフェース部１４によって設定された表示範囲に応じてグラフデータからソート順インデックスを取得し、インデックスに従ってノード及びエッジのデータを取得し、表示用グラフデータ１３１を作成する。
【００８８】
実施の形態２．
本実施の形態について、主に実施の形態１との差異を説明する。
【００８９】
本実施の形態では、記憶装置１１は、階層ノード優先度データ１２６として、ノードごとに、複数種類の属性と複数の期間との組み合わせそれぞれについて属性値を示すデータを格納する。なお、実施の形態１において、期間を属性の種類として扱ってもよい。つまり、実施の形態１において、グラフ可視化装置１０が属性の種類を複数もつことができることを利用すると、期間ごとに集計された属性値を、別々の種類の属性値として扱うことにより、時系列によって変化するグラフデータを表示することができるようになる。
【００９０】
ここで、図１２（ａ）、（ｂ）にインタフェース部１４の入出力画面例を示す。
【００９１】
図１２（ａ）の例において、画面１４２１ｄは、インタフェース部１４のグラフ表示部１４２によって表示されている。画面１４２１ｄでは、期間（例えば、年度）を指定するためのスクロールバー１４３２が表示されている。なお、期間を指定できるものであれば、スクロールバー１４３２以外の入力インタフェースを用いてもよい。画面１４２１ｄでは、選択された期間（例えば、２００７年度）でグラフがフィルタリング表示されている。
【００９２】
図１２（ｂ）の例において、画面１４２１ｅは、インタフェース部１４のグラフ表示部１４２によって表示されている。画面１４２１ｅでは、画面１４２１ｄのスクロールバー１４３２が操作され、図１２（ａ）の例における期間と異なる期間（例えば、２０１０年度）でグラフがフィルタリング表示されている。
【００９３】
例えば、画面１４２１ｄにて、ユーザがスクロールバー１４３２を操作し、期間を変更すると、図６（ａ）の例においてユーザが属性の種類を選択した場合と同様に、新たな表示用グラフデータ１３１が作成され、これに合わせて画面１４２１ｄが画面１４２１ｅに更新される。期間が異なると、ノードの属性値やエッジの属性値が異なることが考えられる。その場合、表示対象となるノード１４２２が変わったり、表示される関連エッジ１４２４の太さが変わったりすることになる。また、期間が異なると、ノードに相当する単語を抽出する対象の文書が異なることが考えられる。その場合、単語の共起関係が変わり、表示される関連エッジ１４２４が変わることになる。
【００９４】
上記のように、本実施の形態では、インタフェース部１４は、期間を選択する操作（例えば、スクロールバー１４３２の操作）を入力装置により受け付ける。表示用データ作成部１３は、記憶装置１１に格納された（例えば、メモリ上に展開された）階層ノードデータ１２４が示す子ノードのうち、インタフェース部１４を介して選択された親ノードに対応する子ノードであって、インタフェース部１４を介して選択された属性について記憶装置１１に格納された階層ノード優先度データ１２６が示す、インタフェース部１４を介して選択された期間における属性値が前述した所定の基準（例えば、上位２つ）を満たす子ノードを抽出する。
【００９５】
以上説明したように、本実施の形態に係るグラフ可視化装置１０は、以下の特徴をもつ。
（ａ）グラフデータ作成部１２は、異なる時系列ごとの属性値をもつ。
（ｂ）インタフェース部１４は、スクロールバー１４３２等の表示範囲選択操作可能なインタフェースをもち、スクロールによって時系列の異なるデータを選択可能である。
（ｃ）表示用データ作成部１３は、選択された時系列に応じて表示用グラフデータ１３１を変更する。
【００９６】
実施の形態３．
本実施の形態について、主に実施の形態１との差異を説明する。
【００９７】
実施の形態１では、グラフデータ作成部１２が全てのデータをメモリ上に展開するようにしていたが、図６（ａ）等の例に示したように、最初に表示するグラフが縮退状態である場合はツリー上位のデータさえあれば初期画面の表示は可能である。また、ユーザの操作によって一度も表示されることのないデータがあり得る。また、一旦表示された後、ユーザの操作によって縮退する等して非表示化されると再度表示される可能性が低くなるデータがある。したがって、大部分のデータはメモリ上にもっておく必要性があまりない。しかも、大量にデータがある場合は、全てのデータをメモリにもつこと自体が困難である。そこで、データのうち、必要性の高い部分のみを適宜メモリに展開し、必要性の低い部分は適宜メモリから削除することで、よりメモリを有効に使用することができるようになる。
【００９８】
本実施の形態では、記憶装置１１は、単語階層データ１１１と単語相関データ１１２と属性値データ１１３とを予め格納する補助記憶装置（例えば、ハードディスク）と、グラフデータ作成部１２が単語階層データ１１１と単語相関データ１１２と属性値データ１１３とから作成したデータを格納するための主記憶装置（例えば、メモリ）とからなる。例えば、グラフデータ作成部１２は、最初に階層ノードデータ１２４、階層ノード優先度データ１２６、関連エッジデータ１２５、関連エッジ優先度データ１２７を作成する際は、予め定められた階層までのノードに係るデータのみを作成してメモリ上に展開する。階層ノードデータ１２４において、あるノードの子ノードに係るデータが作成されていない場合、そのノードの先頭行番号１２４４及び子ノード数はｎｕｌｌに設定しておけばよい。その後、新たなノードを画面に表示することになった場合、グラフデータ作成部１２は、各データにそのノードの行を追加していく。
【００９９】
図１３は、本実施の形態に係るグラフ可視化装置１０の構成を示すブロック図である。
【０１００】
本実施の形態では、グラフデータ作成部１２がデータ管理部１２８を備える。
【０１０１】
データ管理部１２８は、グラフデータ作成部１２においてメモリ上に展開されているノードと、未展開のノードを管理する。表示用データ作成部１３からの子ノード問い合わせ／優先度問い合わせを入力とし、グラフデータ作成部１２に要求されるノード情報を得て、次に問い合わせがあると予測されるノードのデータをメモリに展開するようにグラフデータ作成部１２に要求する。また、データ管理部１２８は、蓄積されたノード問い合わせ情報から、必要性が薄れたノードに係るデータを判別し、メモリから削除する。このとき、データ管理部１２８は、例えば、あるノードの子ノードが全て縮退状態、即ち、非表示の場合、当該子ノードを必要性が薄れたノードと判定する。子ノードが１つでも展開状態、即ち、表示されている場合、当該子ノードはまだ必要性があるノードであると判定する。メモリは再利用できるように、ノード行番号を、仮想ノード行番号と、メモリ上の実ノード行番号の対応表をもって管理する。
【０１０２】
上記のように、グラフデータ作成部１２は、表示用データ作成部１３が表示用グラフデータ１３１に追加したノードとエッジとに基づいて、次に表示用データ作成部１３が抽出するノードを処理装置により予測する。そして、グラフデータ作成部１２は、予測したノードに係るデータを単語階層データ１１１と単語相関データ１１２と属性値データ１１３とから作成して主記憶装置に格納する。
【０１０３】
以上説明したように、本実施の形態に係るグラフ可視化装置１０は、以下の特徴をもつ。
（ａ）グラフデータ作成部１２は、表示用データ作成部１３における要求に応じて必要データを予測し、必要部分のみをメモリに展開する。
【０１０４】
以上、本発明の実施の形態について説明したが、これらのうち、２つ以上の実施の形態を組み合わせて実施しても構わない。あるいは、これらのうち、１つの実施の形態を部分的に実施しても構わない。あるいは、これらのうち、２つ以上の実施の形態を部分的に組み合わせて実施しても構わない。
【符号の説明】
【０１０５】
１０  グラフ可視化装置、１１  記憶装置、１２  グラフデータ作成部、１３  表示用データ作成部、１４  インタフェース部、１１１  単語階層データ、１１２  単語相関データ、１１３  属性値データ、１１４  属性値設定データ、１２１  階層ノード作成部、１２２  関連エッジ作成部、１２３  優先度データ作成部、１２４  階層ノードデータ、１２５  関連エッジデータ、１２６  階層ノード優先度データ、１２７  関連エッジ優先度データ、１３１  表示用グラフデータ、１３２  子ノード問い合わせ部、１３３  表示用グラフデータ取得部、１３４  表示優先度切り替え部、１４１  グラフ操作部、１４２  グラフ表示部、１４３  閾値設定部、９０１  ＬＣＤ、９０２  キーボード、９０３  マウス、９０４  ＦＤＤ、９０５  ＣＤＤ、９０６  プリンタ、９１１  ＣＰＵ、９１２  バス、９１３  ＲＯＭ、９１４  ＲＡＭ、９１５  通信ボード、９２０  ＨＤＤ、９２１  オペレーティングシステム、９２２  ウィンドウシステム、９２３  プログラム群、９２４  ファイル群、１２４１  行番号、１２４２  ラベル、１２４３  子ノード、１２４４  先頭行番号、１２４５  子ノード数、１２５１，１２５２  ノード行番号、１２６１  属性値、１２６２  ソート順行番号、１２７１  行番号、１２７２  属性値、１４２１ａ〜ｃ  画面、１４２２  ノード、１４２３  親子関係エッジ、１４２４  関連エッジ、１４３１  展開優先度メニュー、１４３２  スクロールバー。
【図１】
2011164830.tif 000003
【図２】
2011164830.tif 000004
【図３】
2011164830.tif 000005
【図４】
2011164830.tif 000006
【図５】
2011164830.tif 000007
【図６】
2011164830.tif 000008
【図７】
2011164830.tif 000009
【図８】
2011164830.tif 000010
【図９】
2011164830.tif 000011
【図１０】
2011164830.tif 000012
【図１１】
2011164830.tif 000013
【図１２】
2011164830.tif 000014
【図１３】
2011164830.tif 000015