【文献】
エクセル&1−2−3「表」と「グラフ」でコレがしたい!,月刊 アスキー.PC,日本,株式会社アスキー,2000年11月 1日,第3巻 第11号,pp.36-47
【文献】
田村 規雄,活用術 表計算編 売上高を集計する 4,日経PC21,日本,日経BP社,2000年 8月 1日,第5巻 第15号,pp.214-219
(58)【調査した分野】(Int.Cl.,DB名)
グラフの種別の決定では、前記電子文書のタイトルに含まれる複数の特徴語それぞれに対応するベクトルについて、該タイトル内での出現位置に応じた重み付けを行い、重み付け後のベクトルの平均に基づいて、前記電子文書の作成目的を判定する、
ことを特徴とする請求項1記載のグラフ作成プログラム。
グラフの種別の決定では、前記電子文書内の表に基づいて、グラフに表すデータの種別の数である系列数と、同一種別のデータの数である項目数とを判断し、該系列数と該項目数とに基づいて、グラフの種別を判断する、
ことを特徴とする請求項1乃至4のいずれかに記載のグラフ作成プログラム。
グラフの種別の決定では、前記電子文書のタイトルの文字列に基づいて、前記電子文書の作成目的を判定し、前記電子文書内の表の所定の行または列に設定された情報のうち、前記電子文書の作成目的に適合する文字列を含む情報の数を、系列数とする、
ことを特徴とする請求項5記載のグラフ作成プログラム。
【発明を実施するための形態】
【0012】
以下、本実施の形態について図面を参照して説明する。なお各実施の形態は、矛盾のない範囲で複数の実施の形態を組み合わせて実施することができる。
〔第1の実施の形態〕
図1は、第1の実施の形態に係る情報処理装置の機能構成例を示す図である。情報処理装置1は、電子文書作成手段1a、決定手段1b、およびグラフ作成手段1cを有する。
【0013】
電子文書作成手段1aは、表を含む電子文書4−1の体裁が定義された体裁データ2と、電子文書4−1に含める表4bに設定する入力データ3とに基づいて表4bを作成する。そして電子文書作成手段1aは、体裁データ2に基づいて電子文書4−1を作成する。例えば電子文書作成手段1aは、体裁データ2において定義された表領域2bに、作成した表4bを挿入することで、電子文書4−1を作成する。
【0014】
例えば体裁データ2には、タイトル2a、表領域2b、グラフ領域2cなどが定義されている。タイトル2aは、体裁データ2に基づいて作成する電子文書4−1のタイトルである。表領域2bは、表4bを挿入する領域である。グラフ領域2cは、グラフ4dを挿入する領域である。さらに体裁データ2の表領域2bには、表の各フィールドと、そのフィールドに設定するデータとを関連付ける情報が定義されている。例えば、入力データ3は、複数のレコードを含む。また各レコードには、複数のデータを含む。そして体裁データ2の表領域2bには、例えばフィールドごとに、入力データ3に含まれる各レコード内のどのデータを、そのフィールドに設定するのかが定義されている。
図1の例では、表領域2bに、カラムタイトル「AA」の列に各レコードの1番目(#1)のデータを設定することが定義されている。また、カラムタイトル「BB」の列に、各レコードの2番目(#2)のデータを設定することが定義されている。さらに、カラムタイトル「CC」の列に、各レコードの3番目(#3)のデータを設定することが定義されている。このような定義内容に従って、電子文書作成手段1aは、入力データ3に含まれる各レコードのデータを、表のフィールドに設定し、表4bを作成することができる。
【0015】
決定手段1bは、電子文書4−1に含まれる表示対象の文字列を解析して、作成するグラフの種別を決定する。例えば決定手段1bは、電子文書4−1に含まれる文字列に基づいて、電子文書4−1の作成目的を判定し、電子文書4−1の作成目的に応じてグラフの種別を決定する。例えば決定手段1bは、電子文書4−1のタイトル4aの文字列から、電子文書4−1の作成目的を表す特徴語を抽出し、抽出した特徴語に基づいて電子文書4−1の作成目的を判定する。なお、電子文書4−1の作成目的としては、例えば情報の比較なのか、情報の分析なのかが判定される。
【0016】
また決定手段1bは、電子文書4−1内の表4bに基づいて、グラフ4dに表すデータの種別の数である系列数、または同一種別のデータの数である項目数を判断し、系列数または項目数に基づいて、グラフの種別を判断することもできる。さらに決定手段1bは、系列数と項目数との両方に基づいて、グラフの種別を判断することもできる。なお系列数としては、例えば電子文書4−1内の表4bの所定の行または列に設定された情報のうち、電子文書4−1の作成目的に適合する文字列を含む情報の数を、系列数とすることができる。
【0017】
グラフ作成手段1cは、電子文書4−1中のデータに基づいて、決定した種別のグラフ4dを作成する。またグラフ作成手段1cは、体裁データ2に基づいて作成された電子文書4−1のグラフ領域4cに、作成したグラフ4dを挿入することもできる。そしてグラフ作成手段1cは、グラフ4dが挿入された電子文書4−2を出力する。
【0018】
このような情報処理装置1によれば、体裁データ2と入力データ3とに基づいて、電子文書4−1が作成される。
図1の例では、電子文書4−1のタイトルは「売上実績」である。また表4bは、3行3列である。また表4bには、項目名「aa」、「bb」の2つの項目が設定されている。このようなタイトルや項目数に基づいて、決定手段1bによりグラフの種別が決定される。例えば「実績」という語は、電子文書4−1の作成目的が情報の比較であることを示す特徴語であるものとする。この場合、タイトル4aに「実績」の文字列が含まれているため、決定手段1bは、電子文書4−1の作成目的を、情報の「比較」と判定する。また決定手段1bは、例えば、項目数が、所定の閾値以上か否かを判定する。
図1の例では、項目数が閾値以下であるものとする。この場合、決定手段1bは、作成するグラフの種別を、作成目的が情報の「比較」であり、項目数が少ない場合に適切な種別に決定する。
図1の例では、縦棒グラフに決定されている。
【0019】
グラフの種別が決定されると、グラフ作成手段1cにより、グラフ4dが作成される。例えばグラフ4dは、表4bに設定されたデータに基づいて作成される。作成されたグラフ4dは、例えば、電子文書4−1のグラフ領域4cに挿入される。グラフ4dを挿入後の電子文書4−2は、例えば、プリンタに出力して、印刷することができる。また、電子文書4−2を記憶装置に格納することもできる。
【0020】
このように、電子文書4−1内の文字列に基づいて適切なグラフの種別を決定するようにしたため、不適切な種別のグラフを作成してしまうことが抑止され、適切な種別のグラフを容易に作成できるようになる。
【0021】
なお、電子文書作成手段1a、決定手段1b、グラフ作成手段1cは、例えば情報処理装置1が有するプロセッサにより実現することができる。また、
図1に示した各要素間を接続する線は通信経路の一部を示すものであり、図示した通信経路以外の通信経路も設定可能である。
【0022】
〔第2の実施の形態〕
次に、第2の実施の形態について説明する。第2の実施の形態は、端末装置で作成した帳票体裁を用いて、サーバに入力されたデータの帳票を作成する場合に、帳票内に挿入するグラフとして、適切な種別のグラフを作成できるようにするものである。なお、帳票は、第1の実施の形態における電子文書4−1の一例である。
【0023】
図2は、第2の実施の形態のシステム構成例を示す図である。第2の実施の形態では、複数の端末装置200,200aが、ネットワーク10を介してサーバ100に接続されている。またネットワーク10には、プリンタ19が接続されている。
【0024】
端末装置200,200aは、帳票体裁の作成や、サーバ100へのデータ入力に使用するコンピュータである。例えばユーザが端末装置200を用いて帳票体裁を作成し、帳票体裁を端末装置200からサーバ100に送信する。また別のユーザが端末装置200aを用いてデータ入力を行い、入力されたデータが端末装置200aからサーバ100に送信される。
【0025】
サーバ100は、帳票の作成に使用するコンピュータである。例えばサーバ100は、帳票体裁や入力データを受信し、記憶する。そしてサーバ100は、記憶した帳票体裁や入力データを用い、端末装置200,200aを介した帳票作成指示に従って帳票を作成する。サーバ100は、作成した帳票を示すデータ(帳票データ)を、例えばプリンタ19に送信し、プリンタ19に印刷を指示する。すると、プリンタ19で帳票が印刷される。
【0026】
さらにサーバ100は、帳票を作成する際に、グラフを自動で作成することができる。しかもサーバ100は、作成するグラフの種別を、帳票体裁や入力データに基づいて適切に判断する。
【0027】
このような機能を実現するサーバ100のハードウェア構成を、以下に示す。
図3は、第2の実施の形態に用いるサーバのハードウェアの一構成例を示す図である。サーバ100は、プロセッサ101によって装置全体が制御されている。プロセッサ101には、バス109を介してRAM(Random Access Memory)102と複数の周辺機器が接続されている。プロセッサ101は、マルチプロセッサであってもよい。プロセッサ101は、例えばCPU(Central Processing Unit)、MPU(Micro Processing Unit)、またはDSP(Digital Signal Processor)である。プロセッサ101の機能の少なくとも一部を、ASIC(Application Specific Integrated Circuit)、またはPLD(Programmable Logic Device)などの電子回路で実現してもよい。
【0028】
RAM102は、サーバ100の主記憶装置として使用される。RAM102には、プロセッサ101に実行させるOS(Operating System)のプログラムやアプリケーションプログラムの少なくとも一部が一時的に格納される。また、RAM102には、プロセッサ101による処理に必要な各種データが格納される。
【0029】
バス109に接続されている周辺機器としては、HDD(Hard Disk Drive)103、グラフィック処理装置104、入力インタフェース105、光学ドライブ装置106、機器接続インタフェース107およびネットワークインタフェース108がある。
【0030】
HDD103は、内蔵したディスクに対して、磁気的にデータの書き込みおよび読み出しを行う。HDD103は、サーバ100の補助記憶装置として使用される。HDD103には、OSのプログラム、アプリケーションプログラム、および各種データが格納される。なお、補助記憶装置としては、フラッシュメモリなどの半導体記憶装置を使用することもできる。
【0031】
グラフィック処理装置104には、モニタ11が接続されている。グラフィック処理装置104は、プロセッサ101からの命令に従って、画像をモニタ11の画面に表示させる。モニタ11としては、CRT(Cathode Ray Tube)を用いた表示装置や液晶表示装置などがある。
【0032】
入力インタフェース105には、キーボード12とマウス13とが接続されている。入力インタフェース105は、キーボード12やマウス13から送られてくる信号をプロセッサ101に送信する。なお、マウス13は、ポインティングデバイスの一例であり、他のポインティングデバイスを使用することもできる。他のポインティングデバイスとしては、タッチパネル、タブレット、タッチパッド、トラックボールなどがある。
【0033】
光学ドライブ装置106は、レーザ光などを利用して、光ディスク14に記録されたデータの読み取りを行う。光ディスク14は、光の反射によって読み取り可能なようにデータが記録された可搬型の記録媒体である。光ディスク14には、DVD(Digital Versatile Disc)、DVD−RAM、CD−ROM(Compact Disc Read Only Memory)、CD−R(Recordable)/RW(ReWritable)などがある。
【0034】
機器接続インタフェース107は、サーバ100に周辺機器を接続するための通信インタフェースである。例えば機器接続インタフェース107には、メモリ装置15やメモリリーダライタ16を接続することができる。メモリ装置15は、機器接続インタフェース107との通信機能を搭載した記録媒体である。メモリリーダライタ16は、メモリカード17へのデータの書き込み、またはメモリカード17からのデータの読み出しを行う装置である。メモリカード17は、カード型の記録媒体である。
【0035】
ネットワークインタフェース108は、ネットワーク10に接続されている。ネットワークインタフェース108は、ネットワーク10を介して、他のコンピュータまたは通信機器との間でデータの送受信を行う。
【0036】
以上のようなハードウェア構成によって、第2の実施の形態の処理機能を実現することができる。なお、
図3には、サーバ100のハードウェア構成例を示したが、端末装置200,200aも、同様のハードウェアで実現することができる。また、第1の実施の形態に示した情報処理装置1も、
図3に示したサーバ100と同様のハードウェアで実現することができる。
【0037】
サーバ100は、例えばコンピュータ読み取り可能な記録媒体に記録されたプログラムを実行することにより、第2の実施の形態の処理機能を実現する。サーバ100に実行させる処理内容を記述したプログラムは、様々な記録媒体に記録しておくことができる。例えば、サーバ100に実行させるプログラムをHDD103に格納しておくことができる。プロセッサ101は、HDD103内のプログラムの少なくとも一部をRAM102にロードし、プログラムを実行する。またサーバ100に実行させるプログラムを、光ディスク14、メモリ装置15、メモリカード17などの可搬型記録媒体に記録しておくこともできる。可搬型記録媒体に格納されたプログラムは、例えばプロセッサ101からの制御により、HDD103にインストールされた後、実行可能となる。またプロセッサ101が、可搬型記録媒体から直接プログラムを読み出して実行することもできる。
【0038】
次に、第2の実施の形態におけるグラフを含む帳票を作成するための、各装置が有する機能について説明する。
図4は、第2の実施の形態の機能を示すブロック図である。端末装置200は、帳票体裁を作成するために帳票体裁記憶部210、帳票体裁作成部220、および帳票体裁送信部230を有する。
【0039】
帳票体裁記憶部210は、帳票体裁作成部220によって作成された帳票体裁データを記憶する。例えば端末装置200が有するRAMやHDDの記憶領域の一部が、帳票体裁記憶部210として使用される。
【0040】
帳票体裁作成部220は、ユーザからの操作入力応じて、帳票体裁を作成する。例えば帳票体裁作成部220は、文字、図、表などの編集機能を有している。そして帳票体裁作成部220は、ユーザからの操作入力に従って、所定の領域内に、タイトル、表の表示領域、グラフの表示領域などを設定する。帳票体裁作成部220は、例えば、表内の領域に、カラムタイトルや項目名を設定することもできる。カラムタイトルとは、同じ種別の情報に付けられた名称である。例えば、「氏名」、「目標金額」といった文字列が、カラムタイトルとして設定される。項目名は、1または複数のデータを有するレコードの名称である。また帳票体裁作成部220は、表内の領域に、入力データとの関連付け情報を定義することができる。例えば、帳票体裁作成部220は、表の任意の領域を指定して、入力データに含まれるデータの属性を定義することができる。属性は、例えば、データが文字列なのか、数字なのかなどの情報である。
【0041】
帳票体裁作成部220は、作成した帳票体裁を示す帳票体裁データを、帳票体裁記憶部210に格納することができる。また帳票体裁作成部220は、帳票体裁データをサーバ100に格納する場合、その帳票体裁データを帳票体裁送信部230に渡す。
【0042】
帳票体裁送信部230は、帳票体裁作成部220で作成された帳票体裁データを、サーバ100に送信する。
サーバ100は、帳票体裁記憶部110、入力データ記憶部120、特徴語記憶部130、中間データ記憶部140、帳票記憶部150、帳票体裁受信部161、ユーザアプリケーション162、解析部163、グラフ作成部164、および印刷部165を有する。このうち、入力データ記憶部120、特徴語記憶部130、中間データ記憶部140、および帳票記憶部150は、例えばRAM102またはHDD103の記憶領域の一部である。
【0043】
帳票体裁記憶部110は、端末装置200で作成された帳票体裁データを記憶する。
入力データ記憶部120は、ユーザアプリケーション162を介して入力されたデータ(入力データ)を記憶する。入力データは、例えば帳票内の表に設定される。また入力データに基づいて、グラフが作成される。
【0044】
特徴語記憶部130は、グラフの目的の判別に利用可能な語句を、特徴語として記憶する。特徴語記憶部130に記憶された特徴語には、例えば、その特徴語を含む帳票の目的の判別に利用する情報が関連付けられている。
【0045】
中間データ記憶部140は、グラフ作成部164が帳票作成中に生成する中間データを記憶する。
帳票記憶部150は、作成された帳票を示す帳票データを記憶する。
【0046】
帳票体裁受信部161は、端末装置200から送信された帳票体裁データを受信する。帳票体裁受信部161は、受信した帳票体裁データを、帳票体裁記憶部110に格納する。
【0047】
ユーザアプリケーション162は、ユーザからのデータの入力や帳票出力指示を受け付ける。例えばユーザアプリケーション162は、ネットワーク10を介して接続された端末装置200,200aから、データの入力や帳票出力指示を受け取ることができる。またユーザアプリケーション162は、ユーザからの操作に応じて、解析部163に対して帳票出力を指示する。ユーザアプリケーション162は、データの入力を受け付けた場合、その受け付けたデータを入力データとして入力データ記憶部120に格納する。
【0048】
解析部163は、ユーザアプリケーション162からの帳票出力指示に従って、その帳票の作成に使用する帳票体裁データや入力データを解析する。例えば解析部163は、帳票出力指示で指定された帳票体裁データを、帳票体裁記憶部110から取得する。次に解析部163は、取得した帳票体裁データを解析して、表領域に設定する入力データを決定する。さらに解析部163は、決定した入力データを入力データ記憶部120から取得する。そして解析部163は、取得した入力データを解析し、表領域内の適切な位置に設定する。解析部163は、解析後の帳票体裁データと入力データとを、グラフ作成部164に渡す。
【0049】
グラフ作成部164は、帳票体裁データと入力データに基づいて、帳票内のグラフを作成する。例えばグラフ作成部164は、帳票体裁データで示される帳票体裁に、グラフ領域が含まれている場合、特徴語記憶部130に格納されている特徴語を用いて、帳票の作成目的を判別する。次にグラフ作成部164は、帳票の作成目的に応じた種別のグラフを、入力データに基づいて作成する。グラフを作成する際に、グラフ作成部164は、帳票の作成目的に基づいて、系列を自動で決定することができる。ここで系列とは、「目標金額」や「売上金額」といった、同種のデータの集まりである。例えば、個人の営業成績を可視化するための帳票では、営業社員それぞれの氏名が項目名となり、「目標金額」や「売上金額」を示す値が、系列のデータとなる。
【0050】
グラフを作成したグラフ作成部164は、グラフを含む帳票を示す帳票データを出力する。例えばグラフ作成部164は、作成した帳票データを帳票記憶部150に格納する。またグラフ作成部164は、作成した帳票データを印刷部165に出力することもできる。
【0051】
印刷部165は、帳票データに基づいて帳票を印刷する。例えば印刷部165は、ネットワーク10を介して接続されたプリンタ19に帳票データを送信すると共に、送信した帳票データの印刷を指示する。これにより、プリンタ19から帳票が印刷される。
【0052】
このような構成のシステムにより、自動で生成されたグラフを含む帳票を作成することができる。なお、
図4に示した各要素間を接続する線は通信経路の一部を示すものであり、図示した通信経路以外の通信経路も設定可能である。また、
図4に示した解析部163は、
図1に示した第1の実施の形態の電子文書作成手段1aの一例である。さらに、
図4に示したグラフ作成部164は、
図1に示した第1の実施の形態の決定手段1bとグラフ作成手段1cとを包含する機能の一例である。
【0053】
次に、帳票体裁について説明する。
図5は、帳票体裁の一例を示す図である。帳票体裁20には、タイトル21、作成者22、表領域23、およびグラフ領域が含まれる。
【0054】
タイトル21は、帳票の主題を示す文字列である。作成者22は、帳票を作成した者(個人や企業)の名称を示す文字列である。表領域23は、表を挿入する領域である。表領域23には、例えば挿入する表のヘッダ部23aと入力データ関連付け部23bとが設けられている。ヘッダ部23aは、表の1行目であり、各列に登録する情報の種別を示す文字列が設定されている。入力データ関連付け部23bは、入力データの中から、ヘッダ部23aに設定された種別のデータを関連付ける情報が設定される。また入力データ関連付け部23bには、ヘッダ部23aに設定された種別に対応するデータの属性(文字列か数字かや、データ長)が設定される。グラフ領域24は、グラフを挿入する領域である。
【0055】
帳票体裁20は、帳票体裁データとしてサーバ100に送信され、サーバ100の帳票体裁記憶部110に格納される。
図6は、帳票体裁データのデータ構造の一例を示す図である。帳票体裁データ30は、用紙情報と複数のパーティション情報とを含んでいる。用紙情報には、用紙の縦と横のサイズが含まれる。
【0056】
パーティション情報には、帳票を複数のパーティション(領域)に分割したときの、各領域に関する情報が設定される。例えば、全体、表領域、グラフ領域のパーティション情報が設けられている。各パーティション情報には、項目情報、罫線情報などが含まれる。項目情報は、パーティション内に設定される項目に関する情報である。罫線情報は、パーティション内に設ける罫線に関する情報である。
【0057】
項目情報31には、項目名、項目位置、項目領域長、データ長、データ形式、フォント情報、配置情報、装飾情報、レコード内位置、データ定義などの情報が含まれる。項目名は、項目を一意に識別するための名称である。項目位置は、項目の位置を示す座標である。項目領域長は、項目の範囲を示す値(例えば項目位置からの横幅と縦幅)である。データ長は、項目に設定されるデータの長さ(例えばビット数)である。データ形式は、項目に設定されるデータの種類(文字列、数字といった属性など)である。フォント情報は、項目に設定されたデータを表示するときのフォント名やフォントサイズである。配置情報は、中央揃えなどの文字の配置を指定する情報である。装飾情報は、イタリック・ボールドなどの文字の装飾を指定する情報である。レコード内位置は、入力データとの関連を示す情報である。例えば入力データが、CSV(Comma Separated Values)形式のデータフォーマットの場合、入力データ内の、カンマで区切られた何個目のデータが、その項目に設定されるのかが示される。データ定義には、その項目に予め文字列などのデータを設定しておく場合に、そのデータが設定される。一例として示した項目情報32には、項目名、項目位置、項目領域長、データ形式が設定されている。
【0058】
このような帳票体裁データ30を用いて、帳票を作成できる。そして、帳票体裁20にグラフ領域24が含まれる場合は、帳票体裁データ30や入力データに基づいて、グラフが作成される。作成するグラフの種別の判定には、特徴語記憶部130に登録されている特徴語が利用される。
【0059】
図7は、特徴語記憶部のデータ構造の一例を示す図である。
図7の例では、特徴語記憶部130に特徴語管理テーブル131が格納されている。特徴語管理テーブル131には、特徴語ごとのレコードが登録されている。
【0060】
特徴語管理テーブル131には、文字列、分類、分類ベクトル、および類似語の欄が設けられている。文字列の欄には、特徴語の文字列が設定される。分類の欄には、特徴語が情報の「分析」を表す語なのか、情報の「比較」を表す語なのかの分類が示される。例えば帳票のタイトルに分類「分析」の特徴語が含まれていれば、その帳票の作成目的は、情報の分析であると判断できる。すると作成するグラフの種別として、情報の分析に適した種別が選択されることになる。分類ベクトルの欄には、特徴語が、「分析」と「比較」とのそれぞれを意味する度合いを表すベクトル(分類ベクトル)が設定される。
図7の例では、分類ベクトルの左側の値が「比較」を意味する度合いを示し、右側の値が「分析」を意味する度合いを示している。分類ベクトルの各値は、0以上1以下の実数である。類似語の欄には、特徴語に類似する意味の語が設定される。類似語に設定された文字列は、対応する特徴語の文字列と同じ分類、および分類ベクトルを有するものする。
【0061】
なお、特徴語には、比較と分析とのいずれの意味でも同等に使用される語も含まれている。そのような特徴語は、分類の欄が空欄であり、分類ベクトルは(0.5,0.5)である。
【0062】
特徴語管理テーブル131への特徴語となる語の追加、削除、変更は、ユーザが任意に行うことができる。
次に、中間データ記憶部140に格納される情報について説明する。
【0063】
図8は、中間データ記憶部のデータ構造の一例を示す図である。中間データ記憶部140には、グラフ作成過程で、タイトル候補情報141、ベクトル情報142、フラグ情報143、系列候補情報144、系列情報145、入力データ146、および合計データ147が格納される。
【0064】
タイトル候補情報141は、タイトル候補として抽出された文字列に関する情報である。例えばタイトル候補情報141には、タイトル候補ごとの、タイトル文字列、文字オプション、描画位置が含まれる。タイトル文字列は、タイトル候補となった文字列である。文字オプションは、タイトル候補となった文字列に対する修飾などのオプション設定である。描画位置は、タイトル候補となった文字列の帳票中での位置である。タイトル候補情報141では、各タイトル候補に通し番号が付与されている。そして配列名「タイトル候補」によってタイトル候補の番号を指定することで、中間データ記憶部140からそのタイトル候補を抽出することができる。
【0065】
ベクトル情報142は、タイトル候補に含まれる特徴語の分類ベクトルを示す情報である。ベクトル情報142には、特徴語ごとの、文字列、および分類ベクトルが含まれる。ベクトル情報142では、各特徴語に通し番号が付与されている。そして配列名「ベクトル」によって特徴語の番号を指定することで、中間データ記憶部140からその特徴語を抽出することができる。
【0066】
フラグ情報143は、タイトルに基づいて判断された、帳票の分類(帳票の作成目的別の分類)を示すフラグを示す情報である。第2の実施の形態では、フラグには、”比較”または”分析”のいずれかの値が設定される。フラグが”比較”の場合、帳票の作成目的は、情報の比較である。フラグが”分析”の場合、帳票の作成目的は、情報の分析である。なお、
図8では、フラグの値として”比較”という文字列が設定されているが、例えばフラグには”0”または”1”の1ビットの値を設定し、「フラグが”0”であれば比較」、「フラグが”1”であれば分析」と定義しておくこともできる。
【0067】
系列候補情報144は、グラフの系列候補を示す情報である。系列候補情報144には、系列候補となる文字列が1以上含まれている。系列候補情報144では、各系列候補に通し番号が付与されている。そして配列名「系列候補」によって系列候補の番号を指定することで、中間データ記憶部140から、その系列候補を抽出することができる。
【0068】
系列情報145は、グラフで表す系列を示す情報である。系列情報145には、グラフで表す系列を示す文字列が1以上含まれている。系列情報145では、各系列に通し番号が付与されている。そして配列名「系列」によって系列の番号を指定することで、中間データ記憶部140から、その系列を抽出することができる。
【0069】
入力データ146は、グラフで表示する対象の入力データである。入力データ146には、入力データ記憶部120に格納されている入力データのうち、グラフで表示する対象として選択された入力データが含まれる。入力データの各レコードには通し番号が付与されている。また各レコード内のデータにも通し番号が付与されている。そして配列名「入力データ」の2次元配列に対して、レコードの番号と、レコード内のデータの番号とを指定することで、中間データ記憶部140から、入力データ内のそのレコードのそのデータを抽出することができる。
【0070】
合計データ147は、入力データ146のレコードごとの数値の合計値である。合計データ147では、入力データにおけるレコードの番号と同じ番号が、そのレコードの数値の合計値に付与されている。そして配列名「Sum」によって合計値の番号を指定することで、中間データ記憶部140から、その合計値を取得することができる。
【0071】
以上のような情報を用いて、グラフを含む帳票が作成される。次に、帳票の作成手順について説明する。
図9は、帳票の作成手順を示すフローチャートである。
【0072】
[ステップS100]端末装置200は、ユーザからの操作に従って帳票体裁を作成する。そして端末装置200は、帳票体裁を示す帳票体裁データを、サーバ100に送信する。
【0073】
[ステップS200]サーバ100は、帳票体裁を利用して帳票を出力する。例えばサーバ100は、作成した帳票をプリンタ19に出力する。
次に、帳票体裁作成処理と帳票出力処理とについて、詳細に説明する。
【0074】
図10は、帳票体裁作成処理の手順を示すフローチャートである。
[ステップS101]端末装置200の帳票体裁作成部220は、ユーザからの入力に応答し、帳票体裁作成画面をモニタに表示する。この際、帳票体裁作成部220は、初期状態の帳票体裁データを生成し、帳票体裁記憶部210に格納する。
【0075】
[ステップS102]帳票体裁作成部220は、ユーザからの入力に応じて、帳票のタイトルを作成する。例えばユーザから、帳票作成画面内の任意の位置を指定して、タイトルの文字列が入力されると、帳票体裁作成部220は、指定された位置にタイトルを示す文字列を設定する。
【0076】
[ステップS103]帳票体裁作成部220は、ユーザからの入力に応じて、表領域とグラフ領域とを作成する。例えばユーザが、帳票作成画面内の2点を指定して、表領域であることを入力する。すると、帳票体裁作成部220は、指定された2点をそれぞれ左上と右下との頂点とする矩形領域を、表領域とし、表領域内に表を表示する。同様に、ユーザが、帳票作成画面内の2点を指定して、グラフ領域であることを入力する。すると、帳票体裁作成部220は、指定された2点をそれぞれ左上と右下との頂点とする矩形領域を、グラフ領域とする。
【0077】
[ステップS104]帳票体裁作成部220は、表領域のカラムタイトルと項目名とを作成する。例えばユーザが表領域内の表の最上位の行に文字列を入力すると、帳票体裁作成部220は、入力された文字列をカラムタイトルと認識し、表に設定する。またユーザが表の左端の列に文字列を入力すると、帳票体裁作成部220は、入力された文字列を項目名と認識し、表に設定する。
【0078】
[ステップS105]帳票体裁作成部220は、ユーザからの入力に応じて、表領域の入力データ関連付け部に、入力データとの関連付け情報を設定する。例えば帳票体裁作成部220は、系列に対する入力データ内の何番目のデータを設定するのかの指定を受け付け、入力データ関連付け部内のその系列に対応する入力フィールドに、入力データ内での順番を指定する情報を関連付ける。帳票体裁作成部220は、系列に設定するデータの属性を、入力データ関連付け部に設定する。
【0079】
このようにして帳票体裁が作成される。作成された帳票体裁を示す帳票体裁データは、端末装置200の帳票体裁記憶部210に格納される。また帳票体裁データは、端末装置200からサーバ100に送信され、サーバ100の帳票体裁記憶部110に格納される。サーバ100では、帳票体裁記憶部110に格納された帳票体裁データに基づいて、帳票を作成し、作成した帳票を出力する。
【0080】
以下、帳票出力処理について詳細に説明する。
図11は、帳票出力処理の手順を示すフローチャートである。なお帳票出力処理は、例えば、ユーザが、使用する帳票体裁データと入力データと指定した帳票出力命令を、サーバ100に入力した場合に実行される。
【0081】
[ステップS201]ユーザアプリケーション162は、ユーザからの帳票出力命令に従って、帳票出力指示を解析部163に送信する。帳票出力指示には、例えば使用する帳票体裁データの指定と、使用する入力データの指定とが含まれる。解析部163は、ユーザアプリケーション162から帳票出力指示を受け取ると、帳票体裁データを解析する。例えば解析部163は、帳票出力指示で示された帳票体裁データを、帳票体裁記憶部110から取得する。そして解析部163は、取得した帳票体裁データの内容を解析し、帳票体裁データに従った体裁の、初期状態の帳票を生成する。初期状態の帳票を示す帳票データは、取得した帳票体裁データと同じ内容である。
【0082】
[ステップS202]解析部163は、入力データを解析する。例えば解析部163は、帳票出力指示で指定された入力データを、入力データ記憶部120から取得する。そして、解析部163は、入力データに含まれるデータのうち、帳票内の表領域の所定の系列に関連付けられたデータを判断する。そして解析部163は、入力データに含まれるデータを表領域内の表に設定し、表を完成させる。解析部163は、表を完成させた帳票を、グラフ作成部164に送信する。
【0083】
[ステップS203]グラフ作成部164は、帳票のグラフを作成する。なお、グラフ作成処理の詳細は後述する(
図13参照)。
[ステップS204]グラフ作成部164は、帳票の印刷データを作成する。例えばグラフ作成部164は、グラフを含む帳票の印刷画像を示す帳票データを生成する。
【0084】
[ステップS205]グラフ作成部164は、印刷指示と共に、帳票データをプリンタ19に送信する。するとプリンタ19から帳票が出力される。
[ステップS206]解析部163は、作成した帳票の変更の有無を判断する。例えば解析部163は、ユーザアプリケーション162を介してユーザからの帳票変更の指示が入力された場合に、変更ありと判断する。また解析部163は、ユーザから帳票出力完了の指示が入力された場合に、変更なしと判断する。帳票の変更がある場合、処理がステップS207に進められる。帳票の変更がない場合、処理がステップS208に進められる。
【0085】
[ステップS207]解析部163は、ユーザアプリケーション162を介して、ユーザからの帳票の変更内容を取得する。そして解析部163は、ユーザが指定した変更内容に従って、帳票のグラフ以外の部分を変更する。例えば解析部163は、表の行と列の入れ替え、入力データのデータ範囲の変更を行う。その後、処理がステップS203に進められ、変更された入力データに基づいて、グラフが再作成される。
【0086】
[ステップS208]帳票の変更がない場合、ユーザアプリケーション162は、結果をユーザにフィードバックする。例えばユーザアプリケーション162は、帳票の出力が完了したことを、ユーザが使用している端末装置に表示する。この際、ユーザアプリケーション162は、例えば、グラフの種別を決定した根拠などの情報を、ユーザが使用している端末装置に表示してもよい。
【0087】
このようにして、帳票体裁データと入力データとから、帳票が作成される。帳票の作成では、表の作成とグラフの作成が主な処理である。
図12は、帳票内の表の作成例を示す図である。帳票体裁20の表領域23に設けられた表36には、各系列の名称を示す文字列は設定されているが、対応するデータは登録されていない。そこで、入力データ37に基づいて、表36にデータが設定される。例えば入力データ37はCSV形式のデータフォーマットである。入力データ37に含まれる各レコードにはカンマで区切られた複数のデータが含まれている。レコードに含まれるデータは、先頭から順に、氏名、目標金額、売上金額、および利益率を示している。そこで、入力データ37の各レコード内のデータが、表36の対応する系列に設定される。その結果、帳票内の表38が生成される。
【0088】
次に、グラフ作成処理についてより詳細に説明する。
図13は、グラフ作成処理の手順を示すフローチャートである。
[ステップS211]グラフ作成部164は、グラフ種を判定する。グラフ種判定処理の詳細は後述する(
図14参照)。
【0089】
[ステップS212]グラフ作成部164は、グラフのスケール(軸に設定する単位)を決定する。例えばグラフ作成部164は、グラフに設定するデータの最大値を検出し、最大値を表すグラフがグラフ領域24に収まるようにスケールを決定する。
【0090】
[ステップS213]グラフ作成部164は、グラフのタイトル、グラフ、凡例を、グラフ領域24内に配置する。
[ステップS214]グラフ作成部164は、グラフを作成する。例えばグラフ作成部164は、ステップS211で決定した種別のグラフを作成し、そのグラフをグラフ領域24に設定する。
【0091】
このような手順でグラフが作成される。次にグラフ種判定処理について詳細に説明する。
図14は、グラフ種判定処理の手順を示すフローチャートである。
【0092】
[ステップS221]グラフ作成部164は、帳票のタイトルによる帳票の分類を判定する。タイトルによる帳票分類判定により、帳票の分類が「比較」なのか「分析」なのかが判定される。判定結果は、フラグ情報143(
図8参照)に設定される。タイトルによる帳票分類判定処理の詳細は、後述する(
図15参照)。
【0093】
[ステップS222]グラフ作成部164は、表領域のヘッダ部からグラフの系列数を判定する。系列数判定処理の詳細は後述する(
図19参照)。
[ステップS223]グラフ作成部164は、入力データから項目数を判定する。項目数判定処理の詳細は後述する(
図20参照)。
【0094】
[ステップS224]グラフ作成部164は、グラフ作成に使用する入力データの範囲を決定する。例えば、グラフ作成部164は、データに設定された数値が所定値以下(例えば、すべてのデータが「0」)の入力データを、グラフへの表示対象から除外する。またグラフ作成部164は、ユーザからの任意の指定に従って、入力データの範囲を決定することもできる。
【0095】
[ステップS225]グラフ作成部164は、タイトルによるグラフ種の判定結果、系列数、および項目数を用いて、グラフ種を決定する。グラフ種決定処理の詳細は後述する(
図21参照)。
【0096】
このような手順でグラフ種が決定される。次に、タイトルによる帳票分類判定処理の詳細について説明する。
図15は、帳票分類判定処理の手順を示すフローチャートである。
【0097】
[ステップS231]グラフ作成部164は、帳票から文字列(テキスト)を抽出する。そしてグラフ作成部164は、抽出した文字列を個別の要素として、配列名「タイトル候補」の配列(タイトル候補[x])に設定する。タイトル候補[x]は、タイトル候補情報141として、中間データ記憶部140に格納される。
【0098】
[ステップS232]グラフ作成部164は、タイトル候補を1つ選択する。例えばグラフ作成部164は、配列名「タイトル候補」に1から昇順の整数を順番に設定し、中間データ記憶部140からタイトル候補を1つずつ抽出する。タイトル候補を1つ抽出するごとに、処理がステップS233に進められる。
【0099】
[ステップS233]グラフ作成部164は、選択したタイトル候補に文字の装飾があるか否かを判断する。装飾があるかどうかは、例えば帳票データの項目情報に含まれる装飾情報を参照することで認識できる。装飾がある場合、処理がステップS236に進められる。装飾がない場合、処理がステップS234に進められる。
【0100】
[ステップS234]グラフ作成部164は、タイトル候補の文字の縦方向の位置が、帳票の上から半分以内か否かを判断する。例えばグラフ作成部164は、帳票データの全体のパーティションにおける項目領域長のデータにより、帳票の縦方向の長さを認識する。またグラフ作成部164は、選択したタイトル候補の項目位置を取得し、その項目位置が帳票の上から半分内にあるかどうかを判断する。タイトル候補の文字が帳票の上から半分以内であれば、処理がステップS235に進められる。またタイトル候補の文字が帳票の上から半分より下であれば、処理がステップS232に進められ、別のタイトル候補の選択が行われる。
【0101】
[ステップS235]グラフ作成部164は、タイトル候補の文字の横方向の位置が、帳票の中央か否かを判断する。例えば、グラフ作成部164は、帳票データの全体のパーティションにおける項目領域長のデータにより、帳票の横方向の長さを認識する。またグラフ作成部164は、選択したタイトル候補の項目位置と領域長を取得し、タイトル候補が帳票の横方向の中心を跨っているかどうかを判断する。またグラフ作成部164は、タイトル候補の配置位置として、中央寄せの指定がなされている場合に、そのタイトル候補は、横方向の位置が中央であると判断することもできる。タイトル候補の文字の横方向の位置が、帳票の中央であれば、処理がステップS236に進められる。またタイトル候補の文字の横方向の位置が、帳票の中央でなければ、処理がステップS232に進められ、別のタイトル候補の選択が行われる。
【0102】
[ステップS236]グラフ作成部164は、選択したタイトル候補を、帳票のタイトルであると判定する。
[ステップS237]グラフ作成部164は、タイトルの文字列から特徴語を抽出する。特徴語抽出処理の詳細は後述する(
図17参照)。
【0103】
[ステップS238]グラフ作成部164は、タイトルから少なくとも1つの特徴語が抽出されたか否かを判断する。特徴語が抽出された場合、処理がステップS239に進められる。特徴語が抽出できなかった場合、処理がステップS241に進められる。
【0104】
[ステップS239]グラフ作成部164は、タイトルに特徴語が含まれていれば、抽出した特徴語の分類ベクトルについて、重み付き平均を計算する。例えばグラフ作成部164は、タイトル内での特徴語の出現位置が先頭に近いほど、その特徴語の分類ベクトルの重みの値を高くする。そしてグラフ作成部164は、特徴語それぞれの重み付け後の分類ベクトルの平均を計算する。
【0105】
[ステップS240]グラフ作成部164は、分類ベクトルの重み付き平均に基づいて、帳票を分類する。例えばグラフ作成部164は、分類ベクトルの比較を示す値と分析を示す値のうち、大きい方の値に対応する分類(比較または分析)を、帳票の分類とする。その後、帳票分類処理が終了する。
【0106】
[ステップS241]グラフ作成部164は、タイトルに特徴語が含まれない場合、帳票の分類を「比較」と判断する。その後、帳票分類処理が終了する。
このようにして、帳票のタイトルを抽出し、そのタイトルに基づいて帳票の作成目的を分類することができる。
【0107】
図16は、帳票からのタイトル抽出例を示す図である。第1の状態は、グラフ作成前の帳票40を示している。帳票40には、タイトル41、作成者42、表43、グラフ領域44が含まれている。この例では、タイトル41は、データ上では単なる文字列であり、この文字列がタイトルであるとの情報は付与されていないものとする。このような場合、グラフ作成部164は、帳票40の内容を解析して、どの文字列がタイトルであるのかを、判別することとなる。
【0108】
タイトル抽出処理では、まず、帳票40から文字列が抽出される。第2の状態は、文字列の抽出結果を示している。
図16の例では、タイトル41、作成者42、および表43から文字列が抽出されている。抽出された文字列は、タイトル候補として保持される。
【0109】
次にタイトル候補の中から、装飾されている文字列が抽出される。
図16の例では、いずれのタイトル候補も装飾されていないものとする。すると、次に各タイトル候補について、帳票40の上下方向で半分より上にあるかどうかが判定される。第3の状態は、半分より上に配置されているか否かの判定結果を示している。
図16の例では、タイトル41と作成者42とは、半分より上に配置されているが、表43は、そのほとんどが帳票40の下半分に含まれているため、半分より上であるとはいえない。
【0110】
次に、半分より上にあるタイトル候補について、横方向で中央にあるか否かを判断する。第4の状態は、横方向で中央にあるか否かの判定結果を示している。
図16の例では、中央にあるのはタイトル41のみである。そこで、タイトル候補の中から、正しくタイトル41が抽出される。
【0111】
なお上記の例では、文字列の配置などによってタイトルを抽出しているが、他の方法でタイトルを抽出してもよい。例えば、「タイトル」という文字列に続く文字列を、タイトルと判定することができる。また、属性などの設定でタイトルであることが示されている文字列を、タイトルと判定してもよい。
【0112】
タイトルが抽出されると、そのタイトルから特徴語が抽出される。
図17は、特徴語抽出処理の手順の一例を示すフローチャートである。
[ステップS251]グラフ作成部164は、変数y(yは1以上の整数)に初期値「1」を設定する。なお変数yは、特徴抽出処理内でのみ有効なローカル変数である。
【0113】
[ステップS252]グラフ作成部164は、y番目の特徴語を、特徴語記憶部130から取得する。例えばグラフ作成部164は、配列名「特徴語」で番号yを指定した配列の呼び出しを行い、y番目の特徴語を取得する。
【0114】
[ステップS253]グラフ作成部164は、取得した特徴語の文字列、またはその特徴語の類似語の文字列がタイトルに含まれるか否かを判断する。該当文字列がタイトルに含まれる場合、処理がステップS254に進められる。該当文字列がタイトルに含まれない場合、処理がステップS255に進められる。
【0115】
[ステップS254]グラフ作成部164は、取得した特徴語がタイトルに含まれる場合、その特徴語の情報(文字列、分類ベクトル)を、配列名「ベクトル」の配列に設定する。その後、処理がステップS255に進められる。
【0116】
[ステップS255]グラフ作成部164は、変数yがy
max(y
maxは1以上の整数)以上か否かを判断する。y
maxは、特徴語記憶部130に登録されている特徴語の総数である。変数yがy
max以上であれば、特徴語抽出処理が終了する。変数yがy
max未満であれば、処理がステップS256に進められる。
【0117】
[ステップS256]グラフ作成部164は、変数yの値に1を加算し、処理をステップS252に進める。
このようにして、タイトルに含まれる特徴語が抽出され、その特徴語の分類ベクトルが、配列名「ベクトル」の配列に設定される。ここで、タイトルから特徴語が抽出できなければ、帳票の分類が「比較」と判断される。他方、タイトルから特徴語が抽出された場合、タイトル内での特徴語の出現位置と、各特徴語の分類ベクトルとに基づいて、帳票の分類が判断される。
【0118】
図18は、タイトルに基づく帳票の分類例を示す図である。
図18の例では、帳票のタイトルが「人口構成比の推移」である。特徴語記憶部130(
図7参照)には、「構成比」と「推移」という文字列が、特徴語として登録されている。そこでタイトル「人口構成比の推移」から、「構成比」・「
推移」の2つの特徴語が抽出される。
【0119】
抽出された特徴語のうち「構成比」の分類ベクトルは(0,1)である。また「推移」の分類ベクトルは(1,0)である。分類ベクトルは、左の数値が「比較」に分類される度合いを示し、右の数値が「分析」に分類される度合いを示している。そのため、重み付けを行わずに、分類ベクトルを合計すると、比較と分析との値が等しくなる。そこで第2の実施の形態では、重み付けを行うことで、タイトルから、「比較」に分類される特徴語と「分析」に分類される特徴語とが同じ数だけ抽出された場合でも、タイトルに基づく正しい分類を可能とする。
【0120】
第2の実施の形態では、重み付け後の分類ベクトルV
iを、以下の式で定義する。
V
i=v×[N×log{N/(N−i)}+1] ・・・(1)
式(1)においてvは、分類ベクトルである。Nは、タイトルから抽出された特徴語の数である(Nは1以上の整数)。iは、特徴語のタイトル内での出現位置である(iは0以上N−1以下の整数)。タイトルの最も先頭近くの特徴語の出現位置は「0」である。その特徴語の次に出現する特徴語の出現位置は「1」である。タイトルの最も末尾近くの特徴語の出現位置は「N−1」である。logは、常用対数(底が10)である。
【0121】
抽出された特徴語の分類ベクトルに対して、式(1)を用いて重み付けを行った後、以下の式で、平均値(Score)を計算する。
Score=(ΣV
i)/N ・・・(2)
図18の例では、特徴語「構成比」が、タイトル中で最初に出現し、出現位置は「0」である。そこで、特徴語「構成比」の分類ベクトルに重み付けを行うと、(0,1)×[2×log(2/2−0)+1]=(0,1)×1となる。また特徴語「推移」は、タイトル中で2番目に出現し、出現位置は「1」である。そこで、特徴語「推移」の分類ベクトルに重み付けを行うと、(1,0)×[2×log(2/2−1)+1]=(1,0)×1.6となる。平均値を計算すると、Score=((0,1)×1+(1,0)×1.6)/2=(0.8,0.5)となる。
【0122】
比較を示す値「0.8」は、分析を示す値「0.5」より大きい。そのため、タイトルが「人口構成比の推移」に基づいて、帳票は「比較」に分類される。
図18には、タイトル中に2つの特徴語が含まれる場合の計算例を示しているが、タイトルに3つ以上の特徴語が含まれる場合も、同様に計算できる。
【0123】
例えば特徴語が3つであり、出現位置が0の特徴語の分類ベクトルが(0,1)、出現位置が1の特徴語の分類ベクトルが(1,0)、出現位置が2の特徴語の分類ベクトルが(1,0)とする。この場合、以下のような計算が行われる。
V
0=(0,1)×[3×log{3/(3−0)}+1]
V
1=(1,0)×[3×log{3/(3−1)}+1]
V
2=(1,0)×[3×log{3/(3−2)}+1]
Score={(0,1)×1+(1,0)×1.52+(1,0)×2.43}/2=(1.31,0.3)
この例では、比較を示す値「1.31」は、分析を示す値「0.3」より大きい。そのため、この場合、帳票は「比較」に分類される。
【0124】
このように、式(1)に基づいて重み付けを行うと、タイトル内での出現位置が後の特徴語ほど、重みが重くなる。これは、日本語では、修飾語が被修飾語の前にあることから、被修飾語の重みを重くするようにしたものである。これにより、適切な分類の判定が可能となる。なお、式(1)の重み付けは一例であり、他の方法で重み付けを行ってもよい。
【0125】
第2の実施の形態では、グラフ種を判断する指標として、帳票の分類以外に、グラフの系列数と項目数とが用いられる。まず、系列数判定処理について詳細に説明する。
図19は、系列数判定処理の手順の一例を示すフローチャートである。
【0126】
[ステップS261]グラフ作成部164は、表のヘッダ部に設定されたカラムタイトルの文字列を、系列候補とする。例えばグラフ作成部164は、ヘッダ部に設定された各文字列を取得し、配列名「系列候補」の配列に設定する。
【0127】
[ステップS262]グラフ作成部164は、変数x(xは1以上の整数)に初期値「1」を設定する。なお変数xは、系列数判定処理内でのみ有効なローカル変数である。
[ステップS263]グラフ作成部164は、変数y(yは1以上の整数)に初期値「1」を設定する。なお変数yは、系列数判定処理内でのみ有効なローカル変数である。
【0128】
[ステップS264]グラフ作成部164は、特徴語記憶部130からy番目の特徴語を取得する。
[ステップS265]グラフ作成部164は、取得した特徴語の文字列、またはその特徴語の類似語の文字列が、x番目の系列候補に含まれるか否かを判断する。例えばグラフ作成部164は、取得した特徴語の文字列および類似語の文字列を、x番目の系列候補の文字列中から検査し、該当する文字列がある場合、特徴語が系列候補に含まれると判断する。特徴語または類似語が系列候補に含まれる場合、処理がステップS268に進められる。特徴語または類似語が系列候補に含まれない場合、処理がステップS266に進められる。
【0129】
[ステップS266]グラフ作成部164は、取得した特徴語がx番目の系列候補に含まれない場合、変数yの値がy
max(特徴語の数)以上か否かを判断する。変数yの値がy
max以上の場合、処理がステップS271に進められる。変数yの値がy
max未満の場合、処理がステップS267に進められる。
【0130】
[ステップS267]グラフ作成部164は、変数yの値に1を加算し、処理をステップS264に進める。
[ステップS268]グラフ作成部164は、取得した特徴語がx番目の系列候補に含まれる場合、取得したy番目の特徴語の分類を判断する。取得した特徴語の分類が「比較」であれば、処理がステップS269に進められる。また取得した特徴語の分類が「分析」でれば、処理がステップS270に進められる。さらに「量」や「合計」(
図7参照)のように特徴語に分類が設定されていない場合は、処理がステップS272に進められる。
【0131】
[ステップS269]グラフ作成部164は、抽出した特徴語の分類が「比較」の場合、タイトルに基づく帳票の分類が「比較」か否かを判断する。なお帳票の分類は、フラグ(flag)に設定されている。帳票の分類が「比較」であれば、処理がステップS271に進められる。帳票の分類が「分析」であれば、処理がステップS272に進められる。
【0132】
[ステップS270]グラフ作成部164は、抽出した特徴語の分類が「分析」の場合、タイトルに基づく帳票の分類が「分析」か否かを判断する。帳票の分類が「分析」であれば、処理がステップS271に進められる。帳票の分類が「比較」であれば、処理がステップS272に進められる。
【0133】
[ステップS271]グラフ作成部164は、抽出した特徴語の分類と帳票の分類とが一致した場合、またはx番目の系列候補に特徴語が含まれない場合、x番目の系列候補を系列に含める。例えばグラフ作成部164は、x番目の系列候補の文字列を、配列名「系列」の配列に設定する。
【0134】
[ステップS272]グラフ作成部164は、変数xの値がx
max(系列候補の数)以上か否かを判断する。変数xの値がx
max以上の場合、処理がステップS274に進められる。変数xの値がx
max未満の場合、処理がステップS273に進められる。
【0135】
[ステップS273]グラフ作成部164は、変数xの値に1を加算し、処理をステップS263に進める。
[ステップS274]グラフ作成部164は、系列の要素数をカウントする。例えばグラフ作成部164は、配列名「系列」の配列に設定された文字列の数を、系列の要素数とする。
【0136】
[ステップS275]グラフ作成部164は、ステップS274でカウントした数を、グラフの系列数に決定する。
このようにして、表のヘッダ部に設定されているカラムタイトルのうち、帳票の分類と同じ分類の特徴語を有するカラムタイトルが、グラフ作成時の系列に決定される。そして、系列数がカウントされる。なお、
図19の例では、特徴語が含まれない系列候補は、系列に含めているが、特徴語が含まれない系列候補を系列に含めないようにしてもよい。
【0137】
図20は、系列数判定例を示す図である。
図20の例では、帳票の分類は「比較」である。表33のヘッダ部には、カラムタイトルとして「氏名」、「目標金額」、「売上金額」、および「利益率」が設定されている。
図7に示す特徴語記憶部130を参照すると、「率」が、特徴語「比」の類似語に設定されている。「率」は、カラムタイトルの「利益率」に含まれている。「率」の分類は「分析」である。そうすると、「利益率」の特徴語に基づく分類が、帳票の分類と一致していない。従って、「利益率」は系列から除外される。
【0138】
他方、「氏名」、「目標金額」、「売上金額」については、特徴語または特徴語の類似語を含んでいない。そこで、これらの文字列は、系列に含められる。その結果、3つの文字列が系列に設定され、系列数は「3」となる。なお第2の実施の形態では、項目軸となる「氏名」も系列の1つとしてカウントされている。
【0139】
次に、項目数判定処理について詳細に説明する。
図21は、項目数判定処理の手順の一例を示すフローチャートである。
[ステップS281]グラフ作成部164は、帳票の作成に使用する入力データを入力データ記憶部120から読み込み、配列名「入力データ」の二次元配列(入力データ[x][y])に設定する。このとき、入力データの個々のレコードに、「x」に対応する通し番号が設定され、各レコード内の個々のデータに、「y」に対応する通し番号が設定される。
【0140】
[ステップS282]グラフ作成部164は、配列「入力データ[x][y]」のxの数をカウントする。
[ステップS283]グラフ作成部164は、カウントした数を、項目数に決定する。
【0141】
このようにして項目数が判定される。帳票の分類、系列数、および項目数が決まると、これらの情報を用いてグラフ種が決定される。
図22は、グラフ種決定処理の手順を示すフローチャートである。
【0142】
[ステップS301]グラフ作成部164は、帳票の分類(flag)が、比較か分析かを判定する。比較であれば、処理がステップS302に進められる。分析であれば、処理がステップS303に進められる。
【0143】
[ステップS302]グラフ作成部164は、帳票の分類が比較であれば、比較用グラフ種決定処理を行う。この処理の詳細は後述する(
図23参照)。
[ステップS303]グラフ作成部164は、帳票の分類が分析であれば、分析用グラフ種決定処理を行う。この処理の詳細は後述する(
図24参照)。
【0144】
次に、比較用グラフ種決定処理について詳細に説明する。
図23は、比較用グラフ種決定処理の手順を示すフローチャートである。
[ステップS311]グラフ作成部164は、系列情報145(
図8参照)内に時間キーワードがあるか否かを判断する。時間キーワードとは、上期、午前、春といった、期間、時間を表す語句である。例えばグラフ作成部164は、配列「系列[]」に設定された文字列をすべて呼び出し、時間キーワードの有無を判定する。時間キーワードがあれば、処理がステップS317に進められる。時間のキーワードがなければ、処理がステップS312に進められる。
【0145】
[ステップS312]グラフ作成部164は、系列情報145内に固有名詞があるか否かを判断する。固有名詞としては、人名、会社名などがある。例えばグラフ作成部164は、配列「系列[]」に設定された文字列をすべて呼び出し、固有名詞の有無を判定する。固有名詞があれば、処理がステップS321に進められる。固有名詞がなければ、処理がステップS313に進められる。
【0146】
[ステップS313]グラフ作成部164は、系列情報145内に数字があるか否かを判断する。例えばグラフ作成部164は、配列「系列[]」に設定された文字列をすべて呼び出し、数字の有無を判定する。数字があれば、処理がステップS314に進められる。
数字がなければ、処理がステップS321に進められる。
【0147】
[ステップS314]グラフ作成部164は、最初の系列と2番目の系列との数字の差分(差分#1)を算出する。
[ステップS315]グラフ作成部164は、2番目の系列と3番目の系列との数字の差分(差分#2)を算出する。
【0148】
[ステップS316]グラフ作成部164は、ステップS314で算出した差分#1とステップS315で算出した差分#2とを比較し、値が同じか否かを判断する。差分の値が同じであれば、処理がステップS317に進められる。また差分の値が異なっていれば、処理がステップS321に進められる。
【0149】
[ステップS317]グラフ作成部164は、グラフにおける比較要素を時間差と判断する。
[ステップS318]グラフ作成部164は、系列情報145に含まれる系列数が、所定の閾値a(aは0以上の整数)以上か否かを判断する。系列数が閾値a以上であれば、処理がステップS320に進められる。また系列数が閾値a未満であれば、処理がステップS319に進められる。
【0150】
[ステップS319]グラフ作成部164は、系列数が閾値a未満であれば、グラフ種を縦棒グラフに決定する。その後、比較用グラフ種決定処理が終了する。
[ステップS320]グラフ作成部164は、系列数が閾値a以上であれば、グラフ種を折れ線グラフに決定する。その後、比較用グラフ種決定処理が終了する。
【0151】
[ステップS321]グラフ作成部164は、グラフにおける比較要素をアイテム間の相違と判断する。
[ステップS322]グラフ作成部164は、項目数が、所定の閾値b(bは0以上の整数)以上か否かを判断する。項目数が閾値b以上であれば、処理がステップS323に進められる。また項目数が閾値b未満であれば、処理がステップS325に進められる。
【0152】
[ステップS323]グラフ作成部164は、系列情報145に含まれる系列数が、所定の閾値c(cは0以上の整数)以上か否かを判断する。系列数が閾値c以上であれば、処理がステップS325に進められる。また系列数が閾値c未満であれば、処理がステップS324に進められる。
【0153】
[ステップS324]グラフ作成部164は、系列数が閾値c未満であれば、グラフ種を横棒グラフに決定する。その後、比較用グラフ種決定処理が終了する。
[ステップS325]グラフ作成部164は、項目数が閾値b未満であるか、あるは系列数が閾値c以上あれば、グラフ種を縦棒グラフに決定する。その後、比較用グラフ種決定処理が終了する。
【0154】
このようにして、帳票の分類が比較の場合のグラフ種が決定される。なお閾値a,b,cは、ユーザが任意に設定できる。例えば閾値a,b,cを、それぞれ「5」とすることができる。次に、帳票の分類が分析の場合のグラフ種の決定処理について詳細に説明する。
【0155】
図24は、分析用グラフ種決定処理の手順の一例を示すフローチャートである。
[ステップS331]グラフ作成部164は、項目数が「1」か否かを判断する。項目数が1であれば、処理がステップS332に進められる。項目数が1でなければ、処理がステップS333に進められる。
【0156】
[ステップS332]グラフ作成部164は、項目数が「1」であれば、グラフ種を円グラフに決定する。その後、分析用グラフ種決定処理が終了する。
[ステップS333]グラフ作成部164は、中間データ記憶部140内の系列候補情報144に、系列候補として「合計」の文字列があるか否かを判断する。「合計」があれば、処理がステップS334に進められる。「合計」がなければ、処理がステップS337に進められる。
【0157】
[ステップS334]グラフ作成部164は、入力データ146に含まれるレコードごとに、そのレコードに含まれる数値の合計を計算し、合計データ147に設定する。例えばグラフ作成部164は、分析用グラフ種決定処理内で有効なローカルの変数x(xは1以上の整数)を1から順にカウントアップする。次に、グラフ作成部164は、変数xの値ごとに、二次元の配列「入力データ[][]」の一次元目の値がxとなるすべてのデータを取得する。さらにグラフ作成部164は、取得したデータのうちの数値データを合計する。そして、合計値を配列「Sum[x]」に設定する。
【0158】
[ステップS335]グラフ作成部164は、すべてのxについて、合計値(Sum[x])が100になるか否かを判断する。すべてのxについて合計値が100であれば、処理がステップS336に進められる。少なくとも1つのxについて合計値が100以外であれば、処理がステップS337に進められる。
【0159】
[ステップS336]グラフ作成部164は、すべてのxについて合計値が100であれば、グラフ種を100%積み上げ棒グラフに決定する。その後、分析用グラフ種決定処理が終了する。
【0160】
[ステップS337]グラフ作成部164は、系列候補に「合計」が含まれないか、「合計」があっても、少なくとも1つのxについて合計値が100以外であれば、グラフ種を積み上げ棒グラフに決定する。その後、分析用グラフ種決定処理が終了する。
【0161】
このようにして、帳票の分類が「分析」の場合においても、グラフ種が決定される。
図24に示したように、帳票の分類が「分析」の場合、入力データの個々のレコードの数値の合計値に応じてグラフ種が決定される。これは、数値によって、全体の割合を示すものがあり、そのような100%積み上げ棒グラフで表すのが、適切だからである。
【0162】
図25は、合計値に応じたグラフ種の決定例を示す図である。
図25では、合計値に応じたグラフ種の決定の第1の例を示し、下段に合計値に応じたグラフ種の決定の第2の例を示している。
【0163】
第1の例では、何らかの評価対象について、四半期ごとに「よい」・「ふつう」・「悪い」の3段階で評価した結果が示されている。第1の例では、すべての四半期において、数値の合計が100となる。すると、評価結果を、パーセンテージで表していることが理解できる。そこで、グラフ種は、100%積み上げ棒グラフに決定される。
【0164】
第2の例でも、何らかの評価対象について、四半期ごとに「よい」・「ふつう」・「悪い」の3段階で評価した結果が示されている。第2の例では、数値の合計が100とならない四半期がある。すると、評価結果を、パーセンテージではなく、評価者数などで表していることが理解できる。そこで、グラフ種は、積み上げ棒グラフに決定される。
【0165】
このように、数値の合計が100となるかどうかに応じてグラフ種を判断することで、グラフで表す内容に応じた適切なグラフ種に決定することができる。そして、決定したグラフ種のグラフを含む帳票を作成し、プリンタなどに出力することができる。
【0166】
図26は、グラフを含む帳票の第1の作成例を示す図である。帳票体裁に従って作成された帳票50には、タイトル51、作成者52、表53、およびグラフ領域54が含まれている。
【0167】
帳票50では、帳票50内の上半分で、かつ横方向で中央に配置された文字列がタイトル51と認識され、タイトル51に基づいて帳票の分類が判断される。
図26の例では、タイトル51は「第四開発部の売上実績」である。この文字列のうち、「実績」が特徴語「実績表」の類似語として登録されている(
図7参照)。「実績」の分類ベクトルは(1,0)であるため、帳票50の分類は「比較」となる。
【0168】
次に表53のカラムタイトルの文字列が、系列候補として抽出される。系列候補のうち、「利益率」は特徴語「比」の類似語「率」を含んでいる。「率」の分類は「分析」であり、帳票50の分類と異なる。そこで「利益率」は、系列から除外される。その結果、残りの系列候補が、系列として選択される。
【0169】
帳票50の分類が「比較」であるため、比較用グラフ
種決定処理によって、グラフ種が決定される。
図26の例では、系列内に時間キーワードはなく、数字もない。そこで、比較要素は「アイテム間の相違」と判断される。
【0170】
比較要素が「アイテム間の相違」の場合、項目数と系列数に基づいて、横棒グラフにするのか、縦棒グラフにするのかが決定される。
図26の例では、項目数の閾値bが「5」であったものとする。この場合、表53に含まれている入力データの項目数が「2」であり、項目数は閾値b未満となる。その結果、系列数を判断するまでもなく、グラフ種は縦棒グラフに決定される。その結果、縦棒グラフ55が生成され、グラフ領域54内に挿入されている。
図26の例では、系列のうち「氏名」が項目名と判断され、「氏名」ごとの「目標金額」と「売上金額」とを表す縦棒グラフ55が生成されている。
【0171】
次に、
図27〜
図29を参照して、グラフを含む帳票の第2の作成例を説明する。
図27は、グラフを含む帳票の第2の作成例を示す第1の図である。
図27に示す例では、帳票体裁に従って作成された帳票60には、タイトル61、出力日62、表63、およびグラフ領域64が含まれている。帳票60では、帳票60内の上半分で、かつ横方向で中央に配置された文字列がタイトル61と認識され、タイトル61に基づいて帳票の分類が判断される。
図27の例では、タイトル61は「担当者別月別収支集計表(売上)」である。
【0172】
図28は、グラフを含む帳票の第2の作成例を示す第2の図である。このタイトル「担当者別月別収支集計表(売上)」の文字列のうち、「表」が特徴語「成績表」の類似語として登録されている(
図7参照)。「表」の分類ベクトルは(1,0)であるため、帳票60の分類は「比較」となる。
【0173】
次に表63のカラムタイトルの文字列が、系列候補として抽出される。系列候補のうち、「合計」は特徴語である。「合計」は「比較」にも「分析」にも分類されない(
図7参照)。そこで「合計」は、系列から除外される。その結果、残りの系列候補が、系列として選択される。
【0174】
帳票60の分類が「比較」であるため、比較用グラフ
種決定処理によって、グラフ種が決定される。
図28の例では、系列内に時間キーワード「月」がある。そこで、比較要素は「時間差」と判断される。
【0175】
比較要素が「時間差」の場合、系列数に基づいて、縦棒グラフにするのか、折れ線グラフにするのかが決定される。
図28の例では、系列数の閾値aが「5」であったものとする。この場合、表63に含まれている入力データの系列数が「13」であり、項目数は閾値a以上となる。その結果、グラフ種は折れ線グラフに決定される。
【0176】
図29は、グラフを含む帳票の第2の作成例を示す第3の図である。グラフ種が折れ線グラフに決定されたため、
折れ線グラフ65が生成され、グラフ領域64内に挿入されている。
図29の例では、系列のうち「担当者」が項目名と判断され、「担当者」ごとの月ごとの収支の遷移が折れ線で示され表されている。
【0177】
このように、帳票内の文字列(タイトル、表内のカラムタイトルや項目名)に基づいて、適切なグラフの種別を判定し、その種別のグラフを生成することができる。これにより、ユーザが不適切な種別のグラフを作成することが抑止され、適切なグラフの作成が容易となる。
【0178】
また第2の実施の形態では、グラフの項目数に応じて適切なグラフの種別が決定される。そのため、グラフの項目数と、適切なグラフの種別との関係を、ユーザが認識していなくてもよくなり、ユーザの負担がさらに軽減される。
【0179】
また第2の実施の形態では、グラフの系列数に応じて適切なグラフの種別が決定される。そのため、グラフの
系列数と、適切なグラフの種別との関係を、ユーザが認識していなくてもよくなり、ユーザの負担がさらに軽減される。
【0180】
また第2の実施の形態では、表のカラムタイトルの中から、帳票の作成目的に適合しない文字列を含むカラムタイトルを、系列に含めないようにしたため、帳票の作成目的に応じた適切な系列のグラフを作成することができる。
【0181】
また第2の実施の形態では、タイトルに複数の特徴語が含まれる場合、その特徴語の分類ベクトルを平均したときの、比較を示す値と分析を示す値との大小比較により、帳票の分類を判定している。これにより、タイトル中に、比較を示す特徴語と分析を示す特徴語とが含まれる場合であっても、適切な分類(帳票の作成目的)を判断することができる。
【0182】
さらに第2の実施の形態では、特徴語のタイトル中での出現位置に応じて、各特徴語に重み付けを行うようにした。これにより、タイトル中に、各分類の特徴語が同数ずつ含まれていた場合であっても、適切な分類(帳票の作成目的)を判断することができる。
【0183】
以上、実施の形態を例示したが、実施の形態で示した各部の構成は同様の機能を有する他のものに置換することができる。また、他の任意の構成物や工程が付加されてもよい。さらに、前述した実施の形態のうちの任意の2以上の構成(特徴)を組み合わせたものであってもよい。