説明

グラフ可視化装置及びグラフ可視化方法及びグラフ可視化プログラム

【課題】画面にグラフを表示してデータの分析を行う際に、画面に大量のノードを表示しなくとも詳細なデータの分析を的確に行えるようにする。
【解決手段】表示用データ作成部13は親ノードのうち少なくとも1つを含むグラフの表示用グラフデータ131を作成する。インタフェース部14は表示用グラフデータ131を画面に表示する。また、表示用グラフデータ131に含まれる親ノードのうち1つを選択する操作と、複数種類の属性のうち1種類を選択する操作とを受け付ける。表示用データ作成部13は、子ノードのうち、選択された親ノードに対応する子ノードであって、選択された属性について属性値が所定の基準を満たす子ノードを抽出する。そして、抽出した子ノードと当該子ノード及び当該親ノード間を結ぶエッジとを表示用グラフデータ131に追加してインタフェース部14に表示させる。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、グラフ可視化装置及びグラフ可視化方法及びグラフ可視化プログラムに関するものである。
【背景技術】
【0002】
グラフ可視化装置は、蓄積された文書データを解析して、文書データのテキストに含まれる単語同士の関係をノード及びエッジで構成されたネットワークグラフとして表すグラフデータを生成し、このグラフデータを画面上に表示するものである(例えば、特許文献1〜4参照)。画面上に表示可能な情報量には限りがあるため、従来のグラフ可視化装置では、閾値処理法等によって重要度の低いデータを隠蔽し、重要度の高い特徴的部分のみを表示していた。
【先行技術文献】
【特許文献】
【0003】
【特許文献1】特開2009−75881号公報
【特許文献2】特開2007−293685号公報
【特許文献3】特開2007−206771号公報
【特許文献4】特開2004−348555号公報
【発明の概要】
【発明が解決しようとする課題】
【0004】
従来のグラフ可視化装置では、閾値処理法等を用いる場合、データ全体に対して1つの閾値を使うのが一般的であった。そのため、グラフ可視化装置が大量のノードを間引いてグラフデータを表示している場合に、ユーザが画面上で隠蔽された部分の詳細を見ようとして閾値を下げる操作を行うと、わずかに閾値を操作しただけでグラフ可視化装置が表示すべきノードの数が大幅に増えることになる。しかし、表示すべきノードの数が画面上に表示可能な数を超えると、少なくとも超過分のノードは表示されなくなってしまうため、着目すべきデータが表示されない可能性がある。そのため、詳細なデータの分析が的確に行えないという課題があった。
【0005】
本発明は、例えば、画面にグラフを表示してデータの分析を行う際に、画面に大量のノードを表示しなくとも詳細なデータの分析を的確に行えるようにすることを目的とする。
【課題を解決するための手段】
【0006】
本発明の一の態様に係るグラフ可視化装置は、
複数のノードとノード間を結ぶ複数のエッジとで構成されるグラフを表示するグラフ可視化装置であり、
前記複数のノードのうち、互いに親子関係をもつノードである親ノード及び子ノードを対応付けて示す階層ノードデータと、ノードごとに、複数種類の属性それぞれについて属性値を示すノード属性データとを格納する記憶装置と、
前記記憶装置に格納された階層ノードデータが示す親ノードのうち少なくとも1つを含むグラフの表示用グラフデータを処理装置により作成する表示用データ作成部と、
前記表示用データ作成部が作成した表示用グラフデータを出力装置により画面に表示し、表示した表示用グラフデータに含まれる親ノードのうち1つを選択する操作と、前記複数種類の属性のうち1種類を選択する操作とを入力装置により受け付けるインタフェース部とを備え、
前記表示用データ作成部は、前記記憶装置に格納された階層ノードデータが示す子ノードのうち、前記インタフェース部を介して選択された親ノードに対応する子ノードであって、前記インタフェース部を介して選択された属性について前記記憶装置に格納されたノード属性データが示す属性値が所定の基準を満たす子ノードを抽出し、抽出した子ノードと当該子ノード及び当該親ノード間を結ぶエッジである親子関係エッジとを前記処理装置により前記表示用グラフデータに追加し、新たな表示用グラフデータとして前記インタフェース部に表示させることを特徴とする。
【発明の効果】
【0007】
本発明の一の態様において、グラフ可視化装置の表示用データ作成部は、親ノードのうち少なくとも1つを含むグラフの表示用グラフデータを作成し、グラフ可視化装置のインタフェース部は、この表示用グラフデータを画面に表示する。インタフェース部は、この表示用グラフデータに含まれる親ノードのうち1つを選択する操作と、複数種類の属性のうち1種類を選択する操作とを受け付ける。表示用データ作成部は、子ノードのうち、インタフェース部を介して選択された親ノードに対応する子ノードであって、インタフェース部を介して選択された属性について属性値が所定の基準を満たす子ノードを抽出する。そして、表示用データ作成部は、抽出した子ノードと当該子ノード及び当該親ノード間を結ぶエッジである親子関係エッジとを表示用グラフデータに追加し、新たな表示用グラフデータとしてインタフェース部に表示させる。これにより、画面に大量のノードを表示しなくとも詳細なデータの分析を的確に行うことが可能となる。
【図面の簡単な説明】
【0008】
【図1】実施の形態1に係るグラフ可視化装置の構成を示すブロック図である。
【図2】実施の形態1に係る単語階層データの例を示す図である。
【図3】実施の形態1に係る単語相関データ、属性値データ、属性値設定データの例を示す図である。
【図4】実施の形態1に係る階層ノードデータ、階層ノード優先度データの例を示す図である。
【図5】実施の形態1に係る関連エッジデータ、関連エッジ優先度データの例を示す図である。
【図6】実施の形態1に係るインタフェース部の入出力画面例を示す図である。
【図7】実施の形態1に係るグラフ可視化装置のハードウェア構成の一例を示す図である。
【図8】実施の形態1に係るグラフ可視化装置の動作を示すフローチャートである。
【図9】実施の形態1に係るグラフ可視化装置の動作を示すフローチャートである。
【図10】実施の形態1に係るグラフ可視化装置の動作を示すフローチャートである。
【図11】実施の形態1に係るグラフ可視化装置の動作を示すフローチャートである。
【図12】実施の形態2に係るインタフェース部の入出力画面例を示す図である。
【図13】実施の形態3に係るグラフ可視化装置の構成を示すブロック図である。
【発明を実施するための形態】
【0009】
以下、本発明の実施の形態について、図を用いて説明する。
【0010】
実施の形態1.
図1は、本実施の形態に係るグラフ可視化装置10の構成を示すブロック図である。
【0011】
グラフ可視化装置10は、複数のノードとノード間を結ぶ複数のエッジとで構成されるグラフを表示する。本実施の形態において、複数のノードは、所定の文書に記載された複数の単語を表すものとする。例えば、任意の文書データのテキストに含まれる単語1つ1つをノードとすることができる。なお、後述するように、互いに親子関係又は相関関係をもつものであれば、単語以外のテキスト、あるいは、その他の種類のデータをノードとして扱ってもよい。
【0012】
前述したように、従来のグラフ可視化装置では、データ全体に対して1つの閾値を使うのが一般的であったため、表示すべきノードの数が画面上に表示可能な数を超えると、着目すべきデータが表示されない可能性があり、詳細なデータの分析が的確に行えないという課題があった。これに対し、本実施の形態では、ノードやエッジに対して、閾値処理が適用可能な数値属性を複数付与している。そして、グラフ可視化装置10では、それらの属性から閾値処理に用いる属性をユーザに選択させ、部分データごとに異なる値を用いて閾値処理をする。そのため、ユーザが1つの閾値を操作しただけでグラフ可視化装置10が表示すべきノードの数が大幅に増えるということがない。したがって、画面に大量のノードを表示しなくとも詳細なデータの分析を的確に行うことが可能となる。
【0013】
大量のデータをグラフ化の対象とする場合、それを何らかの基準で分類し、部分グラフ化した上で、その一部分で適用する閾値や閾値処理に用いる属性を変えると、よりデータの特性に合った情報を表示することができるようになる。本実施の形態では、そのような特徴的な機能をグラフ可視化装置10に実装している。
【0014】
ここで、データの部分ごとに閾値処理を行うためには、まず閾値を適用する部分を特定した上で、その部分のデータを、閾値処理に用いる属性の数値(属性値)でソートした状態で抽出する必要がある。従来のグラフ可視化装置では、属性を1つしか用いていなかったため、予めその属性値でソートした状態のデータリストを作成しておき、その上位データのみを抽出すればよかった。しかし、データの部分ごとに閾値処理を行う場合、抽出すべきデータが多岐にわたるため、抽出処理にかかる負荷が高くなる。さらに、属性の種類が増えることによって抽出処理で扱う属性値の数が増える。したがって、画面上でのインタラクティブな操作によってデータの分析を行う際に求められる応答性能を満たすには、適切なデータ構造を用いる必要がある。本実施の形態では、そのような特徴的なデータ構造をグラフ可視化装置10に採用している。
【0015】
図1において、グラフ可視化装置10は、記憶装置11を備えるほか、図示してない処理装置、入力装置、出力装置等のハードウェアを備える。また、グラフ可視化装置10は、グラフデータ作成部12、表示用データ作成部13、インタフェース部14を備える。ハードウェアはグラフ可視化装置10の各部によって利用される。例えば、処理装置は、グラフ可視化装置10の各部でデータや情報の演算、加工、読み取り、書き込み等を行うために利用される。記憶装置11は、そのデータや情報を記憶するために利用される。また、入力装置は、そのデータや情報を入力するために、出力装置は、そのデータや情報を出力するために利用される。
【0016】
記憶装置11(例えば、ハードディスク)は、単語階層データ111、単語相関データ112、属性値データ113、属性値設定データ114の4種類の入力データを予め格納する。
【0017】
単語階層データ111は、文書データから抽出された単語を、単語の意味等を用いて分類し、単語同士の親子関係を木構造で表したデータである。つまり、単語階層データ111は、所定の文書に記載された複数の単語の親子関係を示すデータである。ここで、図2に単語階層データ111の例を示す。図2の例において、『顧客』、『製品』、『開拓中』、『見込み』、『既存』、『A社』、『B社』、『Sシリーズ』、『S01』等は文書から抽出された単語やそれを階層化するために追加された抽象語であり、個々のノードである。ノード群は複数の階層で構成された木構造データである。例えば、『顧客』と『既存』は、前者を親、後者を子とする親子関係をもっている。同様に、『既存』と『A社』は、前者を親、後者を子とする親子関係をもっている。また、『顧客』と『製品』は、互いに親が同じである兄弟の関係をもっている。同様に、『開拓中』と『見込み』と『既存』は、兄弟の関係をもっている。
【0018】
単語相関データ112は、文書データから抽出された単語同士の、同一文書中に出現する頻度や、掛かり受け等の、親子関係以外の関係について集計したデータである。つまり、単語相関データ112は、所定の文書における単語同士の相関関係を示すデータである。ここで、図3(a)に単語相関データ112の例を示す。図3(a)の例において、「相関1」テーブルは、2つの単語の組み合わせごとに、両方の単語が同一文書中に出現した頻度(単語共起関係)を相関関係として表している。「抽出語」列には、単語の組み合わせが格納されている。「抽出語」列に含まれる『A社』、『B社』、『Sシリーズ』、『S01』等は文書から抽出された単語やそれを階層化するために追加された抽象語である。「共起文書数」列には、それらの単語が同時に使われている文書数の集計値が格納されている。
【0019】
属性値データ113は、文書以外から得られる単語に関する情報、即ち、属性情報を数値等で表したデータである。例えば、単語として会社名があるとすると、それに対応する属性値として、会社別・製品別の売上高データや問い合わせ数、会社の従業員数等がある。つまり、属性値データ113は、単語ごとに、複数種類の属性それぞれについて属性値を示すデータである。ここで、図3(b)に属性値データ113の例を示す。図3(b)の例において、「属性1」テーブルには、会社別・製品別の売上高(単位:億円)を集計したデータが格納されている。例えば、『A社』の『S01』の売上高は0円、『A社』の『S02』の売上高は1億円であり、『A社』の合計売上高は1億円である。また、『B社』の『S01』の売上高は200億円、『B社』の『S02』の売上高は0円であり、『B社』の合計売上高は1000億円である。
【0020】
属性値設定データ114は、単語相関データ112や属性値データ113の種類ごとに表示名称等を設定したデータである。ここで、図3(c)に属性値設定データ114の例を示す。図3(c)の例において、1番目の単語相関データ112である「相関1」テーブルに格納されたデータは「共起文書数」であることが定義されている。また、例えば、1番目の属性値データ113である「属性1」テーブルに格納されたデータは「売上高」であることが定義されている。
【0021】
グラフデータ作成部12は、入力データをグラフとして表すデータを処理装置により作成し、作成したデータを記憶装置11に格納する(例えば、メモリ上に展開する)。このとき、グラフデータ作成部12は、表示用データ作成部13によって問い合わせされる子ノード群ごとにデータを格納する。
【0022】
グラフデータ作成部12は、階層ノード作成部121、関連エッジ作成部122、優先度データ作成部123を備える。
【0023】
階層ノード作成部121は、単語階層データ111から階層ノードデータ124を作成してメモリ上に展開する。階層ノードデータ124は、複数のノードのうち、互いに親子関係をもつノードである親ノード及び子ノードを対応付けて示すデータである。
【0024】
関連エッジ作成部122は、単語相関データ112から関連エッジデータ125を作成してメモリ上に展開する。関連エッジデータ125は、複数のノードのうち、互いに相関関係をもつノード同士を対応付けて示す関連ノードデータの一例である。
【0025】
優先度データ作成部123は、属性値データ113から階層ノード優先度データ126と関連エッジ優先度データ127を作成してメモリ上に展開する。階層ノード優先度データ126は、ノードごとに、複数種類の属性それぞれについて属性値を示すノード属性データの一例である。関連エッジ優先度データ127は、互いに相関関係をもつノードの組み合わせごとに、複数種類の属性それぞれについて属性値を示すエッジ属性データの一例である。なお、優先度データ作成部123は、既存の統計的手法(例えば、単語の出現する文書数の集計値や、文書データ全体に対する出現率等)によって属性値を作成して追加することも可能である。
【0026】
ここで、図4及び図5にグラフデータ作成部12が作成するデータの例を示す。以下の例に示すように、本実施の形態では、前述した特徴的なデータ構造を採用している。
【0027】
図4の例において、階層ノードデータ124は、1行が1ノードを表すテーブルであり、ノードのID(識別子)となる行番号1241、画面上のノードに表示するラベル1242、ノードの下位に属する子ノード1243の列をもつ。この例では、ノードを兄弟ノード(同じノードに属する子ノード群)ごとに連続するように配置している。そのため、ノードに属する子ノード1243は、兄弟ノードの先頭行を表す先頭行番号1244と子ノード数1245で示されている。例えば、図2の例を参照すると、『既存』と、『A社』、『B社』、『C社』、『D社』は親子関係をもっている。『既存』のノードは4行目、『A社』、『B社』、『C社』、『D社』のノードはn行目〜n+3行目にあるから、4行目において、先頭行番号1244は「n」、子ノード数1245は「4」となる。子ノードをもたないノードの場合、先頭行番号1244はnull、子ノード数1245は「0」となる。
【0028】
階層ノード優先度データ126は、属性値1261及びソート順行番号1262の2つのテーブルからなる。属性値1261のテーブルでは、ノードの属性値が、階層ノードデータ124でそのノードに該当する行と同じ行に、属性の種類(列)ごとに格納されている。そのため、階層ノードデータ124で1つのノードを参照するとき、階層ノード優先度データ126でも同じ行を指定することで、そのノードの属性値を参照可能である。ソート順行番号1262のテーブルでは、兄弟ノード群をそれぞれのノードの属性値でソートした順(例えば、降順)に行番号がインデックスとして属性の種類(列)ごとに格納されている。例えば、図3(b)の例を参照すると、『A社』の売上高は1億円、『B社』の売上高は1000億円である。売上高を「優先度1」の属性とすると、『A社』のノードはn行目にあるから、属性値1261のテーブルのn行目において、「優先度1」の属性値は「1」となる。同様に、『B社』のノードはn+1行目にあるから、属性値1261のテーブルのn+1行目において、「優先度1」の属性値は「1000」となる。『C社』の売上高が100億円、『D社』の売上高が10億円であるとすると、属性値1261のテーブルのn行目〜n+3行目において、「優先度1」の属性値は「1」、「1000」、「100」、「10」となる。この場合、ソート順行番号1262のテーブルのn行目〜n+3行目において、「優先度1」の行番号は、売上高の大きい順に「n+1」、「n+2」、「n+3」、「n」となる。「優先度2」、「優先度3」の属性値についても同様である。例えば、図3(c)の例における問い合わせ数を「優先度2」の属性とし、従業員数を「優先度3」の属性とすることができる。
【0029】
なお、図4に例示した階層ノードデータ124及び階層ノード優先度データ126は、図2の例における『顧客』のサブツリーについて作成されるものである。図2の例における『製品』のサブツリーについても同様のデータ構造で階層ノードデータ124及び階層ノード優先度データ126が作成されるものとする。
【0030】
図5の例において、関連エッジデータ125は、1行(ノード行番号1251)・1列(ノード行番号1252)が1ノードを表すノード間のマップインデックス表である。関連エッジ優先度データ127は、1行が1エッジを表すテーブルであり、エッジのIDとなる行番号1271、エッジの属性値1272の列をもつ。関連エッジデータ125では、関連エッジ優先度データ127の行番号1271への索引としてエッジデータが管理される。例えば、関連エッジデータ125のノード行番号1251が「n」の行は図4の例における階層ノードデータ124のn行目にある『A社』のノードに対応する。同様に、関連エッジデータ125のノード行番号1251が「n+1」の行は『B社』のノードに対応する。ここで、図2の例における『製品』のサブツリーについて作成される階層ノードデータ124のm行目〜m+2行目には、『S01』、『S02』、『S03』のノードがあるものとする。この場合、関連エッジデータ125のノード行番号1252が「m」の列は『製品』のサブツリーについて作成される階層ノードデータ124のm行目にある『S01』のノードに対応する。同様に、関連エッジデータ125のノード行番号1252が「m+1」の列は『S02』のノード、「m+2」の列は『S03』のノードに対応する。図3(a)を参照すると、『A社』と『S02』の間には相関がある。そのため、関連エッジデータ125では、ノード行番号1251が「n」でノード行番号1252が「m+1」となるエッジのIDとして「k」が示されている。例えば、図3(b)の例を参照すると、『A社』の『S02』の売上高は1億円であるから、関連エッジ優先度データ127の行番号1271が「k」の行において、「優先度1」の属性値は「1」となる。同様に、図3(a)を参照すると、『B社』と『S01』及び『S03』の間には相関がある。そのため、関連エッジデータ125では、ノード行番号1251が「n+1」でノード行番号1252が「m」、「m+2」となるエッジのIDとして「k+1」、「k+2」が示されている。例えば、図3(b)の例を参照すると、『B社』の『S01』、『S03』の売上高はそれぞれ200億円、0円であるから、関連エッジ優先度データ127の行番号1271が「k+1」、「k+2」の行において、「優先度1」の属性値は「200」、「0」となる。
【0031】
なお、図4及び図5の例において、属性の種類は3種類に限らず、2種類、あるいは、4種類以上であってもよい。また、ソート順行番号1262のソートは降順でなく、昇順で行われてもよいし、他の方法で行われてもよい。あるいは、属性の種類ごとに個別に決められた方法で行われてもよい。
【0032】
上記のように、グラフデータ作成部12は、単語階層データ111と単語相関データ112と属性値データ113とから、処理装置によりそれぞれ階層ノードデータ124と関連エッジデータ125と階層ノード優先度データ126及び関連エッジ優先度データ127とを作成して記憶装置11に格納する(例えば、メモリ上に展開する)。
【0033】
表示用データ作成部13は、グラフデータ作成部12が作成したデータから、画面に表示する表示用グラフデータ131を処理装置により作成し、作成した表示用グラフデータ131を記憶装置11(例えば、メモリ)に格納する。
【0034】
表示用データ作成部13は、子ノード問い合わせ部132、表示用グラフデータ取得部133、表示優先度切り替え部134を備える。
【0035】
子ノード問い合わせ部132は、階層ノード優先度データ126や関連エッジ優先度データ127から優先度の高いノードやエッジを抽出した上で、表示に必要なラベル1242(ノード名)等のデータを階層ノードデータ124から取得する。
【0036】
表示用グラフデータ取得部133は、子ノード問い合わせ部132が抽出したノードやエッジを示すとともに、子ノード問い合わせ部132が取得したラベル1242等のデータを含む表示用グラフデータ131を取得してメモリに格納する。
【0037】
表示優先度切り替え部134は、インタフェース部14を介してユーザが優先度の切り替えを行うときに、候補となる属性の種類を属性値設定データ114から特定する。そして、表示優先度切り替え部134は、特定した属性の種類を示すデータをインタフェース部14に渡す。また、表示優先度切り替え部134は、インタフェース部14を介してユーザが属性の種類を選択したときに、選択された属性の種類をパラメータとして表示用グラフデータ取得部133に対して新たに表示用グラフデータ131を取得するように指示する。
【0038】
インタフェース部14は、グラフやその操作メニューを出力装置により表示するとともに、入力装置を介して操作内容を表示用データ作成部13に入力する。
【0039】
インタフェース部14は、グラフ操作部141、グラフ表示部142、閾値設定部143を備える。
【0040】
グラフ表示部142は、表示用データ作成部13の表示用グラフデータ取得部133がメモリに格納した表示用グラフデータ131を画面上に表示する画像に変換して出力する。
【0041】
グラフ操作部141は、画面に表示されたグラフデータに対して、ノードの展開/縮退、非表示/再表示等の操作を行うための入力インタフェースを提供する。
【0042】
閾値設定部143は、表示用データ作成部13の表示優先度切り替え部134から渡されたデータで示される属性の種類を、優先度の切り替え候補として画面上で操作メニューに表示する。そして、閾値設定部143は、操作メニューで選択された属性の種類を表示用データ作成部13の表示優先度切り替え部134に通知する。
【0043】
ここで、図6(a)〜(c)にインタフェース部14の入出力画面例を示す。以下の例に示すように、本実施の形態では、前述した特徴的な機能をグラフ可視化装置10に実装している。
【0044】
図6(a)の例において、画面1421aは、インタフェース部14のグラフ表示部142によって表示されている。画面1421aでは、予め定められた階層までのノード1422のみが表示され、それより下位層のノードは縮退した状態(非表示の状態)となっている。下位層のノードは、展開操作を行うことで適宜表示させることができる。互いに親子関係をもつノード1422同士の間には、親子関係を示すエッジである親子関係エッジ1423が描画されている。また、互いに相関関係をもつノード1422同士の間には、相関関係を示すエッジである関連エッジ1424が描画されている。この例では、親子関係エッジ1423と関連エッジ1424の2種類のエッジを同じ線種で表示しているが、一方を黒い線、他方を赤い線とする、あるいは、一方を実線、他方を波線とする等、異なる態様で表示するようにしてもよい。
【0045】
例えば、画面1421aでは、『顧客』のノード1422と、その子ノードである『開拓中』、『見込み』、『既存』のノード1422が表示されるとともに、親子関係のあるノード1422同士の間に親子関係エッジ1423が描画されている。同様に、画面1421aでは、『製品』、『Lシリーズ』、『Sシリーズ』、『その他』、『S01』、『S02』、『S03』のノード1422が表示されるとともに、親子関係のあるノード1422同士の間に親子関係エッジ1423が描画されている。また、例えば、画面1421aでは、『既存』のノード1422と、『Lシリーズ』、『S01』、『S02』、『S03』のノード1422の間に関連エッジ1424が描画されている。ここで、関連エッジ1424の太さは、その属性値の大きさを表すものとする。なお、『既存』と『Sシリーズ』の間にも相関関係があるが、『Sシリーズ』のノード1422が展開されている(子ノードが表示されている)ため、『既存』のノード1422と『Sシリーズ』のノード1422の間を結ぶエッジは省略されている。
【0046】
画面1421aでは、非表示の状態となっている下位層のノードをもつノード1422(展開対象のノード1422)の上に、展開操作のための展開優先度メニュー1431が表示されている。ユーザが展開優先度メニュー1431に表示されている属性の種類を選択すると、展開対象のノード1422とユーザによって選択された属性の種類がインタフェース部14の閾値設定部143から表示用データ作成部13の表示優先度切り替え部134に通知される。表示用データ作成部13では、表示優先度切り替え部134が、表示用グラフデータ取得部133に対し、展開対象のノード1422とユーザによって選択された属性の種類を通知して新たな表示用グラフデータ131を取得するように指示する。表示用グラフデータ取得部133は、表示優先度切り替え部134から通知された属性の種類について優先度の高いノード及びエッジを抽出するよう子ノード問い合わせ部132に指示する。子ノード問い合わせ部132は、展開対象のノード1422の子ノードのうち、その属性の種類について、属性値が上位の子ノードを階層ノード優先度データ126から取得する。このとき、子ノード問い合わせ部132が抽出する子ノードの数の上限は、予め設定されていてもよいし、画面に表示可能なノードの数に合わせて動的に設定されてもよいし、ユーザが属性の種類を選択する際に指定できるようにしてもよい。子ノード問い合わせ部132は、抽出した子ノードのラベル1242(ノード名)等のデータを階層ノードデータ124から取得する。また、子ノード問い合わせ部132は、抽出した子ノードを他のノードと結ぶエッジ及びその属性値を関連エッジデータ125及び関連エッジ優先度データ127から抽出する。表示用グラフデータ取得部133は、子ノード問い合わせ部132が抽出した子ノード、子ノードのラベル1242等、エッジ、エッジの属性値を示す表示用グラフデータ131を取得してメモリに格納する。インタフェース部14のグラフ表示部142は、この表示用グラフデータ131を参照して展開操作を行う。つまり、インタフェース部14のグラフ表示部142は、表示用グラフデータ131で示された子ノード及びエッジを画面1421aに追加表示する。
【0047】
例えば、画面1421aにて、ユーザがインタフェース部14のグラフ操作部141を介して『既存』のノード1422に対し、所定の選択操作を行うと、『既存』のノード1422が展開対象のノード1422となる。これに伴い、インタフェース部14の閾値設定部143は、『既存』のノード1422の上に展開優先度メニュー1431を表示する。このとき、インタフェース部14の閾値設定部143は、表示用データ作成部13の表示優先度切り替え部134から属性の種類として、売上高、問い合わせ数、従業員数等があることを通知され、これらを選択肢として展開優先度メニュー1431に表示する。例えばユーザによって売上高が選択されると、インタフェース部14の閾値設定部143は、『既存』のノード1422が展開対象のノード1422であること、及び、属性の種類として売上高が選択されたことを表示用データ作成部13に通知する。表示用データ作成部13において、子ノード問い合わせ部132は、階層ノード優先度データ126にアクセスする。図4の例を用いた場合、子ノード問い合わせ部132は、階層ノードデータ124にて『既存』のノード1422に対応する4行目の先頭行番号1244及び子ノード数1245を参照する。先頭行番号1244は「n」、子ノード数1245は「4」であるから、子ノード問い合わせ部132は、ソート順行番号1262のテーブルのn行目〜n+3行目を参照する。売上高に対応する「優先度1」列は、売上高の大きい順に「n+1」、「n+2」、「n+3」、「n」となっているため、抽出対象となる子ノードの数の上限が例えば2個であるとすると、n+1行目及びn+2行目が抽出対象となる。子ノード問い合わせ部132は、階層ノードデータ124のn+1行目及びn+2行目、即ち、『B社』及び『C社』のノードを抽出する。また、図5の例を用いた場合、子ノード問い合わせ部132は、関連エッジデータ125にてノード行番号1251が「n+1」、「n+2」の行から、エッジのIDとして「k+1」、「k+2」等を抽出する。そして、子ノード問い合わせ部132は、関連エッジ優先度データ127の行番号1271が「k+1」、「k+2」等の行の「優先度1」列を参照し、各エッジの属性値を抽出する。表示用グラフデータ取得部133は、『B社』及び『C社』のノード、『B社』と『S01』を結ぶエッジや『B社』と『S03』を結ぶエッジ等、及び、これらの属性値を示す表示用グラフデータ131を取得してメモリに格納する。インタフェース部14のグラフ表示部142は、表示用グラフデータ131で示された『B社』及び『C社』のノード1422、『B社』と『S01』を結ぶ関連エッジ1424や『B社』と『S03』を結ぶ関連エッジ1424等を画面1421aに追加表示する。このとき、『B社』と『S01』を結ぶ関連エッジ1424等、属性値の大きいものについては、太線で表示する。なお、属性値の大きさを関連エッジ1424の太さでなく、色等、他の態様で表してもよい。
【0048】
図6(b)の例において、画面1421bは、インタフェース部14のグラフ表示部142によって表示されている。画面1421bでは、選択された属性値でノード1422がフィルタリング表示されている。
【0049】
画面1421bでは、下位層のノードをもつノード1422(展開対象のノード1422)の上に、スクロールバー1432が表示されている。スクロールバー1432は、画面1421bで表示されている下位層のノードは属性値が上位のノードであり、それ以外にも下位層のノードが存在していることを示している。
【0050】
図6(c)の例において、画面1421cは、インタフェース部14のグラフ表示部142によって表示されている。画面1421cでは、画面1421bのスクロールバー1432が操作され、図6(b)の例における属性値の範囲と異なる範囲でノード1422がフィルタリング表示されている。
【0051】
例えば、画面1421bにて、ユーザがスクロールバー1432を操作し、属性値の範囲を変更すると、図6(a)の例においてユーザが属性の種類を選択した場合と同様に、新たな表示用グラフデータ131が作成され、これに合わせて画面1421bが画面1421cに更新される。図6(c)の例では、スクロールバー1432の操作によって新たに表示された『C社』のノード1422と『S01』のノード1422の間の関連エッジ1424が太いことから、『C社』は『S01』の売上高は下位だが『S01』に関する問い合わせは積極的に行っていることが判明する。
【0052】
以上のように、本実施の形態では、データ全体ではなく、注目している部分のみに対して適用するフィルタリング設定を行うことが可能となる。また、スクロールバー1432等の範囲選択インタフェースにより、範囲選択によって既表示のノード・エッジと入れ替えて別のノード・エッジを表示することにより、表示するノード数を大幅に増やさずに閾値により非表示化されたノード及びエッジが表示可能になる。なお、範囲選択インタフェースによってどのような範囲が選択されても、常に一定数以下の子ノードしか表示しないようにしてもよい。また、表示を許容する子ノードの数を直接数値入力できるようにしてもよい。これによって、表示するノード数が大幅に増えないことを確実にした上で、ノード及びエッジの表示/非表示をコントロールすることができる。
【0053】
上記のように、表示用データ作成部13は、記憶装置11に格納された(例えば、メモリ上に展開された)階層ノードデータ124が示す親ノードのうち少なくとも1つ(例えば、『開拓中』、『見込み』、『既存』のノード1422)を含むグラフの表示用グラフデータ131を処理装置により作成する。インタフェース部14は、表示用データ作成部13が作成した表示用グラフデータ131を出力装置により画面に表示する(例えば、画面1421a)。また、インタフェース部14は、表示した表示用グラフデータ131に含まれる親ノードのうち1つ(例えば、『既存』のノード1422)を選択する操作と、複数種類の属性(例えば、売上高、問い合わせ数、従業員数)のうち1種類(例えば、売上高)を選択する操作(例えば、展開優先度メニュー1431の操作)とを入力装置により受け付ける。表示用データ作成部13は、記憶装置11に格納された階層ノードデータ124が示す子ノードのうち、インタフェース部14を介して選択された親ノードに対応する子ノードであって、インタフェース部14を介して選択された属性について記憶装置11に格納された階層ノード優先度データ126が示す属性値が所定の基準(例えば、上位2つ)を満たす子ノード(例えば、『B社』、『C社』のノード1422)を抽出する。そして、表示用データ作成部13は、抽出した子ノードと当該子ノード及び当該親ノード間を結ぶエッジである親子関係エッジ1423とを処理装置により表示用グラフデータ131に追加する。表示用データ作成部13は、さらに、記憶装置11に格納された関連エッジデータ125が示すノードのうち、抽出した子ノードと相関関係をもつノード(例えば、『S01』、『S03』のノード1422等)を関連ノードとして抽出する。そして、表示用データ作成部13は、抽出した関連ノードと当該関連ノード及び当該子ノード間を結ぶエッジである関連エッジ1424とを処理装置により表示用グラフデータ131に追加する。表示用データ作成部13は、このように変更した表示用グラフデータ131を新たな表示用グラフデータ131としてインタフェース部14に表示させる。
【0054】
また、表示用データ作成部13は、インタフェース部14を介して選択された属性について記憶装置11に格納された関連エッジ優先度データ127が示す属性値に応じて、対応する組み合わせのノード間を結ぶ関連エッジの表示態様(例えば、太さ)を設定する。
【0055】
また、インタフェース部14は、さらに、選択された属性について属性値の範囲を指定する操作(例えば、スクロールバー1432の操作)を入力装置により受け付ける。表示用データ作成部13は、記憶装置11に格納された階層ノードデータ124が示す子ノードのうち、インタフェース部14を介して選択された親ノードに対応する子ノードであって、インタフェース部14を介して選択された属性について記憶装置11に格納された階層ノード優先度データ126が示す属性値がインタフェース部14を介して指定された範囲内となる子ノードを抽出する。
【0056】
図7は、グラフ可視化装置10のハードウェア構成の一例を示す図である。
【0057】
図7において、グラフ可視化装置10は、コンピュータであり、LCD901(Liquid・Crystal・Display)、キーボード902(K/B)、マウス903、FDD904(Flexible・Disk・Drive)、CDD905(Compact・Disc・Drive)、プリンタ906といったハードウェアデバイスを備えている。これらのハードウェアデバイスはケーブルや信号線で接続されている。LCD901の代わりに、CRT(Cathode・Ray・Tube)、あるいは、その他の表示装置が用いられてもよい。マウス903の代わりに、タッチパネル、タッチパッド、トラックボール、ペンタブレット、あるいは、その他のポインティングデバイスが用いられてもよい。
【0058】
グラフ可視化装置10は、プログラムを実行するCPU911(Central・Processing・Unit)を備えている。CPU911は、処理装置の一例である。CPU911は、バス912を介してROM913(Read・Only・Memory)、RAM914(Random・Access・Memory)、通信ボード915、LCD901、キーボード902、マウス903、FDD904、CDD905、プリンタ906、HDD920(Hard・Disk・Drive)と接続され、これらのハードウェアデバイスを制御する。HDD920の代わりに、フラッシュメモリ、光ディスク装置、メモリカードリーダライタ又はその他の記憶媒体が用いられてもよい。
【0059】
RAM914は、揮発性メモリの一例である。ROM913、FDD904、CDD905、HDD920は、不揮発性メモリの一例である。これらは、記憶装置11の一例である。通信ボード915、キーボード902、マウス903、FDD904、CDD905は、入力装置の一例である。また、通信ボード915、LCD901、プリンタ906は、出力装置の一例である。
【0060】
通信ボード915は、LAN(Local・Area・Network)等に接続されている。通信ボード915は、LANに限らず、IP−VPN(Internet・Protocol・Virtual・Private・Network)、広域LAN、ATM(Asynchronous・Transfer・Mode)ネットワークといったWAN(Wide・Area・Network)、あるいは、インターネットに接続されていても構わない。LAN、WAN、インターネットは、ネットワークの一例である。
【0061】
HDD920には、オペレーティングシステム921(OS)、ウィンドウシステム922、プログラム群923、ファイル群924が記憶されている。プログラム群923のプログラムは、CPU911、オペレーティングシステム921、ウィンドウシステム922により実行される。プログラム群923には、本実施の形態の説明において「〜部」として説明する機能を実行するプログラムが含まれている。プログラムは、CPU911により読み出され実行される。ファイル群924には、本実施の形態の説明において、「〜データ」、「〜情報」、「〜ID(識別子)」、「〜フラグ」、「〜結果」として説明するデータや情報や信号値や変数値やパラメータが、「〜ファイル」や「〜データベース」や「〜テーブル」の各項目として含まれている。「〜ファイル」や「〜データベース」や「〜テーブル」は、RAM914やHDD920等の記憶媒体に記憶される。RAM914やHDD920等の記憶媒体に記憶されたデータや情報や信号値や変数値やパラメータは、読み書き回路を介してCPU911によりメインメモリやキャッシュメモリに読み出され、抽出、検索、参照、比較、演算、計算、制御、出力、印刷、表示といったCPU911の処理(動作)に用いられる。抽出、検索、参照、比較、演算、計算、制御、出力、印刷、表示といったCPU911の処理中、データや情報や信号値や変数値やパラメータは、メインメモリやキャッシュメモリやバッファメモリに一時的に記憶される。
【0062】
本実施の形態の説明において用いるブロック図やフローチャートの矢印の部分は主としてデータや信号の入出力を示す。データや信号は、RAM914等のメモリ、FDD904のフレキシブルディスク(FD)、CDD905のコンパクトディスク(CD)、HDD920の磁気ディスク、光ディスク、DVD(Digital・Versatile・Disc)、あるいは、その他の記録媒体に記録される。また、データや信号は、バス912、信号線、ケーブル、あるいは、その他の伝送媒体により伝送される。
【0063】
本実施の形態の説明において「〜部」として説明するものは、「〜回路」、「〜装置」、「〜機器」であってもよく、また、「〜ステップ」、「〜工程」、「〜手順」、「〜処理」であってもよい。即ち、「〜部」として説明するものは、ROM913に記憶されたファームウェアで実現されていても構わない。あるいは、「〜部」として説明するものは、ソフトウェアのみ、あるいは、素子、デバイス、基板、配線といったハードウェアのみで実現されていても構わない。あるいは、「〜部」として説明するものは、ソフトウェアとハードウェアとの組み合わせ、あるいは、ソフトウェアとハードウェアとファームウェアとの組み合わせで実現されていても構わない。ファームウェアとソフトウェアは、プログラムとして、フレキシブルディスク、コンパクトディスク、磁気ディスク、光ディスク、DVD等の記録媒体に記憶される。プログラムはCPU911により読み出され、CPU911により実行される。即ち、プログラムは、本実施の形態の説明で述べる「〜部」としてコンピュータを機能させるものである。あるいは、プログラムは、本実施の形態の説明で述べる「〜部」の手順や方法をコンピュータに実行させるものである。
【0064】
以下では、グラフ可視化装置10の動作(本実施の形態に係るグラフ可視化方法、本実施の形態に係るグラフ可視化プログラムの処理手順)について説明する。
【0065】
図8は、グラフ可視化装置10が実行する基本処理の構成を表すフローチャートである。
【0066】
グラフ可視化装置10は、グラフデータ作成部12において入力データからグラフデータを作成する処理(S1)を処理装置により行う。グラフ可視化装置10は、表示用データ作成部13において表示用グラフデータ131を作成する処理(S2)を処理装置により行う。グラフ可視化装置10は、インタフェース部14においてグラフ表示処理(S3)を処理装置により行う。グラフの表示後、ノード1422が操作され、表示するグラフが変化する場合(S4)、グラフ可視化装置10は、表示用グラフデータ131を再度処理装置により作成する。
【0067】
図9は、グラフデータ作成処理(S1)のフローチャートである。
【0068】
まず、階層ノード作成部121が単語階層データ111を解析し、階層ノードデータ124を処理装置により作成する(S11)。次に、優先度データ作成部123は、属性値データ113を基に、階層ノード優先度データ126を処理装置により作成する(S12)。このとき、優先度データ作成部123は、属性値データ113から属性値1261を階層ノードデータ124の該当する行に収めた上で、兄弟ノードデータをソートし、ソートした順に行番号をソート順行番号1262の該当する属性の列に収めていく。関連エッジ作成部122は、単語相関データ112から関連エッジデータ125を処理装置により作成するとともに関連エッジ優先度データ127へのインデックスを作成する(S13)。優先度データ作成部123は、関連エッジ優先度データ127を処理装置により作成する(S14)。なお、関連エッジデータ125の作成は、階層ノード優先度データ126の作成の完了を待つ必要はないので、並行して実行することが可能である。
【0069】
図10は、表示用グラフデータ作成処理(S2)のフローチャートである。
【0070】
表示用グラフデータ131の作成には、親となるノードを指定する必要がある。初期画面の場合はルートノード、ノード展開操作の場合は展開操作を行ったノード等である。
【0071】
まず、子ノード問い合わせ部132は、親となるノードの階層ノードデータ124でのノードの行番号1241を処理装置により設定する(S201)。このとき、ラベル1242等では重複がある場合があり、ノードを一意に定められないため、行番号1241を用いることが望ましい。
【0072】
次に、子ノード問い合わせ部132は、子ノード取得のためのパラメータを処理装置により設定する(S202)。パラメータには、優先度表示に用いる属性の種類、取得する子ノード数、取得する子ノードの先頭順位がある。優先度表示に用いる属性の種類としては、展開優先度メニュー1431等で指定された属性を設定する。取得する子ノード数としては、前述したように、表示制御で設定されている値を与える。取得する子ノードの先頭順位としては、例えばデフォルトでは最上位を設定し、スクロールバー1432等で範囲が指定された場合には、指定範囲の中での最上位を設定する。
【0073】
次に、子ノード問い合わせ部132は、階層ノードデータ124においてノードの子ノードの先頭行番号1244を処理装置により取得する(S203)。子ノード問い合わせ部132は、実際に取得する順位のデータにアクセスするため、取得した先頭行番号1244の値に、取得する子ノードの先頭順位を足し合わせたものをインデックス番号とする(S204)。
【0074】
子ノード問い合わせ部132は、階層ノード優先度データ126のソート順行番号1262の、指定された属性の列において、得られたインデックス番号から、取得する子ノード数分の兄弟ノードインデックスを配列として処理装置により取得する(S205)。
【0075】
次に、子ノード問い合わせ部132は、子ノードの表示に用いる情報を処理装置により取得する。表示には、ラベルと関連エッジが最低限必要であるとする。子ノード問い合わせ部132は、子ノードのソート順インデックス配列に従ってデータを取得していく(S206)。子ノード問い合わせ部132は、子ノードのラベルとして、階層ノードデータ124のインデックスが該当する行番号1241のラベル1242列の値を取得する(S207)。子ノード問い合わせ部132は、子ノードに接続する関連エッジを取得するため、関連エッジデータ125において子ノードのインデックス位置を指定して取得する(S208)。
【0076】
表示データとして2階層以上を同時に表示する必要がある場合(S209)、子ノード問い合わせ部132は、取得した兄弟ノードインデックスを親ノードとして(S210)表示用データ作成処理を処理装置により行っていく(S211)。一方、必要なデータの取得が完了した場合、子ノード問い合わせ部132は、取得したデータを表示用グラフデータ131として表示用グラフデータ取得部133へ渡す。
【0077】
図11は、関連エッジデータ取得処理(S208)のフローチャートである。
【0078】
関連エッジデータ125も、階層ノードデータ124と同じで兄弟ノードごとのノード番号配置になっているため、子ノード問い合わせ部132は、ノードのインデックスを処理装置により設定する(S2081)。
【0079】
ノードの接続先となる相手方の階層のデータが必要である。これは、グラフの表示状況によるため、子ノード問い合わせ部132は、表示用グラフデータ131から、相手階層のリーフノード(画面上で展開されている最下位層のノード)のリストインデックスを取得して処理装置により設定する(S2082)。
【0080】
子ノード問い合わせ部132は、エッジの表示(太さ、色等)に属性値を用いる場合は属性の種類を処理装置により指定する(S2083)。
【0081】
子ノード問い合わせ部132は、相手階層のリーフノードのリストインデックス全てについて、関連エッジデータ125で該当するデータがあれば、そのデータを処理装置により取得する(S2084)。ここでは、そのデータの集合を関連エッジリストと称する。具体的には、子ノード問い合わせ部132は、相手階層のリーフノードのリストインデックそれぞれについて、関連エッジデータ125のノードインデックスの行と、相手階層のリーフノードのリストインデックスの値の列の対応する値を関連エッジ優先度データ127におけるエッジの行番号1271として取得する(S2084)。子ノード問い合わせ部132は、関連エッジ優先度データ127において、取得した行番号の、使用する属性の値を取得し、エッジリストに加える(S2085)。
【0082】
なお、本実施の形態では、グラフの初期表示の際にノードのラベルのみを取得し、ノードの属性値を取得しないが、ノードの属性値を取得しておき、グラフに表示したり、表示後の操作に対する処理に利用したりしてもよい。
【0083】
本実施の形態では、階層ノードデータ124や関連エッジデータ125が、親ノードに属する子ノードごとにメモリに配置されるため、子ノードの先頭行番号1244と子ノード数1245によって子ノードのデータのかたまり(リスト)に即座にアクセスできる。また、階層ノード優先度データ126では、行番号順に配置した属性値と兄弟ノードごとにソートした行番号とを同じ行に配置することで、データの検索処理を行わずに表示に必要なデータを抽出して操作対象とするノードデータを高速に表示することができる。これにより、インタラクティブな操作を行うために十分な応答性能を発揮することができる。
【0084】
以上説明したように、本実施の形態に係るグラフ可視化装置10は、文書から得られた単語を木構造に階層化したデータ(単語階層データ111)と、単語間の相関の強さを表すデータ(単語相関データ112)と、単語やその組み合わせの属性の値を表す属性値データ113と、属性値の名称等を表す属性値設定データ114を入力とし、入力された各データからノードとエッジからなるネットワークグラフのデータを作成するグラフデータ作成部12と、グラフデータのうち画面表示する部分を抽出し、表示用属性等を付与した表示用グラフデータ131を作成する表示用データ作成部13と、表示用グラフと操作メニューを画面に表示するインタフェース部14をもち、以下の特徴をもつ。
(a)グラフデータ作成部12は、ノードの階層関係を表す階層ノードデータ124と、ノードの属性値とソート後のインデックスをもつ階層ノード優先度データ126と、ノード間の相関関係を表すエッジの有無を表す関連エッジデータ125と、関連エッジの属性値をもつ関連エッジ優先度データ127からなるグラフデータを作成する。
(b)階層ノードデータ124は、兄弟ノード(同じ親をもつノード)単位でメモリ配置される。
(c)階層ノード優先度データ126は、兄弟ノードを属性値でソートし、ソート順のインデックスを、階層ノードデータ124における兄弟ノードの配置行範囲に配置したものである。
(d)関連エッジデータ125は、階層ノードデータ124と同じ行列番号配置でエッジの有無を表し、エッジがある場合は関連エッジ優先度データ127へのインデックスをもつ。
(e)グラフデータ作成部12は、入力データを(a)のデータに変換し、メモリに配置する。
(f)表示用データ作成部13は、設定された優先度の種類に応じてグラフデータからソート順インデックスを取得し、インデックスに従ってノード及びエッジのデータを取得し、表示用グラフデータ131を作成する子ノード問い合わせ機能をもつ。
【0085】
また、グラフ可視化装置10は、以下の特徴をもつ。
(a)インタフェース部14は、異なる種類の属性を複数もつノードに対し、その属性を表示優先度の基準として選択するメニューをもつ。
(b)表示用データ作成部13は、選択された優先度の種類に応じて表示用グラフデータ131を変更する子ノード問い合わせ機能をもつ。
【0086】
また、グラフ可視化装置10は、以下の特徴をもつ。
(a)インタフェース部14の画面上では、スクロールバー1432等の表示範囲選択操作可能な操作インタフェースがノードに付与されている。
(b)インタフェース部14は、スクロールによってソートされた子ノードの表示範囲を変える。
【0087】
また、グラフ可視化装置10は、以下の特徴をもつ。
(a)表示用データ作成部13は、インタフェース部14によって設定された表示範囲に応じてグラフデータからソート順インデックスを取得し、インデックスに従ってノード及びエッジのデータを取得し、表示用グラフデータ131を作成する。
【0088】
実施の形態2.
本実施の形態について、主に実施の形態1との差異を説明する。
【0089】
本実施の形態では、記憶装置11は、階層ノード優先度データ126として、ノードごとに、複数種類の属性と複数の期間との組み合わせそれぞれについて属性値を示すデータを格納する。なお、実施の形態1において、期間を属性の種類として扱ってもよい。つまり、実施の形態1において、グラフ可視化装置10が属性の種類を複数もつことができることを利用すると、期間ごとに集計された属性値を、別々の種類の属性値として扱うことにより、時系列によって変化するグラフデータを表示することができるようになる。
【0090】
ここで、図12(a)、(b)にインタフェース部14の入出力画面例を示す。
【0091】
図12(a)の例において、画面1421dは、インタフェース部14のグラフ表示部142によって表示されている。画面1421dでは、期間(例えば、年度)を指定するためのスクロールバー1432が表示されている。なお、期間を指定できるものであれば、スクロールバー1432以外の入力インタフェースを用いてもよい。画面1421dでは、選択された期間(例えば、2007年度)でグラフがフィルタリング表示されている。
【0092】
図12(b)の例において、画面1421eは、インタフェース部14のグラフ表示部142によって表示されている。画面1421eでは、画面1421dのスクロールバー1432が操作され、図12(a)の例における期間と異なる期間(例えば、2010年度)でグラフがフィルタリング表示されている。
【0093】
例えば、画面1421dにて、ユーザがスクロールバー1432を操作し、期間を変更すると、図6(a)の例においてユーザが属性の種類を選択した場合と同様に、新たな表示用グラフデータ131が作成され、これに合わせて画面1421dが画面1421eに更新される。期間が異なると、ノードの属性値やエッジの属性値が異なることが考えられる。その場合、表示対象となるノード1422が変わったり、表示される関連エッジ1424の太さが変わったりすることになる。また、期間が異なると、ノードに相当する単語を抽出する対象の文書が異なることが考えられる。その場合、単語の共起関係が変わり、表示される関連エッジ1424が変わることになる。
【0094】
上記のように、本実施の形態では、インタフェース部14は、期間を選択する操作(例えば、スクロールバー1432の操作)を入力装置により受け付ける。表示用データ作成部13は、記憶装置11に格納された(例えば、メモリ上に展開された)階層ノードデータ124が示す子ノードのうち、インタフェース部14を介して選択された親ノードに対応する子ノードであって、インタフェース部14を介して選択された属性について記憶装置11に格納された階層ノード優先度データ126が示す、インタフェース部14を介して選択された期間における属性値が前述した所定の基準(例えば、上位2つ)を満たす子ノードを抽出する。
【0095】
以上説明したように、本実施の形態に係るグラフ可視化装置10は、以下の特徴をもつ。
(a)グラフデータ作成部12は、異なる時系列ごとの属性値をもつ。
(b)インタフェース部14は、スクロールバー1432等の表示範囲選択操作可能なインタフェースをもち、スクロールによって時系列の異なるデータを選択可能である。
(c)表示用データ作成部13は、選択された時系列に応じて表示用グラフデータ131を変更する。
【0096】
実施の形態3.
本実施の形態について、主に実施の形態1との差異を説明する。
【0097】
実施の形態1では、グラフデータ作成部12が全てのデータをメモリ上に展開するようにしていたが、図6(a)等の例に示したように、最初に表示するグラフが縮退状態である場合はツリー上位のデータさえあれば初期画面の表示は可能である。また、ユーザの操作によって一度も表示されることのないデータがあり得る。また、一旦表示された後、ユーザの操作によって縮退する等して非表示化されると再度表示される可能性が低くなるデータがある。したがって、大部分のデータはメモリ上にもっておく必要性があまりない。しかも、大量にデータがある場合は、全てのデータをメモリにもつこと自体が困難である。そこで、データのうち、必要性の高い部分のみを適宜メモリに展開し、必要性の低い部分は適宜メモリから削除することで、よりメモリを有効に使用することができるようになる。
【0098】
本実施の形態では、記憶装置11は、単語階層データ111と単語相関データ112と属性値データ113とを予め格納する補助記憶装置(例えば、ハードディスク)と、グラフデータ作成部12が単語階層データ111と単語相関データ112と属性値データ113とから作成したデータを格納するための主記憶装置(例えば、メモリ)とからなる。例えば、グラフデータ作成部12は、最初に階層ノードデータ124、階層ノード優先度データ126、関連エッジデータ125、関連エッジ優先度データ127を作成する際は、予め定められた階層までのノードに係るデータのみを作成してメモリ上に展開する。階層ノードデータ124において、あるノードの子ノードに係るデータが作成されていない場合、そのノードの先頭行番号1244及び子ノード数はnullに設定しておけばよい。その後、新たなノードを画面に表示することになった場合、グラフデータ作成部12は、各データにそのノードの行を追加していく。
【0099】
図13は、本実施の形態に係るグラフ可視化装置10の構成を示すブロック図である。
【0100】
本実施の形態では、グラフデータ作成部12がデータ管理部128を備える。
【0101】
データ管理部128は、グラフデータ作成部12においてメモリ上に展開されているノードと、未展開のノードを管理する。表示用データ作成部13からの子ノード問い合わせ/優先度問い合わせを入力とし、グラフデータ作成部12に要求されるノード情報を得て、次に問い合わせがあると予測されるノードのデータをメモリに展開するようにグラフデータ作成部12に要求する。また、データ管理部128は、蓄積されたノード問い合わせ情報から、必要性が薄れたノードに係るデータを判別し、メモリから削除する。このとき、データ管理部128は、例えば、あるノードの子ノードが全て縮退状態、即ち、非表示の場合、当該子ノードを必要性が薄れたノードと判定する。子ノードが1つでも展開状態、即ち、表示されている場合、当該子ノードはまだ必要性があるノードであると判定する。メモリは再利用できるように、ノード行番号を、仮想ノード行番号と、メモリ上の実ノード行番号の対応表をもって管理する。
【0102】
上記のように、グラフデータ作成部12は、表示用データ作成部13が表示用グラフデータ131に追加したノードとエッジとに基づいて、次に表示用データ作成部13が抽出するノードを処理装置により予測する。そして、グラフデータ作成部12は、予測したノードに係るデータを単語階層データ111と単語相関データ112と属性値データ113とから作成して主記憶装置に格納する。
【0103】
以上説明したように、本実施の形態に係るグラフ可視化装置10は、以下の特徴をもつ。
(a)グラフデータ作成部12は、表示用データ作成部13における要求に応じて必要データを予測し、必要部分のみをメモリに展開する。
【0104】
以上、本発明の実施の形態について説明したが、これらのうち、2つ以上の実施の形態を組み合わせて実施しても構わない。あるいは、これらのうち、1つの実施の形態を部分的に実施しても構わない。あるいは、これらのうち、2つ以上の実施の形態を部分的に組み合わせて実施しても構わない。
【符号の説明】
【0105】
10 グラフ可視化装置、11 記憶装置、12 グラフデータ作成部、13 表示用データ作成部、14 インタフェース部、111 単語階層データ、112 単語相関データ、113 属性値データ、114 属性値設定データ、121 階層ノード作成部、122 関連エッジ作成部、123 優先度データ作成部、124 階層ノードデータ、125 関連エッジデータ、126 階層ノード優先度データ、127 関連エッジ優先度データ、131 表示用グラフデータ、132 子ノード問い合わせ部、133 表示用グラフデータ取得部、134 表示優先度切り替え部、141 グラフ操作部、142 グラフ表示部、143 閾値設定部、901 LCD、902 キーボード、903 マウス、904 FDD、905 CDD、906 プリンタ、911 CPU、912 バス、913 ROM、914 RAM、915 通信ボード、920 HDD、921 オペレーティングシステム、922 ウィンドウシステム、923 プログラム群、924 ファイル群、1241 行番号、1242 ラベル、1243 子ノード、1244 先頭行番号、1245 子ノード数、1251,1252 ノード行番号、1261 属性値、1262 ソート順行番号、1271 行番号、1272 属性値、1421a〜c 画面、1422 ノード、1423 親子関係エッジ、1424 関連エッジ、1431 展開優先度メニュー、1432 スクロールバー。

