<分析例>
図1〜図3を用いて、データ間の依存関係の分析例について説明する。具体的には、分析装置は、第1文書に記述されている第1項目と第1文書とは異なる種類の第2文書に記述されている第2項目とが同種である場合に、第1項目の値と第2項目の値との類似度により第1項目の値と第2項目の値との依存関係を示す依存関係情報を生成する。その際に、分析装置は、(1)第1項目および第2項目をどのような指標で分類するか、および、(2)どのような指標で類似度の算出方法を決定するか、を類似度の算出前に決定する。(1)については、図1および図2で説明し、(2)については、図3で説明する。
なお、上記の説明において、文書とは、スプレッドシードのような表形式データを含む文書であり、表形式データのセル群には、項目を示す文字列と、項目の値を示す文字列が記述されている。また、以下の説明において、文書の一例として設計書を用い、項目の一例として設計項目を用いる。たとえば、第1文書の一例である設計書は、たとえば、ファイル定義仕様書であり、第2文書の一例である設計書は、ファイル定義仕様書とは異なる種類である編集仕様書である。
図1は、ファイル仕様書における設計項目の分類例を示す説明図である。図1において、ファイル仕様書群DXは、1以上のファイル仕様書を含む。ファイル仕様書とは、ファイルを定義する設計書である。分析装置は、ファイル仕様書群の各ファイル仕様書から設計項目および設計項目値を取得してスキーマ(第1設計項目値格納テーブル101)を生成する。図1の例では、ファイル仕様書の設計項目としてファイル名、項目名、説明といった設計項目が含まれているものとし、カラムCxa,Cxb,Cxc,…を生成する。
具体的には、たとえば、ファイル仕様書の1つである普通預金ファイルについては、カラムCxaに、設計項目であるファイル名の値として「普通預金ファイル」が格納される。また、カラムCxbに、設計項目である項目名の値として「Cxb1」,「Cxb2」,「Cxb3」,…が格納される。具体的には、たとえば、設計項目値Cxb1として、『出金年月日』が格納される。また、カラムCxcに、設計項目である説明の値として「Cxc1」,「Cxc2」,「Cxc3」,…が格納される。具体的には、たとえば、設計項目値Cxc1として、『出金年月日とは、出金した年月日を表す』が格納される。
分析装置は、第1文書(あるファイル仕様書)に記述されている第1項目(ある設計項目)の値を解析し、複数の第1特徴情報を第1解析結果102として生成する。複数の第1特徴情報とは、たとえば、各カラムについての複数の設計項目分類判定条件ごとの比率である。設計項目分類判定条件とは、各設計項目を分類するための判定条件であり、文字種と文字数と句読点の有無に分けられる。文字種は、たとえば、「数字のみ」、「英数字のみ」、「英数字、日本語混在」といったグループに分類される。文字数は、「文字数統一」、「文字数不定」といったグループに分類される。句読点の有無は、「句読点あり」、「句読点なし」といったグループに分類される。
ここで、カラムCxbが6個の設計項目値Cxb1〜Cxb6で構成される場合において、文字種、文字数、および句読点の有無の比率を具体的に説明する。
たとえば、「数字のみ」の場合、数字のみからなる設定項目値がCxb1、Cxb2であれば、「数字のみ」のカラムCxb比率Rxb1は、Rxb1=2/6となる。「英数字のみ」、「英数字、日本語混在」についても同様に比率Rxb2、Rxb3が算出される。
また、「文字数統一」の場合、分析装置は、文字数のヒストグラムを生成し、最大同一文字数の占有率が比率となる。設計項目値Cxb1〜Cxb6の各文字数をそれぞれ、5,2,5,3,5,5とする。文字数5が4個あるため、最大同一文字数は5である。したがって、「文字数統一」のカラムCxb比率Rxb4は、Rxb4=4/6となる。逆に、「文字数不定」のカラムCxb比率Rxb5は、Rxb5=2/6となる。
また、「句読点あり」の場合、句読点を含む設定項目値がCxb1、Cxb2であれば、「句読点あり」のカラムCxb比率Rxb6は、Rxb6=2/6となる。逆に、「句読点なし」のカラムCxb比率Rxb7は、Rxb7=4/6となる。
分析装置は、設計項目分類テーブル103を参照して、カラムごとの複数の設計項目分類判定条件を用いて、当該カラムの設計項目をいずれかの分類に特定する。特定される設計項目の分類を設計項目分類802と称す。本例では、たとえば、ID、物理名称(コンピュータが認識可能な英数字列)、日本語名称、数値、および文章の中から設計項目分類802が特定される。たとえば、カラムCxaの設計項目分類802は、「日本語名称」である。設計項目分類802には、依存関係成立条件804が関連付けられる。依存関係成立条件804とは、設計項目分類802に属する項目の値と同種の項目の他の値との類似度の算出範囲を規定する算出条件である。算出範囲には、たとえば、「完全一致のみ」、「類似を許容」、「対象外」がある。
「完全一致のみ」は、両設計項目値が完全一致する場合にのみ依存関係が成立することを示す。「類似を許容」は、両設計項目値が類似関係にある場合に依存関係が成立することを示す。「対象外」は、両設計項目値の依存関係を求めないことを示す。たとえば、カラムCxaの設計項目分類「日本語名称」の依存関係成立条件は、「類似を許容」である。したがって、「日本語名称」の類似範囲まで検索される。
このようにして、ファイル仕様書内の設計項目(ファイル名、項目名、説明、…)について、設計項目分類が特定される。
図2は、編集仕様書における設計項目の分類例を示す説明図である。図2において、編集仕様書群DYは、1以上の編集仕様書を含む。編集仕様書とは、ファイルの定義を編集する設計書である。編集仕様書についても、分析装置は、ファイル仕様書群の各ファイル仕様書から設計項目および設計項目値を取得してスキーマ(第2設計項目値格納テーブル201)を生成する。また、分析装置は、第2文書(ある編集仕様書)に記述されている第2項目(ある設計項目)の値を解析し、複数の第2特徴情報を第2解析結果202として生成する。また、分析装置は、設計項目分類テーブル103を参照して、カラムごとの複数の設計項目分類判定条件を用いて、設計項目分類を特定する。このようにして、図1と同様、編集仕様書内の設計項目(出力ファイル名、出力項目、編集条件、…)について、設計項目分類が特定される。
図3は、類似度算出方法の決定例を示す説明図である。類似度算出方法の決定例では、分析装置は、設計書−設計工程対応テーブル300と設計書関係分類テーブル310とを用い、設計項目値間依存関係格納テーブル320を生成する。設計書−設計工程対応テーブル300は、設計書と設計工程とを対応付けたテーブルである。設計工程は、どの工程で作成された設計書であるかを示すフィールドである。設計書は、どの種類の文書であるかを示すフィールドである。図1のファイル仕様書群については、設計書は「ファイル仕様書」に該当するため、設計工程は、「詳細設計書」となる。図2の編集仕様書群については、設計書は「編集仕様書」に該当するため、設計工程は、「詳細設計書」となる。
設計書関係分類テーブル310は、設計書関係分類311と類似度算出式312とを対応付けたテーブルである。設計書関係分類311は、関連元311aと関連先311bとを有する。すなわち、関連元311aと関連先311bの設計書関係分類311の組み合わせにより、類似度算出式312が決定される。ファイル仕様書および編集仕様書は、ともに「詳細設計書」に該当するため、関連元(たとえば、ファイル仕様書)311aと関連先(たとえば、編集仕様書)311bの組み合わせは、類似度算出式312の「文字列類似度」に該当する。
そして、分析装置は、関連元の設計項目およびその値と、関連先の設計項目およびその値について適用される類似度算出式312を特定して、設計項目値間依存関係格納テーブル320を生成する。設計項目値間依存関係格納テーブル320は、関連元設計項目321と、関連元設計項目値322と、関連先設計項目323と、関連先設計項目値324と、類似度算出式325と、類似度326とを、格納する。
たとえば、4行目のエントリの関連元設計項目321はファイル名(Cxa)で、その関連元設計項目値322は、「外貨建定期預金ファイル」である。また、関連先設計項目323は出力ファイル名(Cya)で、その関連先設計項目値324は「外貨定期預金ファイル」である。両設計項目Cxa,Cyaは、それぞれファイル仕様書および編集仕様書に含まれるため、対応する類似度算出式325は、「文字列類似度」である。また、両設計項目Cxa,Cyaの設計項目分類は、図1および図2で説明したように「日本語名称」で、かつ、依存関係成立条件は「類似を許容」である。したがって、分析装置は、関連元設計項目321であるファイル名(Cxa)の関連元設計項目値322である「普通預金ファイル」と、関連先設計項目323である出力ファイル名(Cya)の関連先設計項目値324である「普通預金ファイル」との類似度326を、類似度算出式325である「文字列類似度」を用いて算出する。
なお、依存関係成立条件が「完全一致のみ」である場合、関連元設計項目値322および関連先設計項目値324が完全一致する場合にのみ、類似度326に最大類似度が格納される。また、依存関係成立条件が「対象外」である場合、関連元設計項目値322および関連先設計項目値324の類似度算出を実行せず、類似度326は空欄となる。
設計項目分類が一致する組み合わせであれば、他の設計項目についても同様に設計項目値間依存関係格納テーブル320のエントリが生成される。このようにして、分析装置は、表記揺れが存在する設計項目値の集合において、複数の集合間で設計項目値を関連付ける。したがって、文書間で依存関係がある項目どうしを高精度で関連付けることができる。
なお、図3では、設計工程を例示したが、文書分類はこれに限らない。例えば、使用する用語が異なる2つのベンダが設計書を分担して作成する場合は、作成ベンダを文書分類の指標として用いてもよい。さらに、企業文化が異なる組織が経営統合や合併を行うにあたり、それぞれの組織が保有する情報システムの設計書が存在する場合が考えられる。この場合は、設計書を所有する組織を文書分類にしてもよい。上記に挙げた設計工程、作成ベンダ、所有組織やその他の文書分類指標を単独で用いてもよいし、複数の分類の複合条件として定義しても構わない。
<システム構成例>
図4は、分析システムのシステム構成例を示す説明図である。分析システム400は、分析装置401と、データベース(DB)402と、管理端末403と、を有する。分析装置401、DB402、および管理端末403は、インターネット,LAN(Local Area Network),WAN(Wide Area Network)などのネットワーク404を介して通信可能に接続される。DB402には、分析対象となる文書群(たとえば、ファイル仕様書群や編集仕様書群)が記憶されている。管理端末403は、ネットワーク404経由で分析装置401を操作する。
<ハードウェア構成例>
図5は、分析装置401のハードウェア構成例を示すブロック図である。分析装置401は、プロセッサ501と、記憶デバイス502と、入力デバイス503と、出力デバイス504と、通信インターフェース(通信IF505)と、を有する。プロセッサ501、記憶デバイス502、入力デバイス503、出力デバイス504、および通信IF505は、バスにより接続される。プロセッサ501は、分析装置401を制御する。記憶デバイス502は、プロセッサ501の作業エリアとなる。また、記憶デバイス502は、各種プログラムやデータを記憶する非一時的なまたは一時的な記録媒体である。記憶デバイス502としては、たとえば、ROM(Read Only Memory)、RAM(Random Access Memory)、HDD(Hard Disk Drive)、SSD(Solid State Drive)、フラッシュメモリがある。入力デバイス503は、データを入力する。入力デバイス503としては、たとえば、キーボード、マウス、タッチパネル、テンキー、スキャナがある。出力デバイス504は、データを出力する。出力デバイス504としては、たとえば、ディスプレイ、プリンタがある。通信IF505は、ネットワーク404と接続し、データを送受信する。以下、本発明にかかる実施例について説明する。
<機能的構成例>
図6は、分析装置401の機能的構成例を示すブロック図である。分析装置401は、設計項目値格納テーブル601と、解析結果格納テーブル602と、設計項目分類テーブル103と、設計書−設計工程対応テーブル300と、設計書関係分類テーブル310と、設計項目値間依存関係格納テーブル320と、を記憶する。これらのテーブルは、具体的には、たとえば、図5に示した記憶デバイス502に記憶される。また、これらのテーブルは、DB402に記憶されてもよい。
設計項目値格納テーブル601は、図1および図2に示した第1設計項目値格納テーブル101および第2設計項目値格納テーブル201を格納するテーブルである。解析結果格納テーブル602は、図1および図2に示した第1解析結果102および第2解析結果202を格納するテーブルである。設計項目分類テーブル103は、設計項目をいずれかの設計項目分類に分類するためのテーブルである(図8で後述)。
また、分析装置401は、取得部611と、解析部612と、特定部613と、決定部614と、特定部613と、決定部614と、算出部615と、生成部616と、選択部617と、出力部618と、を有する。これらは、具体的には、たとえば、記憶デバイス502に記憶されたプログラムをプロセッサ501に実行させることで実現される機能である。
取得部611は、DB402から文書を取得する。取得部611は、取得した文書をグループ分けする。具体的には、たとえば、取得部611は、取得した文書をファイル仕様書群DXや編集仕様書群DYに分類する。なお、分類については、取得部611が、ファイル名を参照して自動分類してもよく、また、入力デバイス503や管理端末403の操作にしたがって分類してもよい。取得部611は、取得した文書からカラムを抽出して、分類したグループごとに、設計項目値格納テーブル601を生成する。これにより、図1に示した第1設計項目値格納テーブル101や図2に示した第2設計項目値格納テーブル201が生成される。
図7は、設計項目値格納テーブル601の生成例を示す説明図である。(A)は、あるファイル仕様書Dxからの第1設計項目値格納テーブル101の生成例を示し、(B)は、ある編集仕様書Dyからの第2設計項目値格納テーブル201の生成例を示す。太矢印は、データの抽出を示す。
図6に戻り、解析部612は、図1および図2に示したように、項目の値(たとえば、設計項目値)を解析して複数の特徴情報を解析結果(第1解析結果102、第2解析結果202)として生成し、解析結果を解析結果格納テーブル602に格納する。解析結果とは、設計項目の特徴情報を示す。たとえば、上述したように、解析結果は、カラムごとに算出された複数の設計項目分類判定条件ごとの比率である。
これにより、分析装置401に文書群を与えることで、第1特徴情報および第2特徴情報から依存関係情報の生成までが自動実行される。したがって、依存関係分析の効率化を図ることができる。
特定部613は、複数の特徴情報に基づいて、項目の値の種類を特定する。具体的には、たとえば、特定部613は、複数の第1特徴情報に基づいて、第1項目の値の種類を特定する。また、特定部613は、複数の第2特徴情報に基づいて、第2項目の値の種類を特定する。ここで、複数の特徴情報とは、解析部612においてカラムごとに算出された複数の設計項目分類判定条件ごとの比率である。複数の第1特徴情報は、図1に示したカラムごとの複数の比率であり、複数の第2特徴情報は、図2に示したカラムごとの複数の比率である。また、項目とは、たとえば、設計項目であり、項目の値とは、たとえば、設計項目値である。また、項目の値の種類とは、設計項目分類である。図1の例では、特定部613は、カラムCxa(ファイル名)の設計項目については、複数の設計項目分類から「日本語名称」を特定する。
また、特定部613は、第1項目の種類に対応する算出条件を特定する。具体的には、たとえば、特定部613は、ファイル仕様書についての設計項目が分類された設計項目分類に対応する算出条件である依存関係成立条件804を特定する。図1の例では、特定部613は、カラムCxa(ファイル名)の設計項目については、設計項目分類802である「日本語名称」に関連付けされている「類似を許容」を依存関係成立条件804として特定する。
特定部613は、設計項目分類テーブル103を参照して、項目の値の種類や算出条件を特定する。ここで、設計項目分類テーブル103について説明する。
図8は、設計項目分類テーブル103の一例を示す説明図である。設計項目分類テーブル103は、対象となる設計項目がどの設計項目分類に該当するかを特定する分類情報である。設計項目分類テーブル103は、フィールドとして、設計項目分類ID801と、設計項目分類802と、設計項目分類判定条件803と、依存関係成立条件804と、を有する。設計項目分類ID801は、設計項目分類802を一意に特定する識別情報である。設計項目分類802は、文書内に出現する設計項目の種類を示す。
設計項目分類判定条件803は、設計項目分類802に該当するための設計項目の値が有する複数の特徴情報(解析結果の各比率)に関する分類条件を示す。具体的には、たとえば、図1および図2に示したように、設計項目分類判定条件803は、複数種類の特徴についての特徴情報の組み合わせにより構成される。ここでは、例として、文字種831と、文字数832と、句読点の有無833という3種類の特徴についての特徴情報により構成される。依存関係成立条件804は、設計項目分類802の設計項目の値と同種の設計項目の他の値との類似度326の算出範囲を規定する算出条件を示す。
ここで、設計項目分類テーブル103を用いて設計項目分類802を特定する例について図1を用いて説明する。たとえば、カラムCxaの比率は、Rxa1〜Rxa7の7種類である。このうち、文字種831に関する比率は、Rxa1〜Rxa3の3種類の特徴情報である。特定部613は、たとえば、Rxa1〜Rxa3のうち最大比率となる文字種を、カラムCxaの設計項目分類判定条件803に適用する。また、たとえば、設計項目分類判定条件803にしきい値が設定されており、特定部613は、Rxa1〜Rxa3のうちしきい値を超えた比率となる文字種を、カラムCxaの設計項目分類判定条件803に適用してもよい。また、特定部613は、両方を充足する文字種を、カラムCxaの設計項目分類判定条件803に適用してもよい。
また、文字数832(統一または不定)に関する比率は、Rxa4,Rxa5の2種類の特徴情報である。特定部613は、たとえば、Rxa4,Rxa5のうち最大比率となる文字数を、カラムCxaの設計項目分類判定条件803に適用する。また、たとえば、各設計項目分類判定条件にしきい値が設定されており、特定部613は、Rxa4,Rxa5のうちしきい値を超えた比率となる文字数を、カラムCxaの設計項目分類判定条件803に適用してもよい。また、特定部613は、両方を充足する文字数を、カラムCxaの設計項目分類判定条件803に適用してもよい。
また、句読点の有無833に関する比率は、Rxa7,Rxa8の2種類の特徴情報である。特定部613は、たとえば、Rxa7,Rxa8のうち最大比率となる文字数を、カラムCxaの設計項目分類判定条件803に適用する。また、たとえば、設計項目分類判定条件803にしきい値が設定されており、特定部613は、Rxa7,Rxa8のうちしきい値を超えた比率となる文字数を、カラムCxaの設計項目分類判定条件803に適用してもよい。また、特定部613は、両方を充足する文字数を、カラムCxaの設計項目分類判定条件803に適用してもよい。このように、設計項目分類802に応じて類似算出の適用範囲が決定される。
図7に戻り、決定部614は、第1文書の種類と第2文書の種類との組み合わせに基づいて、第1項目の値と第2項目の値との類似度を算出する類似度算出方法を決定する。具体的には、たとえば、決定部614は、図3に示したように、設計書−設計工程対応テーブル300と設計書関係分類テーブル310とを用いて、類似度算出式325を決定し、設計項目値間依存関係格納テーブル320を生成する。
ここで、類似度算出式325には、例えば「意味的類似度」や「文字列類似度」がある。「意味的類似度」は、例えば、同時に使用される(共起する)単語の頻度をベクトルで表現した共起ベクトルの方向および大きさに基づいて類似度として算出する類似度算出方法である。2つの設計項目値の共起ベクトルの方向および大きさの差が許容範囲内であれば、当該2つの設計項目値は類似する。「文字列類似度」は、例えば2つの文字列の差を0にするために必要となる削除・追加・置換の操作回数である編集距離に基づいて類似度として算出する類似度算出方法である。2つの設計項目値の編集距離の差が許容範囲内であれば、当該2つの設計項目値は類似する。
ここで、算出部615による編集距離の算出例について説明する。類似度は、両設計項目値の間の編集距離を当該両設計項目値の文字数の平均値で割った値を、1から減算した値とする。例えば、両設計項目値が「外貨建定期預金ファイル」と「外貨定期預金ファイル」である場合、「外貨建定期預金ファイル」は、「建」の削除操作を1度行うことで「外貨定期預金ファイル」と一致する。したがって、編集距離は「1」である。また、「外貨建定期預金ファイル」の文字数(11)と「外貨定期預金ファイル」の文字数(10)の平均値は10.5である。両設計項目値の間の編集距離を当該両設計項目値の文字数の平均値で割った値は、(1÷10.5)である。したがって、類似度は0.90(=1−(1÷10.5))である。
算出部615は、特定部613によって特定された第1項目の種類と特定部613によって特定された第2項目の種類とが同種である場合に、算出条件にしたがって、第1項目の値と第2項目の値との類似度を算出する。具体的には、たとえば、具体的には、たとえば、ファイル仕様書から特定された設計項目(例:ファイル名)の設計項目分類802である「日本語名称」と、編集仕様書から特定された設計項目(例:出力ファイル名)の設計項目分類802である「日本語名称」とは、同種である。設計項目分類802である「日本語名称」に関連付けられる依存関係成立条件804は「類似を許容」である。この場合、算出部615は、設計項目(例:ファイル名)の値「外貨建定期預金ファイル」と、設計項目(例:出力ファイル名)の値「外貨定期預金ファイル」との類似度326を算出する。すなわち、両設計項目値が完全一致することは要求されない。
また、決定部614によって類似度算出方法が決定された場合、算出部615は、決定された類似度算出方法を用いて、算出条件にしたがって、第1項目の値と第2項目の値との類似度を算出する。これにより、依存関係の生成対象となる両項目の値の類似度326の算出に先立って、具体的にどのような類似度算出方法が適切であるかが決定される。
また、算出部615は、算出条件が、類似度算出方法を適用対象外とする条件である場合、類似度を算出しない。これにより、無駄な類似度算出による負荷の増加を抑制し、分析処理の高速化を実現することができる。
また、算出部615は、算出条件が、類似度の算出対象の両項目の値が完全一致するという算出範囲を規定する条件である場合、第1項目の値と前記第2項目の値とが完全一致すれば、類似度を第1項目の値と前記第2項目の値とが同一であることを示す値に設定する。また、算出部615は、第1項目の値と第2項目の値とが完全一致しなければ、類似度を算出しない。
具体的には、たとえば、設計項目分類802が「ID」であり、依存関係成立条件804が「完全一致のみ」とする。設計項目(例:ID)の値「0001」と、設計項目(例:出力ID)の値「0001」とは、完全一致する。算出部615は、類似度算出方法を用いて算出しないかわり、類似度を両者が同一であることを示す値(たとえば、類似度の最大値)に設定する。これにより、類似度算出負荷の低減を図り、分析処理の高速化を実現することができる。一方、設計項目(例:ID)の値「0001」と、設計項目(例:出力ID)の値「0002」とは、完全一致しない。この場合、算出条件が、「完全一致のみ」であるため、算出部615は、類似度を算出しない。これにより、無駄な類似度算出による負荷の増加を抑制し、分析処理の高速化を実現することができる。
また、算出部615は、算出条件が、類似度の算出対象の両項目の値が類似することを許容するという算出範囲を規定する条件である場合、第1項目の値と第2項目の値とが完全一致すれば、類似度を前記第1項目の値と前記第2項目の値とが同一であることを示す値に設定し、第1項目の値と第2項目の値とが完全一致しなければ、類似度算出方法を用いて、類似度を算出する。
具体的には、たとえば、ファイル仕様書から特定された設計項目(例:ファイル名)の設計項目分類802である「日本語名称」と、編集仕様書から特定された設計項目(例:出力ファイル名)の設計項目分類802である「日本語名称」とは、同種である。この場合、算出部615は、設計項目(例:ファイル名)の値「普通預金ファイル」と、設計項目(例:出力ファイル名)の値「普通預金ファイル」とは、完全一致する。算出部615は、類似度算出方法を用いて算出しないかわり、類似度を両者が同一であることを示す値(たとえば、類似度の最大値)に設定する。これにより、類似度算出負荷の低減を図り、分析処理の高速化を実現することができる。
一方、設計項目(例:ファイル名)の値「外貨建定期預金ファイル」と、設計項目(例:出力ファイル名)の値「外貨定期預金ファイル」とは、完全一致しない。これにより、類似範囲での類似度算出が許容される。したがって、依存関係分析の高精度化を図ることができる。そして、算出部615は類似度算出方法にしたがって類似度を算出する。
生成部616は、算出部615によって算出された類似度を用いて、第1項目の値と第2項目の値との依存関係を示す依存関係情報を生成する。具体的には、たとえば、生成部616は、第1項目の値と第2項目の値とそれぞれノードとし、両ノードをリンクで接続し、当該リンクに類似度を付与することにより、依存関係情報を生成する。生成部616は、生成した依存関係情報(関連元設計項目321〜類似度326)を設計項目値間依存関係格納テーブル320に格納する。
選択部617は、生成部616によって生成された依存関係情報において、ある設計項目値が複数の設計項目値と依存関係がある場合、当該複数の設計項目値との類似度に基づいて、依存関係を選択する。具体的には、たとえば、選択部617は、重み付き2部グラフ最大マッチングを用いて依存関係を選択する。これにより、第1項目の値に最適な類似度を有する第2項目の値を、第1項目の値に割り当てることができ、依存関係分析の最適化を図ることができる。重み付き2部グラフ最大マッチングについては後述する。
出力部618は、生成部616によって生成された依存関係情報や選択部617による選択結果を出力する。具体的には、たとえば、出力部618は、出力デバイス504の一例であるディスプレイの表示画面を制御して、依存関係情報や選択結果を表示する。また、出力部618は、外部装置に依存関係情報や選択結果を送信する。
<依存関係情報の一例>
図9は、依存関係情報の一例を示す説明図である。左側が関連元設計項目値322を示す第1ノード群901であり、右側が関連先設計項目値324を示す第2ノード群902である。第1ノード群901および第2ノード群902のノード間を結ぶ線分は、ノード間を連結するリンクであり、両端のノードが示す設計項目値に依存関係があることを示す。また、リンク上の数値は、リンクで連結された両設計項目値間の類似度326である。また、類似度326の最大値(すなわち、完全一致を示す)を「1」とする。
ノードN9111の設計項目値「普通預金ファイル」とノードN921の設計項目値「普通預金ファイル」は、完全一致するため、類似度326は「1」である。ノードN9112の設計項目値「当座預金ファイル」とノードN922の設計項目値「当座預金ファイル」は、完全一致するため、類似度326は「1」である。これにより、依存関係が確定される。点線で囲まれたグラフ903内のノード群は、完全一致しないノード群であり、類似度が1未満であるため、互いに依存関係が確定されていない。
依存関係情報においては、同一文書内の設計項目値間のリンクおよび類似度は存在しない。すなわち、グラフ903は、関連元設計項目値322のノード群を第1部分集合931、関連先設計項目値324のノード群を第2部分集合932とし、第1部分集合931のいずれかの設計項目値と、第2部分集合932のいずれかの設計項目値との間にリンクおよび類似度326が存在する重み付き2部グラフである。
ここで、選択部617により、第1部分集合931の各ノードが、第2部分集合932のいずれか1つのノードとのみ対応づくように、かつ、類似度326が最大となるように選択する処理を、重み付き2部グラフ最大マッチングと称す。重み付き2部グラフ最大マッチングは、第1部分集合931および第2部分集合932の間で、類似度326の合計が最も大きくなる対応関係を求めることと同じである。これにより、設計項目値間の依存関係の生成を自動化することができる。
図10は、選択部617による重み付き2部グラフ最大マッチング例を示す説明図である。重み付き2部グラフ最小重み最大マッチングを求める方法として、ハンガリー法が知られている。以下では、ハンガリー法による解法の流れを説明する。類似度行列M1は、グラフ903内の設計項目値の組み合わせのうち、関連元設計項目値322を行、関連先設計項目値324を列として、これらの類似度326を示した行列である。類似度326を最大化する問題を最小化問題に置き換えるために、類似度行列M1の各値には−1を乗じている。
ハンガリー法では、選択部617は、類似度行列M1に対して各行内の最小の値を求め、求めた値を行内すべての値から減算する。さらに、各列内の最小の値を求め、求めた値を列内すべての値から減算する。類似度行列M1を上記手順によって変換した行列を変換後類似度行列M2とする。変換後類似度行列M2では、選択部617は、値が0の要素を、各行および各列に1つずつ含まれるように選択できるかを判定する。もし、このような選択できる場合には、変換後類似度行列M2で値が0の要素の位置と、同じ位置にある類似度行列M1の値がマッチングの解となる。
行列M3は、マッチングの解となる値に丸印を付与した類似度行列である。この結果から求められるマッチングはグラフ1000に示したように、ノードN913(外貨定期預金ファイル)とノードN923(外貨建定期預金ファイル)とがリンクL33で関連付けられ、ノードN914(財形貯蓄預金ファイル)とノードN925(財形預金ファイル)とがリンクL45で関連付けられ、ノードN915(積定預金ファイル)とノードN924(積立定期預金ファイル)とがリンクL54で関連付けられる。
ここで、ノードN913(外貨定期預金ファイル)とノードN923(外貨建定期預金ファイル)とは、「外貨」と「外貨建」に揺れが生じているケースである。ノードN914(財形貯蓄預金ファイル)とノードN925(財形預金ファイル)とは、「貯蓄」が省略されているケースである。ノードN915(積定預金ファイル)とノードN924(積立定期預金ファイル)とは、「積定」と「積立定期」が略称と正式名称の関係にあるケースである。いずれも表記上の違いはあるが、同一の対象を示していることから、目的の対応付けができたと言える。
上記説明においては、2部グラフ最小重み最大マッチングによるモデル化の例を示したが、例えば、第1部分集合931の各設計項目値について、第2部分集合932の各設計項目値との間の類似度326を、類似度326の大きさによって付けられた類似度順位に置き換えてもよい。このように、類似度順位を算出し、対応付け相手の順位をできるだけ高くするようなマッチングを求める方法を用いてもよい。例えば、ゲール=シャプレー・アルゴリズムを用いて求められてマッチングでは、対応付け相手を組み換えても、今までの紐付け相手よりも互いに類似度順位が高くなるような組み換えができない安定したマッチングとなることが知られており(安定結婚問題)、当該アルゴリズムを用いてもよい。
<表示画面例>
図11は、設定画面例を示す説明図である。管理端末403は、分析装置401の記憶デバイスに記憶された設計項目分類テーブル103を、ネットワーク404を介して取得する。管理端末403は、取得した設計項目分類テーブル103を、管理端末403のディスプレイの設定画面1100の第1領域1101に表示する。また、第2領域1102は、設計項目分類802の入力欄1121と、設計項目分類判定条件の選択欄1122〜1124と、依存関係成立条件804の入力欄と、を表示する。管理端末403の入力装置を介して、各入力欄および選択欄1121〜1125が入力または選択される。
管理端末403は、その入力デバイスで登録ボタン1126を挿下する操作を受け付けたことを契機に、ネットワーク404を介して、各入力欄および選択欄1121〜1125に入力または選択された情報を、分析装置401に送信する。これにより、当該情報が、分析装置401の記憶デバイス502に記録された設計項目分類テーブル103に新しいレコードとして新規登録される。
また、管理端末403は、その入力デバイスで第1領域に表示された設計項目分類のうち少なくともいずれか1つが選択され、かつ、削除ボタン1127を挿下する操作を受け付けたことを契機に、当該選択項目および削除指示を、ネットワーク404を介して分析装置401に送信する。これにより、当該選択項目のレコードが、分析装置401の記憶デバイス502に記録された設計項目分類テーブル103から削除される。
これにより、分析装置401が対象とする設計書に応じて、柔軟に設計項目分類判定条件316や依存関係成立条件804を設定することができる。また、上記説明では、設計項目分類テーブル103の編集操作について説明したが、設計書関係分類テーブル310の設計書関係分類414についても追加、削除、修正を行うことができる。また、自動的に値が格納される設計項目値格納テーブル601や、設計項目値間依存関係格納テーブル320に対しても追加、削除、修正を可能としてもよい。
図12は、依存関係表示画面例を示す説明図である。2部グラフで求めた設計項目値間の対応付けである依存関係情報は、設計項目値間依存関係格納テーブル320に格納される。これらの依存関係情報は、設計項目値間の依存関係を可視化するために利用することもできる。管理端末403は、その入力デバイスの操作により、そのディスプレイの依存関係表示画面1200において、依存関係をトレースする起点としてファイル名1112を選択する。
管理端末403は、表示ボタン1201を挿下する操作を受け付けたことを契機に、分析装置401の記憶デバイス502に記録された設計項目値間依存関係格納テーブル320の関連先設計項目値324を検索し、同じ行の関連元設計項目値322を特定する。以降、特定した関連元設計項目値322の値を元に、設計項目値間依存関係格納テーブル320の関連先設計項目値324を検索して、同じ行の関連元設計項目値322を特定するという処理を繰り返す。これにより、ファイル1210から、ファイル1211、ファイル1212、ファイル1213、ファイル1214を辿ることが可能となる。このように可視化することで、設計情報の依存関係の理解を促すことが可能となる。
なお、図11および図12では、管理端末403を操作することで管理端末403のディスプレイに情報を表示する例について説明したが、分析装置401の入力デバイス503を操作することで分析装置401のディスプレイに当該情報を表示することとしてもよい。
<分析処理手順例>
図13は、分析装置401による分析処理手順例を示すフローチャートである。分析装置401は、取得部611により、DB402から取得した各設計書を文書種類ごとに分類して、文書種類ごとに設計情報として設計項目値格納テーブル601を生成する(ステップS1301)。
分析装置401は、解析部612により、図1の第1解析結果102および図2の第2解析結果202に示したように、各設計情報内の設計項目のカラムを解析して、設計項目のカラムごとに複数の比率を算出する(ステップS1302)。
分析装置401は、特定部613により、図1および図2に示したように、設計項目のカラムごとに、比率の組み合わせから設計項目分類802を特定する(ステップS1303)。
分析装置401は、決定部614により、未選択の同一設計項目の組み合わせがあるか否かを判断する(ステップS1304)。未選択の組み合わせがある場合(ステップS1304:Yes)、分析装置401は、決定部614により、同一となる未選択の関連元設計項目321および関連先設計項目323の組み合わせを選択する(ステップS1305)。
分析装置401は、決定部614により、図3に示したように、選択した組み合わせにおいて、設計書−設計工程対応テーブル300を参照して設計工程を特定し、関連元設計項目321を含む設計書の設計書関係分類および関連先設計項目323を含む設計書の設計書関係分類を、設計書関係分類テーブル310を参照して特定する(ステップS1306)。
分析装置401は、決定部614により、図3に示したように、ステップS1306で特定した関連元311aの設計書関係分類311と関連先311bの設計書関係分類311との組み合わせに対応する類似度算出式325を、設計書関係分類テーブル310を参照して決定する(ステップS1307)。
分析装置401は、ステップS1303の特定結果とステップS1307の決定結果を用いて、設計項目値間の類似度算出処理を実行する(ステップS1308)。設計項目値間の類似度算出処理(ステップS1308)の詳細については図14で後述する。
分析装置401は、生成部616により、設計項目値間の依存関係を生成して設計項目値間依存関係格納テーブル320に保存する(ステップS1309)。そして、ステップS1304に戻る。ステップS1304において、未選択の組み合わせがない場合(ステップS1304:No)、分析装置401は、選択部617により、図10に示したように、重み付き2部グラフ最大マッチングを実行する(ステップS1310)。分析装置401は、ステップS1310の結果を出力する(ステップS1310)。これにより、分析装置401は、一連の処理を終了する。
図14は、図13に示した設計項目値間の類似度算出処理(ステップS1308)の詳細な処理手順例を示すフローチャートである。分析装置401は、算出部615により、選択関連元設計項目321から未選択の関連元設計項目値322を選択する(ステップS1401)。分析装置401は、算出部615により、選択関連先設計項目323から未選択の関連先設計項目値324を選択する(ステップS1402)。
分析装置401は、算出部615により、設計項目分類テーブル103を参照して、選択関連元設計項目値322(または選択関連先設計項目値324)が属する設計項目分類802に関連付けられている依存関係成立条件804が、「対象外」であるか否かを判断する(ステップS1403)。
「対象外」である場合(ステップS1403:Yes)、類似度326を算出しないため、ステップS1408に移行する。一方、「対象外」でない場合(ステップS1403:No)、分析装置401は、算出部615により、選択関連元設計項目値322および選択関連先設計項目値324が完全一致するか否かを判断する(ステップS1404)。完全一致する場合(ステップS1404:Yes)、選択関連元設計項目値322および選択関連先設計項目値324の類似度326を最大値に設定して(ステップS1405)、ステップS1408に移行する。すなわち、類似度算出式325を用いずに類似度326が設定される。
一方、完全一致でない場合(ステップS1404:No)、分析装置401は、算出部615により、設計項目分類テーブル103を参照して、選択関連元設計項目値322(または選択関連先設計項目値324)が属する設計項目分類802に関連付けられている依存関係成立条件804が、「類似を許容」であるか否かを判断する(ステップS1406)。
「類似を許容」である場合(ステップS1406:Yes)、分析装置401は、算出部615により、類似度算出式325を用いて、選択関連元設計項目値322および選択関連先設計項目値324の類似度326を算出して(ステップS1407)、ステップS1408に移行する。
分析装置401は、算出部615により、未選択の関連先設計項目値324があるか否かを判断する(ステップS1408)。未選択の関連先設計項目値324がある場合(ステップS1408:Yes)、ステップS1402に戻る。一方、未選択の関連先設計項目値324がない場合(ステップS1408:No)、分析装置401は、算出部615により、未選択の関連元設計項目値322があるか否かを判断する(ステップS1409)。未選択の関連元設計項目値322がある場合(ステップS1408:Yes)、ステップS1401に戻る。一方、未選択の関連元設計項目値322がない場合(ステップS1408:No)、ステップS1309に移行する。
このように、分析装置401は、記憶デバイス502に、文書内に出現する項目の種類(設計項目分類802)と、当該種類の項目の値と同種の項目の他の値との類似度の算出範囲を規定する算出条件(依存関係成立条件804)と、種類に該当するための項目の値が有する複数の特徴情報(解析結果の各比率)に関する分類条件(設計項目分類判定条件803)と、を対応付けた分類情報(設計項目分類テーブル103)を記憶する。また、分析装置401は、記憶デバイス502に、第1文書(たとえば、ファイル仕様書)に記述されている第1項目(たとえば、ファイル名)の値(たとえば、「外貨建定期預金ファイル」)に関する複数の第1特徴情報(第1解析結果102の各比率)と、第2文書(たとえば、編集仕様書)に記述されている第2項目(たとえば、出力ファイル名)の値(たとえば、「外貨定期預金ファイル」)に関する複数の第2特徴情報(第2解析結果202の各比率)と、を記憶する。
そして、プロセッサ501は、分類情報の分類条件を参照して、複数の第1特徴情報に基づいて、第1項目の種類を特定し、複数の第2特徴情報に基づいて、第2項目の種類(設計項目分類802)を特定し、第1項目の種類に対応する算出条件を特定する。プロセッサ501は、プロセッサ501は、第1項目の種類と第2項目の種類とが同種である場合に、算出条件にしたがって、第1項目の値と第2項目の値との類似度326を算出する。プロセッサ501は、類似度326を用いて、第1項目の値と第2項目の値との依存関係を示す依存関係情報を生成する。
すなわち、分析装置401は、依存関係の生成対象となる両項目の値の類似度の算出に先立って、当該両項目の特徴に応じて当該項目どうしが同種であり、かつ、当該種類にどのような算出条件が適用されるかを特定する。したがって、分析装置401は、項目の特徴に応じて、両項目の値に適した条件で類似度を算出することができ、項目値間の依存関係を適切に生成することができる。
また、プロセッサ501は、第1文書の種類(たとえば、詳細設計書)と第2文書の種類(たとえば、詳細設計書)との組み合わせに基づいて、第1項目の値と第2項目の値との類似度326を算出する類似度算出方法(類似度算出式312の値である意味的類似度または文字列類似度)を決定する。プロセッサ501は、類似度算出方法を用いて、算出条件にしたがって、第1項目の値と第2項目の値との類似度を算出する。
すなわち、分析装置401は、依存関係の生成対象となる両項目の値の類似度326の算出に先立って、具体的にどのような類似度算出方法が適切であるかを決定する。したがって、分析装置401は、項目の特徴に応じて、両項目の値に適した条件および方法で類似度326を算出することができ、項目値間の依存関係をより適切に生成することができる。
また、プロセッサ501は、算出条件が、類似度326を算出対象外とする条件である場合、類似度326を算出しない。
これにより、これにより、無駄な類似度算出による負荷の増加が抑制される。したがって、依存関係分析の効率化を図ることができる。
また、プロセッサ501は、算出条件が、類似度326の算出対象の両項目の値が完全一致するという算出範囲を規定する条件である場合、第1項目の値と第2項目の値とが完全一致すれば、類似度326を第1項目の値と第2項目の値とが同一であることを示す値(たとえば、類似度326の最大値)に設定し、第1項目の値と第2項目の値とが完全一致しなければ、類似度326を算出しない。
これにより、無駄な類似度算出による負荷の増加が抑制される。したがって、依存関係分析の効率化を図ることができる。
また、プロセッサ501は、算出条件が、類似度326の算出対象の両項目の値が類似することを許容するという算出範囲を規定する条件である場合、第1項目の値と第2項目の値とが完全一致すれば、類似度326を第1項目の値と第2項目の値とが同一であることを示す値(たとえば、類似度326の最大値)に設定し、第1項目の値と第2項目の値とが完全一致しなければ、類似度を算出することを特徴とする分析装置。
これにより、類似範囲での類似度算出が許容される。したがって、依存関係分析の高精度化を図ることができる。
また、プロセッサ501は、依存関係情報において、第1項目の値が第2項目の複数の値と依存関係がある場合、第1項目の値と第2項目の各値との類似度に基づいて、第2項目の複数の値から、第1項目の値に依存させる値を選択する。
これにより、第1項目の値に最適な類似度を有する第2項目の値を、第1項目の値に割り当てることができる。したがって、依存関係分析の最適化を図ることができる。
また、プロセッサ501は、第1文書に記述されている第1項目の値を解析して複数の第1特徴情報(第1解析結果102)を生成し、第2文書に記述されている第2項目の値を解析して複数の第2特徴情報(第2解析結果202)を生成して、記憶デバイス502に格納する。
これにより、分析装置401に文書群を与えることで、第1特徴情報および第2特徴情報から依存関係情報の生成までが自動実行される。したがって、依存関係分析の効率化を図ることができる。
なお、本発明は前述した実施例に限定されるものではなく、添付した特許請求の範囲の趣旨内における様々な変形例及び同等の構成が含まれる。例えば、前述した実施例は本発明を分かりやすく説明するために詳細に説明したものであり、必ずしも説明した全ての構成を備えるものに本発明は限定されない。また、ある実施例の構成の一部を他の実施例の構成に置き換えてもよい。また、ある実施例の構成に他の実施例の構成を加えてもよい。また、各実施例の構成の一部について、他の構成の追加、削除、または置換をしてもよい。
また、前述した各構成、機能、処理部、処理手段等は、それらの一部又は全部を、例えば集積回路で設計する等により、ハードウェアで実現してもよく、プロセッサがそれぞれの機能を実現するプログラムを解釈し実行することにより、ソフトウェアで実現してもよい。
各機能を実現するプログラム、テーブル、ファイル等の情報は、メモリ、ハードディスク、SSD(Solid State Drive)等の記憶装置、又は、IC(Integrated Circuit)カード、SDカード、DVD(Digital Versatile Disc)の記録媒体に格納することができる。
また、制御線や情報線は説明上必要と考えられるものを示しており、実装上必要な全ての制御線や情報線を示しているとは限らない。実際には、ほとんど全ての構成が相互に接続されていると考えてよい。