実施の形態1
以下実施の形態を、図面を参照して説明する。図1は情報処理装置1のハードウェア群を示すブロック図である。情報処理装置1は例えば、パーソナルコンピュータ、サーバコンピュータ、携帯電話機、スマートフォン、ゲーム機またはPDA(Personal Digital Assistant)等である。以下では、情報処理装置1をパーソナルコンピュータ1(以下、コンピュータ1という)に適用する例を挙げて説明する。コンピュータ1は制御部としてのCPU(Central Processing Unit)11、RAM(Random Access Memory)12、入力部13、表示部14、時計部18、記憶部15、及び通信部16等を含む。CPU11は、バス17を介してハードウェア各部と接続されている。CPU11は記憶部15に記憶された制御プログラム15Pに従いハードウェア各部を制御する。RAM12は例えばSRAM(Static RAM)、DRAM(Dynamic RAM)、フラッシュメモリ等である。RAM12は、記憶部としても機能し、CPU11による各種プログラムの実行時に発生する種々のデータを一時的に記憶する。
入力部13はマウスまたはキーボード、マウスまたはタッチパネル等の入力デバイスであり、受け付けた操作情報をCPU11へ出力する。表示部14は液晶ディスプレイまたは有機EL(electroluminescence)ディスプレイ等であり、CPU11の指示に従い各種情報を表示する。通信部16は通信モジュールであり、インターネットまたは公衆回線網等の通信網を介して図示しない他のコンピュータとの間で情報の送受信を行う。
時計部18は日時をCPU11へ出力する。記憶部15はハードディスクまたは大容量メモリであり、上述した制御プログラム15Pの他、位置テーブル151、隣接テーブル152、数値テーブル153、キーワードテーブル154及び対象データテーブル155等を含む。なお、本実施形態ではコンピュータ1の記憶部15に各種テーブルを記憶する例を挙げたがこれに限るものではない。例えば通信網を介して接続される図示しないデータベースサーバ等に上述した各種テーブルを適宜記憶しても良い。この場合、CPU11は、必要に応じてデータベースサーバにアクセスし、データの書き込み及び読み出しを行う。CPU11は、記憶部15からデータ群を読み出し、制御プログラム15Pに従い各データについて解析を行う。以下詳細を説明する。
図2は帳票データのイメージを示す説明図である。帳票データは例えばエクセル(登録商標)等の表計算ソフトウェア、文書入力ソフトウェアまたはPDF(Portable Document Format:登録商標)等のファイル閲覧ソフトウェアにより表示されるデータ群である。タイトル、項目及び数値データ等の各種データ群が表内にテキスト形式で記述されている。図2の例は企業内従業員の個人就業実績を示している。中央上部に表示されている「個人就業実績」は帳簿データのタイトルであり、タイトル左下には、職員氏名「日本花子」と、「日本花子」を特定するための固有の識別情報(以下、職員IDという)と、が記述されている。
右上隅の「第2開発部」は職員の所属部署を示す。職員名の下側の表には、当該職員の出勤、退勤、所定内労働(以下、所定内という)、残業、休日出勤等の項目と、各項目に対応付けて、出勤時間、退勤時刻、所定内時間、残業時間、休日出勤時間等の数値データが記述されている。下側には項目「総計」に対応付けて、所定内時間、残業時間、休日出勤時間等の合計に係る数値データが記述されている。CPU11は、記憶部15に記憶された、または、通信部16を介して受信した帳票データを解析する。なお、本実施形態では帳票データを対象としたが、これに限るものではない。医療カルテデータ、財務データ、または各種統計データ等であっても良い。
CPU11は、1行分の帳票データを読み込む。1行目の場合、「個人就業実績」及び「第2開発部」が読み込まれる。CPU11は、1行内の単語を順次抽出する。以下では例としてCPU11が、「個人就業実績」を抽出し、「個人就業実績」の属性及び評価値を決定する処理を説明する。なお、単語の抽出は文字間の距離が記憶部15に記憶した所定距離以上の場合、または、文字間に罫線が存在する場合に、単語の区切りであると判断すればよい。なお、単語間の距離は、フォントサイズに応じて適宜の長さ(座標数またはピクセル数)とすればよい。以下では、CPU11が帳票データを読み込み、文字認識により単語間で分割されたタイトル、項目及び数値データ等の内、解析対象となるデータを対象データという。
図3は帳票データの一部を示す説明図である。項目「退勤」、「所定内」及び「残業」についてそれぞれ退勤時刻、所定内時間及び残業時間の数値データが記憶されている。例えば一列目の数値データでは、退勤時刻が17時15分、所定内時間が8時間、残業時間が0時間であることが理解できる。2つ目の対象データは数値データ一列目の残業時間「0.00」を例として説明する。CPU11は、数値データ「0.00」の属性及び評価値を決定する。CPU11は、1行分の単語を順次抽出する。CPU11は、17:15、8.00及び0.00を検出し、そのうち0.00を抽出し解析を行う。なお、左上の隣接する対象データ「所定内」、左で隣接する対象データ「8.00」及び上で隣接する対象データ「残業」についての属性及び評価値は既に解析済みであるものとする。
図4は位置テーブル151のレコードレイアウトを示す説明図である。位置テーブル151は座標領域フィールド、属性フィールド及び評価値フィールド等を含む。座標領域フィールドには帳票内の対象データが記述されている領域の座標が記憶されている。本実施形態では帳票のファイルの左上端を原点とし、右に向かう方向をX軸正方向とし、下に向かう方向をY軸正方向とする。また座標領域は対象データが存在する領域の左上の座標及び右下の座標を記憶しておけばよい。
属性フィールドには、座標領域に対応付けて属性が記憶されている。属性は、対象データの性質または特徴を示すものである。本実施形態では、タイトル、項目、数値データ及び所属等を一例として用いている。後述するが数値データにはさらに下位属性として時刻、電話番号、価格、職員ID、時間、日数、日付、数値、西暦等がある。評価値フィールドには、座標領域に対応付けて対象データの属性の確からしさを評価する値である評価値が記憶されている。本実施形態では値が大きいほど、属性の確からしさが向上するものとして説明する。
位置テーブル151の内容は適宜入力部13から、値を設定することが可能である。例えば、上部中段付近の座標領域には、一般にタイトルが記述されることが多い。従って、当該領域に対象データが存在する場合には属性が「タイトル」、評価値は「3」と決定される。CPU11は、対象データの中心点または領域を求める。CPU11は、位置テーブル151を参照し、中心点が属する座標領域を抽出する。CPU11は、座標領域に対応する属性及び評価値を読み出す。例えば、上述した「個人就業実績」の場合、CPU11は、中心点及び座標領域から、属性「タイトル」及び「評価値」を読み出す。また対象データ「0.00」の場合も、中心点及び座標領域から対応する属性「数値データ」及び評価値「1」を読み出す。なお、本実施形態では対象データの中心点を用いる例を挙げたがこれに限るものではなく、対象データの任意の座標を用いても良い。またCPU11は、対象データの座標領域と、位置テーブルの座標領域フィールドに記憶された座標領域との重複する座標数を計数し、最も計数値が多い座標領域に対応する属性及び評価値を選択するようにしても良い。
図5は隣接テーブル152のレコードレイアウトを示す説明図である。隣接テーブル152には左の隣接対象データフィールド、左上の隣接対象データフィールド、上の隣接対象データフィールド及び属性評価値フィールド等を含む。隣接する対象データ(以下、場合により隣接対象データと略す)の有無に対応付けて属性及び評価値が記憶されている。例えば、左、左上及び上のどこにも隣接対象データが存在しない場合は、タイトルである可能性が高いことから、属性「タイトル」に評価値「1.0」が記憶されている。なお、本実施形態では左、左上及び上の隣接対象データの有無を利用する形態を挙げたが、これに限るものではない。全方向の隣接対象データを利用するほか、右上の隣接対象データ等、少なくとも一つの隣接対象データを利用するものであればよい。
上述した「個人就業実績」の場合、CPU11は、隣接する対象データが存在しないため、属性「タイトル」及び評価値「1.0」を読み出す。また「0.00」の場合、左、左上及び上の隣接対象データが存在するため、CPU11は、属性「数値データ」及び評価値「1.0」が読み出される。なお、隣接テーブル152の内容は入力部13から適宜変更することが可能である。
図6は数値テーブル153のレコードレイアウトを示す説明図である。数値テーブル153は、表示形式フィールド、属性フィールド、及び評価値フィールド等を含む。表示形式フィールドには、数値、記号及び条件等が記憶されている。属性フィールドには、表示形式に対応付けて、属性「数値データ」の下位属性である時刻、電話番号、価格、職員ID、時間、日数等が記憶されている。評価値フィールドには表示形式に対応付けて、評価値が記憶されている。例えば、表示形式「:」を含む対象データの場合、時刻の可能性が高いことから属性は「時刻」、評価値は「2」と記憶されている。
また、表示形式の内条件である「:の右の数値が60以下」は例えば数値データ「2:56」の「56」が60以下の条件を満たす場合、時刻2時56分である可能性が高く、属性は「時刻」、評価値は「1」と記憶されている。その他、「am」、「pm」を対象データが含む場合も属性は「時刻」と判断される。表示形式「−」を含む場合、電話番号である可能性が高いことから、属性は「電話番号」、評価値は「1」と記憶されている。また表示形式に係る条件「最初の数字が0」は、例えば数値データ「090−XXX―XXX」の場合、当該条件を満たすことから電話番号を示す可能性が高く、属性は「電話番号」、評価値は「1」と記憶されている。
表示形式「$」または「¥」を対象データが含む場合、価格である可能性が高いことから、属性は「価格」、評価値は「3」と記憶されている。表示形式「ID」を対象データが含む場合、職員IDである可能性が高いことから、属性「職員ID」、評価値「3」が記憶されている。表示形式「.」を対象データが含む場合、時間または日数である可能性が高いことから属性は「時間」または「日数」が記憶され、評価値はそれぞれ「2」、「1」と記憶されている。
CPU11は、対象データが数値を含むか否かを判断する。CPU11は、抽出した対象データを一字毎に分割する。CPU11は、分割した字の総数及び、数値の数を計数する。CPU11は、総数に対する数値の割合が60%以上の場合、対象データは数値データであると判断する。例えば「2:50」は数字が75%、記号が25%であるため、数値データとなる。一方、「平成25年計画表」は数値の割合が25%と低いため、数値データとは判断されない。なお、数値の割合により対象データが数値データか否かを判断する例を挙げて説明するが、これに限るものではない。数値が所定数存在する場合に、対象データが数値データと判断するようにしても良い。
上述の「個人就業実績」の場合、CPU11は、数値データと判断しない。上述の「0.00」の場合、CPU11は、数値の割合が所定値よりも高いため、数値データと判断する。そしてCPU11は、数値テーブル153を参照し、表示形式に一致するデータが存在するか否かを判断する。図6の例では「.」を含むため、属性は「時刻」、評価値は「2」となる。また、属性は「日数」、評価値は「1」となる。すなわち対象データ「0.00」の属性の第1候補は時刻、第2候補は日数となる。なお、数値テーブル153の記憶内容は、入力部13から適宜の値を設定することが可能である。
図7はキーワードテーブル154のレコードレイアウトを示す説明図である。キーワードテーブル154はキーワードフィールド、属性フィールド及び評価値フィールド等を含む。キーワードフィールドには、対象データ中に含まれるキーワードが記憶されている。例えば、就業実績、事業部、残業、山田等である。属性フィールドには、キーワードに対応付けてタイトル、所属、項目、氏名等の属性が記憶されている。評価値フィールドには、キーワードに対応付けて評価値が記憶されている。CPU11は、対象データが数値データでないと判断した場合、キーワードテーブル154を参照し、対象データ中にキーワードが含まれているか否かを判断する。
CPU11は、キーワードが含まれていると判断した場合、キーワードに対応する属性及び評価値を読み出す。例えば上述した「個人就業実績」の場合、CPU11は、キーワード「就業実績」に対応する属性「タイトル」及び評価値「3」を読み出す。
図8は対象データテーブル155のレコードレイアウトを示す説明図である。対象データIDフィールドには対象データを特定するための固有の識別情報(以下、対象データIDという)が記憶されている。抽出データフィールドには、文字認識により抽出された対象データが、対象データIDに対応付けて記憶されている。対象データ名フィールドにはタグIDに対応付けて対象データの名称(以下、対象データ名)が記憶されている。属性フィールドには対象データIDに対応付けて候補となる属性が記憶されている。合計評価値フィールドには、上述した処理により決定した評価値の合計値が、対象データID及び属性に対応付けて記憶されている。すなわち、対象データのデータ内容、位置及び沈設する対象データの有無に応じて決定された属性及び評価値に基づき、CPU11は、属性の評価値の合計値を算出する。上述した「個人就業実績」の例では、CPU11は、上述した処理により属性「タイトル」と決定した際の評価値の合計値を合計評価値フィールドに記憶する。またCPU11は、同様に上述した処理により「項目」と決定した際の評価値の合計値を合計評価値フィールドに記憶する。
上述した「0.00」の例では、CPU11は、上述した処理により属性「時間」と決定した際の評価値の合計値を合計評価値フィールドに記憶する。同様に、CPU11は、上述した処理により属性「日数」と決定した際の評価値の合計値を合計評価値フィールドに記憶する。またCPU11は、同様に上述した処理により「金額」と決定した際の評価値の合計値を合計評価値フィールドに記憶する。また、CPU11は、属性を「数値データ」と判断した場合、下位属性である「時刻」、「電話番号」、「価格」、「職員ID」、「時間」及び「日数」の評価値に属性「数値データ」と判断した属性値を加算する。なお、CPU11は、複数の属性が存在する場合、合計評価値が最も高いもの順にソートして記憶しておけばよい。
上フィールド、左フィールド及び左上フィールドには、対象データの上、左または左上で隣接する対象データの有無と、存在する場合は対応する対象データIDとを、対象データIDに対応付けて記憶している。対象データID「1」の「個人就業実績」では、隣接する対象データが存在しないため、全て「なし」と記憶されている。一方、対象データID「18」の「0.00」では、隣接する対象データが存在するため、上フィールドには対象データID「10」、左フィールドには対象データID「17」、左上フィールドには対象データID「9」と記憶されている。座標領域フィールドには、対象データがファイル上で占める座標領域を対象データIDに対応付けて記憶している。
続いて対象データ名の決定処理について説明する。CPU11は、抽出した対象データの属性の内、最も合計評価値の高い属性がタイトル、項目または名前である場合、当該対象データを含む対象データ名を生成する。例えば対象データID「01」の属性は「タイトル」である。この場合、抽出した対象データ「個人就業実績」が対象データ名「個人就業実績」として、対象データテーブル155に記憶される。また対象データID「9」の属性は項目であることから、抽出した対象データ「所定内」が対象データ名として記憶される。
一方、CPU11は、抽出した対象データの属性の内、最も合計評価値の高い属性が時間、日数、または金額である場合、隣接するデータの対象データ名に基づき、対象データ名を決定する。例えば対象データID「18」の属性は「時間」である。この場合、上で隣接する対象データ(対象データID「10」)の対象データ名「残業」を含む対象データ名「残業」とする。
CPU11は、隣接する対象データの対象データ名の内、上または左に対象データ名が存在する場合、いずれか一方の対象データ名を利用する。例えば図2において、上述した対象データID「18」の下側の対象データ「0.00」は属性が時間であり、また上に対象データ名が存在するため、CPU11は、対象データ名を同様に「残業」とする。また図2の下方に存在する対象データ「総計」の右側の「119.00」は属性が時間である場合、左の対象データ名「総計」と同じ対象データ名「総計」が記憶される。なお、CPU11は、上及び左の両方に対象データ名が存在する場合、予め定めたいずれか一方の対象データ名を利用すれば良い。上、左及び左上の全てに対象データが存在しない場合、不明としておけばよい。本実施形態では上の対象データ名を利用する例を挙げて説明する。
以上のハードウェア群において各種ソフトウェア処理手順を、フローチャートを用いて説明する。図9及び図10は対象データの抽出処理手順を示すフローチャートである。CPU11は、左上の行からスキャンを行い、対象データを抽出する(ステップS91)。CPU11は、新たな対象データを抽出した場合、対象データIDを生成する(ステップS92)。CPU11は、生成した対象データIDを対象データテーブル155に記憶する(ステップS93)。CPU11は、抽出した対象データを対象データテーブル155に記憶する(ステップS94)。
CPU11は、対象データの座標領域を対象データテーブル155に記憶する(ステップS95)。CPU11は、上に隣接する対象データが存在するか否かを判断する(ステップS96)。具体的には、CPU11は、対象データテーブル155の座標領域を参照し、対象となる対象データの座標領域に対し、Y軸負方向の所定範囲を座標領域に含む対象データIDを抽出する。その他、座標領域同士が隣接する対象データIDを抽出し、X軸方向で隣接する対象データIDを最終的に上側で隣接する対象データIDとして抽出しても良い。CPU11は、上に隣接する対象データが存在すると判断した場合(ステップS96でYES)、処理をステップS97へ移行させる。CPU11は、上に隣接する対象データの対象データIDを対象データテーブル155に記憶する(ステップS97)。一方、上に隣接する対象データが存在しないと判断した場合(ステップS96でNO)、ステップS97をスキップし、処理をステップS98へ移行させる。
CPU11は、左に隣接する対象データが存在するか否かを判断する(ステップS98)。具体的には、CPU11は、対象データテーブル155の座標領域を参照し、対象となる対象データの座標領域に対し、X軸負方向の所定範囲を座標領域に含む対象データIDを抽出する。CPU11は、左に隣接する対象データが存在すると判断した場合(ステップS98でYES)、処理をステップS99へ移行させる。CPU11は、左に隣接する対象データの対象データIDを対象データテーブル155に記憶する(ステップS99)。一方、左に隣接する対象データが存在しないと判断した場合(ステップS98でNO)、ステップS99をスキップし、処理をステップS101へ移行させる。
CPU11は、左上に隣接する対象データが存在するか否かを判断する(ステップS101)。具体的には、CPU11は、対象データテーブル155の座標領域を参照し、対象となる対象データの座標領域に対し、X軸負方向及びY軸負方向の所定範囲を座標領域に含む対象データIDを抽出する。CPU11は、左上に隣接する対象データが存在すると判断した場合(ステップS101でYES)、処理をステップS102へ移行させる。CPU11は、左上に隣接する対象データの対象データIDを対象データテーブル155に記憶する(ステップS102)。一方、左上に隣接する対象データが存在しないと判断した場合(ステップS101でNO)、ステップS102をスキップし、一連の処理を終了する。CPU11は、以上の処理を全ての抽出した対象データに対して行う。
図11は位置に基づく属性及び評価値決定処理の手順を示すフローチャートである。CPU11は、対象データテーブル155から座標領域を読み出す(ステップS111)。CPU11は、座標領域の中心点を算出する(ステップS112)。具体的には、CPU11は、左上のX座標と右下のX座標の平均値を中心点のX座標とし、左上のY座標と右下のY座標の平均値を中心点のY座標とすればよい。CPU11は、位置テーブル151を参照し、中心点が属する座標領域を抽出する(ステップS113)。
CPU11は、抽出した座標領域に対応する属性及び評価値を読み出す(ステップS114)。CPU11は、対象データIDに対応付けてRAM12に属性及び評価値を記憶する(ステップS115)。CPU11は、上述した処理を対象データテーブル155に記憶した全ての対象データIDに対し、処理を終了したか否かを判断する(ステップS116)。CPU11は、処理を全て終えていないと判断した場合(ステップS116でNO)、処理をステップS117へ移行させる。CPU11は、次の対象データIDの座標領域を対象データテーブル155から読み出す(ステップS117)。CPU11は、その後処理をステップS112に戻す。以上の処理を繰り返すことにより、全ての対象データIDについての属性及び評価値が決定する。CPU11は、全ての対象データIDについて処理を終了したと判断した場合(ステップS116でYES)、一連の処理を終了する。
図12は隣接対象データの存否に基づく属性及び評価値決定処理の手順を示すフローチャートである。CPU11は、対象データテーブル155から対象データIDを読み出す(ステップS121)。CPU11は、対象データテーブル155から、読み出した対象データIDに対応する隣接する対象データIDを読み出す(ステップS122)。CPU11は、隣接テーブル152を参照し、対応する属性及び評価値を読み出す(ステップS123)。具体的には、CPU11は、隣接対象データの存否に基づき、隣接テーブル152から対応する属性及び評価値を読み出す。
CPU11は、対象データIDに対応付けてRAM12に属性及び評価値を記憶する(ステップS124)。なお、複数の属性の候補が存在する場合は、それぞれの属性及び評価値を記憶しておけばよい。例えば、左の隣接対象データ及び左上の隣接対象データが存在せず、上の隣接データのみが存在する場合、対象データIDに対応付けて、「属性 数値データ、 評価値0.7」と「属性 項目、評価値0.3」と記憶される。
CPU11は、上述した処理を対象データテーブル155に記憶した全ての対象データIDに対し、処理を終了したか否かを判断する(ステップS125)。CPU11は、処理を全て終えていないと判断した場合(ステップS125でNO)、処理をステップS126へ移行させる。CPU11は、次の対象データIDを対象データテーブル155から読み出す(ステップS126)。CPU11は、その後処理をステップS122に戻す。以上の処理を繰り返すことにより、全ての対象データIDについての属性及び評価値が決定する。CPU11は、全ての対象データIDについて処理を終了したと判断した場合(ステップS125でYES)、一連の処理を終了する。
図13及び図14は対象データの文字及び数字内容に基づく属性及び評価値決定処理の手順を示すフローチャートである。CPU11は、対象データテーブル155から対象データID及び対象データを読み出す(ステップS131)。CPU11は、対象データの数字が占める割合を算出する(ステップS132)。CPU11は、記憶部15に記憶した閾値を読み出す(ステップS133)。CPU11は、算出した割合が閾値以上か否かを判断する(ステップS134)。
CPU11は、閾値以上と判断した場合(ステップS134でYES)、対象データは数値データであると認識し、ステップS135へ移行する。CPU11は、数値テーブル153を参照し、対象データが条件を満たす属性及び評価値を抽出する(ステップS135)。具体的には、CPU11は、対象データを構成する数字、記号または文字が数値テーブル153の表示形式フィールドに含まれているか否かを判断する。またCPU11は、対象データを構成する数字、記号または文字が、表示形式フィールドに記述されている条件を満たすか否かを判断する。CPU11は、表示形式フィールドに含まれていると判断した場合、または、条件を満たすと判断した場合、対応する属性及び評価値を抽出する。
CPU11は、ステップS131で読み出した対象データIDに対応付けてRAM12に属性及び評価値を記憶する(ステップS136)。CPU11は、閾値以上でないと判断した場合(ステップS134でNO)、対象データは文字データと判断し、処理をステップS137へ移行する。CPU11は、キーワードテーブル154を参照し、対応する属性及び評価値を抽出する(ステップS137)。具体的にはCPU11は、キーワードフィールドに記憶されたキーワードが、対象データに含まれているか、または一致するか否かを判断する。CPU11は、キーワードに一致または含まれていると判断した場合、当該キーワードに対応する属性及び評価値を読み出す。
CPU11は、対象データIDに対応付けてRAM12に属性及び評価値を記憶する(ステップS138)。ステップS138またはステップS136の処理後、CPU11は、上述した処理を対象データテーブル155に記憶した全ての対象データIDに対し、処理を終了したか否かを判断する(ステップS139)。CPU11は、処理を全て終えていないと判断した場合(ステップS139でNO)、処理をステップS141へ移行させる。CPU11は、次の対象データID及び対象データを対象データテーブル155から読み出す(ステップS141)。CPU11は、その後処理をステップS132に戻す。以上の処理を繰り返すことにより、全ての対象データIDについての属性及び評価値が決定する。CPU11は、全ての対象データIDについて処理を終了したと判断した場合(ステップS139でYES)、一連の処理を終了する。
図15は合計評価値の算出処理手順を示すフローチャートである。CPU11は、ステップS115、S124、S136、及びS138にて記憶した対象データIDに対応する属性及び評価値を、RAM12から読み出す(ステップS151)。CPU11は、候補となる属性毎に評価値を加算する(ステップS152)。CPU11は、属性「数値データ」の評価値を、属性「時刻」、「電話番号」、「価格」、「職員ID」、「時間」、「日数」の各評価値に加算する(ステップS153)。CPU11は、属性及び合計評価値を、対象データテーブル155に記憶する(ステップS154)。なお、属性「数値データ」の評価値については係数を乗じた値を加算しても良い。また、CPU11は、合計評価値が高い順に属性を、対象データテーブル155に記憶する。
CPU11は、上述した処理をRAM12に記憶した全ての対象データIDに対し、処理を終了したか否かを判断する(ステップS155)。CPU11は、処理を全て終えていないと判断した場合(ステップS155でNO)、処理をステップS156へ移行させる。CPU11は、次の対象データID、当該対象データIDに対応する属性及び評価値を対象データテーブル155から読み出す(ステップS156)。CPU11は、その後処理をステップS152に戻す。以上の処理を繰り返すことにより、全ての対象データIDについての属性及び合計評価値が決定する。CPU11は、全ての対象データIDについて処理を終了したと判断した場合(ステップS155でYES)、一連の処理を終了する。なお、CPU11は、罫線の存否に基づき、属性及び評価値を決定しても良い。CPU11は、罫線が対象データの両辺または上下に存在すると判断した場合、属性「数値データ」、評価値「1」としても良い。
図16及び図17は対象データ名の決定処理手順を示すフローチャートである。CPU11は、対象データテーブル155から対象データID及び合計評価値の最も高い属性を読み出す(ステップS161)。CPU11は、属性はタイトル、項目、または名前であるか否かを判断する(ステップS162)。CPU11は、属性がタイトル、項目、または名前であると判断した場合(ステップS162でYES)、処理をステップS163へ移行させる。CPU11は、抽出データフィールドのデータ、すなわち対象データを、対象データ名フィールドにコピーする(ステップS163)。
CPU11は、属性がタイトル、項目、または名前でないと判断した場合(ステップS162でNO)、処理をステップS164へ移行させる。CPU11は、対象データテーブル155を参照し、上で隣接する対象データが存在するか否かを判断する(ステップS164)。CPU11は、存在すると判断した場合(ステップS164でYES)、処理をステップS165へ移行させる。CPU11は、上で隣接する対象データIDを読み出す(ステップS165)。CPU11は、読み出した対象データIDに対応する対象データ名を読み出す(ステップS166)。CPU11は、読み出した対象データ名を対象データ名フィールドにコピーする(ステップS167)。すなわち、上で隣接する対象データ名と同名とする。
CPU11は、上に隣接する対象データが存在しないと判断した場合(ステップS164でNO)、処理をステップS168へ移行させる。CPU11は左で隣接する対象データが存在するか否か判断する(ステップS168)。CPU11は存在すると判断した場合(ステップS168でYES)、ステップS169へ移行する。CPU11は、左で隣接する対象データIDを読み出す(ステップS169)。CPU11は、読み出した対象データIDに対応する対象データ名を読み出す(ステップS171)。CPU11は、読み出した対象データ名を対象データ名フィールドにコピーする(ステップS172)。すなわち、左で隣接する対象データ名と同名とする。なお、本実施形態ではステップS164〜S167の処理を、ステップS168〜S172の処理よりも先に行ったか、左の隣接対象データを優先すべく、先にステップS168〜S172の処理を実行しても良い。
CPU11は、左で隣接する対象データが存在しないと判断した場合(ステップS168でNO)、処理をステップS173に移行させる。CPU11は、対象データ名フィールドに不明と記憶する(ステップS173)。CPU11は、上述した処理をRAM12に記憶した全ての対象データIDに対し、処理を終了したか否かを判断する(ステップS174)。CPU11は、処理を全て終えていないと判断した場合(ステップS174でNO)、処理をステップS175へ移行させる。また、CPU11は、ステップS163、S167及びS172の後も、ステップS174へ処理を移行させる。
CPU11は、次の対象データID、及び、最も合計評価値の高い属性を対象データテーブル155から読み出す(ステップS175)。CPU11は、その後処理をステップS162に戻す。以上の処理を繰り返すことにより、全ての対象データIDについての対象データ名が決定する。CPU11は、全ての対象データIDについて処理を終了したと判断した場合(ステップS174でYES)、一連の処理を終了する。以上の処理により、抽出した対象データの属性を高い精度で特定することが可能となる。
実施の形態2
実施の形態2はユーザの使用履歴に応じて評価値を補正する形態に関する。図18は帳票データのイメージを示す説明図である。CPU11は、入力部13から対象データの選択を受け付ける。図18の例では、項目「残業」の残業時間が複数選択されている。なお、本実施形態では複数の対象データを選択する例を挙げて説明するが、一の対象データを選択するようにしても良い。CPU11は、選択された対象データについて、プロパティの表示要求を、入力部13から受け付ける。CPU11は、プロパティの表示要求を受け付けた場合、図18に示す如く、設定タブ191を記憶部15から読み出し、表示部14に表示する。
図19は実施の形態2に係る対象データテーブル155のレコードレイアウトを示す説明図である。CPU11は、対象データテーブル155を参照し、選択された対象データの対象データIDを読み出す。CPU11は、対象データIDに対応する対象データ名を読み出す。CPU11は、設定タブ191上の対象データ名ボックス194に対象データ名を記述する。図18の例では「残業」と表示されている。CPU11は、対象データIDに対応する、属性を読み出す。CPU11は、合計評価値の高い順に読み出した属性を属性プルダウンボックス192に記述する。図18に示すように属性プルダウンボックス192には、最も合計評価値の高い属性「時間」を先頭に、「金額」、「職員ID」が記述されている。なお、本実施形態では選択した複数の対象データの対象データ名、属性及び属性の合計評価値に伴う順位が一致しているものとして説明する。また属性プルダウンボックス192には、タイトル、項目等、合計評価値がゼロの他の属性をも表示しても良い。
ユーザは入力部13から属性プルダウンボックス192に表示された属性を選択する。例えば当初は属性「時間」と定義されていたが、属性「金額」に変更を希望する場合、属性「金額」を選択する。ユーザは、属性を選択した後、OKボタン193を入力する。CPU11は、OKボタン193の入力及び属性の入力を受け付ける。CPU11は、対象データID及び入力された属性を参照し、対象データテーブル155の選択回数フィールドの数をインクリメントする。
CPU11は、選択回数が更新された場合、または、一定時間経過後に、選択回数を合計評価値に反映させる処理を行う。CPU11は、属性の選択回数が更新される度に、増加した数を、合計評価値に加算する。例えば属性「時間」が1回選択された場合、属性「時間」の合計評価値を1増加させる。なお、CPU11は、係数を乗じ、乗算後の値を合計評価値に加算するようにしても良い。その他、一定時間経過後に、複数の属性の選択回数に基づき、加算値を算出するようにしても良い。
具体的には、CPU11は、合計評価値の最も高い属性の選択回数と、その他の属性の選択回数とを読み出す。CPU11は、その他の属性の選択回数を、合計評価値の最も高い属性の選択回数で除した値を、当該その他の属性の加算値として求める。CPU11は、求めた加算値を、当該その他の属性の合計評価値に加算する。CPU11は、その他の属性の選択回数の合計値を算出する。CPU11は、合計評価値の最も高い属性の選択回数から、合計値を減じ、減じた値を合計評価値の最も高い属性の選択回数で除し、当該除した値を、合計評価値の最も高い属性の加算値とする。CPU11は、合計評価値の最も高い属性の合計評価値に加算値を加算する。CPU11は、選択回数を考慮した合計表価値を求めた後に、合計評価値の高い順に属性を並び替える。
図20は設定タブ191の表示処理手順を示すフローチャートである。CPU11は、記憶部15から図2に示す個人就業実績ファイルを読み出す。CPU11は、対象データの選択を入力部13から受け付ける(ステップS201)。CPU11は、選択した対象データについてのプロパティの表示要求を受け付けたか否かを判断する(ステップS202)。CPU11は、受け付けていないと判断した場合(ステップS202でNO)、受け付けるまで待機する。CPU11は、受け付けたと判断した場合(ステップS202でYES)、処理をステップS203へ移行させる。
CPU11は、選択された対象データの対象データIDを読み出す(ステップS203)。CPU11は、読み出した対象データIDに対応する対象データ名を読み出す(ステップS204)。CPU11は、記憶部15から設定タブ191のテンプレートを読み出す。CPU11は、設定タブ191の対象データ名ボックス194に対象データ名を記述する(ステップS205)。CPU11は、対象データIDに対応する属性及び合計評価値を全て読み出す(ステップS206)。CPU11は、設定タブ191の属性プルダウンボックス192に合計評価値の最も高い順に、属性を記述する(ステップS207)。
CPU11は、記述を終えた設定タブ191を表示部14に表示する(ステップS208)。CPU11は、入力部13から属性の選択を受け付けたか否かを判断する(ステップS209)。CPU11は、属性の選択を受け付けていないと判断した場合(ステップS209でNO)、属性を受け付けるまで待機する。CPU11は、属性の選択を受け付けたと判断した場合(ステップS209でYES)、OKボタン193の入力を条件に、ステップS203で読み出した対象データID及び受け付けた属性に対応する選択回数をインクリメントする(ステップS2010)。CPU11は、設定タブ191の表示を消去する(ステップS2011)。
図21及び図22は評価値の補正処理手順を示すフローチャートである。以下では、定期的(例えば3日ごと)に合計評価値を補正する例を挙げて説明する。CPU11は、対象データテーブル155を参照し、対象データIDを読み出す(ステップS211)。CPU11は、対象データIDに対応する属性、合計評価値及び選択回数を読み出す(ステップS212)。CPU11は、最も合計評価値の高い属性の選択回数(以下、最大選択回数という)を記憶部15に記憶する(ステップS213)。CPU11は、最大選択回数を除く他の属性の選択回数の合計値を算出する(ステップS214)。
CPU11は、最大選択回数から合計値を減算する(ステップS215)。CPU11は、減算値を最大選択回数で除す(ステップS216)。CPU11は、除した値を合計評価値に加算する(ステップS217)。なお、除した値に係数をさらに乗じても良い。CPU11は、属性に対応付けて加算値を合計評価値フィールドに上書きする(ステップS218)。CPU11は、次に合計評価値の高い属性の選択回数を、最大選択回数で除す(ステップS219)。CPU11は、除した値を、ステップS219の属性に対応する合計評価値に加算する(ステップS221)。
CPU11は、属性に対応付けて加算値を合計評価値フィールドに上書きする(ステップS222)。CPU11は、全ての属性の合計評価値について、ステップS219〜S222の処理を終了したか否かを判断する(ステップS223)。CPU11は、処理を終了していないと判断した場合(ステップS223でNO)、処理をステップS219に戻し、さらに次に合計値の高い属性の選択回数を、最大選択回数で除す処理を行う。CPU11は、全ての属性の合計評価値について処理を終了したと判断した場合(ステップS223でYES)、処理をステップS224へ移行させる。
CPU11は、合計評価値の高い順に、対象データテーブル155の属性及び合計評価値を並び替える(ステップS224)。CPU11は、選択回数フィールドの値を消去する(ステップS225)。CPU11は、全ての対象IDについて処理を終了したか否かを判断する(ステップS226)。CPU11は、処理を終えていないと判断した場合(ステップS226でNO)、処理をステップS227へ移行させる。CPU11は、未処理の次の対象IDを読み出す(ステップS227)。CPU11は、その後処理をステップS212に戻す。CPU11は、全ての対象IDについて処理を終了したと判断した場合(ステップS226でYES)、一連の処理を終了する。これにより、帳票データから特定することが可能な属性に加え、ユーザの使用実績をも反映して対象データの属性を精度良く特定することが可能となる。また例えば属性「残業」のデータが「0.00,8.00・・」のような時間の場合と、「7,500、15,000・・」のような金額の場合との複数種類の属性が考えられるところ、本実施形態では対象データの内容と選択実績に基づき精度良く属性を特定することが可能となる。
本実施の形態2は以上の如きであり、その他は実施の形態1と同様であるので、対応する部分には同一の参照番号を付してその詳細な説明を省略する。
実施の形態3
図23は上述した形態のコンピュータ1の動作を示す機能ブロック図である。CPU11が制御プログラム15Pを実行することにより、コンピュータ1は以下のように動作する。抽出部231はデータ群から解析対象となる対象データを抽出する。決定部232は抽出した対象データの内容、該対象データに隣接するデータ及び位置に基づき、前記対象データの候補となる属性及び属性の評価値を決定する。
図24は実施の形態3に係るコンピュータ1のハードウェア群を示すブロック図である。コンピュータ1を動作させるためのプログラムは、ディスクドライブ等の読み取り部10AにCD-ROM、DVD(Digital Versatile Disc)ディスク、メモリーカード、またはUSB(Universal Serial Bus)メモリ等の可搬型記録媒体1Aを読み取らせて記憶部15に記憶しても良い。また当該プログラムを記憶したフラッシュメモリ等の半導体メモリ1Bをコンピュータ1内に実装しても良い。さらに、当該プログラムは、インターネット等の通信網を介して接続される他のサーバコンピュータ(図示せず)からダウンロードすることも可能である。以下に、その内容を説明する。
図24に示すコンピュータ1は、上述した各種ソフトウェア処理を実行するプログラムを、可搬型記録媒体1Aまたは半導体メモリ1Bから読み取り、或いは、通信網を介して他のサーバコンピュータ(図示せず)からダウンロードする。当該プログラムは、制御プログラム15Pとしてインストールされ、RAM12にロードして実行される。これにより、上述したコンピュータ1として機能する。
本実施の形態3は以上の如きであり、その他は実施の形態1と同様であるので、対応する部分には同一の参照番号を付してその詳細な説明を省略する。
以上の実施の形態1から3を含む実施形態に関し、さらに以下の付記を開示する。
(付記1)
コンピュータに、
データ群から解析対象となる対象データを抽出し、
抽出した対象データの内容、該対象データに隣接するデータ及び位置に基づき、前記対象データの候補となる属性及び属性の評価値を決定する
処理を実行させるプログラム。
(付記2)
対象データが配置された位置を抽出し、
データの配置される位置に対応付けて属性及び評価値を記憶した記憶部を参照し、前記対象データの属性及び評価値を読み出し、
読み出した属性及び評価値に基づき、前記対象データの候補となる属性及び属性の評価値を決定する
付記1に記載のプログラム。
(付記3)
隣接するデータの存否を判断し、
隣接するデータの存否に応じて属性及び評価値を記憶した記憶部を参照し、前記対象データの属性及び評価値を読み出し、
読み出した属性及び評価値に基づき、前記対象データの候補となる属性及び属性の評価値を決定する
付記1または2に記載のプログラム。
(付記4)
隣接するデータが存在する場合に、前記隣接するデータの属性を取得し、
取得した属性に基づき、前記対象データの候補となる属性および属性の評価値を決定する
付記1から3のいずれか一つに記載のプログラム。
(付記5)
対象データが数値を含む数値データであるか否かを判断し、
数値データであると判断した場合、対象データの表示形式に対応付けて時間、日数または金額を含む属性及び評価値を記憶した記憶部を参照し、前記対象データの属性及び評価値を読み出し、
読み出した属性及び評価値に基づき、前記対象データの候補となる属性及び属性の評価値を決定する
付記1から4のいずれか一つに記載のプログラム。
(付記6)
キーワードに対応付けてタイトル、項目または名前を含む属性及び評価値を記憶した記憶部を参照し、前記対象データの属性及び評価値を読み出し、
読み出した属性及び評価値に基づき、前記対象データの候補となる属性及び属性の評価値を決定する
付記1から5のいずれか一つに記載のプログラム。
(付記7)
決定した属性がタイトル、項目または名前である場合、前記対象データを含む対象データ名を生成する
付記1から6のいずれか一つに記載のプログラム。
(付記8)
決定した属性が時間、日数または金額である場合、隣接するデータの対象データ名に基づき前記対象データの対象データ名を生成する
付記1から7のいずれか一つに記載のプログラム。
(付記9)
決定した候補となる属性を出力し、
各属性に対する選択回数を計数し、
各属性の選択回数に応じて、各属性の評価値を補正する
付記1から8のいずれか一つに記載のプログラム。
(付記10)
データ群から解析対象となる対象データを抽出する抽出部と、
抽出した対象データの内容、該対象データに隣接するデータ及び位置に基づき、前記対象データの候補となる属性及び属性の評価値を決定する決定部と
を備える情報処理装置。
(付記11)
情報処理装置を用いた情報処理方法において、
データ群から解析対象となる対象データを抽出し、
抽出した対象データの内容、該対象データに隣接するデータ及び位置に基づき、前記対象データの候補となる属性及び属性の評価値を決定する
情報処理方法。