(57)【要約】      （修正有）【課題】既に入力欄に商品に関する情報が入力された行の商品に関する情報を考慮して、商品に関する情報の候補商品情報を推定することができる商品選択候補推定装置、商品選択候補推定方法及びそのプログラムを提供する。【解決手段】商品選択候補推定装置は、第１商品に関する情報と、第１商品に関する情報が入力された行より下の行の入力欄に入力された第２商品に関する情報とを有する組を複数含む学習データを記憶する学習データ記憶部２０２を具備し、候補商品情報が推定される対象入力欄の行よりも上の範囲の行の推定対象入力欄に入力された商品に関する情報、及び学習データ記憶部に記憶された学習データを使用して、対象入力欄に入力される候補商品情報を推定する商品候補推定部３１とを具備する。【選択図】図２
2019109865.tif 000002
【特許請求の範囲】
【請求項１】
列方向に配置された複数の入力欄に商品に関する情報を入力し、前記商品に関する情報が入力された行の次の行の入力欄に入力される商品に関する情報の候補商品情報を推定する商品選択候補推定装置において、
第１商品に関する情報と、前記第１商品に関する情報が入力された行より下の行の入力欄に入力された第２商品に関する情報とを有する組を複数含む学習データを記憶する学習データ記憶部と、
前記候補商品情報が推定される対象入力欄の行よりも上の範囲の行の推定対象入力欄に入力された商品に関する情報、及び前記学習データ記憶部に記憶された学習データを使用して、前記対象入力欄に入力される前記候補商品情報を推定する商品候補推定部と
を具備する、商品選択候補推定装置。
【請求項２】
前記商品候補推定部は、
前記対象入力欄の行よりも上の範囲の行の推定対象入力欄に入力された商品に関する情報をキーとして、前記学習データ記憶部に記憶された学習データの第１商品に関する情報を前記上の範囲の行毎に検索する検索部と、
前記検索部により検索された前記学習データ記憶部に記憶された学習データの第１商品に関する情報を所定の計算式に基づいて、前記検索された第１商品に関する情報と組となる第２商品に関する情報毎かつ前記上の範囲の行毎に、点数化する点数化部と、
前記点数化部により前記検索された第１商品に関する情報と組となる第２商品に関する情報毎かつ前記上の範囲の行毎に点数化された前記第１商品に関する情報の点数を、前記第１商品に関する情報と組となる第２商品に関する情報毎に集計する集計部と、
前記集計部により前記第２商品に関する情報毎に集計された点数に基づいて、前記第１商品に関する情報と組となる第２商品に関する情報から前記対象入力欄に入力される前記候補商品情報を決定する候補決定部と
を具備する、請求項１記載の商品選択候補推定装置。
【請求項３】
前記所定の計算式は、前記学習データの前記第１商品に関する情報が入力された行と、前記第１商品に関する情報と組となる第２商品に関する情報が入力された行との距離のパラメータを含む、請求項２記載の商品選択候補推定装置。
【請求項４】
前記所定の計算式は、前記上の範囲の行数のパラメータを含む、請求項２記載の商品選択候補推定装置。
【請求項５】
前記商品候補推定部は、前記対象入力欄が最初の行の場合、前記学習データ記憶部に記憶された前記第１商品に関する情報の数と、前記第２商品に関する情報の数とに基づいて前記候補商品情報を推定する、請求項１記載の商品選択候補推定装置。
【請求項６】
第１商品に関する情報と、前記第１商品に関する情報が入力された行より下の行の入力欄に入力された第２商品に関する情報とを有する組を複数含む学習データを記憶する学習データ記憶部を具備し、
列方向に配置された複数の入力欄に商品に関する情報を入力し、前記商品に関する情報が入力された行の次の行の入力欄に入力される商品に関する情報の候補商品情報を推定する商品選択候補推定装置における商品選択候補推定方法において、
前記候補商品情報が推定される対象入力欄の行よりも上の範囲の行の推定対象入力欄に入力された商品に関する情報、及び前記学習データ記憶部に記憶された学習データを使用して、前記対象入力欄に入力される前記候補商品情報を推定し、
前記推定された候補商品情報をクライアントに送信する、
商品選択候補推定方法。
【請求項７】
請求項６記載の商品選択候補推定方法を前記商品選択候補推定装置に実行させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、商品に関する情報の入力の際に、商品に関する情報の候補商品情報を推定する商品選択候補推定装置、商品選択候補推定方法及びそのプログラムに関する。
【背景技術】
【０００２】
従来より、商品に関する情報（商品の見出し、商品の種類、小計などの項目）を入力して、商品に関する情報が記載された見積書や請求書などの商品購入情報提示データを作成する際には、ユーザが経験に基づいて、商品に関する情報を入力する方法、その入力項目に対応して選択することが可能な商品に関する情報の候補商品情報の選択肢を表示する方法、商品名を検索してセットする方法がある。
【０００３】
商品に関する情報の候補商品情報の選択肢を表示する方法には、過去に選択した商品に関する候補商品情報を表示する方法がある。また、商品に関する情報の候補商品情報を選択するに際し、アンケートの結果や、商品を購入したユーザの属性、ユーザの購入履歴を利用して、商品に関する情報の候補商品情報を表示するものがある。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２０１３−１０９６４８号公報
【特許文献２】特開２０１０−７３１７０号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
しかしながら、商品に関する情報が記載された見積書や請求書などの商品購入情報提示データを作成する場合、単に、ユーザが購入を希望する商品を選択させるのみでは足りず、商品の見出しや、商品の種類、小計などの商品に関する情報の組み合わせをも考慮して、商品購入情報提示データを作成しなければならない、
具体的には、商品に関する情報の入力画面の行毎に、選択された商品の見出しや、商品の種類、小計などの情報を決められた順番で入力していく必要があり、単に、アンケートの結果や商品を購入したユーザの属性に基づいて、ユーザが選択可能な商品に関する情報の候補商品情報を表示する商品選択候補推定装置では、思い通りの商品情報提示データとはならず、見積書や請求書などの商品に関する情報を入力する際のユーザの作業負荷を低減することができない。
【０００６】
また、商品名を検索してセットする方法でも、同様に、思い通りの商品情報提示データとならず、ユーザの作業負荷が高くなってしまうという問題がある。
【０００７】
すなわち、従来の行毎の入力欄に商品に関する情報を入力する商品選択候補推定装置では、このような商品に関する情報の組み合わせの順番までも考慮して、商品に関する情報の候補商品情報を推定するものはなかった。
【０００８】
本発明は、上記実情に鑑みてなされたものであり、既に入力欄に入力された商品に関する情報を考慮して、商品に関する情報の候補商品情報を推定する商品選択候補推定装置、商品選択候補推定方法及びそのプログラムを提供することを目的とする。
【課題を解決するための手段】
【０００９】
実施形態によれば、列方向に配置された複数の入力欄に商品に関する情報を入力し、前記商品に関する情報が入力された行の次の行の入力欄に入力される商品に関する情報の候補商品情報を推定する商品選択候補推定装置において、第１商品に関する情報と、前記第１商品に関する情報が入力された行より下の行の入力欄に入力された第２商品に関する情報とを有する組を複数含む学習データを記憶する学習データ記憶部と、前記候補商品情報が推定される対象入力欄の行よりも上の範囲の行の推定対象入力欄に入力された商品に関する情報、及び前記学習データ記憶部に記憶された学習データを使用して、前記対象入力欄に入力される前記候補商品情報を推定する商品候補推定部とを具備する、商品選択候補推定装置である。
【発明の効果】
【００１０】
本発明によれば、既に入力欄に入力された商品に関する情報を考慮して、商品に関する情報の候補商品情報を推定することができる。
【図面の簡単な説明】
【００１１】
【図１】本発明の実施形態に係る商品選択候補推定システムを示す図である。
【図２】データベース２３に格納される各種データベース及び候補商品情報の推定を行なう見積書作成プログラム２２の機能ブロック図である
【図３】実施形態のｄｔｌｔｙｐｅ、ｋｅｙ及び名称の定義の一例を示す図である。
【図４】見積書Ａの見積書データと、当該見積書データの行１と行２の学習データとの関係を示す図である。
【図５】見積書Ｂの見積書データを示す図である。
【図６】見積書Ｂの見積書データの２行目及び４行目のデータの関係を表わす学習データを示す図である。
【図７】見積書Ａ及びＢの学習データを示す図である。
【図８】１行目の条件に合致する学習データ及び優先度を示す。
【図９】２行目の条件に合致する学習データ及び優先度を示す。
【図１０】１行目及び２行目において算出された優先度をｏｐｐｏ側の商品でグルーピングして集計した結果を示す図である。
【図１１】実施形態に係る見積書の商品選択候補の推定処理を説明するためのフローチャートである。
【図１２】最初の行（１行目）の商品に関する候補商品情報の推定処理について説明するためのフローチャートである。
【図１３】２行目以降の商品に関する候補商品情報の推定処理について説明するためのフローチャートである。
【図１４】学習データの作成処理について説明するためのフローチャートである。
【図１５】学習データの削除処理について説明するためのフローチャートである。
【図１６】クライアントにおいて表示される見積書の作成画面の一例を示す図である。
【図１７】クライアントにおいて表示される候補商品情報の選択画面の一例を示す図である。
【図１８】ソフトウェア費用という小見出しをセットした後の候補商品情報の選択画面の一例を示す図である。
【発明を実施するための形態】
【００１２】
以下、図面を参照して、本発明の実施形態に係る見積書の商品選択候補推定システムについて説明する。
Ａ．  構成
図１は、本発明の実施形態に係る商品選択候補推定システムを示す図である。なお、実施形態において、構成要素を区別して説明する必要がない場合には、ハイフンを省略して説明する。
【００１３】
同図に示すように、インターネットなどのネットワーク１には、アクセスポイント２−１、２−２を介して、それぞれコンピュータＣ−１、Ｃ−２が接続される。また、基地局３−１、３−２を介して、それぞれスマートフォン等の携帯型情報機器Ｓ−１、Ｓ−２が接続される。
【００１４】
ネットワーク１には、本発明の実施形態に係る商品選択候補推定処理を実現するためのサーバ４が接続されている。
【００１５】
実施形態では、これらコンピュータＣ−１、Ｃ−２、携帯型情報機器Ｓ−１、Ｓ−２は、見積書を作成するユーザにより使用される。コンピュータＣ及び携帯型情報機器Ｓ（以下、「クライアント」という。）は、サーバ４によって推定された見積書に使用される候補となる候補商品情報を表示し、見積書作成の際のユーザの商品に関する情報の選択をアシストする。
【００１６】
図１に示すように、サーバ４は、バス１１に接続されたＣＰＵ１２、通信部１３、メモリ１４、及び記憶装置１５を具備する。
【００１７】
ＣＰＵ１２は、記憶装置１５に記憶された実施形態に係る見積書作成プログラム２２と協働して、実施形態に係る見積書の作成に際し、商品に関する情報の候補商品情報を推定する処理を行なう他、サーバ４全体の制御を司るものである。
【００１８】
通信部１３は、ネットワーク１を介したクライアントなどの外部装置との通信の制御を司る。
【００１９】
メモリ１４は、見積書作成プログラム２２を実行する際に必要とされるワークエリアなどとして使用される。
【００２０】
記憶装置１５は、候補商品情報推定処理に必要とされるプログラム、データを格納するためのものであり、例えば、ハードディスクドライブ（ＨＤＤ）、光ディスクドライブ、ＤＶＤ、ＭＯなどの大容量記憶装置である。この記憶装置１５には、ＯＳ（オペレーティングシステム）２１、見積書作成プログラム２２、データベース（ＤＢ）２３が格納されている。
【００２１】
ＯＳ２１は、サーバ４の基本的な機能を実現するためのプログラムである。
【００２２】
見積書作成プログラム２２は、実施形態に係る見積書の作成の際の候補商品情報の推定処理を実現するためのプログラムである。
【００２３】
データベース２３は、見積書作成プログラム２２によって実現される候補商品情報の推定処理において使用される各種データベースを格納する。
【００２４】
図２は、データベース２３に格納される各種データベース及び候補商品情報の推定を行なう見積書作成プログラム２２の機能ブロック図である商品候補推定部３１を示す図である。
【００２５】
図２に示すように、データベース２３は、見積書ＤＢ２０１、学習データＤＢ２０２及び商品マスタＤＢ２０３を有する。
【００２６】
見積書ＤＢ２０１は、見積書作成プログラム２２によって過去に作成された複数の見積書データを格納する。
【００２７】
見積書データは、少なくとも、以下のデータを含む。
【００２８】
１．  見積書のＩＤ
２．  見積書のＩＤに対応付けられた見積書の行番号
３．  見積書の行番号に対応付けられた商品に関する情報（小見出し、商品の種類、小計、合計）
４．  見積書のＩＤに対応付けられた見積書が作成された日付
学習データＤＢ２０２は、見積書作成プログラム２２によって、見積書ＤＢ２０１に格納された見積書データから作成された学習データを格納する。
【００２９】
学習データは、以下のデータを含む。
【００３０】
１．  ｂａｓｅ＿ｄｔｌｔｙｐｅ
：基準データの種類（商品、小見出し、小計、合計）
２．  ｂａｓｅ＿ｋｅｙ          ：基準データのＩＤ
３．  ｏｐｐｏ＿ｄｔｌｔｙｐｅ  ：対応データの種類
４．  ｏｐｐｏ＿ｋｅｙ          ：対応データのＩＤ
５．  ｃｏｕｎｔ                ：同じ商品、位置関係、距離の組み合わせが選択された回数
６．  ｄｉｓｔａｎｃｅ          ：行同士の距離
７．  ｓｔｅｐ                  ：小見出しや小計をまたいだ回数
８．  ｒｅｇｄｔ                ：登録日
学習データＤＢ２０２には、見積書ＤＢ２０１に格納された見積書データの全ての行と行との組み合わせがデータ化され、学習データとして格納される。データ量を減らすために、同日に同じ内容のデータが複数ある場合には、これらデータを統合して、「ｃｏｕｎｔ」にその件数が保存される。
【００３１】
「ｒｅｇｄｔ」は、古い学習データを削除するときに使用される。
【００３２】
実施形態では説明のために、商品、小見出し、合計について、図３に示すように定義する。
【００３３】
図３に示すように、ｄｔｌｔｙｐｅが「小見出し」でｋｅｙ１には、「小見出し１」が対応し、ｋｅｙ２には、「小見出し２」が対応する。また、ｄｔｌｔｙｐｅが「合計」でｋｅｙ１には、「合計」が対応する。
【００３４】
ｄｔｌｔｙｐｅが「商品」でｋｅｙ１には、「商品Ａ」が対応し、ｋｅｙ２には、「商品Ｂ」が対応し、ｋｅｙ３には、「商品Ｃ」が対応する。
【００３５】
図４は、見積書Ａの見積書データと、当該見積書データの行１と行２の学習データとの関係を示す図である。
【００３６】
図４に示すように、見積書Ａの１行目には「小見出し１」、２行目には「商品Ａ」、３行目には「商品Ｂ」及び４行目には「合計」が記載されてるものとする。そうすると、見積書Ａの１行目及び２行目を例にとると、見積書Ａの学習データは、図４の下の表に示すようになる。
【００３７】
すなわち、ｂａｓｅ＿ｄｔｌｔｙｐｅは「小見出し」、ｂａｓｅ＿ｋｅｙは「１」、ｏｐｐｏ＿ｄｔｌｔｙｐｅは「商品」、ｏｐｐｏ＿ｋｅｙは「１」、ｃｏｕｎｔは「２」、ｄｉｓｔａｎｃｅは「１」、ｓｔｅｐは「０」、ｒｅｇｄｔは、２０１７１１０１となる。
【００３８】
ここで、学習データの定義は上述の通りであるが、さらに説明を加えると、ｂａｓｅ＿ｄｔｌｔｙｐｅは見積書上で上に来る方のデータの種類、ｂａｓｅ＿ｋｅｙは見積書上で上に来る方のデータのＩＤ、ｏｐｐｏ＿ｄｔｌｔｙｐｅは見積書上で下に来る方のデータの種類、ｏｐｐｏ＿ｋｅｙは見積書上で下に来る方のデータの種類、ｂａｓｅ＿ｋｅｙとｏｐｐｏ＿ｄｔｌｔｙｐｅとの組み合わせがその日に出現する回数（ここでは、後述する見積書Ｂにも同じ組み合わせがあるので、「２」としている。）、ｄｉｓｔａｎｃｅは見積書データの行数の差（ここでは、行数２の商品Ａと行数１の小見出し１の差は、１なので「１」としている。）、ｒｅｇｄｔは学習データを作成した日付である。
【００３９】
図５は、見積書Ｂの見積書データを示す図である。
【００４０】
図５に示すように、見積書Ｂの１行目には「小見出し１」、２行目には「商品Ａ」、３行目には「小見出し２」、４行目には「商品Ｃ」、５行目には「合計」が記載されているものとする。
【００４１】
そうすると、見積書Ｂの２行目及び４行目を例にとると、見積書Ｂの学習データは、図６に示すようになる。
【００４２】
すなわち、ｂａｓｅ＿ｄｔｌｔｙｐｅは「商品」、ｂａｓｅ＿ｋｅｙは「１」、ｏｐｐｏ＿ｄｔｌｔｙｐｅは「商品」、ｏｐｐｏ＿ｋｅｙは「３」、ｃｏｕｎｔは「１」（ここでは、この組み合わせは他の学習データにはないものとする。）、ｄｉｓｔａｎｃｅは「２」（行２と行４とは２行離れているので）、ｓｔｅｐは「１」（小見出し２を１つまたいでいるので、「１」となる。）、ｒｅｇｄｔは、２０１７１１０１となる。
【００４３】
以上のようにして、全ての見積書の組み合わせの学習データを作成する。上述の見積書Ａ及び見積書Ｂを例にとると、具体的には、１５通りの学習データが作成される。図７は、このようにして作成された１５個の学習データを示す図である。
【００４４】
すなわち、見積書Ａ及び見積書Ｂについては、以下の学習データが作成される。
【００４５】
１．見積書Ａの１行と見積書Ａの２行（見積書Ｂの１行と見積書Ｂの２行と同一）
２．見積書Ａの１行と見積書Ａの３行
３．見積書Ａの１行と見積書Ａの４行
４．見積書Ａの２行と見積書Ａの３行
５．見積書Ａの２行と見積書Ａの４行
６．見積書Ａの３行と見積書Ａの４行
７．見積書Ｂの１行と見積書Ｂの３行
８．見積書Ｂの１行と見積書Ｂの４行
９．見積書Ｂの１行と見積書Ｂの５行
１０．見積書Ｂの２行と見積書Ｂの３行
１１．見積書Ｂの２行と見積書Ｂの４行
１２．見積書Ｂの２行と見積書Ｂの５行
１３．見積書Ｂの３行と見積書Ｂの４行
１４．見積書Ｂの３行と見積書Ｂの５行
１５．見積書Ｂの４行と見積書Ｂの５行（見積書Ａの１行と見積書Ａの４行とは、ｄｉｓｔａｎｃｅが異なるので、他の学習データである。）
図２に戻り説明する。商品マスタＤＢ２０３は、見積書に入力される商品に関する情報に関連付けて、当該商品の数量、単価、値引き（値引き率や値引き額）、及び金額などの詳細情報を格納し、商品に関する情報が設定された場合に、設定された商品に関する情報の詳細情報を取得するのに参照される。
【００４６】
商品候補推定部３１は、カウント数算出部３０１、優先度算出部３０２、検索部３０３、点数化部３０４、集計部３０５、候補決定部３０６及び候補通知部３０７を有する。
【００４７】
カウント数算出部３０１及び優先度算出部３０２は、１行目の商品に関する候補商品情報の推定処理に使用され、検索部３０３、点数化部３０４及び集計部３０５は、２行以降以降の商品に関する候補情報の推定処理に使用され、候補決定部３０６及び候補通知部３０７は全ての行の商品に関する情報の候補情報の推定処理に使用される。
【００４８】
カウント数算出部３０１は、学習データＤＢ２０２に保存されている学習データのｂａｓｅ＿ｄｔｌｔｙｐｅ及びｂａｓｅ＿ｋｅｙと一致する商品に関する情報を商品に関する情報毎にカウントする（第１カウント数）。また、学習データＤＢ２０２に記憶された学習データのｏｐｐｏ＿ｄｔｌｔｙｐｅ及びｏｐｐｏ＿ｋｅｙと一致する商品に関する情報の数を商品に関する情報毎にカウントする（第２カウント数）。
【００４９】
優先度算出部３０２は、カウント数算出部３０１によって算出された第１カウント数から第２カウント数を減算して、商品に関する情報毎に算出し、その算出結果を当該商品に関する情報の優先度とする。
【００５０】
検索部３０３は、対象入力欄の行よりも上の範囲の行の推定対象入力欄に入力された商品に関する情報をキーとして、学習データＤＢ２０２に記憶された学習データのｂａｓｅ＿ｄｔｌｔｙｐｅ及びｂａｓｅ＿ｋｅｙと一致する商品に関する情報を上の範囲の行毎に検索する。
【００５１】
点数化部３０４は、検索部３０３により検索された学習データＤＢ２０２に記憶された学習データのｂａｓｅ＿ｄｔｌｔｙｐｅ及びｂａｓｅ＿ｋｅｙと一致する商品に関する情報を所定の計算式に基づいて、検索されたｂａｓｅ＿ｄｔｌｔｙｐｅ及びｂａｓｅ＿ｋｅｙと一致する商品に関する情報と組となるｏｐｐｏ＿ｄｔｌｔｙｐｅ及びｏｐｐｏ＿ｋｅｙと一致する商品に関する情報毎かつ上の範囲の行毎に、点数化する。
【００５２】
集計部３０５は、検索されたｂａｓｅ＿ｄｔｌｔｙｐｅ及びｂａｓｅ＿ｋｅｙと一致する商品に関する情報と組となるｏｐｐｏ＿ｄｔｌｔｙｐｅ及びｏｐｐｏ＿ｋｅｙと一致する商品に関する情報毎かつ上の範囲の行毎に点数化されたｂａｓｅ＿ｄｔｌｔｙｐｅ及びｂａｓｅ＿ｋｅｙと一致する商品に関する情報の点数を、ｂａｓｅ＿ｄｔｌｔｙｐｅ及びｂａｓｅ＿ｋｅｙと一致する商品に関する情報と組となるｏｐｐｏ＿ｄｔｌｔｙｐｅ及びｏｐｐｏ＿ｋｅｙと一致する商品に関する情報毎に集計する。
【００５３】
候補決定部３０６は、優先度算出部３０２により算出された優先度に基づいて、優先度の高い順に、商品に関する情報を候補商品情報とする。また、集計部３０５により、ｏｐｐｏ＿ｄｔｌｔｙｐｅ及びｏｐｐｏ＿ｋｅｙと一致する商品に関する情報毎に集計された点数に基づいて、ｂａｓｅ＿ｄｔｌｔｙｐｅ及びｂａｓｅ＿ｋｅｙと一致する商品に関する情報と組となるｏｐｐｏ＿ｄｔｌｔｙｐｅ及びｏｐｐｏ＿ｋｅｙと一致する商品に関する情報から対象入力欄に入力される候補商品情報を決定する。
【００５４】
候補通知部３０７は、候補決定部３０６により候補商品情報とされた商品に関する情報をクライアントに通知して、クライアントに表示させる。
Ｂ．  動作
Ｂ−１．  商品選択候補推定の動作
次に、実施形態に係る商品選択候補推定システムの動作について、図１１及び図１２のフローチャートを参照して説明する。図１１は、実施形態に係る見積書の商品選択候補の推定処理を説明するためのフローチャートである。
【００５５】
まず、サーバ４からクライアントにおいて、見積書の作成画面を表示させる（Ｓ１０）。図１６は、クライアントにおいて表示される見積書の作成画面の一例を示す図である。同図に示すように、見積書の作成画面には、見積書の商品に関する情報を入力するための入力欄４０１が列方向に行毎に設けられており、また、入力欄４０１に設定される商品に関する情報に対応して、設定される単価入力欄４０１、数量入力欄４０２、単価入力欄４０３、値引き入力欄４０５、及び金額入力欄４０６が設けられている。
【００５６】
これら単価入力欄４０１、数量入力欄４０２、単価入力欄４０３、値引き入力欄４０５、及び金額入力欄４０６は、入力欄４０１に設定される商品に関する情報に対応して、サーバ４の商品マスタＤＢを参照して設定されるが、ユーザが手動により変更可能である。
【００５７】
図１６に示す画面において、ユーザがセットしたい行を選択して、商品選択ボタン４１１を押下すると、サーバ４において候補商品情報の推定処理が行なわれる（Ｓ１１）。実施形態では、最初に見積書の作成が行なわれる際には、最初の行（１行目）の商品に関する候補商品情報の推定処理が行なわれる。このＳ１１における最初の行（１行目）の商品に関する候補商品情報の推定処理については、図１２のフローチャートにおいて詳述する。
【００５８】
サーバ４において、１行目の候補商品情報の推定処理が行なわれ、候補商品情報が決定すると、サーバ４は、決定された候補商品情報をクライアントに送信し（Ｓ１２）し、クライアントに決定された候補商品情報を表示させる（Ｓ１３）。
【００５９】
図１７は、クライアントにおいて表示される候補商品情報の選択画面の一例を示す図である。図１７は、図１６の見積書の作成画面において、商品選択ボタン４１１を押下した際に開かれる画面であり、候補商品情報が表示される画面である。
【００６０】
図１７では、商品に関する情報として、小見出しである「ソフトウェア費用」、「導入サポート費用」、「初期開設費用」、「初期設定費用」が表示され、商品の種類である「初期設定費用／商品Ａ」、「商品Ｂ」、「商品Ｃライセンス」、「商品Ｄライセンス」、「商品Ｃ」が表示されている例を示している。
【００６１】
このリストの中にセットしようとしているものがあれば、その行を選択する。選択するものがなければ、検索条件欄５０１に検索条件をして、商品マスタＤＢ２０３を検索し、希望の商品に関する情報をセットすることも可能である。
【００６２】
図１１に戻り説明する。Ｓ１３の処理後、サーバ４は、クライアント４に表示させた候補商品情報が選択されたかを判断し（Ｓ１４）、選択されたと判断された場合にはクライアントから候補商品情報を受信し（Ｓ１５）、選択されていない場合には、ユーザがクライアント上で入力した商品に関する情報を受信する（Ｓ１６）。
【００６３】
このようにして、見積書作成画面において、１行目の商品に関する情報が設定されると、次に、２行目以降の商品に関する候補商品情報の推定処理が行なわれる（Ｓ１７）。このＳ１７における２行目以降の商品に関する候補商品情報の推定処理については、図１３のフローチャートにおいて詳述する。
【００６４】
サーバ４において、２行目以降の商品に関する候補商品情報の推定処理が行なわれ、候補商品情報が決定すると、サーバ４は、決定された候補商品情報をクライアントに送信して、決定された候補商品情報をクライアントに表示させる（Ｓ１８）。
【００６５】
図１８は、ソフトウェア費用という小見出しをセットした後の候補商品情報の選択画面の一例を示す図である。
【００６６】
図１８では、１行目の入力欄６０１にソフトウェア費用という小見出しがセットされ、２行目の候補商品情報として、「商品Ａ」、「インストール作業／商品Ｃ」、「インストール作業／商品Ｂ」、「商品Ｂ」、「商品Ｂライセンス」、「商品Ｄ」、「商品Ｃライセンス」が表示されている例を示している。これら表示されている複数の候補商品情報は、１行目にセットされたソフトウェア費用という小見出しに基づいて推定されている。
【００６７】
その後、サーバ４は、ユーザが他に選択したい商品に関する情報があるか否かの判断を行ない（Ｓ１９）、他に選択したい商品がないと判断された場合には、商品候補推定処理を終了し、他に選択したい商品があると判断された場合には、Ｓ１７の処理に戻る。
【００６８】
図１２は、最初の行（１行目）の商品に関する候補商品情報の推定処理について説明するためのフローチャートである。
【００６９】
最初の行では上の行が存在しないので、以下の方法により最初の行の候補商品情報を推定する。
【００７０】
まず、学習データＤＢ２０２に保存されている学習データのｂａｓｅ＿ｄｔｌｔｙｐｅ及びｂａｓｅ＿ｋｅｙと一致する商品に関する情報を商品に関する情報毎にカウントする（第１カウント数：Ｓ２１）。
【００７１】
次に、学習データＤＢ２０２に記憶された学習データのｏｐｐｏ＿ｄｔｌｔｙｐｅ及びｏｐｐｏ＿ｋｅｙと一致する商品に関する情報の数を商品に関する情報毎にカウントする（第２カウント数：Ｓ２２）
そして、（第１カウント数−第２カウント数）を商品に関する情報毎に算出し、その算出結果を当該商品に関する情報の優先度とし（Ｓ２３）、優先度の高い順に商品に関する情報を候補商品情報として（Ｓ２４）、Ｓ１２の処理に移る。
【００７２】
すなわち、最初の行の推定処理では見積書の２行の関係で上にある場合の件数の合計から、下にある場合の件数の合計を引いたものが優先度となる。つまり、他の商品よりも上に配置される回数が最も多い者が優先される。
【００７３】
なお、学習データが少ない場合に極端な結果がでないように、上側に配置されてｃｏｕｎｔが所定の件数（例えば、１００件）以上という要件を加えても良い。
【００７４】
次に、２行目以降の商品に関する候補商品情報の推定処理について説明する。
【００７５】
２行目以降の商品に関する候補商品情報の推定処理では、入力しようとしている行の入力欄（対象入力欄）の行をＲ行とすると、Ｒ−Ｎｒ行からＲ−１行までのデータが参考にされる。ここで、Ｎｒは、参考にする最大の行数の定数である。
【００７６】
例えば、次に入力しようとしている行が１２行目（Ｒ＝１２）であり、Ｎｒ＝８の場合、４行目（＝Ｒ−Ｎｒ）から１１行目（＝Ｒ−１）までの８行が推定処理に使用される。
【００７７】
ここで、２行目以降の商品に関する候補商品情報の推定処理において候補商品情報となるための条件は、下記の通りである。
【００７８】
１．  今まで一緒にセットされたことがあること（学習データが存在すること）
２．  距離が離れすぎていないこと（ｄｉｓｔａｎｃｅの最大値である定数ＢＣ以上離れていないこと）
３．  まだセットされていないもの
実施形態では、推定する行よりも上の行数分の条件を組み立てて、それらの合計で優先順位を求める。ここで、Ｓｒは、Ｒ−Ｎｒ行とＲ行との間に小見出しや小計を挟んだ場合は０．１、挟まない場合は１とする。Ｓｒは、小見出しなどをまたいだデータの優先順位への影響を低くするために使用される。
【００７９】
具体的には、
Ｒ−Ｎｒ行目での条件：  ｂａｓｅ＿ｄｔｌｔｙｐｅ
＝Ｒ−Ｎｒ行の商品の種類及びｂａｓｅ＿ｋｅｙ
＝Ｒ−Ｎｒ行の商品のＩＤ
Ｒ−Ｎｒ行目での優先順位：
ＳＵＭ（ｃｏｕｎｔ／ＭＩＮ（１，ｓｔｅｐ）×９＋１）
×ＭＡＸ（０、２−ＡＢＳ（Ｎｒ−ｄｉｓｔａｎｃｅ）
×ＰＯＷＥＲ（ＢＣ−Ｎｒ，２）×Ｓｒ）
＋
Ｒ−Ｎｒ＋１行目での条件：  ｂａｓｅ＿ｄｔｌｔｙｐｅ
＝Ｒ−Ｎｒ＋１行の商品の種類及びｂａｓｅ＿ｋｅｙ
＝Ｒ−Ｎｒ＋１行の商品のＩＤ
Ｒ−Ｎｒ＋１行目での優先順位：
ＳＵＭ（ｃｏｕｎｔ／ＭＩＮ（１，ｓｔｅｐ）×９＋１）
×ＭＡＸ（０、２−ＡＢＳ（Ｎｒ−１−ｄｉｓｔａｎｃｅ））
×ＰＯＷＥＲ（ＢＣ−（Ｎｒ−１），２）×Ｓｒ）
＋
・
・
・
＋
Ｒ−Ｎｒ＋Ｎｒ−１行目による条件（Ｒ−１行目）：
ｂａｓｅ＿ｄｔｌｔｙｐｅ    ＝Ｒ−１行目の商品の種類及びｂａｓｅ＿ｋｅｙ
＝Ｒ−１行目の商品のＩＤ
Ｒ−Ｎｒ＋１行目での優先順位：
ＳＵＭ（ｃｏｕｎｔ／ＭＩＮ（１，ｓｔｅｐ）×９＋１）
×ＭＡＸ（０、２−ＡＢＳ（１−ｄｉｓｔａｎｃｅ））
×ＰＯＷＥＲ（ＢＣ−１，２）×Ｓｒ）
ここで、「ＳＵＭ」は、学習データが日別に分かれているため、それらを合計するために使用されている。ＭＩＮ（１，ｓｔｅｐ）×９＋１）は、学習データが小見出しなどを挟んでいる場合、優先順位を１／１０に減じている。小見出しなどを複数行挟んでいる場合、さらに優先度を減らしても良い。
【００８０】
ＭＡＸ（０、２−ＡＢＳ（Ｎｒ−ｄｉｓｔａｎｃｅ）は、学習データの有効性を示している。本来は、Ｎｒとｄｉｓｔａｎｃｅが同じものを使用すべきであるが、学習データが少ない時のために、１行ずれていても半分の力で通用するようにしている。この項は、ずれている行数に応じて徐々に減らしていくようにしても良い。
【００８１】
ＰＯＷＥＲ（ＢＣ−Ｎｒ，２）×Ｓｒ）は、対象行の近くの行のデータを強く反映させるために、対象行との距離を最大値から引いたものを自乗（二条）する（ＰＯＷＥＲ（ＢＣ−１，２）＝（ＢＣ−Ｎｒ）２）。
【００８２】
なお、既に選択済みのものは、候補商品情報として出さないとしても良い。
【００８３】
次に、見積書データの１行目に「小見出し１（分類：小見出し、ＩＤ＝１）」、２行目に「商品Ａ（分類：商品、ＩＤ＝１）がセットされた状態で、次の行を提案する場合について説明する。
【００８４】
Ｒ−Ｎｒ行目による条件は、以下のようになる。ここで、Ｒ＝３、Ｎｒ＝８であるとすると、Ｒ−Ｎｒはマイナスになってしまうので、この場合は条件に加えない。Ｒ−Ｎｒ＋１行も−４なので条件には使用しない。このまま進んで、Ｒ−Ｎｒ＋６が１になるので、ここから条件の組み立てがスタートする。
【００８５】
１行目及び２行目の条件及び優先順位は、以下のようになる。
【００８６】
１行目での：  ｂａｓｅ＿ｄｔｌｔｙｐｅ
＝１行目の商品の種類及びｂａｓｅ＿ｋｅｙ
＝１行目の商品のＩＤ
１行目での優先順位：
ＳＵＭ（ｃｏｕｎｔ／ＭＩＮ（１，ｓｔｅｐ）×９＋１）
×ＭＡＸ（０，２−ＡＢＳ（Ｎｒ−６−ｄｉｓｔａｎｃｅ）
×ＰＯＷＥＲ（ＢＣ−（Ｎｒ−６），２）×Ｓｒ）
＊ここで、Ｓｒは小見出しをまたいでいないので１となる。
【００８７】
＋
Ｒ−Ｎｒ＋Ｎｒ−１行目（Ｒ−１行）＝２行目での条件：
ｂａｓｅ＿ｄｔｌｔｙｐｅ  ＝  ２行目の商品の種類及びｂａｓｅ＿ｋｅｙ
＝  ２行目の商品のＩＤ
２行目での優先順位：
ＳＵＭ（ｃｏｕｎｔ／ＭＩＮ（１，ｓｔｅｐ）×９＋１）
×ＭＡＸ（０，２−ＡＢＳ（１−ｄｉｓｔａｎｃｅ）
×ＰＯＷＥＲ（ＢＣ−１，２）×Ｓｒ）
これを学習データにあてはめると、１行目及び２行目については以下のようになる。
【００８８】
１行目での条件に合致する学習データ行は１行目が小見出し１なので、ｂａｓｅ＿ｄｔｌｔｙｐｅが小見出しで、ｂａｓｅ＿ｋｅｙが１となる。
【００８９】
図８は、１行目の条件に合致する学習データ及び優先度を示す。図８に示すように、ｂａｓｅ＿ｄｔｌｔｙｐｅが小見出しで、ｂａｓｅ＿ｋｅｙが１で検索された学習データは、５つあり、それぞれの行番号、優先度、ｏｐｐｏの名称は、「１、１２８、商品Ａ」、「２、１２８、商品Ｂ」、「３、６４、合計」、「７、１２８、小見出し２」及び「８、６４、商品Ｃ」となる。
【００９０】
図９は、２行目の条件に合致する学習データ及び優先度を示す。図９に示すように、ｂａｓｅ＿ｄｔｌｔｙｐｅが商品で、ｂａｓｅ＿ｋｅｙが１で検索された学習データは、５つあり、それぞれの行番号、優先度、ｏｐｐｏの名称は、「４、１６２、商品Ｂ」、「５、８１、合計」、「１０、１６２、小見出し２」、「１１、８．１、商品Ｃ」及び「１２、０、合計」となる。
【００９１】
図１０は、１行目及び２行目において算出された優先度をｏｐｐｏ側の商品でグルーピングして集計した結果を示す図である。図１０に示すように、ｏｐｐｏ側の商品及び優先度は、それぞれ「商品Ａ、１２８」、「商品Ｂ、２９０（＝１２８＋１６２））」、「合計、１４５（６４＋８１）」、「小見出し２、２９０（１２８＋１６２）」、「商品Ｃ、７２．１（６４＋８．１）となる。
【００９２】
ｏｐｐｏ側の商品が、候補商品情報として優先度に基づいて決定され、ここでは、「商品Ｂ」及び「小見出し２」が第１候補として決定され、第２候補として「合計」が決定され、第３候補として「商品Ａ」が決定され、第４候補として「商品Ｃ］が決定される。
【００９３】
なお、同一の優先度の場合に、どちらを優先して候補商品情報を決定するか、いくつまで候補商品情報を決定するか等は、種々設定することができる。
【００９４】
図１３は、２行目以降の商品に関する候補商品情報の推定処理について説明するためのフローチャートである。
【００９５】
図１３に示すように、対象入力欄の行よりも上の範囲の行の推定対象入力欄に入力された商品に関する情報をキーとして、学習データＤＢ２０２に記憶された学習データの第１商品に関する情報を上の範囲の行毎に検索する（Ｓ３１）。
【００９６】
次に、検索された学習データ記憶部に記憶された学習データ２０２の第１商品に関する情報を所定の計算式に基づいて、検索された第１商品に関する情報と組となる第２商品に関する情報毎かつ前記上の範囲の行毎に、点数化する（Ｓ３２）。
【００９７】
次に、検索された第１商品に関する情報と組となる第２商品に関する情報毎かつ上の範囲の行毎に点数化された第１商品に関する情報の点数を、第１商品に関する情報と組となる第２商品に関する情報毎に集計する（Ｓ３３）。
【００９８】
そして、第２商品に関する情報毎に集計された点数に基づいて、第１商品に関する情報と組となる第２商品に関する情報から対象入力欄に入力される候補商品情報を決定し（Ｓ３４）、Ｓ１８の処理に移る。
Ｂ−２．  学習データの作成処理
次に、学習データの作成処理について、図１４のフローチャートを参照して説明する。
【００９９】
実施形態では、夜間にバッチ処理を行なうことにより、前日に作成された見積書の学習データを作成する。
【０１００】
図１４に示すように、まず、サーバ４は、前日に作成された見積書の見積書データを見積書ＤＢ２０１から取得する（Ｓ４１）。そして、取得された見積書データに含まれる見積書が作成された日付を参照して、前日に作成された見積書データがあるかを判断する（Ｓ４２）。
【０１０１】
Ｓ４２において、前日に作成された見積書データがあると判断された場合、前日に作成された見積書データを見積書ＤＢ２０１から取得する（Ｓ４３）。次に、前日に作成された見積書の見積書データが残っているか否かの判断を行ない（Ｓ４４）、残っていると判断された場合には、Ｓ４３の処理に移り、残っている見積書データを取得する。
【０１０２】
Ｓ４２にて、前日に作成された見積書データがないと判断された場合、Ｓ４４にて前日に作成された見積書の見積書データが残っていないと判断された場合、見積書ＤＢ２０１から取得した見積書から学習データを作成し、作成した学習データを学習データＤＢ２０２に保存して（Ｓ４５）、夜間バッチ処理を終了する。
Ｂ−３．  学習データの削除処理
図１５は、学習データの削除処理について説明するためのフローチャートである。
【０１０３】
まず、１月当たりの見積書の作成件数を、見積書ＤＢ２０１の見積書データの見積書が作成された日付を参照して集計する（Ｓ５１）。次に、集計された見積書の作成件数が、何か月かを計算する（Ｓ５２）。計算された月数をｋとする。
【０１０４】
Ｓ５３において、計算された月数ｋが１２か月よりも大きいか否かの判断が行なわれ、大きいと判断された場合、ｋ＝１２として（Ｓ５４）、Ｓ５７の処理に移り、大きくないと判断された場合、Ｓ５５の処理に移る。
【０１０５】
Ｓ５５では、計算された月数ｋが３月未満であるかの判断が行なわれ、３月未満であると判断された場合、ｋ＝３として（Ｓ５６）、Ｓ５７の処理に移り、３月未満ではないと判断された場合、そのままＳ５７の処理に移る。
【０１０６】
Ｓ５７では、ｋか月以上前の見積書データを削除し、その後、学習データのレコード数がＭ件（Ｍは定数）以上あるかの判断が行なわれ（Ｓ５８）、学習データのレコード数がＭ件（Ｍは定数）以上あると判断された場合、Ｍ件を超える学習データを古いものを優先して削除し（Ｓ５９）、夜間バッチ処理を終了する。Ｓ５８において学習データのレコード数がＭ件（Ｍは定数）以上ないと判断された場合には、学習データを削除することなく、夜間バッチ処理を終了する。
Ｃ．  効果
従って、実施形態の商品選択候補推定システムによれば、既に入力欄に入力された商品に関する情報を考慮して、商品に関する情報の候補商品情報を推定することができるので、ユーザが見積書を作成する際の作業負荷を低減することができ、作業効率を向上することができる。
【０１０７】
また、学習データを使用して、候補商品情報を推定することができるので、的確な候補商品情報を推定することができる。
【０１０８】
さらに、学習データから所定の計算式を使用して優先度情報を算出することにより、候補商品情報を推定しているので、候補商品情報の決定に設計者の意図も反映させることが容易であり、その結果、ユーザと設計者との双方にとって、最適な候補商品情報を提示することが可能となる。
Ｄ．  変形例
１．  上述の実施形態では見積書を例にとり説明したがこれに限られるものではなく、請求書、契約書、注文書等の商品や項目などの情報を入力欄に入力して書類を作成する際に、入力欄に入力される候補情報を推定する候補情報推定装置に適用することができる。
【０１０９】
２．  実施形態では、入力欄が列方向に配置されており、対象入力欄よりも上の行の入力欄に入力された商品に関する情報を参照して、候補商品情報を決定する場合について説明したが、入力欄が行方向に配置されており、対象入力欄よりも前の列の入力欄に入力された商品に関する情報を参照して、候補商品情報を決定しても良い。
【０１１０】
本発明のいくつかの実施形態を説明したが、これらの実施形態は、例として提示したものであり、発明の範囲を限定することは意図していない。これら新規な実施形態は、その他の様々な形態で実施されることが可能であり、発明の要旨を逸脱しない範囲で、種々の省略、置き換え、変更を行うことができる。これら実施形態やその変形は、発明の範囲や要旨に含まれるとともに、特許請求の範囲に記載された発明とその均等の範囲に含まれる。
【符号の説明】
【０１１１】
１…ネットワーク、２…アクセスポイント、３…基地局、Ｓ…携帯型情報機器、４…サーバ、１１…バス、１２…ＣＰＵ、１３…通信部、１４…メモリ、１５…記憶装置、２１…ＯＳ、２２…見積書作成プログラム、２３…データベース、３０１…カウント数算出部、３０２…優先度算出部、３０３…検索部、３０４…点数化部、３０５…集計部、３０６…候補決定部、３０７…候補通知部。
【図１】
2019109865.tif 000003
【図２】
2019109865.tif 000004
【図３】
2019109865.tif 000005
【図４】
2019109865.tif 000006
【図５】
2019109865.tif 000007
【図６】
2019109865.tif 000008
【図７】
2019109865.tif 000009
【図８】
2019109865.tif 000010
【図９】
2019109865.tif 000011
【図１０】
2019109865.tif 000012
【図１１】
2019109865.tif 000013
【図１２】
2019109865.tif 000014
【図１３】
2019109865.tif 000015
【図１４】
2019109865.tif 000016
【図１５】
2019109865.tif 000017
【図１６】
2019109865.tif 000018
【図１７】
2019109865.tif 000019
【図１８】
2019109865.tif 000020
【手続補正書】
【提出日】平成30年12月11日(2018.12.11)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
列方向に配置された複数の入力欄に商品に関する情報を入力し、前記商品に関する情報が入力された行の次の行の入力欄に入力される商品に関する情報の候補商品情報を推定する商品選択候補推定装置において、
第１商品に関する情報と、前記第１商品に関する情報が入力された行より下の行の入力欄に入力された第２商品に関する情報とを有する組を複数含む学習データを記憶する学習データ記憶部と、
前記候補商品情報が推定される対象入力欄の行よりも上の範囲の行の推定対象入力欄に入力された商品に関する情報、及び前記学習データ記憶部に記憶された学習データを使用して、前記対象入力欄に入力される前記候補商品情報を推定する商品候補推定部と
を具備する、商品選択候補推定装置。
【請求項２】
前記商品候補推定部は、
前記対象入力欄の行よりも上の範囲の行の推定対象入力欄に入力された商品に関する情報をキーとして、前記学習データ記憶部に記憶された学習データの第１商品に関する情報を前記上の範囲の行毎に検索する検索部と、
前記検索部により検索された前記学習データ記憶部に記憶された学習データの第１商品に関する情報を所定の計算式に基づいて、前記検索された第１商品に関する情報と組となる第２商品に関する情報毎かつ前記上の範囲の行毎に、点数化する点数化部と、
前記点数化部により前記検索された第１商品に関する情報と組となる第２商品に関する情報毎かつ前記上の範囲の行毎に点数化された前記第１商品に関する情報の点数を、前記第１商品に関する情報と組となる第２商品に関する情報毎に集計する集計部と、
前記集計部により前記第２商品に関する情報毎に集計された点数に基づいて、前記第１商品に関する情報と組となる第２商品に関する情報から前記対象入力欄に入力される前記候補商品情報を決定する候補決定部と
を具備する、請求項１記載の商品選択候補推定装置。
【請求項３】
前記所定の計算式は、前記学習データの前記第１商品に関する情報が入力された行と、前記第１商品に関する情報と組となる第２商品に関する情報が入力された行との距離のパラメータを含む、請求項２記載の商品選択候補推定装置。
【請求項４】
前記所定の計算式は、前記上の範囲の行数のパラメータを含む、請求項２記載の商品選択候補推定装置。
【請求項５】
前記商品候補推定部は、前記対象入力欄が最初の行の場合、前記学習データ記憶部に記憶された前記第１商品に関する情報の商品に関する情報毎にカウントされた数と、前記第２商品に関する情報の前記商品に関する情報毎にカウントされた数とに基づいて、前記商品に関する情報毎に優先度を算出し、前記商品に関する情報毎に算出された優先度に基づいて前記候補商品情報を推定する、請求項１記載の商品選択候補推定装置。
【請求項６】
第１商品に関する情報と、前記第１商品に関する情報が入力された行より下の行の入力欄に入力された第２商品に関する情報とを有する組を複数含む学習データを記憶する学習データ記憶部を具備し、
列方向に配置された複数の入力欄に商品に関する情報を入力し、前記商品に関する情報が入力された行の次の行の入力欄に入力される商品に関する情報の候補商品情報を推定する商品選択候補推定装置における商品選択候補推定方法において、
前記候補商品情報が推定される対象入力欄の行よりも上の範囲の行の推定対象入力欄に入力された商品に関する情報、及び前記学習データ記憶部に記憶された学習データを使用して、前記対象入力欄に入力される前記候補商品情報を推定し、
前記推定された候補商品情報をクライアントに送信する、
商品選択候補推定方法。
【請求項７】
請求項６記載の商品選択候補推定方法を前記商品選択候補推定装置に実行させるためのプログラム。