以下、図面に基づいて、本発明の好適な実施の形態について説明する。
図1は、本発明に係る情報処理装置10の一実施の形態を示したブロック構成図である。本実施の形態における情報処理装置10は、汎用的なパーソナルコンピュータ(PC)等のコンピュータで実現できる。つまり、情報処理装置10は、CPU、ROM、RAM、ハードディスクドライブ(HDD)等の記憶手段、また処理対象とする文書をネットワーク経由で取得する場合、ネットワークインタフェースを有する。コンテンツをCD−ROMやUSBメモリ等のコンピュータ読み取り可能な記録媒体から読み取る場合には、そのための外部インタフェースを備える必要がある。また、情報処理装置10は、ユーザと情報を授受する必要があるので、そのためにユーザーインタフェース、例えばマウスやキーボード、またディスプレイを有する。あるいは、ネットワークを介してユーザと情報の授受を行う場合にはネットワークインタフェースを備えてもよい。
本実施の形態における情報処理装置10は、格納先特定依頼受付部11、関連文書情報取得部12、解析部13、フォルダ名決定部14、項目名候補情報記憶部15及び命名規則記憶部16を有している。なお、本実施の形態の説明に用いない構成要素については、図から省略している。本実施の形態における情報処理装置10は、ユーザからの格納先特定依頼に応じて処理対象とする文書の格納先の格納先名称を自動的に決定する機能を有する情報処理装置である。図1に示すように、情報処理装置10に文書の格納先となる記憶手段を設けておく必要はない。本実施の形態では、情報処理装置10の外部の文書管理システムに処理対象とする文書の格納先が設けられているものとして説明する。もちろん、情報処理装置10が処理対象とする文書の格納先であってもよい。
ところで、企業では、物品の購買の際に購買部門などを通じて見積を購入先の候補となる企業に対して依頼し、購入先の候補からの見積回答を元に購入可否を決定するという手順が一般的である。購買部門側は、回答やその後の発注の有無を管理するため、見積依頼ごとに見積書を識別する識別情報として見積番号を採番するのが一般的である。そして、前述した文書管理システムでは、見積書毎にフォルダを作成するという運用が既になされているとし、そして各見積書の見積番号と同一の名称を当該見積書の格納先の格納先名称として命名しているものとする。つまり、各見積書を格納するフォルダのフォルダ名は、当該見積書の見積番号となる。
本実施の形態では、このように見積依頼先から送付されてきた見積書を文書の例とし、その文書の識別情報として見積書の見積番号を利用する場合を例にして説明する。そして、見積番号は、見積書に記載される項目値の1つであり、必ず見積書に記載されているものとする。但し、各見積書において、見積番号は見積書のどこに記載されているかは不明である。また、見積番号という項目値に対応付けられる項目名、更に項目名と項目値との位置関係も不明である。つまり、本実施の形態では、定型文書以外の文書も処理対象とすることが可能である。
格納先特定依頼受付部11は、格納先への格納対象とする文書及びその文書の文種種別を取得する。関連文書情報取得部12は、格納先特定依頼受付部11が取得した文書(以下、「格納対象文書」ともいう)と関連する文書に関する情報を関連文書情報として取得する。格納対象文書と関連する文書というのは、格納対象文書と同じ種別の文書であって格納先に既に格納されている文書(以下、「格納済み文書」ともいう)のことをいう。関連文書情報取得部12は、格納済み文書に関する情報、すなわち関連文書情報として、各格納済みの文書の格納先の格納先名称を取得する。
解析部13は、関連文書情報取得部12が取得した関連文書情報を解析することによって項目名の候補及び格納済み文書の格納先の格納先名称の命名規則を抽出する。解析部13は、項目名候補抽出部131及び命名規則抽出部132を含む。項目名候補抽出部131は、関連文書情報を解析することによって項目名の候補を抽出して、項目名候補情報記憶部15に保存する。命名規則抽出部132は、格納済みの文書がそれぞれ格納されている格納先の格納先名称に共通している命名規則を抽出して、命名規則記憶部16に保存する。
フォルダ名決定部14は、項目名候補抽出部131が抽出した項目名の候補及び命名規則を参照して格納対象文書の格納先の格納先名称を決定する。
情報処理装置10における各構成要素11〜14は、情報処理装置10を形成するコンピュータと、コンピュータに搭載されたCPUで動作するプログラムとの協調動作により実現される。また、各記憶部15,16は、情報処理装置10に搭載されたHDDにて実現される。あるいは、RAM又は外部にある記憶手段をネットワーク経由で利用してもよい。
また、本実施の形態で用いるプログラムは、通信手段により提供することはもちろん、CD−ROMやUSBメモリ等のコンピュータ読み取り可能な記録媒体に格納して提供することも可能である。通信手段や記録媒体から提供されたプログラムはコンピュータにインストールされ、コンピュータのCPUがプログラムを順次実行することで各種処理が実現される。
本実施の形態における情報処理装置10は、前述したように格納対象文書と関連する格納済み文書の関連文書情報を解析することによって格納対象文書の格納先の格納先名称を自動的に決定することを特徴としているが、以下、この特徴的な格納先決定処理について図2に示すフローチャートを用いて説明する。なお、前述したように、文書として見積書を取り扱う場合を例にして説明する。
ユーザ(ここでは、ある企業の従業員を想定)は、見積書の作成を企業に依頼し、この依頼に応じて送付されてきた見積書を受け取ったとする。なお、本実施の形態において取り扱う見積書は、電子データ化されている文書データである。本実施の形態では、全ての文書を共通したファイル形式、例えばPDFのファイル形式にて取り扱うものとして説明する。
格納先特定依頼受付部11は、ユーザから格納先を特定したい見積書を取得することによって格納先の特定依頼を受け付ける(ステップ101)。このとき、ユーザが文書の種別が見積書であることも合わせて指定すると、格納先特定依頼受付部11は、指定された文書の文種種別が見積書であると認識する(ステップ102)。格納対象文書となる見積書の内容例を図3に示す。前述したように、格納対象文書となる見積書には、当該見積書を識別する見積番号“180005”が記載されている。
なお、本実施の形態では、ユーザから見積書を取得するように説明したが、見積書作成元の企業から直接取得してもよい。また、ユーザに文書種別を指定させなくても、受け取った文書の内容を解析することで、文書種別を認識するように処理してもよい。一般に、文書種別を特定する語句は、文書の標題(タイトル)として文書の上方に記載されていることから特定しやすい。
格納対象文書の文書種別が認識されると、関連文書情報取得部12は、文書種別から当該文書種別に対応する文書の格納先のルートフォルダを特定する。文書種別として見積書と指定された場合、“見積回答書フォルダ”というルートフォルダを特定する。そして、関連文書情報取得部12は、ルートフォルダ以下のフォルダに格納されている文書、すなわちフォルダに既に格納されている見積書(ファイル名は“見積回答書.pdf”)及び各見積書のフォルダ名を関連文書情報として取得する(ステップ103)。なお、格納先名称とフォルダ名とは同義である。以降の説明では、文書の格納先となる記憶手段を「文書データベース」と称することにすると、この文書データベースにおいて見積書の格納領域の構造を図4に示す。また、文書データベースに既に格納されている見積書の内容例を図5に示す。
図4及び図5に示すように、企業(D株式会社)から格納対象文書となる見積書を受け取る前に、他の企業(A,B,Cの各株式会社)から受け取っている見積書は、文書データベースにおいて“見積回答書フォルダ”と命名された見積書のルートフォルダ以下に既に格納されている格納済み文書である。格納済み文書に相当する各見積書は、各見積書の見積番号をフォルダ名としたフォルダに格納される。
また、図5に例示するように、各企業から受け取る見積書のフォーマットは、共通化されておらず、項目値の1つである見積番号の記載位置、また項目値である見積番号と当該項目値に対応する項目名である“見積番号:”との位置関係も一様ではない。なお、図5においては、項目値である見積番号に対応する項目名を全て同じとしたが、項目名も一様であるとは限らない。
関連文書情報取得部12が文書種別を参照して文書データベースから関連文書情報を取得すると、解析部13は、関連文書情報を解析することで項目名の候補及びフォルダ名の命名規則を次のようにして抽出する。
まず、解析部13における項目名候補抽出部131は、各格納済み文書である見積書に対応するフォルダ名から当該見積書における見積番号を特定する。なお、フォルダ名と見積番号とは同じである。そして、項目名候補抽出部131は、画像解析を行うことで、各見積書における見積番号の記載位置を特定する。この特定される見積番号というのは、見積書に記載されている項目値の1つである。続いて、項目名候補抽出部131は、その特定した見積番号の近傍に位置する文字列を抽出し、見積番号と、抽出した文字列との関係に基づき、項目名の候補を抽出する(ステップ104)。
例えば、図5(a)に示す見積書によると、見積番号の近傍には、上方に“見積番号:”という文字列があり、下方に“2019年○月×日”という文字列がある。従って、図5(a)では、“見積番号:”及び“2019年○月×日”を項目名の候補として抽出可能である。また、図5(b)に示す見積書によると、見積番号の近傍には、左方に“見積番号:”という文字列があり、下方に“御見積書”という文字列がある。従って、図5(b)では、“見積番号:”及び“御見積書”を項目名の候補として抽出可能である。また、また、図5(c)に示す見積書によると、見積番号の近傍には、左方に“見積番号:”という文字列があり、下方には“下記の通り回答致します。”という文字列がある。従って、図5(c)では、“見積番号:”及び“下記の通り回答致します。”を項目名の候補として抽出可能である。
ここで、図5(a)に示す見積書によると、項目値である見積番号の左斜め上方向に“御見積書”という文字列がある。この文字列は、下方の“2019年○月×日”より見積番号に距離的に近いかもしれない。つまり、見積番号の近傍に位置すると考えられるかもされない。しかしながら、項目名と項目値との位置関係において、通常は斜めの位置関係にあることはない。通常は、上下左右のいずれかに位置すると考えられる。また、見積番号の直上に“見積番号:”があるので、“見積番号:”を飛び越えた位置にある“御見積書”が見積番号の項目名となるとは考えられない。このように、「見積番号」という項目値と単に距離的に近い位置関係にあっても、項目値に対する相対的位置、つまり、上下左右に位置し、かつ項目値との間に他の文字列が存在しない文字列を項目名の候補として抽出する。本実施の形態において「近傍」というのは、単に距離的に近いという意味だけではなく、他の文字列との位置関係を考慮している。
図5(c)においても同様で、“見積書”は見積番号の直上にあるかもしれないけれども、見積番号の左斜め上には“Z株式会社”という文字列が存在する。すなわち、“見積書”は、“Z株式会社”を飛び越えた位置にあるため、項目名の候補として抽出しない。そして、“Z株式会社”は、見積番号の斜めの位置にあるため、項目名の候補として抽出しない。
このように、本実施の形態では、項目値である見積番号の直上、直下、直左及び直右に位置する文字列を項目名の候補として抽出する。
更に、図5(c)に示す“下記の通り回答致します。”と項目値である見積番号との間には、文字列が存在しないが、項目名は、項目値が示す値を説明する文字列であり、本来、項目値のすぐ近くに存在するはずである。従って、項目値の近傍に位置しない文字列は、項目名の候補としない。距離的に「近傍」に該当するかどうかは、所定の距離関係を示す指標値との比較により判定してもよい。距離関係を示す指標値として、例えば、ピクセル数を示す閾値を予め設定する。そして、見積書から抽出された文字列と項目値との間がその閾値以上離れている場合、その文字列は項目値の近傍に位置しないとみなし、項目名の候補として抽出しない。
また、行数を示す閾値を予め設定する。そして、文字列又は項目値のフォントサイズを特定し、そのフォントサイズを参照して文字列と項目値との行間を算出する。その行間がその閾値以上離れている場合、その文字列は項目値の近傍に位置しないとみなし、項目名の候補として抽出しない。同様に、文字数を示す閾値を予め設定し、文字列と項目値との間の文字数がその閾値以上離れている場合、その文字列は項目値の近傍に位置しないとみなし、項目名の候補として抽出しないようにしてもよい。
更に、所定の割合(率)を予め設定する。そして、見積書の用紙サイズを特定し、文字列と項目値との間が用紙サイズに割合を乗算した値以上離れている場合、その文字列は項目値の近傍に位置しないとみなし、項目名の候補として抽出しない。
以上説明したように、項目名候補抽出部131は、項目値である見積番号との位置関係及び距離関係に従って項目値である見積番号の近傍に位置するかどうかを判定して項目名の候補を抽出する。
項目名の候補を抽出すると、続いて、項目名候補抽出部131は、各項目名の候補が項目値(つまり、見積番号)に対してどの位置にあるかその傾向を解析する。換言すると、項目名と項目値との位置規則性を抽出する(ステップ105)。
例えば、図5(a)に示す見積書を解析することで、項目名候補抽出部131は、見積番号“180001”に対し、文字列“見積番号:”は上方3ピクセルの位置にあり、文字列“2019年○月×日”は下方30ピクセルの位置にあることを認識する。また、図5(b)に示す見積書を解析することで、項目名候補抽出部131は、見積番号“180002”に対し、文字列“見積番号:”は左方3ピクセルの位置にあり、文字列“御見積書”は下方15ピクセルの位置にあることを認識する。同様に、図5(c)に示す見積書を解析することで、項目名候補抽出部131は、見積番号“180007”に対し、文字列“見積番号:”は左方5ピクセルの位置にあると認識する。
このような位置関係から、例えば、文字列“見積番号:”は、項目値である見積番号に対し、上下左右いずれかの方向の5ピクセル以内に存在する確率は100%である、また、文字列“御見積書”は項目値である見積番号に対し、上下左右の25ピクセル以内に存在する確率は67%である、などのように各項目名の候補に対して位置規則性を抽出する。本実施の形態では、前述した100%及び67%のように、項目値の項目名としての確度を項目名の候補毎に算出する。項目名候補抽出部131は、各項目名の候補における位置規則性の確度を、フォルダ名決定部14がフォルダ名を決定する際の指標値として提供する。
なお、図5(a)〜(c)に例示したように、同じ意味を示す語句でも“御見積書”や“見積書”のように表記に揺らぎが発生している可能性がある。この表記の揺らぎを考慮し、同じ意味を示す文字列を集約してから各項目名の候補に対して位置規則性を抽出するようにするのが好適である。
以上のようにして、項目名候補抽出部131は、項目名の候補を抽出し、また項目値と各項目名の候補との位置規則性を抽出すると、項目名候補情報記憶部15に登録する。本実施の形態においては、以上の項目名の抽出処理により、文字列“見積番号:”及び“御見積書”を項目名の候補とし抽出でき、またそれぞれの項目名の候補につき位置規則性が抽出されたものとして説明を続ける。
本実施の形態では、各項目名の候補を抽出してから位置規則性を抽出するようにしたが、項目値と見積書に記載されている各文字列との位置規則性を抽出し、項目値と各文字列との位置関係及び距離関係から、項目値の近傍に位置すると判定される文字列を各項目名の候補として抽出してもよい。
続いて、解析部13における命名規則抽出部132は、格納済み文書の各フォルダ名を解析することで、フォルダ名の命名規則を抽出する(ステップ106)。図4に示すフォルダ名の例によると、6桁の数字であるという規則は100%、先頭2文字は“18”であるという規則は100%などのように命名規則を抽出する。なお、命名規則を抽出する場合、前述した100%及び100%のように、命名規則としての確度を命名規則毎に算出する。命名規則抽出部132は、以上のようにして抽出した命名規則を命名規則記憶部16に登録する。
前述したステップ103〜106は、見積書という文書種別に該当する格納対象文書の格納先を決定する際に、格納対象文書の文書種別が特定されたことに伴い実施される事前処理に相当するとも考えられる。つまり、例えば、見積書、発注書、契約書等の文書種別毎にステップ103〜106に示す処理を事前に実施して項目名の候補及び命名規則を予め用意してもよい。そして、予め用意されている項目名の候補及び命名規則の中から、ステップ102で文書種別が認識されると、その認識された文書種別に対応する項目名の候補及び命名規則を取り出すようにしてもよい。
続いて、フォルダ名決定部14は、次のようにして格納対象文書を格納先となるフォルダのフォルダ名を決定する。
まず、フォルダ名決定部14は、格納対象文書を解析することで項目名の候補と合致する文字列を探し出す。図3に示す見積書の例によると、項目名の候補である“見積番号:”及び“御見積書”の双方の文字列を抽出できる(ステップ107)。
続いて、フォルダ名決定部14は、項目名の候補毎に近傍に位置する文字列を抽出する。例えば、“見積番号:”に対しては、右方に位置する“180007”及び上方に位置する“Z株式会社”という各文字列を抽出するが、位置規則性を参照して“180007”をフォルダ名の候補として抽出する(ステップ108)。一方、“御見積書”に対しては、下方に位置する“Z株式会社”という各文字列を抽出するが、位置規則性を参照するとフォルダ名の候補は抽出できない。なお、本実施の形態の場合、項目値である見積番号がそのままフォルダ名となるので、ここでいうフォルダ名の候補というのは、項目名に対する項目値の候補と等しい。
なお、位置規則性を参照しても1つに特定できない場合、一般常識を参照してもよい。例えば、横書きのフォームの場合、項目値は、項目名の右側か下側に位置することが一般的である。従って、このような一般常識から導出される位置関係の判断指標を高く評価して項目名を決定するようにしてもよい。また、項目名の候補が1つしか抽出されていない場合、フォルダ名決定部14は、その候補を項目名として決定する。
続いて、フォルダ名決定部14は、各フォルダ名の候補をフォルダ名の命名規則を照合することで、フォルダ名の候補の中から命名規則に合致するフォルダ名の候補を、格納対象文書のフォルダ名として決定する(ステップ109)。図3に示す見積書によると、項目名は“見積番号:”に特定され、これに伴い、項目名“見積番号:”に対応する項目値として、文字列“180005”が選定される。つまり、“見積番号:”に対応する文字列“180005”がフォルダ名として決定される。
このようにして、本実施の形態では、格納済み文書がそれぞれ格納されているフォルダのフォルダ名を参照して、格納対象文書の格納先を決定する。
上記例では、フォルダ名の候補はただ1つなので、命名規則との照合を実施しないようにしてよいし、確認のために照合するようにしてもよい。なお、命名規則に従うと、図3に示す見積書の金額は、全ての命名規則に合致する文字列“188000”が含まれている。しかしながら、項目名と項目値との位置規則性を考慮すると、項目値として選ばれない。このように、項目名と項目値との位置規則性及びフォルダの命名規則の双方を考慮することで、見積番号を正しく抽出することが可能となる。
以上のようにして、格納対象文書のフォルダ名を決定すると、格納先特定依頼元に前述した処理結果、すなわちフォルダ名を通知する。この結果、文書管理システムでは、“180005”という名称でフォルダを作成し、このフォルダに図3に示す見積書を格納する。このようにして格納対象文書がフォルダに格納された後の文書データベースにおいて見積書の格納領域の構造を図6に示す。
なお、複数のフォルダ名の候補が抽出された場合、フォルダ名決定部14は、各命名規則の確度を提示して、ユーザに選択させるようにしてもよい。例えば、フォルダ名決定部14は、図3に示す格納対象文書である見積書のレイアウトと、各フォルダ名の候補における命名規則の確度とを表示させる。命名規則が複数存在する場合、フォルダ名決定部14は、次のようにして確度を算出してもよい。
例えば、項目名“見積番号:”に対応する項目値として“2500”及び“150”が抽出されたとする。ここで、第1規則「4桁の数字で、その確度は90%」及び第2規則「1で始まり、その確度は60%」という2つの命名規則があった場合、“2500”は、第1規則に合致し、第2規則に合致しないので、フォルダ名である確率は、0.9×(1−0.6)=0.36と算出できる。一方、“150”は、第1規則に合致せず、第2規則と合致するので、フォルダ名である確率は、(1−0.9)×0.6=0.06と算出できる。よって、フォルダ名の候補として“2500”及び“150”が抽出され、それぞれの確度は36%と6%であることをユーザに提示し、最終的にユーザに選択させるようにしてもよい。
ところで、項目名と項目値との位置関係において、項目名の右側若しくは下側に項目値があるのが一般的である。従って、項目名の候補と項目値との位置規則性の確度に差が生じない場合、位置規則性の確度が項目名の候補に対応する項目値を特定するのに有効な指標とならない可能性が生じてくる。この場合、他の指標を参照するのが有効となる可能性がある。例えば、ある会社から見積書以外にも発注書や契約書等他の種類の文書を受け取っているとする。また、会社は、文書の種類に関係なく、共通の位置規則性に従い各文書を作成する場合がある。例えば、見積書における項目名“見積番号:”に対応する項目値(つまり、見積書の識別情報である見積番号)を項目名の右側に記載する企業においては、発注書における項目名“発注番号:”に対応する項目値(つまり、発注書の識別情報である発注番号)を項目名の右側に記載することが推測できる。契約書においても同様の規則に従い、項目値(つまり、契約書の識別情報である契約番号)を項目名“契約番号:”の右側に記載すると推測できる。このように、企業というくくりにおいて他の文書種別における項目名と項目値との位置関係を参照して、項目名の候補に対応する項目値を特定するようにしてもよい。これは、文書データベースにおいて、企業毎に文書をまとめて格納している場合に好適である。
図7は、本実施の形態において文書の格納領域の構造を示す図である。図4では、見積書(ファイル名は、“見積回答書.pdf”)の格納領域を示したが、図7では、“見積関連フォルダ”をルートフォルダとする、見積に関連する文書を格納するフォルダの構造が示されている。具体的には、見積書の他に発注依頼書が同じフォルダに格納される例が示されている。
この場合、図2を用いて説明したステップ103の処理では、発注依頼書も合わせて取得してしまうことになる。そこで、本実施の形態においては、文書種別が指定されると、その指定された文書種別に該当する文書のみを抽出できるように、例えば、関連文書情報取得部12は、所定の検索語を指定して文書をフォルダから抽出するように処理する。例えば、格納対象文書が見積書の場合、関連文書情報取得部12は、“*見積*”というワイルドカードを含む検索語によって見積関連フォルダから、所望の見積書のみを抽出する。
図8は、本実施の形態において見積書の格納領域の他の構造を示す図である。文書を格納する場合、フォルダを事前に作成しておく場合がある。例えば、ある企業に見積依頼をする際、見積番号を付与するが、これと合わせて見積回答を受け取る前に文書データベースにフォルダを作成して準備しておく場合がある。図8には、見積番号が“180005”及び“180009”というフォルダが事前に作成された場合の例が示されている。この2つのフォルダには、“見積回答書.pdf”が格納されていない空のフォルダであることから、事前準備により作成されていると判断できる。
ここで、格納先特定依頼受付部11が見積書を取得した場合、フォルダ名決定部14は、前述したように処理することで見積書の格納先となるフォルダのフォルダ名を決定してもよいが、見積回答書フォルダ以下のフォルダを参照し、その中から“見積回答書.pdf”が格納されていない空のフォルダのフォルダ名(つまり、“180005”及び“180009”)を項目値(つまり、見積番号)の候補として事前に取得しておく。これにより、格納対象文書となる見積書から項目名に近傍する文字列が複数抽出されたとしても、フォルダ名決定部14は、“180005”又は“180009”に該当する文字列を見積番号、すなわち格納対象文書となる見積書を格納するフォルダのフォルダ名の候補として事前に絞り込んでおくことができ、この中からフォルダ名を決定することができる。
以上説明したように、本実施の形態によれば、見積番号と同一名称のフォルダに見積書を格納する場合において、格納対象文書と同じ文書種別である見積書であって格納済み文書となる見積書と、当該格納済み文書となる見積書のフォルダのフォルダ名との関係から、格納対象文書となる見積書の格納先となるフォルダのフォルダ名を特定することができる。
なお、上記説明では、文書の種別として見積書を例にして説明したが、他の種別の文書にも適用できることは言うまでもない。