【文献】
湯本 真樹,販売促進業務電子化のための提案内容カスタマイズルール自動抽出方法,電気学会論文誌C,社団法人電気学会,1999年11月 1日,第119−C巻,p.1339−1344
(58)【調査した分野】(Int.Cl.,DB名)
列方向に配置された複数の入力欄に商品に関する情報を入力し、前記商品に関する情報が入力された行の次の行の入力欄に入力される商品に関する情報の候補商品情報を推定する商品選択候補推定装置において、
第1商品に関する情報と、前記第1商品に関する情報が入力された行より下の行の入力欄に入力された第2商品に関する情報とを有する組を複数含む学習データを記憶する学習データ記憶部と、
前記候補商品情報が推定される対象入力欄の行よりも上の範囲の行の推定対象入力欄に入力された商品に関する情報、及び前記学習データ記憶部に記憶された学習データを使用して、前記対象入力欄に入力される前記候補商品情報を推定する商品候補推定部と
を具備する、商品選択候補推定装置。
前記所定の計算式は、前記学習データの前記第1商品に関する情報が入力された行と、前記第1商品に関する情報と組となる第2商品に関する情報が入力された行との距離のパラメータを含む、請求項2記載の商品選択候補推定装置。
第1商品に関する情報と、前記第1商品に関する情報が入力された行より下の行の入力欄に入力された第2商品に関する情報とを有する組を複数含む学習データを記憶する学習データ記憶部を具備し、
列方向に配置された複数の入力欄に商品に関する情報を入力し、前記商品に関する情報が入力された行の次の行の入力欄に入力される商品に関する情報の候補商品情報を推定する商品選択候補推定装置における商品選択候補推定方法において、
前記候補商品情報が推定される対象入力欄の行よりも上の範囲の行の推定対象入力欄に入力された商品に関する情報、及び前記学習データ記憶部に記憶された学習データを使用して、前記対象入力欄に入力される前記候補商品情報を推定し、
前記推定された候補商品情報をクライアントに送信する、
商品選択候補推定方法。
【発明を実施するための形態】
【0012】
以下、図面を参照して、本発明の実施形態に係る見積書の商品選択候補推定システムについて説明する。
A. 構成
図1は、本発明の実施形態に係る商品選択候補推定システムを示す図である。なお、実施形態において、構成要素を区別して説明する必要がない場合には、ハイフンを省略して説明する。
【0013】
同図に示すように、インターネットなどのネットワーク1には、アクセスポイント2−1、2−2を介して、それぞれコンピュータC−1、C−2が接続される。また、基地局3−1、3−2を介して、それぞれスマートフォン等の携帯型情報機器S−1、S−2が接続される。
【0014】
ネットワーク1には、本発明の実施形態に係る商品選択候補推定処理を実現するためのサーバ4が接続されている。
【0015】
実施形態では、これらコンピュータC−1、C−2、携帯型情報機器S−1、S−2は、見積書を作成するユーザにより使用される。コンピュータC及び携帯型情報機器S(以下、「クライアント」という。)は、サーバ4によって推定された見積書に使用される候補となる候補商品情報を表示し、見積書作成の際のユーザの商品に関する情報の選択をアシストする。
【0016】
図1に示すように、サーバ4は、バス11に接続されたCPU12、通信部13、メモリ14、及び記憶装置15を具備する。
【0017】
CPU12は、記憶装置15に記憶された実施形態に係る見積書作成プログラム22と協働して、実施形態に係る見積書の作成に際し、商品に関する情報の候補商品情報を推定する処理を行なう他、サーバ4全体の制御を司るものである。
【0018】
通信部13は、ネットワーク1を介したクライアントなどの外部装置との通信の制御を司る。
【0019】
メモリ14は、見積書作成プログラム22を実行する際に必要とされるワークエリアなどとして使用される。
【0020】
記憶装置15は、候補商品情報推定処理に必要とされるプログラム、データを格納するためのものであり、例えば、ハードディスクドライブ(HDD)、光ディスクドライブ、DVD、MOなどの大容量記憶装置である。この記憶装置15には、OS(オペレーティングシステム)21、見積書作成プログラム22、データベース(DB)23が格納されている。
【0021】
OS21は、サーバ4の基本的な機能を実現するためのプログラムである。
【0022】
見積書作成プログラム22は、実施形態に係る見積書の作成の際の候補商品情報の推定処理を実現するためのプログラムである。
【0023】
データベース23は、見積書作成プログラム22によって実現される候補商品情報の推定処理において使用される各種データベースを格納する。
【0024】
図2は、データベース23に格納される各種データベース及び候補商品情報の推定を行なう見積書作成プログラム22の機能ブロック図である商品候補推定部31を示す図である。
【0025】
図2に示すように、データベース23は、見積書DB201、学習データDB202及び商品マスタDB203を有する。
【0026】
見積書DB201は、見積書作成プログラム22によって過去に作成された複数の見積書データを格納する。
【0027】
見積書データは、少なくとも、以下のデータを含む。
【0028】
1. 見積書のID
2. 見積書のIDに対応付けられた見積書の行番号
3. 見積書の行番号に対応付けられた商品に関する情報(小見出し、商品の種類、小計、合計)
4. 見積書のIDに対応付けられた見積書が作成された日付
学習データDB202は、見積書作成プログラム22によって、見積書DB201に格納された見積書データから作成された学習データを格納する。
【0030】
1. base_dtltype
:基準データの種類(商品、小見出し、小計、合計)
2. base_key :基準データのID
3. oppo_dtltype :対応データの種類
4. oppo_key :対応データのID
5. count :同じ商品、位置関係、距離の組み合わせが選択された回数
6. distance :行同士の距離
7. step :小見出しや小計をまたいだ回数
8. regdt :登録日
学習データDB202には、見積書DB201に格納された見積書データの全ての行と行との組み合わせがデータ化され、学習データとして格納される。データ量を減らすために、同日に同じ内容のデータが複数ある場合には、これらデータを統合して、「count」にその件数が保存される。
【0031】
「regdt」は、古い学習データを削除するときに使用される。
【0032】
実施形態では説明のために、商品、小見出し、合計について、
図3に示すように定義する。
【0033】
図3に示すように、dtltypeが「小見出し」でkey1には、「小見出し1」が対応し、key2には、「小見出し2」が対応する。また、dtltypeが「合計」でkey1には、「合計」が対応する。
【0034】
dtltypeが「商品」でkey1には、「商品A」が対応し、key2には、「商品B」が対応し、key3には、「商品C」が対応する。
【0035】
図4は、見積書Aの見積書データと、当該見積書データの行1と行2の学習データとの関係を示す図である。
【0036】
図4に示すように、見積書Aの1行目には「小見出し1」、2行目には「商品A」、3行目には「商品B」及び4行目には「合計」が記載されてるものとする。そうすると、見積書Aの1行目及び2行目を例にとると、見積書Aの学習データは、
図4の下の表に示すようになる。
【0037】
すなわち、base_dtltypeは「小見出し」、base_keyは「1」、oppo_dtltypeは「商品」、oppo_keyは「1」、countは「2」、distanceは「1」、stepは「0」、regdtは、20171101となる。
【0038】
ここで、学習データの定義は上述の通りであるが、さらに説明を加えると、base_dtltypeは見積書上で上に来る方のデータの種類、base_keyは見積書上で上に来る方のデータのID、oppo_dtltypeは見積書上で下に来る方のデータの種類、oppo_keyは見積書上で下に来る方のデータの種類、base_keyとoppo_dtltypeとの組み合わせがその日に出現する回数(ここでは、後述する見積書Bにも同じ組み合わせがあるので、「2」としている。)、distanceは見積書データの行数の差(ここでは、行数2の商品Aと行数1の小見出し1の差は、1なので「1」としている。)、regdtは学習データを作成した日付である。
【0039】
図5は、見積書Bの見積書データを示す図である。
【0040】
図5に示すように、見積書Bの1行目には「小見出し1」、2行目には「商品A」、3行目には「小見出し2」、4行目には「商品C」、5行目には「合計」が記載されているものとする。
【0041】
そうすると、見積書Bの2行目及び4行目を例にとると、見積書Bの学習データは、
図6に示すようになる。
【0042】
すなわち、base_dtltypeは「商品」、base_keyは「1」、oppo_dtltypeは「商品」、oppo_keyは「3」、countは「1」(ここでは、この組み合わせは他の学習データにはないものとする。)、distanceは「2」(行2と行4とは2行離れているので)、stepは「1」(小見出し2を1つまたいでいるので、「1」となる。)、regdtは、20171101となる。
【0043】
以上のようにして、全ての見積書の組み合わせの学習データを作成する。上述の見積書A及び見積書Bを例にとると、具体的には、15通りの学習データが作成される。
図7は、このようにして作成された15個の学習データを示す図である。
【0044】
すなわち、見積書A及び見積書Bについては、以下の学習データが作成される。
【0045】
1.見積書Aの1行と見積書Aの2行(見積書Bの1行と見積書Bの2行と同一)
2.見積書Aの1行と見積書Aの3行
3.見積書Aの1行と見積書Aの4行
4.見積書Aの2行と見積書Aの3行
5.見積書Aの2行と見積書Aの4行
6.見積書Aの3行と見積書Aの4行
7.見積書Bの1行と見積書Bの3行
8.見積書Bの1行と見積書Bの4行
9.見積書Bの1行と見積書Bの5行
10.見積書Bの2行と見積書Bの3行
11.見積書Bの2行と見積書Bの4行
12.見積書Bの2行と見積書Bの5行
13.見積書Bの3行と見積書Bの4行
14.見積書Bの3行と見積書Bの5行
15.見積書Bの4行と見積書Bの5行(見積書Aの1行と見積書Aの4行とは、distanceが異なるので、他の学習データである。)
図2に戻り説明する。商品マスタDB203は、見積書に入力される商品に関する情報に関連付けて、当該商品の数量、単価、値引き(値引き率や値引き額)、及び金額などの詳細情報を格納し、商品に関する情報が設定された場合に、設定された商品に関する情報の詳細情報を取得するのに参照される。
【0046】
商品候補推定部31は、カウント数算出部301、優先度算出部302、検索部303、点数化部304、集計部305、候補決定部306及び候補通知部307を有する。
【0047】
カウント数算出部301及び優先度算出部302は、1行目の商品に関する候補商品情報の推定処理に使用され、検索部303、点数化部304及び集計部305は、2行以降以降の商品に関する候補情報の推定処理に使用され、候補決定部306及び候補通知部307は全ての行の商品に関する情報の候補情報の推定処理に使用される。
【0048】
カウント数算出部301は、学習データDB202に保存されている学習データのbase_dtltype及びbase_keyと一致する商品に関する情報を商品に関する情報毎にカウントする(第1カウント数)。また、学習データDB202に記憶された学習データのoppo_dtltype及びoppo_keyと一致する商品に関する情報の数を商品に関する情報毎にカウントする(第2カウント数)。
【0049】
優先度算出部302は、カウント数算出部301によって算出された第1カウント数から第2カウント数を減算して、商品に関する情報毎に算出し、その算出結果を当該商品に関する情報の優先度とする。
【0050】
検索部303は、対象入力欄の行よりも上の範囲の行の推定対象入力欄に入力された商品に関する情報をキーとして、学習データDB202に記憶された学習データのbase_dtltype及びbase_keyと一致する商品に関する情報を上の範囲の行毎に検索する。
【0051】
点数化部304は、検索部303により検索された学習データDB202に記憶された学習データのbase_dtltype及びbase_keyと一致する商品に関する情報を所定の計算式に基づいて、検索されたbase_dtltype及びbase_keyと一致する商品に関する情報と組となるoppo_dtltype及びoppo_keyと一致する商品に関する情報毎かつ上の範囲の行毎に、点数化する。
【0052】
集計部305は、検索されたbase_dtltype及びbase_keyと一致する商品に関する情報と組となるoppo_dtltype及びoppo_keyと一致する商品に関する情報毎かつ上の範囲の行毎に点数化されたbase_dtltype及びbase_keyと一致する商品に関する情報の点数を、base_dtltype及びbase_keyと一致する商品に関する情報と組となるoppo_dtltype及びoppo_keyと一致する商品に関する情報毎に集計する。
【0053】
候補決定部306は、優先度算出部302により算出された優先度に基づいて、優先度の高い順に、商品に関する情報を候補商品情報とする。また、集計部305により、oppo_dtltype及びoppo_keyと一致する商品に関する情報毎に集計された点数に基づいて、base_dtltype及びbase_keyと一致する商品に関する情報と組となるoppo_dtltype及びoppo_keyと一致する商品に関する情報から対象入力欄に入力される候補商品情報を決定する。
【0054】
候補通知部307は、候補決定部306により候補商品情報とされた商品に関する情報をクライアントに通知して、クライアントに表示させる。
B. 動作
B−1. 商品選択候補推定の動作
次に、実施形態に係る商品選択候補推定システムの動作について、
図11及び
図12のフローチャートを参照して説明する。
図11は、実施形態に係る見積書の商品選択候補の推定処理を説明するためのフローチャートである。
【0055】
まず、サーバ4からクライアントにおいて、見積書の作成画面を表示させる(S10)。
図16は、クライアントにおいて表示される見積書の作成画面の一例を示す図である。同図に示すように、見積書の作成画面には、見積書の商品に関する情報を入力するための入力欄401が列方向に行毎に設けられており、また、入力欄401に設定される商品に関する情報に対応して、設定される単価入力欄401、数量入力欄402、単価入力欄403、値引き入力欄405、及び金額入力欄406が設けられている。
【0056】
これら単価入力欄401、数量入力欄402、単価入力欄403、値引き入力欄405、及び金額入力欄406は、入力欄401に設定される商品に関する情報に対応して、サーバ4の商品マスタDBを参照して設定されるが、ユーザが手動により変更可能である。
【0057】
図16に示す画面において、ユーザがセットしたい行を選択して、商品選択ボタン411を押下すると、サーバ4において候補商品情報の推定処理が行なわれる(S11)。実施形態では、最初に見積書の作成が行なわれる際には、最初の行(1行目)の商品に関する候補商品情報の推定処理が行なわれる。このS11における最初の行(1行目)の商品に関する候補商品情報の推定処理については、
図12のフローチャートにおいて詳述する。
【0058】
サーバ4において、1行目の候補商品情報の推定処理が行なわれ、候補商品情報が決定すると、サーバ4は、決定された候補商品情報をクライアントに送信し(S12)し、クライアントに決定された候補商品情報を表示させる(S13)。
【0059】
図17は、クライアントにおいて表示される候補商品情報の選択画面の一例を示す図である。
図17は、
図16の見積書の作成画面において、商品選択ボタン411を押下した際に開かれる画面であり、候補商品情報が表示される画面である。
【0060】
図17では、商品に関する情報として、小見出しである「ソフトウェア費用」、「導入サポート費用」、「初期開設費用」、「初期設定費用」が表示され、商品の種類である「初期設定費用/商品A」、「商品B」、「商品Cライセンス」、「商品Dライセンス」、「商品C」が表示されている例を示している。
【0061】
このリストの中にセットしようとしているものがあれば、その行を選択する。選択するものがなければ、検索条件欄501に検索条件をして、商品マスタDB203を検索し、希望の商品に関する情報をセットすることも可能である。
【0062】
図11に戻り説明する。S13の処理後、サーバ4は、クライアント4に表示させた候補商品情報が選択されたかを判断し(S14)、選択されたと判断された場合にはクライアントから候補商品情報を受信し(S15)、選択されていない場合には、ユーザがクライアント上で入力した商品に関する情報を受信する(S16)。
【0063】
このようにして、見積書作成画面において、1行目の商品に関する情報が設定されると、次に、2行目以降の商品に関する候補商品情報の推定処理が行なわれる(S17)。このS17における2行目以降の商品に関する候補商品情報の推定処理については、
図13のフローチャートにおいて詳述する。
【0064】
サーバ4において、2行目以降の商品に関する候補商品情報の推定処理が行なわれ、候補商品情報が決定すると、サーバ4は、決定された候補商品情報をクライアントに送信して、決定された候補商品情報をクライアントに表示させる(S18)。
【0065】
図18は、ソフトウェア費用という小見出しをセットした後の候補商品情報の選択画面の一例を示す図である。
【0066】
図18では、1行目の入力欄601にソフトウェア費用という小見出しがセットされ、2行目の候補商品情報として、「商品A」、「インストール作業/商品C」、「インストール作業/商品B」、「商品B」、「商品Bライセンス」、「商品D」、「商品Cライセンス」が表示されている例を示している。これら表示されている複数の候補商品情報は、1行目にセットされたソフトウェア費用という小見出しに基づいて推定されている。
【0067】
その後、サーバ4は、ユーザが他に選択したい商品に関する情報があるか否かの判断を行ない(S19)、他に選択したい商品がないと判断された場合には、商品候補推定処理を終了し、他に選択したい商品があると判断された場合には、S17の処理に戻る。
【0068】
図12は、最初の行(1行目)の商品に関する候補商品情報の推定処理について説明するためのフローチャートである。
【0069】
最初の行では上の行が存在しないので、以下の方法により最初の行の候補商品情報を推定する。
【0070】
まず、学習データDB202に保存されている学習データのbase_dtltype及びbase_keyと一致する商品に関する情報を商品に関する情報毎にカウントする(第1カウント数:S21)。
【0071】
次に、学習データDB202に記憶された学習データのoppo_dtltype及びoppo_keyと一致する商品に関する情報の数を商品に関する情報毎にカウントする(第2カウント数:S22)
そして、(第1カウント数−第2カウント数)を商品に関する情報毎に算出し、その算出結果を当該商品に関する情報の優先度とし(S23)、優先度の高い順に商品に関する情報を候補商品情報として(S24)、S12の処理に移る。
【0072】
すなわち、最初の行の推定処理では見積書の2行の関係で上にある場合の件数の合計から、下にある場合の件数の合計を引いたものが優先度となる。つまり、他の商品よりも上に配置される回数が最も多い者が優先される。
【0073】
なお、学習データが少ない場合に極端な結果がでないように、上側に配置されてcountが所定の件数(例えば、100件)以上という要件を加えても良い。
【0074】
次に、2行目以降の商品に関する候補商品情報の推定処理について説明する。
【0075】
2行目以降の商品に関する候補商品情報の推定処理では、入力しようとしている行の入力欄(対象入力欄)の行をR行とすると、R−Nr行からR−1行までのデータが参考にされる。ここで、Nrは、参考にする最大の行数の定数である。
【0076】
例えば、次に入力しようとしている行が12行目(R=12)であり、Nr=8の場合、4行目(=R−Nr)から11行目(=R−1)までの8行が推定処理に使用される。
【0077】
ここで、2行目以降の商品に関する候補商品情報の推定処理において候補商品情報となるための条件は、下記の通りである。
【0078】
1. 今まで一緒にセットされたことがあること(学習データが存在すること)
2. 距離が離れすぎていないこと(distanceの最大値である定数BC以上離れていないこと)
3. まだセットされていないもの
実施形態では、推定する行よりも上の行数分の条件を組み立てて、それらの合計で優先順位を求める。ここで、Srは、R−Nr行とR行との間に小見出しや小計を挟んだ場合は0.1、挟まない場合は1とする。Srは、小見出しなどをまたいだデータの優先順位への影響を低くするために使用される。
【0079】
具体的には、
R−Nr行目での条件: base_dtltype
=R−Nr行の商品の種類及びbase_key
=R−Nr行の商品のID
R−Nr行目での優先順位:
SUM(count/MIN(1,step)×9+1)
×MAX(0、2−ABS(Nr−distance)
×POWER(BC−Nr,2)×Sr)
+
R−Nr+1行目での条件: base_dtltype
=R−Nr+1行の商品の種類及びbase_key
=R−Nr+1行の商品のID
R−Nr+1行目での優先順位:
SUM(count/MIN(1,step)×9+1)
×MAX(0、2−ABS(Nr−1−distance))
×POWER(BC−(Nr−1),2)×Sr)
+
・
・
・
+
R−Nr+Nr−1行目による条件(R−1行目):
base_dtltype =R−1行目の商品の種類及びbase_key
=R−1行目の商品のID
R−Nr+1行目での優先順位:
SUM(count/MIN(1,step)×9+1)
×MAX(0、2−ABS(1−distance))
×POWER(BC−1,2)×Sr)
ここで、「SUM」は、学習データが日別に分かれているため、それらを合計するために使用されている。MIN(1,step)×9+1)は、学習データが小見出しなどを挟んでいる場合、優先順位を1/10に減じている。小見出しなどを複数行挟んでいる場合、さらに優先度を減らしても良い。
【0080】
MAX(0、2−ABS(Nr−distance)は、学習データの有効性を示している。本来は、Nrとdistanceが同じものを使用すべきであるが、学習データが少ない時のために、1行ずれていても半分の力で通用するようにしている。この項は、ずれている行数に応じて徐々に減らしていくようにしても良い。
【0081】
POWER(BC−Nr,2)×Sr)は、対象行の近くの行のデータを強く反映させるために、対象行との距離を最大値から引いたものを自乗(二条)する(POWER(BC−1,2)=(BC−Nr)
2)。
【0082】
なお、既に選択済みのものは、候補商品情報として出さないとしても良い。
【0083】
次に、見積書データの1行目に「小見出し1(分類:小見出し、ID=1)」、2行目に「商品A(分類:商品、ID=1)がセットされた状態で、次の行を提案する場合について説明する。
【0084】
R−Nr行目による条件は、以下のようになる。ここで、R=3、Nr=8であるとすると、R−Nrはマイナスになってしまうので、この場合は条件に加えない。R−Nr+1行も−4なので条件には使用しない。このまま進んで、R−Nr+6が1になるので、ここから条件の組み立てがスタートする。
【0085】
1行目及び2行目の条件及び優先順位は、以下のようになる。
【0086】
1行目での: base_dtltype
=1行目の商品の種類及びbase_key
=1行目の商品のID
1行目での優先順位:
SUM(count/MIN(1,step)×9+1)
×MAX(0,2−ABS(Nr−6−distance)
×POWER(BC−(Nr−6),2)×Sr)
*ここで、Srは小見出しをまたいでいないので1となる。
【0087】
+
R−Nr+Nr−1行目(R−1行)=2行目での条件:
base_dtltype = 2行目の商品の種類及びbase_key
= 2行目の商品のID
2行目での優先順位:
SUM(count/MIN(1,step)×9+1)
×MAX(0,2−ABS(1−distance)
×POWER(BC−1,2)×Sr)
これを学習データにあてはめると、1行目及び2行目については以下のようになる。
【0088】
1行目での条件に合致する学習データ行は1行目が小見出し1なので、base_dtltypeが小見出しで、base_keyが1となる。
【0089】
図8は、1行目の条件に合致する学習データ及び優先度を示す。
図8に示すように、base_dtltypeが小見出しで、base_keyが1で検索された学習データは、5つあり、それぞれの行番号、優先度、oppoの名称は、「1、128、商品A」、「2、128、商品B」、「3、64、合計」、「7、128、小見出し2」及び「8、64、商品C」となる。
【0090】
図9は、2行目の条件に合致する学習データ及び優先度を示す。
図9に示すように、base_dtltypeが商品で、base_keyが1で検索された学習データは、5つあり、それぞれの行番号、優先度、oppoの名称は、「4、162、商品B」、「5、81、合計」、「10、162、小見出し2」、「11、8.1、商品C」及び「12、0、合計」となる。
【0091】
図10は、1行目及び2行目において算出された優先度をoppo側の商品でグルーピングして集計した結果を示す図である。
図10に示すように、oppo側の商品及び優先度は、それぞれ「商品A、128」、「商品B、290(=128+162))」、「合計、145(64+81)」、「小見出し2、290(128+162)」、「商品C、72.1(64+8.1)となる。
【0092】
oppo側の商品が、候補商品情報として優先度に基づいて決定され、ここでは、「商品B」及び「小見出し2」が第1候補として決定され、第2候補として「合計」が決定され、第3候補として「商品A」が決定され、第4候補として「商品C]が決定される。
【0093】
なお、同一の優先度の場合に、どちらを優先して候補商品情報を決定するか、いくつまで候補商品情報を決定するか等は、種々設定することができる。
【0094】
図13は、2行目以降の商品に関する候補商品情報の推定処理について説明するためのフローチャートである。
【0095】
図13に示すように、対象入力欄の行よりも上の範囲の行の推定対象入力欄に入力された商品に関する情報をキーとして、学習データDB202に記憶された学習データの第1商品に関する情報を上の範囲の行毎に検索する(S31)。
【0096】
次に、検索された学習データ記憶部に記憶された学習データ202の第1商品に関する情報を所定の計算式に基づいて、検索された第1商品に関する情報と組となる第2商品に関する情報毎かつ前記上の範囲の行毎に、点数化する(S32)。
【0097】
次に、検索された第1商品に関する情報と組となる第2商品に関する情報毎かつ上の範囲の行毎に点数化された第1商品に関する情報の点数を、第1商品に関する情報と組となる第2商品に関する情報毎に集計する(S33)。
【0098】
そして、第2商品に関する情報毎に集計された点数に基づいて、第1商品に関する情報と組となる第2商品に関する情報から対象入力欄に入力される候補商品情報を決定し(S34)、S18の処理に移る。
B−2. 学習データの作成処理
次に、学習データの作成処理について、
図14のフローチャートを参照して説明する。
【0099】
実施形態では、夜間にバッチ処理を行なうことにより、前日に作成された見積書の学習データを作成する。
【0100】
図14に示すように、まず、サーバ4は、前日に作成された見積書の見積書データを見積書DB201から取得する(S41)。そして、取得された見積書データに含まれる見積書が作成された日付を参照して、前日に作成された見積書データがあるかを判断する(S42)。
【0101】
S42において、前日に作成された見積書データがあると判断された場合、前日に作成された見積書データを見積書DB201から取得する(S43)。次に、前日に作成された見積書の見積書データが残っているか否かの判断を行ない(S44)、残っていると判断された場合には、S43の処理に移り、残っている見積書データを取得する。
【0102】
S42にて、前日に作成された見積書データがないと判断された場合、S44にて前日に作成された見積書の見積書データが残っていないと判断された場合、見積書DB201から取得した見積書から学習データを作成し、作成した学習データを学習データDB202に保存して(S45)、夜間バッチ処理を終了する。
B−3. 学習データの削除処理
図15は、学習データの削除処理について説明するためのフローチャートである。
【0103】
まず、1月当たりの見積書の作成件数を、見積書DB201の見積書データの見積書が作成された日付を参照して集計する(S51)。次に、集計された見積書の作成件数が、何か月かを計算する(S52)。計算された月数をkとする。
【0104】
S53において、計算された月数kが12か月よりも大きいか否かの判断が行なわれ、大きいと判断された場合、k=12として(S54)、S57の処理に移り、大きくないと判断された場合、S55の処理に移る。
【0105】
S55では、計算された月数kが3月未満であるかの判断が行なわれ、3月未満であると判断された場合、k=3として(S56)、S57の処理に移り、3月未満ではないと判断された場合、そのままS57の処理に移る。
【0106】
S57では、kか月以上前の見積書データを削除し、その後、学習データのレコード数がM件(Mは定数)以上あるかの判断が行なわれ(S58)、学習データのレコード数がM件(Mは定数)以上あると判断された場合、M件を超える学習データを古いものを優先して削除し(S59)、夜間バッチ処理を終了する。S58において学習データのレコード数がM件(Mは定数)以上ないと判断された場合には、学習データを削除することなく、夜間バッチ処理を終了する。
C. 効果
従って、実施形態の商品選択候補推定システムによれば、既に入力欄に入力された商品に関する情報を考慮して、商品に関する情報の候補商品情報を推定することができるので、ユーザが見積書を作成する際の作業負荷を低減することができ、作業効率を向上することができる。
【0107】
また、学習データを使用して、候補商品情報を推定することができるので、的確な候補商品情報を推定することができる。
【0108】
さらに、学習データから所定の計算式を使用して優先度情報を算出することにより、候補商品情報を推定しているので、候補商品情報の決定に設計者の意図も反映させることが容易であり、その結果、ユーザと設計者との双方にとって、最適な候補商品情報を提示することが可能となる。
D. 変形例
1. 上述の実施形態では見積書を例にとり説明したがこれに限られるものではなく、請求書、契約書、注文書等の商品や項目などの情報を入力欄に入力して書類を作成する際に、入力欄に入力される候補情報を推定する候補情報推定装置に適用することができる。
【0109】
2. 実施形態では、入力欄が列方向に配置されており、対象入力欄よりも上の行の入力欄に入力された商品に関する情報を参照して、候補商品情報を決定する場合について説明したが、入力欄が行方向に配置されており、対象入力欄よりも前の列の入力欄に入力された商品に関する情報を参照して、候補商品情報を決定しても良い。
【0110】
本発明のいくつかの実施形態を説明したが、これらの実施形態は、例として提示したものであり、発明の範囲を限定することは意図していない。これら新規な実施形態は、その他の様々な形態で実施されることが可能であり、発明の要旨を逸脱しない範囲で、種々の省略、置き換え、変更を行うことができる。これら実施形態やその変形は、発明の範囲や要旨に含まれるとともに、特許請求の範囲に記載された発明とその均等の範囲に含まれる。
【課題】既に入力欄に商品に関する情報が入力された行の商品に関する情報を考慮して、商品に関する情報の候補商品情報を推定することができる商品選択候補推定装置、商品選択候補推定方法及びそのプログラムを提供する。
【解決手段】商品選択候補推定装置は、第1商品に関する情報と、第1商品に関する情報が入力された行より下の行の入力欄に入力された第2商品に関する情報とを有する組を複数含む学習データを記憶する学習データ記憶部202を具備し、候補商品情報が推定される対象入力欄の行よりも上の範囲の行の推定対象入力欄に入力された商品に関する情報、及び学習データ記憶部に記憶された学習データを使用して、対象入力欄に入力される候補商品情報を推定する商品候補推定部31とを具備する。