JP6421568B2 - 情報処理装置及び情報処理プログラム - Google Patents
情報処理装置及び情報処理プログラム Download PDFInfo
- Publication number
- JP6421568B2 JP6421568B2 JP2014242738A JP2014242738A JP6421568B2 JP 6421568 B2 JP6421568 B2 JP 6421568B2 JP 2014242738 A JP2014242738 A JP 2014242738A JP 2014242738 A JP2014242738 A JP 2014242738A JP 6421568 B2 JP6421568 B2 JP 6421568B2
- Authority
- JP
- Japan
- Prior art keywords
- column
- columns
- rows
- row
- association
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Expired - Fee Related
Links
Images
Landscapes
- Document Processing Apparatus (AREA)
- User Interface Of Digital Computer (AREA)
Description
本発明は、差分抽出の対象である表同士の行又は列の編集があった場合、編集後の表から行単位又は列単位での差分を抽出するようにした情報処理装置及び情報処理プログラムを提供することを目的としている。
図1は、本実施の形態の構成例についての概念的なモジュール構成図を示している。
なお、モジュールとは、一般的に論理的に分離可能なソフトウェア(コンピュータ・プログラム)、ハードウェア等の部品を指す。したがって、本実施の形態におけるモジュールはコンピュータ・プログラムにおけるモジュールのことだけでなく、ハードウェア構成におけるモジュールも指す。それゆえ、本実施の形態は、それらのモジュールとして機能させるためのコンピュータ・プログラム(コンピュータにそれぞれの手順を実行させるためのプログラム、コンピュータをそれぞれの手段として機能させるためのプログラム、コンピュータにそれぞれの機能を実現させるためのプログラム)、システム及び方法の説明をも兼ねている。ただし、説明の都合上、「記憶する」、「記憶させる」、これらと同等の文言を用いるが、これらの文言は、実施の形態がコンピュータ・プログラムの場合は、記憶装置に記憶させる、又は記憶装置に記憶させるように制御するの意である。また、モジュールは機能に一対一に対応していてもよいが、実装においては、1モジュールを1プログラムで構成してもよいし、複数モジュールを1プログラムで構成してもよく、逆に1モジュールを複数プログラムで構成してもよい。また、複数モジュールは1コンピュータによって実行されてもよいし、分散又は並列環境におけるコンピュータによって1モジュールが複数コンピュータで実行されてもよい。なお、1つのモジュールに他のモジュールが含まれていてもよい。また、以下、「接続」とは物理的な接続の他、論理的な接続(データの授受、指示、データ間の参照関係等)の場合にも用いる。「予め定められた」とは、対象としている処理の前に定まっていることをいい、本実施の形態による処理が始まる前はもちろんのこと、本実施の形態による処理が始まった後であっても、対象としている処理の前であれば、そのときの状況・状態に応じて、又はそれまでの状況・状態に応じて定まることの意を含めて用いる。「予め定められた値」が複数ある場合は、それぞれ異なった値であってもよいし、2以上の値(もちろんのことながら、全ての値も含む)が同じであってもよい。また、「Aである場合、Bをする」という意味を有する記載は、「Aであるか否かを判断し、Aであると判断した場合はBをする」の意味で用いる。ただし、Aであるか否かの判断が不要である場合を除く。
また、システム又は装置とは、複数のコンピュータ、ハードウェア、装置等がネットワーク(一対一対応の通信接続を含む)等の通信手段で接続されて構成されるほか、1つのコンピュータ、ハードウェア、装置等によって実現される場合も含まれる。「装置」と「システム」とは、互いに同義の用語として用いる。もちろんのことながら、「システム」には、人為的な取り決めである社会的な「仕組み」(社会システム)にすぎないものは含まない。
また、各モジュールによる処理毎に又はモジュール内で複数の処理を行う場合はその処理毎に、対象となる情報を記憶装置から読み込み、その処理を行った後に、処理結果を記憶装置に書き出すものである。したがって、処理前の記憶装置からの読み込み、処理後の記憶装置への書き出しについては、説明を省略する場合がある。なお、ここでの記憶装置としては、ハードディスク、RAM(Random Access Memory)、外部記憶媒体、通信回線を介した記憶装置、CPU(Central Processing Unit)内のレジスタ等を含んでいてもよい。
計算モジュール130は、行列数取得モジュール120、判断モジュール140と接続されている。計算モジュール130は、行列数取得モジュール120による取得結果(各表の行と列数)を用いて、第1の表の行数と第2の表の行数との差分を算出し、第1の表の列数と第2の表の列数との差分を算出する。例えば、一方の表を元として他方の表を作成した場合、行又は列を単位とした挿入又は削除のいずれかが行われた場合に差分が0以外となる。なお、差分の算出は、減算した結果の絶対値を算出してもよいし、2つの値のうち大の値から小の値を減算するようにしてもよい。
また、判断モジュール140は、第1の表の行数と第2の表の行数の差分と、第1の表の列数と第2の表の列数の差分が等しい場合は、第1の表又は第2の表の行数と列数のうち、少ない方の行又は列のいずれか一方を対象とするようにしてもよい。つまり、行数と列数の変化量が同じ場合、元の行数と列数を比較し、数が小さい方から先に対応付けるようにしたものである。同じ行数又は列数の挿入又は削除ならば、行数又は列数の大きい方が、影響を受けにくいので、数が多い方を手掛かりに、数が少ない方(行又は列)を先に対応付けるようにしたものである。なお、「第1の表の行数と第2の表の行数の差分と、第1の表の列数と第2の表の列数の差分が等しい場合」としては、行又は列を単位とした挿入、削除が行われなかった場合、挿入と削除は行われたが、その数(挿入された行数又は列数と削除された行数又は列数)が同じ場合等に起こり得る。なお「第1の表又は第2の表の行数と列数のうち、少ない方の行又は列のいずれか一方」の具体的な組み合わせとして、「第1の表の行数と列数のうち、少ない方の行」、「第1の表の行数と列数のうち、少ない方の列」、「第2の表の行数と列数のうち、少ない方の行」、「第2の表の行数と列数のうち、少ない方の列」のいずれかである。このうちのいずれであってもよいし、このうちの1つを特定してもよい。例えば、第1の表の行数、第1の表の列数、第2の表の行数、第2の表の列数を比較して、最も少ないものの行又は列を特定してもよい。
さらに、判断モジュール140は、第1の表の行数と第2の表の行数の差分と、第1の表の列数と第2の表の列数の差分が等しい場合であって、第1の表と第2の表の行数と列数が等しいときは、第1の表の各行内の文字数と対応する第2の表の各行内の文字数とで差がある行の数と、第1の表の各列内の文字数と対応する第2の表の各列内の文字数とで差がある列の数のうち、少ない方の行又は列のいずれか一方を対象とするようにしてもよい。なお、「第1の表と第2の表の行数と列数が等しいとき」とは、「第1の表の行数と列数が等しく、第2の表の行数と列数が等しい」ことをいい、互いにいわゆる正方行列である場合に、この条件が成立する。
また、「第1の表の各行内の文字数と対応する第2の表の各行内の文字数とで差がある行の数」とは、2つの表における各行の文字数を計数(各行を構成するセル内の文字数を加算)し、互いに行番号が対応する行(例えば、第1の表の第1行と第2の表の第1行、以下同様)の文字数が異なる行を計数すればよい。「第1の表の各列内の文字数と対応する第2の表の各列内の文字数とで差がある列の数」とは、2つの表における各列の文字数を計数(各列を構成するセル内の文字数を加算)し、互いに列番号が対応する列(例えば、第1の表の第1列と第2の表の第1列、以下同様)の文字数が異なる列を計数すればよい。そして、文字数が異なる行数と文字数が異なる列数のうち、少ない方の行又は列のいずれか一方を対象とする。具体的には、文字数が異なる行数が文字数が異なる列数より少ない場合は、行を対象とする。文字数が異なる行数より文字数が異なる列数が少ない場合は、列を対象とする。
次に、対応付けモジュール160は、第1の対応付け処理によって対象としなかった列又は行のいずれか一方を対象とし、第1の対応付け処理によって対応付けられなかった行又は列を除外して、第1の表と第2の表の各列又は各行で対応付け(第2の対応付け処理)を行う。具体的には、第1の対応付け処理が行を対象とした場合は、列を対象として、第1の対応付け処理によって対応付けられなかった行内のセルを除外して、第1の表と第2の表の各列で対応付け(第2の列対応付け処理)を行う。第1の対応付け処理が列を対象とした場合は、行を対象として、第1の対応付け処理によって対応付けられなかった列内のセルを除外して、第1の表と第2の表の各行で対応付け(第2の行対応付け処理)を行う。つまり、第1の行対応付け処理と第2の列対応付け処理の組み合わせ、又は、第1の列対応付け処理と第2の行対応付け処理の組み合わせのいずれか一方を行うこととなる。なお、対応付け処理の具体例については、後述する。
そして、対応付けモジュール160は、第1の対応付け処理と第2の対応付け処理によって、第1の表と第2の表とで対応付けられた行又は列内のセルを対応付ける(第3の対応付け処理)。そして、第3の対応付け処理によって対応付けられたセル内の文字を比較する(比較処理)。なお、比較処理の具体例については、後述する。
さらに、出力モジュール170は、セル内の文字の比較結果を出力するようにしてもよい。つまり、第1の対応付け処理と第2の対応付け処理による処理結果と、比較処理によって比較された結果を出力するようにしてもよい。
なお、出力モジュール170は、行又は列の移動が行われた場合、つまり、対応付けモジュール160では、対応付けられた行又は列として扱われるが、対応付けられた行又は列であったとしても、2つの表における行番号又は列番号が異なる場合は、移動があったことを示す表示を行うようにしてもよい。また、行又は列の移動に加え、追加/削除があると、追加/削除された行又は列以降の行番号/列番号が合わなくなるため、2つの表における行番号又は列番号の順番に逆転があった場合に、行又は列の移動があったことを示す表示を行うようにしてもよい。
情報処理装置100、ユーザ端末210、画像処理装置220は、通信回線290を介してそれぞれ接続されている。通信回線290は、無線、有線、これらの組み合わせであってもよく、例えば、通信インフラとしてのインターネット等であってもよい。
情報処理装置100は、表の差分を抽出する機能を有するサーバーとして実現させてもよいし、クラウドサービスとして実現してもよい。例えば、ユーザ端末210から2つの表が含まれている文書を受け取り、その表の差分を抽出して、ユーザ端末210へ処理結果を戻すようにしてもよい。
また、情報処理装置100を画像処理装置220内に構築するようにしてもよい。画像処理装置220は、スキャナ又は複合機(スキャナ、プリンタ、複写機、ファックス等のいずれか2つ以上の機能を有している画像処理装置)であり、例えば、2つの表が含まれている文書を画像として読み取り、その表の差分を抽出して、その処理結果の画像(出力モジュール170の出力結果を画像としたもの)を印刷してもよいし、ユーザ端末210へ処理結果を送信するようにしてもよい。なお、情報処理装置100は、通信回線290に接続せず、スタンドアローンとして実現するようにしてもよい。
ステップS302では、表取得モジュール110は、2つの表の取得を行う。以下、原本の表を旧表(又はその旧表が記載されている文書を旧文書)、修正が加えられた表を新表(又はその新表が記載されている文書を新文書)を例として示す。
ステップS304では、行列数取得モジュール120は、新旧表の行列数の取得を行う。
ステップS306では、文字特定モジュール150は、各セル内の文字の取得を行う。
ステップS308では、計算モジュール130は、新旧表の行数、列数の差の算出を行う。具体的には、|新表の行数−旧表の行数|、|新表の列数−旧表の列数|の計算を行う。
ステップS310では、判断モジュール140は、行/列どちらを先に比較するかの判断を行う。ステップS308の計算結果で、行数の差分が列数の差分よりも大である場合は、行を先に比較すると判断し、列数の差分が行数の差分よりも大である場合は、列を先に比較すると判断する。
ステップS312では、対応付けモジュール160は、ステップS310での判断結果にしたがって、行又は列のいずれかの対応付けを行う。
ステップS314では、対応付けモジュール160は、行/列の対応情報を使った列又は行の対応付けを行う。ステップS312で対応付けが行われなかった列又は行(ステップS312での対応付けの対象が行である場合は列、ステップS312での対応付けの対象が列である場合は行)のいずれかを対象とした対応付けを行う。
ステップS316では、出力モジュール170は、ステップS312、ステップS314の対応付け処理の結果を出力する。
次に、図4〜図9を用いて具体例(1)について説明する。第1の表として旧表、第2の表として新表を例として示す。
(1) 図4(b)の例に示す新表420は、図4(a)の例に示す旧表410に対して第1列目と第2列目の間に新しい列を追加し(修正部分425)、旧表410の第2行第2列(新表420では第2行第3列)のセル内の文字を修正したものである(修正部分430)。行列数取得モジュール120によって、旧表410は2行3列であり、新表420は2行4列であることが判明する。
(2) 次に、計算モジュール130は、行数の差分、列数の差分を算出する。図4の例の場合、次のように算出する。
行の差分=絶対値(2−2)=0
列の差分=絶対値(3−4)=1
(3) そして、判断モジュール140は、差分の大きい方を最初の比較対象とする。図4の例の場合、行の差分(0)<列の差分(1)であるので、列を先に対応付けると判断する。
(4) 旧表410の1〜3列目の文字をそれぞれ全てつなげる。具体的には、「製品ABC」、「精度85%」、「速度1.5s」となる。
(5) 新表420の1〜4列目の文字をそれぞれ全てつなげる。具体的には、「製品ABC」、「OSWww7」、「精度95%」、「速度1.5s」となる。
(6) 旧表410の1列目と新表420の1〜4列目を比較し、それぞれ一致率を算出する。ここで一致率とは、例えば、旧表410の列毎の文字列から1文字ずつ取り出し、新表420の列毎の文字列に含まれる割合を示すものであり、文字の順番は問わない。また、これとは逆に、新表420の列毎の文字列から1文字ずつ取り出し、旧表410の列毎の文字列に含まれる割合でもよく、これらの割合の合計でも良い。なお、セル内での文字の順番を考慮するようにしてもよい。この場合は、セルの順番は問わない。また、セル内での単語等(例えば、形態素解析結果)における文字の順番を考慮するようにしてもよい。この場合も、セルの順番は問わない。例えば、旧表410の「製品ABC」と、新表420の「製品ABC」、「OSWww7」、「精度95%」、「速度1.5s」のそれぞれの一致率を算出すると、100%、0%、0%、0%となる。なお、文字の順番を考慮した場合は、その順番を考慮した文字列毎に探索すればよい。一致率は、全体の文字数における割合としてもよいし、全体の文字列数における割合としてもよい。
(7) 最も高い一致率が閾値を越える場合、その列同士を一致と判定する。閾値を越えなければ、一致なしとする。
(8) 旧表410の2〜4列目も、同様に行う。その際、すでに一致と判定された列は対象としないようにしてもよい。
その結果、図5の例((1)列の対応付け)に示すように、列の対応付けが行われる。この一致の情報を、列の対応情報テーブル600に登録する。図6は、列の対応情報テーブル600のデータ構造例を示す説明図である。列の対応情報テーブル600は、旧表欄610、新表欄620を有している。旧表欄610は、旧表410の対応付けられた列番号を記憶している。新表欄620は、新表420の対応付けられた列番号を記憶している。具体的には、旧表410の1列目と新表420の1列目が対応し、旧表410の2列目と新表420の3列目が対応し、旧表410の3列目と新表420の4列目が対応していることを示している。
そして、行について、前述の一致率を算出する。なお、上述の通り、全体の文字の順番
を考慮して一致率を算出することも可能である。例えば、旧表410の「製品精度速度」と、新表420の「製品精度速度」、「ABC95%1.5S」のそれぞれの一致率を算出すると、100%、0%となる。
旧表410の2行目も、同様に行う。その際、すでに一致と判定された行は対象としないようにしてもよい。
その結果、図5の例((2)行の対応付け)に示すように、行の対応付けが行われる。この一致の情報を、行の対応情報テーブル700に登録する。図7は、行の対応情報テーブル700のデータ構造例を示す説明図である。行の対応情報テーブル700は、旧表欄710、新表欄720を有している。旧表欄710は、旧表410の対応付けられた行番号を記憶している。新表欄720は、新表420の対応付けられた行番号を記憶している。具体的には、旧表410の1行目と新表420の1行目が対応し、旧表410の2行目と新表420の2行目が対応していることを示している。
(12) 行単位、列単位の対応付けの結果、文字の比較結果を、出力する。例えば、図9の例に示すように、液晶ディスプレイ等の表示装置に表示する。この例では、新表420に対して、2列目の差異925と2行3列目のセル内の「9」という文字である差異930を点線で囲んで、抽出した差分を示している。もちろんのことながら、差異部分と他の部分と異なるようにするのであれば、これ以外の表示形態(赤等の色を用いて差異部分を描画するようにしてもよいし、差異部分の背景を塗りつぶすようにしてもよいし、点滅表示等)であってもよい。また、行単位、列単位の対応付けの結果だけを出力するようにしてもよいし、セル内の文字比較結果だけを出力するようにしてもよい。
次に、図10〜図12を用いて具体例(2)について説明する。第1の表として旧表、第2の表として新表を例として示す。これは、旧表の行数と新表の行数の差分と、旧表の列数と新表の列数の差分が等しい場合の処理例を示している。
(1) 図10(b)の例に示す新表1020は、図10(a)の例に示す旧表1010に対して第2列目と第3列目の間に新しい列を追加し(修正部分1030)、旧表1010の第3行目と第4行目の間に新しい行を追加したものである(修正部分1025)。行列数取得モジュール120によって、旧表1010は4行3列であり、新表1020は5行4列であることが判明する。
(2) 次に、計算モジュール130は、行数の差分、列数の差分を算出する。図10の例の場合、次のように算出する。
行の差分=絶対値(4−5)=1
列の差分=絶対値(3−4)=1
(3) そして、判断モジュール140は、差分の大きい方を最初の比較対象とする。図10の例の場合、行の差分(1)=列の差分(1)である。
(4) 差分が同じ場合、旧表1010又は新表1020の行数、列数で比較する。旧表1010の場合、行数(4)>列数(3)であり、列数の方が小さいので、列から先に対応付けを行うと判断する。なお、旧表1010、新表1020のいずれを対象とするかについては、予め定められた表を用いるようにしてもよいし、行数と列数の差分が大きい方の表を対象とするようにしてもよい。
(5) 旧表1010の1〜3列目の文字をそれぞれ全てつなげる。具体的には、「A123」、「B○○○」、「C×××」となる。新表1020の1〜4列目の文字をそれぞれ全てつなげる。具体的には、「A1293」、「B○○○○」、「Z○×○×」、「C××××」となる。
(6) 図11の例に示すように、旧表1010の1列目と、新表1020の1〜4列目の文字を比較し、一致率を算出する。
(7) 旧表1010の1列目と、新表1020の1列目が、最も一致率が高く、閾値も上回るので一致とする。
(8) 旧表1010の2列目以降も同様に行う。この結果を列対応テーブル1210に登録する。図12(a)は、列対応テーブル1210のデータ構造例を示す説明図である。列対応テーブル1210は、旧表欄1212、新表欄1214を有している。旧表欄1212は、旧表1010の対応付けられた列番号を記憶している。新表欄1214は、新表1020の対応付けられた列番号を記憶している。具体的には、旧表1010の1列目と新表1020の1列目が対応し、旧表1010の2列目と新表1020の2列目が対応し、旧表1010の3列目と新表1020の4列目が対応していることを示している。
(9) 行については、列対応テーブル1210を用いて、対応する行内のセル同士の文字をつなげて比較する。具体的には、旧表1010の1行目は、列対応テーブル1210の旧表欄1212を用いて、1列目、2列目、3列目のセル内の文字をつなげて「ABC」を生成する。新表1020の1行目は、列対応テーブル1210の新表欄1214を用いて、1列目、2列目、4列目のセル内の文字をつなげて「ABC」を生成する。以下、同様に各行のセル内の文字をつなげて、文字列を生成する。つまり、(8)で対応付けられなかった列内のセルを除外して、旧表1010、新表1020の各行の文字列を生成している。
そして、行について、前述の一致率を算出する。例えば、旧表1010の「ABC」と、新表1020の「ABC」、「1○×」、「2○×」、「9○×」、「3○×」のそれぞれの一致率を算出すると、100%、0%、0%、0%、0%となる。
旧表1010の2行目以降も、同様に行う。その際、すでに一致と判定された行は対象としないようにしてもよい。
これらの一致の情報を、行対応テーブル1220に登録する。図12(b)は、行対応テーブル1220のデータ構造例を示す説明図である。行対応テーブル1220は、旧表欄1222、新表欄1224を有している。旧表欄1222は、旧表1010の対応付けられた行番号を記憶している。新表欄1224は、新表1020の対応付けられた行番号を記憶している。具体的には、旧表1010の1行目と新表1020の1行目が対応し、旧表1010の2行目と新表1020の2行目が対応し、旧表1010の3行目と新表1020の3行目が対応し、旧表1010の4行目と新表1020の5行目が対応していることを示している。
(10) 以下、具体例(1)と同様の処理を行い、新表1020の3行目(図10(b)の例に示す修正部分1025)と新表1020の3列目(図10(b)の例に示す修正部分1030)が、旧表1010とは異なることを表示する。
次に、図13〜図16に示す具体例(3)を用いて説明する。第1の表として旧表、第2の表として新表を例として示す。これは、旧表の行数と新表の行数の差分と、旧表の列数と新表の列数の差分が等しく、さらに、旧表又は新表の行数と列数が等しい場合の処理例を示している。
(1) 図13(b)の例に示す新表1320は、図13(a)の例に示す旧表1310の第2列目を修正したものである。行列数取得モジュール120によって、旧表1310は3行3列であり、新表1320は3行3列であることが判明する。
(2) 次に、計算モジュール130は、行数の差分、列数の差分を算出する。図13の例の場合、次のように算出する。
行の差分=絶対値(3−3)=0
列の差分=絶対値(3−3)=0
(3) そして、判断モジュール140は、差分の大きい方を最初の比較対象とする。図13の例の場合、行の差分(0)=列の差分(0)である。
(4) 差分が同じ場合、旧表1310又は新表1320の行数、列数で比較する。旧表1310、新表1320のいずれであっても、行数(3)=列数(3)である。
(5) 旧表1310、新表1320のいずれにおいても、行数と列数の差がない場合、行及び列毎に文字数を計数する。そして、旧表1310の各行内の文字数と対応する新表1320の各行内の文字数とで差がある行の数と、旧表1310の各列内の文字数と対応する新表1320の各列内の文字数とで差がある列の数のうち、少ない方の行又は列のいずれか一方を対象とする。図14の例に示す文字数差分テーブル1400は、旧表1310と新表1320の各行、各列の文字数と、その差を示したものである。例えば、旧表1310の1列目の文字数は3であり、新表1320の1列目の文字数は3であるので、その差は0であり、旧表1310の2列目の文字数は6であり、新表1320の2列目の文字数は3であるので、その差は3であり、旧表1310の1行目の文字数は4であり、新表1320の1行目の文字数は3であるので、その差は1であること等を示している。差がある(差が0ではない)列の組み合わせ、行の組み合わせを計数する。この場合、列では、差があるのは2列目だけであるので、差がある列数は1である。行では、差があるのは1行目、2行目、3行目であるので、差がある行数は3である。したがって、差のある行数(3)>差のある列数(1)であるので、差の少ない方である列を、先に対応付けを行うと判断する。
(6) 旧表1310の1〜3列目の文字をそれぞれ全てつなげる。具体的には、「A12」、「BD○△○△」、「C××」となる。新表1320の1〜3列目の文字をそれぞれ全てつなげる。具体的には、「A12」、「B○○」、「C××」となる。
(7) 旧表1310の1列目と、新表1320の1〜3列目の文字を比較し、一致率を算出する。
(8) 旧表1310の1列目と、新表1320の1列目が、最も一致率が高く、閾値も上回るので一致とする。
(9) 旧表1310の2列目以降も同様に行う。この結果を列対応テーブル1510に登録する。図15(a)は、列対応テーブル1510のデータ構造例を示す説明図である。列対応テーブル1510は、旧表欄1512、新表欄1514を有している。旧表欄1512は、旧表1310の対応付けられた列番号を記憶している。新表欄1514は、新表1320の対応付けられた列番号を記憶している。具体的には、旧表1310の1列目と新表1320の1列目が対応し、旧表1310の3列目と新表1320の3列目が対応していることを示している。
(10) 行については、列対応テーブル1510を用いて、対応する行内のセル同士の文字をつなげて比較する。具体的には、旧表1310の1行目は、列対応テーブル1510の旧表欄1512を用いて、1列目、3列目のセル内の文字をつなげて「AC」を生成する。新表1320の1行目は、列対応テーブル1510の新表欄1514を用いて、1列目、3列目のセル内の文字をつなげて「AC」を生成する。以下、同様に各行のセル内の文字をつなげて、文字列を生成する。つまり、(9)で対応付けられなかった列内のセルを除外して、旧表1310、新表1320の各行の文字列を生成している。
そして、行について、前述の一致率を算出する。例えば、旧表1310の「AC」と、新表1320の「AC」、「1×」、「2×」のそれぞれの一致率を算出すると、100%、0%、0%となる。
旧表1310の2行目以降も、同様に行う。その際、すでに一致と判定された行は対象としないようにしてもよい。
これらの一致の情報を、行対応テーブル1520に登録する。図15(b)は、行対応テーブル1520のデータ構造例を示す説明図である。行対応テーブル1520は、旧表欄1522、新表欄1524を有している。旧表欄1522は、旧表1310の対応付けられた行番号を記憶している。新表欄1524は、新表1320の対応付けられた行番号を記憶している。具体的には、旧表1310の1行目と新表1320の1行目が対応し、旧表1310の2行目と新表1320の2行目が対応し、旧表1310の3行目と新表1320の3行目が対応していることを示している。
(11) 以下、具体例(1)と同様の処理を行い、新表1320の2列目が、旧表1310とは異なることを表示する。
しかし、図16(a)の例に示すような構造の対象表1610がある場合もある。つまり、対象表1610のように、セルの分割、統合がある場合(ある行を構成するセル数が他の行を構成するセル数と異なる場合、又は、ある列を構成するセル数が他の列を構成するセル数と異なる場合)、図16(b)の例に示すような変換後表1620として扱う。変換後表1620は、対象表1610の最小のセルに合わせて、他のセルを分割したものである。具体的には、対象表1610の1列2行目のセルを2列のセルに合わせて2つに分割し、同様に、対象表1610の1列3行目のセルを2列のセルに合わせて3つに分割したものである。行列数取得モジュール120は、対象としている表のある行を構成するセル数が他の行を構成するセル数と異なる場合、又は、ある列を構成するセル数が他の列を構成するセル数と異なる場合は、その表において最小のセルに合わせて、他のセルを分割した表を生成して、行数、列数を計数する。また、新しく生成したセルには、分割前のセル内の文字を設定する。
したがって、変換後表1620の1行目の文字の接続は「ABCDE」となり、2行目の文字の接続は「A1B1C1D1E1」となり、3行目の文字の接続は「A1B2C2D2E2」となり、4行目の文字の接続は「A2B3C3D3E3」となり、5行目の文字の接続は「A2B4C4D4E4」となり、6行目の文字の接続は「A2B5C5D5E5」となる。また、変換後表1620の1列目の文字の接続は「AA1A1A2A2A2」となり、2列目の文字の接続は「BB1B2B3B4B5」となり、3列目の文字の接続は「CC1C2C3C4C5」となり、4列目の文字の接続は「DD1D2D3D4D5」となり、5列目の文字の接続は「EE1E2E3E4E5」となる。
つまり、対応付けモジュール160は、次の処理を行うようにしてもよい。
第1の表と第2の表の各行で対応付ける(第1の対応付け処理)。次に、第1の対応付け処理によって対応付けられなかった行内のセルを除外して、第1の表と第2の表の各列で対応付ける(第2の対応付け処理)。そして、第1の表と第2の表の各列で対応付ける(第3の対応付け処理)。次に、第3の対応付け処理によって対応付けられなかった列内のセルを除外して、第1の表と第2の表の各行で対応付ける(第4の対応付け処理)。
そして、第1の対応付け処理と第2の対応付け処理によって対応付けられなかった行数と列数の和と、第3の対応付け処理と第4の対応付け処理によって対応付けられなかった行数と列数の和を比較し、少ない方の対応付け結果を選択する。
「プログラムを記録したコンピュータ読み取り可能な記録媒体」とは、プログラムのインストール、実行、プログラムの流通等のために用いられる、プログラムが記録されたコンピュータで読み取り可能な記録媒体をいう。
なお、記録媒体としては、例えば、デジタル・バーサタイル・ディスク(DVD)であって、DVDフォーラムで策定された規格である「DVD−R、DVD−RW、DVD−RAM等」、DVD+RWで策定された規格である「DVD+R、DVD+RW等」、コンパクトディスク(CD)であって、読出し専用メモリ(CD−ROM)、CDレコーダブル(CD−R)、CDリライタブル(CD−RW)等、ブルーレイ・ディスク(Blu−ray(登録商標) Disc)、光磁気ディスク(MO)、フレキシブルディスク(FD)、磁気テープ、ハードディスク、読出し専用メモリ(ROM)、電気的消去及び書換可能な読出し専用メモリ(EEPROM(登録商標))、フラッシュ・メモリ、ランダム・アクセス・メモリ(RAM)、SD(Secure Digital)メモリーカード等が含まれる。
そして、前記のプログラム又はその一部は、前記記録媒体に記録して保存や流通等させてもよい。また、通信によって、例えば、ローカル・エリア・ネットワーク(LAN)、メトロポリタン・エリア・ネットワーク(MAN)、ワイド・エリア・ネットワーク(WAN)、インターネット、イントラネット、エクストラネット等に用いられる有線ネットワーク、又は無線通信ネットワーク、さらにこれらの組み合わせ等の伝送媒体を用いて伝送させてもよく、また、搬送波に乗せて搬送させてもよい。
さらに、前記のプログラムは、他のプログラムの一部分であってもよく、又は別個のプログラムと共に記録媒体に記録されていてもよい。また、複数の記録媒体に分割して記録されていてもよい。また、圧縮や暗号化等、復元可能であればどのような態様で記録されていてもよい。
110…表取得モジュール
120…行列数取得モジュール
130…計算モジュール
140…判断モジュール
150…文字特定モジュール
160…対応付けモジュール
170…出力モジュール
210…ユーザ端末
220…画像処理装置
290…通信回線
Claims (7)
- 第1の表の行数と第2の表の行数の差分と、前記第1の表の列数と前記第2の表の列数の差分のうち、多い方の差分となる行又は列のいずれか一方を対象として、前記第1の表と前記第2の表の各行又は各列で対応付ける第1の対応付け手段と、
前記第1の対応付け手段によって対象としなかった列又は行のいずれか一方を対象とし、前記第1の対応付け手段によって対応付けられなかった行又は列内のセルを除外して、前記第1の表と前記第2の表の各列又は各行で対応付ける第2の対応付け手段
を具備する情報処理装置。 - 前記第1の対応付け手段と前記第2の対応付け手段によって、前記第1の表と前記第2の表とで対応付けられた行又は列内のセルを対応付ける第3の対応付け手段と、
前記第3の対応付け手段によって対応付けられたセル内の文字を比較する比較手段と、
前記第1の対応付け手段と前記第2の対応付け手段による処理結果と、前記比較手段によって比較された結果を出力する出力手段
を具備する請求項1に記載の情報処理装置。 - 前記第1の対応付け手段は、
前記第1の表の行数と前記第2の表の行数の差分と、前記第1の表の列数と前記第2の表の列数の差分が等しい場合は、前記第1の表又は前記第2の表の行数と列数のうち、少ない方の行又は列のいずれか一方を対象とする、
請求項1又は2に記載の情報処理装置。 - 前記第1の対応付け手段は、
前記第1の表の行数と前記第2の表の行数の差分と、前記第1の表の列数と前記第2の表の列数の差分が等しい場合は、前記第1の表の各行内の文字数と対応する前記第2の表の各行内の文字数とで差がある行の数と、前記第1の表の各列内の文字数と対応する前記第2の表の各列内の文字数とで差がある列の数のうち、少ない方の行又は列のいずれか一方を対象とする、
請求項1から3のいずれか一項に記載の情報処理装置。 - 第1の表と第2の表の各行で対応付ける第1の対応付け手段と、
前記第1の対応付け手段によって対応付けられなかった行内のセルを除外して、前記第1の表と前記第2の表の各列で対応付ける第2の対応付け手段と、
前記第1の表と前記第2の表の各列で対応付ける第3の対応付け手段と、
前記第3の対応付け手段によって対応付けられなかった列内のセルを除外して、前記第1の表と前記第2の表の各行で対応付ける第4の対応付け手段と、
前記第1の対応付け手段と前記第2の対応付け手段によって対応付けられなかった行数と列数の和と、前記第3の対応付け手段と前記第4の対応付け手段によって対応付けられなかった行数と列数の和を比較し、少ない方の対応付け結果を選択する選択手段
を具備する情報処理装置。 - コンピュータを、
第1の表の行数と第2の表の行数の差分と、前記第1の表の列数と前記第2の表の列数の差分のうち、多い方の差分となる行又は列のいずれか一方を対象として、前記第1の表と前記第2の表の各行又は各列で対応付ける第1の対応付け手段と、
前記第1の対応付け手段によって対象としなかった列又は行のいずれか一方を対象とし、前記第1の対応付け手段によって対応付けられなかった行又は列内のセルを除外して、前記第1の表と前記第2の表の各列又は各行で対応付ける第2の対応付け手段
として機能させるための情報処理プログラム。 - コンピュータを、
第1の表と第2の表の各行で対応付ける第1の対応付け手段と、
前記第1の対応付け手段によって対応付けられなかった行内のセルを除外して、前記第1の表と前記第2の表の各列で対応付ける第2の対応付け手段と、
前記第1の表と前記第2の表の各列で対応付ける第3の対応付け手段と、
前記第3の対応付け手段によって対応付けられなかった列内のセルを除外して、前記第1の表と前記第2の表の各行で対応付ける第4の対応付け手段と、
前記第1の対応付け手段と前記第2の対応付け手段によって対応付けられなかった行数と列数の和と、前記第3の対応付け手段と前記第4の対応付け手段によって対応付けられなかった行数と列数の和を比較し、少ない方の対応付け結果を選択する選択手段
として機能させるための情報処理プログラム。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2014242738A JP6421568B2 (ja) | 2014-12-01 | 2014-12-01 | 情報処理装置及び情報処理プログラム |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2014242738A JP6421568B2 (ja) | 2014-12-01 | 2014-12-01 | 情報処理装置及び情報処理プログラム |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2016105214A JP2016105214A (ja) | 2016-06-09 |
JP6421568B2 true JP6421568B2 (ja) | 2018-11-14 |
Family
ID=56102474
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2014242738A Expired - Fee Related JP6421568B2 (ja) | 2014-12-01 | 2014-12-01 | 情報処理装置及び情報処理プログラム |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP6421568B2 (ja) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR102076550B1 (ko) * | 2018-06-22 | 2020-02-12 | 주식회사 한글과컴퓨터 | 스프레드시트 편집 장치 및 방법 |
JP2024127307A (ja) * | 2023-03-09 | 2024-09-20 | 株式会社LegalOn Technologies | 情報処理方法、情報処理システム、及びプログラム |
Family Cites Families (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2001195522A (ja) * | 2000-01-11 | 2001-07-19 | Casio Comput Co Ltd | 表処理装置および記憶媒体 |
JP5175284B2 (ja) * | 2006-07-31 | 2013-04-03 | クラスター セブン リミテッド | スプレッドシートおよびその他の文書の記憶および処理 |
US20080222508A1 (en) * | 2007-03-08 | 2008-09-11 | Huy Nguyen | Method and system for comparing spreadsheets |
JP2012032930A (ja) * | 2010-07-29 | 2012-02-16 | Oki Electric Ind Co Ltd | 更新箇所検出プログラム、更新箇所検出方法および更新箇所検出装置 |
US9042653B2 (en) * | 2011-01-24 | 2015-05-26 | Microsoft Technology Licensing, Llc | Associating captured image data with a spreadsheet |
-
2014
- 2014-12-01 JP JP2014242738A patent/JP6421568B2/ja not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
JP2016105214A (ja) | 2016-06-09 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US20150213332A1 (en) | Image processing apparatus, non-transitory computer readable medium, and image processing method | |
US20170024426A1 (en) | Information processing apparatus, information processing method, and non-transitory computer readable medium | |
US20120036583A1 (en) | Computer readable medium storing program, information processing apparatus, and method | |
JP6421568B2 (ja) | 情報処理装置及び情報処理プログラム | |
JP2009251872A (ja) | 情報処理装置及び情報処理プログラム | |
JP6221220B2 (ja) | 画像処理装置及び画像処理プログラム | |
US8612979B2 (en) | Information processing apparatus to process a processing target, information method, and computer readable medium | |
JP4780184B2 (ja) | 画像処理装置及び画像処理プログラム | |
JP5440043B2 (ja) | 画像処理装置及び画像処理プログラム | |
JP2008052439A (ja) | 画像処理システムおよび画像処理プログラム | |
JP5481965B2 (ja) | 情報処理装置及び情報処理プログラム | |
US9170725B2 (en) | Information processing apparatus, non-transitory computer readable medium, and information processing method that detect associated documents based on distance between documents | |
EP3113031A1 (en) | Image processing device, image processing method, and program | |
JP5928714B2 (ja) | 情報処理装置及び情報処理プログラム | |
JP4793429B2 (ja) | 画像処理装置及び画像処理プログラム | |
US20170053677A1 (en) | Information processing apparatus, information processing method, and non-transitory computer readable medium | |
JP5803481B2 (ja) | 情報処理装置及び情報処理プログラム | |
JP5842437B2 (ja) | 情報処理装置及び情報処理プログラム | |
JP5510221B2 (ja) | 情報処理装置及び情報処理プログラム | |
JP5949248B2 (ja) | 情報処理装置及び情報処理プログラム | |
JP6682827B2 (ja) | 情報処理装置及び情報処理プログラム | |
JP6303531B2 (ja) | 画像処理装置及び画像処理プログラム | |
JP6260181B2 (ja) | 情報処理装置及び情報処理プログラム | |
JP6003677B2 (ja) | 画像処理装置及び画像処理プログラム | |
US20180241905A1 (en) | Image processing apparatus and non-transitory computer readable medium |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20170926 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20180828 |
|
TRDD | Decision of grant or rejection written | ||
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 Effective date: 20180918 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20181001 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 6421568 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
S533 | Written request for registration of change of name |
Free format text: JAPANESE INTERMEDIATE CODE: R313533 |
|
R350 | Written notification of registration of transfer |
Free format text: JAPANESE INTERMEDIATE CODE: R350 |
|
LAPS | Cancellation because of no payment of annual fees |