以下、図面に基づいて、本願の開示する項目名対応付け処理方法、項目名対応付け処理プログラム及び情報処理装置の実施例を詳細に説明する。なお、本実施例により、開示技術が限定されるものではない。また、以下の実施例は、矛盾しない範囲で適宜組みあわせてもよい。
図1は、実施例の情報処理装置の構成の一例を示すブロック図である。図1に示す情報処理装置100は、表形式データから複数の項目名を抽出する。また、情報処理装置100は、複数の項目群が記憶された記憶部を参照して、抽出した複数の項目名のそれぞれと所定の類似関係を有する項目名がどの項目群に含まれるか否か判定する。また、情報処理装置100は、複数の項目名のうち、肯定的な判定結果が得られた項目名については、所定の類似関係を有する項目名を対応付け対象として選択する。また、情報処理装置100は、否定的な判定結果が得られた項目名については、他の項目名と所定の類似関係を有する項目名が含まれると判定された項目群を対応付け候補として提示する。これにより、情報処理装置100は、項目名を標準化したボキャブラリに対応付けできる。なお、以下の説明では、主に行方向に着目して説明するが、列方向についても同様に適用可能である。
図1に示す情報処理装置100は、通信部110と、表示部111と、操作部112と、記憶部120と、制御部130とを有する。なお、情報処理装置100は、図1に示す機能部以外にも既知のコンピュータが有する各種の機能部、例えば各種の通信デバイス、入力デバイスや音声出力デバイス等の機能部を有することとしてもかまわない。情報処理装置100の一例としては、サーバ等の据置型のコンピュータを採用できる。情報処理装置100には、上記のサーバ等の据置型のコンピュータのみならず、可搬型や据置型のパーソナルコンピュータを情報処理装置100として採用することもできる。
通信部110は、例えば、NIC(Network Interface Card)等によって実現される。通信部110は、図示しないネットワークを介して図示しないユーザの端末装置と有線又は無線で接続され、端末装置との間で情報の通信を司る通信インタフェースである。通信部110は、端末装置から表形式データと、選択情報とを受信する。通信部110は、受信した表形式データと、選択情報とを制御部130に出力する。また、通信部110は、制御部130から割当画面が入力される。通信部110は、入力された割当画面を端末装置に送信する。
ここで、図2を用いて表形式データについて説明する。図2は、表形式データ及び表データの一例を示す図である。図2に示す表形式データ11は、例えば、複数の表データ12a、12bと、表形式データ11のタイトル等を含むデータである。なお、以下の説明では、例えば1つのファイル全体のデータを表形式データと表現し、表形式データ内の個々の表を表データと表現する。表形式データ11には、例えば、最上段の行に項目(ヘッダ)がある表データ、最上段の行と最左列の列に項目がある表データ、小項目を表すためにセルが連結されて項目行が2行に渡る表データ等が含まれる。なお、表データは、これらに限定されず、行列の形で表すことができるデータであれば、どのようなデータでもよい。また、表形式データは、例えば、官公庁や自治体から提供されるオープンデータを用いることができる。
図1の説明に戻って、表示部111は、各種情報を表示するための表示デバイスである。表示部111は、例えば、表示デバイスとして液晶ディスプレイ等によって実現される。表示部111は、制御部130から入力された表示画面等の各種画面を表示する。
操作部112は、情報処理装置100の管理者から各種操作を受け付ける入力デバイスである。操作部112は、例えば、入力デバイスとして、キーボードやマウス等によって実現される。操作部112は、管理者によって入力された操作を操作情報として制御部130に出力する。なお、操作部112は、入力デバイスとして、タッチパネル等によって実現されるようにしてもよく、表示部111の表示デバイスと、操作部112の入力デバイスとは、一体化されるようにしてもよい。
記憶部120は、例えば、RAM(Random Access Memory)、フラッシュメモリ(Flash Memory)等の半導体メモリ素子、ハードディスクや光ディスク等の記憶装置によって実現される。記憶部120は、情報データベース121と、ボキャブラリデータベース122と、履歴データベース123とを有する。なお、以下の説明では、データベースをDBと省略して表現する。また、記憶部120は、制御部130での処理に用いる情報を記憶する。
情報DB121は、表データについて、項目と値とボキャブラリとを対応付けて記憶する。図3は、情報DBの一例を示す図である。図3に示すように、情報DB121は、「行」、「項目」、「値」、「標準化ボキャブラリ」、「グループ」といった項目を有する。情報DB121は、例えば、表データを構成するセルごとに1レコードとして記憶する。
「行」は、データが入力されているセルの行、つまりデータ行数を示す情報である。「項目」は、セルに対応する項目、つまり項目名を示す情報である。「値」は、セルに格納されているデータを示す情報である。「標準化ボキャブラリ」は、当該項目、つまり項目名に対応付けられた標準化ボキャブラリを示す情報である。「グループ」は、標準化ボキャブラリの属するグループを示す情報である。なお、グループは、項目群ともいう。図3の1行目の例では、表データの「1」行目の項目「x1」の値は「y1」となり、項目「x1」に対応付けられた標準化ボキャブラリは「B01」、グループは「G02」である。なお、図3の説明では、項目、値、標準化ボキャブラリ及びグループは、簡単のために記号と数字とで表しているが、実際には具体的な文字等が入る。例えば、あるレコードには、項目「住所」と、値「東京都・・・」と、標準化ボキャブラリ「住所」と、グループ「共通」とが対応付けられて記憶される。
図1の説明に戻って、ボキャブラリDB122は、標準化ボキャブラリをグループごとに記憶する。図4Aは、ボキャブラリDBの一例を示す図である。図4Aは、標準化ボキャブラリのうち、全業種で共通する共通ボキャブラリを記憶するグループを示す。図4Aに示すように、ボキャブラリDB122の共通ボキャブラリグループ122aは、例えば、グループ名「共通ボキャブラリグループ」とともに、「タイトル」、「説明文」といった全業種で共通するボキャブラリを記憶する。なお、グループ名は省略して「共通」としてもよい。また、ボキャブラリDB122は、既存のデータベースがあれば、当該データベースを取り込んで用いてもよいし、既存のデータベースがなければ、新規に生成するようにしてもよい。
図4Bは、ボキャブラリDBの一例を示す図である。図4Bは、標準化ボキャブラリのうち、業種ごとのボキャブラリを記憶するグループの一例である医薬品ボキャブラリグループを示す。図4Bに示すように、ボキャブラリDB122の医薬品ボキャブラリグループ122bは、例えば、グループ名「医薬品ボキャブラリグループ」とともに、「薬の名称」、「個別医薬品コード」といった医薬品に関して共通するボキャブラリを記憶する。なお、グループ名は省略して「医薬品」としてもよい。
図4Cは、ボキャブラリDBの一例を示す図である。図4Cは、標準化ボキャブラリのうち、業種ごとのボキャブラリを記憶するグループの一例である取引ボキャブラリグループを示す。図4Cに示すように、ボキャブラリDB122の取引ボキャブラリグループ122cは、例えば、グループ名「取引ボキャブラリグループ」とともに、「取引の債権者」、「取引の債務者」といった取引に関して共通するボキャブラリを記憶する。なお、グループ名は省略して「取引」としてもよい。また、共通ボキャブラリグループ122a、医薬品ボキャブラリグループ122b及び取引ボキャブラリグループ122cは、所定の項目群の一例である。
図1の説明に戻って、履歴DB123は、過去に手動判定で対応付けが行われた履歴を記憶する。図5は、履歴DBの一例を示す図である。図5に示すように、履歴DB123は、「項目名」、「標準化ボキャブラリ」、「グループ」といった項目を有する。履歴DB123は、例えば、項目名ごとに1レコードとして記憶する。言い換えると、履歴DB123は、採用された候補と否定的な判定結果が得られた項目名との対応関係を記憶する。なお、履歴DB123は、全てのユーザの履歴を用いることで、より適切な標準化ボキャブラリを提示させることができる。
「項目名」は、表形式データから抽出され、手動判定が行われた項目名を示す情報である。「標準化ボキャブラリ」は、手動判定が行われた結果、採用された標準化ボキャブラリを示す情報である。「グループ」は、標準化ボキャブラリが属するグループを示す情報である。図5の1行目の例では、項目名「TEL」に対して、グループ「共通」に属する標準化ボキャブラリ「電話番号」が手動判定にて採用されたことを示す。
図1の説明に戻って、制御部130は、例えば、CPU(Central Processing Unit)やMPU(Micro Processing Unit)等によって、内部の記憶装置に記憶されているプログラムがRAMを作業領域として実行されることにより実現される。また、制御部130は、例えば、ASIC(Application Specific Integrated Circuit)やFPGA(Field Programmable Gate Array)等の集積回路により実現されるようにしてもよい。
制御部130は、判定部131と、抽出部132と、編集部133と、カウント部134と、生成部135と、検出部136と、特定部137と、記憶制御部138とを有する。また、制御部130は、項目群判定部139と、提示部140と、対応関係記憶制御部141と有し、以下に説明する情報処理の機能や作用を実現又は実行する。なお、制御部130の内部構成は、図1に示した構成に限られず、後述する情報処理を行う構成であれば他の構成であってもよい。
判定部131は、通信部110から表形式データが入力されると、入力された表形式データの各行又は各列について、データが入力されたセルの有無を判定する。すなわち、判定部131は、表形式データのデータ入力セルの有無を判定する。判定部131は、表形式データ及び判定結果を抽出部132に出力する。
抽出部132は、判定部131から表形式データ及び判定結果が入力されると、判定結果に基づいて、表形式データから、データが入力されたセルが存在する複数の連続する行又は列の塊を1つの表データに関連する部分として抽出する。すなわち、抽出部132は、データが入力されたセルが存在しない1又は複数の連続する行又は列を挟んで、データが入力されたセルが存在する1又は複数の連続する行又は列の塊を2つ検出すると、該2つの塊のそれぞれを異なる表データとして抽出する。抽出部132は、表データを抽出すると、抽出した表データを第1表データとして編集部133及び生成部135に出力する。また、抽出部132は、第1表データを記憶部120に記憶する。
ここで、図6及び図7を用いて表データの抽出について説明する。図6は、表データの抽出の一例を示す図である。図6は、表データが縦方向に複数存在する場合の一例である。図6の例では、表形式データ13について、各行のデータ入力数14を検出する。例えば、表形式データ13では、1行目は表形式データ13のタイトルが1つのセルに入力されているので、データ入力数14は「1」となる。また、2行目は、データが入力されているセルがないので、データ入力数14は「0」となる。以下同様に、各行のデータ入力数14を検出する。
抽出部132は、データ入力数14が「0」である行を表データの切れ目と判定し、表形式データ13を切れ目で分割する。なお、以下の説明では、分割された表データに関する部分である塊をクラスタともいう。表形式データ13は、クラスタ15と、クラスタ16と、クラスタ17とに分割される。クラスタ15は、表形式データ13のタイトルである。クラスタ16は、1つ目の表データである。クラスタ17は、2つ目の表データである。抽出部132は、クラスタ16及びクラスタ17を第1表データとして抽出する。なお、抽出された第1表データは、例えばメモリ上で二次元配列等を用いて表形式に展開される。また、以下の説明において、第1表データに基づく各表データも同様である。
図7は、表データの抽出の他の一例を示す図である。図7は、表データが横方向に複数存在する場合の一例である。図7の例では、表形式データ18について、各列のデータ入力数19を検出する。例えば、表形式データ18では、1列目はデータが入力されているセルがないので、データ入力数19は「0」となる。また、2列目は、1行目に表形式データ18のタイトル、2行目に「a」、3行目に「1」、4行目に「1」が入力されているので、データ入力数19は「4」となる。以下同様に、各列のデータ入力数19を検出する。
抽出部132は、データ入力数19が「0」である列を表データの切れ目と判定し、表形式データ18を切れ目で分割する。表形式データ18は、クラスタ20と、クラスタ21とに分割される。クラスタ20は、1つ目の表データである。クラスタ21は、2つ目の表データである。抽出部132は、クラスタ20及びクラスタ21を第1表データとして抽出する。なお、クラスタ20は、クラスタ21と比べて、5行目にデータ入力セルがないが、5行目に空文字を付加して表の大きさを揃えている。
図1の説明に戻って、編集部133は、抽出部132から第1表データが入力されると、入力された第1表データに対して編集処理を実行する。編集部133は、まず、第1表データのうち、タイトルのセルを除く表を構成するセルの中で、最も上側の行又は最も左側の列を項目行又は項目列と仮に決定する。なお、タイトルのセルは、第1表データの中で、抽出部132で用いたデータ入力数が「1」である最も上側又は最も左側の行又は列として判定できる。編集部133は、仮に決定した項目行又は項目列にセル連結処理が施された特定のセルが含まれる場合には、特定のセルを単位セルに分割する。また、編集部133は、分割された単位セルのそれぞれに特定のセルに入力されたデータと同じデータを入力する。編集部133は、編集処理を完了した表データを第2表データとしてカウント部134及び生成部135に出力する。また、編集部133は、仮に決定した項目行又は項目列にセル連結処理が施された特定のセルが含まれない場合には、入力された第1表データをそのまま第2表データとしてカウント部134及び生成部135に出力する。
ここで、図8から図11を用いて編集処理について説明する。図8は、編集処理の一例を示す図である。図8の例では、第1表データ22の1行目にセル連結処理が施されたセルが含まれている。つまり、値「a」、「b」のセルが、セル連結処理が施された特定のセルである。編集部133は、特定のセルを単位セルに分割し、値「a」、「b」を、分割された単位セルのそれぞれに入力する。編集部133は、編集処理を完了した第2表データ23をカウント部134及び生成部135に出力する。
図9は、編集処理の他の一例を示す図である。図9の例では、図8の例と同様に、第1表データ24のセル連結処理が施された特定のセルの値「a」、「b」を、分割された単位セルのそれぞれに入力して第2表データ25としている。
図10は、編集処理の他の一例を示す図である。図10の例では、第1表データ26の1列目にセル連結処理が施されたセルが含まれている。つまり、値「g」、「h」のセルが、セル連結処理が施された特定のセルである。編集部133は、特定のセルを単位セルに分割し、値「g」、「h」を、分割された単位セルのそれぞれに入力する。編集部133は、編集処理を完了した第2表データ27をカウント部134及び生成部135に出力する。すなわち、編集部133は、行方向のセル連結処理が施された特定のセルと、列方向のセル連結処理が施された特定のセルとを単位セルに分割し、分割された単位セルのそれぞれに特定のセルの値を入力する。
図11は、項目行ではない行におけるセルの連結解除の一例を示す図である。図11の例では、第1表データ28の最終行、つまり4行目にセル連結処理が施されたセルが含まれている。つまり、値「100」のセルが、セル連結処理が施された特定のセルである。編集部133は、第1表データ28の最終行が項目行ではないので、特定のセルを単位セルに分割し、値「100」を分割した単位セルのうち1つのセルに入力する。編集部133は、編集処理を完了した第2表データ29をカウント部134及び生成部135に出力する。なお、図11の例では、1行目のセルの連結処理の解除の説明は省略している。なお、項目行ではない行におけるセルの連結解除は、特定部137において項目行又は項目列が特定された後に行ってもよい。
図1の説明に戻って、カウント部134は、編集部133から第2表データが入力されると、第2表データのうち、データが入力されたセルの数を行ごと又は列ごとにカウントする。すなわち、カウント部134は、行又は列の塊のうち、データが入力されたセルの数を行ごと又は列ごとにカウントする。カウント部134は、行ごと又は列ごとにカウントしたセルの数をカウント値として検出部136に出力する。
生成部135には、抽出部132から第1表データが入力され、編集部133から第2表データが入力される。生成部135は、まず、入力された第1表データのうち、タイトルのセルを除く表を構成するセルの中で、最も上側の行又は最も左側の列を項目行又は項目列と仮に決定する。なお、タイトルのセルは、編集部133と同様に判定できる。生成部135は、仮に決定した項目行又は項目列にセル連結処理が施された特定のセルが含まれる場合には、特定のセルを含む範囲を連続する複数の項目行又は連続する複数の項目列と仮に決定する。すなわち、生成部135は、特定のセルを分割したそれぞれの単位セルが含まれる行又は列と、当該行又は列の下側又は右側に隣接する行又は列とを、連続する複数の項目行又は連続する複数の項目列と仮に決定する。
生成部135は、連続する複数の項目行又は連続する複数の項目列を仮に決定すると、編集部133から入力された第2表データに対して、項目名の生成を実行する。すなわち、生成部135は、仮に決定した連続する複数の項目行若しくは連続する複数の項目列について、同じ列若しくは同じ列のセルを含む連結セルの値、又は、同じ行若しくは同じ行のセルを含む連結セルの値を合成した値を項目名として生成する。なお、連結セルは、セル連結処理が施された特定のセルのことである。生成部135は、生成した項目名を適用した第2表データを第3表データとして検出部136に出力する。生成部135は、仮に決定した項目行又は項目列にセル連結処理が施された特定のセルが含まれない場合には、入力された第2表データをそのまま第3表データとして検出部136に出力する。
ここで、図12及び図13を用いて項目名の生成について説明する。図12は、項目名の生成の一例を示す図である。図12の例では、生成部135は、第1表データ30について、1行目及び2行目を項目行、並びに、1列目及び2列目を項目列と仮に決定する。次に、生成部135は、1行目及び2行目において、同じ列若しくは同じ列のセルを含む連結セルの値を合成した値を、項目行のそれぞれの項目名として生成する。なお、合成した値は、セル連結処理が施された特定のセルについてセル連結処理が解除された図示しない第2表データに基づいて生成される。生成部135は、例えば、第1表データ30の1行3列の「b」と、2行3列の「f」とを合成した「b/f」を、第3表データ31の1行2列の項目名として生成する。
また、生成部135は、1列目及び2列目において、同じ行若しくは同じ行のセルを含む連結セルの値を合成した値を、項目列のそれぞれの項目名として生成する。生成部135は、例えば、第1表データ30の3行1列の「j」と、3行2列の「m」とを合成した「j/m」を、第3表データ31の2行1列の項目名として生成する。なお、第1表データ30では、1行1列、1行2列、2行1列及び2行2列の4つのセルは連結されて値が「a」であるので、第3表データ31では、1行1列の項目名を「a」としている。
図13は、項目名の生成の他の一例を示す図である。図13の例では、生成部135は、第1表データ32について、1行目及び2行目を項目行と仮に決定する。次に、生成部135は、1行目及び2行目において、同じ列若しくは同じ列のセルを含む連結セルの値を合成した値を、項目行のそれぞれの項目名として生成する。なお、合成した値は、セル連結処理が施された特定のセルについてセル連結処理が解除された図示しない第2表データに基づいて生成される。生成部135は、例えば、第1表データ32の1行1列の「a」と、2行1列の「d」とを合成した「a/d」を、第3表データ33の1行1列の項目名として生成する。また、生成部135は、例えば、第1表データ32の1行2列の「a」と、2行2列の「e」とを合成した「a/e」を、第3表データ33の1行2列の項目名として生成する。
図1の説明に戻って、検出部136には、カウント部134からカウント値が入力され、生成部135から第3表データが入力される。検出部136は、入力された第3表データに対して、入力されたカウント値が最大の行又は列のうち、最も上側の行又は最も左側の列を検出する。検出部136は、検出された最も上側の行又は最も左側の列を検出結果として、カウント値及び第3表データとともに特定部137に出力する。
特定部137には、検出部136から検出結果、カウント値及び第3表データが入力される。特定部137は、カウント値及び第3表データに基づいて、カウント値が最大の行又は列のうち、最も上側の行又は最も左側の列を表の項目を示す行又は列として特定する。すなわち、特定部137は、項目行又は項目列を特定する。特定部137は、特定が完了した第3表データを第4表データとする。特定部137は、特定した項目行又は項目列と、第4表データとを記憶制御部138に出力する。
また、特定部137は、検出結果、カウント値及び第3表データに基づいて、項目行又は項目列を特定してもよい。特定部137は、検出した最も上側の行に隣接する下側の行に対応するカウント値が最大でない場合に、最も上側の行を表の項目を示す行として特定する。又は、特定部137は、検出した最も左側の列に隣接する右側の列に対応するカウント値が最大でない場合に、最も左側の列を表の項目を示す列として特定する。すなわち、特定部137は、項目行又は項目列を特定する。特定部137は、特定が完了した第3表データを第4表データとする。特定部137は、特定した項目行又は項目列と、第4表データとを記憶制御部138に出力する。
さらに、特定部137は、複数行が同じカウント値である場合に、非数値データが入力されたセルの割合に基づいて、項目行又は項目列を特定してもよい。特定部137は、検出した最も上側の行を含み連続する複数行が同じカウント値である場合に、複数行について行内のセルのうち非数値データが入力されたセルの割合に基づいて、項目を示す行を特定する。又は、特定部137は、検出した最も左側の列を含み連続する複数列が同じカウント値である場合に、複数列について列内のセルのうち非数値データが入力されたセルの割合に基づいて、項目を示す列として特定する。すなわち、特定部137は、項目行又は項目列を特定する。特定部137は、特定が完了した第3表データを第4表データとする。特定部137は、特定した項目行又は項目列と、第4表データとを記憶制御部138に出力する。
また、特定部137は、編集部133で仮に決定された項目行又は項目列を採用して項目行又は項目列を特定してもよい。さらに、特定部137は、生成部135で仮に決定された連続する複数の項目行又は連続する複数の項目列を採用して、項目行又は項目列を特定してもよい。特定部137は、特定が完了した第3表データを第4表データとする。特定部137は、特定した項目行又は項目列と、第4表データとを記憶制御部138に出力する。
また、特定部137は、第3表データが、項目行又は項目列が存在しない表である場合に、最も上側の行又は最も左側の列を項目行又は項目列とみなして項目行又は項目列を特定してもよい。特定部137は、カウント値が最大の行又は列のうち、最も上側の行又は最も左側の列が、入力されたデータが項目名ではないセルを含む場合であっても、最も上側の行又は最も左側の列を、項目行又は項目列として特定する。特定部137は、特定が完了した第3表データを第4表データとする。特定部137は、特定した項目行又は項目列と、第4表データとを記憶制御部138に出力する。
さらに、特定部137は、入力されたデータが重複するセルを含む場合に、新たな項目行又は項目列を追加してもよい。特定部137は、カウント値が最大の行又は列のうち、最も上側の行又は最も左側の列が、入力されたデータが重複するセルを含む場合に、最も上側の行のさらに上側又は最も左側の列のさらに左側に新たな行又は列を追加する。特定部137は、追加した行又は列を項目行又は項目列として特定する。特定部137は、新たな行又は列が追加されて特定が完了した第3表データを第4表データとする。特定部137は、特定した項目行又は項目列と、第4表データとを記憶制御部138に出力する。
また、特定部137は、最も上側の行又は最も左側の列が空白のセルを含む場合に、新たな項目行又は項目列を追加してもよい。なお、空白のセルは、空文字(NULL)で表される。特定部137は、カウント値が最大の行又は列のうち、最も上側の行又は最も左側の列が、空白のセルを含む場合に、最も上側の行のさらに上側又は最も左側の列のさらに左側に新たな行又は列を追加する。特定部137は、追加した行又は列を項目行又は項目列として特定する。特定部137は、新たな行又は列が追加されて特定が完了した第3表データを第4表データとする。特定部137は、特定した項目行又は項目列と、第4表データとを記憶制御部138に出力する。
ここで、図14から図22を用いて、項目行の特定について説明する。図14は、項目行の特定の一例を示す図である。図14の例は、カウント値が最大の行が1つの場合に、項目行を特定する場合である。第3表データ34は、カウント値35を見ると、2行目が「5」であり最大である。特定部137は、2行目に隣接する下側の行である3行目のカウント値が「4」であり最大でないので、2行目を項目行と特定する。
図15は、項目行の特定の他の一例を示す図である。図15の例は、カウント値が最大の行が複数の場合に、項目行を特定する場合である。第3表データ37は、カウント値38を見ると、2行目及び5行目が「5」であり最大である。特定部137は、カウント値が最大の行のうち、最も上側の行である2行目を項目行と特定する。
図16は、項目行の特定の他の一例を示す図である。図16の例は、非数値データが入力されたセルの割合に基づいて、項目行を特定する場合である。第3表データ41は、カウント値42を見ると、2行目及び3行目が「5」であり最大である。なお、他の行のカウント値42は省略している。また、第3表データ41は、非数値データが入力されたセルの割合43は、2行目が100%、3行目が40%である。特定部137は、2行目に隣接する3行目の当該割合が、例えば50%以上であるか否かを判定する。特定部137は、3行目の当該割合が40%であるので、3行目は項目行でないと判定し、2行目を項目行と特定する。
図17は、項目行の特定の他の一例を示す図である。図17の例は、非数値データが入力されたセルの割合に基づいて、項目行を特定する場合である。第3表データ46は、カウント値47を見ると、2行目及び3行目が「5」であり最大である。なお、他の行のカウント値47は省略している。また、第3表データ46は、非数値データが入力されたセルの割合48は、2行目が100%、3行目が60%である。特定部137は、2行目に隣接する3行目の当該割合が、例えば50%以上であるか否かを判定する。特定部137は、3行目の当該割合が60%であるので、3行目は項目行であると判定し、2行目及び3行目を項目行と特定する。なお、項目行に入る数値データは、例えば、交通手段の数等が挙げられる。
図18は、項目列の特定の一例を示す図である。図18の例は、項目列が存在しない表である場合に、最も左側の列を項目列とみなして項目列を特定する場合である。第3表データ51は、1行目が項目行であるが、2行目以降の1列目のセルには、データが入力されている。この場合に、特定部137は、最も左側の列である1列目を項目列とみなして、1列目を項目列と特定する。
図19は、項目列の特定の他の一例を示す図である。図19の例は、項目列が存在しない表である場合に、最も左側の列を項目列とみなして項目列を特定する場合である。第1表データ53は、1行目が項目行であるが、2行目以降の1列目のセルには、データが入力されている。また、第1表データ53は、1行1列のセルと1行2列のセルとが連結された特定のセルである。この場合に、特定部137は、1列目に特定のセルが含まれるので、特定のセルが含まれる列、つまり1列目及び2列目を項目列とみなして、1列目及び2列目を項目列と特定する。なお、特定部137は、検出結果、カウント値及び第3表データの他に、記憶部120に記憶された第1表データを参照して、項目列を特定する。
図20は、項目行の追加の一例を示す図である。図20の例は、入力されたデータが重複するセルを含む場合に、新たな項目行又は項目列を追加する場合である。第3表データ56は、1行1列と1行2列のデータがともに「a」であり、1行目が入力されたデータが重複するセルを含む。この場合に、特定部137は、最も上側の行のさらに上側に新たな行を追加して第4表データ58とする。特定部137は、第4表データ58の追加した行59を項目行として特定する。
図21は、項目行の追加の他の一例を示す図である。図21の例は、最も上側の行が空白のセルを含む場合に、新たな項目行を追加する場合である。第3表データ60は、1行3列のセルが空白である。この場合に、特定部137は、最も上側の行のさらに上側に新たな行を追加して第4表データ62とする。特定部137は、第4表データ62の追加した行63を項目行として特定する。なお、第3表データ60は、他の行にも空白のセルがあり、1行目がカウント値が最大の行に含まれる場合である。このような場合には、2行目以降の行が項目行と誤認識されないので適用可能である。
図22は、整形後の表データの一例を示す図である。図22に示す第4表データ64は、特定部137で項目行又は項目列が特定された後、つまり整形後の表データである。第4表データ64は、項目行65と、データ行数66と、データ部分67とを有する。すなわち、第4表データ64は、データ(セルの値)1つ1つに対して行数と項目名との関連付けが行われた状態である。なお、データ行数66は、第4表データ64に含まれなくてもよく、情報DB121への記憶時に行数をカウントして付加してもよい。
図1の説明に戻って、記憶制御部138には、特定部137から特定した項目行又は項目列と、第4表データとが入力される。記憶制御部138は、特定した項目行又は項目列と、第4表データとに基づいて、項目行又は項目列の各セルの入力データを項目名とし、各行又は各列の値を対応する項目名とデータ行数とに対応付けて、情報DB121に記憶する。記憶制御部138は、データ行数と項目名と値とを対応付けて情報DB121に記憶すると、項目群判定部139に判定指示を出力する。なお、判定部131から記憶制御部138の各部は、表形式データから特定した項目行又は項目列の各セルの入力データを項目名として抽出する項目名抽出部に対応する。
項目群判定部139は、記憶制御部138から判定指示が入力されると、情報DB121、ボキャブラリDB122及び履歴DB123を参照して、各項目名に対応する項目群(グループ)を判定する。すなわち、項目群判定部139は、複数の項目群が記憶されたボキャブラリDB122及び履歴DB123を参照して、情報DB121に記憶された複数の項目名のそれぞれと所定の類似関係を有する項目名がどの項目群に含まれるか否か判定する。
具体的には、項目群判定部139は、例えば、情報DB121の1レコード目から順に項目名を読み込み、項目名を整形する。項目群判定部139は、読み込んだ項目名から、例えば、カッコ書き等の注釈的な要素や、項目名の前後の空白を取り除くことで項目名を整形する。項目群判定部139は、例えば、「公共交通機関(JR)」という項目名を読み込むと、「公共交通機関」に整形する。
項目群判定部139は、ボキャブラリDB122を参照し、整形後の項目名を用いて、標準化ボキャブラリとのマッチングを実行する。項目群判定部139は、項目名が標準化ボキャブラリとマッチングしたか否かを判定する。項目群判定部139は、マッチング時に、項目名と標準化ボキャブラリとが完全一致した場合、又は、部分一致した場合に、マッチングしたと判定する。項目群判定部139は、例えば、項目名が「公共交通機関」である場合に、標準化ボキャブラリが「公共交通機関」であれば完全一致と判定し、標準化ボキャブラリが「交通機関」であれば部分一致と判定する。
項目群判定部139は、項目名が標準化ボキャブラリとマッチングした場合には、マッチングした標準化ボキャブラリを採用する。項目群判定部139は、採用した標準化ボキャブラリと、標準化ボキャブラリが属するグループとを情報DB121に記憶する。
項目群判定部139は、項目名が標準化ボキャブラリとマッチングしない場合には、項目名を履歴DB123と照合する。つまり、項目群判定部139は、項目名を過去の手動判定の対応付け履歴とのマッチングを実行する。項目群判定部139は、項目名が履歴DB123の項目名とマッチングしたか否かを判定する。このとき、項目群判定部139は、項目名が履歴DB123の項目名と完全一致した場合に、マッチングしたと判定する。項目群判定部139は、例えば、項目名が「バス」である場合に、履歴DB123の項目名の「バス」と完全一致するとマッチングしたと判定する。
項目群判定部139は、項目名が履歴DB123の項目名とマッチングした場合には、履歴DB123の標準化ボキャブラリを採用する。例えば、項目群判定部139は、履歴DB123の項目名「バス」に対応付けられている標準化ボキャブラリ「公共交通機関」を採用する。項目群判定部139は、採用した標準化ボキャブラリと、標準化ボキャブラリが属するグループとを情報DB121に記憶する。項目群判定部139は、項目名が履歴DB123の項目名とマッチングしない場合には、項目名を手動判定ストックに追加する。なお、手動判定ストックは、記憶部120に設けられる記憶領域である。
言い換えると、項目群判定部139は、ボキャブラリDB122及び履歴DB123を参照し、項目名と完全一致又は部分一致したという所定の類似関係を有する標準化ボキャブラリが、どのグループ(項目群)に含まれるか否かを判定する。項目群判定部139は、肯定的な判定結果であると、採用した標準化ボキャブラリと、標準化ボキャブラリが属するグループとを情報DB121に記憶する。項目群判定部139は、否定的な判定結果であると、標準化ボキャブラリとグループとを情報DB121に記憶しない。なお、参照する履歴DB123は、業種ごとのグループに応じた履歴を記憶するデータベースとしてもよい。この場合には、項目群判定部139は、当該業種の履歴を優先して判定できる。
項目群判定部139は、全ての項目名のマッチングが完了したか否かを判定する。項目群判定部139は、全ての項目名のマッチングが完了していない場合には、情報DB121の次のレコードの項目名についてマッチングを繰り返す。項目群判定部139は、全ての項目名のマッチングが完了した場合には、提示指示を提示部140に出力する。
提示部140は、項目群判定部139から提示指示が入力されると、肯定的な判定結果が得られた項目名、つまり、情報DB121に標準化ボキャブラリ及びグループが記憶されている項目名は、記憶されている標準化ボキャブラリを対応付け対象として選択する。すなわち、提示部140は、項目名に対してボキャブラリDB122又は履歴DB123に記憶される標準化ボキャブラリを自動的に選択する。提示部140は、選択した標準化ボキャブラリ及びグループと対応する項目名とを対応関係記憶制御部141に出力する。
提示部140は、否定的な判定結果が得られた項目名、つまり、手動判定ストックに記憶された項目名については、表内の他の項目名と完全一致又は部分一致したという所定の類似関係を有する標準化ボキャブラリが含まれるグループを対応付け候補として提示する。すなわち、提示部140は、手動判定ストックに記憶された項目名に対して標準化ボキャブラリ候補、つまり対応付け候補を提示する割当画面を、通信部110を介して、図示しない端末装置に送信して表示させる。
提示部140は、通信部110を介して、図示しない端末装置から選択情報を受信する。提示部140は、選択情報を受け付け、選択を受け付けた標準化ボキャブラリ及びグループと対応する項目名とを対応関係記憶制御部141に出力する。
また、提示部140は、対応付け候補を提示する際に、さらに、所定の項目群を他の対応付け候補として提示してもよい。提示部140は、例えば、グループ「医薬品」に属する標準化ボキャブラリに加えて、グループ「共通」に属する標準化ボキャブラリを対応付け候補として提示してもよい。
さらに、提示部140は、複数の項目名は、表形式データから検出された複数の表の中から抽出されたものである場合に、複数の表のうち同じ表から抽出された他の項目名と所定の類似関係を有する項目名が含まれるグループを対応付け候補として提示してもよい。すなわち、提示部140は、同じ表から抽出された他の項目名と完全一致又は部分一致する標準化ボキャブラリが含まれるグループを対応付け候補として提示してもよい。
また、提示部140は、同じ表に含まれる他の項目名でマッチングした標準化ボキャブラリが属するグループを優先して提示するようにしてもよい。すなわち、提示部140は、否定的な判定結果が得られた項目名と同じ表に含まれる項目名と所定の類似関係を有する第1の項目名が含まれると判定され、かつ、否定的な判定結果が得られた項目名と異なる表に含まれる第2の項目名と所定の類似関係を有する項目名が含まれると判定された場合に、否定的な判定結果が得られた項目名について、第1の項目名が含まれる項目群(グループ)を第2の項目名が含まれる項目群よりも優先して対応付け候補として提示する。
さらに、提示部140は、表形式データ又は他の表形式データから抽出した項目名が、履歴DB123に記憶される対応関係によって特定の項目名に対応付けられている場合は、当該特定の項目名を対応付け対象として選択するようにしてもよい。なお、特定の項目名は、対応関係に係る標準化ボキャブラリである。
また、提示部140は、否定的な判定結果が得られた他の項目名の対応付け候補を提示する際に、特定の項目名(対応関係に係る標準化ボキャブラリ)が含まれる項目群(グループ)を、他の項目群よりも優先して対応付け候補として提示するようにしてもよい。
ここで、図23を用いて、割当画面の一例について説明する。図23は、割当画面の一例を示す図である。図23に示すように、割当画面70は、未確定項目名欄71と、ボキャブラリ候補欄72と、決定ボタン73とを有する。未確定項目名欄71には、手動判定ストックに記憶された項目名、つまり、対応する標準化ボキャブラリが未確定の項目名が表示される。ボキャブラリ候補欄72には、グループごとに標準化ボキャブラリの対応付け候補が表示される。決定ボタン73は、例えば、対応付け候補の先頭に設けられたラジオボタンが選択された状態で押下されると、当該ラジオボタンが選択された対応付け候補を、標準化ボキャブラリとして選択情報を送信するためのボタンである。
図23の例では、ボキャブラリ候補欄72には、先頭に、医薬品ボキャブラリグループ74に属する「薬の名称」、「個別医薬品コード」、「JANコード」といった対応付け候補、つまり標準化ボキャブラリの候補が表示される。なお、医薬品ボキャブラリグループ74は、他の項目名においてマッチングしたボキャブラリグループである。また、ボキャブラリ候補欄72には、他の項目名においてマッチングしたボキャブラリグループが複数ある場合には、マッチングした数の多いグループから順に表示される。例えば、ボキャブラリ候補欄72には、医薬品ボキャブラリグループ74よりもマッチング数が少ない△△ボキャブラリグループ75が、医薬品ボキャブラリグループ74の次に表示される。すなわち、提示部140は、処理中の表にマッチングする可能性の高い標準化ボキャブラリのグループを、ボキャブラリ候補欄72に表示する。
また、ボキャブラリ候補欄72には、△△ボキャブラリグループ75の次に、共通ボキャブラリグループ76が表示される。すなわち、ボキャブラリ候補欄72には、他の項目名においてマッチングしたボキャブラリグループに続いて、次にマッチングする可能性が高いボキャブラリグループとして、共通ボキャブラリグループ76が表示される。
さらに、ボキャブラリ候補欄72には、共通ボキャブラリグループ76の次に、その他全てのボキャブラリグループ77が表示される。また、その他全てのボキャブラリグループ77は、選択しやすいように、例えば、取引ボキャブラリグループ77a、製品・物品ボキャブラリグループ77bといったように、ボキャブラリグループごとに括りを分けて表示される。
図1の説明に戻って、対応関係記憶制御部141は、提示部140から選択された標準化ボキャブラリ及びグループと対応する項目名とが入力されると、項目名と標準化ボキャブラリ及びグループとを対応付けて情報DB121に記憶する。なお、この場合には、項目名と標準化ボキャブラリ及びグループとが、項目群判定部139によって情報DB121に記憶されているので、上書きしてもよいし、情報DB121の該当するレコードを読み込んで確認するようにしてもよい。
対応関係記憶制御部141は、提示部140から選択を受け付けた標準化ボキャブラリ及びグループと対応する項目名とが入力されると、項目名と標準化ボキャブラリ及びグループとを対応付けて情報DB121に記憶する。また、対応関係記憶制御部141は、項目名と標準化ボキャブラリ及びグループとを対応付けて履歴DB123に記憶する。すなわち、対応関係記憶制御部141は、否定的な判定結果が得られた項目名について提示した対応付け候補のうち、採用された候補と否定的な判定結果が得られた項目名との対応関係を履歴DB123に記憶する。
次に、実施例の情報処理装置100の動作について説明する。まず、解析処理について説明する。図24は、実施例の解析処理の一例を示すフローチャートである。
情報処理装置100の通信部110は、図示しない端末装置から表形式データを受信する。通信部110は、受信した表形式データを制御部130に出力する。判定部131は、通信部110から表形式データが入力されると、入力された表形式データのデータ入力セルの有無を判定する(ステップS1)。判定部131は、表形式データ及び判定結果を抽出部132に出力する。
抽出部132は、判定部131から表形式データ及び判定結果が入力されると、判定結果に基づいて、表形式データから、データが入力されたセルが存在する複数の連続する行又は列の塊を1つの表データとして抽出する(ステップS2)。抽出部132は、表データを抽出すると、抽出した表データを第1表データとして編集部133及び生成部135に出力する。また、抽出部132は、第1表データを記憶部120に記憶する。
編集部133は、抽出部132から第1表データが入力されると、入力された第1表データに対して編集処理を実行する(ステップS3)。編集部133は、編集処理を完了した表データを第2表データとしてカウント部134及び生成部135に出力する。
カウント部134は、編集部133から第2表データが入力されると、第2表データのうち、データが入力されたセルの数を行ごと又は列ごとにカウントする(ステップS4)。カウント部134は、行ごと又は列ごとにカウントしたセルの数をカウント値として検出部136に出力する。
生成部135には、抽出部132から第1表データが入力され、編集部133から第2表データが入力される。生成部135は、入力された第1表データに基づいて、項目行又は項目列を仮に決定する。生成部135は、仮に決定した項目行又は項目列にセル連結処理が施された特定のセルが含まれる場合には、特定のセルに対応する連続する複数の項目行又は連続する複数の項目列を仮に決定する。生成部135は、連続する複数の項目行又は連続する複数の項目列を仮に決定すると、編集部133から入力された第2表データに対して、項目名の生成を実行する(ステップS5)。生成部135は、生成した項目名を適用した第2表データを第3表データとして検出部136に出力する。生成部135は、仮に決定した項目行又は項目列にセル連結処理が施された特定のセルが含まれない場合には、入力された第2表データをそのまま第3表データとして検出部136に出力する。
検出部136には、カウント部134からカウント値が入力され、生成部135から第3表データが入力される。検出部136は、入力された第3表データに対して、入力されたカウント値が最大の行又は列のうち、最も上側の行又は最も左側の列を検出する(ステップS6)。検出部136は、検出された最も上側の行又は最も左側の列を検出結果として、カウント値及び第3表データとともに特定部137に出力する。
特定部137には、検出部136から検出結果、カウント値及び第3表データが入力される。特定部137は、検出結果、カウント値及び第3表データに基づいて、項目行又は項目列を特定する(ステップS7)。特定部137は、特定が完了した第3表データを第4表データとし、特定した項目行又は項目列と、第4表データとを記憶制御部138に出力する。
記憶制御部138には、特定部137から特定した項目行又は項目列と、第4表データとが入力される。記憶制御部138は、特定した項目行又は項目列と、第4表データとに基づいて、第4表データの各セルの値を項目名とデータ行数とに対応付けて、情報DB121に記憶する(ステップS8)。記憶制御部138は、データ行数と項目名と値とを対応付けて情報DB121に記憶すると、項目群判定部139に判定指示を出力する。これにより、情報処理装置100は、多様なフォーマットの表形式データを容易にデータベースに登録できる。
次に、標準化処理について説明する。図25は、実施例の標準化処理の一例を示すフローチャートである。
項目群判定部139は、記憶制御部138から判定指示が入力されると、情報DB121の1レコード目から順に項目名を読み込む。項目群判定部139は、読み込んだ項目名を整形する(ステップS11)。項目群判定部139は、ボキャブラリDB122を参照し、整形後の項目名を用いて、標準化ボキャブラリとのマッチングを実行する。項目群判定部139は、項目名が標準化ボキャブラリとマッチングしたか否かを判定する(ステップS12)。
項目群判定部139は、項目名が標準化ボキャブラリとマッチングした場合には(ステップS12:肯定)、マッチングした標準化ボキャブラリを採用し(ステップS13)、ステップS18に進む。項目群判定部139は、採用した標準化ボキャブラリと、標準化ボキャブラリが属するグループとを情報DB121に記憶する。
項目群判定部139は、項目名が標準化ボキャブラリとマッチングしない場合には(ステップS12:否定)、項目名を履歴DB123と照合する(ステップS14)。つまり、項目群判定部139は、項目名を過去の手動判定の対応付け履歴とのマッチングを実行する。項目群判定部139は、項目名が履歴DB123の項目名とマッチングしたか否かを判定する(ステップS15)。
項目群判定部139は、項目名が履歴DB123の項目名とマッチングした場合には(ステップS15:肯定)、履歴DB123の標準化ボキャブラリを採用し(ステップS16)、ステップS18に進む。項目群判定部139は、採用した標準化ボキャブラリと、標準化ボキャブラリが属するグループとを情報DB121に記憶する。項目群判定部139は、項目名が履歴DB123の項目名とマッチングしない場合には(ステップS15:否定)、項目名を手動判定ストックに追加する(ステップS17)。
項目群判定部139は、全ての項目名のマッチングが完了したか否かを判定する(ステップS18)。項目群判定部139は、全ての項目名のマッチングが完了していない場合には(ステップS18:否定)、ステップS11に戻る。項目群判定部139は、全ての項目名のマッチングが完了した場合には(ステップS18:肯定)、提示指示を提示部140に出力する。
提示部140は、項目群判定部139から提示指示が入力されると、情報DB121に標準化ボキャブラリ及びグループが記憶されている項目名は、記憶されている標準化ボキャブラリを対応付け対象として選択する。提示部140は、選択した標準化ボキャブラリ及びグループと対応する項目名とを対応関係記憶制御部141に出力する。
提示部140は、手動判定ストックに記憶された項目名に対して、標準化ボキャブラリ候補を提示する割当画面を図示しない端末装置に送信して表示させる(ステップS19)。提示部140は、図示しない端末装置から選択情報を受信する。提示部140は、選択情報を受け付け、選択を受け付けた標準化ボキャブラリ及びグループと対応する項目名とを対応関係記憶制御部141に出力する。
対応関係記憶制御部141には、提示部140から選択された標準化ボキャブラリ及びグループと対応する項目名とが入力される。又は、対応関係記憶制御部141には、提示部140から選択を受け付けた標準化ボキャブラリ及びグループと対応する項目名とが入力される。対応関係記憶制御部141は、選択された又は選択を受け付けた標準化ボキャブラリ及びグループを、項目名と対応付けて情報DB121に記憶する(ステップS20)。また、対応関係記憶制御部141は、選択を受け付けた標準化ボキャブラリ及びグループを項目名と対応付けて履歴DB123に記憶する。これにより、情報処理装置100は、項目名を標準化したボキャブラリに対応付けできる。また、情報処理装置100は、標準化ボキャブラリを用いることで、各種データを統合して利用することができる。さらに、情報処理装置100は、自動的に標準化ボキャブラリが採用されない項目名に対して、適切な標準化ボキャブラリを提示することができる。
このように、情報処理装置100は、表形式データから複数の項目名を抽出する。また、情報処理装置100は、複数の項目群が記憶されたボキャブラリDB122を参照して、抽出した複数の項目名のそれぞれと所定の類似関係を有する項目名がどの項目群に含まれるか否か判定する。また、情報処理装置100は、複数の項目名のうち、肯定的な判定結果が得られた項目名については、所定の類似関係を有する項目名を対応付け対象として選択する。また、情報処理装置100は、否定的な判定結果が得られた項目名については、他の項目名と所定の類似関係を有する項目名が含まれると判定された項目群を対応付け候補として提示する。その結果、項目名を標準化したボキャブラリに対応付けできる。
また、情報処理装置100は、否定的な判定結果が得られた項目名については、他の項目名と所定の類似関係を有する項目名が含まれると判定された項目群を対応付け候補として提示する際に、さらに、所定の項目群を他の対応付け候補として提示する。その結果、マッチングする可能性の高いグループの標準化ボキャブラリを提示できる。
また、情報処理装置100では、複数の項目群は、業種ごとに形成された項目群と、業種共通に形成された項目群とを含み、所定の項目群は、該業種共通に形成された項目群に対応する。その結果、マッチングする可能性の高いグループの標準化ボキャブラリを提示できる。
また、情報処理装置100では、複数の項目名は、表形式データから1つの表として検出された表の中から抽出されたものである。その結果、1つの表における項目名を標準化したボキャブラリに対応付けできる。
また、情報処理装置100では、複数の項目名は、表形式データから検出された複数の表の中から抽出されたものである。また、情報処理装置100は、否定的な判定結果が得られた項目名については、複数の表のうち同じ表から抽出された他の項目名と所定の類似関係を有する項目名が含まれると判定された項目群を対応付け候補として提示する。その結果、マッチングする可能性の高いグループの標準化ボキャブラリを提示できる。
また、情報処理装置100は、否定的な判定結果が得られた項目名と同じ表に含まれる項目名と所定の類似関係を有する第1の項目名が含まれると判定され、かつ、否定的な判定結果が得られた項目名と異なる表に含まれる第2の項目名と所定の類似関係を有する項目名が含まれると判定された場合に、否定的な判定結果が得られた項目名について、第1の項目名が含まれる項目群を第2の項目名が含まれる項目群よりも優先して対応付け候補として提示する。その結果、他の項目名がマッチングしたグループの標準化ボキャブラリを提示できる。
また、情報処理装置100は、否定的な判定結果が得られた項目名について提示した対応付け候補のうち、採用された候補と否定的な判定結果が得られた項目名との対応関係を履歴DB123に記憶する。また、情報処理装置100は、表形式データ又は他の表形式データから抽出した項目名が対応関係によって特定の項目名に対応付けられている場合は、該特定の項目名を表形式データ又は他の表形式データから抽出した項目名の対応付け対象として選択する。その結果、履歴に含まれるグループの標準化ボキャブラリを提示できる。
また、情報処理装置100は、否定的な判定結果が得られた他の項目名の対応付け候補を提示する際に、特定の項目名が含まれる項目群を、他の項目群よりも優先して対応付け候補として提示する。その結果、履歴に含まれるグループの標準化ボキャブラリを優先して提示できる。
また、情報処理装置100は、対応付け対象として選択された項目名、又は、提示された項目群に含まれる項目名から選択を受け付けた項目名を、表形式データの複数の項目名のそれぞれの項目名と対応付けて情報DB121に記憶する。その結果、項目名を標準化したボキャブラリに対応付けできる。
また、情報処理装置100は、入力された表形式データの各行又は各列についてデータが入力されたセルの有無を判定する。また、情報処理装置100は、データが入力されたセルが存在する複数の連続する行又は列の塊を1つの表に関連する部分として抽出する。また、情報処理装置100は、行又は列の塊のうち項目行又は項目列を特定する。また、情報処理装置100は、特定した項目行又は項目列の各セルの入力データを項目名として抽出する。その結果、表形式データから項目名を抽出できる。
なお、上記実施例では、表の本体部分の上部に表のタイトルが記載されている場合を一例として挙げたが、これに限定されない。例えば、表の本体部分の上部に数行に渡って見出しや注釈が記載されている場合であっても、上記実施例と同様に、表の本体部分を抽出することができる。
また、上記実施例では、情報DB121の形態として、表データを構成するセルごとに1レコードとしたが、これに限定されない。例えば、情報DB121は、元の表データを復元できれば、どの様な形態のデータベースでもよい。
また、上記実施例では、表データを情報DB121に登録する際に、併せて標準化ボキャブラリ及びグループを決定したが、これに限定されない。例えば、標準化ボキャブラリ及びグループを決定する標準化処理を、情報DB121に記憶された表データを用いる際に行ってもよい。これにより、表データを使用するユーザが統一した基準で標準化ボキャブラリ及びグループを決定できる。さらに、例えば、他の自治体の各種データを登録する際に、他の自治体や業者が登録を支援することができる。
また、図示した各部の各構成要素は、必ずしも物理的に図示の如く構成されていることを要しない。すなわち、各部の分散・統合の具体的形態は図示のものに限られず、その全部又は一部を、各種の負荷や使用状況等に応じて、任意の単位で機能的又は物理的に分散・統合して構成することができる。例えば、判定部131と抽出部132とを統合してもよい。また、図示した各処理は、上記の順番に限定されるものではなく、処理内容を矛盾させない範囲において、同時に実施してもよく、順序を入れ替えて実施してもよい。
さらに、各装置で行われる各種処理機能は、CPU(又はMPU、MCU(Micro Controller Unit)等のマイクロ・コンピュータ)上で、その全部又は任意の一部を実行するようにしてもよい。また、各種処理機能は、CPU(又はMPU、MCU等のマイクロ・コンピュータ)で解析実行されるプログラム上、又はワイヤードロジックによるハードウェア上で、その全部又は任意の一部を実行するようにしてもよいことは言うまでもない。
ところで、上記の実施例で説明した各種の処理は、予め用意されたプログラムをコンピュータで実行することで実現できる。そこで、以下では、上記の実施例と同様の機能を有するプログラムを実行するコンピュータの一例を説明する。図26は、項目名対応付け処理プログラムを実行するコンピュータの一例を示す図である。
図26に示すように、コンピュータ200は、各種演算処理を実行するCPU201と、データ入力を受け付ける入力装置202と、モニタ203とを有する。また、コンピュータ200は、記憶媒体からプログラム等を読み取る媒体読取装置204と、各種装置と接続するためのインタフェース装置205と、他の情報処理装置等と有線又は無線により接続するための通信装置206とを有する。また、コンピュータ200は、各種情報を一時記憶するRAM207と、ハードディスク装置208とを有する。また、各装置201〜208は、バス209に接続される。
ハードディスク装置208には、図1に示した判定部131、抽出部132、編集部133、カウント部134、生成部135、検出部136、特定部137及び記憶制御部138の各処理部と同様の機能を有する項目名対応付け処理プログラムが記憶される。また、ハードディスク装置208には、項目群判定部139、提示部140及び対応関係記憶制御部141の各処理部と同様の機能を有する項目名対応付け処理プログラムが記憶される。また、ハードディスク装置208には、情報DB121、ボキャブラリDB122、履歴DB123、及び、項目名対応付け処理プログラムを実現するための各種データが記憶される。入力装置202は、例えば、コンピュータ200の管理者から操作情報、管理情報等の各種情報の入力を受け付ける。モニタ203は、例えば、コンピュータ200の管理者に対して管理画面等の各種画面を表示する。インタフェース装置205は、例えば印刷装置等が接続される。通信装置206は、例えば、図1に示した通信部110と同様の機能を有し図示しないネットワークと接続され、図示しない端末装置と各種情報をやりとりする。
CPU201は、ハードディスク装置208に記憶された各プログラムを読み出して、RAM207に展開して実行することで、各種の処理を行う。また、これらのプログラムは、コンピュータ200を図1に示した判定部131、抽出部132、編集部133、カウント部134、生成部135、検出部136、特定部137及び記憶制御部138として機能させることができる。また、これらのプログラムは、コンピュータ200を図1に示した項目群判定部139、提示部140及び対応関係記憶制御部141として機能させることができる。
なお、上記の項目名対応付け処理プログラムは、必ずしもハードディスク装置208に記憶されている必要はない。例えば、コンピュータ200が読み取り可能な記憶媒体に記憶されたプログラムを、コンピュータ200が読み出して実行するようにしてもよい。コンピュータ200が読み取り可能な記憶媒体は、例えば、CD−ROMやDVDディスク、USB(Universal Serial Bus)メモリ等の可搬型記録媒体、フラッシュメモリ等の半導体メモリ、ハードディスクドライブ等が対応する。また、公衆回線、インターネット、LAN等に接続された装置にこの項目名対応付け処理プログラムを記憶させておき、コンピュータ200がこれらから項目名対応付け処理プログラムを読み出して実行するようにしてもよい。