(57)【要約】  多様なフォーマットの表形式データを容易に登録できる表形式データの解析方法、表形式データの解析プログラム及び情報処理装置を提供する。表形式データの解析方法は、入力された表形式データの各行又は各列についてデータが入力されたセルの有無を判定する処理（１３１）をコンピュータ（１００）が実行する。また、表形式データの解析方法は、データが入力されたセルが存在する複数の連続する行又は列の塊を１つの表データに関連する部分として抽出する処理（１３２）をコンピュータ（１００）が実行する。
2017134800.tif 000002
【特許請求の範囲】
【請求項１】
入力された表形式データの各行又は各列についてデータが入力されたセルの有無を判定し、
データが入力されたセルが存在する複数の連続する行又は列の塊を１つの表データに関連する部分として抽出する、
処理をコンピュータが実行することを特徴とする表形式データの解析方法。
【請求項２】
前記行又は列の塊のうち、データが入力されたセルの数を行ごと又は列ごとにカウントし、
カウント値が最大の行又は列のうち、最も上側の行又は最も左側の列を表の項目を示す行又は列として特定する、
ことを特徴とする請求項１に記載の表形式データの解析方法。
【請求項３】
前記行又は列の塊のうち、データが入力されたセルの数を行ごと又は列ごとにカウントし、
カウント値が最大の行又は列のうち、最も上側の行又は最も左側の列を検出し、
検出した前記最も上側の行に隣接する下側の行に対応するカウント値が最大でない場合、又は、検出した前記最も左側の列に隣接する右側の列に対応するカウント値が最大でない場合に、最も上側の行又は最も左側の列を表の項目を示す行又は列として特定する、
ことを特徴とする請求項１に記載の表形式データの解析方法。
【請求項４】
前記行又は列の塊のうち、データが入力されたセルの数を行ごと又は列ごとにカウントし、
カウント値が最大の行又は列のうち、最も上側の行又は最も左側の列を検出し、
検出した前記最も上側の行を含み連続する複数行が同じカウント値である場合に、前記複数行について行内のセルのうち非数値データが入力されたセルの割合に基づいて、項目を示す行を特定する、又は、検出した前記最も左側の列を含み連続する複数列が同じカウント値である場合に、前記複数列について列内のセルのうち非数値データが入力されたセルの割合に基づいて、項目を示す列として特定する、
ことを特徴とする請求項１に記載の表形式データの解析方法。
【請求項５】
入力された表形式データの各行又は各列についてデータが入力されたセルの有無を判定し、
データが入力されたセルが存在する複数の連続する行又は列の塊を１つの表データに関連する部分として抽出し、
前記行又は列の塊のうち項目行又は項目列を特定し、
特定した前記行又は列にセル連結処理が施された特定のセルが含まれる場合に、前記特定のセルを単位セルに分割するとともに、分割された単位セルのそれぞれに前記特定のセルに入力されたデータと同じデータを入力する編集処理を実行し、
前記編集処理後の前記項目行又は前記項目列の各セルの入力データを項目名とし、各行又は各列の値を対応する項目名と対応付けて記憶する、
ことを特徴とする請求項１に記載の表形式データの解析方法。
【請求項６】
入力された表形式データの各行又は各列についてデータが入力されたセルの有無を判定し、
データが入力されたセルが存在する複数の連続する行又は列の塊を１つの表データに関連する部分として抽出し、
前記行又は列の塊のうち連続する複数の項目行又は連続する複数の項目列を特定し、
特定した前記連続する複数の項目行若しくは連続する複数の項目列について、同じ列若しくは同じ列のセルを含む連結セルの値、又は、同じ行若しくは同じ行のセルを含む連結セルの値を合成した値を項目名として生成し、
各行又は各列の値を、対応する項目名と対応付けて記憶する、
ことを特徴とする請求項１に記載の表形式データの解析方法。
【請求項７】
入力された表形式データの各行又は各列についてデータが入力されたセルの有無を判定し、
データが入力されたセルが存在する複数の連続する行又は列の塊を１つの表データに関連する部分として抽出し、
前記行又は列の塊のうち、データが入力されたセルの数を行ごと又は列ごとにカウントし、
カウント値が最大の行又は列のうち、最も上側の行又は最も左側の列が、入力されたデータが項目名ではないセルを含む場合であっても、前記最も上側の行又は前記最も左側の列を、項目行又は項目列として特定する、
ことを特徴とする請求項１に記載の表形式データの解析方法。
【請求項８】
入力された表形式データの各行又は各列についてデータが入力されたセルの有無を判定し、
データが入力されたセルが存在する複数の連続する行又は列の塊を１つの表データに関連する部分として抽出し、
前記行又は列の塊のうち、データが入力されたセルの数を行ごと又は列ごとにカウントし、
カウント値が最大の行又は列のうち、最も上側の行又は最も左側の列が、入力されたデータが重複するセルを含む場合に、前記最も上側の行のさらに上側又は前記最も左側の列のさらに左側に新たな行又は列を追加し、追加した行又は列を項目行又は項目列として特定する、
ことを特徴とする請求項１に記載の表形式データの解析方法。
【請求項９】
入力された表形式データの各行又は各列についてデータが入力されたセルの有無を判定し、
データが入力されたセルが存在する複数の連続する行又は列の塊を１つの表データに関連する部分として抽出し、
前記行又は列の塊のうち、データが入力されたセルの数を行ごと又は列ごとにカウントし、
カウント値が最大の行又は列のうち、最も上側の行又は最も左側の列が、空白のセルを含む場合に、前記最も上側の行のさらに上側又は前記最も左側の列のさらに左側に新たな行又は列を追加し、追加した行又は列を項目行又は項目列として特定する、
ことを特徴とする請求項１に記載の表形式データの解析方法。
【請求項１０】
入力された表形式データの各行又は各列についてデータが入力されたセルの有無を判定し、
データが入力されたセルが存在しない１又は複数の連続する行又は列を挟んで、データが入力されたセルが存在する１又は複数の連続する行又は列の塊を２つ検出すると、該２つの塊のそれぞれを異なる表データとして抽出する、
処理をコンピュータが実行することを特徴とする表形式データの解析方法。
【請求項１１】
入力された表形式データの各行又は各列についてデータが入力されたセルの有無を判定し、
データが入力されたセルが存在する複数の連続する行又は列の塊を１つの表データに関連する部分として抽出する、
処理をコンピュータに実行させることを特徴とする表形式データの解析プログラム。
【請求項１２】
前記行又は列の塊のうち、データが入力されたセルの数を行ごと又は列ごとにカウントし、
カウント値が最大の行又は列のうち、最も上側の行又は最も左側の列を表の項目を示す行又は列として特定する、
ことを特徴とする請求項１１に記載の表形式データの解析プログラム。
【請求項１３】
前記行又は列の塊のうち、データが入力されたセルの数を行ごと又は列ごとにカウントし、
カウント値が最大の行又は列のうち、最も上側の行又は最も左側の列を検出し、
検出した前記最も上側の行に隣接する下側の行に対応するカウント値が最大でない場合、又は、検出した前記最も左側の列に隣接する右側の列に対応するカウント値が最大でない場合に、最も上側の行又は最も左側の列を表の項目を示す行又は列として特定する、
ことを特徴とする請求項１１に記載の表形式データの解析プログラム。
【請求項１４】
前記行又は列の塊のうち、データが入力されたセルの数を行ごと又は列ごとにカウントし、
カウント値が最大の行又は列のうち、最も上側の行又は最も左側の列を検出し、
検出した前記最も上側の行を含み連続する複数行が同じカウント値である場合に、前記複数行について行内のセルのうち非数値データが入力されたセルの割合に基づいて、項目を示す行を特定する、又は、検出した前記最も左側の列を含み連続する複数列が同じカウント値である場合に、前記複数列について列内のセルのうち非数値データが入力されたセルの割合に基づいて、項目を示す列として特定する、
ことを特徴とする請求項１１に記載の表形式データの解析プログラム。
【請求項１５】
入力された表形式データの各行又は各列についてデータが入力されたセルの有無を判定し、
データが入力されたセルが存在する複数の連続する行又は列の塊を１つの表データに関連する部分として抽出し、
前記行又は列の塊のうち項目行又は項目列を特定し、
特定した前記行又は列にセル連結処理が施された特定のセルが含まれる場合に、前記特定のセルを単位セルに分割するとともに、分割された単位セルのそれぞれに前記特定のセルに入力されたデータと同じデータを入力する編集処理を実行し、
前記編集処理後の前記項目行又は前記項目列の各セルの入力データを項目名とし、各行又は各列の値を対応する項目名と対応付けて記憶する、
ことを特徴とする請求項１１に記載の表形式データの解析プログラム。
【請求項１６】
入力された表形式データの各行又は各列についてデータが入力されたセルの有無を判定し、
データが入力されたセルが存在する複数の連続する行又は列の塊を１つの表データに関連する部分として抽出し、
前記行又は列の塊のうち連続する複数の項目行又は連続する複数の項目列を特定し、
特定した前記連続する複数の項目行若しくは連続する複数の項目列について、同じ列若しくは同じ列のセルを含む連結セルの値、又は、同じ行若しくは同じ行のセルを含む連結セルの値を合成した値を項目名として生成し、
各行又は各列の値を、対応する項目名と対応付けて記憶する、
ことを特徴とする請求項１１に記載の表形式データの解析プログラム。
【請求項１７】
入力された表形式データの各行又は各列についてデータが入力されたセルの有無を判定し、
データが入力されたセルが存在する複数の連続する行又は列の塊を１つの表データに関連する部分として抽出し、
前記行又は列の塊のうち、データが入力されたセルの数を行ごと又は列ごとにカウントし、
カウント値が最大の行又は列のうち、最も上側の行又は最も左側の列が、入力されたデータが項目名ではないセルを含む場合であっても、前記最も上側の行又は前記最も左側の列を、項目行又は項目列として特定する、
ことを特徴とする請求項１１に記載の表形式データの解析プログラム。
【請求項１８】
入力された表形式データの各行又は各列についてデータが入力されたセルの有無を判定し、
データが入力されたセルが存在する複数の連続する行又は列の塊を１つの表データに関連する部分として抽出し、
前記行又は列の塊のうち、データが入力されたセルの数を行ごと又は列ごとにカウントし、
カウント値が最大の行又は列のうち、最も上側の行又は最も左側の列が、入力されたデータが重複するセルを含む場合に、前記最も上側の行のさらに上側又は前記最も左側の列のさらに左側に新たな行又は列を追加し、追加した行又は列を項目行又は項目列として特定する、
ことを特徴とする請求項１１に記載の表形式データの解析プログラム。
【請求項１９】
入力された表形式データの各行又は各列についてデータが入力されたセルの有無を判定し、
データが入力されたセルが存在する複数の連続する行又は列の塊を１つの表データに関連する部分として抽出し、
前記行又は列の塊のうち、データが入力されたセルの数を行ごと又は列ごとにカウントし、
カウント値が最大の行又は列のうち、最も上側の行又は最も左側の列が、空白のセルを含む場合に、前記最も上側の行のさらに上側又は前記最も左側の列のさらに左側に新たな行又は列を追加し、追加した行又は列を項目行又は項目列として特定する、
ことを特徴とする請求項１１に記載の表形式データの解析プログラム。
【請求項２０】
入力された表形式データの各行又は各列についてデータが入力されたセルの有無を判定し、
データが入力されたセルが存在しない１又は複数の連続する行又は列を挟んで、データが入力されたセルが存在する１又は複数の連続する行又は列の塊を２つ検出すると、該２つの塊のそれぞれを異なる表データとして抽出する、
処理をコンピュータに実行させることを特徴とする表形式データの解析プログラム。
【請求項２１】
入力された表形式データの各行又は各列についてデータが入力されたセルの有無を判定する判定部と、
データが入力されたセルが存在する複数の連続する行又は列の塊を１つの表データに関連する部分として抽出する抽出部と、
を有することを特徴とする情報処理装置。
【請求項２２】
さらに、
前記行又は列の塊のうち、データが入力されたセルの数を行ごと又は列ごとにカウントするカウント部と、
カウント値が最大の行又は列のうち、最も上側の行又は最も左側の列を表の項目を示す行又は列として特定する特定部と、
を有することを特徴とする請求項２１に記載の情報処理装置。
【請求項２３】
さらに、
前記行又は列の塊のうち、データが入力されたセルの数を行ごと又は列ごとにカウントするカウント部と、
カウント値が最大の行又は列のうち、最も上側の行又は最も左側の列を検出する検出部と、
検出した前記最も上側の行に隣接する下側の行に対応するカウント値が最大でない場合、又は、検出した前記最も左側の列に隣接する右側の列に対応するカウント値が最大でない場合に、最も上側の行又は最も左側の列を表の項目を示す行又は列として特定する特定部と、
を有することを特徴とする請求項２１に記載の情報処理装置。
【請求項２４】
さらに、
前記行又は列の塊のうち、データが入力されたセルの数を行ごと又は列ごとにカウントするカウント部と、
カウント値が最大の行又は列のうち、最も上側の行又は最も左側の列を検出する検出部と、
検出した前記最も上側の行を含み連続する複数行が同じカウント値である場合に、前記複数行について行内のセルのうち非数値データが入力されたセルの割合に基づいて、項目を示す行を特定する、又は、検出した前記最も左側の列を含み連続する複数列が同じカウント値である場合に、前記複数列について列内のセルのうち非数値データが入力されたセルの割合に基づいて、項目を示す列として特定する特定部と、
を有することを特徴とする請求項２１に記載の情報処理装置。
【請求項２５】
さらに、
前記行又は列の塊のうち項目行又は項目列を特定する特定部と、
特定した前記行又は列にセル連結処理が施された特定のセルが含まれる場合に、前記特定のセルを単位セルに分割するとともに、分割された単位セルのそれぞれに前記特定のセルに入力されたデータと同じデータを入力する編集処理を実行する編集部と、
前記編集処理後の前記項目行又は前記項目列の各セルの入力データを項目名とし、各行又は各列の値を対応する項目名と対応付けて記憶する記憶制御部と、
を有することを特徴とする請求項２１に記載の情報処理装置。
【請求項２６】
さらに、
前記行又は列の塊のうち連続する複数の項目行又は連続する複数の項目列を特定する特定部と、
特定した前記連続する複数の項目行若しくは連続する複数の項目列について、同じ列若しくは同じ列のセルを含む連結セルの値、又は、同じ行若しくは同じ行のセルを含む連結セルの値を合成した値を項目名として生成する生成部と、
各行又は各列の値を、対応する項目名と対応付けて記憶する記憶制御部と、
を有することを特徴とする請求項２１に記載の情報処理装置。
【請求項２７】
さらに、
前記行又は列の塊のうち、データが入力されたセルの数を行ごと又は列ごとにカウントするカウント部と、
カウント値が最大の行又は列のうち、最も上側の行又は最も左側の列が、入力されたデータが項目名ではないセルを含む場合であっても、前記最も上側の行又は前記最も左側の列を、項目行又は項目列として特定する特定部と、
を有することを特徴とする請求項２１に記載の情報処理装置。
【請求項２８】
さらに、
前記行又は列の塊のうち、データが入力されたセルの数を行ごと又は列ごとにカウントするカウント部と、
カウント値が最大の行又は列のうち、最も上側の行又は最も左側の列が、入力されたデータが重複するセルを含む場合に、前記最も上側の行のさらに上側又は前記最も左側の列のさらに左側に新たな行又は列を追加し、追加した行又は列を項目行又は項目列として特定する特定部と、
を有することを特徴とする請求項２１に記載の情報処理装置。
【請求項２９】
さらに、
前記行又は列の塊のうち、データが入力されたセルの数を行ごと又は列ごとにカウントするカウント部と、
カウント値が最大の行又は列のうち、最も上側の行又は最も左側の列が、空白のセルを含む場合に、前記最も上側の行のさらに上側又は前記最も左側の列のさらに左側に新たな行又は列を追加し、追加した行又は列を項目行又は項目列として特定する特定部と、
を有することを特徴とする請求項２１に記載の情報処理装置。
【請求項３０】
入力された表形式データの各行又は各列についてデータが入力されたセルの有無を判定する判定部と、
データが入力されたセルが存在しない１又は複数の連続する行又は列を挟んで、データが入力されたセルが存在する１又は複数の連続する行又は列の塊を２つ検出すると、該２つの塊のそれぞれを異なる表データとして抽出する抽出部と、
を有することを特徴とする情報処理装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、表形式データの解析方法、表形式データの解析プログラム及び情報処理装置に関する。
【背景技術】
【０００２】
近年、例えば地方自治体が、当該地方自治体の地域内の観光地について様々な情報を集約し、インターネット上のホームページで公開することが行われている。当該地方自治体は、観光地の施設等から情報の提供を受けることで、観光地の情報を収集する。また、当該自治体の委託先企業が自治体からオープンデータとして観光地の情報の提供を受けて入力する場合もある。この場合、提供を受ける情報は、例えば、表形式データである各種表計算ソフトウェアのファイル形式、ＣＳＶ（Comma-Separated  Values）形式、ＴＳＶ（Tab-Separated  Values）形式等の様々なフォーマットに基づいた情報である。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２０１３−０１５９０９号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
しかしながら、情報の表形式データのフォーマットが統一されていないため、例えば、表形式データをデータベース（以下、ＤＢともいう。）に登録する際に、表形式データの項目と値との対応がずれてしまう場合がある。このため、表形式データをＤＢに登録する管理者によって、項目と値との対応付けを修正したり、正常に登録されているか確認したりする手間が発生する。【０００５】
一つの側面では、本発明は、多様なフォーマットの表形式データを容易に登録できる表形式データの解析方法、表形式データの解析プログラム及び情報処理装置を提供することにある。
【課題を解決するための手段】
【０００６】
一つの態様では、表形式データの解析方法は、入力された表形式データの各行又は各列についてデータが入力されたセルの有無を判定する処理をコンピュータが実行する。また、表形式データの解析方法は、データが入力されたセルが存在する複数の連続する行又は列の塊を１つの表データに関連する部分として抽出する処理をコンピュータが実行する。
【発明の効果】
【０００７】
多様なフォーマットの表形式データを容易に登録できる。
【図面の簡単な説明】
【０００８】
【図１】図１は、実施例の情報処理装置の構成の一例を示すブロック図である。
【図２】図２は、表形式データ及び表データの一例を示す図である。
【図３】図３は、情報ＤＢの一例を示す図である。
【図４】図４は、表データの抽出の一例を示す図である。
【図５】図５は、表データの抽出の他の一例を示す図である。
【図６】図６は、編集処理の一例を示す図である。
【図７】図７は、編集処理の他の一例を示す図である。
【図８】図８は、編集処理の他の一例を示す図である。
【図９】図９は、項目行ではない行におけるセルの連結解除の一例を示す図である。
【図１０】図１０は、項目名の生成の一例を示す図である。
【図１１】図１１は、項目名の生成の他の一例を示す図である。
【図１２】図１２は、項目行の特定の一例を示す図である。
【図１３】図１３は、項目行の特定の他の一例を示す図である。
【図１４】図１４は、項目行の特定の他の一例を示す図である。
【図１５】図１５は、項目行の特定の他の一例を示す図である。
【図１６】図１６は、項目列の特定の一例を示す図である。
【図１７】図１７は、項目列の特定の他の一例を示す図である。
【図１８】図１８は、項目行の追加の一例を示す図である。
【図１９】図１９は、項目行の追加の他の一例を示す図である。
【図２０】図２０は、整形後の表データの一例を示す図である。
【図２１】図２１は、実施例の解析処理の一例を示すフローチャートである。
【図２２】図２２は、表形式データの解析プログラムを実行するコンピュータの一例を示す図である。
【発明を実施するための形態】
【０００９】
以下、図面に基づいて、本願の開示する表形式データの解析方法、表形式データの解析プログラム及び情報処理装置の実施例を詳細に説明する。なお、本実施例により、開示技術が限定されるものではない。また、以下の実施例は、矛盾しない範囲で適宜組みあわせてもよい。
【実施例】
【００１０】
図１は、実施例の情報処理装置の構成の一例を示すブロック図である。図１に示す情報処理装置１００は、入力された表形式データの各行又は各列についてデータが入力されたセルの有無を判定する。また、情報処理装置１００は、データが入力されたセルが存在する複数の連続する行又は列の塊を１つの表データに関連する部分として抽出する。これにより、情報処理装置１００は、多様なフォーマットの表形式データを容易に登録できる。なお、以下の説明では、主に行方向に着目して説明するが、列方向についても同様に適用可能である。【００１１】
図１に示す情報処理装置１００は、通信部１１０と、表示部１１１と、操作部１１２と、記憶部１２０と、制御部１３０とを有する。なお、情報処理装置１００は、図１に示す機能部以外にも既知のコンピュータが有する各種の機能部、例えば各種の通信デバイス、入力デバイスや音声出力デバイス等の機能部を有することとしてもかまわない。情報処理装置１００の一例としては、サーバ等の据置型のコンピュータを採用できる。情報処理装置１００には、上記のサーバ等の据置型のコンピュータのみならず、可搬型や据置型のパーソナルコンピュータを情報処理装置１００として採用することもできる。【００１２】
通信部１１０は、例えば、ＮＩＣ（Network  Interface  Card）等によって実現される。通信部１１０は、図示しないネットワークを介して図示しないユーザの端末装置と有線又は無線で接続され、端末装置との間で情報の通信を司る通信インタフェースである。通信部１１０は、端末装置から表形式データを受信する。通信部１１０は、受信した表形式データを制御部１３０に出力する。【００１３】
ここで、図２を用いて表形式データについて説明する。図２は、表形式データ及び表データの一例を示す図である。図２に示す表形式データ１１は、例えば、複数の表データ１２ａ、１２ｂと、表形式データ１１のタイトル等を含むデータである。なお、以下の説明では、例えば１つのファイル全体のデータを表形式データと表現し、表形式データ内の個々の表を表データと表現する。表形式データ１１には、例えば、最上段の行に項目（ヘッダ）がある表データ、最上段の行と最左列の列に項目がある表データ、小項目を表すためにセルが連結されて項目行が２行に渡る表データ等が含まれる。なお、表データは、これらに限定されず、行列の形で表すことができるデータであれば、どのようなデータでもよい。また、表形式データは、例えば、官公庁や自治体から提供されるオープンデータを用いることができる。【００１４】
図１の説明に戻って、表示部１１１は、各種情報を表示するための表示デバイスである。表示部１１１は、例えば、表示デバイスとして液晶ディスプレイ等によって実現される。表示部１１１は、制御部１３０から入力された表示画面等の各種画面を表示する。【００１５】
操作部１１２は、情報処理装置１００の管理者から各種操作を受け付ける入力デバイスである。操作部１１２は、例えば、入力デバイスとして、キーボードやマウス等によって実現される。操作部１１２は、管理者によって入力された操作を操作情報として制御部１３０に出力する。なお、操作部１１２は、入力デバイスとして、タッチパネル等によって実現されるようにしてもよく、表示部１１１の表示デバイスと、操作部１１２の入力デバイスとは、一体化されるようにしてもよい。【００１６】
記憶部１２０は、例えば、ＲＡＭ（Random  Access  Memory）、フラッシュメモリ（Flash  Memory）等の半導体メモリ素子、ハードディスクや光ディスク等の記憶装置によって実現される。記憶部１２０は、情報データベース１２１を有する。なお、以下の説明では、情報データベース１２１を情報ＤＢ１２１と省略して表現する。また、記憶部１２０は、制御部１３０での処理に用いる情報を記憶する。【００１７】
情報ＤＢ１２１は、表データについて、項目と値とを対応付けて記憶する。図３は、情報ＤＢの一例を示す図である。図３に示すように、情報ＤＢ１２１は、「行」、「項目」、「値」といった項目を有する。情報ＤＢ１２１は、例えば、表データを構成するセルごとに１レコードとして記憶する。【００１８】
「行」は、データが入力されているセルの行を示す情報である。「項目」は、セルに対応する項目を示す情報である。「値」は、セルに格納されているデータを示す情報である。図３の１行目の例では、表データの「１」行目の項目「ｘ１」の値は「ｙ１」となる。【００１９】
図１の説明に戻って、制御部１３０は、例えば、ＣＰＵ（Central  Processing  Unit）やＭＰＵ（Micro  Processing  Unit）等によって、内部の記憶装置に記憶されているプログラムがＲＡＭを作業領域として実行されることにより実現される。また、制御部１３０は、例えば、ＡＳＩＣ（Application  Specific  Integrated  Circuit）やＦＰＧＡ（Field  Programmable  Gate  Array）等の集積回路により実現されるようにしてもよい。制御部１３０は、判定部１３１と、抽出部１３２と、編集部１３３と、カウント部１３４と、生成部１３５と、検出部１３６と、特定部１３７と、記憶制御部１３８とを有し、以下に説明する情報処理の機能や作用を実現又は実行する。なお、制御部１３０の内部構成は、図１に示した構成に限られず、後述する情報処理を行う構成であれば他の構成であってもよい。【００２０】
判定部１３１は、通信部１１０から表形式データが入力されると、入力された表形式データの各行又は各列について、データが入力されたセルの有無を判定する。すなわち、判定部１３１は、表形式データのデータ入力セルの有無を判定する。判定部１３１は、表形式データ及び判定結果を抽出部１３２に出力する。【００２１】
抽出部１３２は、判定部１３１から表形式データ及び判定結果が入力されると、判定結果に基づいて、表形式データから、データが入力されたセルが存在する複数の連続する行又は列の塊を１つの表データに関連する部分として抽出する。すなわち、抽出部１３２は、データが入力されたセルが存在しない１又は複数の連続する行又は列を挟んで、データが入力されたセルが存在する１又は複数の連続する行又は列の塊を２つ検出すると、該２つの塊のそれぞれを異なる表データとして抽出する。抽出部１３２は、表データを抽出すると、抽出した表データを第１表データとして編集部１３３及び生成部１３５に出力する。また、抽出部１３２は、第１表データを記憶部１２０に記憶する。【００２２】
ここで、図４及び図５を用いて表データの抽出について説明する。図４は、表データの抽出の一例を示す図である。図４は、表データが縦方向に複数存在する場合の一例である。図４の例では、表形式データ１３について、各行のデータ入力数１４を検出する。例えば、表形式データ１３では、１行目は表形式データ１３のタイトルが１つのセルに入力されているので、データ入力数１４は「１」となる。また、２行目は、データが入力されているセルがないので、データ入力数１４は「０」となる。以下同様に、各行のデータ入力数１４を検出する。【００２３】
抽出部１３２は、データ入力数１４が「０」である行を表データの切れ目と判定し、表形式データ１３を切れ目で分割する。なお、以下の説明では、分割された表データに関する部分である塊をクラスタともいう。表形式データ１３は、クラスタ１５と、クラスタ１６と、クラスタ１７とに分割される。クラスタ１５は、表形式データ１３のタイトルである。クラスタ１６は、１つ目の表データである。クラスタ１７は、２つ目の表データである。抽出部１３２は、クラスタ１６及びクラスタ１７を第１表データとして抽出する。なお、抽出された第１表データは、例えばメモリ上で二次元配列等を用いて表形式に展開される。また、以下の説明において、第１表データに基づく各表データも同様である。【００２４】
図５は、表データの抽出の他の一例を示す図である。図５は、表データが横方向に複数存在する場合の一例である。図５の例では、表形式データ１８について、各列のデータ入力数１９を検出する。例えば、表形式データ１８では、１列目はデータが入力されているセルがないので、データ入力数１９は「０」となる。また、２列目は、１行目に表形式データ１８のタイトル、２行目に「ａ」、３行目に「１」、４行目に「１」が入力されているので、データ入力数１９は「４」となる。以下同様に、各列のデータ入力数１９を検出する。【００２５】
抽出部１３２は、データ入力数１９が「０」である列を表データの切れ目と判定し、表形式データ１８を切れ目で分割する。表形式データ１８は、クラスタ２０と、クラスタ２１とに分割される。クラスタ２０は、１つ目の表データである。クラスタ２１は、２つ目の表データである。抽出部１３２は、クラスタ２０及びクラスタ２１を第１表データとして抽出する。なお、クラスタ２０は、クラスタ２１と比べて、５行目にデータ入力セルがないが、５行目に空文字を付加して表の大きさを揃えている。【００２６】
図１の説明に戻って、編集部１３３は、抽出部１３２から第１表データが入力されると、入力された第１表データに対して編集処理を実行する。編集部１３３は、まず、第１表データのうち、タイトルのセルを除く表を構成するセルの中で、最も上側の行又は最も左側の列を項目行又は項目列と仮に決定する。なお、タイトルのセルは、第１表データの中で、抽出部１３２で用いたデータ入力数が「１」である最も上側又は最も左側の行又は列として判定できる。編集部１３３は、仮に決定した項目行又は項目列にセル連結処理が施された特定のセルが含まれる場合には、特定のセルを単位セルに分割する。また、編集部１３３は、分割された単位セルのそれぞれに特定のセルに入力されたデータと同じデータを入力する。編集部１３３は、編集処理を完了した表データを第２表データとしてカウント部１３４及び生成部１３５に出力する。また、編集部１３３は、仮に決定した項目行又は項目列にセル連結処理が施された特定のセルが含まれない場合には、入力された第１表データをそのまま第２表データとしてカウント部１３４及び生成部１３５に出力する。【００２７】
ここで、図６から図９を用いて編集処理について説明する。図６は、編集処理の一例を示す図である。図６の例では、第１表データ２２の１行目にセル連結処理が施されたセルが含まれている。つまり、値「ａ」、「ｂ」のセルが、セル連結処理が施された特定のセルである。編集部１３３は、特定のセルを単位セルに分割し、値「ａ」、「ｂ」を、分割された単位セルのそれぞれに入力する。編集部１３３は、編集処理を完了した第２表データ２３をカウント部１３４及び生成部１３５に出力する。【００２８】
図７は、編集処理の他の一例を示す図である。図７の例では、図６の例と同様に、第１表データ２４のセル連結処理が施された特定のセルの値「ａ」、「ｂ」を、分割された単位セルのそれぞれに入力して第２表データ２５としている。【００２９】
図８は、編集処理の他の一例を示す図である。図８の例では、第１表データ２６の１列目にセル連結処理が施されたセルが含まれている。つまり、値「ｇ」、「ｈ」のセルが、セル連結処理が施された特定のセルである。編集部１３３は、特定のセルを単位セルに分割し、値「ｇ」、「ｈ」を、分割された単位セルのそれぞれに入力する。編集部１３３は、編集処理を完了した第２表データ２７をカウント部１３４及び生成部１３５に出力する。すなわち、編集部１３３は、行方向のセル連結処理が施された特定のセルと、列方向のセル連結処理が施された特定のセルとを単位セルに分割し、分割された単位セルのそれぞれに特定のセルの値を入力する。【００３０】
図９は、項目行ではない行におけるセルの連結解除の一例を示す図である。図９の例では、第１表データ２８の最終行、つまり４行目にセル連結処理が施されたセルが含まれている。つまり、値「１００」のセルが、セル連結処理が施された特定のセルである。編集部１３３は、第１表データ２８の最終行が項目行ではないので、特定のセルを単位セルに分割し、値「１００」を分割した単位セルのうち１つのセルに入力する。編集部１３３は、編集処理を完了した第２表データ２９をカウント部１３４及び生成部１３５に出力する。なお、図９の例では、１行目のセルの連結処理の解除の説明は省略している。なお、項目行ではない行におけるセルの連結解除は、特定部１３７において項目行又は項目列が特定された後に行ってもよい。【００３１】
図１の説明に戻って、カウント部１３４は、編集部１３３から第２表データが入力されると、第２表データのうち、データが入力されたセルの数を行ごと又は列ごとにカウントする。すなわち、カウント部１３４は、行又は列の塊のうち、データが入力されたセルの数を行ごと又は列ごとにカウントする。カウント部１３４は、行ごと又は列ごとにカウントしたセルの数をカウント値として検出部１３６に出力する。【００３２】
生成部１３５には、抽出部１３２から第１表データが入力され、編集部１３３から第２表データが入力される。生成部１３５は、まず、入力された第１表データのうち、タイトルのセルを除く表を構成するセルの中で、最も上側の行又は最も左側の列を項目行又は項目列と仮に決定する。なお、タイトルのセルは、編集部１３３と同様に判定できる。生成部１３５は、仮に決定した項目行又は項目列にセル連結処理が施された特定のセルが含まれる場合には、特定のセルを含む範囲を連続する複数の項目行又は連続する複数の項目列と仮に決定する。すなわち、生成部１３５は、特定のセルを分割したそれぞれの単位セルが含まれる行又は列と、当該行又は列の下側又は右側に隣接する行又は列とを、連続する複数の項目行又は連続する複数の項目列と仮に決定する。【００３３】
生成部１３５は、連続する複数の項目行又は連続する複数の項目列を仮に決定すると、編集部１３３から入力された第２表データに対して、項目名の生成を実行する。すなわち、生成部１３５は、仮に決定した連続する複数の項目行若しくは連続する複数の項目列について、同じ列若しくは同じ列のセルを含む連結セルの値、又は、同じ行若しくは同じ行のセルを含む連結セルの値を合成した値を項目名として生成する。なお、連結セルは、セル連結処理が施された特定のセルのことである。生成部１３５は、生成した項目名を適用した第２表データを第３表データとして検出部１３６に出力する。生成部１３５は、仮に決定した項目行又は項目列にセル連結処理が施された特定のセルが含まれない場合には、入力された第２表データをそのまま第３表データとして検出部１３６に出力する。【００３４】
ここで、図１０及び図１１を用いて項目名の生成について説明する。図１０は、項目名の生成の一例を示す図である。図１０の例では、生成部１３５は、第１表データ３０について、１行目及び２行目を項目行、並びに、１列目及び２列目を項目列と仮に決定する。次に、生成部１３５は、１行目及び２行目において、同じ列若しくは同じ列のセルを含む連結セルの値を合成した値を、項目行のそれぞれの項目名として生成する。なお、合成した値は、セル連結処理が施された特定のセルについてセル連結処理が解除された図示しない第２表データに基づいて生成される。生成部１３５は、例えば、第１表データ３０の１行３列の「ｂ」と、２行３列の「ｆ」とを合成した「ｂ／ｆ」を、第３表データ３１の１行２列の項目名として生成する。【００３５】
また、生成部１３５は、１列目及び２列目において、同じ行若しくは同じ行のセルを含む連結セルの値を合成した値を、項目列のそれぞれの項目名として生成する。生成部１３５は、例えば、第１表データ３０の３行１列の「ｊ」と、３行２列の「ｍ」とを合成した「ｊ／ｍ」を、第３表データ３１の２行１列の項目名として生成する。なお、第１表データ３０では、１行１列、１行２列、２行１列及び２行２列の４つのセルは連結されて値が「ａ」であるので、第３表データ３１では、１行１列の項目名を「ａ」としている。【００３６】
図１１は、項目名の生成の他の一例を示す図である。図１１の例では、生成部１３５は、第１表データ３２について、１行目及び２行目を項目行と仮に決定する。次に、生成部１３５は、１行目及び２行目において、同じ列若しくは同じ列のセルを含む連結セルの値を合成した値を、項目行のそれぞれの項目名として生成する。なお、合成した値は、セル連結処理が施された特定のセルについてセル連結処理が解除された図示しない第２表データに基づいて生成される。生成部１３５は、例えば、第１表データ３２の１行１列の「ａ」と、２行１列の「ｄ」とを合成した「ａ／ｄ」を、第３表データ３３の１行１列の項目名として生成する。また、生成部１３５は、例えば、第１表データ３２の１行２列の「ａ」と、２行２列の「ｅ」とを合成した「ａ／ｅ」を、第３表データ３３の１行２列の項目名として生成する。【００３７】
図１の説明に戻って、検出部１３６には、カウント部１３４からカウント値が入力され、生成部１３５から第３表データが入力される。検出部１３６は、入力された第３表データに対して、入力されたカウント値が最大の行又は列のうち、最も上側の行又は最も左側の列を検出する。検出部１３６は、検出された最も上側の行又は最も左側の列を検出結果として、カウント値及び第３表データとともに特定部１３７に出力する。【００３８】
特定部１３７には、検出部１３６から検出結果、カウント値及び第３表データが入力される。特定部１３７は、カウント値及び第３表データに基づいて、カウント値が最大の行又は列のうち、最も上側の行又は最も左側の列を表の項目を示す行又は列として特定する。すなわち、特定部１３７は、項目行又は項目列を特定する。特定部１３７は、特定が完了した第３表データを第４表データとする。特定部１３７は、特定した項目行又は項目列と、第４表データとを記憶制御部１３８に出力する。【００３９】
また、特定部１３７は、検出結果、カウント値及び第３表データに基づいて、項目行又は項目列を特定してもよい。特定部１３７は、検出した最も上側の行に隣接する下側の行に対応するカウント値が最大でない場合に、最も上側の行を表の項目を示す行として特定する。又は、特定部１３７は、検出した最も左側の列に隣接する右側の列に対応するカウント値が最大でない場合に、最も左側の列を表の項目を示す列として特定する。すなわち、特定部１３７は、項目行又は項目列を特定する。特定部１３７は、特定が完了した第３表データを第４表データとする。特定部１３７は、特定した項目行又は項目列と、第４表データとを記憶制御部１３８に出力する。【００４０】
さらに、特定部１３７は、複数行が同じカウント値である場合に、非数値データが入力されたセルの割合に基づいて、項目行又は項目列を特定してもよい。特定部１３７は、検出した最も上側の行を含み連続する複数行が同じカウント値である場合に、複数行について行内のセルのうち非数値データが入力されたセルの割合に基づいて、項目を示す行を特定する。又は、特定部１３７は、検出した最も左側の列を含み連続する複数列が同じカウント値である場合に、複数列について列内のセルのうち非数値データが入力されたセルの割合に基づいて、項目を示す列として特定する。すなわち、特定部１３７は、項目行又は項目列を特定する。特定部１３７は、特定が完了した第３表データを第４表データとする。特定部１３７は、特定した項目行又は項目列と、第４表データとを記憶制御部１３８に出力する。【００４１】
また、特定部１３７は、編集部１３３で仮に決定された項目行又は項目列を採用して項目行又は項目列を特定してもよい。さらに、特定部１３７は、生成部１３５で仮に決定された連続する複数の項目行又は連続する複数の項目列を採用して、項目行又は項目列を特定してもよい。特定部１３７は、特定が完了した第３表データを第４表データとする。特定部１３７は、特定した項目行又は項目列と、第４表データとを記憶制御部１３８に出力する。【００４２】
また、特定部１３７は、第３表データが、項目行又は項目列が存在しない表である場合に、最も上側の行又は最も左側の列を項目行又は項目列とみなして項目行又は項目列を特定してもよい。特定部１３７は、カウント値が最大の行又は列のうち、最も上側の行又は最も左側の列が、入力されたデータが項目名ではないセルを含む場合であっても、最も上側の行又は最も左側の列を、項目行又は項目列として特定する。特定部１３７は、特定が完了した第３表データを第４表データとする。特定部１３７は、特定した項目行又は項目列と、第４表データとを記憶制御部１３８に出力する。【００４３】
さらに、特定部１３７は、入力されたデータが重複するセルを含む場合に、新たな項目行又は項目列を追加してもよい。特定部１３７は、カウント値が最大の行又は列のうち、最も上側の行又は最も左側の列が、入力されたデータが重複するセルを含む場合に、最も上側の行のさらに上側又は最も左側の列のさらに左側に新たな行又は列を追加する。特定部１３７は、追加した行又は列を項目行又は項目列として特定する。特定部１３７は、新たな行又は列が追加されて特定が完了した第３表データを第４表データとする。特定部１３７は、特定した項目行又は項目列と、第４表データとを記憶制御部１３８に出力する。【００４４】
また、特定部１３７は、最も上側の行又は最も左側の列が空白のセルを含む場合に、新たな項目行又は項目列を追加してもよい。なお、空白のセルは、空文字（ＮＵＬＬ）で表される。特定部１３７は、カウント値が最大の行又は列のうち、最も上側の行又は最も左側の列が、空白のセルを含む場合に、最も上側の行のさらに上側又は最も左側の列のさらに左側に新たな行又は列を追加する。特定部１３７は、追加した行又は列を項目行又は項目列として特定する。特定部１３７は、新たな行又は列が追加されて特定が完了した第３表データを第４表データとする。特定部１３７は、特定した項目行又は項目列と、第４表データとを記憶制御部１３８に出力する。【００４５】
ここで、図１２から図２０を用いて、項目行の特定について説明する。図１２は、項目行の特定の一例を示す図である。図１２の例は、カウント値が最大の行が１つの場合に、項目行を特定する場合である。第３表データ３４は、カウント値３５を見ると、２行目が「５」であり最大である。特定部１３７は、２行目に隣接する下側の行である３行目のカウント値が「４」であり最大でないので、２行目を項目行と特定する。【００４６】
図１３は、項目行の特定の他の一例を示す図である。図１３の例は、カウント値が最大の行が複数の場合に、項目行を特定する場合である。第３表データ３７は、カウント値３８を見ると、２行目及び５行目が「５」であり最大である。特定部１３７は、カウント値が最大の行のうち、最も上側の行である２行目を項目行と特定する。【００４７】
図１４は、項目行の特定の他の一例を示す図である。図１４の例は、非数値データが入力されたセルの割合に基づいて、項目行を特定する場合である。第３表データ４１は、カウント値４２を見ると、２行目及び３行目が「５」であり最大である。なお、他の行のカウント値４２は省略している。また、第３表データ４１は、非数値データが入力されたセルの割合４３は、２行目が１００％、３行目が４０％である。特定部１３７は、２行目に隣接する３行目の当該割合が、例えば５０％以上であるか否かを判定する。特定部１３７は、３行目の当該割合が４０％であるので、３行目は項目行でないと判定し、２行目を項目行と特定する。【００４８】
図１５は、項目行の特定の他の一例を示す図である。図１５の例は、非数値データが入力されたセルの割合に基づいて、項目行を特定する場合である。第３表データ４６は、カウント値４７を見ると、２行目及び３行目が「５」であり最大である。なお、他の行のカウント値４７は省略している。また、第３表データ４６は、非数値データが入力されたセルの割合４８は、２行目が１００％、３行目が６０％である。特定部１３７は、２行目に隣接する３行目の当該割合が、例えば５０％以上であるか否かを判定する。特定部１３７は、３行目の当該割合が６０％であるので、３行目は項目行であると判定し、２行目及び３行目を項目行と特定する。なお、項目行に入る数値データは、例えば、交通手段の数等が挙げられる。【００４９】
図１６は、項目列の特定の一例を示す図である。図１６の例は、項目列が存在しない表である場合に、最も左側の列を項目列とみなして項目列を特定する場合である。第３表データ５１は、１行目が項目行であるが、２行目以降の１列目のセルには、データが入力されている。この場合に、特定部１３７は、最も左側の列である１列目を項目列とみなして、１列目を項目列と特定する。【００５０】
図１７は、項目列の特定の他の一例を示す図である。図１７の例は、項目列が存在しない表である場合に、最も左側の列を項目列とみなして項目列を特定する場合である。第１表データ５３は、１行目が項目行であるが、２行目以降の１列目のセルには、データが入力されている。また、第１表データ５３は、１行１列のセルと１行２列のセルとが連結された特定のセルである。この場合に、特定部１３７は、１列目に特定のセルが含まれるので、特定のセルが含まれる列、つまり１列目及び２列目を項目列とみなして、１列目及び２列目を項目列と特定する。なお、特定部１３７は、検出結果、カウント値及び第３表データの他に、記憶部１２０に記憶された第１表データを参照して、項目列を特定する。【００５１】
図１８は、項目行の追加の一例を示す図である。図１８の例は、入力されたデータが重複するセルを含む場合に、新たな項目行又は項目列を追加する場合である。第３表データ５６は、１行１列と１行２列のデータがともに「ａ」であり、１行目が入力されたデータが重複するセルを含む。この場合に、特定部１３７は、最も上側の行のさらに上側に新たな行を追加して第４表データ５８とする。特定部１３７は、第４表データ５８の追加した行５９を項目行として特定する。【００５２】
図１９は、項目行の追加の他の一例を示す図である。図１９の例は、最も上側の行が空白のセルを含む場合に、新たな項目行を追加する場合である。第３表データ６０は、１行３列のセルが空白である。この場合に、特定部１３７は、最も上側の行のさらに上側に新たな行を追加して第４表データ６２とする。特定部１３７は、第４表データ６２の追加した行６３を項目行として特定する。なお、第３表データ６０は、他の行にも空白のセルがあり、１行目がカウント値が最大の行に含まれる場合である。このような場合には、２行目以降の行が項目行と誤認識されないので適用可能である。【００５３】
図２０は、整形後の表データの一例を示す図である。図２０に示す第４表データ６４は、特定部１３７で項目行又は項目列が特定された後、つまり整形後の表データである。第４表データ６４は、項目行６５と、データ行数６６と、データ部分６７とを有する。すなわち、第４表データ６４は、データ（セルの値）１つ１つに対して行数と項目名との関連付けが行われた状態である。なお、データ行数６６は、第４表データ６４に含まれなくてもよく、情報ＤＢ１２１への記憶時に行数をカウントして付加してもよい。【００５４】
図１の説明に戻って、記憶制御部１３８には、特定部１３７から特定した項目行又は項目列と、第４表データとが入力される。記憶制御部１３８は、特定した項目行又は項目列と、第４表データとに基づいて、項目行又は項目列の各セルの入力データを項目名とし、各行又は各列の値を対応する項目名とデータ行数とに対応付けて、情報ＤＢ１２１に記憶する。【００５５】
次に、実施例の情報処理装置１００の動作について説明する。図２１は、実施例の解析処理の一例を示すフローチャートである。【００５６】
情報処理装置１００の通信部１１０は、図示しない端末装置から表形式データを受信する。通信部１１０は、受信した表形式データを制御部１３０に出力する。判定部１３１は、通信部１１０から表形式データが入力されると、入力された表形式データのデータ入力セルの有無を判定する（ステップＳ１）。判定部１３１は、表形式データ及び判定結果を抽出部１３２に出力する。【００５７】
抽出部１３２は、判定部１３１から表形式データ及び判定結果が入力されると、判定結果に基づいて、表形式データから、データが入力されたセルが存在する複数の連続する行又は列の塊を１つの表データとして抽出する（ステップＳ２）。抽出部１３２は、表データを抽出すると、抽出した表データを第１表データとして編集部１３３及び生成部１３５に出力する。また、抽出部１３２は、第１表データを記憶部１２０に記憶する。【００５８】
編集部１３３は、抽出部１３２から第１表データが入力されると、入力された第１表データに対して編集処理を実行する（ステップＳ３）。編集部１３３は、編集処理を完了した表データを第２表データとしてカウント部１３４及び生成部１３５に出力する。【００５９】
カウント部１３４は、編集部１３３から第２表データが入力されると、第２表データのうち、データが入力されたセルの数を行ごと又は列ごとにカウントする（ステップＳ４）。カウント部１３４は、行ごと又は列ごとにカウントしたセルの数をカウント値として検出部１３６に出力する。【００６０】
生成部１３５には、抽出部１３２から第１表データが入力され、編集部１３３から第２表データが入力される。生成部１３５は、入力された第１表データに基づいて、項目行又は項目列を仮に決定する。生成部１３５は、仮に決定した項目行又は項目列にセル連結処理が施された特定のセルが含まれる場合には、特定のセルに対応する連続する複数の項目行又は連続する複数の項目列を仮に決定する。生成部１３５は、連続する複数の項目行又は連続する複数の項目列を仮に決定すると、編集部１３３から入力された第２表データに対して、項目名の生成を実行する（ステップＳ５）。生成部１３５は、生成した項目名を適用した第２表データを第３表データとして検出部１３６に出力する。生成部１３５は、仮に決定した項目行又は項目列にセル連結処理が施された特定のセルが含まれない場合には、入力された第２表データをそのまま第３表データとして検出部１３６に出力する。【００６１】
検出部１３６には、カウント部１３４からカウント値が入力され、生成部１３５から第３表データが入力される。検出部１３６は、入力された第３表データに対して、入力されたカウント値が最大の行又は列のうち、最も上側の行又は最も左側の列を検出する（ステップＳ６）。検出部１３６は、検出された最も上側の行又は最も左側の列を検出結果として、カウント値及び第３表データとともに特定部１３７に出力する。【００６２】
特定部１３７には、検出部１３６から検出結果、カウント値及び第３表データが入力される。特定部１３７は、検出結果、カウント値及び第３表データに基づいて、項目行又は項目列を特定する（ステップＳ７）。特定部１３７は、特定が完了した第３表データを第４表データとし、特定した項目行又は項目列と、第４表データとを記憶制御部１３８に出力する。【００６３】
記憶制御部１３８には、特定部１３７から特定した項目行又は項目列と、第４表データとが入力される。記憶制御部１３８は、特定した項目行又は項目列と、第４表データとに基づいて、第４表データの各セルの値を項目名とデータ行数とに対応付けて、情報ＤＢ１２１に記憶する（ステップＳ８）。これにより、情報処理装置１００は、多様なフォーマットの表形式データを容易にデータベースに登録できる。【００６４】
このように、情報処理装置１００は、入力された表形式データの各行又は各列についてデータが入力されたセルの有無を判定する。また、情報処理装置１００は、データが入力されたセルが存在する複数の連続する行又は列の塊を１つの表データに関連する部分として抽出する。その結果、多様なフォーマットの表形式データを容易に登録できる。【００６５】
また、情報処理装置１００は、行又は列の塊のうち、データが入力されたセルの数を行ごと又は列ごとにカウントする。また、情報処理装置１００は、カウント値が最大の行又は列のうち、最も上側の行又は最も左側の列を表の項目を示す行又は列として特定する。その結果、表の項目行又は項目列を特定できる。【００６６】
また、情報処理装置１００は、行又は列の塊のうち、データが入力されたセルの数を行ごと又は列ごとにカウントする。また、情報処理装置１００は、カウント値が最大の行又は列のうち、最も上側の行又は最も左側の列を検出する。また、情報処理装置１００は、検出した最も上側の行に隣接する下側の行に対応するカウント値が最大でない場合、又は、検出した最も左側の列に隣接する右側の列に対応するカウント値が最大でない場合に、最も上側の行又は最も左側の列を表の項目を示す行又は列として特定する。その結果、表の項目行又は項目列を特定できる。【００６７】
また、情報処理装置１００は、行又は列の塊のうち、データが入力されたセルの数を行ごと又は列ごとにカウントする。また、情報処理装置１００は、カウント値が最大の行又は列のうち、最も上側の行又は最も左側の列を検出する。また、情報処理装置１００は、検出した最も上側の行を含み連続する複数行が同じカウント値である場合に、複数行について行内のセルのうち非数値データが入力されたセルの割合に基づいて、項目を示す行を特定する、又は、検出した最も左側の列を含み連続する複数列が同じカウント値である場合に、複数列について列内のセルのうち非数値データが入力されたセルの割合に基づいて、項目を示す列として特定する。その結果、複数行に渡る表の項目行又は項目列を特定できる。【００６８】
また、情報処理装置１００は、入力された表形式データの各行又は各列についてデータが入力されたセルの有無を判定する。また、情報処理装置１００は、データが入力されたセルが存在する複数の連続する行又は列の塊を１つの表データに関連する部分として抽出する。また、情報処理装置１００は、行又は列の塊のうち項目行又は項目列を特定する。また、情報処理装置１００は、特定した行又は列にセル連結処理が施された特定のセルが含まれる場合に、特定のセルを単位セルに分割するとともに、分割された単位セルのそれぞれに特定のセルに入力されたデータと同じデータを入力する編集処理を実行する。また、情報処理装置１００は、編集処理後の項目行又は項目列の各セルの入力データを項目名とし、各行又は各列の値を対応する項目名と対応付けて記憶する。その結果、セル連結処理が施された特定のセルが含まれる場合であっても、容易にデータベースに登録できる。【００６９】
また、情報処理装置１００は、入力された表形式データの各行又は各列についてデータが入力されたセルの有無を判定する。また、情報処理装置１００は、データが入力されたセルが存在する複数の連続する行又は列の塊を１つの表データに関連する部分として抽出する。また、情報処理装置１００は、行又は列の塊のうち連続する複数の項目行又は連続する複数の項目列を特定する。また、情報処理装置１００は、特定した連続する複数の項目行若しくは連続する複数の項目列について、同じ列若しくは同じ列のセルを含む連結セルの値、又は、同じ行若しくは同じ行のセルを含む連結セルの値を合成した値を項目名として生成する。また、情報処理装置１００は、各行又は各列の値を、対応する項目名と対応付けて記憶する。その結果、複数の項目行又は項目列を合成して、容易にデータベースに登録できる。【００７０】
また、情報処理装置１００は、入力された表形式データの各行又は各列についてデータが入力されたセルの有無を判定する。また、情報処理装置１００は、データが入力されたセルが存在する複数の連続する行又は列の塊を１つの表データに関連する部分として抽出する。また、情報処理装置１００は、行又は列の塊のうち、データが入力されたセルの数を行ごと又は列ごとにカウントする。また、情報処理装置１００は、カウント値が最大の行又は列のうち、最も上側の行又は最も左側の列が、入力されたデータが項目名ではないセルを含む場合であっても、最も上側の行又は最も左側の列を、項目行又は項目列として特定する。その結果、多様なフォーマットの表形式データを容易に登録できる。【００７１】
また、情報処理装置１００は、入力された表形式データの各行又は各列についてデータが入力されたセルの有無を判定する。また、情報処理装置１００は、データが入力されたセルが存在する複数の連続する行又は列の塊を１つの表データに関連する部分として抽出する。また、情報処理装置１００は、行又は列の塊のうち、データが入力されたセルの数を行ごと又は列ごとにカウントする。また、情報処理装置１００は、カウント値が最大の行又は列のうち、最も上側の行又は最も左側の列が、入力されたデータが重複するセルを含む場合に、最も上側の行のさらに上側又は最も左側の列のさらに左側に新たな行又は列を追加し、追加した行又は列を項目行又は項目列として特定する。その結果、多様なフォーマットの表形式データを容易に登録できる。【００７２】
また、情報処理装置１００は、入力された表形式データの各行又は各列についてデータが入力されたセルの有無を判定する。また、情報処理装置１００は、データが入力されたセルが存在する複数の連続する行又は列の塊を１つの表データに関連する部分として抽出する。また、情報処理装置１００は、行又は列の塊のうち、データが入力されたセルの数を行ごと又は列ごとにカウントする。また、情報処理装置１００は、カウント値が最大の行又は列のうち、最も上側の行又は最も左側の列が、空白のセルを含む場合に、最も上側の行のさらに上側又は最も左側の列のさらに左側に新たな行又は列を追加し、追加した行又は列を項目行又は項目列として特定する。その結果、多様なフォーマットの表形式データを容易に登録できる。【００７３】
また、情報処理装置１００は、入力された表形式データの各行又は各列についてデータが入力されたセルの有無を判定する。また、情報処理装置１００は、データが入力されたセルが存在しない１又は複数の連続する行又は列を挟んで、データが入力されたセルが存在する１又は複数の連続する行又は列の塊を２つ検出すると、該２つの塊のそれぞれを異なる表データとして抽出する。その結果、多様なフォーマットの表形式データを容易に登録できる。【００７４】
なお、上記実施例では、表の本体部分の上部に表のタイトルが記載されている場合を一例として挙げたが、これに限定されない。例えば、表の本体部分の上部に数行に渡って見出しや注釈が記載されている場合であっても、上記実施例と同様に、表の本体部分を抽出することができる。【００７５】
また、上記実施例では、情報ＤＢ１２１の形態として、表データを構成するセルごとに１レコードとしたが、これに限定されない。例えば、情報ＤＢ１２１は、元の表データを復元できれば、どの様な形態のデータベースでもよい。【００７６】
また、図示した各部の各構成要素は、必ずしも物理的に図示の如く構成されていることを要しない。すなわち、各部の分散・統合の具体的形態は図示のものに限られず、その全部又は一部を、各種の負荷や使用状況等に応じて、任意の単位で機能的又は物理的に分散・統合して構成することができる。例えば、判定部１３１と抽出部１３２とを統合してもよい。また、図示した各処理は、上記の順番に限定されるものではなく、処理内容を矛盾させない範囲において、同時に実施してもよく、順序を入れ替えて実施してもよい。【００７７】
さらに、各装置で行われる各種処理機能は、ＣＰＵ（又はＭＰＵ、ＭＣＵ（Micro  Controller  Unit）等のマイクロ・コンピュータ）上で、その全部又は任意の一部を実行するようにしてもよい。また、各種処理機能は、ＣＰＵ（又はＭＰＵ、ＭＣＵ等のマイクロ・コンピュータ）で解析実行されるプログラム上、又はワイヤードロジックによるハードウェア上で、その全部又は任意の一部を実行するようにしてもよいことは言うまでもない。【００７８】
ところで、上記の実施例で説明した各種の処理は、予め用意されたプログラムをコンピュータで実行することで実現できる。そこで、以下では、上記の実施例と同様の機能を有するプログラムを実行するコンピュータの一例を説明する。図２２は、表形式データの解析プログラムを実行するコンピュータの一例を示す図である。【００７９】
図２２に示すように、コンピュータ２００は、各種演算処理を実行するＣＰＵ２０１と、データ入力を受け付ける入力装置２０２と、モニタ２０３とを有する。また、コンピュータ２００は、記憶媒体からプログラム等を読み取る媒体読取装置２０４と、各種装置と接続するためのインタフェース装置２０５と、他の情報処理装置等と有線又は無線により接続するための通信装置２０６とを有する。また、コンピュータ２００は、各種情報を一時記憶するＲＡＭ２０７と、ハードディスク装置２０８とを有する。また、各装置２０１〜２０８は、バス２０９に接続される。【００８０】
ハードディスク装置２０８には、図１に示した判定部１３１、抽出部１３２、編集部１３３、カウント部１３４、生成部１３５、検出部１３６、特定部１３７及び記憶制御部１３８の各処理部と同様の機能を有する表形式データの解析プログラムが記憶される。また、ハードディスク装置２０８には、情報ＤＢ１２１、及び、表形式データの解析プログラムを実現するための各種データが記憶される。入力装置２０２は、例えば、コンピュータ２００の管理者から操作情報、管理情報等の各種情報の入力を受け付ける。モニタ２０３は、例えば、コンピュータ２００の管理者に対して管理画面等の各種画面を表示する。インタフェース装置２０５は、例えば印刷装置等が接続される。通信装置２０６は、例えば、図１に示した通信部１１０と同様の機能を有し図示しないネットワークと接続され、図示しない端末装置と各種情報をやりとりする。【００８１】
ＣＰＵ２０１は、ハードディスク装置２０８に記憶された各プログラムを読み出して、ＲＡＭ２０７に展開して実行することで、各種の処理を行う。また、これらのプログラムは、コンピュータ２００を図１に示した判定部１３１、抽出部１３２、編集部１３３、カウント部１３４、生成部１３５、検出部１３６、特定部１３７及び記憶制御部１３８として機能させることができる。【００８２】
なお、上記の表形式データの解析プログラムは、必ずしもハードディスク装置２０８に記憶されている必要はない。例えば、コンピュータ２００が読み取り可能な記憶媒体に記憶されたプログラムを、コンピュータ２００が読み出して実行するようにしてもよい。コンピュータ２００が読み取り可能な記憶媒体は、例えば、ＣＤ−ＲＯＭやＤＶＤディスク、ＵＳＢ（Universal  Serial  Bus）メモリ等の可搬型記録媒体、フラッシュメモリ等の半導体メモリ、ハードディスクドライブ等が対応する。また、公衆回線、インターネット、ＬＡＮ等に接続された装置にこの表形式データの解析プログラムを記憶させておき、コンピュータ２００がこれらから表形式データの解析プログラムを読み出して実行するようにしてもよい。
【符号の説明】
【００８３】
１００  情報処理装置
１１０  通信部
１１１  表示部
１１２  操作部
１２０  記憶部
１２１  情報ＤＢ
１３０  制御部
１３１  判定部
１３２  抽出部
１３３  編集部
１３４  カウント部
１３５  生成部
１３６  検出部
１３７  特定部
１３８  記憶制御部
【図１】
2017134800.tif 000003
【図２】
2017134800.tif 000004
【図３】
2017134800.tif 000005
【図４】
2017134800.tif 000006
【図５】
2017134800.tif 000007
【図６】
2017134800.tif 000008
【図７】
2017134800.tif 000009
【図８】
2017134800.tif 000010
【図９】
2017134800.tif 000011
【図１０】
2017134800.tif 000012
【図１１】
2017134800.tif 000013
【図１２】
2017134800.tif 000014
【図１３】
2017134800.tif 000015
【図１４】
2017134800.tif 000016
【図１５】
2017134800.tif 000017
【図１６】
2017134800.tif 000018
【図１７】
2017134800.tif 000019
【図１８】
2017134800.tif 000020
【図１９】
2017134800.tif 000021
【図２０】
2017134800.tif 000022
【図２１】
2017134800.tif 000023
【図２２】
2017134800.tif 000024
【手続補正書】
【提出日】平成30年6月27日(2018.6.27)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
入力された表形式データの各行又は各列についてデータが入力されたセルの有無を判定し、
データが入力されたセルが存在する複数の連続する行又は列の塊を１つの表データに関連する部分として抽出する、
処理をコンピュータが実行することを特徴とする表形式データの解析方法。
【請求項２】
前記行又は列の塊のうち、データが入力されたセルの数を行ごと又は列ごとにカウントし、
カウント値が最大の行又は列のうち、最も上側の行又は最も左側の列を表の項目を示す行又は列として特定する、
ことを特徴とする請求項１に記載の表形式データの解析方法。
【請求項３】
前記行又は列の塊のうち、データが入力されたセルの数を行ごと又は列ごとにカウントし、
カウント値が最大の行又は列のうち、最も上側の行又は最も左側の列を検出し、
検出した前記最も上側の行に隣接する下側の行に対応するカウント値が最大でない場合、又は、検出した前記最も左側の列に隣接する右側の列に対応するカウント値が最大でない場合に、最も上側の行又は最も左側の列を表の項目を示す行又は列として特定する、
ことを特徴とする請求項１に記載の表形式データの解析方法。
【請求項４】
前記行又は列の塊のうち、データが入力されたセルの数を行ごと又は列ごとにカウントし、
カウント値が最大の行又は列のうち、最も上側の行又は最も左側の列を検出し、
検出した前記最も上側の行を含み連続する複数行が同じカウント値である場合に、前記複数行について行内のセルのうち非数値データが入力されたセルの割合に基づいて、項目を示す行を特定する、又は、検出した前記最も左側の列を含み連続する複数列が同じカウント値である場合に、前記複数列について列内のセルのうち非数値データが入力されたセルの割合に基づいて、項目を示す列として特定する、
ことを特徴とする請求項１に記載の表形式データの解析方法。
【請求項５】
入力された表形式データの各行又は各列についてデータが入力されたセルの有無を判定し、
データが入力されたセルが存在する複数の連続する行又は列の塊を１つの表データに関連する部分として抽出し、
前記行又は列の塊のうち項目行又は項目列を特定し、
特定した前記行又は列にセル連結処理が施された特定のセルが含まれる場合に、前記特定のセルを単位セルに分割するとともに、分割された単位セルのそれぞれに前記特定のセルに入力されたデータと同じデータを入力する編集処理を実行し、
前記編集処理後の前記項目行又は前記項目列の各セルの入力データを項目名とし、各行又は各列の値を対応する項目名と対応付けて記憶する、
ことを特徴とする請求項１に記載の表形式データの解析方法。
【請求項６】
入力された表形式データの各行又は各列についてデータが入力されたセルの有無を判定し、
データが入力されたセルが存在する複数の連続する行又は列の塊を１つの表データに関連する部分として抽出し、
前記行又は列の塊のうち連続する複数の項目行又は連続する複数の項目列を特定し、
特定した前記連続する複数の項目行若しくは連続する複数の項目列について、同じ列若しくは同じ列のセルを含む連結セルの値、又は、同じ行若しくは同じ行のセルを含む連結セルの値を合成した値を項目名として生成し、
各行又は各列の値を、対応する項目名と対応付けて記憶する、
ことを特徴とする請求項１に記載の表形式データの解析方法。
【請求項７】
入力された表形式データの各行又は各列についてデータが入力されたセルの有無を判定し、
データが入力されたセルが存在する複数の連続する行又は列の塊を１つの表データに関連する部分として抽出し、
前記行又は列の塊のうち、データが入力されたセルの数を行ごと又は列ごとにカウントし、
カウント値が最大の行又は列のうち、最も上側の行又は最も左側の列が、入力されたデータが項目名ではないセルを含む場合であっても、前記最も上側の行又は前記最も左側の列を、項目行又は項目列として特定する、
ことを特徴とする請求項１に記載の表形式データの解析方法。
【請求項８】
入力された表形式データの各行又は各列についてデータが入力されたセルの有無を判定し、
データが入力されたセルが存在する複数の連続する行又は列の塊を１つの表データに関連する部分として抽出し、
前記行又は列の塊のうち、データが入力されたセルの数を行ごと又は列ごとにカウントし、
カウント値が最大の行又は列のうち、最も上側の行又は最も左側の列が、入力されたデータが重複するセルを含む場合に、前記最も上側の行のさらに上側又は前記最も左側の列のさらに左側に新たな行又は列を追加し、追加した行又は列を項目行又は項目列として特定する、
ことを特徴とする請求項１に記載の表形式データの解析方法。
【請求項９】
入力された表形式データの各行又は各列についてデータが入力されたセルの有無を判定し、
データが入力されたセルが存在する複数の連続する行又は列の塊を１つの表データに関連する部分として抽出し、
前記行又は列の塊のうち、データが入力されたセルの数を行ごと又は列ごとにカウントし、
カウント値が最大の行又は列のうち、最も上側の行又は最も左側の列が、空白のセルを含む場合に、前記最も上側の行のさらに上側又は前記最も左側の列のさらに左側に新たな行又は列を追加し、追加した行又は列を項目行又は項目列として特定する、
ことを特徴とする請求項１に記載の表形式データの解析方法。
【請求項１０】
入力された表形式データの各行又は各列についてデータが入力されたセルの有無を判定し、
データが入力されたセルが存在しない１又は複数の連続する行又は列を挟んで、データが入力されたセルが存在する１又は複数の連続する行又は列の塊を２つ検出すると、該２つの塊のそれぞれを異なる表データとして抽出する、
処理をコンピュータが実行することを特徴とする表形式データの解析方法。
【請求項１１】
入力された表形式データの各行又は各列についてデータが入力されたセルの有無を判定し、
データが入力されたセルが存在する複数の連続する行又は列の塊を１つの表データに関連する部分として抽出する、
処理をコンピュータに実行させることを特徴とする表形式データの解析プログラム。
【請求項１２】
入力された表形式データの各行又は各列についてデータが入力されたセルの有無を判定し、
データが入力されたセルが存在しない１又は複数の連続する行又は列を挟んで、データが入力されたセルが存在する１又は複数の連続する行又は列の塊を２つ検出すると、該２つの塊のそれぞれを異なる表データとして抽出する、
処理をコンピュータに実行させることを特徴とする表形式データの解析プログラム。
【請求項１３】
入力された表形式データの各行又は各列についてデータが入力されたセルの有無を判定する判定部と、
データが入力されたセルが存在する複数の連続する行又は列の塊を１つの表データに関連する部分として抽出する抽出部と、
を有することを特徴とする情報処理装置。
【請求項１４】
入力された表形式データの各行又は各列についてデータが入力されたセルの有無を判定する判定部と、
データが入力されたセルが存在しない１又は複数の連続する行又は列を挟んで、データが入力されたセルが存在する１又は複数の連続する行又は列の塊を２つ検出すると、該２つの塊のそれぞれを異なる表データとして抽出する抽出部と、
を有することを特徴とする情報処理装置。
【国際調査報告】
2017134800.tif 000025
2017134800.tif 000026
2017134800.tif 000027
2017134800.tif 000028