図1は、本実施形態に係る情報処理システム1の構成を示す図である。
図1に示すように、情報処理システム1は、複数の店舗システム2を備える。店舗システム2は、スーパーマーケットや、コンビニエンスストア、デパート、飲食店等の店舗に用いられるシステムである。店舗は、商品の提供が行われ、商品の提供に応じて、顧客による会計が行われる施設であればよい。本実施形態において、「商品」は、物体として顧客に引き渡される商品だけでなく、顧客に提供されるサービスや、顧客に提供される飲食物等、対価と引き換えに顧客に提供される対象を意味する。
店舗システム2は、顧客が購入した商品に応じた会計を行う機能、会計に応じてレシートRを発行する機能等を備える。
店舗システム2が適用される店舗には、顧客が会計を行なうレジカウンターLが設けられる。図1では、1の店舗に複数のレジカウンターLが設けられる場合を示しているが、1の店舗に設けられるレジカウンターLは、1つでもよい。レジカウンターLには、印刷媒体の一態様であるロール紙に印刷する機能を有する印刷装置3が設けられる。また、レジカウンターLには、印刷装置3と無線通信可能に接続され、印刷装置3を制御するPOS端末4が設けられる。印刷装置3、及びPOS端末4の詳細については、後述する。
レジカウンターLにおける会計に際し、レジ担当者は、印刷装置3に接続されたバーコードリーダーBRで商品や商品の包装に付されたバーコードを読み取り、また、POS端末4に対して会計に対応する入力を行う。印刷装置3は、バーコードリーダーBRによる読み取りに基づくデータを、POS端末4に送信する。POS端末4は、印刷装置3から受信したバーコードリーダーBRの読み取りに基づくデータや、レジ担当者による会計に対応する入力に基づいて、印刷装置3を制御し、印刷装置3にレシートRを発行させる。印刷装置3により発行されたレシートRは、レジ担当者により顧客に引き渡される。
店舗システム2は、ローカルエリアネットワークLNを備える。
ローカルエリアネットワークLNには、印刷装置3、及び管理装置5が接続される。管理装置5の詳細については、後述する。
また、ローカルエリアネットワークLNには、通信装置6が接続される。通信装置6は、ローカルエリアネットワークLNと、インターネット、電話網、その他の通信網を含むグローバルネットワークGNとを接続するインターフェース装置である。通信装置6は、モデム又は、ONU(Optical Network Unit)に係る機能、ルーター機能、NAT(Network Address Translation)機能、及び、DHCP(Dynamic Host Configuration Protocol)サーバー機能等を有する。通信装置6は、ローカルエリアネットワークLNに接続された機器と、グローバルネットワークGNに接続された機器との間で行われる通信に際し、機器間で送受信されるデータを転送する。なお、図1では、通信装置6を1つのブロックで表現するが、通信装置6は、機能に応じた複数の装置を有する構成でもよい。
印刷装置3、及び管理装置5は、通信装置6を介して、グローバルネットワークGNにアクセス可能である。
グローバルネットワークGNには、制御サーバー7が接続される。制御サーバー7は、情報処理装置に相当する。制御サーバー7は、印刷装置3、及び管理装置5と通信可能なサーバー装置である。すなわち、制御サーバー7は、クライアントからの要求等をトリガーとして、所定の演算処理を実行する。制御サーバー7は、必要に応じて、演算処理の結果に基づくデータを、クライアントに送信する。なお、図1では、制御サーバー7を、1つのブロックによって表現するが、これは制御サーバー7が単一のサーバー装置により構成されることを意味するものではない。例えば、制御サーバー7は、複数のサーバー装置を含んで構成されたものでもよい。すなわち、制御サーバー7は、後述する各種処理を実行可能な構成であれば、その形態を問わない。
図2は、情報処理システム1が備える各装置の機能的構成を示すブロック図である。
POS端末4は、例えば、前面の広い領域にタッチパネル42が設けられたタブレット型の端末装置である。なお、POS端末4は、デスクトップ型等の据え置き型の端末でもよい。POS端末4は、レジカウンターLにおける会計に際し、会計に関する各種処理を実行して印刷装置3を制御するホストコンピューターとして機能する。
図2に示すように、POS端末4は、POS端末制御部40と、POS端末通信部41と、タッチパネル42とを備える。
POS端末制御部40は、CPUやMPU等のプログラムを実行するプロセッサーであるPOS端末プロセッサー400、及び、POS端末記憶部410を備え、POS端末4の各部を制御する。POS端末制御部40は、POS端末プロセッサー400が、POS端末記憶部410に記憶された制御プログラム410Aを読み出して処理を実行するように、ハードウェア、及びソフトウェアの協働により各種処理を実行する。POS端末4には、所定のアプリケーションが事前にインストールされる。POS端末プロセッサー400が、この所定のアプリケーション、この所定のアプリケーションに付随するプログラム、その他のプログラムをPOS端末記憶部410から読み出して実行することにより、POS端末制御部40は、アプリケーション実行部4000として機能する。アプリケーション実行部4000については、後述する。
POS端末記憶部410は、POS端末プロセッサー400が実行するプログラムや、POS端末プロセッサー400により処理されるデータを記憶する記憶領域を有する。POS端末記憶部410は、POS端末プロセッサー400が実行する制御プログラム410A、その他の各種データを記憶する。POS端末記憶部410は、プログラムやデータを不揮発的に記憶する不揮発性記憶領域を有する。また、POS端末記憶部410は、揮発性記憶領域を備え、POS端末プロセッサー400が実行するプログラムや処理対象のデータを一時的に記憶するワークエリアを構成してもよい。
POS端末通信部41は、所定の通信規格に従った通信ハードウェアにより構成され、POS端末制御部40の制御で、印刷装置3と通信する。なお、通信ハードウェアとしては、通信回路や、通信ポート、通信基板、通信コネクター等のハードウェアが一例として挙げられる。本実施形態のPOS端末通信部41は、所定の無線通信の規格に従って、印刷装置3と通信する。POS端末4と印刷装置3との間で行われる無線通信の通信規格は、アドホックモードに対応する無線LANに係る規格や、インフラストラクチャーモードに対応する無線LANに係る規格、Bluetooth等の近距離無線通信に係る規格等、どのような規格でもよい。Bluetoothは、登録商標である。なお、POS端末通信部41は、所定の有線通信の規格に従って、印刷装置3と通信する構成でもよい。
タッチパネル42は、液晶表示パネル等の表示パネルと、表示パネルに重ねて、或いは一体に設けられたタッチセンサーとを備える。表示パネルは、POS端末制御部40の制御で、各種画像を表示する。タッチセンサーは、タッチ操作を検出し、POS端末制御部40に出力する。POS端末制御部40は、タッチセンサーからの入力に基づいて、タッチ操作に対応する処理を実行する。
印刷装置3は、ロール紙を収容し、収容したロール紙にライン型のサーマルヘッドでドットを形成して文字や画像等を印刷するサーマルプリンターである。なお、本実施形態に係る印刷装置3の印刷方式はサーマル方式であるが、印刷装置3の印刷方式は、サーマル方式に限らず、インクジェット方式等の他の印刷方式でもよい。また、印刷装置3の印刷ヘッドは、ライン型に限らず、シリアル型でもよい。
図2に示すように、印刷装置3は、印刷装置制御部30と、印刷部31と、印刷装置通信部32と、印刷装置ネットワーク通信部33と、デバイス通信部34とを備える。
印刷装置制御部30は、CPUやMPU等のプログラムを実行するプロセッサーである印刷装置プロセッサー300、及び、印刷装置記憶部310を備え、印刷装置3の各部を制御する。印刷装置制御部30は、印刷装置プロセッサー300が、印刷装置記憶部310に記憶された制御プログラム310Aを読み出して処理を実行するように、ハードウェア、及びソフトウェアの協働により各種処理を実行する。
印刷装置記憶部310は、印刷装置プロセッサー300が実行するプログラムや、印刷装置プロセッサー300により処理されるデータを記憶する記憶領域を有する。印刷装置記憶部310は、印刷装置プロセッサー300が実行する制御プログラム310A、その他の各種データを記憶する。印刷装置記憶部310は、プログラムやデータを不揮発的に記憶する不揮発性記憶領域を有する。また、印刷装置記憶部310は、揮発性記憶領域を備え、印刷装置プロセッサー300が実行するプログラムや処理対象のデータを一時的に記憶するワークエリアを構成してもよい。
印刷部31は、印刷装置3の筐体に収容されたロール紙を搬送する搬送ローラーを備えた搬送機構や、サーマルヘッドによってロール紙にドットを形成して画像を印刷する印刷機構、ロール紙を所定の位置で切断するカッターを備えた切断機構等のロール紙への印刷に関する各種機構を備える。印刷部31は、印刷装置制御部30の制御で、搬送機構によりロール紙を搬送し、印刷機構によりロール紙にレシートRに係る画像を印刷し、切断機構により所定の位置でロール紙を切断して、レシートRを発行する。
印刷装置通信部32は、所定の通信規格に従った通信ハードウェアにより構成され、印刷装置制御部30の制御で、POS端末4と通信する。本実施形態の印刷装置通信部32は、所定の無線通信の規格に従って、POS端末4と通信する。なお、印刷装置通信部32は、所定の有線通信の規格に従って、POS端末4と通信する構成でもよい。
印刷装置ネットワーク通信部33は、所定の通信規格に従ったネットワークカード等の無線通信する通信ハードウェアを備え、印刷装置制御部30の制御により、グローバルネットワークGNと接続する機器と所定の通信規格に従って通信する。グローバルネットワークGNと接続する機器には、管理装置5と制御サーバー7とが含まれる。印刷装置ネットワーク通信部33が通信に使用する通信規格は、HTTPや、WebSocket等が例として挙げられる。
デバイス通信部34は、USBの規格に従ったポートや、USB以外のシリアル通信規格に従ったポート、パラレル通信規格に従ったポート、有線LANに係る通信規格に従ったポート、その他ポートを有するインターフェースボードを備える。各ポートには、デバイスが接続可能である。デバイス通信部34は、印刷装置制御部30の制御で、ポートを介して印刷装置3に接続されたデバイスと通信する。なお、デバイス通信部34が、無線通信機能を備え、デバイスと無線通信する構成でもよい。
印刷装置3には、デバイスとして、バーコードリーダーBR、カスタマーディスプレーCD、及び、自動釣銭機JTが接続される。
バーコードリーダーBRは、商品や、商品の包装等に付されたバーコードを読み取り、読取結果を示すデータをデバイス通信部34に出力する。デバイス通信部34は、バーコードリーダーBRから入力されたデータを、印刷装置制御部30に出力する。
カスタマーディスプレーCDは、印刷装置制御部30の制御で、会計に関する情報を表示する。カスタマーディスプレーCDに表示された情報は、レジカウンターLで会計を行う顧客が視認できる。
自動釣銭機JTは、顧客から受け取った貨幣を投入する貨幣受取口と、釣銭に係る貨幣を排出する釣銭排出口とを備え、印刷装置制御部30の制御で、貨幣受取口を介して貨幣が投入された場合、対応する釣銭を釣銭排出口から排出する。
管理装置5は、店舗システム2が適用された店舗を運営する主体が管理する装置である。管理装置5は、デスクトップ型の装置でもよいし、タブレット型の装置でよいし、ラップトップ型の装置でもよい。管理装置5は、店舗の従業員や、店舗を運営する会社の従業員等の操作に権限を有する者により操作される。本実施形態では、図1に示すように管理装置5が1の店舗に1台設けられる場合を例示する。管理装置5は、制御サーバー7と通信して、制御サーバー7から所定のサービスの提供を受け、サービスに対応した動作を行う。例えば、管理装置5は、制御サーバー7から所定のサービスの提供を受け、ある店舗の売上状況や、ある店舗の従業員の勤務状況等を管理する。
管理装置5は、管理装置制御部50と、管理装置通信部51と、管理装置表示部52と、管理装置入力部53とを備える。
管理装置制御部50は、CPUやMPU等のプログラムを実行するプロセッサーである管理装置プロセッサー500、及び、管理装置記憶部510を備え、管理装置5の各部を制御する。管理装置制御部50は、管理装置プロセッサー500が、管理装置記憶部510に記憶された制御プログラム510Aを読み出して処理を実行するように、ハードウェア、及びソフトウェアの協働により各種処理を実行する。管理装置5には、ブラウザーが事前にインストールされる。管理装置プロセッサー500が、ブラウザー、その他の付随するプログラムを管理装置記憶部510から読み出して実行することにより、管理装置制御部50は、ブラウザー実行部5000として機能する。ブラウザー実行部5000については、後述する。
管理装置記憶部510は、管理装置プロセッサー500が実行するプログラムや、管理装置プロセッサー500により処理されるデータを記憶する記憶領域を有する。管理装置記憶部510は、管理装置プロセッサー500が実行する制御プログラム510A、その他の各種データを記憶する。管理装置記憶部510は、プログラムやデータを不揮発的に記憶する不揮発性記憶領域を有する。また、管理装置記憶部510は、揮発性記憶領域を備え、管理装置プロセッサー500が実行するプログラムや処理対象のデータを一時的に記憶するワークエリアを構成してもよい。
管理装置通信部51は、所定の通信規格に従ったネットワークカード等の無線通信する通信ハードウェアを備え、管理装置制御部50の制御により、グローバルネットワークGNと接続する機器と所定の通信規格に従って通信する。グローバルネットワークGNと接続する機器には、制御サーバー7とが含まれる。管理装置通信部51が通信に使用する通信規格は、HTTPや、WebSocket等が例として挙げられる。
管理装置表示部52は、液晶表示パネル等の表示パネルを備え、管理装置制御部50の制御に従って、各種情報を表示する。
管理装置入力部53は、管理装置5に設けられた操作スイッチや、管理装置5と接続したキーボード、タッチパネル等の入力手段を備え、管理装置5を操作するユーザーの入力手段に対する操作を検出し、管理装置制御部50に出力する。管理装置制御部50は、管理装置入力部53からの入力に基づいて、入力手段に対する操作に対応する処理を実行する。
制御サーバー7は、サーバー制御部70と、サーバーネットワーク通信部71と、サーバー表示部72と、サーバー入力部73とを備える。サーバーネットワーク通信部71は、通信部に相当する。サーバー制御部70は、制御部に相当する。
サーバー制御部70は、CPUやMPU等のプログラムを実行するプロセッサーであるサーバープロセッサー700、及び、サーバー記憶部710を備え、制御サーバー7の各部を制御する。サーバー制御部70は、サーバープロセッサー700が、サーバー記憶部710に記憶された制御プログラム710Aを読み出して処理を実行するように、ハードウェア、及びソフトウェアの協働により各種処理を実行する。
以下の説明では、サーバープロセッサー700が制御プログラム710Aを実行することにより、サーバー制御部70の各種の機能を実現する構成例を説明する。
サーバー記憶部710は、サーバープロセッサー700が実行するプログラムや、サーバープロセッサー700により処理されるデータを記憶する記憶領域を有する。サーバー記憶部710は、サーバープロセッサー700が実行する制御プログラム710A、解析プログラム群管理データベース710B、解析データ管理データベース710C、その他の各種データを記憶する。解析プログラム群管理データベース710B、及び解析データ管理データベース710Cの詳細については、後述する。サーバー記憶部710は、プログラムやデータを不揮発的に記憶する不揮発性記憶領域を有する。また、サーバー記憶部710は、揮発性記憶領域を備え、サーバープロセッサー700が実行するプログラムや処理対象のデータを一時的に記憶するワークエリアを構成してもよい。
サーバーネットワーク通信部71は、所定の通信規格に従ったネットワークカード等の無線通信する通信ハードウェアを備え、サーバー制御部70の制御により、グローバルネットワークGNと接続する機器と所定の通信規格に従って通信する。ここでいうグローバルネットワークGNと接続する機器には、印刷装置3、及び管理装置5が含まれる。サーバーネットワーク通信部71が通信に使用する通信規格は、HTTPや、WebSocket等が例として挙げられる。
サーバー表示部72は、表示パネルを備え、サーバー制御部70の制御で、表示パネルに各種情報を表示する。
サーバー入力部73は、キーボード、マウス、その他の入力手段を備え、入力手段に対するユーザーの操作を検出し、サーバー制御部70に出力する。サーバー制御部70は、サーバー入力部73からの入力に基づいて、入力手段に対するユーザーの操作に対応する処理を実行する。
次に、レジカウンターLで顧客の会計が行われた場合の、POS端末4、印刷装置3、及び制御サーバー7の動作について説明する。
図3は、レジカウンターLで会計が行われた場合のPOS端末4、印刷装置3、及び制御サーバー7の動作を示すフローチャートである。図3では、フローチャートFAがPOS端末4の動作を示し、フローチャートFBが印刷装置3の動作を示し、フローチャートFCが制御サーバー7の動作を示す。
図3のフローチャートFAに示すように、POS端末4のアプリケーション実行部4000は、顧客の会計に応じて会計処理を実行し、会計処理に基づいて印刷データIDを生成する(ステップSA1)。
ステップSA1の処理について詳述すると、アプリケーション実行部4000は、タッチパネル42に、会計に対応する入力が可能なユーザーインターフェースを表示させる。アプリケーション実行部4000は、タッチパネル42に対するレジ担当者の入力や、顧客の会計に伴う印刷装置3からの入力に応じて、会計でなされた決済に関する決済情報を生成する。決済情報の具体的な内容については、後に、例を挙げて説明する。次いで、アプリケーション実行部4000は、生成した決済情報に基づいて、印刷データIDを生成する。印刷データIDは、所定のレイアウトで決済情報を印刷して、レシートRの発行を指示するデータである。印刷データIDは、印刷装置3のコマンド体系に従った複数の制御コマンドを含んで構成される。
図4は、印刷データIDの一例を示す図である。
図4に示すように、印刷データIDは、グラフィック画像印刷指示コマンドCM1と、文字列印刷関連コマンド群GMと、改行コマンドLFと、カットコマンドCM4とを含む。また、文字列印刷関連コマンド群GMは、文字列装飾コマンドCM2と、文字列印刷指示コマンドCM3とを含む。
グラフィック画像印刷指示コマンドCM1は、専用の命令コードと、ビットマップデータ等のイメージデータとを含み、イメージデータに基づくグラフィック画像の印刷を指示する制御コマンドである。イメージデータとは、ドットマトリックス状に配置されたドットについて、各ドットの色に関する情報を保持するデータである。グラフィック画像は、フォントデータに基づいて印刷される画像ではなく、POS端末4等のホストコンピューターとして機能する装置から受信したイメージデータに基づいて印刷される画像である。後述するロゴ情報J1は、グラフィック画像に相当する。
文字列印刷関連コマンド群GMに含まれる文字列印刷指示コマンドCM3は、1行分の文字列の印刷を指示する制御コマンドである。文字列印刷指示コマンドCM3は、専用の命令コードと、印刷を指示する文字列の情報と、を含む。印刷を指示する文字列の情報とは、文字列を構成する1又は複数の文字の文字コードの組み合わせである。文字コードは、例えば1バイトのいわゆるアスキーコードなどで示される。文字列印刷関連コマンド群GMに含まれる文字列装飾コマンドCM2は、文字列印刷指示コマンドCM3によって印刷が指示された文字列に施す装飾を指定する制御コマンドである。文字列に施す装飾としては、例えば、右寄せや、中央寄せ、左寄せ、太字化、アンダーラインの付加、強調点の付加、白黒の反転、回転、拡大、縮小等が例として挙げられる。
印刷装置3の印刷装置記憶部310は、印刷可能な文字のそれぞれのフォントデータを記憶する。印刷装置3の印刷装置制御部30は、1の文字列印刷関連コマンド群GMに基づいて文字列を印刷する場合、以下の処理を実行する。
まず、印刷装置制御部30は、所定の手段で、当該1の文字列印刷関連コマンド群GMに含まれる文字列印刷指示コマンドCM3に含まれる文字コードのそれぞれを対応するフォントデータに変換する。次いで、印刷装置制御部30は、フォントデータのそれぞれを、当該1の文字列印刷関連コマンド群GMに含まれる文字列装飾コマンドCM2が指定する装飾を施したフォントデータにし、改行コマンドLFに基づき、所定の記憶領域に構成された画像バッファーに行単位の印刷順で展開する。次いで、印刷装置制御部30は、画像バッファーに展開したフォントデータのそれぞれを読み出して、印刷部31を制御し、1行分の文字列を印刷する。
改行コマンドLFは、改行を指示するコマンドである。カットコマンドCM4は、ロール紙の切断を指示するコマンドである。
図3のフローチャートFAに示すように、ステップSA1で印刷データIDを生成した後、アプリケーション実行部4000は、POS端末通信部41を制御して、生成した印刷データIDを、印刷装置3に送信する(ステップSA2)。
図3のフローチャートFBに示すように、印刷装置3の印刷装置制御部30は、印刷装置通信部32を制御して、印刷データIDを受信する(ステップSB1)。次いで、印刷装置制御部30は、ステップSB1で受信した印刷データIDに基づいて、印刷部31を制御して、レシートRを発行する(ステップSB2)。発行されたレシートRは、顧客に引き渡される。
印刷データIDに基づいて印刷装置3により発行されるレシートRの一例を図5に示す。
図5で例示するレシートRには、先頭に、店舗の名称を図案化したロゴ情報J1が印刷される。ロゴ情報J1は、上述したグラフィック画像印刷指示コマンドCM1に基づいて印刷される。
レシートRにおいて、ロゴ情報J1の下方は、店舗の住所を文字列で表す店舗住所情報J2が一行で印刷される。店舗住所情報J2は、中央寄せに係る装飾を指定する文字列装飾コマンドCM2と、店舗の住所を表す文字列の印刷を指示する文字列印刷指示コマンドCM3とを含む文字列印刷関連コマンド群GMに基づいて印刷される。
レシートRにおいて、店舗住所情報J2の一行下には、店舗の電話番号を文字列で表す店舗電話番号情報J3が一行で印刷される。店舗電話番号情報J3は、中央寄せに係る装飾を指定する文字列装飾コマンドCM2と、店舗の電話番号を表す文字列の印刷を指示する文字列印刷指示コマンドCM3とを含む文字列印刷関連コマンド群GMに基づいて印刷される。
レシートRにおいて、店舗電話番号情報J3の一行下には、第1エリア分割情報BK1が印刷される。第1エリア分割情報BK1は、「-」の文字が一行内で、所定の個数、連続して構成された文字列である。レシートRは、1つ目の第1エリア分割情報BK1によって印刷領域が区切られ、1つ目の第1エリア分割情報BK1よりも上方がエリア分けされる。以下、レシートRにおいて、第1エリア分割情報BK1よりも上方のエリアを「エリアAA1」とする。エリアAA1には、ロゴ情報J1、店舗住所情報J2、及び、店舗電話番号情報J3が含まれる。
レシートRにおいて、1つ目の第1エリア分割情報BK1の一行下には、レシート識別関連情報J4が印刷される。レシート識別関連情報J4は、レシートを識別する識別情報を文字列で表すレシート識別情報J42を有する。レシート識別情報J42の値は、レシートRごとに異なる。また、レシート識別関連情報J4は、レシート識別情報J42の同一行において、レシート識別情報J42の左方に印刷され、レシート識別情報J42がレシートを識別する識別情報であることを明示する情報を文字列で表すレシート識別明示情報J41を有する。図5に示すように、レシートRに係るレシート識別明示情報J41は、「Check♯:」の文字列からなる情報である。レシート識別関連情報J4は、中央寄せに係る装飾を指定する文字列装飾コマンドCM2と、以下の文字列印刷指示コマンドCM3とを含む文字列印刷関連コマンド群GMに基づいて印刷される。文字列印刷指示コマンドCM3は、レシート識別明示情報J41を表す文字列と、1つの空白文字と、レシート識別情報J42を表す文字列とが連続する文字列の印刷を指示する制御コマンドである。
レシートRにおいて、レシート識別関連情報J4の一行下には、レシートRが発行された日時を文字列で表す発行日時情報J5が印刷される。発行日時情報J5は、印刷装置3がレシートRを発行した日にちを文字列で表す日にち情報J51と、印刷装置3がレシートRを発行した時間を文字列で表す時間情報J52とを有する。発行日時情報J5は、中央寄せに係る装飾を指定する文字列装飾コマンドCM2と、レシートRが発行された日時を表す文字列の印刷を指示する文字列印刷指示コマンドCM3とを含む文字列印刷関連コマンド群GMに基づいて印刷される。ここでの文字列印刷指示コマンドCM3は、日にち情報J51を表す文字列と、1つの空白文字と、時間情報J52を表す文字列とが連続する文字列の印刷を指示する制御コマンドである。
発行日時情報J5の一行下には、第1エリア分割情報BK1が印刷される。レシートRは、1つ目の第1エリア分割情報BK1と、2つ目の第1エリア分割情報BK1とによって印刷領域が区切られ、これら情報で囲まれた領域がエリア分けされる。以下、レシートRにおいて、1つ目の第1エリア分割情報BK1と、2つ目の第1エリア分割情報BK1とで囲まれたエリアを「エリアAA2」とする。
レシートRにおいて、2つ目の第1エリア分割情報BK1の一行下には、商品情報J6が印刷される。商品情報J6は、顧客が購入した商品に関する情報である。商品情報J6は、顧客が購入した商品の種類ごとに、レシートRに印刷される。従って、例えば、顧客が購入した商品の種類が3つである場合は、3つの種類の商品のそれぞれに対応する3つの商品情報J6が印刷される。レシートRに複数の商品情報J6が印刷される場合、複数の商品情報J6は、異なる行に、1行ずつ連続して印刷される。
商品情報J6は、購入数量情報J61と、商品名情報J62と、単価情報J63とを有する。購入数量情報J61、商品名情報J62、及び、単価情報J63は、同一行に印刷される。購入数量情報J61は、対応する商品の購入数量を文字列で表す情報である。商品名情報J62は、対応する商品の名称を文字列で表す情報である。単価情報J63は、対応する商品の単価を文字列で表す情報である。
商品情報J6は、左寄せに係る装飾を指定する文字列装飾コマンドCM2と、以下の文字列印刷指示コマンドCM3とを含む文字列印刷関連コマンド群GMに基づいて印刷される。文字列印刷指示コマンドCM3は、購入数量情報J61を表す文字列と、1つの空白文字と、商品名情報J62を表す文字列と、1個又は複数個の空白文字と、単価情報J63を表す文字列とが連続する文字列の印刷を指示する制御コマンドである。商品名情報J62を表す文字列と、単価情報J63を表す文字列との間に挿入される空白文字の個数は、単価情報J63の位置が、「行」の末尾に位置するように、調整される。
レシートRにおいて、最下部に印刷される商品情報J6の一行下には、第2エリア分割情報BK2が印刷される。第2エリア分割情報BK2は、「~」の文字が一行内で、所定の個数、連続して構成された文字列である。レシートRは、2つ目の第1エリア分割情報BK1と、1つ目の第2エリア分割情報BK2とによって印刷領域が区切られ、これら情報で囲まれた領域がエリア分けされる。以下、レシートRにおいて、2つ目の第1エリア分割情報BK1と、1つ目の第2エリア分割情報BK2とで囲まれたエリアを「エリアAA3」とする。
レシートRにおいて、1つ目の第2エリア分割情報BK2の一行下には、小計金額関連情報J7が印刷される。小計金額関連情報J7は、小計金額を文字列で表す小計金額情報J72を有する。また、小計金額関連情報J7は、小計金額情報J72の同一行において、小計金額情報J72の左方に印刷され、小計金額情報J72が小計金額を示す情報であることを明示する情報を文字列によって表す小計金額明示情報J71を有する。図5に示すように、レシートRに係る小計金額明示情報J71は、8個の大文字のアルファベットの文字列「SUBTOTAL」からなる文字列である。
小計金額関連情報J7は、左寄せに係る装飾を指定する文字列装飾コマンドCM2と、以下の文字列印刷指示コマンドCM3とを含む文字列印刷関連コマンド群GMに基づいて印刷される。文字列印刷指示コマンドCM3は、小計金額明示情報J71を表す文字列と、1個又は複数個の空白文字と、小計金額情報J72を表す文字列とが連続する文字列の印刷を指示する制御コマンドである。小計金額明示情報J71を表す文字列と、小計金額情報J72を表す文字列との間に挿入される空白文字の個数は、小計金額情報J72の位置が、「行」の末尾に位置するように、調整される。
レシートRにおいて、小計金額関連情報J7の一行下には、税関連情報J8が印刷される。税関連情報J8は、税額を文字列で表す税額情報J82を有する。また、税関連情報J8は、税額情報J82の同一行において、税額情報J82の左方に印刷され、税額情報J82が税額を示す情報であることを明示する情報を文字列によって表す税明示情報J81を有する。図5に示すように、レシートRに係る税明示情報J81は、3個の大文字のアルファベットの「TAX」からなる文字列である。
税関連情報J8は、左寄せに係る装飾を指定する文字列装飾コマンドCM2と、以下の文字列印刷指示コマンドCM3とを含む文字列印刷関連コマンド群GMに基づいて印刷される。文字列印刷指示コマンドCM3は、税明示情報J81を表す文字列と、1個又は複数個の空白文字と、税額情報J82を表す文字列とが連続する文字列の印刷を指示する制御コマンドである。税明示情報J81を表す文字列と、税額情報J82を表す文字列との間に挿入される空白文字の個数は、税額情報J82の位置が、「行」の末尾に位置するように、調整される。
レシートRにおいて、税関連情報J8の一行下には、合計金額関連情報J9が印刷される。合計金額関連情報J9は、合計金額を文字列で表す合計金額情報J92を有する。また、合計金額関連情報J9は、合計金額情報J92の同一行において、合計金額情報J92の左方に印刷され、合計金額情報J92が合計金額を示す情報であることを明示する情報を文字列によって表す合計金額明示情報J91を有する。図5に示すように、レシートRに係る合計金額明示情報J91は、5個の大文字のアルファベットの「TOTAL」からなる文字列である。
合計金額関連情報J9は、左寄せに係る装飾を指定する文字列装飾コマンドCM2と、以下の文字列印刷指示コマンドCM3とを含む文字列印刷関連コマンド群GMに基づいて印刷される。文字列印刷指示コマンドCM3は、合計金額明示情報J91と、1個又は複数個の空白文字と、合計金額情報J92を表す文字列とが連続する文字列の印刷を指示する制御コマンドである。合計金額明示情報J91を表す文字列と、合計金額情報J92を表す文字列との間に挿入される空白文字の個数は、合計金額情報J92の位置が、「行」の末尾に位置するように、調整される。以下、レシートRにおいて、第2エリア分割情報BK2よりも下方のエリアを「エリアAA4」とする。エリアAA4は、小計金額関連情報J7、税関連情報J8、及び、合計金額関連情報J9を含む。
以下の説明では、単価情報J63、小計金額情報J72、税額情報J82、及び合計金額情報J92を区別することなく総称する場合、金額情報といい、「J10」の符号を付す。
このように、図5に示すレシートRでは、以下のレイアウトで決済情報が印刷される。すなわち、エリアAA1には、ロゴ情報J1、店舗住所情報J2、及び、店舗電話番号情報J3がこの順番で印刷される。エリアAA2には、レシート識別関連情報J4、及び、発行日時情報J5がこの順番で印刷される。エリアAA3には、1又は複数の商品情報J6が印刷される。また、商品情報J6は、1行内で、右へ向かって購入数量情報J61、商品名情報J62、及び単価情報J63の順番で印刷される。エリアAA4には、小計金額関連情報J7、税関連情報J8、及び、合計金額関連情報J9がこの順番で印刷される。
図3のフローチャートFBの説明に戻り、ステップSB2でレシートRを発行した後、印刷装置制御部30は、印刷データIDに基づいて、印刷テキストデータITDを生成する(ステップSB3)。印刷テキストデータITDは、テキストデータに相当する。印刷テキストデータITDは、印刷データIDに基づいてロール紙に印刷される決済情報のうち、文字として印刷される決済情報が、テキストとして記述されたテキストデータである。以下、ステップSB3の処理について詳述する。
ステップSB3において、印刷装置制御部30は、印刷データIDから、文字列の印刷に関する制御コマンドである文字列印刷指示コマンドCM3、及び、改行コマンドLFを抽出する。次いで、印刷装置制御部30は、抽出した制御コマンドに基づいて、レシートRに文字として印刷される決済情報がテキストとして記述された印刷テキストデータITDを生成する。ここで、印刷装置制御部30は、印刷テキストデータITDに、印刷で行われる改行が反映された状態で決済情報を記述する。また、印刷装置制御部30は、印刷テキストデータITDに、文字列装飾コマンドCM2で指定された装飾を反映しない状態で決済情報を記述する。従って、文字列装飾コマンドCM2によって、文字列に施す装飾として、中央寄せ、右寄せが指示された場合でも、印刷テキストデータITDへのテキストの記述に際し、これら装飾は反映されない。
図6は、図5で例示したレシートRに係る印刷データIDに基づいて生成される印刷テキストデータITDの内容を示す図である。図6と、図5との比較で明らかなとおり、印刷テキストデータITDには、レシートRに文字として印刷される決済情報が、印刷における順番、及び、印刷における改行を反映した状態でテキストとして記述される。
なお、ロゴ情報J1は、グラフィック画像であるため、印刷テキストデータITDには、記述されない。すなわち、文字コードに対応するフォントデータに基づいて印刷される文字以外の情報は、印刷テキストデータITDには記述されない。
図3のフローチャートFBに示すように、ステップSB3で印刷テキストデータITDを生成した後、印刷装置制御部30は、シリアル番号J11、店舗識別情報J12、ステップSB1で受信した印刷データID、及び、ステップSB3で生成した印刷テキストデータITDを、制御サーバー7に送信する(ステップSB4)。
シリアル番号J11は、印刷装置3の製造段階で、印刷装置3に一意に割り当てられる識別情報であり、予め印刷装置記憶部310の所定の記憶領域に記憶される。ステップSB4において、印刷装置制御部30は、印刷装置記憶部310の所定の記憶領域に記憶されたシリアル番号J11を取得する。店舗識別情報J12は、印刷装置3が設けられた店舗を識別する識別情報であり、予め印刷装置記憶部310の所定の記憶領域に記憶される。ステップSB4において、印刷装置制御部30は、印刷装置記憶部310の所定の記憶領域に記憶された店舗識別情報J12を取得する。
なお、本実施形態では、印刷装置3が印刷データIDから印刷テキストデータITDを生成する構成を例示しているが、POS端末4が印刷テキストデータITDを生成する構成でもよい。この場合、印刷装置3は、ステップSB3の処理をスキップし、POS端末4から受信した印刷テキストデータITDを、シリアル番号J11、店舗識別情報J12、及び、印刷データIDと共に制御サーバー7に送信する。また、制御サーバー7が、印刷データIDを印刷装置3から取得し印刷テキストデータITDを生成する構成でもよい。
図3のフローチャートFCに示すように、制御サーバー7のサーバー制御部70は、サーバーネットワーク通信部71を制御して、印刷装置3が送信したシリアル番号J11、店舗識別情報J12、印刷データID、及び、印刷テキストデータITDを受信する(ステップSC1)。
次いで、サーバー制御部70は、解析プログラム群管理データベース710Bを参照し、ステップSC1で受信したシリアル番号J11の値と同一の値のシリアル番号J11が対応付けられた解析プログラム群KPGを取得する(ステップSC2)。
図7は、解析プログラム群管理データベース710Bの1件のレコードが有する情報を模式的に示す図である。
図7に示すように、解析プログラム群管理データベース710Bの1件のレコードは、シリアル番号J11と、解析プログラム群KPGとを有する。
図7では、解析プログラム群KPGは、第1解析プログラムKP1~第15解析プログラムKP15の15個の解析プログラムKPを有する。解析プログラムKPのそれぞれについては後述する。
図3のフローチャートFCの説明に戻り、サーバー制御部70は、取得した解析プログラム群KPGに基づいてテキストデータ解析処理を実行する(ステップSC3)。テキストデータ解析処理は、制御サーバー7にインストールされた制御プログラム710A、及び、制御プログラム710Aに付随するプログラムの機能により実行される。
テキストデータ解析処理は、印刷テキストデータITDから、決済情報に含まれる項目に対応する情報を表すテキストを印刷テキストデータITDから取得する処理である。以下では、項目に対応する情報を項目情報といい、印刷テキストデータITDから項目情報を表すテキストを取得することを、単に、印刷テキストデータITDから項目情報を取得すると表現する。テキストデータ解析処理は、印刷テキストデータITDから項目情報を検出、及び抽出し、必要に応じて、抽出した項目情報の表記形式をユーザーが活用可能な表記形式に変換することによって、印刷テキストデータITDから項目情報を取得する。なお、項目情報によっては、表記形式の変換が行われない項目情報と、表記形式の変換が行われる項目情報とがある。そのため、テキストデータ解析処理では、項目によって、最終的に取得される項目情報の表記形式が、印刷テキストデータITDから抽出した時点の表記形式である場合と、変換された表記形式である場合とがある。
本実施形態では、決済情報に含まれる項目として、顧客識別情報項目、会計割引情報項目、顧客人数情報項目、払戻有無情報項目、取消有無情報項目、会員情報項目、支払方法情報項目、発行日時情報項目、商品情報項目、レシート識別情報項目、販売方法情報項目、スタッフ情報項目、小計金額情報項目、税情報項目、及び、合計金額情報項目の15個の項目がある。これら項目については、後述する。
上述したように、本実施形態の解析プログラム群KPGは、複数の解析プログラムKPを有している。1の解析プログラムKPは、所定のスクリプト言語によって記述されたプログラムであり、記述された処理フローが示す解析ルールに沿って、1の項目について、印刷テキストデータITDから項目情報を取得する機能を有するプログラムである。解析ルールは、1の項目について、印刷テキストデータITDから対応する項目情報を取得するルールであり、少なくとも項目情報を印刷テキストデータITDから抽出する抽出ルールを含んでいる。したがって、解析プログラムKPには、少なくとも抽出ルールに従って項目情報を抽出する抽出プログラムが含まれる。なお、解析プログラムKPによっては、解析ルールに、抽出ルールに加えて抽出した項目情報の表記形式を変換する変換ルールが含まれる。この場合の解析プログラムKPには、抽出プログラムと、変換ルールに従って項目情報を変換する変換プログラムとを含まれる。
解析プログラム群KPGは、1の印刷テキストデータITDから、解析プログラムKPの数に対応する数分の項目について、項目情報を取得する。図7では、解析プログラム群KPGは、第1解析プログラムKP1~第15解析プログラムKP15から構成されている。つまり、図7の場合では、解析プログラム群KPGは、上記の15の項目のそれぞれについて、項目情報の取得を行う機能を有する。
本実施形態では、解析プログラム群KPGは、顧客識別情報項目に対して、項目情報を取得する機能を有する第1解析プログラムKP1を有する。
顧客識別情報項目は、項目情報として、会計を行った顧客を識別する識別情報が対応付く項目である。
また、解析プログラム群KPGは、会計割引情報項目に対して、項目情報を取得する機能を有する第2解析プログラムKP2を有する。
会計割引情報項目には、会計割引名称情報項目と、会計割引額情報項目とが含まれる。
会計割引名称情報項目は、項目情報として、会計に適用された割引の名称を示す情報が対応付く項目である。会計割引額情報項目は、項目情報として、会計に適用された割引の金額を示す情報が対応付く項目である。
また、解析プログラム群KPGは、顧客人数情報項目に対して、項目情報を取得する機能を有する第3解析プログラムKP3を有する。
顧客人数情報項目は、項目情報として、会計を行った顧客の人数を示す情報が対応付く項目である。
また、解析プログラム群KPGは、払戻有無情報項目に対して、項目情報を取得する機能を有する第4解析プログラムKP4を有する。
払戻有無情報項目は、項目情報として、会計において払い戻しがあったか否かを示す情報が対応付く項目である。
また、解析プログラム群KPGは、取消有無情報項目に対して、項目情報を取得する機能を有する第5解析プログラムKP5を有する。
取消有無情報項目は、項目情報として、会計が取り消されたか否かを示す情報が対応付く項目である。
また、解析プログラム群KPGは、会員情報項目に対して、項目情報を取得する機能を有する第6解析プログラムKP6を有する。
会員情報項目には、会員所属情報項目と、会員識別情報項目とが含まれる。
会員所属情報項目は、項目情報として、顧客が所属するサービスプログラムの名称を示す情報である。会員識別情報項目は、項目情報として、顧客が所属するサービスプログラムにおいて顧客を識別する識別情報である。
また、解析プログラム群KPGは、支払方法情報項目に対して、項目情報を取得する機能を有する第7解析プログラムKP7を有する。
支払方法情報項目には、支払方法名称情報項目と、支払額情報項目とが含まれる。
支払方法名称情報項目は、項目情報として、支払い方法の名称を示す情報が対応付く項目である。支払額情報項目は、項目情報として、支払方法名称情報に係る支払い方法で顧客が支払った金銭の額を示す情報である。
また、解析プログラム群KPGは、発行日時情報項目に対して、項目情報を取得する機能を有する第8解析プログラムKP8を有する。
発行日時情報項目は、項目値として、発行日時情報J5が対応付く項目である。
また、解析プログラム群KPGは、商品情報項目に対して、項目情報を取得する機能を有する第9解析プログラムKP9を有する。
商品情報項目には、商品名情報項目と、購入数量情報項目と、単価情報項目とが含まれる。
商品名情報項目は、項目情報として、商品名情報J62が対応付く項目である。
購入数量情報項目は、項目情報として、購入数量情報J61が対応付く項目である。
単価情報項目は、項目情報として、単価情報J63が対応付く項目である。
また、解析プログラム群KPGは、レシート識別情報項目に対して、項目情報を取得する機能を有する第10解析プログラムKP10を有する。
レシート識別情報項目は、項目情報として、レシート識別情報J42が対応付く項目である。
また、解析プログラム群KPGは、販売方法情報項目に対して、項目情報を取得する機能を有する第11解析プログラムKP11を有する。
販売方法情報項目は、項目情報として、商品の販売がどのような方法で行われたかを示す情報が対応付く項目である。
また、解析プログラム群KPGは、スタッフ情報項目に対して、項目情報を取得する機能を有する第12解析プログラムKP12を有する。
スタッフ情報項目は、項目情報として、店舗におけるスタッフの名前を示す情報、又は、スタッフを識別する識別情報である。なお、スタッフとは、会計を担当した者や、店舗において顧客に対するサービスの提供を担当した者である。
また、解析プログラム群KPGは、小計金額情報項目に対して、項目情報を取得する機能を有する第13解析プログラムKP13を有する。
小計金額情報項目は、項目情報として、小計金額情報J72が対応付く項目である。
また、解析プログラム群KPGは、税情報項目に対して、項目情報を取得する機能を有する第14解析プログラムKP14を有する。
税情報項目には、項目値として、税額情報J82が対応付く項目である。
また、解析プログラム群KPGは、合計金額情報項目に対して、項目情報を取得する機能を有する第15解析プログラムKP15を有する。
合計金額情報項目は、項目値として、合計金額情報J92が対応付く項目である。
ここで、1の解析プログラムKPに含まれる抽出プログラムと変換プログラムとについて、第15解析プログラムKP15を例に挙げて具体的に説明する。
例えば、第15解析プログラムKP15は、印刷テキストデータITDのエリアAA4に含まれる文字列「TOTAL」をキーワード検索し、文字列「TOTAL」を有する行において、空白文字を除き、文字列「TOTAL」の右側に位置する文字列を合計金額情報項目の項目情報として検出して抽出するという抽出ルールに従って、合計金額情報項目の項目情報を抽出する抽出プログラムを含む。また、第15解析プログラムKP15は、抽出した項目情報に桁区切りを示す記号が含まれている場合、抽出した項目情報の表記形式を、桁区切りを示す記号を取り除いた表記形式に変換するという変換ルールに従って、抽出した合計金額情報項目の項目情報の表記形式を変換する変換プログラムを含む。
本実施形態では、解析プログラムKPに対して、第1~第15と識別子を付しているが、この識別子は、項目情報を取得する対象の項目が異なることを示している。そのため、例えば、ある解析プログラム群KPGが有する第1解析プログラムKP1と、当該ある解析プログラム群KPGと異なる解析プログラム群KPGが有する第1解析プログラムKP1とは、項目情報を取得するための解析ルールが同じであるとは限らない。
図3のフローチャートFCの説明に戻り、サーバー制御部70は、ステップSC3のテキストデータ解析処理の処理結果に基づいて解析データKDを生成する(ステップSC4)。
解析データKDは、上述した項目のそれぞれと、統括識別情報項目、シリアル番号項目、及び、店舗識別情報項目のそれぞれと、項目情報と、が対応付けて記述されたJSON形式のデータである。また、解析データKDは、項目情報を印刷テキストデータITDから取得できなかったことを示す情報が、必要に応じて項目ごとに記述される。なお、項目情報を印刷テキストデータITDから取得できなかったことを示す情報としては、null値が一例として挙げられる。
統括識別情報項目は、項目情報として、解析データKDを一意に識別する統括識別情報J13が対応付く項目である。シリアル番号項目は、項目情報として、シリアル番号J11が対応付く項目である。店舗識別情報項目は、項目情報として、店舗を一意に識別する店舗識別情報J12が対応付く項目である。
図3のフローチャートFCに示すように、サーバー制御部70は、解析データKDを生成すると、生成した解析データKDを解析データ管理データベース710Cに1件のレコードとして登録する(ステップSC5)。
図8は、解析データ管理データベース710Cの1件のレコードが有する情報を模式的に示す図である。
図8に示すように、解析データ管理データベース710Cの1件のレコードは、統括識別情報J13、シリアル番号J11、店舗識別情報J12、発行日時情報J5、印刷データID、印刷テキストデータITD、及び、解析データKDを有する。
ステップSC5において、サーバー制御部70は、解析データKDに、対応する項目と対応付けて記述した統括識別情報J13、シリアル番号J11、店舗識別情報J12、及び、発行日時情報J5と、受信した印刷データID、及び、印刷テキストデータITDとを対応付けたレコードを、解析データ管理データベース710Cに登録する。
制御サーバー7には、複数のWebAPI(Application Programming Interface)が登録される。そして、制御サーバー7は、外部の装置のブラウザーからの要求に応じて、解析データ管理データベース710Cに基づいて、登録されたWebAPIにより処理を行って、ユーザーが必要とする情報を提供することができる。ここでいうユーザーとは、例えば、店舗を経営するオーナーや、店舗を管理する管理会社またはその管理会社の従業員、店舗の責任者等であり、管理装置5の操作権限を有する者である。
例えば、ユーザーは、管理装置5のブラウザーを立ち上げ、制御サーバー7から項目情報を取得するためのユーザーインターフェースの表示に係る制御サーバー7の所定のURLへのアクセスを指示する。URLは、所定の方法で、ユーザーに事前に通知されている。管理装置5のブラウザー実行部5000は、ユーザーの指示に応じて、制御サーバー7の所定のURLにアクセスする。そして、制御サーバー7のサーバー制御部70は、所定のURLへのアクセスに応じて、上記のユーザーインターフェースを表示させるHTMLファイルを管理装置5に送信する。管理装置5は、受信したHTMLファイルに基づいて上記のユーザーインターフェースを管理装置表示部52により表示する。ここで、管理装置5が表示するユーザーインターフェースにおいて、合計金額情報J92が指定されたとする。すると、ブラウザー実行部5000は、HTTPリクエストとして、制御サーバー7に特定のレシートRに係る合計金額情報J92を要求する。制御サーバー7のサーバー制御部70は、解析データ管理データベース710Cの解析データKDを用いて、特定のレシートRに係る合計金額情報J92をHTTPレスポンスとして管理装置5に送信する。これにより、ユーザーは、特定のレシートRに印刷された合計金額情報J92を活用することができる。
ところで、レシートRに印刷される決済情報に含まれる金額情報J10は、レシートRが発行される地域の慣習等によって表記形式が異なる項目情報である。
例えば、金額情報J10の表記形式は、桁区切りを示す記号としてカンマの記号である記号「,」を用いた表記形式があれば、桁区切りを示す記号としてドットの記号である記号「.」を用いた表記形式もある。また、例えば、金額情報J10の表記形式は、小数点を示す記号として記号「.」を用いた表記形式があれば、小数点を示す記号として記号「,」を用いた表記形式もある。
ここで、第15解析プログラムKP15に、抽出した項目情報に桁区切りを示す記号「,」が含まれている場合に、抽出した項目情報の表記形式を記号「,」を取り除いた表記形式に変換するという変換ルールに従って表記形式を変換する変換プログラムを含んでいるとする。この第15解析プログラムKP15を、記号「,」が小数点を示す記号として表記された「1,00」の合計金額情報J92に適用すると、最終的に取得される合計金額情報J92は、表記形式が「100」となり「1,00」と異なった値となる。
このように、レシートRによっては金額情報J10の表記形式が異なるため、制御サーバー7は、テキストデータ解析処理に際し、レシートRに印刷される金額情報J10に適用される表記形式に基づいて金額情報J10を取得する解析プログラム群KPGを利用しないと、印刷テキストデータITDから適切に金額情報J10を取得できず、精度よく決済情報を解析することが難しい。ここで決済情報を精度よく解析するために、ユーザーが、レシートRに印刷される金額情報J10に適用される表記形式を設定し、設定した表記形式に基づいて制御サーバー7が決済情報を解析することが考えらえる。しかしながら、ユーザーの入力ミスや設定ミス等が生じると、制御サーバー7は誤った表記形式に基づいて決済情報を解析してしまい、解析精度が低下する虞がある。
そこで、制御サーバー7は、以下の構成を具備し、以下の動作を実行する。
図9は、制御サーバー7のサーバー制御部70の機能ブロックを示す図である。
図9に示す各構成部は、サーバープロセッサー700が制御プログラム710Aを実行することにより実現される機能部と、サーバープロセッサー700の制御によりサーバー記憶部710の記憶領域を使用して形成される記憶部とを含む。
サーバー制御部70は、テキストデータ取得部701、金額情報検出部702、機械学習部703、出力部704、変換プログラム生成部705、設定情報取得部706、報知部707、及び解析部708を備える。テキストデータ取得部701は、取得部に相当する。これら各部は、上述したように、例えば、サーバープロセッサー700が制御プログラム710Aを実行することによって、ソフトウェアとハードウェアとの協働により実現される。
テキストデータ取得部701は、印刷装置3から受信した印刷テキストデータITDを取得する。
例えば、テキストデータ取得部701は、解析データ管理データベース710Cから、取得対象の印刷装置3のシリアル番号J11を含むレコードを1つ特定し、特定したレコードから印刷テキストデータITDを取得する。
テキストデータ取得部701は、取得した印刷テキストデータITDを金額情報検出部702に出力する。
金額情報検出部702は、解析プログラム群KPGを利用して、テキストデータ取得部701から入力された印刷テキストデータITDから金額情報J10を検出する。
金額情報検出部702は、取得対象の印刷装置3のシリアル番号J11に対応する解析プログラム群KPGを、解析プログラム群管理データベース710Bから取得する。次いで、金額情報検出部702は、解析プログラム群KPGが有する解析プログラムKPのうち、金額情報J10に対応する項目情報を取得する解析プログラムKPを利用して、印刷テキストデータITDから金額情報J10を検出する。そして、金額情報検出部702は、解析プログラムKPを利用して、検出した金額情報J10を印刷テキストデータITDから項目情報として抽出し、抽出した金額情報J10を機械学習部703に出力する。なお、金額情報検出部702は、金額情報J10を機械学習部703に出力する際、検出に利用した解析プログラムKPに従った表記形式の変換は行わない。
機械学習部703は、印刷装置3ごとに、印刷装置3が発行するレシートRに印刷される金額情報J10に適用される表記形式を学習する。機械学習部703が使用する学習アルゴリズムは、特に限定されず、例えば、教師なし学習や、教師あり学習、半教師あり学習、強化学習、転移学習等のいずれかの学習アルゴリズムでよい。本実施形態では、教師なし学習を採用した例を説明する。
機械学習部703は、判定部7031、機械学習モデル生成部7032、学習結果記憶部7033、及び、表記形式決定部7035を備える。
判定部7031は、金額情報検出部702が検出した金額情報J10に基づいて、テキストデータ取得部701が取得した印刷テキストデータITDごとに、レシートRに印刷された金額情報J10に整合する1の表記形式を判定する。
判定部7031は、金額情報検出部702が1の印刷テキストデータITDから検出した金額情報J10ごとに、複数の記号のそれぞれに対して、出現頻度を記号の種類別に累積してカウントする。そして、判定部7031は、カウント値の多い種類の記号を、小数点を示す記号、又は、桁区切りを示す記号として判定する。以下では、小数点を示す記号を小数点記号という。小数点記号は、第1記号に相当する。また、以下では、桁区切りを示す記号を桁区切り記号という。桁区切り記号は、第2記号に相当する。
例えば、判定部7031は、カウント値が最も多い種類の記号を、小数点記号とし、カウント値が二番目に多い種類の記号を、桁区切り記号として判定する。この構成により、ほぼ全ての取引で金額情報J10に出現する小数点記号と、高額な取引に限り金額情報J10に出現する桁区切り記号と、を適切に区別することができる。検出するためのプログラムは、予めサーバー記憶部710に記憶されている。なお、小数点、及び桁区切りの候補となる記号の種類は、ドットの記号を記号「.」や、カンマの記号を示す記号「,」、アポストロフィの記号を示す記号「‘」、中点の記号を示す記号「・」等が例として挙げられる。判定部7031は、1の印刷テキストデータITDに存在する金額情報J10の全てに対して記号の種類別に累積してカウントを行うと、小数点記号、及び桁区切り記号を判定する。そして、判定部7031は、判定した小数点記号、及び桁区切り記号の組み合わせを、レシートRに印刷された金額情報J10に整合する1の表記形式として判定する。
ここで、判定部7031の判定について、図6に示す印刷テキストデータITDを判定対象とした場合を例示して具体的に説明する。
金額情報検出部702から入力された金額情報J10が「700.00」を示す単価情報J63である場合、判定部7031は、記号「.」を検出し、記号「.」の検出数を1つカウントする。
続けて、金額情報検出部702から入力された金額情報J10が「1,000.00」を示す単価情報J63である場合、判定部7031は、記号「.」と、記号「,」とを検出する。判定部7031は、記号「.」の検出数をさらに1つカウントし、記号「,」の検出数を1つカウントする。
判定部7031は、「1,700.00」を示す小計金額情報J72、「6.13」を示す税額情報J82、及び、「1,706.13」を示す合計金額情報J92についても同様に検出、及びカウントを行う。
図6に示す印刷テキストデータITDに含まれる全ての金額情報J10に対して検出、及びカウントを行なわれると、記号「.」が5であり、記号「,」が3であり、他の記号が0である。そのため、図6に示す印刷テキストデータITDの場合、判定部7031は、レシートRに印刷された金額情報J10に整合する1の表記形式が、小数点記号が記号「.」であり桁区切り記号が記号「,」である表記形式と、判定する。
判定部7031は、判定結果を機械学習モデル生成部7032に出力する。
機械学習モデル生成部7032は、印刷装置3ごとに、判定部7031の判定結果に基づいて、印刷装置3が発行するレシートRに印刷される金額情報J10に適用される印刷表記形式を決定するための機械学習モデル7034を生成する。機械学習モデル生成部7032は、判定部7031が判定した表記形式を、印刷テキストデータITDをグループ分けするパラメーターとして利用し、このパラメーターに基づいて印刷テキストデータITDをグループ分けした機械学習モデル7034を生成する。機械学習モデル生成部7032は、生成した機械学習モデル7034を学習結果記憶部7033に記憶させる。機械学習モデル生成部7032により生成される機械学習モデル7034は、判定部7031の判定結果で印刷テキストデータITDをグループ分けしたモデルであり、グループごとにグループに属する印刷テキストデータITDの数を示す出現頻度パラメーターを有している。この出現頻度パラメーターは、金額情報J10に整合する表記形式として判定部7031に判定された頻度を示す。
例えば、機械学習モデル生成部7032は、7つの印刷テキストデータのうち5つの印刷テキストデータITDに対して判定部7031からある判定結果を取得し、他の2つの印刷テキストデータITDに対して判定部7031からある判定結果と異なる他の判定結果を取得したとする。この場合、機械学習モデル生成部7032は、ある判定結果の判定がされた5つの印刷テキストデータITDと、他の判定結果の判定がされた他2つの印刷テキストデータITDとでグループ分けした機械学習モデル7034を生成する。
機械学習モデル生成部7032は、判定部7031から判定結果が入力されるたびに、機械学習モデル7034を更新する。機械学習モデル7034の更新では、機械学習モデル生成部7032は、既に生成された機械学習モデル7034と、入力された判定部7031の判定結果とに基づいて、テキストデータ取得部701が新たに取得した印刷テキストデータITDのグループ分けを行った新たな機械学習モデル7034を生成する。そして、機械学習モデル生成部7032は、学習結果記憶部7033が記憶する機械学習モデル7034を、生成した新たな機械学習モデル7034に更新する。このように、機械学習モデル生成部7032は、機械学習モデル7034の更新を行うことで、機械学習モデル7034に、レシートRに印刷される金額情報J10に適用される表記形式を学習させていく。なお、金額情報J10に適用される表記形式は、第1表記形式に相当する。
学習結果記憶部7033は、機械学習モデル生成部7032が生成した機械学習モデル7034を記憶する。学習結果記憶部7033は、印刷装置3のシリアル番号J11を対応付けて機械学習モデル7034を記憶する。
表記形式決定部7035は、印刷装置3ごとに、学習結果記憶部7033が記憶する機械学習モデル7034から、レシートRに印刷される金額情報J10に適用される表記形式を決定する。表記形式決定部7035は、機械学習モデル7034が有する出現頻度パラメーターに基づいて、最も多くの印刷テキストデータITDが属するグループの判定結果が示す表記形式を、金額情報J10に適用される表記形式として決定する。
出力部704は、表記形式決定部7035が決定した金額情報J10の表記形式を、決済情報の解析に適した表記形式として変換プログラム生成部705、或いはサーバーネットワーク通信部71を介して管理装置5に出力する。出力部704の出力先は、予め管理装置5等によって設定される。
変換プログラム生成部705は、出力部704から入力があった場合、出力部704からの入力に基づいて変換プログラムを生成する。
例えば、出力部704から入力された金額情報J10の表記形式が、小数点を示す記号が記号「.」であり桁区切りを示す記号が記号「,」である表記形式であるとする。この場合、変換プログラム生成部705は、記号「,」を取り除き、且つ、記号「.」、及び記号「.」に後続する文字列を取り除いた表記形式に変換するという変換ルールを有する変換プログラムを生成する。この変換プログラムに従うと、サーバー制御部70は、上述したテキストデータ解析処理において、例えば「10,000.00」の金額情報J10の表記形式を、「10000」といった変換前後で値が変わらない適切な表記形式に変換できる。
なお、この変換プログラムはあくまで一例である。変換プログラムは、適切な表記形式に変換できるという観点の基、出力部704からの入力に基づいて生成される。
変換プログラム生成部705は、生成した変換プログラムを解析プログラム群KPGに適用する。
変換プログラム生成部705は、解析プログラム群KPGが有する15の解析プログラムKPのうち、金額情報J10を取得するための解析プログラムKPの変換プログラムを、生成した変換プログラムに変更する。すなわち、サーバー制御部70は、第9解析プログラムKP9、第10解析プログラムKP10、第13解析プログラムKP13、第14解析プログラムKP14、及び、第15解析プログラムKP15の変換プログラムを生成した変換プログラムに変更する。
図6に示すように1のレシートRにおいては、金額情報J10の表記形式が全て同じ表記形式である蓋然性が高い。そのため、変換プログラム生成部705は、第9解析プログラムKP9、第10解析プログラムKP10、第13解析プログラムKP13、第14解析プログラムKP14、及び、第15解析プログラムKP15のそれぞれに対して変換プログラムを生成せずとも、共通する1の変換プログラムを生成すればよい。したがって、変換プログラム生成部705は、解析プログラム群KPGの変更に関わる処理負荷を低減しつつ、速やかに解析プログラム群KPGを変更できる。
なお、変換プログラム生成部705は、出力部704からの入力に基づいて、解析プログラムKP自体を生成して、解析プログラム群KPGに適用する構成でもよい。但し、この構成の場合、変換プログラム生成部705は、第9解析プログラムKP9、第10解析プログラムKP10、第13解析プログラムKP13、第14解析プログラムKP14、及び、第15解析プログラムKP15のそれぞれを生成する必要がある。これは、変換ルールが同じであっても、金額情報J10の抽出ルールが異なる可能性が非常に高いためである。
設定情報取得部706は、制御サーバー7に設定された金額情報J10の表記形式を取得する。以下では、制御サーバー7に設定された金額情報J10の表記形式を、設定表記形式という。設定表記形式は、第2表記形式に相当する。設定表記形式とは、解析プログラム群管理データベース710Bに登録する解析プログラム群KPGを生成する際に、管理装置5によって設定された金額情報J10の表記形式である。管理装置5のブラウザー実行部5000は、制御サーバー7に対して、印刷装置3が発行するレシートRに印刷される金額情報J10の表記形式を設定可能に構成される。制御サーバー7は、管理装置5により設定された金額情報J10の表記形式に基づいて解析プログラム群KPGを生成し、生成した解析プログラム群KPGを解析プログラム群管理データベース710Bに登録する。
報知部707は、金額情報J10の設定表記形式と、表記形式決定部7035が決定した金額情報J10の表記形式とを比較し、比較結果に基づく報知処理を行う。例えば、報知部707は、比較した結果、両者の表記形式が異なる場合、表記形式が異なる旨を管理装置5に送信する。また、例えば、報知部707は、比較した結果、両者の表記形式が異なる場合、表記形式が異なる旨をサーバー表示部72により表示する。
解析部708は、解析プログラム群KPGに基づいて、上述したテキストデータ解析処理を実行する。
続いて、制御サーバー7の動作を説明する。
図10は、制御サーバー7の動作を示すフローチャートFDである。
以下の説明では、ある1の印刷装置3が発行するレシートRに印刷される金額情報J10に係る制御サーバー7の動作を説明する。
サーバー制御部70は、印刷装置3が発行するレシートRに印刷される金額情報J10の表記形式の学習を開始するか否かを判別する(ステップSD1)。例えば、ある1の印刷装置3について、管理装置5から金額情報J10の学習を開始する指示を受信した場合、サーバー制御部70は、ステップSD1において肯定判別する。
サーバー制御部70金額情報J10の学習を開始すると判別すると(ステップSD1:YES)、テキストデータ取得部701は、学習対象の印刷装置3から受信した印刷テキストデータITDを取得する(ステップSD2)。
次いで、金額情報検出部702は、テキストデータ取得部701が取得した印刷テキストデータITDから金額情報J10を抽出する(ステップSD3)。
次いで、機械学習部703の判定部7031は、金額情報検出部702が抽出した金額情報J10に基づいて、1の印刷テキストデータITDに含まれる金額情報J10に整合する1の表記形式を判定する(ステップSD4)。
次いで、機械学習部703の機械学習モデル生成部7032は、印刷装置3に対応する機械学習モデル7034が学習結果記憶部7033に記憶されているか否かを判別する(ステップSD5)。
機械学習モデル生成部7032は、印刷装置3に対応する機械学習モデル7034を学習結果記憶部7033が記憶していないと判別した場合(ステップSD5:NO)、判定部7031の判定結果に基づいて、印刷装置3に対応する新たな機械学習モデル7034を生成する(ステップSD6)。
一方、機械学習モデル生成部7032は、印刷装置3に対応する機械学習モデル7034を学習結果記憶部7033が記憶していると判別した場合(ステップSD5:YES)、印刷装置3に対応する機械学習モデル7034を、判定部7031の判定結果に基づいて更新する(ステップSD7)。
次いで、機械学習部703の表記形式決定部7035は、金額情報J10の表記形式の学習を終了するか否かを判別する(ステップSD8)。例えば、表記形式決定部7035は、機械学習モデル生成部7032が予め定められた数の印刷テキストデータITDに基づいて機械学習モデル7034を更新した場合、ステップSD8で肯定判別する。また、例えば、表記形式決定部7035は、金額情報J10の表記形式の学習を開始してから、所定期間が経過した場合、ステップSD8で肯定判別する。
表記形式決定部7035が金額情報J10の表記形式の学習を終了しないと判別した場合(ステップSD8:NO)、サーバー制御部70は、処理をステップSD2に戻し、再度、ステップSD2からステップSD8の処理を実行する。再度、ステップSD2からステップSD8までの処理を実行する場合、テキストデータ取得部701は、前回のステップSD2で取得した印刷テキストデータITDと異なる印刷テキストデータITDを取得する。
一方、表記形式決定部7035は、金額情報J10の表記形式の学習を終了すると判別した場合(ステップSD8:YES)、印刷装置3に対応する機械学習モデル7034から金額情報J10に適用される表記形式を決定する(ステップSD9)。
このように、機械学習部703は、判定部7031の判定結果に基づいて機械学習モデル7034を更新することによって金額情報J10に適用される表記形式を機械学習モデル7034に学習させ、学習した機械学習モデル7034から金額情報J10に適用される表記形式を決定する。このため、機械学習部703は、レシートRに印刷される金額情報J10に適用される表記形式を、高精度で決定できる。
上述したように、機械学習モデル生成部7032は、判定部7031の判定結果で印刷テキストデータITDをグループ分けしたモデルであって、グループごとに出現頻度パラメーターを有する機械学習モデル7034を生成する。つまり、機械学習モデル生成部7032は、金額情報J10の各々の表記形式が判定部7031に判定された頻度に基づいて、レシートRに印刷される金額情報J10に適用される表記形式を決定するための機械学習モデル7034を生成する。換言すれば、機械学習モデル生成部7032は、判定部7031が判定した表記形式を、印刷テキストデータITDをグループ分けするパラメーターとして利用し、このパラメーターに基づいて、金額情報J10に適用される表記形式の小数点記号、及び、桁区切り記号を識別可能な機械学習モデル7034を生成する。表記形式決定部7035は、この機械学習モデル7034から、レシートRに印刷される金額情報J10に適用される表記形式を決定する。これにより、機械学習部703は、最も多く判定部7031に判定された表記形式を、レシートRに印刷される金額情報J10に適用される表記形式として決定できる。したがって、機械学習部703は、最も適用されている蓋然性の高い表記形式を、レシートRに印刷される金額情報J10に適用される表記形式として決定できる。これにより、機械学習部703は、レシートRに印刷される金額情報J10に適用される表記形式を、より高精度で決定できる。
表記形式決定部7035が金額情報J10に適用される表記形式を決定すると、サーバー制御部70は、表記形式決定部7035が決定した表記形式に基づく処理を実行する(ステップSD10)。
ステップSD10の処理について、複数の処理を例に挙げて説明する。
[処理1]
報知部707は、設定情報取得部706が取得した金額情報J10の設定表記形式と、表記形式決定部7035が決定したレシートRに印刷される金額情報J10に適用される表記形式とを比較し、両者の表記形式が異なっている場合、表記形式が異なる旨を管理装置5に報知する。より詳細には、報知部707は、比較する両者の表記形式において、小数点を示す記号、又は、桁区切りを示す記号が異なる場合、表記形式が異なる旨を管理装置5に報知する。
この報知によって、管理装置5のユーザーは、制御サーバー7に設定されている設定表記形式と、印刷装置3が発行するレシートRに印刷される金額情報J10の表記形式とが異なる表記形式であると認識できる。そして、管理装置5のユーザーは、決済情報が精度よく解析できるようにするため、制御サーバー7に適切な金額情報J10の表記形式を設定する必要であることを認識できる。したがって、報知部707は、報知によって決済情報の精度向上を図ることができる。
報知部707は、比較した両者の表記形式が同じである場合、表記形式が同じである旨を管理装置5に報知してもよい。
報知部707は、比較結果をサーバー表示部72により表示してもよい。この場合、制御サーバー7のユーザーは、比較結果を認識できる。制御サーバー7のユーザーとしては、店舗を経営するオーナーや店舗を管理する企業等をクライアントとし、このクライアントに対して、クライアントが必要とする項目情報を提供するサービスを行う主体や、この主体に属する従業員、この主体に属し且つ解析プログラムKPの設定及び管理の少なくともいずれかを行う従業員等が例として挙げられる。
[処理2]
出力部704は、表記形式決定部7035が決定した金額情報J10に適用される表記形式を、決済情報の解析に適した金額情報J10の表記形式として変換プログラム生成部705に出力する。変換プログラム生成部705は、出力部704の出力に基づいて、変換プログラムを生成し、生成した変換プログラムを解析プログラム群KPGに適用する。このように、表記形式決定部7035が決定した金額情報J10の表記形式を出力部704が変換プログラム生成部705に出力することで、サーバー制御部70は、高精度で決定された表記形式に基づく解析プログラム群KPGを、自動で解析プログラム群管理データベース710Bに登録できる。
なお、出力部704は、上述した[処理1]のように表記形式を比較して、比較結果に基づく出力を行ってもよい。すなわち、出力部704は、設定情報取得部706が取得した金額情報J10の設定表記形式と、表記形式決定部7035が決定した金額情報J10に適用される表記形式とを比較する。そして、出力部704は、両者が同じ表記形式である場合、設定情報取得部706が取得した金額情報J10の表記形式を、決済情報の解析に適した金額情報J10の表記形式として変換プログラム生成部705に出力する。
[処理3]
出力部704は、表記形式決定部7035が決定した金額情報J10に適用される表記形式を、決済情報の解析に適した表記形式として、サーバーネットワーク通信部71を介して管理装置5に出力する。これにより、管理装置5のユーザーは、印刷装置3が発行するレシートRに印刷される金額情報J10に適用される表記形式がどのような表記形式であるかを認識できる。そして、ユーザーは、適切に解析が行える解析プログラム群KPGを制御サーバー7に設定させる際、出力部704が出力した表記形式を参照することで、適切な金額情報J10の表記形式を制御サーバー7に容易に設定できる。
なお、出力部704は、表記形式決定部7035が決定した金額情報J10に適用される表記形式を、決済情報の解析に適した表記形式として、サーバー表示部72により表示してもよい。この場合、制御サーバー7のユーザーは、レシートRに印刷される金額情報J10に適用される表記形式がどのような表記形式であるかを認識できる。
[処理4]
解析部708は、表記形式決定部7035が決定した表記形式に基づいて、テキストデータ解析処理を実行する。表記形式決定部7035が決定した表記形式に基づいてテキストデータ解析処理を実行するとは、表記形式決定部7035が決定した表記形式に基づいて変換プログラムが変更された解析プログラム群KPGを利用して、印刷テキストデータITDから金額情報J10を取得することを示す。これにより、解析部708は、テキストデータ解析処理において、印刷テキストデータITDから適切な表記形式に変換した金額情報J10を取得でき、決済情報を精度よく解析できる。
なお、解析部708は、上述した[処理1]のように表記形式を比較して、比較結果に基づいてテキストデータ解析処理を実行してもよい。すなわち、解析部708は、設定情報取得部706が取得した金額情報J10の設定表記形式と、表記形式決定部7035が決定した金額情報J10の表記形式とを比較する。そして、解析部708は、両者が同じ表記形式である場合、設定情報取得部706が取得した金額情報J10の表記形式に基づいて、テキストデータ解析処理を実行する。
サーバー制御部70は、ステップSD10において、処理1~処理4のいずれかの処理を実行してもよいし、全ての処理を実行してもよいし、任意の複数の処理を、任意の順で、或いは並列に実行してもよい。
以上、説明したように、制御サーバー7は、印刷装置3に通信可能なサーバーネットワーク通信部71と、サーバー制御部70と、を備える。サーバー制御部70は、サーバーネットワーク通信部71より、印刷装置3から、決済情報に関する印刷テキストデータITDを取得し、取得した印刷テキストデータITDから、金額情報J10を抽出し、抽出した金額情報J10に基づいて、金額の小数点記号と、金額の桁区切り記号とを有する金額情報J10に適用される表記形式を判定し、小数点記号と、桁区切り記号とを設定した設定表記形式を取得し、判定した金額情報J10に適用される表記形式と、設定表記形式とを比較し、比較した結果に基づいて、報知処理を実行する。
この構成によれば、例えば、管理装置5のユーザーは、制御サーバー7に設定されている設定表記形式と、レシートRに印刷される金額情報J10に適用される表記形式と、が異なる表記形式であるのか、同じ表記形式であるのかを認識できるようになる。つまり、サーバー制御部70は、比較結果に基づいて報知処理を実行することで、ユーザーが設定した金額情報J10の表記形式が、適切な表記形式か否かをユーザーに認識させることができる。これにより、決済情報が精度よく解析できるようにするため、管理装置5のユーザーが適切な金額情報J10の表記形式を制御サーバー7に設定する蓋然性が増すため、制御サーバー7は、報知処理によって、決済情報の解析精度を高めることができる。
サーバー制御部70は、抽出した金額情報J10に出現する記号の出現頻度を、記号の種類ごとに累積的にカウントし、複数の記号のうち、出現頻度の高い種類の記号に基づいて、レシートRに印刷される金額情報J10に適用される表記形式が有する小数点記号と、桁区切り記号とを判定する。
この構成によれば、サーバー制御部70は、出現頻度の高い記号に基づいて小数点記号、及び桁区切り記号を判定するため、金額情報J10の表記形式に用いられている蓋然性の高い小数点記号と桁区切り記号との組み合わせを、レシートRに印刷される金額情報J10に適用される表記形式として判定できる。そのため、サーバー制御部70、レシートRに印刷される金額情報J10に適用される表記形式を精度よく判定でき、精度よく判定された表記形式に基づく比較結果を報知できる。これより、ユーザーは、制御サーバー7に設定されている設定表記形式と、レシートRに印刷される金額情報J10に適用される表記形式とが、異なる表記形式であるのか、同じ表記形式であるのかを正確に認識できるようになる。したがって、制御サーバー7は、決済情報の解析精度をより高めることができる。
記号の種類は、ドット、カンマ、アポストロフィ、又は、中点である。
この構成によれば、ドット、カンマ、アポストロフィ、又は、中点のいずれかで表記される小数点記号、及び桁区切り記号の組み合わせを、レシートRに印刷される金額情報J10に適用される表記形式として、精度よく判定できる。
サーバー制御部70は、レシートRに印刷される金額情報J10に適応される表記形式の小数点記号と、設定表記形式の小数点記号とが異なる場合、又は、レシートRに印刷される金額情報J10に適応される表記形式の桁区切り記号と、設定表記形式の桁区切り記号とが異なる場合、報知処理を実行する。
この構成によれば、小数点記号、及び桁区切り記号のいずれかの相違によって報知処理を実行するため、サーバー制御部70は、設定表記形式と、レシートRに印刷される金額情報J10に適用される表記形式とが異なる表記形式であることを正確に報知できる。
サーバー制御部70は、レシートRに印刷される金額情報J10に適応される表記形式と、設定表記形式とが、同じである場合、設定表記形式を、決済情報の解析用の表記形式とする。
この構成によれば、サーバー制御部70は、テキストデータ解析処理に適した金額情報J10の表記形式を精度よく決定でき、決済情報の解析精度をより高めることができる。
サーバー制御部70は、印刷される金額情報J10に適応される表記形式と、設定表記形式とが、同じである場合、設定表記形式に基づいて、決済情報を解析する。
この構成によれば、サーバー制御部70は、適切な金額情報J10の表記形式に基づいて金額情報J10を取得する解析プログラム群KPGによって、適切にテキストデータ解析処理を行える。そのため、サーバー制御部70は、テキストデータ解析処理において、印刷テキストデータITDから適切な表記形式に変換して金額情報J10を取得でき、精度よく決済情報を解析できる。
サーバー制御部70は、金額情報J10に基づいて、印刷される金額情報J10に適用される表記形式の小数点記号、及び、桁区切り記号を識別可能な機械学習モデル7034を生成し、生成した機械学習モデル7034により判定した表記形式と、設定表記形式とを比較する。
この構成によれば、金額情報J10の表記形式を学習した機械学習モデル7034から、高精度で、レシートRに印刷される金額情報J10に適用される表記形式を判定でき、高精度で判定された表記形式に基づく比較結果を報知できる。これより、ユーザーが、制御サーバー7に設定されている設定表記形式と、レシートRに印刷される金額情報J10に適用される表記形式とが、異なる表記形式であるのか、同じ表記形式であるのかを、より正確に認識できるようになる。したがって、制御サーバー7は、決済情報の解析精度をより高めることができる。
サーバー制御部70は、抽出した金額情報J10に出現する記号の出現頻度を、記号の種類ごとに累積的にカウントし、複数の記号のうち、出現頻度の高い種類の記号に基づいて、小数点記号と、桁区切り記号とを有する表記形式を判定し、判定した表記形式をパラメーターとして、複数のパラメーターに基づいて機械学習モデル7034を生成する。
この構成によれば、サーバー制御部70は、金額情報J10の表記形式に適用されている蓋然性の高い小数点記号、及び桁区切り記号の組み合わせを、高精度で判定できる。さらに、制御サーバー7は、決済情報の解析精度を高めることができる。
なお、上述した実施形態は、あくまでも本発明の一態様を示すものであり、本発明の範囲内で任意に変形および応用が可能である。
上述した実施形態では、小数点記号、及び桁区切り記号の組み合わせを、金額情報J10の表記形式として説明した。金額情報J10の表記形式は、この組み合わせに限定されず、$や¥等の通貨を示す記号を含む組み合わせでもよい。この場合、判定部7031は、通貨を示す記号についても、小数点、及び桁区切りと同様に検出、及びカウントを行い、カウント結果に基づいて小数点、桁区切り、及び通貨のそれぞれの記号の組み合わせが示す表記形式のうち、レシートRに印刷された金額情報J10に整合する表記形式を判定する。
また、例えば、POS端末4が管理装置5として機能してもよい。この場合、POS端末4には、ブラウザーがインストールされており、POS端末制御部40は、ブラウザー実行部5000の機能を有する。
また、例えば、POS端末制御部40、印刷装置制御部30、管理装置制御部50、サーバー制御部70の機能は、複数のプロセッサー、又は、半導体チップにより実現してもよい。
また、例えば、上述した制御サーバー7の動作が示す機械学習方法が、制御サーバー7が備えるコンピューター、又は、制御サーバー7に接続される外部装置を用いて実現される場合、本発明を、当該方法を実現するためにコンピューターが実行するプログラム、このプログラムをコンピューターで読み取り可能に記録した記録媒体、或いは、このプログラムを伝送する伝送媒体の態様で構成することも可能である。
また、サーバー制御部70の機能は、制御プログラム710Aを記憶した記憶媒体、制御プログラム710Aを配信するサーバー装置、制御プログラム710Aを伝送する伝送媒体、制御プログラム710Aを搬送波内に具現化したデータ信号等の形態で実現することもできる。記憶媒体としては、コンピューターが読み取り可能な種々の媒体を利用することができ、磁気的、光学的記憶媒体あるいは半導体メモリーデバイスを用いるもののいずれであってもよく、その他の種類の記憶媒体をしようしてもよい。また、メモリーカード等の可搬型記憶媒体であってもよい。また、記憶媒体は、上記装置と通信回線を介して接続された装置が備える記憶媒体であってもよい。制御プログラム710Aは、オペレーティングシステムを実装して動作する装置において、オペレーティングシステム上で動作する単体のアプリケーションプログラムとして実装することができる。また、単体のアプリケーションプログラムに限らず、オペレーティングシステム、デバイスドライバー、及び、アプリケーションプログラムのうち複数の機能として実装されてもよい。
また、例えば、図10の処理単位は、制御サーバー7の処理を理解容易にするために、主な処理内容に応じて分割したものであり、処理単位の分割の仕方や名称によって、本発明が限定されることはない。処理内容に応じて、されに多くの処理単位に分割してもよい。また、1つの処理単位がさらに多くの処理を含むように分割してもよい。また、その処理の順番は、本発明に支障のない範囲で適宜に入れ替えてもよい。
また、サーバー制御部70は、機械学習モデル7034を生成しない構成としてもよい。例えば、サーバー制御部70は、所定数の印刷テキストデータITDが有する金額情報J10から、記号を抽出して、抽出数を記号の種類別に累積してカウントし、カウント値の多い種類の記号を、小数点記号、又は、桁区切り記号として判定する。そして、サーバー制御部70は、判定した小数点記号、及び、桁区切り記号を有する表記形式として決定する。
また、図に示した各機能部は機能的構成を示すものであって、具体的な実装形態は特に限定されない。つまり、必ずしも各機能部に個別に対応するハードウェアが実装される必要はなく、一つのプロセッサーがプログラムを実行することで複数の機能部の機能を実現する構成とすることも勿論可能である。また、上述した実施形態においてソフトウェアで実現される機能の一部をハードウェアとしてもよく、或いは、ハードウェアで実現される機能の一部をソフトウェアで実現してもよい。その他、POS端末4、印刷装置3、管理装置5、及び制御サーバー7の他の各部の具体的な細部構成についても、本発明の趣旨を逸脱しない範囲で任意に変更可能である。