【特許請求の範囲】
【請求項1】
複数のノードとノード間を結ぶ複数のエッジとで構成されるグラフを表示するグラフ可視化装置において、
前記複数のノードのうち、互いに親子関係をもつノードである親ノード及び子ノードを対応付けて示す階層ノードデータと、ノードごとに、複数種類の属性それぞれについて属性値を示すノード属性データとを格納する記憶装置と、
前記記憶装置に格納された階層ノードデータが示す親ノードのうち少なくとも1つを含むグラフの表示用グラフデータを処理装置により作成する表示用データ作成部と、
前記表示用データ作成部が作成した表示用グラフデータを出力装置により画面に表示し、表示した表示用グラフデータに含まれる親ノードのうち1つを選択する操作と、前記複数種類の属性のうち1種類を選択する操作とを入力装置により受け付けるインタフェース部とを備え、
前記表示用データ作成部は、前記記憶装置に格納された階層ノードデータが示す子ノードのうち、前記インタフェース部を介して選択された親ノードに対応する子ノードであって、前記インタフェース部を介して選択された属性について前記記憶装置に格納されたノード属性データが示す属性値が所定の基準を満たす子ノードを抽出し、抽出した子ノードと当該子ノード及び当該親ノード間を結ぶエッジである親子関係エッジとを前記処理装置により前記表示用グラフデータに追加し、新たな表示用グラフデータとして前記インタフェース部に表示させることを特徴とするグラフ可視化装置。
【請求項2】
前記記憶装置は、さらに、前記複数のノードのうち、互いに相関関係をもつノード同士を対応付けて示す関連ノードデータを格納し、
前記表示用データ作成部は、さらに、前記記憶装置に格納された関連ノードデータが示すノードのうち、抽出した子ノードと相関関係をもつノードを関連ノードとして抽出し、抽出した関連ノードと当該関連ノード及び当該子ノード間を結ぶエッジである関連エッジとを前記処理装置により前記表示用グラフデータに追加し、新たな表示用グラフデータとして前記インタフェース部に表示させることを特徴とする請求項1に記載のグラフ可視化装置。
【請求項3】
前記記憶装置は、さらに、互いに相関関係をもつノードの組み合わせごとに、前記複数種類の属性それぞれについて属性値を示すエッジ属性データを格納し、
前記表示用データ作成部は、前記インタフェース部を介して選択された属性について前記記憶装置に格納されたエッジ属性データが示す属性値に応じて、対応する組み合わせのノード間を結ぶ関連エッジの表示態様を設定することを特徴とする請求項2に記載のグラフ可視化装置。
【請求項4】
前記複数のノードは、所定の文書に記載された複数の単語を表すものであり、
前記記憶装置は、前記複数の単語の親子関係を示す単語階層データと、前記所定の文書における単語同士の相関関係を示す単語相関データと、単語ごとに、前記複数種類の属性それぞれについて属性値を示す属性値データとを予め格納し、
前記グラフ可視化装置は、さらに、
前記単語階層データと前記単語相関データと前記属性値データとから、前記処理装置によりそれぞれ前記階層ノードデータと前記関連ノードデータと前記ノード属性データとを作成して前記記憶装置に格納するグラフデータ作成部を備えることを特徴とする請求項2又は3に記載のグラフ可視化装置。
【請求項5】
前記記憶装置は、前記単語階層データと前記単語相関データと前記属性値データとを予め格納する補助記憶装置と、前記グラフデータ作成部が前記単語階層データと前記単語相関データと前記属性値データとから作成したデータを格納するための主記憶装置とからなり、
前記グラフデータ作成部は、前記表示用データ作成部が前記表示用グラフデータに追加したノードとエッジとに基づいて、次に前記表示用データ作成部が抽出するノードを前記処理装置により予測し、予測したノードに係るデータを前記単語階層データと前記単語相関データと前記属性値データとから作成して前記主記憶装置に格納することを特徴とする請求項4に記載のグラフ可視化装置。
【請求項6】
前記インタフェース部は、さらに、選択された属性について属性値の範囲を指定する操作を前記入力装置により受け付け、
前記表示用データ作成部は、前記記憶装置に格納された階層ノードデータが示す子ノードのうち、前記インタフェース部を介して選択された親ノードに対応する子ノードであって、前記インタフェース部を介して選択された属性について前記記憶装置に格納されたノード属性データが示す属性値が前記インタフェース部を介して指定された範囲内となる子ノードを抽出することを特徴とする請求項1から5までのいずれかに記載のグラフ可視化装置。
【請求項7】
前記記憶装置は、前記ノード属性データとして、ノードごとに、前記複数種類の属性と複数の期間との組み合わせそれぞれについて属性値を示すデータを格納し、
前記インタフェース部は、期間を選択する操作を前記入力装置により受け付け、
前記表示用データ作成部は、前記記憶装置に格納された階層ノードデータが示す子ノードのうち、前記インタフェース部を介して選択された親ノードに対応する子ノードであって、前記インタフェース部を介して選択された属性について前記記憶装置に格納されたノード属性データが示す、前記インタフェース部を介して選択された期間における属性値が前記所定の基準を満たす子ノードを抽出することを特徴とする請求項1から6までのいずれかに記載のグラフ可視化装置。
【請求項8】
複数のノードとノード間を結ぶ複数のエッジとで構成されるグラフを表示するグラフ可視化方法において、
前記複数のノードのうち、互いに親子関係をもつノードである親ノード及び子ノードを対応付けて示す階層ノードデータと、ノードごとに、複数種類の属性それぞれについて属性値を示すノード属性データとを格納する記憶装置を備えるコンピュータが、前記記憶装置に格納された階層ノードデータが示す親ノードのうち少なくとも1つを含むグラフの表示用グラフデータを処理装置により作成する表示用データ作成ステップと、
前記コンピュータが、前記表示用データ作成ステップで作成した表示用グラフデータを出力装置により画面に表示し、表示した表示用グラフデータに含まれる親ノードのうち1つを選択する操作と、前記複数種類の属性のうち1種類を選択する操作とを入力装置により受け付ける入出力ステップとを備え、
前記表示用データ作成ステップは、前記記憶装置に格納された階層ノードデータが示す子ノードのうち、前記入出力ステップで選択された親ノードに対応する子ノードであって、前記入出力ステップで選択された属性について前記記憶装置に格納されたノード属性データが示す属性値が所定の基準を満たす子ノードを抽出し、抽出した子ノードと当該子ノード及び当該親ノード間を結ぶエッジである親子関係エッジとを前記処理装置により前記表示用グラフデータに追加し、新たな表示用グラフデータとして前記入出力ステップで表示させることを特徴とするグラフ可視化方法。
【請求項9】
複数のノードとノード間を結ぶ複数のエッジとで構成されるグラフを表示するグラフ可視化プログラムにおいて、
前記複数のノードのうち、互いに親子関係をもつノードである親ノード及び子ノードを対応付けて示す階層ノードデータと、ノードごとに、複数種類の属性それぞれについて属性値を示すノード属性データとを格納する記憶装置を備えるコンピュータに、
前記記憶装置に格納された階層ノードデータが示す親ノードのうち少なくとも1つを含むグラフの表示用グラフデータを処理装置により作成する表示用データ作成処理と、
前記表示用データ作成処理が作成した表示用グラフデータを出力装置により画面に表示し、表示した表示用グラフデータに含まれる親ノードのうち1つを選択する操作と、前記複数種類の属性のうち1種類を選択する操作とを前記入力装置により受け付けるインタフェース処理とを実行させ、
前記表示用データ作成処理は、前記記憶装置に格納された階層ノードデータが示す子ノードのうち、前記インタフェース処理を介して選択された親ノードに対応する子ノードであって、前記インタフェース処理を介して選択された属性について前記記憶装置に格納されたノード属性データが示す属性値が所定の基準を満たす子ノードを抽出し、抽出した子ノードと当該子ノード及び当該親ノード間を結ぶエッジである親子関係エッジとを前記処理装置により前記表示用グラフデータに追加し、新たな表示用グラフデータとして前記インタフェース処理に表示させることを特徴とするグラフ可視化プログラム。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate

【図8】
image rotate

【図9】
image rotate

【図10】
image rotate

【図11】
image rotate

【図12】
image rotate

【図13】
image rotate


【公開番号】特開2011−164830(P2011−164830A)
【公開日】平成23年8月25日(2011.8.25)
【国際特許分類】
【出願番号】特願2010−25434(P2010−25434)
【出願日】平成22年2月8日(2010.2.8)
【出願人】(000006013)三菱電機株式会社 (33,312)
【出願人】(501158538)三菱電機インフォメーションテクノロジー株式会社 (28)
【Fターム(参考)】