以下、本実施の形態について詳細に説明するが、本実施の形態では、設計書が項目定義及び処理詳細を含むことが前提となっている。
[実施の形態1]
まず、処理詳細に含まれる項目名であるにも関わらず項目定義において定義されていないという不整合(第1の不整合)を検出するための処理について説明する。
第1の実施の形態に係る不整合検出装置の機能ブロック図を図2に示す。第1の実施の形態に係る不整合検出装置は、(A)診断対象の設計書の処理詳細及び項目定義の入力を受け付け、自立語リスト及び項目名リストを生成する入力データ処理部1と、(B)入力データ処理部1により生成された自立語リスト及び項目名リストを格納する入力データ格納部3と、(C)設計書毎に自立語リスト及び項目名リストを格納する設計書DB7と、(D)入力データ格納部3に格納されている自立語リストと設計書DB7に格納されている自立語リストとに基づき、後で説明する類似設計書特定処理を実施する類似設計書特定部9と、(E)類似設計書特定部9により特定された類似設計書の自立語リスト及び項目名リストを格納する類似設計書格納部11と、(F)入力データ格納部3に格納されているデータ及び類似設計書格納部11に格納されているデータに基づき、後で説明する項目候補抽出処理を実施する項目候補抽出部5と、(G)項目候補抽出部5により抽出された項目候補のデータを格納する項目候補格納部13と、(H)入力データ格納部3に格納されている項目名リストに基づき、項目候補格納部13に格納されているデータから不整合項目を特定する第一不整合項目特定部15と、(I)第一不整合項目特定部15により特定された不整合項目のデータを格納する第一不整合項目格納部17と、(J)第一不整合項目格納部17に格納されているデータを出力する処理を実施する出力部19とを有する。
なお、項目候補抽出部5は、一致項目抽出部501と、一致項目データ格納部503と、絞り込み部505と、共通項目データ格納部507と、類似部分データ格納部509と、距離データ格納部511とを有する。また、絞り込み部505は、項目定義比較部5051と、出現部分比較部5053とを有する。
一致項目抽出部501は、入力データ格納部3に格納されているデータ及び類似設計書格納部11に格納されているデータに基づき一致項目データを生成し、一致項目データ格納部503に格納する。絞り込み部505は、入力データ格納部3及び類似設計書格納部11に格納されているデータに基づき、一致項目データ格納部503に格納されているデータから項目候補を特定し、項目候補格納部13に格納する。項目定義比較部5051は、一致項目データ格納部503に格納されているデータに対して、類似設計書格納部11に格納されている項目名リストと入力データ格納部3に格納されている項目名リストとに基づき、後で説明する項目定義比較処理を実施し、処理結果を項目候補格納部13に格納する。出現部分比較部5053は、類似設計書格納部11に格納されている項目名リストに含まれる項目名のうち入力データ格納部3に格納されている項目名リストに含まれる項目名と一致する項目名を共通項目データ格納部507に格納する。また、出現部分比較部5053は、類似設計書格納部11に格納されている自立語リスト及び共通項目データ格納部507に格納されているデータに基づき類似部分データを生成し、類似部分データ格納部509に格納する。さらに、出現部分比較部5053は、類似部分データ格納部509に格納されているデータ及び一致項目データ格納部503に格納されているデータに基づき距離データを生成し、距離データ格納部511に格納する。
図3に、設計書DB7に格納されるデータの一例を示す。図3の例では、画面IDと、処理名と、処理詳細ファイル名と、項目定義ファイル名と、処理詳細の自立語リストと、項目定義の項目名リストとが格納されるようになっている。このように、設計書DB7には、画面IDにより特定される設計書毎にデータが格納されるようになっている。なお、自立語リスト及び項目名リストは、以下で述べるような方法により生成される。
図4及び図5を用いて、自立語リスト及び項目名リストを生成する方法について簡単に説明する。まず、図4を用いて、自立語リストを生成する方法について説明する。本実施の形態では、処理詳細に対して形態素解析を行うことにより、文章を形態素に分解すると共に、それぞれの形態素の品詞を判別する。例えば図4(a)のような処理詳細に対して形態素解析を行った場合、図4(b)に示すような解析結果が得られる。さらに、形態素解析の解析結果に対して、形態素を複合語に連結する処理を行うことにより、自立語を抽出する。例えば図4(b)のような解析結果に対して連結処理を行うと、図4(c)に示すような自立語のリストが得られる。なお、このような処理により自立語を抽出する方法は周知技術であるので、ここではこれ以上詳しくは述べない。
また、図5を用いて、項目名リストを生成する方法について説明する。項目名リストは、項目定義から項目名を抽出することにより生成する。例えば図5(a)のような項目定義に対して処理を行った場合には、図5(b)に示すような項目名リストが生成される。なお、項目名の左に付されている数字は項目IDであり、自動的に割り当てられる。
次に、図6乃至図18を用いて、図2に示した不整合検出装置の処理内容について説明する。まず、不整合検出装置の入力データ処理部1は、診断対象の設計書の処理詳細及び項目定義の入力を受け付け、メインメモリ等の記憶装置に格納する(図6:ステップS1)。ここでは、キーボードやマウス等の入力装置を介してユーザから直接入力を受け付けるようにしてもよいし、設計書のリストをユーザに提示し、ユーザ指定の設計書の処理詳細及び項目定義を図示しない記憶装置等(又はネットワークを介して接続されている他のコンピュータ)から取得するような処理であってもよい。
そして、入力データ処理部1は、入力された処理詳細から自立語を抽出して自立語リストを生成すると共に、入力された項目定義から項目名を抽出して項目名リストを生成し、入力データ格納部3に格納する(ステップS3)。自立語リスト及び項目名リストを生成する方法については既に図4及び図5を用いて説明したので、ここでは説明を省略する。また、入力データ格納部3には、図4(c)と同様のデータフォーマットで自立語リストが格納され、図5(b)と同様のデータフォーマットで項目名リストが格納される。
そして、類似設計書特定部9は、類似設計書特定処理を実施する(ステップS5)。類似設計書特定処理については、図7を用いて詳しく説明する。類似設計書特定部9は、設計書DB7から未処理の自立語リストを1つ取得する(図7:ステップS21)。また、類似設計書特定部9は、取得された自立語リストと入力データ格納部3に格納されている自立語リストとの類似度を算出する(ステップS23)。ステップS23においては、例えば両自立語リストに共通に含まれる自立語の数を、入力データ格納部3に格納されている自立語リストに含まれる自立語の数で割った値を類似度として算出する。さらに、類似設計書特定部9は、類似度が所定の閾値以上であるか判断する(ステップS25)。
類似度が所定の閾値未満である場合(ステップS25:Noルート)、ステップS29に移行する。一方、類似度が所定の閾値以上である場合(ステップS25:Yesルート)、類似設計書特定部9は、取得された自立語リスト及び当該自立語リストに対応する項目名リストを類似設計書格納部11に格納する(ステップS27)。項目名リストは、設計書DB7から取得する。なお、類似設計書格納部11には、設計書DB7と同様のデータフォーマットでデータが格納される。
そして、類似設計書格納部11は、設計書DB7における全ての自立語リストについて処理したか判断する(ステップS29)。全ての自立語リストについて処理していない場合(ステップS29:Noルート)、次の自立語リストについて処理を実施するため、ステップS21に戻る。一方、全ての自立語リストについて処理した場合(ステップS29:Yesルート)、元の処理に戻る。
以上のような処理を実施することにより、診断対象の設計書と内容が類似する設計書を適切に特定することができる。
図6の説明に戻り、項目候補抽出部5は、項目候補抽出処理を実施する(ステップS7)。項目候補抽出処理については、図8乃至図18を用いて詳細に説明する。まず、項目候補抽出部5の一致項目抽出部501は、入力データ格納部3に格納されている自立語リストから未処理の自立語を1つ特定する(図8:ステップS31)。また、一致項目抽出部501は、類似設計書格納部11から未処理の項目名リストを1つ特定する(ステップS33)。さらに、一致項目抽出部501は、ステップS33において特定された項目名リストから未処理の項目名を1つ特定する(ステップS35)。そして、一致項目抽出部501は、ステップS31において特定された自立語とステップS35において特定された項目名との表記の類似度を算出する(ステップS37)。ステップS37においては、例えば特開平6−83871号公報に開示されているような技術を用いて類似度を算出する。
そして、一致項目抽出部501は、ステップS37において算出された類似度が所定の閾値以上であるか判断する(ステップS39)。ステップS37において算出された類似度が所定の閾値未満である場合(ステップS39:Noルート)、ステップS43の処理に移行する。
一方、ステップS37において算出された類似度が所定の閾値以上である場合(ステップS39:Yesルート)、一致項目抽出部501は、ステップS37において類似度が算出された自立語及び項目名を含む一致項目データを生成し、一致項目データ格納部503に格納する(ステップS41)。
図9に、一致項目データ格納部503に格納されるデータの一例を示す。図9の例では、自立語IDの列と、自立語の列と、類似設計書IDの列と、項目IDの列と、項目名の列と、一致度の列とが含まれる。自立語IDの列には、例えばステップS31において特定された自立語が何番目に特定された自立語であるかに従い割り振られる番号を格納する。類似設計書ID及び項目IDの列には、ステップS35において特定された項目名に対応する画面ID及び項目IDを類似設計書格納部11から取得して格納する。また、一致度は、ステップS37において算出された類似度が1、すなわち自立語と項目名とが完全に一致する場合には「完全一致」とし、ステップS37において算出された類似度が所定の閾値以上1未満であれば「部分一致」とする。例えば図9においては、自立語「事業所コード」と項目名「事業所コード」とは同一の語句であるので、一致度の列には「完全一致」が格納されている。また、自立語「事業所名」と項目名「事業所名称」とは類似度は高いが同一の語句ではないので、一致度の列には「部分一致」が格納されている。一方、自立語「事業所区分名」に対して項目名が「受払番号」であるような場合、ステップS37において算出される類似度が所定の閾値に満たないため、一致項目データ格納部503にはデータは格納されない。
図8の説明に戻り、一致項目抽出部501は、全ての項目名について処理したか判断する(ステップS43)。全ての項目名について処理していない場合(ステップS43:Noルート)、次の項目名について処理を実施するため、ステップS35の処理に戻る。
一方、全ての項目名について処理した場合(ステップS43:Yesルート)、一致項目抽出部501は、全ての項目名リストについて処理したか判断する(ステップS45)。全ての項目名リストについて処理していない場合(ステップS45:Noルート)、次の項目名リストについて処理を実施するため、ステップS33の処理に戻る。
一方、全ての項目名リストについて処理した場合(ステップS45:Yesルート)、一致項目抽出部501は、全ての自立語について処理したか判断する(ステップS47)。全ての自立語について処理していない場合(ステップS47:Noルート)、次の自立語について処理を実施するため、ステップS31の処理に戻る。
一方、全ての自立語について処理した場合(ステップS47:Yesルート)、処理は端子Aを介してステップS49(図10)の処理に移行する。
このように、類似度が所定の閾値以上である一致項目を、項目候補になる可能性がある項目名としてまず特定する。そして、さらに以下で述べるような絞り込みを行うことにより項目候補を特定する。
図10の説明に移行して、絞り込み部505は、一致項目データ格納部503から未処理の自立語を1つ特定し、当該自立語に対応付けられている項目名、類似設計書ID及び一致度を特定し、メインメモリ等の記憶装置に格納する(図10:ステップS49)。そして、一致項目データ格納部503は、特定された一致度に、「完全一致」である一致度が含まれるか判断する(ステップS51)。「完全一致」である一致度が含まれる場合(ステップS51:Yesルート)、絞り込み部505は、「完全一致」である項目名を項目候補格納部13に格納する(ステップS63)。例えば図9において、自立語「受払番号」に対応付けられている項目名には「受払番号」があるが、この項目名の一致度は「完全一致」であるため、項目名「受払番号」は項目候補格納部13に格納される。類似設計書において定義されている項目名が処理詳細中の自立語と完全に一致するのであれば、診断対象の設計書においても定義すべき項目名である可能性が高いからである。
図11に、項目候補格納部13に格納されるデータの一例を示す。図11の例では、項目名が格納されるようになっている。
図10の説明に戻り、「完全一致」である一致度が含まれない場合(ステップS51:Noルート)、絞り込み部505は、ステップS49において特定された項目名が1つであるか判断する(ステップS53)。ステップS49において特定された項目名が1つである場合(ステップS53:Yesルート)、絞り込み部505は、ステップS49において特定された項目名を項目候補格納部13に格納する(ステップS63)。例えば図9において、自立語「事業所区分名」に対応付けられている項目名は、一致度が「部分一致」である項目名「事業所区分」だけであるため、この項目名が項目候補格納部13に格納される。一致度が「部分一致」であっても項目名が1つしか特定されていなければ、項目名の絞り込みを行う必要はないためである。
一方、ステップS49において特定された項目名が1つではないと判断された場合(ステップS53:Noルート)、絞り込み部505は、ステップS49において特定された項目名と一致する項目名が、入力データ格納部3に格納されている項目名リストに含まれるか判断する(ステップS55)。含まれる場合(ステップS55:Yesルート)、絞り込み部505は、入力データ格納部3に格納されている項目名リストに含まれる項目名を、項目候補格納部13に格納する(ステップS63)。例えば図9において、自立語「事業所名」には項目名「事業所名称」及び「自事業所名」が対応付けられているが、入力データ格納部3に格納されている項目名リストに項目名として「事業所コード」、「事業所名称」、「事業所区分」、「受入番号」、「受払番号」、「相手事業所コード」及び「相手事業所名称」が含まれる場合には、項目名「事業所名称」が項目候補格納部13に格納される。診断対象の設計書において既に定義されている項目名であれば、当然項目候補として特定されるべきであるからである。なお、ステップS63において項目候補格納部13に格納されたとしても、後で説明するステップS9の処理において、入力データ格納部3に格納されている項目名リストに含まれる項目名であると判断されるので、不整合項目として特定されることはない。
一方、含まれない場合(ステップS55:Noルート)、絞り込み部505は、ステップS49において特定された類似設計書IDに、同一の類似設計書IDが複数含まれるか判断する(ステップS57)。同一の類似設計書IDが複数含まれる場合(ステップS57:Yesルート)、絞り込み部505の出現部分比較部5053は、出現部分比較処理を実施する(ステップS59)。例えば図9において、自立語「受払状態」に対応付けられている類似設計書IDは6行目の「G002」、7行目の「G003」、8行目の「G004」及び9行目の「G004」であるので、自立語「受払状態」については出現部分比較処理を実施する。なお、便宜上、ステップS49において特定された項目名のうち、ステップS57においてIDが複数含まれると判断された類似設計書IDに対応する項目名をID重複項目名と呼ぶ。図9の例であれば、「受払元状態」及び「総受払状態」がID重複項目名に該当する。出現部分比較処理は、ID重複項目名のうち項目候補として最も相応しい項目名を選び出すための処理である。
ここで、出現部分比較処理について、図12乃至図17を用いて詳細に説明する。まず、出現部分比較部5053は、ステップS57においてIDが複数含まれると判断された類似設計書IDのうち未処理の類似設計書ID(以下、処理対象の類似設計書IDと呼ぶ)を1つ特定する(図12:ステップS81)。そして、出現部分比較部5053は、処理対象の類似設計書IDに対応する項目名リストを類似設計書格納部11から特定し、当該項目名リストから未処理の項目名を1つ特定する(ステップS83)。また、ステップS83においては、未処理の項目名に対応する項目IDについても類似設計書格納部11から特定する。
そして、出現部分比較部5053は、ステップS83において特定された項目名と一致する項目名が、入力データ格納部3に格納されている項目名リストに含まれるか判断する(ステップS85)。含まれない場合(ステップS85:Noルート)、ステップS89の処理に移行する。
一方、含まれる場合(ステップS85:Yesルート)、出現部分比較部5053は、ステップS83において特定された項目名及び項目IDを共通項目データ格納部507に格納する(ステップS87)。
図13に、共通項目データ格納部507に格納されるデータの一例を示す。図13の例では、項目IDの列と、項目名の列とが含まれる。
図12の説明に戻り、出現部分比較部5053は、全ての項目名について処理したか判断する(ステップS89)。全ての項目名について処理していない場合(ステップS89:Noルート)、次の項目名について処理を実施するため、ステップS83の処理に戻る。一方、全ての項目名について処理した場合(ステップS89:Yesルート)、処理は端子Bを介してステップS91(図14)の処理に移行する。
図14の説明に移行して、出現部分比較部5053は、処理対象の類似設計書IDに対応する自立語リストを類似設計書格納部11から特定し、当該自立語リストから未処理の自立語を1つ特定する(ステップS91)。また、ステップS91においては、特定された自立語に対して自立語IDを割り当てる。自立語IDは、例えばステップS91において特定された自立語が何番目に特定された自立語であるかに従い割り当てられる番号である。
そして、出現部分比較部5053は、ステップS91において特定された自立語と共通項目データ格納部507に格納されている項目名の各々との表記の類似度を算出する(ステップS93)。ステップS93における類似度の算出方法は、ステップS37と同様である。また、出現部分比較部5053は、算出された類似度のうち最大の類似度が所定の閾値以上であるかを判断する(ステップS95)。例えば、ステップS91において特定された自立語が「相手事業所名」であり、共通項目データ格納部507には図13に示すデータが格納されている場合を考える。そして、ステップS93において、項目名「相手事業所コード」について算出された類似度が0.71であり、項目名「相手事業所名称」について算出された類似度が0.92であるとする。この場合、ステップS95においては、項目名「相手事業所名称」について算出された類似度0.92が、所定の閾値以上であるかを判断する。
そして、算出された類似度のうち最大の類似度が所定の閾値以上である場合(ステップS95:Yesルート)、出現部分比較部5053は、最大の類似度が算出された自立語及び項目名を含むデータを類似部分データ格納部509に格納する(ステップS97)。一方、算出された類似度のうち最大の類似度が所定の閾値未満である場合(ステップS95:Noルート)、出現部分比較部5053は、最大の類似度が算出された自立語を含むデータを類似部分データ格納部509に格納する(ステップS99)。
図15に、類似部分データ格納部509に格納されるデータの一例を示す。図15の例では、自立語IDの列と、自立語の列と、項目IDの列と、項目名の列と、類似部分IDの列とが含まれる。図15の例であれば、ステップS97において4、6、18及び21行目のデータが格納され、ステップS99においてそれ以外の行のデータが格納される。なお、後で説明するステップS103の処理を実施していない段階では、類似部分IDの列にはデータは格納されていない。
図14の説明に戻り、出現部分比較部5053は、全ての自立語について処理したか判断する(ステップS101)。全ての自立語について処理していない場合(ステップS101:Noルート)、次の自立語について処理を実施するため、ステップS91の処理に戻る。一方、全ての自立語について処理した場合(ステップS101:Yesルート)、出現部分比較部5053は、類似部分データ格納部509において類似部分を特定し、類似部分IDを類似部分の自立語に対応付けて類似部分データ格納部509に格納する(ステップS103)。そして、処理は端子Cを介してステップS105(図16)に移行する。
ステップS103においては、例えば、連続するm個の自立語に対して、項目名がn個以上対応付けて格納されているかにより判断する。例えば図15において、m=5且つn=2と設定した場合を考える。まず、自立語ID「4」である自立語から自立語ID「6」である自立語までは3つの自立語があり、それらの自立語に対応付けられている項目名は「相手事業所名称」及び「相手事業所コード」の2つである。従って、自立語ID「4」から「6」までの部分は類似部分として特定される。また、自立語ID「6」である自立語から自立語ID「18」である自立語までは13の自立語があるため、それらの自立語に「相手事業所コード」及び「相手事業所名称」という2つの項目名が対応付けられていても、類似部分として特定されることはない。また、自立語ID「18」である自立語から自立語ID「21」である自立語までは4つの自立語があり、それらの自立語に対応付けられている項目名は「相手事業所名称」及び「相手事業所コード」の2つである。従って、自立語ID「18」から「21」までの部分が類似部分として特定される。なお、ステップS103において、類似部分を多く特定したいのであれば、mは大きく又はnは小さくなるように設定し、類似部分をあまり特定したくないのであれば、mは小さく又はnは大きくなるように予め設定すればよい。
図16の説明に移行して、出現部分比較部5053は、類似部分データ格納部509に格納されている未処理の自立語を1つ特定する(図16:ステップS105)。そして、出現部分比較部5053は、特定された自立語と、ID重複項目名の各々との表記の類似度を算出する(ステップS107)。ステップS107における類似度の算出方法は、ステップS37と同様である。
そして、出現部分比較部5053は、算出された類似度のうち最大の類似度が所定の閾値以上であるか判断する(ステップS109)。所定の閾値未満である場合(ステップS109:Noルート)、ステップS115の処理に移行する。一方、所定の閾値以上である場合(ステップS109:Yesルート)、出現部分比較部5053は、類似部分データ格納部509において、ステップS105において特定された自立語と前後の類似部分との距離を算出する(ステップS111)。また、出現部分比較部5053は、算出された距離のうち最小のものと、ステップS107において算出された類似度のうち最大の類似度の算出に用いたID重複項目名とを含む距離データを生成し、距離データ格納部511に格納する(ステップS113)。なお、ステップS105において特定された自立語が類似部分に含まれる場合には、距離は「0」を設定する。
ステップS105乃至S113の処理について、具体例を用いて簡単に説明する。例えば類似部分データが図15に示すデータであり、ステップS105において特定された自立語が自立語ID「8」の「受払元状態」であり、またID重複項目名が図9の8行目及び9行目の項目名(すなわち、「受払元状態」及び「総受払状態」)である場合を考える。そして、ステップS107においてID重複項目名「受払元状態」について算出された類似度が1.0であり、ID重複項目名「総受払状態」について算出された類似度が0.8であるとする。この場合、ステップS109においては、類似度1.0が所定の閾値以上であるか判断するが、類似度1.0は完全一致であることを示しており所定の閾値以上である。従って、ステップS111においては、自立語ID「8」である自立語「受払元状態」から類似部分SP1に含まれる自立語のうち最も距離が近い自立語である「相手事業所コード」(自立語ID「6」)までの距離「2」と、自立語ID「8」である自立語「受払元状態」から類似部分SP2に含まれる自立語のうち最も距離が近い自立語である「相手事業所名」(自立語ID「18」)までの距離「10」とが算出される。そして、ステップS113においては、距離「2」とID重複項目名「受払元状態」とを含む距離データを生成し、距離データ格納部511に格納する。
図17に、距離データ格納部511に格納されるデータの一例を示す。図17の例では、自立語IDの列と、項目IDの列と、項目名の列と、類似部分との距離の列とが含まれる。
図16の説明に戻り、出現部分比較部5053は、全ての自立語について処理したか判断する(ステップS115)。全ての自立語について処理していない場合(ステップS115:Noルート)、次の自立語について処理を実施するため、ステップS105の処理に戻る。
一方、全ての自立語について処理した場合(ステップS115:Yesルート)、出現部分比較部5053は、距離データ格納部511において、最小の距離に対応付けられているID重複項目名以外のID重複項目名を特定し、特定されたID重複項目名についてのデータを一致項目データ格納部503から削除する(ステップS117)。図17の例であれば、最小の距離である「2」に対応付けられている項目名は「受払元状態」であるため、「受払元状態」以外の項目名である「総受払状態」が特定される。そして、図9のデータが一致項目データ格納部503に格納されており、ID重複項目名が8行目の「受払元状態」及び9行目の「総受払状態」である場合、9行目の「総受払状態」についてのデータが削除される。
図16の説明に戻り、出現部分比較部5053は、全ての類似設計書IDについて処理したか判断する(ステップS119)。全ての類似設計書IDについて処理していない場合(ステップS119:Noルート)、次の類似設計書IDについて処理を実施するため、処理は端子Dを介してステップS81に戻る。一方、全ての類似設計書IDについて処理した場合(ステップS119:Yesルート)、元の処理に戻る。
以上のような処理を実施することにより、1つの自立語に対して、1つの類似設計書の項目名リストから複数の項目名が抽出された場合であっても、項目候補として最も相応しい項目名を特定できるようになる。
図10の説明に戻り、同一の類似設計書IDが複数含まれない場合(ステップS57:Noルート)、絞り込み部505の項目定義比較部5051は、項目定義比較処理を実施する(ステップS61)。例えば図9においては、自立語「受払状態区分」に対応付けられている類似設計書IDは「G002」及び「G003」であり、同一の類似設計書IDは複数含まれないので、自立語「受払状態区分」については項目定義比較処理を実施する。
図18を用いて、項目定義比較処理について詳細に説明する。まず、項目定義比較部5051は、ステップS49において特定された類似設計書IDから未処理の類似設計書IDを1つ特定する(図18:ステップS121)。そして、特定された類似設計書IDに対応する項目名リストを類似設計書格納部11から特定し、特定された項目名リストと入力データ格納部3に格納されている項目名リストとの類似度を算出し、メインメモリ等の記憶装置に格納する(ステップS123)。ステップS123においては、例えば両項目名リストに共通に含まれる項目名の数を類似度とする。例えば、ステップS123において特定された項目名リストに項目名「事業所コード」、「受入番号」、「受払番号」、「受入状態」、「受入状態区分」、「業務区分」及び「在庫区分」が含まれており、入力データ格納部3に格納されている項目名リストに「事業所コード」、「事業所名称」、「事業所区分」、「受入番号」、「受払番号」、「相手事業所コード」及び「相手事業所名称」が含まれる場合には、項目名「事業所コード」、「受入番号」及び「受払番号」が共通するため、類似度は「3」となる。
そして、項目定義比較部5051は、全ての類似設計書IDについて処理したか判断する(ステップS125)。全ての類似設計書IDについて処理していない場合(ステップS125:Noルート)、次の類似設計書IDについて処理を実施するため、処理はステップS121に戻る。
一方、全ての類似設計書IDについて処理した場合(ステップS125:Yesルート)、項目定義比較部5051は、ステップS49において特定された項目名のうち、ステップS123において算出された類似度が最大となる類似設計書IDに対応する項目名を項目候補格納部13に格納し、元の処理に戻る(ステップS127)。例えば図9において、類似設計書IDが「G002」である類似設計書の項目名リストについて算出された類似度が5であり、類似設計書IDが「G003」である類似設計書の項目名リストについて算出された類似度が3である場合、自立語「受払状態区分」に対応付けられている項目名「受払先状態区分」及び「受入状態区分」のうち、項目名「受払先状態区分」を項目候補格納部13に格納する。
以上のような処理を実施することにより、1つの自立語に対して、複数の類似設計書の項目名リストから項目名が抽出された場合であっても、項目名を抽出するのに最も相応しい項目名リストを決定できるようになる。
図10の説明に戻り、ステップS63又はステップS61の後、絞り込み部505は、全ての自立語について処理したか判断する(ステップS65)。全ての自立語について処理していない場合(ステップS65:Noルート)、次の自立語について処理を実施するため、ステップS49の処理に戻る。一方、全ての自立語について処理した場合(ステップS65:Yesルート)、元の処理に戻る。
以上のような処理を実施することにより、項目候補となるべき項目名を適切に抽出することができる。
図6の説明に戻り、第一不整合項目特定部15は、項目候補格納部13に格納されている項目名のうち、入力データ格納部3に格納されている項目名リストに含まれない項目名である不整合項目名を特定し、第一不整合項目格納部17に格納する(ステップS9)。例えば、図11に示すデータが項目候補格納部13に格納されており、図5(b)に示すデータが入力データ格納部3に格納されている場合には、項目名「受払先状態」及び「受払先状態区分」を第一不整合項目格納部17に格納する。
そして、出力部19は、第一不整合項目格納部17に格納されている項目名を出力する処理を実施する(ステップS11)。不整合検出装置に表示装置や印刷装置が接続されている場合には、当該表示装置に表示したり、印刷装置などに出力するようにしても良い。さらに、ネットワークを介して接続されている他のコンピュータに出力するようにしてもよい。
以上述べたように、類似設計書の項目名リストを用いているので、項目名でない自立語を項目名として定義してしまうことを防止しつつ、定義されるべき項目名を高精度で特定できるようになる。
[実施の形態2]
次に、項目定義において定義されているにも関わらず処理詳細に含まれていないという不整合(第二の不整合)が生じている項目名を検出し、当該項目名に関するデータを補充すべき位置を特定するための処理について説明する。
第2の実施の形態に係る修正支援装置の機能ブロック図を図19に示す。第2の実施の形態に係る修正支援装置は、入力処理部101と、入力データ格納部103と、設計書DB105と、類似設計書特定部107と、類似設計書格納部113と、第二不整合項目特定部109と、第二不整合項目格納部111と、補充文抽出部115と、補充文格納部117と、絞り込み処理部119と、絞り込み処理結果格納部121と、補充位置決定部123と、出力データ格納部125と、出力部127とを含む。
入力処理部101は、診断対象の設計書の処理詳細及び項目定義の入力を受け付け、入力データ格納部103に格納する。類似設計書特定部107は、入力データ格納部103及び設計書DB105に格納されているデータに基づき、類似設計書を設計書DB105から抽出し、類似設計書格納部113に格納する。第二不整合項目特定部109は、入力データ格納部103に格納されているデータ用いて不整合項目名を抽出し、第二不整合項目格納部111に格納する。補充文抽出部115は、第二不整合項目格納部111に格納されている不整合項目名及び類似設計書格納部113に格納されている処理詳細を用いて、入力された処理詳細に補充すべきデータを抽出する処理等を実施し、補充文格納部117に格納する。絞り込み処理部119は、入力データ格納部103、類似設計書格納部113及び補充文格納部117に格納されているデータを用いて、後で説明する範囲絞り込み処理を実施し、処理結果を絞り込み処理結果格納部121に格納する。補充位置決定部123は、入力データ格納部103、類似設計書格納部113及び絞り込み処理結果格納部121に格納されているデータを用いて、後で説明する補充位置決定処理を実施し、処理結果を出力データ格納部125に格納する。出力部127は、出力データ格納部125に格納されているデータを表示装置に出力する。
絞り込み処理部119は、行番号リスト格納部1191と、対応位置データ格納部1192と、行番号リスト生成部1193と、対応位置特定部1194と、範囲特定部1195とを含む。行番号リスト生成部1193は、入力データ格納部103及び類似設計書格納部113に格納されているデータを用いて、後で説明する行番号リストを生成する処理等を実施し、処理結果を行番号リスト格納部1191に格納する。対応位置特定部1194は、行番号リスト格納部1191及び入力データ格納部103に格納されているデータを用いて、後で説明する対応位置特定処理等を実施し、処理結果を対応位置データ格納部1192に格納する。範囲特定部1195は、補充文格納部117及び対応位置データ格納部1192に格納されているデータに基づき処理を行い、処理結果を絞り込み処理結果格納部121に格納する。
補充位置決定部123は、類似度格納部1231と、ウィンドウ生成部1232と、探索部1233とを含む。ウィンドウ生成部1232は、後で説明するウィンドウ・データを生成する処理等を行い、生成されたウィンドウ・データを探索部1233に出力する。探索部1233は、ウィンドウ生成部1232から受け取ったウィンドウ・データ及び入力データ格納部103に格納されているデータを用いて処理を行い、処理結果を出力データ格納部125に格納する。
図20及び図21に、設計書DB105に格納されているデータの一例を示す。図20は、設計書DB105に格納されている項目定義のデータの一例を示している。図20の例では、項目定義書IDと、ファイル名と、処理名とが格納されるようになっており、また、番号の列と、項目名の列と、項目種別の列と、寄せの列と、I/O(入出力)の列とが含まれる。また、図21は、設計書DB105に格納されている処理詳細のデータの一例を示している。図21の例では、処理詳細定義書IDと、ファイル名とが格納されるようになっており、また、行番号の列と、処理の内容を表す文の列とが含まれる。設計書DB105には、処理毎に項目定義及び処理詳細がセットで格納されるようになっている。例えば図20及び図21は、「在庫受入登録」という処理についての項目定義及び処理詳細である。
次に、図22乃至図41を用いて、図19に示した修正支援装置の処理内容について説明する。まず、修正支援装置の入力処理部101は、診断対象の設計書の処理詳細及び項目定義の入力を受け付け、入力データ格納部103に格納する(図22:ステップS201)。ここでは、キーボードやマウス等の入力装置を介してユーザから直接入力を受け付けるようにしてもよいし、設計書のリストをユーザに提示し、ユーザ指定の設計書の処理詳細及び項目定義を図示しない記憶装置等(又はネットワークを介して接続されている他のコンピュータ)から取得するような処理であってもよい。また、設計書DB105から項目定義及び処理詳細を抽出するようにしてもよい。
図23及び図24に、入力データ格納部103に格納されているデータの一例を示す。図23は、入力データ格納部103に格納されている項目定義のデータの一例を示しており、データのフォーマットは図20に示したデータと同様である。図24は、入力データ格納部103に格納されている処理詳細のデータの一例を示しており、データのフォーマットは図21に示したデータと同様である。
図20の説明に戻り、第二不整合項目特定部109は、入力データ格納部103に格納されている項目定義(以下、入力項目定義と呼ぶ)に定義されている項目名のうち、入力データ格納部103に格納されている処理詳細(以下、入力処理詳細と呼ぶ)に含まれていない不整合項目名を特定し、第二不整合項目格納部111に格納する(ステップS203)。不整合項目名は、項目定義に定義されているにも関わらず、処理詳細において処理内容に関するデータが欠落している項目名である。
そして、類似設計書特定部107は、入力処理詳細との類似度が最も高い処理詳細及び当該処理詳細に対応する項目定義を設計書DB105から読み出し、類似設計書格納部113に格納する(ステップS205)。
ステップS205においては、例えば、第1の実施の形態で説明したステップS3及びS5において行われる処理と同様の処理を行うようにすればよい。この場合、類似設計書特定部107は、入力処理詳細から自立語を抽出して自立語リストを生成すると共に、設計書DB105に格納されている処理詳細の各々についても自立語リストを生成する。また、類似設計書特定部107は、設計書DB105に格納されている処理詳細の各々について、当該処理詳細の自立語リストと入力処理詳細についての自立語リストとの類似度を算出する。そして、類似設計書特定部107は、算出された類似度が最も高い処理詳細と当該処理詳細に対応する項目定義を設計書DB105から読み出し、類似設計書格納部113に格納する。以下では、類似設計書格納部113に格納された処理詳細を類似処理詳細と呼び、類似設計書格納部113に格納された項目定義を類似項目定義と呼び、類似処理詳細と類似項目定義のセットを類似設計書と呼ぶ。
次に、補充文抽出部115は、第二不整合項目格納部111に格納されている不整合項目名で類似処理詳細を探索し、特定された不整合項目名を含む文及び当該文の行番号を補充文格納部117に格納する(ステップS207)。
図25に、補充文格納部117に格納されているデータの一例を示す。図25の例では、行番号と、補充すべき文とが格納されるようになっている。
図22の説明に戻り、絞り込み処理部119は、範囲絞り込み処理を実施する(ステップS209)。範囲絞り込み処理については、図26乃至図34を用いて説明する。
まず、絞り込み処理部119の行番号リスト生成部1193は、入力項目定義及び類似項目定義の両方に含まれる項目名を共通項目名として抽出し、メインメモリ等の記憶装置に格納する(図26:ステップS221)。例えば、類似項目定義が図20の例に示したようなデータであり、入力項目定義が図23の例に示したようなデータであるような場合には、図27に示すようなデータが共通項目名として抽出される。
そして、行番号リスト生成部1193は、入力処理詳細及び類似処理詳細のそれぞれについて、ステップS221において抽出された共通項目名と当該共通項目名を含む文の行番号を抽出して行番号リストを生成し、行番号リスト格納部1191に格納する(ステップS223)。
図28に、行番号リスト格納部1191に格納されるデータの一例を示す。図28の例では、処理詳細定義書のIDと、行番号と、項目名とが格納されている。図28の左側に示したデータは、入力処理詳細について生成された行番号リストの一例を示し、右側に示したデータは、類似処理詳細について生成された行番号リストの一例を示す。
図26の説明に戻り、対応位置特定部1194は、入力処理詳細についての行番号リスト及び類似処理詳細についての行番号リストから、最後に抽出した項目名の次の項目名(すなわち、最後に抽出した項目名の次に行番号が小さい項目名)をそれぞれ抽出し、メインメモリ等の記憶装置に格納する(ステップS225)。初めてステップS225の処理を実施する場合には、最も行番号が小さい項目名を抽出する。以下では、入力処理詳細についての行番号リストから抽出した項目名を第1の項目名と呼び、類似処理詳細についての行番号リストから抽出した項目名を第2の項目名と呼ぶ。
そして、対応位置特定部1194は、第1の項目名及び第2の項目名が抽出されたか判断する(ステップS227)。例えば行番号が最も大きい項目名を既に処理した場合には、次に処理すべき項目名は無いため、項目名は抽出されない。第1の項目名及び第2の項目名が抽出された場合には(ステップS227:Yesルート)、対応位置特定部1194は、第1の項目名及び第2の項目名が同一であるか判断する(ステップS229)。そして、第1の項目名及び第2の項目名が同一である場合には(ステップS229:Yesルート)、対応位置特定部1194は、項目名に対応する行番号を、入力処理詳細についての行番号リスト及び類似処理詳細についての行番号リストからそれぞれ特定し、当該項目名に対応付けて対応位置データ格納部1192に格納する(ステップS231)。
図29に、対応位置データ格納部1192に格納されているデータの一例を示す。図29の例では、順番の列と、項目名の列と、入力処理詳細での行番号の列と、類似処理詳細での行番号の列とが含まれる。
図26の説明に戻り、第1の項目名及び第2の項目名が同一でない場合(ステップS229:Noルート)、対応位置特定部1194は、対応位置特定処理を実施する(ステップS233)。対応位置特定処理については、図30を用いて説明する。
まず、対応位置特定部1194は、対応位置データ格納部1192から、最後に格納された項目名を特定する(図30:ステップS241)。また、対応位置特定部1194は、入力項目定義から、ステップS241において特定された項目名よりも後に定義されている項目名(すなわち、特定された項目名よりも「番号」が大きい項目名)を抽出し、抽出された項目名を含む候補リストを生成する(ステップS243)。また、対応位置特定部1194は、候補リストに含まれる未処理の項目名のうち、最も先に定義されている項目名(すなわち、「番号」が最も小さい項目名)を特定する(ステップS245)。
そして、対応位置特定部1194は、ステップS245において特定された項目名が、第1の項目名及び第2の項目名のいずれかと同一であるか判断する(ステップS247)。第1の項目名及び第2の項目名のいずれとも同一ではないと判断された場合(ステップS247:Noルート)、次の項目名について処理を実施するため、ステップS245の処理に戻る。
一方、第1の項目名及び第2の項目名のいずれかと同一であると判断された場合(ステップS247:Yesルート)、対応位置特定部1194は、ステップS245において特定された項目名が、第1の項目名と同一であるか判断する(ステップS249)。
第1の項目名と同一であると判断された場合(ステップS249:Yesルート)、対応位置特定部1194は、類似処理詳細についての行番号リストにおいて、第2の項目名より行番号が大きい項目名の中から第1の項目名と同一の項目名を探索し、当該項目名及び当該項目名に対応する行番号を抽出する(ステップS251)。
一方、第1の項目名と同一ではない(すなわち、第2の項目名と同一である)と判断された場合(ステップS249:Noルート)、対応位置特定部1194は、入力処理詳細についての行番号リストにおいて、第1の項目名より行番号が大きい項目名の中から第2の項目名と同一の項目名を探索し、当該項目名及び当該項目名に対応する行番号を抽出する(ステップS253)。
そして、対応位置特定部1194は、ステップS245において特定された項目名と、当該項目名に対応する行番号とを対応付けて対応位置データ格納部1192に格納する(ステップS255)。ステップS249において、ステップS245において特定された項目名が第1の項目名と同一であると判断された場合には、入力処理詳細についての行番号リストにおいて第1の項目名に対応する行番号と、ステップS251において抽出された行番号とを格納する。ステップS249において、ステップS245において特定された項目名が第1の項目名と同一ではない(すなわち、第2の項目名と同一である)と判断された場合には、類似処理詳細についての行番号リストにおいて第2の項目名に対応する行番号と、ステップS253において抽出された行番号とを格納する。そして元の処理に戻る。
図26の説明に戻り、いずれかの行番号リストから項目名が抽出されなかった場合には(ステップS227:Noルート)、対応位置特定部1194は、補充すべき文の行番号及び対応位置データ格納部1192に格納されているデータに基づき、補充すべき文を補充する範囲を特定する処理を行い、処理結果を絞り込み処理結果格納部121に格納する(ステップS235)。そして元の処理に戻る。
図31に、絞り込み処理結果格納部121に格納されているデータの一例を示す。図31の例では、順番の列と、項目名の列と、入力処理詳細での行番号の列と、類似処理詳細での行番号の列とが含まれる。
ここで、ステップS235において行われる処理について説明する。例えば図25に示すように、補充すべき文の行番号が「331」であるとする。一方で、対応位置データ格納部1192には、図29に示すようなデータが格納されているとする。すると、補充すべき文は、類似処理詳細において「運用日付」という共通項目名が含まれる行と、「事業所コード」という共通項目名が含まれる行と間に位置していることがわかる。そこで、本実施の形態では、図32に示すように、入力処理詳細において「運用日付」という共通項目名が含まれる行と、「事業所コード」という共通項目名が含まれる行とで挟まれた範囲の中に、欠落しているデータを補充すべき位置があると推定する。これは、入力処理詳細に類似する処理詳細(類似処理詳細)は、項目名が出現する順序も類似するという性質を利用したものである。
また、対応位置特定部1194により行われる処理について、説明を追加しておく。図33は、対応位置特定部1194により行われる、行番号の対応付けを模式的に示した図である。まず、対応位置特定部1194は、それぞれの行番号リストに含まれる項目名を上から順に(すなわち、行番号が小さい順に)同一であるかを判断していく。図33の例であれば、まず、入力処理詳細についての行番号リストにおける「運用日付」と、類似処理詳細についての行番号リストにおける「運用日付」とが同一であるかを判断する。ここでは、同一であるので、対応位置データ格納部1192には、1行目のようなデータが格納される。次の項目名である「事業所コード」、及びその後に出現する「運用日付」についても同様の処理が行われる。
そして、その次の項目名として、入力処理詳細についての行番号リストから「事業所コード」が特定され、類似処理詳細についての行番号リストから「取引先区分」が特定される。これらの項目名は同一ではないので、対応位置特定部1194は、上で述べた対応位置特定処理を実施する。例えば入力項目定義のデータが図23のようなデータである場合には、「事業所コード」の方が「取引先区分」よりも先に定義されているので、「事業所コード」を優先して処理を行うことになる。ここでは、類似処理詳細についての行番号リストにおいて、「取引先区分」の後に位置する項目名の中から「事業所コード」を特定し、この項目名に対応する行番号「337」を、入力処理詳細についての行番号リストにおける行番号「294」と対応付ける。
このように、本実施の形態では、それぞれの行番号リストから抽出された項目名が同一でない場合には、入力項目定義において先に定義されている項目名を優先して処理を行うようにしている。
一方、図33の例において、入力項目定義において項目名が定義されている順序を考慮せず、類似処理詳細についての行番号リストにおける「取引先区分」という項目名を優先して処理した場合について説明する。この場合は、入力処理詳細についての行番号リストにおいて、「事業所コード」の後に位置する項目名の中から「取引先区分」を特定し、この項目名に対応する行番号「421」を、類似処理詳細についての行番号リストにおける行番号「321」と対応付ける。この結果得られる対応位置データは例えば図34のようになる。このデータに従えば、補充すべき文は、入力処理詳細における行番号「421」と行番号「439」との間に補充すべきということになる。しかし、これは、結果として、誤った絞り込みを行ってしまっている。
そこで、このような誤った絞り込みをしてしまう可能性を低くするため、本実施の形態では、入力項目定義において項目名が定義されている順序を考慮した形で行番号の対応付けを行っている。
以上のようにして範囲絞り込み処理を実施することにより、入力処理詳細においてデータが欠落していると推定される範囲を高精度で絞り込むことができるようになる。
図22の説明に戻り、補充位置決定部123は、補充位置決定処理を実施する(ステップS211)。はじめに、第1の補充位置決定処理について図35乃至図37を用いて説明する。
まず、補充位置決定部123のウィンドウ生成部1232は、ウィンドウ幅nを1に設定する(図35:ステップS261)。そして、ウィンドウ生成部1232は、補充すべき文の行番号のデータを補充文格納部117から読み出し、補充すべき文の前後n行を類似処理詳細から抽出してウィンドウ・データを生成し、メインメモリ等の記憶装置に格納する(ステップS263)。
図36に、ウィンドウ・データの一例を示す。図36の例では、ウィンドウIDと、行番号と、補充すべき文の前後n文(ここではn=3)のデータとが格納されるようになっている。
図35の説明に戻り、探索部1233は、入力処理詳細においてデータが欠落していると推定される範囲(ステップS235において特定された範囲)において、生成されたウィンドウ・データとの類似度が最も高い位置を探索する(ステップS265)。
ステップS265において行われる処理について、図37を用いて説明する。図37では、入力処理詳細においてデータが欠落していると推定される範囲として、行番号「278」から行番号「294」までの範囲が示されている。例えばn=3の場合、まず範囲371に含まれるデータとウィンドウ・データとの類似度を算出する。類似度は、例えば範囲371に含まれる自立語とウィンドウ・データに含まれる自立語とのうち一致するものの数を用いればよい。同様に、範囲372及び373についても類似度を算出し、範囲374まで類似度を算出すると、類似度の算出を終了する。そして、算出された類似度のうち最も高い類似度に対応する範囲における、所定の位置(例えば中央)を特定する。
図35の説明に戻り、探索部1233は、ステップS265における探索処理により特定された、類似度が最も高い位置についてのデータと、対応する類似度とを、ウィンドウ幅nに対応付けて類似度格納部1231に格納する(ステップS267)。
次に、探索部1233は、ウィンドウ幅nを1インクリメントする(ステップS269)。そして、探索部1233は、ウィンドウ幅nが上限値を超えたか判断する(ステップS271)。ウィンドウ・データを抽出する範囲は、ステップS235において特定される範囲を超えないことが望ましい。従って、ウィンドウ幅の上限値は、例えば図31に示したデータが絞り込み処理結果格納部121に格納されており、補充すべき文の行番号が「331」である場合には「6」となる。
そして、ウィンドウ幅nが上限値を超えていない場合(ステップS271:Noルート)、ステップS263に戻る。一方、ウィンドウ幅nが上限値を超えた場合(ステップS271:Yesルート)、探索部1233は、類似度格納部1231に格納されている類似度のうち、最も高い類似度に対応する位置についてのデータを抽出し、出力データ格納部125に格納する(ステップS273)。そして元の処理に戻る。
図38に、出力データ格納部125に格納されるデータの一例を示す。図38の例では、補充すべき箇所の行番号と、補充すべき箇所に含まれる文のデータとが格納されるようになっている。図38の例は、入力処理詳細における行番号「289」の文と行番号「290」の文との間にデータを補充すべきであることを表している。
図39は、ステップS273において行われる処理の考え方を示す図である。第1の補充位置決定処理においては、ウィンドウ幅nをn=1,2,3,・・・と変化させ、各ウィンドウ幅について類似度の最大値を算出する。そして、算出された類似度のうち最も大きい類似度(図39の例では、n=5の場合の類似度)に対応する位置を、データが欠落している位置として特定する。
以上のような処理を実施することにより、絞り込まれた範囲の中から、データが欠落している位置として最も確からしい位置を特定することができるようになる。
なお、第1の補充位置決定処理の代わりに、以下で説明するような第2の補充位置決定処理を行うようにしてもよい。
図40及び図41を用いて、第2の補充位置決定処理について説明する。まず、補充位置決定部123のウィンドウ生成部1232は、ウィンドウの上幅及び下幅に1を設定する(図40:ステップS281)。そして、ウィンドウ生成部1232は、設定された上幅及び下幅に基づきウィンドウ・データを生成し、メインメモリ等の記憶装置に格納する(ステップS283)。
次に、ウィンドウ生成部1232は、ウィンドウ・データに含まれる上端の文(すなわち、最も行番号が小さい文)が章又は節の見出しを表すデータを含むか判断する(ステップS285)。上端の文に章又は節の見出しを表すデータが含まれない場合(ステップS285:Noルート)、ウィンドウ生成部1232は、ウィンドウの上幅を1増加し(ステップS287)、ステップS283の処理に戻る。
一方、上端の文に章又は節の見出しを表すデータが含まれる場合(ステップS285:Yesルート)、ウィンドウ生成部1232は、ウィンドウ・データに含まれる下端の文(すなわち、最も行番号が大きい文)が章又は節の見出しを表すデータを含むか判断する(ステップS289)。下端の文に章又は節の見出しを表すデータが含まれない場合(ステップS289:Noルート)、ウィンドウ生成部1232は、ウィンドウの下幅を1増加し(ステップS291)、ステップS289の処理に戻る。
一方、下端の文に章又は節の見出しを表すデータが含まれる場合(ステップS289:Yesルート)、ウィンドウ生成部1232は、設定された上幅及び下幅でウィンドウ・データを生成し、メインメモリ等の記憶装置に格納する(ステップS293)。また、探索部1233は、入力処理詳細において、生成されたウィンドウ・データとの類似度が最も高い位置を探索し(ステップS295)、類似度が最も高い位置についてのデータを出力データ格納部125に格納する。ステップS295において行われる処理は、ステップS265において行われる処理と同様である。そして元の処理に戻る。
第2の補充位置決定処理により生成されるウィンドウ・データの一例を図41に示す。図41の例では、ウィンドウIDと、行番号と、補充すべき文の前後の文(ここでは、上幅が2、下幅が4)のデータとが格納されるようになっている。なお、図41の例では、ウィンドウ・データに含まれる下端の文を削除しているため、上端の文だけに章又は節の見出しを表すデータが含まれている。
なお、UI工程において作成される処理詳細には、一般的な文書とは異なり、比較的短い文で内容が記述されており、且つ内容の移り変わりが激しいという特徴がある。従って、ウィンドウ幅を広くしすぎると、様々な処理内容についてのデータがウィンドウ・データに含まれてしまうため、特徴が薄れてしまい、候補となる位置を絞り込むことが難しい。一方で、ウィンドウ幅を狭くしすぎると、手がかりとなるデータが不足するため、誤った位置を特定してしまうことが多くなる。そこで、大まかにウィンドウ幅を決定するのではなく、章又は節のように、1つのまとまった内容のデータをウィンドウ・データとして利用することにより、データが欠落している位置として確からしい位置が高精度で特定されるようになる。
図22の説明に戻り、出力部127は、補充文格納部117及び出力データ格納部125に格納されているデータを表示装置に出力する(ステップS215)。そして、ユーザは、補充すべき文及び補充すべき位置を確認し、必要に応じて入力処理詳細のデータを修正する等の対応を行う。
以上のような処理を実施することにより、処理詳細において欠落しているデータを補充すべき位置を高精度で特定することができるので、処理詳細の修正作業に要するコストを削減することができるようになる。
以上本技術の一実施の形態を説明したが、本技術はこれに限定されるものではない。例えば、上で説明した不整合検出装置及び修正支援装置の機能ブロック図は必ずしも実際のプログラムモジュール構成に対応するものではない。
また、上で説明した各テーブルの構成は一例であって、必ずしも上記のような構成でなければならないわけではない。さらに、処理フローにおいても、処理結果が変わらなければ処理の順番を入れ替えることも可能である。さらに、並列に実行させるようにしても良い。
例えば、上で述べた例では、ステップS59における出現部分比較処理を実施した後にステップS61における項目定義比較処理を実施しているが、この順番が逆であっても、同じ処理結果を得ることができる。
また、本実施の形態では、ステップS1において診断対象の設計書の処理詳細及び項目定義の入力を受け付け、ステップS3において入力された処理詳細及び項目定義から自立語リスト及び項目名リストを生成している。しかし、設計書DB7から診断対象の設計書の自立語リスト及び項目名リストを読み出し、ステップS5以降の処理を実施するようにしても良い。
また、上で述べた対応位置特定処理(ステップS233)においては、処理を行う度に候補リストを生成するようになっている。しかし、入力項目定義に含まれる項目名から共通項目名でないもの及び不整合項目名を除いたものを予め優先リストとして用意しておき、候補リストの代わりに用いるようにしてもよい。
また、上で述べた例では、類似設計書を使用するようにしているが、類似設計書を用いずに、例えばユーザから入力を受け付けた設計書を用いて処理を行うようにしてもよい。
また、上で述べた例では、システム開発のUI工程で作成される設計書に対して本技術を適用する例を示したが、このような設計書でなくても、文章と当該文章に含まれる項目名を定義する項目定義とを含む文書であれば本実施の形態を適用することが可能である。
なお、上で述べた不整合検出装置及び修正支援装置は、コンピュータ装置であって、図42に示すように、メモリ2501とCPU2503とハードディスク・ドライブ(HDD)2505と表示装置2509に接続される表示制御部2507とリムーバブル・ディスク2511用のドライブ装置2513と入力装置2515とネットワークに接続するための通信制御部2517とがバス2519で接続されている。オペレーティング・システム(OS:Operating System)及び本実施例における処理を実施するためのアプリケーション・プログラムは、HDD2505に格納されており、CPU2503により実行される際にはHDD2505からメモリ2501に読み出される。必要に応じてCPU2503は、表示制御部2507、通信制御部2517、ドライブ装置2513を制御して、必要な動作を行わせる。また、処理途中のデータについては、メモリ2501に格納され、必要があればHDD2505に格納される。本技術の実施例では、上で述べた処理を実施するためのアプリケーション・プログラムはコンピュータ読み取り可能なリムーバブル・ディスク2511に格納されて頒布され、ドライブ装置2513からHDD2505にインストールされる。インターネットなどのネットワーク及び通信制御部2517を経由して、HDD2505にインストールされる場合もある。このようなコンピュータ装置は、上で述べたCPU2503、メモリ2501などのハードウエアとOS及び必要なアプリケーション・プログラムとが有機的に協働することにより、上で述べたような各種機能を実現する。
以上述べた実施の形態をまとめると以下のようになる。
本実施の形態に係る不整合検出装置は、(A)文書に含まれる文章から抽出された自立語群と、当該文章に含まれる項目名及び当該項目名の定義を含む項目定義から抽出された項目名群とを文書毎に格納する文書データベースと、(B)診断対象である第1の文書の自立語群及び項目名群を格納するデータ格納部と、(C)文書データベースに格納されている各文書の自立語群と、データ格納部に格納されている自立語群との類似度を算出し、当該類似度が所定の閾値以上である文書を類似文書として特定し、特定された当該類似文書の自立語群及び項目名群を文書データベースから抽出する類似文書特定手段と、(D)データ格納部に格納されている自立語群に含まれる自立語である第1自立語に一致する項目名を、類似文書特定手段により抽出された項目名群から抽出する項目候補抽出手段と、(E)項目候補抽出手段により抽出された項目名のうち、データ格納部に格納されている項目名群に含まれていない項目名を不整合項目名として特定する不整合項目特定手段とを有する。
このように、類似文書の項目名群に含まれる項目名を用いているので、本来は項目名でない自立語を項目名として定義してしまうことを防止しつつ、未定義の項目名を高精度で特定できるようになる。また、項目名抽出のためのキーワードのパターンや学習事例等を診断対象の文書毎に用意する必要はないので、低コストである。さらに、文章と項目定義を含む文書であれば適用可能であるため、汎用性が高い。
また、上で述べた項目候補抽出手段が、第1自立語毎に、当該第1自立語と類似文書特定手段により抽出された項目名群に含まれる各項目名との類似度を算出し、算出された当該類似度が第1の閾値以上である場合には、類似度の算出に係る項目名と類似度に基づき設定される一致度とを第1自立語に対応付けて一致項目データ格納部に格納する一致項目抽出手段と、一致項目データ格納部に格納されている各第1自立語について、当該第1自立語に対応付けて格納されている項目名から、少なくとも一致度に基づき、1つの項目名を項目候補として特定する絞り込み手段とを有するようにしてもよい。1つの第1自立語に対して項目名が複数抽出されることも考えられるが、上で述べた処理を行えば、最も相応しい項目名を特定し、必要のない項目名を排除することができる。
また、上で述べた一致項目抽出手段が、算出された類似度が第1の閾値以上第2の閾値未満である場合には部分一致であることを示す一致度を設定し、算出された類似度が第2の閾値以上である場合には完全一致であることを示す一致度を設定し、上で述べた絞り込み手段が、各第1自立語について、一致度が完全一致である項目名、第1自立語に対応付けられている唯一の項目名であって一致度が部分一致である項目名、又はデータ格納部に格納されている項目名群に含まれる項目名である第1項目名のいずれかと一致する項目名を項目候補として特定するようにしてもよい。一致度が完全一致である場合はもちろん、部分一致であっても第1自立語に対応付けられている項目名が1つであり選択の余地が無い場合にも項目候補として特定するものである。また、既に第1の文書の項目定義において定義されている場合にも、当然項目候補として特定する。
また、上で述べた絞り込み手段が、第1自立語に対応付けられており且つ類似文書のうち1の類似文書である第2の文書の項目名群に含まれる項目名である第2項目名が複数ある場合には、第2の文書の自立語群に含まれる自立語である第2自立語のうち第2項目名との類似度が所定の閾値以上である第2自立語と、第2の文書の自立語群における類似部分との距離に基づき、第2項目名から1つの項目名を特定し、特定された当該項目名以外の項目名についてのデータを一致項目データ格納部から削除する出現部分比較手段と、第1自立語に対応付けられている項目名を含む項目名群が複数存在する場合には、当該項目名群の各々とデータ格納部に格納されている項目名群との類似度を算出し、算出された当該類似度が最大である項目名群に含まれる項目名を項目候補として特定する項目定義比較手段とをさらに有するようにしてもよい。これにより、一致度や第1の文書の項目名群を用いた絞り込みだけでは項目候補を特定できない場合であっても、適切に項目候補を特定することができるようになる。
また、上で述べた出現部分比較手段が、第2の文書の項目名群に含まれる項目名のうち、第1項目名のいずれかと一致する項目名を特定し、共通項目データ格納部に格納し、第2自立語毎に当該第2自立語と共通項目データ格納部に格納されている各項目名との類似度を算出し、算出された類似度に基づき、第2の文書の自立語群における類似部分を特定し、当該類似部分を特定するためのデータを生成して類似部分データ格納部に格納し、第2自立語毎に、当該第2自立語と各第2項目名との類似度を算出し、算出された当該類似度のうち最大の類似度が所定の閾値以上である場合には、類似部分を特定するためのデータを用いて、第2自立語と類似部分との距離を算出し、算出された当該距離のうち最小の距離である第1の距離を特定し、類似度の算出に係る第2項目名と特定された第1の距離とを対応付けて距離データ格納部に格納し、距離データ格納部から、対応付けられている第1の距離が最小である第2項目名を特定し、特定された第2項目名以外の第2項目名についてのデータを一致項目データ格納部から削除するようにしてもよい。類似部分に距離が近い方が第1の文書との関連性が高く、項目候補として相応しいという考え方に基づき絞り込みを行うものである。
本実施の形態に係る修正支援装置は、(A)処理に関連する項目名を定義する項目定義データ及び当該処理の内容を定義する処理詳細データを処理毎に格納するデータベースと、(B)データベースから、第1の項目定義データ及び当該第1の項目定義データに対応する第1の処理詳細データを読み出し、当該第1の項目定義データに定義されており且つ当該第1の処理詳細データに含まれていない項目名を不整合項目名として抽出する項目抽出部と、(C)データベースに格納されている処理詳細データのうち不整合項目名を含む第2の処理詳細データについて、不整合項目名が第2の処理詳細データに出現する位置を特定し、当該位置を表す位置情報を記憶装置に格納する補充データ特定部と、(D)データベースから、第1の項目定義データ及び第2の処理詳細データに対応する第2の項目定義データに共に定義されている項目名を共通項目名として抽出し、当該共通項目名が第1の処理詳細データ及び第2の処理詳細データにおいて出現する位置をそれぞれ特定し、当該位置を表す位置情報を共通項目名に対応付けて記憶装置に格納する対応位置特定部と、(E)記憶装置に格納されているデータを用いて、共通項目名のうち、第2の処理詳細データにおいて不整合項目名の直前に出現する共通項目名及び直後に出現する共通項目名を直前項目名及び直後項目名として特定する範囲特定部とを有する。
このような構成であれば、不整合項目名に関するデータが欠落している位置を高精度で絞り込むことができるので、修正作業に要するコストを削減できるようになる。
また、第2の処理詳細データから、不整合項目名の前後それぞれ特定の範囲に含まれるデータをウィンドウ・データとして抽出する処理を、特定の範囲を変化させつつ実施するウィンドウ生成部と、第1の処理詳細データにおける、直前項目名及び直後項目名で挟まれた範囲において、ウィンドウ生成部により抽出されたウィンドウ・データの各々について当該ウィンドウ・データとの類似度が最も高い位置を探索し、ウィンドウ・データの各々について検出された位置のうち類似度が最も高い位置を、不整合項目名に関するデータが欠落している位置として特定する探索部とをさらに有するようにしてもよい。このようにすれば、特定された範囲の中から、不整合項目名に関するデータが欠落している位置として最も確からしい位置を特定できるようになる。
また、第2の処理詳細データにおける不整合項目名の前後において、処理内容の区切りを表すデータをそれぞれ特定し、当該処理内容の区切りを表すデータで挟まれた範囲に含まれるデータをウィンドウ・データとして抽出するウィンドウ生成部と、第1の処理詳細データにおける、直前項目名及び直後項目名で挟まれた範囲において、ウィンドウ生成部により抽出されたウィンドウ・データとの類似度が最も高い位置を、不整合項目名に関するデータが欠落している位置として特定する探索部とをさらに有するようにしてもよい。このようにすれば、ウィンドウ・データには、不整合項目名に関連する処理内容のデータが含まれるようになるため、不整合項目名に関するデータが欠落している位置として確からしい位置が高精度で特定されるようになる。
また、上で述べた対応位置特定部は、第1の項目定義データにおいて共通項目名が出現する順序に従い、共通項目名が第1の処理詳細データにおいて出現する位置を表す位置情報と、共通項目名が第2の処理詳細データにおいて出現する位置を表す位置情報とを対応付けるようにしてもよい。このようにすれば、誤った範囲を特定してしまう可能性を低くすることができるようになる。
また、上で述べた第2の処理詳細データは、不整合項目名を含み且つ第1の処理詳細データとの類似度が高くてもよい。類似度が高い処理詳細データを利用すれば、より確からしい結果を得ることができるからである。
本実施の形態に係る不整合検出方法は、文書に含まれる文章から抽出された自立語群と当該文章に含まれる項目名及び当該項目名の定義を含む項目定義から抽出された項目名群とを文書毎に格納する文書データベースと、診断対象である第1の文書の自立語群及び項目名群を格納するデータ格納部とにアクセス可能なコンピュータにより実行される。そして、本不整合検出方法は、(A)文書データベースに格納されている各文書の自立語群と、データ格納部に格納されている自立語群との類似度を算出し、当該類似度が所定の閾値以上である文書を類似文書として特定し、特定された当該類似文書の自立語群及び項目名群を文書データベースから抽出する類似文書特定ステップと、(B)データ格納部に格納されている自立語群に含まれる自立語である第1自立語に一致する項目名を、類似文書特定ステップにおいて抽出された項目名群から抽出する項目候補抽出ステップと、(C)項目候補抽出ステップにおいて抽出された項目名のうち、データ格納部に格納されている項目名群に含まれていない項目名を不整合項目名として特定するステップとを含む。
本実施の形態に係る修正支援方法は、(A)処理に関連する項目名を定義する項目定義データ及び当該処理の内容を定義する処理詳細データを処理毎に格納するデータベースから、第1の項目定義データ及び当該第1の項目定義データに対応する第1の処理詳細データを読み出し、当該第1の項目定義データに定義されており且つ当該第1の処理詳細データに含まれていない項目名を不整合項目名として抽出するステップと、(B)データベースに格納されている処理詳細データのうち不整合項目名を含む第2の処理詳細データについて、不整合項目名が第2の処理詳細データに出現する位置を特定し、当該位置を表す位置情報を記憶装置に格納するステップと、(C)データベースから、第1の項目定義データ及び第2の処理詳細データに対応する第2の項目定義データに共に定義されている項目名を共通項目名として抽出し、当該共通項目名が第1の処理詳細データ及び第2の処理詳細データにおいて出現する位置をそれぞれ特定し、当該位置を表す位置情報を共通項目名に対応付けて記憶装置に格納するステップと、(D)記憶装置に格納されているデータを用いて、共通項目名のうち、第2の処理詳細データにおいて不整合項目名の直前に出現する共通項目名及び直後に出現する共通項目名を特定するステップとを含む。
なお、上記方法による処理をコンピュータに行わせるためのプログラムを作成することができ、当該プログラムは、例えばフレキシブルディスク、CD−ROM、光磁気ディスク、半導体メモリ、ハードディスク等のコンピュータ読み取り可能な記憶媒体又は記憶装置に格納される。尚、中間的な処理結果はメインメモリ等の記憶装置に一時保管される。
以上の実施例を含む実施形態に関し、さらに以下の付記を開示する。
(付記1)
文書に含まれる文章から抽出された自立語群と、当該文章に含まれる項目名及び当該項目名の定義を含む項目定義から抽出された項目名群とを文書毎に格納する文書データベースと、
診断対象である第1の文書の前記自立語群及び前記項目名群を格納するデータ格納部と、
前記文書データベースに格納されている各文書の自立語群と、前記データ格納部に格納されている自立語群との類似度を算出し、当該類似度が所定の閾値以上である文書を類似文書として特定し、特定された当該類似文書の自立語群及び項目名群を前記文書データベースから抽出する類似文書特定手段と、
前記データ格納部に格納されている自立語群に含まれる自立語である第1自立語に一致する項目名を、前記類似文書特定手段により抽出された項目名群から抽出する項目候補抽出手段と、
前記項目候補抽出手段により抽出された項目名のうち、前記データ格納部に格納されている項目名群に含まれていない項目名を不整合項目名として特定する不整合項目特定手段と、
を有する不整合検出装置。
(付記2)
前記項目候補抽出手段が、
前記第1自立語毎に、当該第1自立語と前記類似文書特定手段により抽出された項目名群に含まれる各項目名との類似度を算出し、算出された当該類似度が第1の閾値以上である場合には、前記類似度の算出に係る項目名と前記類似度に基づき設定される一致度とを前記第1自立語に対応付けて一致項目データ格納部に格納する一致項目抽出手段と、
前記一致項目データ格納部に格納されている各前記第1自立語について、当該第1自立語に対応付けて格納されている項目名から、少なくとも前記一致度に基づき、1つの項目名を項目候補として特定する絞り込み手段と、
を有する付記1記載の不整合検出装置。
(付記3)
前記一致項目抽出手段が、
算出された前記類似度が前記第1の閾値以上第2の閾値未満である場合には部分一致であることを示す一致度を設定し、算出された前記類似度が前記第2の閾値以上である場合には完全一致であることを示す一致度を設定し、
前記絞り込み手段が、
各前記第1自立語について、前記一致度が完全一致である項目名、前記第1自立語に対応付けられている唯一の項目名であって前記一致度が部分一致である項目名、又は前記データ格納部に格納されている項目名群に含まれる項目名である第1項目名のいずれかと一致する項目名を前記項目候補として特定する
ことを特徴とする付記2記載の不整合検出装置。
(付記4)
前記絞り込み手段が、
前記第1自立語に対応付けられており且つ前記類似文書のうち1の類似文書である第2の文書の項目名群に含まれる項目名である第2項目名が複数ある場合には、前記第2の文書の自立語群に含まれる自立語である第2自立語のうち前記第2項目名との類似度が所定の閾値以上である第2自立語と、前記第2の文書の自立語群における類似部分との距離に基づき、前記第2項目名から1つの項目名を特定し、特定された当該項目名以外の項目名についてのデータを前記一致項目データ格納部から削除する出現部分比較手段と、
前記第1自立語に対応付けられている項目名を含む項目名群が複数存在する場合には、当該項目名群の各々と前記データ格納部に格納されている項目名群との類似度を算出し、算出された当該類似度が最大である項目名群に含まれる項目名を項目候補として特定する項目定義比較手段と、
をさらに有する付記3記載の不整合検出装置。
(付記5)
前記出現部分比較手段が、
前記第2の文書の項目名群に含まれる項目名のうち、前記第1項目名のいずれかと一致する項目名を特定し、共通項目データ格納部に格納し、
前記第2自立語毎に当該第2自立語と前記共通項目データ格納部に格納されている各項目名との類似度を算出し、算出された前記類似度に基づき、前記第2の文書の自立語群における類似部分を特定し、当該類似部分を特定するためのデータを生成して類似部分データ格納部に格納し、
前記第2自立語毎に、当該第2自立語と各前記第2項目名との類似度を算出し、算出された当該類似度のうち最大の類似度が所定の閾値以上である場合には、前記類似部分を特定するためのデータを用いて、前記第2自立語と前記類似部分との距離を算出し、算出された当該距離のうち最小の距離である第1の距離を特定し、前記類似度の算出に係る第2項目名と特定された前記第1の距離とを対応付けて距離データ格納部に格納し、
前記距離データ格納部から、対応付けられている前記第1の距離が最小である第2項目名を特定し、特定された前記第2項目名以外の第2項目名についてのデータを前記一致項目データ格納部から削除する
ことを特徴とする付記4記載の不整合検出装置。
(付記6)
文書に含まれる文章から抽出された自立語群と当該文章に含まれる項目名及び当該項目名の定義を含む項目定義から抽出された項目名群とを文書毎に格納する文書データベースに格納されている各文書の自立語群と、診断対象である第1の文書の前記自立語群及び前記項目名群を格納するデータ格納部に格納されている自立語群との類似度を算出し、当該類似度が所定の閾値以上である文書を類似文書として特定し、特定された当該類似文書の自立語群及び項目名群を前記文書データベースから抽出する類似文書特定ステップと、
前記データ格納部に格納されている自立語群に含まれる自立語である第1自立語に一致する項目名を、前記類似文書特定ステップにおいて抽出された項目名群から抽出する項目候補抽出ステップと、
前記項目候補抽出ステップにおいて抽出された項目名のうち、前記データ格納部に格納されている項目名群に含まれていない項目名を不整合項目名として特定するステップと、
をコンピュータに実行させるための不整合検出プログラム。
(付記7)
文書に含まれる文章から抽出された自立語群と当該文章に含まれる項目名及び当該項目名の定義を含む項目定義から抽出された項目名群とを文書毎に格納する文書データベースと、診断対象である第1の文書の前記自立語群及び前記項目名群を格納するデータ格納部とにアクセス可能なコンピュータにより実行される不整合検出方法であって、
前記文書データベースに格納されている各文書の自立語群と、前記データ格納部に格納されている自立語群との類似度を算出し、当該類似度が所定の閾値以上である文書を類似文書として特定し、特定された当該類似文書の自立語群及び項目名群を前記文書データベースから抽出する類似文書特定ステップと、
前記データ格納部に格納されている自立語群に含まれる自立語である第1自立語に一致する項目名を、前記類似文書特定ステップにおいて抽出された項目名群から抽出する項目候補抽出ステップと、
前記項目候補抽出ステップにおいて抽出された項目名のうち、前記データ格納部に格納されている項目名群に含まれていない項目名を不整合項目名として特定するステップと、
を含む不整合検出方法。
(付記8)
処理に関連する項目名を定義する項目定義データ及び当該処理の内容を定義する処理詳細データを処理毎に格納するデータベースと、
前記データベースから、第1の項目定義データ及び当該第1の項目定義データに対応する第1の処理詳細データを読み出し、当該第1の項目定義データに定義されており且つ当該第1の処理詳細データに含まれていない項目名を不整合項目名として抽出する項目抽出部と、
前記データベースに格納されている処理詳細データのうち前記不整合項目名を含む第2の処理詳細データについて、前記不整合項目名が前記第2の処理詳細データに出現する位置を特定し、当該位置を表す位置情報を記憶装置に格納する補充データ特定部と、
前記データベースから、前記第1の項目定義データ及び前記第2の処理詳細データに対応する第2の項目定義データに共に定義されている項目名を共通項目名として抽出し、当該共通項目名が前記第1の処理詳細データ及び前記第2の処理詳細データにおいて出現する位置をそれぞれ特定し、当該位置を表す位置情報を前記共通項目名に対応付けて前記記憶装置に格納する対応位置特定部と、
前記記憶装置に格納されているデータを用いて、前記共通項目名のうち、前記第2の処理詳細データにおいて前記不整合項目名の直前に出現する共通項目名及び直後に出現する共通項目名を直前項目名及び直後項目名として特定する範囲特定部と、
を有する修正支援装置。
(付記9)
前記第2の処理詳細データから、前記不整合項目名の前後それぞれ特定の範囲に含まれるデータをウィンドウ・データとして抽出する処理を、前記特定の範囲を変化させつつ実施するウィンドウ生成部と、
前記第1の処理詳細データにおける、前記直前項目名及び前記直後項目名で挟まれた範囲において、前記ウィンドウ生成部により抽出された前記ウィンドウ・データの各々について当該ウィンドウ・データとの類似度が最も高い位置を探索し、前記ウィンドウ・データの各々について検出された位置のうち類似度が最も高い位置を、前記不整合項目名に関するデータが欠落している位置として特定する探索部と、
をさらに有する付記8記載の修正支援装置。
(付記10)
前記第2の処理詳細データにおける前記不整合項目名の前後において、処理内容の区切りを表すデータをそれぞれ特定し、当該処理内容の区切りを表すデータで挟まれた範囲に含まれるデータをウィンドウ・データとして抽出するウィンドウ生成部と、
前記第1の処理詳細データにおける、前記直前項目名及び前記直後項目名で挟まれた範囲において、前記ウィンドウ生成部により抽出された前記ウィンドウ・データとの類似度が最も高い位置を、前記不整合項目名に関するデータが欠落している位置として特定する探索部と、
をさらに有する付記8記載の修正支援装置。
(付記11)
前記対応位置特定部は、
前記第1の項目定義データにおいて前記共通項目名が出現する順序に従い、前記共通項目名が前記第1の処理詳細データにおいて出現する位置を表す位置情報と、前記共通項目名が前記第2の処理詳細データにおいて出現する位置を表す位置情報とを対応付ける
ことを特徴とする付記8乃至10記載の修正支援装置。
(付記12)
前記第2の処理詳細データは、前記不整合項目名を含み且つ前記第1の処理詳細データとの類似度が高い
ことを特徴とする付記8乃至11記載の修正支援装置。
(付記13)
処理に関連する項目名を定義する項目定義データ及び当該処理の内容を定義する処理詳細データを処理毎に格納するデータベースから、第1の項目定義データ及び当該第1の項目定義データに対応する第1の処理詳細データを読み出し、当該第1の項目定義データに定義されており且つ当該第1の処理詳細データに含まれていない項目名を不整合項目名として抽出するステップと、
前記データベースに格納されている処理詳細データのうち前記不整合項目名を含む第2の処理詳細データについて、前記不整合項目名が前記第2の処理詳細データに出現する位置を特定し、当該位置を表す位置情報を記憶装置に格納するステップと、
前記データベースから、前記第1の項目定義データ及び前記第2の処理詳細データに対応する第2の項目定義データに共に定義されている項目名を共通項目名として抽出し、当該共通項目名が前記第1の処理詳細データ及び前記第2の処理詳細データにおいて出現する位置をそれぞれ特定し、当該位置を表す位置情報を前記共通項目名に対応付けて前記記憶装置に格納する対応位置特定ステップと、
前記記憶装置に格納されているデータを用いて、前記共通項目名のうち、前記第2の処理詳細データにおいて前記不整合項目名の直前に出現する共通項目名及び直後に出現する共通項目名を直前項目名及び直後項目名として特定するステップと、
を含み、コンピュータにより実行される修正支援方法。
(付記14)
前記第2の処理詳細データから、前記不整合項目名の前後それぞれ特定の範囲に含まれるデータをウィンドウ・データとして抽出する処理を、前記特定の範囲を変化させつつ実施するウィンドウ生成ステップと、
前記第1の処理詳細データにおける、前記直前項目名及び前記直後項目名で挟まれた範囲において、前記ウィンドウ生成ステップにおいて抽出された前記ウィンドウ・データの各々について当該ウィンドウ・データとの類似度が最も高い位置を探索し、前記ウィンドウ・データの各々について検出された位置のうち類似度が最も高い位置を、前記不整合項目名に関するデータが欠落している位置として特定するステップと、
をさらに含む付記13記載の修正支援方法。
(付記15)
前記第2の処理詳細データにおける前記不整合項目名の前後において、処理内容の区切りを表すデータをそれぞれ特定し、当該処理内容の区切りを表すデータで挟まれた範囲に含まれるデータをウィンドウ・データとして抽出するウィンドウ生成ステップと、
前記第1の処理詳細データにおける、前記直前項目名及び前記直後項目名で挟まれた範囲において、前記ウィンドウ生成ステップにおいて抽出された前記ウィンドウ・データとの類似度が最も高い位置を、前記不整合項目名に関するデータが欠落している位置として特定するステップと、
をさらに含む付記13記載の修正支援方法。
(付記16)
前記対応位置特定ステップが、
前記第1の項目定義データにおいて前記共通項目名が出現する順序に従い、前記共通項目名が前記第1の処理詳細データにおいて出現する位置を表す位置情報と、前記共通項目名が前記第2の処理詳細データにおいて出現する位置を表す位置情報とを対応付けるステップ
を含む付記13乃至15記載の修正支援方法。
(付記17)
前記第2の処理詳細データは、前記不整合項目名を含み且つ前記第1の処理詳細データとの類似度が高い
ことを特徴とする付記13乃至16記載の修正支援方法。
(付記18)
処理に関連する項目名を定義する項目定義データ及び当該処理の内容を定義する処理詳細データを処理毎に格納するデータベースから、第1の項目定義データ及び当該第1の項目定義データに対応する第1の処理詳細データを読み出し、当該第1の項目定義データに定義されており且つ当該第1の処理詳細データに含まれていない項目名を不整合項目名として抽出するステップと、
前記データベースに格納されている処理詳細データのうち前記不整合項目名を含む第2の処理詳細データについて、前記不整合項目名が前記第2の処理詳細データに出現する位置を特定し、当該位置を表す位置情報を記憶装置に格納するステップと、
前記データベースから、前記第1の項目定義データ及び前記第2の処理詳細データに対応する第2の項目定義データに共に定義されている項目名を共通項目名として抽出し、当該共通項目名が前記第1の処理詳細データ及び前記第2の処理詳細データにおいて出現する位置をそれぞれ特定し、当該位置を表す位置情報を前記共通項目名に対応付けて前記記憶装置に格納する対応位置特定ステップと、
前記記憶装置に格納されているデータを用いて、前記共通項目名のうち、前記第2の処理詳細データにおいて前記不整合項目名の直前に出現する共通項目名及び直後に出現する共通項目名を直前項目名及び直後項目名として特定するステップと、
を、コンピュータに実行させるための修正支援プログラム。
(付記19)
前記第2の処理詳細データから、前記不整合項目名の前後それぞれ特定の範囲に含まれるデータをウィンドウ・データとして抽出する処理を、前記特定の範囲を変化させつつ実施するウィンドウ生成ステップと、
前記第1の処理詳細データにおける、前記直前項目名及び前記直後項目名で挟まれた範囲において、前記ウィンドウ生成ステップにおいて抽出された前記ウィンドウ・データの各々について当該ウィンドウ・データとの類似度が最も高い位置を探索し、前記ウィンドウ・データの各々について検出された位置のうち類似度が最も高い位置を、前記不整合項目名に関するデータが欠落している位置として特定するステップと、
を、さらにコンピュータに実行させるための付記18記載の修正支援プログラム。
(付記20)
前記第2の処理詳細データにおける前記不整合項目名の前後において、処理内容の区切りを表すデータをそれぞれ特定し、当該処理内容の区切りを表すデータで挟まれた範囲に含まれるデータをウィンドウ・データとして抽出するウィンドウ生成ステップと、
前記第1の処理詳細データにおける、前記直前項目名及び前記直後項目名で挟まれた範囲において、前記ウィンドウ生成ステップにおいて抽出された前記ウィンドウ・データとの類似度が最も高い位置を、前記不整合項目名に関するデータが欠落している位置として特定するステップと、
を、さらにコンピュータに実行させるための付記18記載の修正支援プログラム。
(付記21)
前記対応位置特定ステップが、
前記第1の項目定義データにおいて前記共通項目名が出現する順序に従い、前記共通項目名が前記第1の処理詳細データにおいて出現する位置を表す位置情報と、前記共通項目名が前記第2の処理詳細データにおいて出現する位置を表す位置情報とを対応付けるステップ
を含む付記18乃至20記載の修正支援プログラム。
(付記22)
前記第2の処理詳細データは、前記不整合項目名を含み且つ前記第1の処理詳細データとの類似度が高い
ことを特徴とする付記18乃至21記載の修正支援プログラム。