JP7059586B2 - 情報処理装置、情報処理装置の制御方法、及び、プログラム - Google Patents

情報処理装置、情報処理装置の制御方法、及び、プログラム Download PDF

Info

Publication number
JP7059586B2
JP7059586B2 JP2017226114A JP2017226114A JP7059586B2 JP 7059586 B2 JP7059586 B2 JP 7059586B2 JP 2017226114 A JP2017226114 A JP 2017226114A JP 2017226114 A JP2017226114 A JP 2017226114A JP 7059586 B2 JP7059586 B2 JP 7059586B2
Authority
JP
Japan
Prior art keywords
text
item
information
extraction
item value
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
JP2017226114A
Other languages
English (en)
Other versions
JP2019096142A (ja
Inventor
英久 大宮
雄一 杉山
勝 甲田
カオ レ
壽貴 権田
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Seiko Epson Corp
Original Assignee
Seiko Epson Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Seiko Epson Corp filed Critical Seiko Epson Corp
Priority to JP2017226114A priority Critical patent/JP7059586B2/ja
Priority to US16/196,466 priority patent/US10909360B2/en
Priority to EP18207764.4A priority patent/EP3489816B1/en
Publication of JP2019096142A publication Critical patent/JP2019096142A/ja
Application granted granted Critical
Publication of JP7059586B2 publication Critical patent/JP7059586B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/12Digital output to print unit, e.g. line printer, chain printer
    • G06F3/1201Dedicated interfaces to print systems
    • G06F3/1202Dedicated interfaces to print systems specifically adapted to achieve a particular effect
    • G06F3/1203Improving or facilitating administration, e.g. print management
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/30Information retrieval; Database structures therefor; File system structures therefor of unstructured textual data
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/12Digital output to print unit, e.g. line printer, chain printer
    • G06F3/1201Dedicated interfaces to print systems
    • G06F3/1223Dedicated interfaces to print systems specifically adapted to use a particular technique
    • G06F3/1237Print job management
    • G06F3/1273Print job history, e.g. logging, accounting, tracking
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/12Digital output to print unit, e.g. line printer, chain printer
    • G06F3/1201Dedicated interfaces to print systems
    • G06F3/1278Dedicated interfaces to print systems specifically adapted to adopt a particular infrastructure
    • G06F3/1285Remote printer device, e.g. being remote from client or server
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/10Text processing
    • G06F40/12Use of codes for handling textual entities
    • G06F40/151Transformation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V30/00Character recognition; Recognising digital ink; Document-oriented image-based pattern recognition
    • G06V30/40Document-oriented image-based pattern recognition
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V30/00Character recognition; Recognising digital ink; Document-oriented image-based pattern recognition
    • G06V30/40Document-oriented image-based pattern recognition
    • G06V30/41Analysis of document content
    • G06V30/412Layout analysis of documents structured with printed lines or input boxes, e.g. business forms or tables
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V30/00Character recognition; Recognising digital ink; Document-oriented image-based pattern recognition
    • G06V30/40Document-oriented image-based pattern recognition
    • G06V30/41Analysis of document content
    • G06V30/413Classification of content, e.g. text, photographs or tables
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V30/00Character recognition; Recognising digital ink; Document-oriented image-based pattern recognition
    • G06V30/40Document-oriented image-based pattern recognition
    • G06V30/41Analysis of document content
    • G06V30/414Extracting the geometrical structure, e.g. layout tree; Block segmentation, e.g. bounding boxes for graphics or text
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V30/00Character recognition; Recognising digital ink; Document-oriented image-based pattern recognition
    • G06V30/40Document-oriented image-based pattern recognition
    • G06V30/41Analysis of document content
    • G06V30/416Extracting the logical structure, e.g. chapters, sections or page numbers; Identifying elements of the document, e.g. authors

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • General Engineering & Computer Science (AREA)
  • Artificial Intelligence (AREA)
  • Human Computer Interaction (AREA)
  • Multimedia (AREA)
  • Audiology, Speech & Language Pathology (AREA)
  • Health & Medical Sciences (AREA)
  • Computational Linguistics (AREA)
  • General Health & Medical Sciences (AREA)
  • Data Mining & Analysis (AREA)
  • Databases & Information Systems (AREA)
  • Computer Graphics (AREA)
  • Geometry (AREA)
  • Cash Registers Or Receiving Machines (AREA)
  • Record Information Processing For Printing (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)

Description

本発明は、情報処理装置、情報処理装置の制御方法、及び、プログラムに関する。
従来、POS端末内の会計処理部から出力された出力データを、外部装置が解釈可能な形式のデータに変換し、変換したデータを外部装置に送信し、送信したデータを外部装置で管理する技術が知られる(例えば、特許文献1参照)。
特開2012-27633号公報
ここで、上述した特許文献1に係るPOS端末のように会計に基づく処理を実行するPOS端末では、会計に応じて、POS端末が、又は、POS端末に接続された印刷装置が、レシートを発行する。レシートには、会計に関する情報等の様々な情報が印刷される。
そして、レシートに印刷される情報のように、印刷媒体に印刷される情報は、後に活用可能な有益な情報が含まれる場合がある。これを踏まえ、情報処理装置により、印刷媒体に印刷される情報がテキストとして記述されたテキストデータを分析することが行われている。このような分析には、テキストデータからのテキストの抽出が含まれるが、この抽出について、ユーザーが行うことが必要な操作をできるだけ簡易化し、ユーザーの負担を軽減したいとするニーズがある。
本発明は、上述した事情に鑑みてなされたものであり、情報処理装置によるテキストの抽出について、ユーザーが行う操作を簡易化することを目的とする。
上記課題を解決するために、本発明は、印刷媒体に印刷される情報がテキストで記述されたテキストデータから、抽出条件に一致するテキストを抽出可能な情報処理装置であって、前記印刷媒体に前記情報が印刷されるレイアウトに準じて前記テキストデータを表示する画面において、抽出項目に関連する抽出項目関連テキストの選択を受け付け、前記抽出項目関連テキストが選択された状態で、前記抽出項目に対応する複数の設定項目をメニューとして表示して前記設定項目の選択を受け付け、項目値設定項目が選択された場合、前記抽出項目関連テキストを前記抽出項目の項目値を表す項目値テキストとして設定し、前記テキストデータにおける前記項目値テキストの相対位置、及び、前記項目値テキストの属性の少なくともいずれかに基づいて、前記テキストデータから前記項目値テキストを抽出するための前記抽出条件を生成し、生成した前記抽出条件に一致するテキストを前記項目値テキストとして抽出する、制御部を備える。
本発明によれば、ユーザーは、メニューから項目値設定項目を選択して抽出項目関連テキストを項目値テキストとして設定する、という簡易な作業を行って抽出条件を生成することが可能になる。すなわち、情報処理装置による項目値テキストの抽出について、ユーザーが行う操作を簡易化できる。
また、本発明は、前記制御部は、前記テキストデータを複数の群に分割した際、前記項目値テキストが属する群の他の群に対する位置を、前記相対位置として前記抽出条件を生成する。
本発明によれば、テキストデータを複数の群に分割した際、項目値テキストが属する群の他の群に対する位置を、相対位置として抽出条件を生成するため、的確にテキストデータから項目値テキストを抽出できる。
また、本発明は、前記制御部は、前記テキストデータに含まれる特異なテキストに対する前記項目値テキストの位置を、前記相対位置として前記抽出条件を生成する。
本発明によれば、特異なテキストに対する項目値テキストの位置を、相対位置として抽出条件を生成するため、的確にテキストデータから項目値テキストを抽出できる。
また、本発明は、前記制御部は、前記抽出項目関連テキストが選択された状態で、前記メニューを表示して前記設定項目の選択を受け付け、項目名設定項目が選択された場合、前記抽出項目関連テキストを前記抽出項目の項目名を表す項目名テキストとして設定し、前記項目名テキストに対する前記項目値テキストの位置を前記相対位置として前記抽出条件を生成する。
本発明によれば、項目名テキストに対する項目値テキストの位置を、相対位置として抽出条件を生成するため、的確にテキストデータから項目値テキストを抽出できる。
また、本発明は、前記制御部は、生成した前記抽出条件に基づいて、前記テキストデータから前記項目値テキストの抽出を試行し、試行により抽出した前記項目値テキストを所定の形式に変換する際に変換候補が複数ある場合、試行の都度、前記変換候補を順に表示して(採用する一の)変換候補の選択を受け付け、選択された前記変換候補に基づいて分析条件を生成する。
本発明によれば、項目値テキストの抽出の試行の都度、変換候補を表示して変換候補の選択を受け付け、選択された変換候補に基づいて分析条件を生成するため、(抽出した)項目値テキストをユーザーが所望する適切な形式に変換できる。
また、本発明は、印刷装置と通信可能に接続される接続部を備え、前記制御部は、前記印刷装置により印刷されるレシートに係る前記テキストデータを、前記印刷装置から取得する。
本発明によれば、印刷装置により印刷されるレシートに係るテキストデータからの項目値テキストの抽出について、ユーザーが行う操作を簡易化できる。
また、本発明は、前記抽出項目に対する前記項目値は、日付を示す値、合計金額を示す値、商品に関する情報を示す値のいずれかである。
本発明によれば、日付を示す値、合計金額を示す値、商品に関する情報を示す値のいずれかを表す項目値テキストの抽出について、ユーザーが行う操作を簡易化できる。
また、上記課題を解決するために、本発明は、印刷媒体に印刷される情報がテキストで記述されたテキストデータから、抽出条件に一致するテキストを抽出可能な情報処理装置の制御方法であって、前記印刷媒体に前記情報が印刷されるレイアウトに準じて前記テキストデータを表示する画面において、抽出項目に関連する抽出項目関連テキストの選択を受け付け、前記抽出項目関連テキストが選択された状態で、前記抽出項目に対応する複数の設定項目をメニューとして表示して前記設定項目の選択を受け付け、項目値設定項目が選択された場合、前記抽出項目関連テキストを前記抽出項目の項目値を表す項目値テキストとして設定し、前記テキストデータにおける前記項目値テキストの相対位置、及び、前記項目値テキストの属性の少なくともいずれかに基づいて、前記テキストデータから前記項目値テキストを抽出するための前記抽出条件を生成し、生成した前記抽出条件に一致するテキストを前記項目値テキストとして抽出する。
本発明によれば、ユーザーは、メニューから項目値設定項目を選択して抽出項目関連テキストを項目値テキストとして設定する、という簡易な作業を行って抽出条件を生成することが可能になる。すなわち、情報処理装置による項目値テキストの抽出について、ユーザーが行う操作を簡易化できる。
また、上記課題を解決するために、本発明は、印刷媒体に印刷される情報がテキストで記述されたテキストデータから、抽出条件に一致するテキストを抽出可能な情報処理装置が備える制御部により実行されるプログラムであって、前記制御部に、前記印刷媒体に前記情報が印刷されるレイアウトに準じて前記テキストデータを表示する画面において、抽出項目に関連する抽出項目関連テキストの選択を受け付けさせ、前記抽出項目関連テキストが選択された状態で、前記抽出項目に対応する複数の設定項目をメニューとして表示して前記設定項目の選択を受け付けさせ、項目値設定項目が選択された場合、前記抽出項目関連テキストを前記抽出項目の項目値を表す項目値テキストとして設定させ、前記テキストデータにおける前記項目値テキストの相対位置、及び、前記項目値テキストの属性の少なくともいずれかに基づいて、前記テキストデータから前記項目値テキストを抽出するための前記抽出条件を生成させ、生成した前記抽出条件に一致するテキストを前記項目値テキストとして抽出させる。
本発明によれば、ユーザーは、メニューから項目値設定項目を選択して抽出項目関連テキストを項目値テキストとして設定する、という簡易な作業を行って抽出条件を生成することが可能になる。すなわち、情報処理装置による項目値テキストの抽出について、ユーザーが行う操作を簡易化できる。
本実施形態に係る情報処理システムの構成を示す図。 情報処理システムの各装置の機能的構成を示すブロック図。 POS端末、印刷装置、制御サーバーの動作を示すフローチャート。 印刷データの一例を示す図。 レシートの一例を示す図。 印刷テキストデータの一例を示す図。 分析プログラム群管理データベースの一例を示す図。 分析データ管理データベースの一例を示す図。 第1ユーザーインターフェースの一例を示す図。 第2ユーザーインターフェースの一例を示す図。 第3ユーザーインターフェースの一例を示す図。 第4ユーザーインターフェースの一例を示す図。 第5ユーザーインターフェースの一例を示す図。 制御サーバーの動作を示すフローチャート。 第6ユーザーインターフェースの一例を示す図。 第7ユーザーインターフェースの一例を示す図。 第7ユーザーインターフェースの一例を示す図。 第7ユーザーインターフェースの一例を示す図。 第7ユーザーインターフェースの一例を示す図。 第7ユーザーインターフェースの一例を示す図。 第8ユーザーインターフェースの一例を示す図。 第9ユーザーインターフェースの一例を示す図。 第10ユーザーインターフェースの一例を示す図。 第11ユーザーインターフェースの一例を示す図。 抽出条件の生成を説明するための図。
図1は、本実施形態に係る情報処理システム1の構成を示す図である。
図1に示すように、情報処理システム1は、複数の店舗システム11を備える。店舗システム11は、スーパーマーケットや、コンビニエンスストア、デパート、飲食店等の店舗に用いられるシステムである。店舗は、商品の提供が行われ、商品の提供に応じて、顧客による会計が行われる施設であればよい。本実施形態において、「商品」は、物体として顧客に引き渡される商品だけでなく、顧客に提供されるサービスや、顧客に提供される飲食物等、対価と引き換えに顧客に提供される対象を意味する。
店舗システム11は、顧客が購入した商品に応じた会計を行う機能、会計に応じてレシートを発行する機能等を備える。
店舗システム11が適用される店舗には、顧客が会計を行なうレジカウンターLが設けられる。レジカウンターLには、ロール紙(印刷媒体)に印刷する機能を有する印刷装置12が設けられる。また、レジカウンターLには、印刷装置12と通信可能に接続され、印刷装置12を制御するPOS端末13が設けられる。
レジカウンターLにおける会計に際し、レジ担当者は、印刷装置12に接続されたバーコードリーダーBRで商品や商品の包装に付されたバーコードを読み取り、また、POS端末13に対して会計に対応する入力を行う。印刷装置12は、バーコードリーダーBRによる読み取りに基づくデータを、POS端末13に送信する。POS端末13は、印刷装置12から受信したバーコードリーダーBRの読み取りに基づくデータや、レジ担当者による会計に対応する入力に基づいて、印刷装置12を制御し、印刷装置12にレシートを発行させる。印刷装置12により発行されたレシートは、レジ担当者により顧客に引き渡される。
印刷装置12、及び、POS端末13の構成、機能、及び、機能に基づく処理については後述する。
店舗システム11は、ローカルエリアネットワークLNを備える。
ローカルエリアネットワークLNには、印刷装置12が接続される。また、ローカルエリアネットワークLNには、通信装置14が接続される。通信装置14は、ローカルエリアネットワークLNと、インターネット、電話網、その他の通信網を含むグローバルネットワークGNとを接続するインターフェース装置である。通信装置14は、モデム又は、ONU(Optical Network Unit)に係る機能、ルーター機能、NAT(Network Address Translation)機能、及び、DHCP(Dynamic Host Configuration Protocol)サーバー機能等を有する。通信装置14は、ローカルエリアネットワークLNに接続された機器と、グローバルネットワークGNに接続された機器との間で行われる通信に際し、機器間で送受信されるデータを転送する。なお、図1では、通信装置14を1つのブロックで表現するが、通信装置14は、機能に応じた複数の装置を有する構成でもよい。
印刷装置12は、通信装置14を介して、グローバルネットワークGNにアクセス可能である。
グローバルネットワークGNには、制御サーバー15(情報処理装置)が接続される。制御サーバー15は、印刷装置12と通信可能なサーバー装置である。すなわち、制御サーバー15は、クライアントからの要求等をトリガーとして、所定の演算処理を実行する。制御サーバー15は、必要に応じて、演算処理の結果に基づくデータを、クライアントに送信する。なお、図1では、制御サーバー15を、1つのブロックによって表現するが、これは制御サーバー15が単一のサーバー装置により構成されることを意味するものではない。例えば、制御サーバー15は、複数のサーバー装置を含んで構成されたものでもよい。すなわち、制御サーバー15は、後述する各種処理を実行可能な構成であれば、その形態を問わない。
図2は、情報処理システム1が備える各装置の機能的構成を示すブロック図である。
POS端末13は、例えば、前面の広い領域にタッチパネル22が設けられたタブレット型の(板状の)端末である。なお、POS端末13は、デスクトップ型等の据え置き型の端末でもよい。POS端末13は、レジカウンターLにおける会計に際し、会計に関する各種処理を実行して印刷装置12を制御するホストコンピューターとして機能する。
図2に示すように、POS端末13は、POS端末制御部20と、POS端末通信部21と、タッチパネル22と、POS端末記憶部23と、を備える。
POS端末制御部20は、CPU等のプロセッサー(図示略)や、ROM、RAM、ASIC、信号処理回路等を備え、POS端末13の各部を制御する。POS端末制御部20は、例えばCPU等のプロセッサーが、ROMに記憶されたプログラムをRAMに読み出して処理を実行し、また例えばASICに実装された機能により処理を実行し、また例えば信号処理回路で信号処理を行って処理を実行する等、ハードウェア及びソフトウェアの協働により処理を実行する。POS端末13には、所定のアプリケーションが事前にインストールされる。POS端末制御部20は、当該所定のアプリケーション、当該所定のアプリケーションに付随するプログラム(OSや、API、プラグイン等)、その他のプログラムを読み出して実行することにより、アプリケーション実行部201として機能する。
POS端末通信部21は、POS端末制御部20の制御で、所定の通信の規格に従って、印刷装置12と通信する。本実施形態のPOS端末通信部21は、所定の無線通信の規格に従って、印刷装置12と通信する。POS端末13と印刷装置12との間で行われる通信の無線通信規格は、アドホックモードに対応する無線LANに係る規格や、インフラストラクチャーモードに対応する無線LANに係る規格、Bluetooth(登録商標)等の近距離無線通信に係る規格等、どのような規格でもよい。なお、POS端末通信部21は、所定の有線通信の規格に従って、印刷装置12と通信してもよい。
タッチパネル22は、液晶表示パネル等の表示パネルと、表示パネルに重ねて、或いは一体に設けられたタッチセンサーとを備える。表示パネルは、POS端末制御部20の制御で、各種画像を表示する。タッチセンサーは、タッチ操作を検出し、POS端末制御部20に出力する。POS端末制御部20は、タッチセンサーからの入力に基づいて、タッチ操作に対応する処理を実行する。
POS端末記憶部23は、不揮発性メモリーを備え、各種データを記憶する。
印刷装置12は、ロール紙を収容し、収容したロール紙にライン型のサーマルヘッドでドットを形成して文字や画像等を印刷するサーマルプリンターである。なお、本実施形態に係る印刷装置12の印刷方式はサーマル方式であるが、印刷装置12の印刷方式は、サーマル方式に限らず、インクジェット方式等の他の印刷方式でもよい。また、印刷装置12の印刷ヘッドは、ライン型に限らず、シリアル型でもよい。
図2に示すように、印刷装置12は、印刷装置制御部30と、印刷部31と、印刷装置記憶部32と、印刷装置通信部33と、印刷装置ネットワーク通信部34と、デバイス通信部35と、を備える。
印刷装置制御部30は、CPU等のプロセッサー(図示略)や、ROM、RAM、ASIC、信号処理回路等を備え、印刷装置12の各部を制御する。印刷装置制御部30は、例えばCPU等のプロセッサーが、ROMに記憶されたプログラムをRAMに読み出して処理を実行し、また例えばASICに実装された機能により処理を実行し、また例えば信号処理回路で信号処理を行って処理を実行する等、ハードウェア及びソフトウェアの協働により処理を実行する。
印刷部31は、印刷装置12の筐体に収容されたロール紙を搬送する搬送機構や、サーマルヘッドによってロール紙にドットを形成して画像を印刷する印刷機構、ロール紙を所定の位置で切断する切断機構等のロール紙への印刷に関する各種機構を備える。印刷部31は、印刷装置制御部30の制御で、搬送機構によりロール紙を搬送し、印刷機構によりロール紙にレシートに係る画像を印刷し、切断機構により所定の位置でロール紙を切断して、レシートを発行する。
印刷装置記憶部32は、不揮発性メモリーを備え、各種データを記憶する。
印刷装置通信部33は、印刷装置制御部30の制御で、POS端末13と所定の通信規格に従って通信する。本実施形態では、印刷装置通信部33は、POS端末13と所定の無線通信規格に従って通信する。POS端末13と印刷装置12との間で行われる通信の無線通信規格は、アドホックモードに対応する無線LANに係る規格や、インフラストラクチャーモードに対応する無線LANに係る規格、Bluetooth等の近距離無線通信に係る規格等、どのような規格でもよい。なお、印刷装置通信部33は、POS端末13と所定の有線規格に従って通信してもよい。
印刷装置ネットワーク通信部34は、印刷装置制御部30の制御で、グローバルネットワークGNと接続する機器(制御サーバー15を含む)と所定の通信規格に従って通信する。印刷装置ネットワーク通信部34が通信に用いる通信規格は、HTTPや、WebSocket等、どのような規格でもよい。
デバイス通信部35は、USBの規格に従ったポートや、USB以外のシリアル通信規格(RS232C等)に従ったポート、パラレル通信規格(IEEE1284等)に従ったポート、有線LANに係る通信規格(イーサネット(登録商標)等)に従ったポート、その他ポートを有するインターフェースボードを備える。各ポートには、デバイスが接続可能である。デバイス通信部35は、印刷装置制御部30の制御で、ポートを介して印刷装置12に接続されたデバイスと通信する。
なお、デバイス通信部35が、無線通信機能を備え、デバイスと無線通信する構成でもよい。
印刷装置12には、デバイスとして、バーコードリーダーBR、カスタマーディスプレーCD、及び、自動釣銭機JTが接続される。
バーコードリーダーBRは、商品や、商品の包装等に付されたバーコードを読み取り、読取結果を示すデータをデバイス通信部35に出力する。デバイス通信部35は、バーコードリーダーBRから入力されたデータを、印刷装置制御部30に出力する。
カスタマーディスプレーCDは、印刷装置制御部30の制御で、会計に関する情報を表示する。カスタマーディスプレーCDに表示された情報は、レジカウンターLで会計を行う顧客が視認できる。
自動釣銭機JTは、顧客から受け取った貨幣を投入する貨幣受取口と、釣銭に係る貨幣を排出する釣銭排出口とを備え、印刷装置制御部30の制御で、貨幣受取口を介して貨幣が投入された場合、対応する釣銭を釣銭排出口から排出する。
図2に示すように、制御サーバー15は、制御サーバー制御部40(制御部)と、制御サーバーネットワーク通信部41(接続部)と、制御サーバー記憶部42と、制御サーバー表示部43と、制御サーバー入力部44とを備える。
制御サーバー制御部40は、CPU等のプロセッサー(図示略)や、ROM、RAM、ASIC、信号処理回路等を備え、制御サーバー15の各部を制御する。制御サーバー制御部40は、例えばCPU等のプロセッサーが、ROMや制御サーバー記憶部42に記憶されたプログラムをRAMに読み出して処理を実行し、また例えばASICに実装された機能により処理を実行し、また例えば信号処理回路で信号処理を行って処理を実行する等、ハードウェア及びソフトウェアの協働により処理を実行する。
制御サーバーネットワーク通信部41は、制御サーバー制御部40の制御で、グローバルネットワークGNと通信可能に接続する機器(印刷装置12を含む)と所定の通信規格に従って通信する。制御サーバーネットワーク通信部41が通信に用いる通信規格は、HTTPや、WebSocket等、どのような規格でもよい。
制御サーバー記憶部42は、不揮発性メモリーを備え、各種データを記憶する。制御サーバー記憶部42は、分析プログラム群管理データベース421と、分析データ管理データベース422とを記憶する。これらデータベースについては後述する。
制御サーバー表示部43は、表示パネルを備え、制御サーバー制御部40の制御で、表示パネルに各種情報を表示する。
制御サーバー入力部44は、キーボード、マウス、その他の入力手段を備え、入力手段に対するユーザーの操作を検出し、制御サーバー制御部40に出力する。制御サーバー制御部40は、制御サーバー入力部44からの入力に基づいて、入力手段に対するユーザーの操作に対応する処理を実行する。
次に、レジカウンターLで顧客の会計が行われた場合の、POS端末13、印刷装置12、及び、制御サーバー15の動作について説明する。
図3は、レジカウンターLで会計が行われた場合のPOS端末13、印刷装置12、及び、制御サーバー15の動作を示すフローチャートである。図3のフローチャートFAはPOS端末13の動作を示し、フローチャートFBは印刷装置12の動作を示し、フローチャートFCは制御サーバー15の動作をそれぞれ示す。
図3のフローチャートFAに示すように、POS端末13のPOS端末制御部20のアプリケーション実行部201は、顧客の会計に応じて会計処理を実行し、会計処理に基づいて印刷データを生成する(ステップSA1)。
ステップSA1の処理について詳述すると、アプリケーション実行部201は、タッチパネル22に、会計に対応する入力が可能なユーザーインターフェースを表示させる。アプリケーション実行部201は、タッチパネル22に対するレジ担当者の入力や、顧客の会計に伴う印刷装置12からの入力に応じて、レシート情報を生成する。レシート情報とは、印刷装置12に発行させるレシートに印刷される情報である。レシート情報の具体的な内容については、後に、例を挙げて説明する。次いで、アプリケーション実行部201は、生成したレシート情報に基づいて、印刷データを生成する。印刷データは、所定のレイアウトでレシート情報を印刷しレシートとしての発行を指示するデータである。印刷データは、印刷装置12のコマンド体系に従った複数の制御コマンドを含んで構成される。
図4は、印刷データの一例である印刷データDT1を示す図である。
図4に示すように、印刷データDT1は、グラフィック画像印刷指示コマンドCM1と、文字列印刷関連コマンド群GMと、改行コマンドLFと、カットコマンドCM4とを含む。また、文字列印刷関連コマンド群GMは、文字列装飾コマンドCM2と、文字列印刷指示コマンドCM3とを含む。
グラフィック画像印刷指示コマンドCM1は、専用の命令コードと、ビットマップデータ等のイメージデータとを含み、イメージデータに基づくグラフィック画像の印刷を指示する制御コマンドである。イメージデータとは、ドットマトリックス状に配置されたドットについて、各ドットの色に関する情報を保持するデータである。グラフィック画像は、フォントデータに基づいて印刷される画像ではなく、ホストコンピューターとして機能する装置(本実施形態では、POS端末13)から受信したイメージデータに基づいて印刷される画像である。後述するロゴ情報J1は、グラフィック画像に相当する。
文字列印刷関連コマンド群GMに含まれる文字列印刷指示コマンドCM3は、1行分の文字列の印刷を指示する制御コマンドである。文字列印刷指示コマンドCM3は、専用の命令コードと、印刷を指示する文字列の情報(文字列を構成する1又は複数の文字の文字コードの組み合わせ)と、を含む。文字列印刷関連コマンド群GMに含まれる文字列装飾コマンドCM2は、文字列印刷指示コマンドCM3によって印刷が指示された文字列に施す装飾を指定する制御コマンドである。文字列に施す装飾としては、例えば、右寄せや、中央寄せ、左寄せ、太字化、アンダーラインの付加、強調点の付加、白黒の反転、回転、拡大、縮小等が挙げられる。
印刷装置12の印刷装置記憶部32は、印刷可能な文字のそれぞれのフォントデータを記憶する。印刷装置12の印刷装置制御部30は、1の文字列印刷関連コマンド群GMに基づいて文字列を印刷する場合、以下の処理を実行する。まず、印刷装置制御部30は、所定の手段で、当該1の文字列印刷関連コマンド群GMに含まれる文字列印刷指示コマンドCM3に含まれる文字コードのそれぞれを、対応するフォントデータのそれぞれに変換する。次いで、印刷装置制御部30は、フォントデータのそれぞれに、当該1の文字列印刷関連コマンド群GMに含まれる文字列装飾コマンドCM2が指定する装飾を施し、フォントデータのそれぞれを画像バッファーに展開する。次いで、印刷装置制御部30は、画像バッファーに展開したフォントデータのそれぞれに基づいて印刷部31を制御し、1行分の文字列を印刷する。
改行コマンドLFは、改行を指示するコマンドである。カットコマンドCM4は、ロール紙の切断を指示するコマンドである。
図3のフローチャートFAに示すように、ステップSA1で印刷データを生成した後、アプリケーション実行部201は、POS端末通信部21を制御して、生成した印刷データを、印刷装置12に送信する(ステップSA2)。
図3のフローチャートFBに示すように、印刷装置12の印刷装置制御部30は、印刷装置通信部33を制御して、印刷データを受信する(ステップSB1)。次いで、印刷装置制御部30は、ステップSB1で受信した印刷データに基づいて、印刷部31を制御して、レシートを発行する(ステップSB2)。発行されたレシートは、顧客に引き渡される。
印刷データに基づいて印刷装置12により発行されるレシートの一例を、図5Aに示す。
なお、本実施形態では、文字コードが割り当てられた対象のことを「文字」と表現する。文字には、文字コードが割り当てられた記号や、文字コードが割り当てられた空白文字が含まれる。
図5Aで例示するレシートR1には、先頭に、店舗の名称を図案化したロゴ情報J1が印刷される。ロゴ情報J1は、上述したグラフィック画像印刷指示コマンドCM1に基づいて印刷される。
レシートR1において、ロゴ情報J1の下方は、店舗の住所を文字列で表す店舗住所情報J2が一行で印刷される。店舗住所情報J2は、中央寄せに係る装飾を指定する文字列装飾コマンドCM2と、店舗の住所を表す文字列の印刷を指示する文字列印刷指示コマンドCM3とを含む文字列印刷関連コマンド群GMに基づいて印刷される。
レシートR1において、店舗住所情報J2の一行下には、店舗の電話番号を文字列で表す店舗電話番号情報J3が一行で印刷される。店舗電話番号情報J3は、中央寄せに係る装飾を指定する文字列装飾コマンドCM2と、店舗の電話番号を表す文字列の印刷を指示する文字列印刷指示コマンドCM3とを含む文字列印刷関連コマンド群GMに基づいて印刷される。
レシートR1において、店舗電話番号情報J3の一行下には、第1エリア分割情報BK1が印刷される。第1エリア分割情報BK1は、文字「-」が一行内で、所定の個数、連続して構成された文字列である。レシートR1は、1つ目の第1エリア分割情報BK1によって印刷領域が区切られ、1つ目の第1エリア分割情報BK1よりも上方がエリア分けされる。以下、レシートR1において、第1エリア分割情報BK1よりも上方のエリア(ロゴ情報J1、店舗住所情報J2、及び、店舗電話番号情報J3を含むエリア)を「エリアAA1」とする。
レシートR1において、1つ目の第1エリア分割情報BK1の一行下には、レシート識別関連情報J4が印刷される。レシート識別関連情報J4は、レシートを識別する識別情報を文字列で表すレシート識別情報J42を有する。レシート識別情報J42の値は、レシートごとに異なる。また、レシート識別関連情報J4は、レシート識別情報J42の同一行において、レシート識別情報J42の前方(図5Aでは左方)に印刷され、レシート識別情報J42がレシートを識別する識別情報であることを明示する情報を文字列で表すレシート識別明示情報J41を有する。図5Aに示すように、レシートR1に係るレシート識別明示情報J41は、文字列「Check♯:」からなる情報である。レシート識別関連情報J4は、中央寄せに係る装飾を指定する文字列装飾コマンドCM2と、以下の文字列印刷指示コマンドCM3とを含む文字列印刷関連コマンド群GMに基づいて印刷される。文字列印刷指示コマンドCM3は、レシート識別明示情報J41を表す文字列と、1つの空白文字と、レシート識別情報J42を表す文字列とが連続する文字列の印刷を指示する制御コマンドである。
レシートR1において、レシート識別関連情報J4の一行下には、レシートが発行された日時を文字列で表す発行日時情報J5が印刷される。発行日時情報J5は、中央寄せに係る装飾を指定する文字列装飾コマンドCM2と、レシートが発行された日時を表す文字列の印刷を指示する文字列印刷指示コマンドCM3とを含む文字列印刷関連コマンド群GMに基づいて印刷される。
発行日時情報J5の一行下には、第1エリア分割情報BK1が印刷される。レシートR1は、1つ目の第1エリア分割情報BK1と、2つ目の第1エリア分割情報BK1とによって印刷領域が区切られ、これら情報で囲まれた領域がエリア分けされる。以下、レシートR1において、1つ目の第1エリア分割情報BK1と、2つ目の第1エリア分割情報BK1とで囲まれたエリアを「エリアAA2」とする。
レシートR1において、2つ目の第1エリア分割情報BK1の一行下には、1又は複数(図5Aでは2つ)の商品情報J6が印刷される。商品情報J6は、顧客が購入した商品に関する情報である。商品情報J6は、顧客が購入した商品の種類ごとに、レシートR1に印刷される。従って、例えば、顧客が購入した商品の種類が3つである場合は、3つの種類の商品のそれぞれに対応する3つの商品情報J6が印刷される。レシートR1に複数の商品情報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の位置が、「行」の末尾に位置するように、調整される。
レシートR1において、最下部に印刷される商品情報J6の一行下には、第2エリア分割情報BK2が印刷される。第2エリア分割情報BK2は、文字「~」が一行内で、所定の個数、連続して構成された文字列である。レシートR1は、2つ目の第1エリア分割情報BK1と、1つ目の第2エリア分割情報BK2とによって印刷領域が区切られ、これら情報で囲まれた領域がエリア分けされる。以下、レシートR1において、2つ目の第1エリア分割情報BK1と、1つ目の第2エリア分割情報BK2とで囲まれたエリアを「エリアAA3」とする。
レシートR1において、1つ目の第2エリア分割情報BK2の一行下には、小計金額関連情報J7が印刷される。小計金額関連情報J7は、小計金額を文字列で表す小計金額情報J72を有する。また、小計金額関連情報J7は、小計金額情報J72の同一行において、小計金額情報J72の前方(図5Aでは左方)に印刷され、小計金額情報J72が小計金額を示す情報であることを明示する情報を文字列によって表す小計金額明示情報J71を有する。図5Aに示すように、レシートR1に係る小計金額明示情報J71は、8個の大文字のアルファベットの文字列「SUBTOTAL」からなる文字列である。
小計金額関連情報J7は、左寄せに係る装飾を指定する文字列装飾コマンドCM2と、以下の文字列印刷指示コマンドCM3とを含む文字列印刷関連コマンド群GMに基づいて印刷される。文字列印刷指示コマンドCM3は、小計金額明示情報J71を表す文字列と、1個又は複数個の空白文字と、小計金額情報J72を表す文字列とが連続する文字列の印刷を指示する制御コマンドである。小計金額明示情報J71を表す文字列と、小計金額情報J72を表す文字列との間に挿入される空白文字の個数は、小計金額情報J72の位置が、「行」の末尾に位置するように、調整される。
レシートR1において、小計金額関連情報J7の一行下には、税関連情報J8が印刷される。税関連情報J8は、税額を文字列で表す税額情報J82を有する。また、税関連情報J8は、税額情報J82の同一行において、税額情報J82の前方(図5Aでは左方)に印刷され、税額情報J82が税額を示す情報であることを明示する情報を文字列によって表す税明示情報J81を有する。図5Aに示すように、レシートR1に係る税明示情報J81は、3個の大文字のアルファベットの文字列「TAX」からなる文字列である。
税関連情報J8は、左寄せに係る装飾を指定する文字列装飾コマンドCM2と、以下の文字列印刷指示コマンドCM3とを含む文字列印刷関連コマンド群GMに基づいて印刷される。文字列印刷指示コマンドCM3は、税明示情報J81を表す文字列と、1個又は複数個の空白文字と、税額情報J82を表す文字列とが連続する文字列の印刷を指示する制御コマンドである。税明示情報J81を表す文字列と、税額情報J82を表す文字列との間に挿入される空白文字の個数は、税額情報J82の位置が、「行」の末尾に位置するように、調整される。
レシートR1において、税関連情報J8の一行下には、合計金額関連情報J9が印刷される。合計金額関連情報J9は、合計金額を文字列で表す合計金額情報J92を有する。また、合計金額関連情報J9は、合計金額情報J92の同一行において、合計金額情報J92の前方(図5Aでは左方)に印刷され、合計金額情報J92が合計金額を示す情報であることを明示する情報を文字列によって表す合計金額明示情報J91を有する。図5Aに示すように、レシートR1に係る合計金額明示情報J91は、5個の大文字のアルファベットの文字列「TOTAL」からなる文字列である。
合計金額関連情報J9は、左寄せに係る装飾を指定する文字列装飾コマンドCM2と、以下の文字列印刷指示コマンドCM3とを含む文字列印刷関連コマンド群GMに基づいて印刷される。文字列印刷指示コマンドCM3は、合計金額明示情報J91と、1個又は複数個の空白文字と、合計金額情報J92を表す文字列とが連続する文字列の印刷を指示する制御コマンドである。合計金額明示情報J91を表す文字列と、合計金額情報J92を表す文字列との間に挿入される空白文字の個数は、合計金額情報J92の位置が、「行」の末尾に位置するように、調整される。以下、レシートR1において、第2エリア分割情報BK2よりも下方のエリア(小計金額関連情報J7、税関連情報J8、及び、合計金額関連情報J9を含むエリア)を「エリアAA4」とする。
以下の説明において、第1エリア分割情報BK1、及び、第2エリア分割情報BK2のように、後述する特殊文字が1行内において複数連続する文字列で示す情報を、「エリア分割情報BK」という。
このように、レシートR1は、以下のレイアウトでレシート情報が印刷される。すなわち、印刷領域に3つのエリア分割情報BKが印刷され、これら3つのエリア分割情報BKにより、印刷領域が、上から順番に、エリアAA1、エリアAA2、エリアAA3、及び、エリアAA4の4つのエリアに区分けされる。エリアAA1には、ロゴ情報J1、店舗住所情報J2、及び、店舗電話番号情報J3がこの順番で印刷される。エリアAA2には、レシート識別関連情報J4、及び、発行日時情報J5がこの順番で印刷される。エリアAA3には、1又は複数の商品情報J6が印刷される。また、商品情報J6は、1行内で、右へ向かって購入数量情報J61、商品名情報J62、及び単価情報J63の順番で印刷される。エリアAA4には、小計金額関連情報J7、税関連情報J8、及び、合計金額関連情報J9がこの順番で印刷される。
図3のフローチャートFBの説明に戻り、ステップSB2でレシートを発行した後、印刷装置制御部30は、印刷データに基づいて、印刷テキストデータ(テキストデータ)を生成する(ステップSB3)。印刷テキストデータは、印刷データに基づいてロール紙に印刷されるレシート情報のうち、文字として印刷されるレシート情報が、テキストとして記述されたテキストデータである。以下、ステップSB3の処理について詳述する。
ステップSB3において、印刷装置制御部30は、印刷データから、文字列の印刷に関する制御コマンドである文字列印刷指示コマンドCM3、及び、改行コマンドLFを抽出する。次いで、印刷装置制御部30は、抽出した制御コマンドに基づいて、レシートに文字として印刷されるレシート情報がテキストとして記述された印刷テキストデータを生成する。ここで、印刷装置制御部30は、印刷テキストデータに、印刷で行われる改行が反映された状態でレシート情報を記述する。また、印刷装置制御部30は、印刷テキストデータに、文字列装飾コマンドCM2で指定された装飾を反映しない状態でレシート情報を記述する。従って、文字列装飾コマンドCM2によって、文字列に施す装飾として、中央寄せ、右寄せが指示された場合でも、印刷テキストデータへのテキストの記述に際し、これら装飾は反映されない。
図5Bは、図5Aで例示したレシートR1に係る印刷データに基づいて生成される印刷テキストデータである印刷テキストデータT1の内容を示す図である。図5Bと、図5Aとの比較で明らかなとおり、印刷テキストデータT1には、レシートR1に文字として印刷されるレシート情報が、印刷における順番、及び、印刷における改行を反映した状態でテキストとして記述される。
なお、ロゴ情報J1は、グラフィック画像であるため、印刷テキストデータには、記述されない。すなわち、文字コードに対応するフォントデータに基づいて印刷される文字以外の情報は、印刷テキストデータには記述されない。
図3のフローチャートFBに示すように、ステップSB3で印刷テキストデータを生成した後、印刷装置制御部30は、シリアル番号J11、店舗識別情報J12、ステップSB1で受信した印刷データ、及び、ステップSB3で生成した印刷テキストデータを、制御サーバー15に送信する(ステップSB4)。シリアル番号J11は、印刷装置12の製造段階で、印刷装置12に一意に割り当てられる識別情報であり、印刷装置記憶部32の所定の記憶領域に記憶される。ステップSB4において、印刷装置制御部30は、印刷装置記憶部32の所定の記憶領域に記憶されたシリアル番号J11を取得する。店舗識別情報J12は、印刷装置12が設けられた店舗を識別する識別情報であり、印刷装置記憶部32の所定の記憶領域に記憶される。ステップSB4において、印刷装置制御部30は、印刷装置記憶部32の所定の記憶領域に記憶された店舗識別情報J12を取得する。
なお、本実施形態では、印刷装置12が印刷データから印刷テキストデータを生成する構成を例示しているが、POS端末13が印刷テキストデータを生成する構成でもよい。この場合、印刷装置12は、ステップSB3の処理をスキップし、POS端末13から受信した印刷テキストデータを、シリアル番号J11、店舗識別情報J12、及び、印刷データと共に制御サーバー15に送信する。また、制御サーバー15が、印刷データを印刷装置12から取得し印刷テキストデータを生成する構成でもよい。
ステップSB4において、シリアル番号J11等を送信するのに必要な通信に関する情報(送信先に関する情報や、通信に用いるプロトコル、送信するデータのフォーマット等)は、印刷装置12に事前に登録される。
図3のフローチャートFCに示すように、制御サーバー15の制御サーバー制御部40は、制御サーバーネットワーク通信部41を制御して、印刷装置12が送信したシリアル番号J11、店舗識別情報J12、印刷データ、及び、印刷テキストデータを受信する(ステップSC1)。
次いで、制御サーバー制御部40は、分析プログラム群管理データベース421を参照し、ステップSC1で受信したシリアル番号J11の値と同一の値のシリアル番号J11が対応付けられた分析プログラム群BPGを取得する(ステップSC2)。
図6は、分析プログラム群管理データベース421の1件のレコードが有する情報を模式的に示す図である。
図6に示すように、分析プログラム群管理データベース421の1件のレコードは、シリアル番号J11と、分析プログラム群BPGとを有する。
図6では、分析プログラム群BPGは、第1分析プログラムBP1~第15分析プログラムBP15の15個の分析プログラムBPを有する。分析プログラムBP(第1分析プログラムBP1~第15分析プログラムBP15)については後述する。
図3のフローチャートFCの説明に戻り、制御サーバー制御部40は、取得した分析プログラム群BPGに基づいてテキストデータ分析処理を実行する(ステップSC3)。
テキストデータ分析処理(以下、単に分析処理ともいう)は、印刷テキストデータから、抽出項目に対応する項目値(抽出項目の項目値)を表すテキスト(以下、「項目値テキスト」と表現する)を印刷テキストデータから抽出する抽出処理を実行する。以下では、抽出処理で抽出された項目値テキストが示す(意味する)項目値を、抽出項目値(または単に項目値)と表現する。この抽出処理には、項目値テキストを抽出できたこと、又は、項目値テキストを抽出できなかったことを検出する処理が含まれる。また、テキストデータ分析処理は、抽出処理において抽出した項目値テキストを、必要に応じてユーザーが所望する形式(ユーザーが活用可能な形式)に変換する変換処理を実行する。このように、項目値テキストには、変換処理を必要としない項目値テキストと、変換処理を必要とする項目値テキストとが含まれる。したがって、項目値テキストがそのまま抽出項目値になる場合と、項目値テキストに所定の変換処理を施したものが抽出項目値となる場合とがある。
なお、抽出項目とは、印刷テキストデータから項目値テキストを抽出(抽出項目値を取得)する対象の項目を示す。
本実施形態では、抽出項目として、顧客識別情報項目、会計割引情報項目、顧客人数情報項目、払戻有無情報項目、取消有無情報項目、会員情報項目、支払方法情報項目、発行日時情報項目、商品情報項目、レシート識別情報項目、販売方法情報項目、スタッフ情報項目、小計金額情報項目、税情報項目、及び、合計金額情報項目の15個の項目がある。これら抽出項目については、後に詳述する。
上述したように、本実施形態の分析プログラム群BPGは、複数の分析プログラムBPを有している。1の分析プログラムBPは、所定のスクリプト言語によって記述されたプログラムであり、1の抽出項目について、印刷テキストデータに対し抽出処理を実行し、抽出した項目値テキストに対して変換処理を実行する機能を有するプログラムである。本実施形態の分析プログラムBPは、印刷テキストデータから項目値テキストを抽出するための条件である抽出条件と、抽出した項目値テキストを抽出項目値にするための条件である分析条件と、が記述される処理フローにより定義される。抽出条件、及び、分析条件の具体的な内容については、後に説明する。
分析プログラム群BPGは、1の印刷テキストデータから、分析プログラムBPの数に対応する抽出項目について抽出項目値を取得する。図6では、分析プログラム群BPGは、第1分析プログラムBP1~第15分析プログラムBP15から構成されている。つまり、図6の場合では、分析プログラム群BPGは、15つの抽出項目のそれぞれについて、項目値テキストの抽出、及び、抽出項目値の取得を実行する機能を有する。
本実施形態では、分析プログラム群BPGは、顧客識別情報項目に対して、項目値テキストの抽出、及び、抽出項目値の取得を実行する機能を有する第1分析プログラムBP1を含む。
また、分析プログラム群BPGは、会計割引情報項目に対して、項目値テキストの抽出、及び、抽出項目値の取得を実行する機能を有する第2分析プログラムBP2を含む。
また、分析プログラム群BPGは、顧客人数情報項目に対して、項目値テキストの抽出、及び、抽出項目値の取得を実行する機能を有する第3分析プログラムBP3を含む。
また、分析プログラム群BPGは、払戻有無情報項目に対して、項目値テキストの抽出、及び、抽出項目値の取得を実行する機能を有する第4分析プログラムBP4を含む。
また、分析プログラム群BPGは、取消有無情報項目に対して、項目値テキストの抽出、及び、抽出項目値の取得を実行する機能を有する第5分析プログラムBP5を含む。
また、分析プログラム群BPGは、会員情報項目に対して、項目値テキストの抽出、及び、抽出項目値の取得を実行する機能を有する第6分析プログラムBP6を含む。
また、分析プログラム群BPGは、支払方法情報項目に対して、項目値テキストの抽出、及び、抽出項目値の取得を実行する機能を有する第7分析プログラムBP7を含む。
また、分析プログラム群BPGは、発行日時情報項目に対して、項目値テキストの抽出、及び、抽出項目値の取得を実行する機能を有する第8分析プログラムBP8を含む。
また、分析プログラム群BPGは、商品情報項目に対して、項目値テキストの抽出、及び、抽出項目値の取得を実行する機能を有する第9分析プログラムBP9を含む。
また、分析プログラム群BPGは、レシート識別情報項目に対して、項目値テキストの抽出、及び、抽出項目値の取得を実行する機能を有する第10分析プログラムBP10を含む。
また、分析プログラム群BPGは、販売方法情報項目に対して、項目値テキストの抽出、及び、抽出項目値の取得を実行する機能を有する第11分析プログラムBP11を含む。
また、分析プログラム群BPGは、スタッフ情報項目に対して、項目値テキストの抽出、及び、抽出項目値の取得を実行する機能を有する第12分析プログラムBP12を含む。
また、分析プログラム群BPGは、小計金額情報項目に対して、項目値テキストの抽出、及び、抽出項目値の取得を実行する機能を有する第13分析プログラムBP13を含む。
また、分析プログラム群BPGは、税情報項目に対して、項目値テキストの抽出、及び、抽出項目値の取得を実行する機能を有する第14分析プログラムBP14を含む。
また、分析プログラム群BPGは、合計金額情報項目に対して、項目値テキストの抽出、及び、抽出項目値の取得を実行する機能を有する第15分析プログラムBP15を含む。
なお、テキストデータ分析処理は、制御サーバー15にインストールされた制御プログラム、及び、当該制御プログラムに付随するプログラムの機能により実行される。
また、分析プログラムBPに対して、第1~第15と識別子を付しているが、この識別子は、対象とする抽出項目が異なることを示している。そのため、例えば、ある分析プログラム群BPGが有する第1分析プログラムBP1と、当該ある分析プログラム群BPGと異なる分析プログラム群BPGが有する第1分析プログラムBP1とは、対象とする抽出項目が同じであるだけで、抽出条件と分析条件とが同じであるとは限らない。
図3のフローチャートFCの説明に戻り、制御サーバー制御部40は、ステップSC3の分析処理の処理結果に基づいて分析データを生成する(ステップSC4)。分析データは、上述した抽出項目のそれぞれと、統括識別情報項目、シリアル番号項目、及び、店舗識別情報項目のそれぞれと、項目値(抽出項目の場合は抽出項目値)とが対応付けて記述されたJSON形式のデータである。また、分析データは、項目値テキストを印刷テキストデータから抽出できなかったことを示す情報(例えば、null値)が、必要に応じて抽出項目ごとに記述される。
統括識別情報項目は、項目値として、分析データを一意に識別する統括識別情報J17が対応付く項目である。シリアル番号項目は、項目値として、シリアル番号J11が対応付く項目である。店舗識別情報項目は、項目値として、店舗を一意に識別する店舗識別情報J12が対応付く項目である。
顧客識別情報項目は、項目値として、会計を行った顧客を識別する識別情報(以下、「顧客識別情報」と表現する)が対応付く抽出項目である。会計において、顧客識別情報が記録された顧客カードが読み取られ、レシートに顧客識別情報が印刷される場合がある。この場合、レシート情報に顧客識別情報が含まれ、印刷テキストデータに顧客識別情報を示す文字列が記述される。
会計割引情報項目は、会計割引名称情報項目と、会計割引額情報項目とが属する。
会計割引名称情報項目は、項目値として、会計に適用された割引の名称を示す情報(以下、「会計割引名称情報」と表現する)が対応付く抽出項目である。会計割引額情報項目は、項目値として、会計に適用された割引の金額を示す情報(以下、「会計割引額情報」と表現する)が対応付く抽出項目である。会計では、所定の割引が適用される場合がある。この場合において、レシートに、会計に適用された所定の割引に対応する会計割引名称情報、及び、会計割引額情報がレシートに印刷される場合がある。この場合、レシート情報に会計割引名称情報、及び、会計割引額情報が含まれ、印刷テキストデータに、会計割引名称情報を示す文字列、及び、会計割引額情報を示す文字列がテキストとして記述される。
顧客人数情報項目は、項目値として、会計を行った顧客の人数を示す情報(以下、「顧客人数情報」と表現する)が対応付く抽出項目である。
払戻有無情報項目は、項目値として、会計において払い戻しがあったか否かを示す情報が対応付く抽出項目である。会計では、払い戻しが行われる場合がある。この場合において、レシートに、払い戻しが行われたことを示す情報が印刷される場合がある。この場合、印刷テキストデータに、払い戻しが行われたことを示す情報を表す文字列がテキストとして記述される。
取消有無情報項目は、項目値として、会計が取り消されたか否かを示す情報が対応付く抽出項目である。会計は、取り消される場合がある。この場合において、レシートに、会計が取り消されたことを示す情報が印刷される場合がある。この場合、印刷テキストデータに、会計が取り消されたことを示す情報を表す文字列が記述される。
会員情報項目には、会員所属情報項目と、会員識別情報項目とが属する。
会員所属情報項目は、項目値として、顧客が所属するサービスプログラムの名称を示す情報(以下、「会員所属情報」と表現する)である。会員識別情報項目は、項目値として、顧客が所属するサービスプログラムにおいて顧客を識別する識別情報(以下、「会員識別情報」と表現する)である。会員情報項目についての詳細な説明は省略する。
支払方法情報項目には、支払方法名称情報項目と、支払額情報項目とが属する。
支払方法名称情報項目は、項目値として、支払い方法の名称を示す情報(以下、「支払方法名称情報」という。)が対応付く抽出項目である。支払額情報項目は、項目値として、支払方法名称情報に係る支払い方法で顧客が支払った金銭の額を示す情報(以下、「支払額情報」という。)である。支払方法情報項目についての詳細な説明は省略する。
発行日時情報項目は、項目値として、発行日時情報J5が対応付く抽出項目である。発行日時情報J5は、発行日と発行時間とが組み合わさった項目値であり、レシートが発行された日付を示す値である。
商品情報項目には、商品名情報項目と、購入数量情報項目と、単価情報項目とが属する。
商品名情報項目は、項目値として、商品名情報J62が対応付く抽出項目である。商品名情報J62は、商品に関する情報を示す値である。
購入数量情報項目は、項目値として、購入数量情報J61が対応付く抽出項目である。購入数量情報J61は、商品に関する情報を示す値である。
単価情報項目は、項目値として、単価情報J63が対応付く抽出項目である。単価情報J63は、商品に関する情報を示す値である。
レシート識別情報項目は、項目値として、レシート識別情報J42が対応付く抽出項目である。
レシート識別情報項目についての詳細な説明は省略する。
販売方法情報項目は、項目値として、商品の販売がどのような方法で行われたかを示す情報(以下、「販売方法情報」という。)が対応付く抽出項目である。販売方法情報項目の詳細な説明は省略する。
スタッフ情報項目は、項目値として、店舗におけるスタッフの名前を示す情報、又は、スタップを識別する識別情報(以下、「スタッフ情報」という。)である。スタッフとは、会計を担当した者や、店舗において顧客に対するサービスの提供を担当した者である。スタッフ情報項目についての詳細な説明は省略する。
小計金額情報項目は、項目値として、小計金額情報J72が対応付く抽出項目である。小計金額情報項目についての詳細な説明は省略する。
税情報項目には、項目値として、税額情報J82が対応付く抽出項目である。
合計金額情報項目は、項目値として、合計金額情報J92が対応付く抽出項目である。合計金額情報J92は、合計金額を示す値である。
なお、上述した項目値の中には、値(数値)として表現される情報でなく文字列として表現される情報を含む場合があるが、本実施形態においては項目値として扱う。
図3のフローチャートFCに示すように、制御サーバー制御部40は、分析データを生成すると、生成した分析データを分析データ管理データベース422に1件のレコードとして登録する(ステップSC5)。
図7は、分析データ管理データベース422の1件のレコードが有する情報を模式的に示す図である。
図7に示すように、分析データ管理データベース422の1件のレコードは、統括識別情報J13、シリアル番号J11、店舗識別情報J12、発行日時情報J5、印刷データ、印刷テキストデータ、及び、分析データを有する。
ステップSC5において、制御サーバー制御部40は、分析データに、対応する項目と対応付けて記述した統括識別情報J17、シリアル番号J11、店舗識別情報J12、及び、発行日時情報J5と、受信した印刷データ、及び、印刷テキストデータとを対応付けたレコードを、分析データ管理データベース422に登録する。
制御サーバー15には、複数のWebAPI(Application Programming Interface)が登録される。そして、制御サーバー15は、外部の装置のブラウザーからの要求に応じて、分析データ管理データベース422に基づいて、登録されたWebAPIにより処理を行って、ユーザーが必要とする情報を提供することができる。ここでいうユーザーとは、例えば、店舗を経営するオーナーや、店舗を管理する管理会社またはその管理会社の従業員、店舗の責任者等である。例えば、制御サーバー15の制御サーバー制御部40は、ユーザーによる外部の装置のブラウザーからの要求に応じて、分析データ管理データベース422の分析データを用いて、特定のレシートに係る合計金額情報J92を提供する。これにより、ユーザーは、合計金額情報J92を活用することができる。
以上のように、制御サーバー15の制御サーバー制御部40は、各分析プログラムBPの機能により、印刷テキストデータから項目値テキストを抽出する。レシートのレイアウトは、印刷装置12が異なると、異なる可能性がある。従って、1の印刷装置12が送信した印刷テキストデータを分析する分析プログラムBPは、当該1の印刷装置12のレイアウトを反映した処理を行って、抽出項目に対応する項目値テキストを的確に抽出することが求められる。
以上を踏まえ、本実施形態に係る制御サーバー15は、以下の処理を実行することにより、印刷装置12のレイアウトを反映して的確に項目値テキストを抽出する機能を有する分析プログラムBPを、ユーザーが簡易な操作を行って生成できるようにする。以下の説明では、分析プログラムBPに適用される抽出条件や分析条件を生成することを、分析プログラムBPを生成するとも表現する。
以下、複数の分析プログラムBPのうち、合計金額情報項目に対応した第15分析プログラムBP15、発行日時情報項目に対応した第8分析プログラムBP8、及び、商品情報項目に対応した第9分析プログラムBP9を、ユーザーの操作に基づいて生成する場合を例にして、制御サーバー15の処理について説明する。
なお、以下の説明では、制御サーバー15は、制御サーバー15が備える入力手段に対する操作に応じて、制御サーバー15が備える表示パネルにユーザーインターフェース(画面)を表示する。しかしながら、ユーザーが、制御サーバー15と通信可能な外部の装置に対して所定の操作を行い、制御サーバー15が、当該外部の装置からの要求に応じて、当該外部の装置にユーザーインターフェースを表示する構成でもよい。
ユーザーは、制御サーバー15の入力手段を操作して、分析プログラムBPを生成する処理(プログラム)を起動させる。制御サーバー制御部40は、ユーザーの指示に応じて、制御サーバー表示部43を制御して、表示パネルに第1ユーザーインターフェースUI1を表示する。
図8Aは、第1ユーザーインターフェースUI1の一例を示す図である。
図8Aに示すように、第1ユーザーインターフェースUI1は、ユーザーを識別するユーザーIDを入力する入力欄N1aと、ユーザーIDの認証を行うためのパスワードを入力する入力欄N1bと、入力欄N1a、N1bへの入力を確定するボタンB1とを有する。
ユーザーは、自身のユーザーIDを入力欄N1aに入力し、ユーザーIDに対応するパスワードを入力欄N1bに入力し、ボタンB1を操作して、入力を確定する。
入力されたユーザーIDとパスワードとの組み合わせが予め登録されている組み合わせと合致する場合、制御サーバー制御部40は、制御サーバー表示部43を制御して、表示パネルに第2ユーザーインターフェースUI2を表示する。
図8Bは、第2ユーザーインターフェースUI2の一例を示す図である。
図8Bに示すように、第2ユーザーインターフェースUI2は、ユーザーIDに対応付く店舗の数分、選択可能なボタンB2を有する。1のボタンB2は、1の店舗に関する店舗関連情報J14(店舗のブランド名や、店舗名、店舗の所在地、店舗に導入されている印刷装置12のシリアル番号J12等を含む情報)を表示している。図8Bでは、ボタンB2が一つである場合を例示しているが、ユーザーによって第2ユーザーインターフェースUI2が有するボタンB2の数は異なる。
例えば、ユーザーIDが示すユーザーが、店舗のオーナーである場合、第2ユーザーインターフェースUI2には、オーナーが経営する店舗に関する店舗関連情報J14を表示したボタンB2が、経営数分(店舗数分)表示される。また、ユーザーIDが示すユーザーが、店舗において印刷装置12等を設置する設置業者、或いは設置業者の従業員である場合、第2ユーザーインターフェースUI2には、設置業者、或いは設置業者の従業員が担当する店舗に関する店舗関連情報J14を表示したボタンB2が、担当する店舗数分表示される。
第2ユーザーインターフェースUI2において1のボタンB2が選択されると、制御サーバー制御部40は、選択されたボタンB2が示す店舗に導入されている印刷装置12を一覧表示するユーザーインターフェースを、表示パネルに表示する。そして、一覧表示された中から1の印刷装置12が選択された場合、制御サーバー制御部40は、制御サーバー表示部43を制御して、表示パネルに第3ユーザーインターフェースUI3を表示する。
図9Aは、第3ユーザーインターフェースUI3の一例を示す図である。
図9Aに示すように、第3ユーザーインターフェースUI3は、第2ユーザーインターフェースUI2において選択された店舗の1の印刷装置12に関する印刷装置関連情報J15(印刷装置12の型番や、印刷装置12のシリアル番号J11等を含む情報)を表示する。また、第3ユーザーインターフェースUI3は、分析プログラムBPを生成するためのユーザーインターフェースに遷移するためのボタンB3aと、一つ前のユーザーインターフェースに戻るためのボタンB3bとを有する。
第3ユーザーインターフェースUI3においてボタンB3aが選択された場合、制御サーバー制御部40は、制御サーバー表示部43を制御して、表示パネルに第4ユーザーインターフェースUI4を表示する。
図9Bは、第4ユーザーインターフェースUI4の一例を示す図である。
図9Bに示すように、第4ユーザーインターフェースUI4は、印刷テキストデータを表示するための表示領域A42と、表示領域A42に表示する印刷テキストデータを検索するための検索領域A41とを有する。
検索領域A41は、店舗関連情報J14(図9Bでは、店舗名)、印刷装置関連情報J15(図9Bでは、シリアル番号J11)、及び、表示領域A42に表示させる印刷テキストデータの指定や表示順を指定するためのボタンが複数集合したボタン群B4を有する。ボタン群B4が備えるボタンとしては、例えば、指定された期間内に発行されたレシートの印刷テキストデータを表示させるボタンや、発行日時が新しい順に印刷テキストデータを並び替えるボタン等が挙げられる。
表示領域A42は、検索領域A41における検索条件に合致する印刷テキストデータを選択可能に1又は複数表示する。図9Bでは、印刷テキストデータを二つずつ表示させている。図9Bでは、二つの印刷テキストデータTD41、TD42の一部が表示されているが、第4ユーザーインターフェースUI4においてスクロールや頁送り等の操作がされることで、隠れている印刷テキストデータTD41、TD42の部分が表示される。
制御サーバー制御部40は、表示領域A42に印刷テキストデータを表示する際、第2ユーザーインターフェースU12において指定された印刷装置12(第4ユーザーインターフェースUI4が示す印刷装置12)のシリアル番号J11と、検索領域A41で指定された期間内の発行日時情報J5とに合致するレコードを分析データ管理データベース422から取得する。そして、制御サーバー制御部40は、分析データ管理データベース422から取得したレコードに含まれる印刷テキストデータに基づいて、表示領域A42に印刷テキストデータを表示する。
第4ユーザーインターフェースUI4の表示領域A42において、1の印刷テキストデータが選択された場合、制御サーバー制御部40は、制御サーバー表示部43を制御して、表示パネルに第5ユーザーインターフェースUI5を表示する。
図10は、第5ユーザーインターフェースUI5の一例を示す図である。
第5ユーザーインターフェースUI5は、分析プログラム群BPGを生成する処理における初期画面である。より詳しくは、各分析プログラムBPが使用する抽出条件や分析条件を生成する処理における初期画面である。図10に示すように、第5ユーザーインターフェースUI5は、項目選択領域A51とテキスト表示領域A52を有する。
テキスト表示領域A52には、テキスト表示画面G52が表示される。テキスト表示画面G52は、印刷テキストデータに記述されたテキストが表示される画面である。
テキスト表示画面G52において表示される印刷テキストデータは、第4ユーザーインターフェースUI4の表示領域A42において選択された印刷テキストデータである。上述したように、印刷テキストデータは、レシートに文字として印刷されるレシート情報が、印刷における順番、及び、印刷における改行を反映した状態で記述されたテキストデータである。つまり、テキスト表示画面G52には、レシート情報が、レシートのレイアウトに準じて表示される。ユーザーは、テキスト表示画面G52を参照することにより、印刷テキストデータに記述されたレシート情報の内容、及び、対応するレシートのレイアウトを簡易かつ直感的に把握することができる。
制御サーバー制御部40は、テキスト表示画面G52において抽出項目関連テキストの選択を受け付ける。抽出項目関連テキストとは、抽出項目について、項目値テキストの抽出に関連するテキストであり、テキスト表示画面G52に表示される印刷テキストデータを構成する一部または全てのテキストがこれに該当しうる。なお、抽出項目関連テキストには、後述する項目名テキストの抽出に関連するテキストも含まれる。
また、抽出項目関連テキストの選択とは、テキスト表示画面G52においてテキストとして表示された文字や文字列を、抽出項目関連テキストとして選択することを示す。例えば、ユーザーのマウス操作により、抽出項目関連テキストは選択される。本実施形態では、文字の種類として、「空白文字」と、「特殊文字」と、「普通文字」とがある。空白文字は、空白を形成する文字である。特殊文字は、記号のうち、予め定められた記号である。特殊文字は、エリア分割情報等、特殊な意味を持つ情報に使用する可能性がある記号とされる。例えば、特殊文字は、文字「-」や、文字「~」、文字「=」、文字「:」等を含む。普通文字は、文字のうち、空白文字、及び、特殊文字を除く文字であり、主に英数字である。
項目選択領域A51には、項目選択画面G51が表示される。
項目選択画面G51は、上述した15個の抽出項目のそれぞれについて、抽出項目の名称を示す名称情報を、選択可能に一覧表示する。
すなわち、項目選択画面G51は、発行日時情報項目の名称情報を示す「Printed at」、商品情報項目の名称情報を示す「Products」、レシート識別情報項目の名称情報を示す「Receipt ID」、合計金額情報項目の名称情報を示す「Total」、顧客識別情報項目の名称情報を示す「Consumer ID」、会計割引情報項目の名称情報を示す「Discounts」、顧客人数情報項目の名称情報を示す「Guests」、払戻有無情報項目の名称情報を示す「Is Refund」、取消有無情報項目の名称情報を示す「Is Void」、会員情報項目の名称情報を示す「Memberships」、支払方法情報項目の名称情報を示す「Payment methods」、販売方法情報項目の名称情報を示す「Sales type」、スタッフ情報項目の名称情報を示す「Staff」、小計金額情報項目の名称情報を示す「Subtotal」、及び、税情報項目の名称情報を示す「Taxes」を、選択可能に一覧表示する。
項目選択画面G51において、名称情報が表示された抽出項目のうち、分析処理において項目値の取得が必須な項目については、必須項目であることを示すマークM5a(例えばアステリスク)が、名称情報と対応付けて表示される。図10の例では、「Printed at」、「Products」、「Receipt ID」、及び、「Total」の名称情報と対応付けて、マークM5aが表示される。これにより、ユーザーは、項目選択画面G51を参照することにより、分析処理における必須項目を、簡易かつ直感的に認識することができる。
制御サーバー制御部40は、第4ユーザーインターフェースUI4から第5ユーザーインターフェースUI5に遷移する際、第4ユーザーインターフェースUI4で選択された印刷テキストデータに対してデフォルトの分析プログラム群BPGに基づく分析処理を実行する。そして、制御サーバー制御部40は、この分析処理の処理結果を、第5ユーザーインターフェースUI5を表示する際、項目選択画面G51に表示する。デフォルトの分析プログラム群BPGとは、前回、後述のように生成された分析プログラムBPを含む分析プログラム群BPG、或いは、予め設けられた分析プログラム群BPGのことである。
図10に示すように、項目選択画面G51において、項目値の取得が完了している抽出項目については、項目値の取得が完了していることを示すマークM5b(例えばチェックマーク)が、名称情報と対応付けて表示される。図10の例では、「Consumer ID」、「Discounts」、「Memberships」、及び、「Subtotal」以外の名称情報と対応付けて、マークM5bが表示される。なお、項目値の取得が完了していない抽出項目については、マークM5bは表示されない。項目値の取得が完了していない抽出項目とは、分析プログラム群BPGにより生成された分析データにおいて、項目値テキストを抽出できなかったことを示す情報(例えば、null値)が記述されている抽出項目である。したがって、項目値の取得が完了していない抽出項目とは、項目値テキストが抽出できない抽出項目に相当する。このように、マークM5bを表示することにより、ユーザーは、項目選択画面G51を参照して、項目値の取得(項目値テキストの抽出)ができなかった抽出項目を、簡易かつ直感的に認識することができる。
また、項目選択画面G51には、名称情報に対応して、項目値関連情報が表示される。項目値関連情報は、取得した項目値、複数の項目値があることを示す情報、及び、項目値が取得できないことを示す情報を含む。
例えば、項目選択画面G51には、項目値「2017-10-05T14:24:34.000」が名称情報「Print at」に対応付き、項目値「Server」が名称情報「Receipt ID」に対応付き、項目値「35.36」が名称情報「Total」に対応付き、項目値「2」が名称情報「Guests」に対応付き、項目値「IN」が名称情報「Sales type」に対応付いて表示されている。
また、例えば、項目選択画面G51には、複数の項目値があることを示す情報「Select to see mapping details」が、名称情報「Products」、「Payment methods」、「Staff」、及び、「Taxes」のそれぞれに対応付いて表示されている。制御サーバー制御部40は、この情報が選択された場合、名称情報が示す抽出項目に属する複数の抽出項目(例えば商品情報項目の場合、商品名情報項目、購入数量情報項目、及び、単価情報項目)について、取得した項目値を表示する。
また、例えば、項目選択画面G51には、項目値が取得できていないことを示す情報「Not found」が表示される。項目値が取得できたことを示すマークM5bが付かない項目にはその名称情報に対応付けて「Not found」が表示される。
なお、図10では、デフォルトの分析プログラム群BPGによる分析の結果を示しているため、これらの項目値の中には、ユーザーが所望する項目値ではないもの(すなわち、誤った項目値)が含まれる場合がある。後述するようにユーザーが分析プログラム群BPGを生成することで、項目選択画面G51に表示される各項目値関連情報は、生成された分析プログラム群BPGによる分析結果に応じて変化する。
このように、項目選択画面G51に、名称情報と対応して項目値関連情報が表示されることで、ユーザーは、抽出項目ごとに項目値の取得状況がどのような状況であるのかを容易且つ直感的に認識できる。
図11は、制御サーバー15の動作を示すフローチャートである。
図11では、第5ユーザーインターフェースUI5に対するユーザーの操作を起点として、分析プログラム群BPGを生成する制御サーバー15の動作を示している。
<第15分析プログラムの生成>
合計金額情報項目に対応した第15分析プログラムBPを生成する場合について説明する。図11のフローチャートFDに示すように、制御サーバー制御部40は、第5ユーザーインターフェースUI5の項目選択画面G51において名称情報が選択されたか否かを判別する(ステップSD1)。
制御サーバー制御部40は、項目選択画面G51において名称情報が選択された場合、選択された名称情報が示す抽出項目に対応するユーザーインターフェースを表示する(ステップSD2)。
例えば、制御サーバー制御部40は、項目選択画面G51において「Total」の名称情報が選択(例えばマウスでクリック)された場合、合計金額情報項目に対応する第6ユーザーインターフェースUI6を表示する。
図12は、第6ユーザーインターフェースUI6の一例を示す図である。
図12に示すように、第6ユーザーインターフェースUI6は、選択領域A61とテキスト表示領域A62を有する。
テキスト表示領域A62には、テキスト表示画面G62が表示される。テキスト表示画面G62は、テキスト表示画面G52と同様、印刷テキストデータに記述されたテキストが表示される画面である。図10に示す第5ユーザーインターフェースUI5から図12に示す第6ユーザーインターフェースUI6に遷移した場合、テキスト表示画面G62が表示する印刷テキストデータは、テキスト表示画面G52と同じ印刷テキストデータである。
図12のテキスト表示画面G62には、印刷テキストデータの一部が表示されているが、スクロール等の操作に応じて、隠れている印刷テキストデータの部分が表示される。
選択領域A61には、選択画面G61が表示される。
選択画面G61は、ボタンB6aとボタンB6bとを有する。ボタンB6aは、第15分析プログラムBP15を生成する処理を開始するボタンであり、「Remap」の文字列が表示されている。ボタンB6bは、第15分析プログラムBP15の生成処理を終了するボタンであり、「OK」の文字列が表示されている。
また、選択画面G61には、ボタンB6aとボタンB6bとの下方に、現在の第15分析プログラムBP15(本実施形態では、デフォルトの第15分析プログラムBP15)による分析結果(抽出結果)が表示される。図12に示す例では、「Total」を示す抽出項目の名称情報と、「35.36」を示す項目値とが表示されている。このように、選択画面G61に抽出項目の名称情報と項目値とが表示されることで、ユーザーは、第15分析プログラムBP15の生成(変更も含む)が必要であるか否かを容易に判別できる。
第6ユーザーインターフェースUI6においてボタンB6bが選択されると、制御サーバー制御部40は、第6ユーザーインターフェースUI6から、第5ユーザーインターフェースUI5に遷移させる。一方で、第6ユーザーインターフェースUI6においてボタンB6aが選択された場合、制御サーバー制御部40は、制御サーバー表示部43を制御して、表示パネルに第7ユーザーインターフェースUI7を表示させる。
図13は、第7ユーザーインターフェースUI7の一例を示す図である。
図13に示すように、第7ユーザーインターフェースUI7は、設定領域A71とテキスト表示領域A72を有する。
テキスト表示領域A72には、テキスト表示画面G72が表示される。テキスト表示画面G72は、テキスト表示画面G62と同様の画面である。
設定領域A71には、設定画面G71が表示される。
設定画面G71は、ボタンB7a、ボタンB7b、ボタンB7c、及び、テキスト設定領域TA7を有する。
ボタンB7aは、第7ユーザーインターフェースUI7の表示を閉じるためのボタンである。第7ユーザーインターフェースUI7においてボタンB7aが選択された場合、制御サーバー制御部40は、制御サーバー表示部43を制御して、第7ユーザーインターフェースUI7の表示を閉じ、第6ユーザーインターフェースUI6を表示させる。
ボタンB7bは、テキスト設定領域TA7において設定された内容をクリアするためのボタンである。
ボタンB7cは、テキスト設定領域TA7において設定された内容に基づき、テキスト表示画面G72が表示する印刷テキストデータに対して分析処理の試行(実行)を指示するためのボタンである。ボタンB7cの選択後のユーザーインターフェースについては、後に説明する。
テキスト設定領域TA7(TA)は、項目名テキスト領域TA71と項目値テキスト領域TA72を有する。
項目名テキスト領域TA71は、テキスト表示画面G72が表示する印刷テキストデータから、ユーザーにより選択(設定)された項目名テキストを表示する。項目名テキストとは、印刷テキストデータから項目値テキストを抽出する際に、検索キーワードとして機能するテキストを示す。図13では、項目名テキストが設定される前の状態を示している。そのため、図13では、項目名テキストの設定を指示する情報(「select parts from the Receipt pane」)が表示されている。
また、項目値テキスト領域TA72は、テキスト表示画面G72が表示する印刷テキストデータから、ユーザーにより選択(設定)された項目値テキストを表示する。図13では、項目値テキストが設定される前の状態を示している。そのため、図13では、項目値テキストが設定されていないことを示す情報(「not selected」)が表示されている。
なお、図13では、項目名テキスト領域TA71が選択された状態を示しているため、項目名テキスト領域TA71に項目名テキストの設定を指示する情報が表示されているが、項目値テキスト領域TA72が選択された状態では、項目値テキスト領域TA72に項目値テキストの設定を指示する情報が表示され、項目名テキスト領域TA71に項目名テキストが設定されていないことを示す情報が表示される。
テキスト設定領域TA7は、第15分析プログラムBP15の生成に際して設定が必須な項目については、必須項目であることを示すマークM7(例えばアステリスク)が表示される。図13の例では、項目値テキスト領域TA72に、マークM7が表示される。これにより、ユーザーは、第15分析プログラムBP15を生成するに際して設定が必須な項目を、簡易かつ直感的に認識することができる。
図11のフローチャートFDの説明に戻り、ステップSD2において対応するユーザーインターフェース(UI6、UI7)を表示すると、制御サーバー制御部40は、ユーザーインターフェースUI7において抽出項目関連テキストが選択されたか否かを判別する(ステップSD3)。
制御サーバー制御部40は、抽出項目関連テキストが選択されたと判別した場合(ステップSD3:YES)、設定メニューを表示するトリガーが発生したか否かを判別する(ステップSD4)。このトリガーとしては、ユーザーの所定の操作(例えば、マウスの右クリック)が挙げられる。制御サーバー制御部40は、設定メニューを表示するトリガーが発生したと判別した場合、制御サーバー表示部43を制御して、設定メニューを表示する(ステップSD5)。ここで、設定メニューとは、選択された抽出項目関連テキストを、項目値テキスト又は項目名テキストとして設定するためメニューである。
図14Aは、設定メニューが表示された第7ユーザーインターフェースUI7の一例を示す図である。
図14Aの第7ユーザーインターフェースUI7では、テキスト表示画面G72で表示される印刷テキストデータにおいて「Total」を示す抽出項目関連テキストが選択された状態を示している。選択された抽出項目関連テキスト(文字列「TOTAL」)は、例えばハイライト表示により、他の抽出項目関連テキストと識別可能に表示される。
抽出項目関連テキストが選択された状態で、ユーザーにより例えばマウスの右クリック操作が行われると、設定メニューSM7aが表示される。設定メニューSM7aが表示される位置は、第7ユーザーインターフェースUI7上であればどこでもよいが、好ましくはテキスト表示画面G72内、より好ましくは選択された抽出項目関連テキストの近くである。
図14Aに示すように、設定メニューSM7aは、選択可能な複数の設定項目SKを有している。すなわち、設定メニューSM7aは、選択された抽出項目関連テキストを項目名テキストとして設定する項目名設定項目SK71(「Label」)と、選択された抽出項目関連テキストを項目値テキストとして設定する項目値設定項目SK72(「Amount」)とを有している。
なお、設定メニューSM7aが有する設定項目SKの種類は、抽出項目に応じて異なる。
設定メニューSM7aは、上述した設定項目SK以外に取止項目CK(「Unselect」)を選択可能に有する。取止項目CKは、選択されることにより、設定メニューSM7aの表示を閉じる項目である。
図11のフローチャートFDの説明に戻り、設定メニューを表示すると、制御サーバー制御部40は、設定メニューが有する設定項目SKが選択されたか否かを判別する(ステップSD6)。制御サーバー制御部40は、設定項目SKが選択されたと判別した場合(ステップSD6:YES)、選択された設定項目SKに応じて抽出項目関連テキストを処理する(ステップSD7)。すなわち、制御サーバー制御部40は、選択されている抽出項目関連テキストを、選択された設定項目SKに応じて、項目名テキスト又は項目値テキストとして設定し、テキスト設定領域TA7に表示させる。あるいは、取止項目CKが選択された場合には、設定メニューSM7aの表示を閉じる。
図14Bは、図14Aが表示する設定メニューSM7aにおいて設定項目SKが選択されステップSD7の処理が行われた場合の第7ユーザーインターフェースUI7の一例を示す図である。図14Bでは、項目名設定項目SK71が選択された場合の第7ユーザーインターフェースUI7を示している。
図14Bと図14Aとを比較して明らかな通り、項目名設定項目SK71が選択されると、制御サーバー制御部40は、設定メニューSM7aの表示を閉じ、項目名テキスト領域TA71に、選択されていた抽出項目関連テキスト(文字列「TOTAL」)を項目名テキストとして表示させる。
このように、ユーザーは、テキスト表示画面G72に表示された印刷テキストデータにおいて抽出項目関連テキストを選択し、設定メニューSM7aを表示させて項目名設定項目SK71を選択することにより、選択した抽出項目関連テキストを項目名テキストとして設定できる。
また、ユーザーは、項目値設定項目SK72を選択することにより、抽出項目関連テキストを項目値テキストとして設定することができる。
図15Aは、設定メニューSM7aが表示された第7ユーザーインターフェースUI7の一例を示す図である。図15Aでは、項目名テキストの設定後に、項目値テキストを設定する場合の第7ユーザーインターフェースUI7を示している。そのため、項目名テキスト領域TA71には、項目名テキストである「TOTAL」の文字列が表示されている。
図15Aの第7ユーザーインターフェースUI7では、テキスト表示画面G72に表示されている印刷テキストデータにおいて、抽出項目関連テキストとして「$35.36」が選択されている。
図15Aに示すように、抽出項目関連テキストが選択された状態で、ユーザーにより例えばマウスの右クリック操作が行われると、設定メニューSM7aが表示される。
図15Bは、図15Aが表示する設定メニューSM7aにおいて設定項目SKが選択されステップSD7の処理が行われた場合の第7ユーザーインターフェースUI7の一例を示す図である。図15Bでは、項目値設定項目SK72が選択された場合の第7ユーザーインターフェースUI7を示している。
図15Bと図15Aとを比較して明らかな通り、項目値設定項目SK72が選択されると、制御サーバー制御部40は、設定メニューSM7aの表示を閉じ、項目値テキスト領域TA72に、選択されていた抽出項目関連テキスト(文字列「$35.36」)を項目値テキストとして表示させる。
第7ユーザーインターフェースUI7には、図15Bに示すように、試行メニューSM7bが表示される。試行メニューSM7bは、例えば、ユーザーが、テキスト表示画面G72において、印刷テキストデータが存在しない領域でマウスを右クリックすることにより表示される。試行メニューSM7bは、試行実行項目SSK1と設定取止項目SSK2とを選択可能に有する。試行実行項目SSK1は、印刷テキストデータに対する分析処理の試行(実行)を指示するための項目である。設定取止項目SSK2は、項目名テキスト及び項目値テキストの設定を取り止めるための項目である。なお、試行メニューSM7bは、必須項目についての項目値テキスト(又は項目名テキスト)が設定されている場合に、有効に(選択可能に)表示してもよい。
図11のフローチャートFDの説明に戻り、制御サーバー制御部40は、項目値テキストが設定されたか否かを判別する(ステップSD8)。すなわち、制御サーバー制御部40は、必須の設定項目について項目値テキストが設定されたか否かを判別する。例えば、図14Bに示す第7ユーザーインターフェースUI7のように項目値テキストが設定されていない場合(ステップSD8:NO)、制御サーバー制御部40は処理をステップSD5に戻す。また、例えば、図15Bに示す第7ユーザーインターフェースUI7のように項目値テキストが設定されている場合(ステップSD8:YES)、制御サーバー制御部40は処理をステップSD9に移行させる。
制御サーバー制御部40は、ステップSD9において、必須設定項目である項目値テキストと任意設定項目である項目名テキストの設定に基づいて、抽出条件を生成する(ステップSD9)。例えば、図15Bに示す設定、すなわち、項目名テキスト及び項目値テキストが設定されている場合、制御サーバー制御部40は、以下の抽出条件を生成する。
抽出条件:項目値テキストとして印刷テキストデータから抽出するテキストは、「TOTAL」の文字列を示すテキストと同じ行であり、「TOTAL」の文字列を示すテキストの後方(図15Bでは右側)に位置し、空白文字を除く文字列(1文字も含む)を示すテキスト。
この抽出条件に一致するテキストは、第7ユーザーインターフェースUI7が表示する印刷テキストデータにおいて、文字列「$35.36」のテキストとなる。
このように、制御サーバー制御部40は、テキスト設定領域TA7において設定された項目名テキストに対する項目値テキストの位置を、印刷テキストデータにおける項目値テキストの相対位置とし、この相対位置に基づく抽出条件を生成する。これにより、制御サーバー制御部40は、分析処理の対象となる印刷テキストデータが、抽出条件生成時に参照したレイアウト(第7ユーザーインターフェースUI7のテキスト表示画面G72に表示された印刷テキストデータのレイアウト)である場合、的確に印刷テキストデータから項目値テキストを抽出できる。つまり、制御サーバー制御部40は、印刷テキストデータから合計金額情報J92を示す項目値テキストを的確に抽出できる。
制御サーバー制御部40は、抽出条件を生成すると、テキスト表示画面G72が表示する印刷テキストデータに対して分析処理の試行を実行するか否かを判別する(ステップSD10)。分析処理の試行とは、試行用分析プログラムによる印刷テキストデータの分析処理を示す。試行用分析プログラムとは、ステップSD9で生成した抽出条件と一致するテキストを項目値テキストとして抽出する分析プログラムBPであり、ここでは第15分析プログラムBP15の候補となる分析プログラムBPである。
例えば、図15Bに示す第7ユーザーインターフェースUI7において、「Map」の文字列が表示されたボタンB7cが選択された場合、制御サーバー制御部40は、分析処理の試行を実行すると判別する(ステップSD10:YES)。また、例えば、図15Bに示す第7ユーザーインターフェースUI7において、試行メニューSM7bから試行実行項目SSK1が選択された場合、制御サーバー制御部40は、分析処理の試行を実行すると判別する(ステップSD10:YES)。
制御サーバー制御部40は、試行を実行すると判別すると(ステップSD10:YES)、分析処理の試行を実行し、試行結果を表示させる(ステップSD11)。
図16は、第8ユーザーインターフェースUI8の一例を示す図である。
図16に示すように、第8ユーザーインターフェースUI8は、結果領域A81とテキスト表示領域A82を有する。
テキスト表示領域A82には、テキスト表示画面G82が表示される。テキスト表示画面G82は、テキスト表示画面G62、G72と同様の画面である。また、テキスト表示画面G82は、分析処理の試行の際に、検索キーワードとして使用した項目名テキスト、及び、抽出した項目値テキストを、他のテキストと異なる態様(例えば、ハイライト)で表示する。
結果領域A81には、結果画面G81が表示される。
結果画面G81は、ボタンB8a、ボタンB8b、ボタンB8c、及び、試行結果領域TA8を有する。
ボタンB8aは、第8ユーザーインターフェースUI8の表示を閉じるためのボタンである。第8ユーザーインターフェースUI8においてボタンB8aが選択された場合、制御サーバー制御部40は、制御サーバー表示部43を制御して、第8ユーザーインターフェースUI8の表示を閉じ、第6ユーザーインターフェースUI6、又は第5ユーザーインターフェースUI5を表示させる。
ボタンB8bは、第7ユーザーインターフェースUI7のテキスト設定領域TA7における再設定を実行するためのボタンである。第8ユーザーインターフェースUI8においてボタンB8bが選択された場合、制御サーバー制御部40は、制御サーバー表示部43を制御して、第8ユーザーインターフェースUI8の表示を閉じ、テキスト設定領域TA7に何も設定されていない状態の第7ユーザーインターフェースUI7を表示させる。
ボタンB8cは、試行用分析プログラムを第15分析プログラムBP15として確定するためのボタンである。第8ユーザーインターフェースUI8においてボタンB8cが選択された場合、制御サーバー制御部40は、生成した抽出条件を有する試行用分析プログラムを第15分析プログラムBP15として確定する。そして、制御サーバー制御部40は、制御サーバー表示部43を制御して、第8ユーザーインターフェースUI8の表示を閉じ、第5ユーザーインターフェースUI5を表示させる。このとき、制御サーバー制御部40は、第5ユーザーインターフェースUI5の項目選択画面G51に、合計金額情報項目(名称情報「Total」)の項目値として、新たに生成した抽出条件が適用された第15分析プログラムBP15により取得した項目値を表示させる。
第8ユーザーインターフェースUI8の試行結果領域TA8には、試行結果を示す試行結果情報が表示される。図16では、文字列「35.36」が試行結果情報として表示される。
制御サーバー制御部40は、試行結果情報の表示に際し、抽出条件に一致した項目値テキストを、ユーザーが所望する形式に変換し、変換した項目値テキストを項目値として取得し表示させる。図16の場合、制御サーバー制御部40は、「$35.36」を示す項目値テキストを、「$」を取り除いた形式に変換し、「35.36」を項目値として取得し表示させている。したがって、試行用分析プログラムには、「$35.36」を「35.36」に変換するための分析条件が定義されている。
ここでの分析条件は、例えば以下の条件である。
分析条件:抽出した項目値テキストの先頭の1文字「$」を外した形式に変換する。 この分析条件により、上述した抽出条件に一致し抽出された項目値テキストは、「$」が除かれた形式に変換される。
制御サーバー制御部40は、試行結果を表示すると、抽出条件を変更するか否かを判別する(ステップSD12)。例えば、制御サーバー制御部40は、第8ユーザーインターフェースUI8においてボタンB8bが選択された場合、抽出条件を変更すると判別する(ステップSD12:YES)。
抽出条件を変更すると判別した場合(ステップSD12:YES)、制御サーバー制御部40は、制御サーバー表示部43を制御して、第8ユーザーインターフェースUI8から第7ユーザーインターフェースUI7に遷移させ、処理をステップSD3に戻す。一方で、抽出条件を変更しないと判別した場合(ステップSD12:NO)、制御サーバー制御部40は、処理をステップSD13に移行させる。
制御サーバー制御部40は、ステップSD13において分析条件を変更するか否かを判別する(ステップSD13)。例えば、抽出した項目値テキストの形式を変換する変換候補が複数あり、後述する第10ユーザーインターフェースUI10(図17B参照)においてボタンB10dが選択された場合、制御サーバー制御部40は、分析条件を変更すると判別する(ステップSD13:YES)。なお、変換候補が複数ない抽出項目について分析プログラムBP(例えば、第15分析プログラムBP15等)を生成する場合、制御サーバー制御部40は、ステップSD13の処理をスキップしてもよい。制御サーバー制御部40は、分析条件を変更すると判別した場合(ステップSD13:YES)、他の変換候補を表示し(ステップSD14)、処理をステップSD13に戻す。ステップS13、及び、ステップSD14については、後に詳述する。
制御サーバー制御部40は、分析条件を変更しないと判別した場合(ステップSD13:NO)、試行用分析プログラムを分析プログラムBPとして確定するか否かを判別する(ステップSD15)。例えば、図16に示す第8ユーザーインターフェースUI8においてボタンB8cが選択された場合、制御サーバー制御部40は、試行用分析プログラムを第15分析プログラムBP15として確定すると判別する(ステップSD15:YES)。
制御サーバー制御部40は、分析プログラムBPを確定すると判別した場合(ステップSD15:YES)、確定した分析プログラムBPを分析プログラム群BPGに適用する(ステップSD16)。なお、適応対象となる分析プログラム群BPGは、図9Aに示す第3ユーザーインターフェースUI3で指定された印刷装置12のシリアル番号J11が対応付く分析プログラム群BPGである。
このように、制御サーバー制御部40は、抽出項目関連テキストの選択を受け付け、抽出項目関連テキストが選択された状態で、項目名設定項目SK71及び項目値設定項目SK72を設定メニューSM7aとして表示する。そして、制御サーバー制御部40は、項目値設定項目SK72が選択された場合、選択された抽出項目関連テキストを項目値テキストとして設定し、項目名設定項目SK71が選択された場合、選択された抽出項目関連テキストを項目名テキストとして設定する。そして、制御サーバー制御部40は、項目値テキストの相対位置(第15分析プログラムを生成する上述の実施形態では、項目名テキストに対する項目値テキストの位置)に基づいて、抽出条件を生成する。これにより、ユーザーは、印刷テキストデータから抽出したいテキストを選択し、項目値テキストおよび項目名テキストを設定するという簡易な操作によって、抽出条件(分析プログラムBP)を生成することができる。また、制御サーバー制御部40は、生成した第15分析プログラムBP15により、印刷テキストデータから合計金額情報J92を示す項目値テキストを的確に抽出できる。
以上では、第15分析プログラムBP15を生成する場合を例示し、分析プログラムBPの生成について説明した。他の分析プログラムBPついても、ユーザーは、第15分析プログラムBP15と同様、簡易な操作で生成できる。
<第8分析プログラムの生成>
第8分析プログラムBP8を生成する場合について説明する。上述した第15分析プログラムBP15の生成と同様に、図11に示すフローチャートに沿って説明するが、一部の処理の説明を省略又は簡略化することがある。
制御サーバー制御部40は、図10に示す第5ユーザーインターフェースUI5の項目選択画面G51において「Printed at」の名称情報が選択された場合(ステップSD1)、発行日時情報項目について、第6ユーザーインターフェースUI6(図12参照)と同様のユーザーインターフェースを表示する(ステップSD2)。
そして、制御サーバー制御部40は、このユーザーインターフェースにおいて第8分析プログラムBP8の生成を指示するためのボタン(図12のボタンB6aに相当)が選択された場合、制御サーバー表示部43を制御して、表示パネルに第9ユーザーインターフェースUI9を表示させる。
図17Aは、第9ユーザーインターフェースUI9の一例を示す図である。
図17Aに示すように、第9ユーザーインターフェースUI9は、設定領域A91とテキスト表示領域A92を有する。
テキスト表示領域A92には、テキスト表示画面G92が表示される。テキスト表示画面G92は、テキスト表示画面G62、G72と同様の画面であり、印刷テキストデータが表示される。
設定領域A91には、設定画面G91が表示される。
設定画面G91は、図13に示す第7インターフェースUI7が有するボタンB7a~B7cと同様のボタンB9a~B9c、テキスト設定領域TA91(TA)、及び、テキスト設定領域TA92(TA)を有する。
テキスト設定領域TA91は、発行日時のうち発行日(年、月、日)について、テキスト表示画面G92が表示する印刷テキストデータから選択され設定された項目値テキストを表示する項目値テキスト領域TA911を有する。図17Aでは、「10/5/2017」を示す項目値テキストが設定されている場合の項目値テキスト領域TA911を示している。
また、テキスト設定領域TA92は、発行日時のうち発行日について、テキスト表示画面G92が表示する印刷テキストデータから選択され設定された項目名テキストを表示する項目名テキスト領域TA912を有する。図17Aでは、項目名テキストが設定されていない場合の項目名テキスト領域TA912を示している。そのため、図17Aの項目名テキスト領域TA912には、項目名テキストの設定を指示する情報(「select parts from the Receipt pane」)が表示されている。
テキスト設定領域TA92は、発行日時のうち発行時間(時、分、秒)について、テキスト表示画面G92が表示する印刷テキストデータから選択され設定された項目値テキストを表示する項目値テキスト領域TA921を有する。図17Aでは、「02:24:34PM」を示す項目値テキストが設定されている場合の項目値テキスト領域TA921を示している。
また、テキスト設定領域TA92は、発行日時のうち発行時間について、テキスト表示画面G92が表示する印刷テキストデータから選択され設定された項目名テキストを表示する項目名テキスト領域TA922を有する。図17Aでは、項目名テキストが設定されていない場合の項目名テキスト領域TA922を示している。そのため、図17Aの項目名テキスト領域TA922には、項目名テキストが設定されていないことを示す情報(not selected)が表示されている。
なお、図17Aでは、項目名テキスト領域TA912が選択された状態を示しているため、項目名テキスト領域TA912に項目名テキストの設定を指示する情報が表示されているが、項目名テキスト領域TA922が選択された状態では、項目名テキスト領域TA922に項目名テキストの設定を指示する情報が表示され、項目名テキスト領域TA912に項目名テキストが設定されていないことを示す情報が表示される。
テキスト設定領域TA91、及び、テキスト設定領域TA92は、第8分析プログラムBP8の生成に際して設定が必須な項目については、必須項目であることを示すマークM9(例えばアステリスク)が表示される。図17Aの例では、項目値テキスト領域TA911、TA921と対応付けて、マークM9が表示される。これにより、ユーザーは、第8分析プログラムBP8を生成するに際して設定が必須な項目を、簡易かつ直感的に認識することができる。
以下、発行日の項目名テキストを設定する場合について説明する。
図17Aの設定メニューSM9は、選択された抽出項目関連テキストを発行日の項目値テキストとして設定する項目値設定項目SK91(「Date infomation(Date)」)と、選択された抽出項目関連テキストを発行日の項目名テキストとして設定する項目名設定項目SK92(「Date infomation(Label)」)と、選択された抽出項目関連テキストを発行時間の項目値テキストとして設定する項目値設定項目SK93(「Time infomation(Time)」)と、選択された抽出項目関連テキストを発行時間の項目名テキストとして設定する項目名設定項目SK94(「Time infomation(Label)」)とを有している。
制御サーバー制御部40は、印刷テキストデータにおいて、抽出項目関連テキストとして「10/5/2017」が選択された状態で、設定メニューSM9から項目値設定項目SK91が選択されると、抽出項目関連テキスト「10/5/2017」を発行日の項目値テキストとして設定し、図17Aのように項目値テキスト領域TA911に「10/5/2017」を表示させる(ステップSD3~SD7)。
同様にして、制御サーバー制御部40は、印刷テキストデータにおいて、項目値関連テキストとして「02:24:34: PM」が選択された状態で、設定メニューSM9から項目値設定項目SK93が選択されると、抽出項目関連テキスト「02:24:34: PM」を発行時間の項目値テキストとして設定し、図17Aのように項目値テキスト領域TA921に「02:24:34: PM」を表示させる(ステップSD3~SD7)。
図17Aでは、テキスト表示画面G92に表示されている印刷テキストデータにおいて文字列「SETTLED」が抽出項目関連テキストとして選択されている状態を示している。この状態で例えばユーザーによりマウスの右クリック操作が行われると、制御サーバー制御部40は、設定メニューSM9を表示させる。設定メニューSM9から項目名設定項目SK92が選択されると、制御サーバー制御部40は、選択されている抽出項目関連テキスト(「SETTLED」)を発行日の項目名テキストとして設定し、項目名テキスト領域TA912にその文字列「SETTLED」を表示させる(ステップSD3~SD7)。なお、図17Aは、設定メニューSM9から項目名設定項目SK92が選択されている状態(文字列「SETTLED」が項目名テキストとして設定され表示される前の状態)を示している。
制御サーバー制御部40は、第9ユーザーインターフェースUI9において設定された設定内容に基づいて、抽出条件を生成する(ステップSD9)。例えば、発行日の項目名テキスト及び発行時間の項目名テキストとして文字列「SETTLED」が設定された場合、制御サーバー制御部40は、以下の抽出条件を生成する。
発行日の項目値テキストの抽出条件:発行日の項目値テキストは、文字列「SETTLED」と同じ行であり、「SETTLED」の文字列と空白文字を1つ挟んで後方(図17A、図17Bでは右側)に位置し、2つめの空白文字との間に位置する文字列を示すテキスト。
この抽出条件に一致するテキストは、テキスト表示画面G92が表示する印刷テキストデータにおいて、文字列「10/5/2017」のテキストとなる。
発行時間の項目値テキストの抽出条件:発行時間の項目値テキストは、文字列「SETTLED」と同じ行であり、「SETTLED」の文字列の後方(図17A、図17Bでは右側)であって2つめの空白文字以降の文字列(空白文字も含む)を示すテキスト。
この抽出条件に一致するテキストは、テキスト表示画面G92が表示する印刷テキストデータにおいて、文字列「02:24:34 PM」のテキストとなる。
図17Aにおいて「Map」の文字列が表示されたボタンB9cが選択された場合、制御サーバー制御部40は、生成した抽出条件に基づいて印刷テキストデータの分析処理の試行を実行する(ステップSD10)。そして、制御サーバー制御部40は、試行結果を後述する第10インターフェースUI10に表示する(ステップSD11)。
ここで、「10/5/2017」の項目値テキストは、「MM/D(又はDD)/YYYY」(MM:月/DD:日/YYYY:年)の形式Aと、「DD/M(又はMM)/YYYY」の形式Bとの2つが考えられる。このように、複数の形式(変換候補)が存在する場合、いずれか1の形式を適用して、抽出した項目値テキストが表す意味を明確にする必要がある。制御サーバー制御部40は、第10ユーザーインターフェースUI10により試行結果を表示し、どちらの形式を採用するか(どちらの形式が正しいか)をユーザーに選択させる。
図17Bは、第10ユーザーインターフェースUI10の一例を示す図である。
図17Bに示すように、第10ユーザーインターフェースUI10は、結果領域A101とテキスト表示領域A102を有する。
テキスト表示領域A102には、テキスト表示画面G102が表示される。テキスト表示画面G102は、テキスト表示画面G62、G72、G92と同様の画面である。また、テキスト表示画面G102は、試行の際に、検索キーワードとして使用した項目名テキスト、及び、抽出した項目値テキストを他のテキストと異なる態様(例えば、ハイライト)で表示する。
結果領域A101には、結果画面G101が表示される。
結果画面G101は、図16に示す第8ユーザーインターフェースUI8が有するボタンB8a~B8cと同様のボタンB10a~B10c、ボタンB10d、及び、試行結果領域TA10を有する。
ボタンB10dは、再試行を指示するボタンであり、ボタンB10dが選択(例えばマウスでクリック)されると、制御サーバー制御部40は、印刷テキストデータの分析処理を試行し、試行結果を試行結果領域TA10に表示させる。この場合に、制御サーバー制御部40は、抽出した項目値テキストに対し、先に行った試行で適用した形式と異なる形式を適用する。例えば、項目値テキスト「10/5/2017」に対し、先の試行で形式Aを適用して「2017年10月5日」とした場合、今回の試行では形式Bを適用して「2017年5月10日」とする。
採用しうる形式が3つ以上ある場合も同様に、試行の度に適用する形式を順に変更する。例えば3つの形式がある場合、形式A→形式B→形式C→形式A・・・の順で、試行の都度、採用する形式を変更する。
試行結果領域TA10は、試行結果を示す試行結果情報を表示する。図17Bでは、試行結果領域TA10は、試行結果情報として「2017-05-10T14:24:34:000」を表示している。制御サーバー制御部40は、抽出した項目値テキスト「10/5/2017」は2017年5月10日を意味すると分析し、「2017-05-10」と表示し、抽出した項目値テキスト「02:24:34 PM」は午後2時24分34秒を意味すると分析し、12時間表記を24時間表記に変換し、時刻を表す記号Tを付けて「T14:24:34:000」と表示している。
なお、試行結果領域TA10に表示する際、制御サーバー制御部40は、例えば予めユーザーにより指定された表示形式で、発行日や発行時間を表示させる。すなわち、抽出した項目値テキストに適用する形式(変換形式)と、試行結果領域TA10に表示する際に適用する表示形式は、同一とは限らず異なる場合もある。また、分析データ管理データベース422に記録するレコードには、例えば、試行結果領域TA10に表示する表示形式と同一の形式(記録形式)を採用している。
制御サーバー制御部40は、例えば、ボタンB10dが選択された場合、分析条件を変更すると判別する。制御サーバー制御部40は、分析条件を変更すると判別した場合(ステップSD13:YES)、再度試行し、他の変換候補を順に表示する(ステップSD14)。例えば、制御サーバー制御部40は、他の変換候補として「2017年10月5日午後2時24分34秒」を示す試行結果情報「2017-10-05T14:24:34:000」を表示する。
制御サーバー制御部40は、分析条件を変更しないと判別した場合(ステップSD13:NO)、試行用分析プログラムを第8分析プログラムBP8として確定するか否かを判別する(ステップSD14)。制御サーバー制御部40は、ユーザーによりボタンB10cが選択(例えばマウスでクリック)されると、試行用分析プログラムを第8分析プログラムBP8として確定すると判別し(ステップSD15:YES)、確定した第8分析プログラムBP8を分析プログラム群BPGに適用する(ステップSD16)。ここで、制御サーバー制御部40は、第8分析プログラムBP8を確定する際、直近の試行で適用した分析条件を含む試行用分析プログラムを第8分析プログラムBP8として確定する。
本実施形態において第8分析プログラムBP8に適用される分析条件は、以下の条件である。
発行日を表す項目値テキストに対する分析条件:「YYYY-MM-DD」の形式に変換する、発行日を表す項目値テキストは、「MM(又はM)/DD(又はD)/YYYY」の形式で構成される。
発行時間の抽出項目値で表す項目値テキストに対する分析条件:24時間制表記「THH:MM:SS:000」(Tは時刻を表す記号、H:時、M:分、S:秒)の形式に変換する、発行時間表す項目値テキストは、12時間制表記「HH:MM:SS (空白文字)AM又はPM)」の形式で構成される。
これらの分析条件に基づいて、発行日を表す項目値テキストは「YYYY-MM-DD」の形式に変換され、発行時間を表す項目値テキストは「HH:MM:SS:000」(24時間制表記)の形式に変換される。そして、これらを組み合わせた「YYYY-MM-DDTHH:MM:SS:000」の形式の項目値が、発行日時情報J5として取得される。
このように、制御サーバー制御部40は、変換候補が複数ある場合、試行の都度、変換候補を順に表示して変換候補の選択を受け付け、選択された変換候補に基づいて分析条件を生成する。
制御サーバー制御部40は、生成した抽出条件に基づいて項目値テキストを抽出し、生成した分析条件に基づいて、項目値テキストを変換する。したがって、制御サーバー制御部40は、第8分析プログラムBP8により、印刷テキストデータから発行日時情報J5を示す項目値テキストを抽出し、ユーザーが活用可能な形式に変換し、項目値として提供することができる。
<第9分析プログラムの生成>
第9分析プログラムBP9を生成する場合について説明する。上述した第15分析プログラムBP15の生成と同様に、図11に示すフローチャートに沿って説明するが、一部の処理の説明を省略又は簡略化することがある。
制御サーバー制御部40は、図10に示す第5ユーザーインターフェースUI5の項目選択画面G51において「Products」の名称が選択された場合(ステップSD1)、商品情報項目について、第6ユーザーインターフェースUI6(図12参照)と同様のユーザーインターフェースを表示する(ステップSD2)。
そして、制御サーバー制御部40は、このユーザーインターフェースにおいて第9分析プログラムBP9の生成を指示するためのボタン(図12のボタンB6aに相当)が選択された場合、制御サーバー表示部43を制御して、表示パネルに第11ユーザーインターフェースUI11を表示させる。
図18は、第11ユーザーインターフェースUI11の一例を示す図である。
図18に示すように、第11ユーザーインターフェースUI11は、設定領域A111とテキスト表示領域A112を有する。
テキスト表示領域A112には、テキスト表示画面G112が表示される。テキスト表示画面G112は、テキスト表示画面G62、G72と同様の画面である。
設定領域A111には、設定画面G111が表示される。
設定画面G111は、図13に示す第7インターフェースUI7が有するボタンB7a~B7cと同様のボタンB11a~B11c、及び、テキスト設定領域TA11(TA)を有する。
テキスト設定領域TA11は、購入数量について、テキスト表示画面G112が表示する印刷テキストデータから選択され設定された項目値テキストを表示する項目値テキスト領域TA111を有する。図18では、「1」を示す項目値テキストが設定されている場合の項目値テキスト領域TA111を示している。
また、テキスト設定領域TA11は、商品名について、テキスト表示画面G112が表示する印刷テキストデータから選択され設定された項目値テキストを表示する項目値テキスト領域TA112を有する。図18では、「mixed sandwich」を示す項目値テキストが設定されている場合の項目値テキスト領域TA112を示している。
また、テキスト設定領域TA11は、単価について、テキスト表示画面G112が表示する印刷テキストデータから選択され設定された項目値テキストを表示する項目値テキスト領域TA113を有する。図18では、「5.00」を示す項目値テキストが設定されている場合の項目値テキスト領域TA113を示している。
また、テキスト設定領域TA11は、付帯情報について、テキスト表示画面G112が表示する印刷テキストデータから選択され設定された項目値テキストを表示する項目値テキスト領域TA114を有する。付帯情報とは、商品に付帯する情報であり、例えば、ピザ(商品)にトッピングされる具材の情報である。図18では、項目値テキストが設定されていない場合の項目値テキスト領域TA114を示している。
テキスト設定領域TA11は、第9分析プログラムBP9の生成に際して設定が必須な項目については、必須項目であることを示すマークM11(例えばアステリスク)が表示される。図18の例では、項目値テキスト領域TA112、TA113と対応付けて、マークM11が表示される。これにより、ユーザーは、第9分析プログラムBP9を生成するに際して設定が必須な項目を、簡易かつ直感的に認識することができる。
第9分析プログラムBP9を生成する際も、項目値テキストを設定する場合、制御サーバー制御部40は、設定メニューを表示する。図18の設定メニューSM11は、選択された抽出項目関連テキストを購入数量の項目値テキストとして設定する項目値設定項目SK111(「Quantity」)と、選択された抽出項目関連テキストを商品名の項目値テキストとして設定する項目値設定項目SK112(「Name」)と、選択された抽出項目関連テキストを単価の項目値テキストとして設定する項目値設定項目SK113(「Price」)と、選択された抽出項目関連テキストを付帯情報の項目値テキストとして設定する項目値設定項目SK114(「Modifers」)とを有している。
制御サーバー制御部40は、印刷テキストデータにおいて、抽出項目関連テキストとして「1」が選択された状態で、設定メニューSM11から項目値設定項目SK111が選択されると、抽出項目関連テキスト「1」を購入数量の項目値テキストとして設定し、図18に示すように項目値テキスト領域TA111に「1」を表示させる(ステップSD3~SD7)。
同様にして、制御サーバー制御部40は、印刷テキストデータにおいて、抽出項目関連テキストとして「mixed sandwich」が選択された状態で、設定メニューSM11から項目値設定項目SK112が選択されると、抽出項目関連テキスト「mixed sandwich」を商品名の項目値テキストとして設定し、図18に示すように項目値テキスト領域TA112に「mixed sandwich」を表示させる(ステップSD3~SD7)。
同様にして、制御サーバー制御部40は、印刷テキストデータにおいて、抽出項目関連テキストとして「5.00」が選択された状態で、設定メニューSM11から項目値設定項目SK113が選択されると、抽出項目関連テキスト「5.00」を単価の項目値テキストとして設定し、図18に示すように項目値テキスト領域TA113に「5.00」を表示させる(ステップSD3~SD7)。
制御サーバー制御部40は、第11ユーザーインターフェースUI11において設定された設定内容に基づいて、抽出条件を生成する(ステップSD9)。制御サーバー制御部40は、設定された項目値テキストに基づいて、例えば、以下の抽出条件を生成する。
抽出条件:第4群G4の一行分において、購入数量情報J61を示す項目値テキストは最も前方(図18では左側)に位置する文字列(数字)を示すテキストであり、単価情報J63を示す項目値テキストは最も後方(図18では右側)に位置する文字列(数字、コンマを含む)を示すテキストであり、商品名情報J62を示す項目値テキストは購入数量情報J61と単価情報J63との間に位置する文字列を示すテキスト。
ここで、「群」について説明する。
図19は、抽出条件の生成を説明するための図である。
図19に示す印刷テキストデータは、図18の第11ユーザーインターフェースUI11で表示される印刷テキストデータと同じである。図19に示すように、印刷テキストデータは、第1群G1~第8群G8の8つの群Gに分割される。本実施形態において、「群」とは、1の印刷テキストデータを所定の基準で分割した際の、分割単位を示す概念である。
図19では、エリア分割情報BKに基づいて印刷テキストデータを8つの群Gに分割した様子を示している。
なお、印刷テキストデータを「群」に分割する基準は、エリア分割情報BKに限定されず、他の基準を採用してもよい。例えば、所定の行数ごとに分割してもよいし、所定の文字や記号を基準として分割してもよい。
上記抽出条件では、印刷テキストデータを所定の基準に従って図19に示すように行方向に分割した際に第4群に存在するテキストを抽出対象にしたものである。このように、制御サーバー制御部40は、印刷テキストデータを複数の群Gに分割した際、項目値テキストが属する群Gの他の群Gに対する位置を、項目値テキストの相対位置とし、この相対位置に基づいた抽出条件を生成する。これにより、制御サーバー制御部40は、印刷テキストデータのレイアウトを反映した抽出条件を生成でき、項目値テキストを的確に抽出できる。
図18において「Map」の文字列が表示されたボタンB11cが選択された場合、制御サーバー制御部40は、生成した抽出条件に基づいて印刷テキストデータの分析処理の試行を実行し(ステップSD10)、第8ユーザーインターフェースUI8(図16参照)と同様のユーザーインターフェースに試行結果を表示する(ステップSD11)。そして、ユーザーによりボタンB8cに相当するボタンが選択されると、制御サーバー制御部40は、生成した抽出条件を有する試行用分析プログラムを、第9分析プログラムBP9として確定する(ステップSD15)。制御サーバー制御部40は、生成した第9分析プログラムBP9により、印刷テキストデータから商品情報J6(購入数量情報J61、商品名情報J62、及び単価情報J63のそれぞれ)を示す項目値テキストを的確に抽出できる。
上述した分析プログラムBP15,BP8,BP9に適用される抽出条件は、印刷テキストデータにおける項目値テキストの相対位置として、項目名テキストに対する項目値テキストの位置、又は、項目値テキストが属する群Gの他の群Gに対する位置を含む。しかしながら、相対位置を使うことなく、印刷テキストデータから項目値テキストを抽出することも可能である。
<項目値テキストの属性>
例えば、第8分析プログラムBP8を生成する際に、第9ユーザーインターフェースUI9(図17A参照)のテキスト設定領域TA9において、抽出項目関連テキスト「10/5/2017」が項目値テキストとして設定され、項目名テキスト「SETTLED」は設定されていないものとする。この場合に、制御サーバー制御部40は、以下のような抽出条件を生成する。
発行日の項目値テキストの抽出条件:発行日の項目値テキストは、印刷テキストデータにおいて、スラッシュ(斜線)「/」を二つ含む文字列を示すテキスト。
この抽出条件に一致するテキストは、図19に示す印刷テキストデータにおいて、文字列「10/5/2017」を示すテキストである。なお、この抽出条件は、「/(スラッシュ(斜線))」を二つ含む数字からなる文字列を示すテキスト」であってもよい。さらには、文字数について規定し、「1又は2桁の数字/(スラッシュ)1又は2桁の数字/(スラッシュ)4桁の数字」の形式からなる文字列を示すテキストとしてもよい。
このように、制御サーバー制御部40は、設定された項目値テキストの属性(形式や文字種等)に基づいて抽出条件を生成する。これにより、ユーザーは、印刷テキストデータから項目値テキストを設定するという簡易な操作によって、抽出条件(分析プログラムBP)を生成することができる。また、項目値テキストのみが設定された場合でも、項目値テキストの属性に基づく抽出条件を生成し、制御サーバー制御部40は、的確に印刷テキストデータから項目値テキストを抽出できる。
なお、上述した合計金額情報項目に対応した第15分析プログラムBP15に適用される抽出条件として、項目値テキストの属性を付加してもよい。例えば、先頭に記号「$」を含み、数字(「0~9」)と記号「.(ドット)」または「,(カンマ)」からなる文字列とすることで、より的確に抽出することができる。
また、上述した発行日時情報項目に対応した第8分析プログラムBP8に適用される抽出条件として、項目値テキストの属性を付加してもよい。例えば、「二桁の数字:(コロン)二桁の数字:(コロン)二桁の数字 (空白1文字)PMまたはAMの英字」の形式を抽出条件として付加することで、より的確に抽出することができる。
<相対位置の他の例1>
例えば、第8分析プログラムBP8を生成する第9ユーザーインターフェースUI9(図17A参照)のテキスト設定領域TA91において、「10/5/2017」を示す抽出項目関連テキストが発行日の項目値テキストとして設定され、テキスト設定領域TA92において、「02:24:34 PM」を示す抽出項目関連テキストが発行時間の項目値テキストとして設定され、項目名テキストがいずれも設定されていないものとする。この場合に、制御サーバー制御部40は、特異なテキストに対する項目値テキストの位置に基づく、以下のような抽出条件を生成する。
本実施形態において、特異なテキストとは、特殊文字のみで構成されたテキスト、及び、特殊文字と通常文字とにより構成されたテキストを示す。図19に示す印刷テキストデータにおいて特異なテキストとは、例えば、エリア分割情報BKや、「>>Ticket#:42<<」を示すテキスト等である。
抽出条件:発行日時情報項目の項目値テキストは、「>>Ticket#:42<<」を示すテキストの1行下に記述されたテキストであって、数字を含むテキスト。
又は、抽出条件:発行日情報項目の項目値テキストは、第7群G7において、「*」から構成されるエリア分割情報BKを示すテキストの1行上に記述されたテキストであって、数字をを含むテキスト。
このように、制御サーバー制御部40は、特異なテキストに対する項目値テキストの位置に基づいて抽出条件を生成する。これにより、ユーザーは、印刷テキストデータから項目値テキストを設定するという簡易な操作によって、抽出条件(分析プログラムBP)を生成することができる。また、項目値テキストのみが設定された場合でも、特異なテキストに対する項目値テキストの位置に基づいて抽出条件を生成し、制御サーバー制御部40は、的確に印刷テキストデータから項目値テキストを抽出できる。
<相対位置の他の例2>
上述した相対位置の他の例1と同様に、発行日の項目値テキストと発行時間の項目値テキストが設定されている場合に、発行時間を抽出する抽出条件として、制御サーバー制御部40は、発行日に対する項目値テキストの位置に基づく、以下のような抽出条件を生成する。
抽出条件:発行時間の項目値テキストは、発行日と同一行であり、発行日の後方(図17A、図17Bでは右側)にある空白文字1文字に連続する文字列を示すテキスト。
このように、制御サーバー制御部40は、他の項目値テキストに対する抽出対象の項目値テキストの位置に基づいて抽出条件を生成することもできる。
以上のように、制御サーバー制御部40は、項目値テキストのみが設定された場合でも項目値テキストの属性、又は、特異なテキストや他の項目値テキストとの相対位置の少なくともいずれかに基づいて抽出条件を生成する。そのため、制御サーバー制御部40は、項目値テキストのみが設定された場合でも、印刷テキストデータから項目値テキストを的確に抽出できる抽出条件を生成できる。
なお、制御サーバー制御部40は、項目名テキストが設定された場合でも、項目値テキストの属性、特異なテキストとの相対位置、他の項目値テキストとの相対位置、項目値テキストが属する群の他の群との相対位置の何れか1又は複数の条件を加味した抽出条件を生成してもよい。この場合、制御サーバー制御部40は、より的確に印刷テキストデータから項目値テキストを抽出できる抽出条件を生成できる。
以上、説明したように、制御サーバー15(情報処理装置)は、ロール紙(印刷媒体)に印刷されるレシート情報がテキストで記述された印刷テキストデータから、抽出条件に一致するテキストを抽出可能である。制御サーバー15は、ロール紙にレシート情報が印刷されるレイアウトに準じて印刷テキストデータを表示するユーザーインターフェース(画面)において、抽出項目関連テキストの選択を受け付け、抽出項目関連テキストが選択された状態で、複数の設定項目SKを設定メニュー(SM7a、SM9、SM11)として表示して設定項目SKの選択を受け付け、項目値設定項目(SK71、SK91、SK93、SK111~SK114)が選択された場合、抽出項目関連テキストを項目値テキストとして設定し、印刷テキストデータにおける項目値テキストの相対位置、及び、項目値テキストの属性の少なくともいずれかに基づいて、印刷テキストデータから項目値テキストを抽出するための抽出条件を生成し、生成した抽出条件に一致するテキストを項目値テキストとして抽出する、制御サーバー制御部40を備える。
この構成によれば、ユーザーは、設定メニューから項目値設定項目を選択して抽出項目関連テキストを項目値テキストとして設定する、という簡易な作業を行って抽出条件を生成することが可能になる。すなわち、制御サーバー15による項目値テキストの抽出について、ユーザーが行う操作を簡易化できる。
また、制御サーバー制御部40は、印刷テキストデータを複数の群Gに分割した際、項目値テキストが属する群Gの他の群Gに対する位置を、相対位置として抽出条件を生成する。
この構成によれば、制御サーバー制御部40は、印刷テキストデータを複数の群Gに分割した際、項目値テキストが属する群Gの他の群Gに対する位置を、相対位置として抽出条件を生成するため、項目値テキストを抽出する際にこの抽出条件に基づくことで、印刷テキストデータのレイアウトを反映して的確に項目値テキストを抽出できる。
また、制御サーバー制御部40は、印刷テキストデータに含まれる特異なテキストに対する項目値テキストの位置を、相対位置として抽出条件を生成する。
この構成によれば、制御サーバー制御部は、特異なテキストに対する項目値テキストの位置を相対位置として抽出条件を生成するため、項目値テキストを抽出する際にこの抽出条件に基づくことで、印刷テキストデータのレイアウトを反映して的確に印刷テキストデータから項目値テキストを抽出できる。
また、制御サーバー制御部40は、抽出項目関連テキストが選択された状態で、設定メニューを表示して設定項目SKの選択を受け付け、項目名設定項目(SK71、SK92、SK94)が選択された場合、抽出項目関連テキストを項目名テキストとして設定し、項目名テキストに対する項目値テキストの位置を相対位置として抽出条件を生成する。
この構成によれば、制御サーバー制御部40は、項目名テキストに対する項目値テキストの位置を、印刷テキストデータにおける項目値テキストの相対位置として抽出条件を生成するため、項目値テキストを抽出する際にこの抽出条件に基づくことで、印刷テキストデータのレイアウトを反映して的確に印刷テキストデータから項目値テキストを抽出できる。
また、制御サーバー制御部40は、生成した抽出条件に基づいて、印刷テキストテータから項目値テキストの抽出を試行する。制御サーバー制御部40は、試行により抽出した項目値テキストを所定の形式に変換する際に変換候補が複数ある場合、試行の都度、変換候補を順に表示して変換候補の選択を受け付け、選択された変換候補に基づいて分析条件を生成する。
この構成によれば、制御サーバー制御部40は、項目値テキストの抽出の試行の都度、変換候補を表示して変換候補の選択を受け付け、選択された変換候補に基づいて分析条件を生成するため、抽出した項目値テキストをユーザーが所望する適切な形式に変換できる。
また、制御サーバー制御部40は、印刷装置12と通信可能に接続される制御サーバーネットワーク通信部41(接続部)を備える。制御サーバー制御部40は、印刷装置12により印刷されるレシートに係る印刷テキストデータを、印刷装置12から取得する。
この構成によれば、制御サーバー制御部40は、印刷装置12により印刷されるレシートに係る印刷テキストデータからの項目値テキストの抽出について、ユーザーが行う操作を簡易化できる。
また、抽出項目値は、発行日時(日付)を示す値(すなわち、発行日時情報J5を示す項目値)、合計金額を示す値(すなわち、合計金額情報J92を示す項目値)、商品に関する情報を示す値(商品情報J6を示す各項目値)のいずれかである。
この構成によれば、発行日時を示す値、合計金額を示す値、商品に関する情報を示す値のいずれかを表す項目値テキストの抽出について、ユーザーが行う操作を簡易化できる。
なお、上述した実施の形態は、あくまでも本発明の一態様を示すものであり、本発明の範囲内で任意に変形および応用が可能である。
例えば、抽出項目は、上述したものに限定されず、レシートから項目値テキストが抽出可能な項目であればよい。
また、印刷テキストデータは、印刷装置12が生成することとしたが、制御サーバー15や他の画像処理装置が生成してもよい。例えば、印刷装置12により印刷されたレシートをイメージスキャナーで読み取った画像データを、OCR(Optical Character Recognition/Reader)によりテキストデータに変換し、印刷テキストデータとしてもよい。
また、例えば、上述した制御サーバー15の制御方法(情報処理装置の制御方法)が、制御サーバー15が備えるコンピューター、又は、制御サーバー15に接続される外部装置を用いて実現される場合、本発明を、当該方法を実現するためにコンピューターが実行するプログラム、このプログラムをコンピューターで読み取り可能に記録した記録媒体、或いは、このプログラムを伝送する伝送媒体の態様で構成することも可能である。上記記録媒体としては、磁気的、光学的記録媒体又は半導体メモリーデバイスを用いることができる。具体的には、フレキシブルディスク、HDD(Hard Disk Drive)、CD-ROM(Compact Disk Read Only Memory)、DVD(Digital Versatile Disk)、Blu-ray(登録商標)Disc、光磁気ディスク、フラッシュメモリー、カード型記録媒体等の可搬型の、或いは固定式の記録媒体が挙げられる。また、上記記録媒体は、制御サーバー15や、制御サーバー15に接続された外部装置が備える内部記憶装置であるRAM(Random Access Memory)、ROM(Read Only Memory)、HDD等の不揮発性記憶装置でもよい。
また、制御サーバー制御部40の機能は、プログラムを記憶した記憶媒体、プログラムを配信するサーバー装置、上記プログラムを伝送する伝送媒体、上記プログラムを搬送波内に具現化したデータ信号等の形態で実現することもできる。記憶媒体としては、コンピューターが読み取り可能な種々の媒体を利用することができ、磁気的、光学的記憶媒体あるいは半導体メモリーデバイスを用いるもののいずれであってもよく、その他の種類の記憶媒体をしようしてもよい。また、メモリーカード等の可搬型記憶媒体であってもよい。また、記憶媒体は、上記装置と通信回線を介して接続された装置が備える記憶媒体であってもよい。上記プログラムは、オペレーティングシステムを実装して動作する装置において、オペレーティングシステム上で動作する単体のアプリケーションプログラムとして実装することができる。また、単体のアプリケーションプログラムに限らず、オペレーティングシステム、デバイスドライバー、及び、アプリケーションプログラムのうち複数の機能として実装されてもよい。例えば、操作面を備える操作デバイスを制御するデバイスドライバープログラム、及び/または、オペレーティングシステムにおいて操作デバイスの操作を受け付けるプログラムモジュールが協働して上記プログラムを実現する構成であってもよい。また、複数のアプリケーションプログラムにより、本発明の上記プログラムを実現する構成であってもよく、具体的なプログラムの形態は任意である。
また、例えば、図3、及び、図11、の処理単位は、POS端末13、印刷装置12、制御サーバー15の処理を理解容易にするために、主な処理内容に応じて分割したものであり、処理単位の分割の仕方や名称によって、本発明が限定されることはない。処理内容に応じて、されに多くの処理単位に分割してもよい。また、1つの処理単位がさらに多くの処理を含むように分割してもよい。また、その処理の順番は、支障のない範囲で適宜に入れ替えてもよい。
また、図2に示した各機能部は機能的構成を示すものであって、具体的な実装形態は特に限定されない。つまり、必ずしも各機能部に個別に対応するハードウェアが実装される必要はなく、一つのプロセッサーがプログラムを実行することで複数の機能部の機能を実現する構成とすることも勿論可能である。また、上述した実施形態においてソフトウェアで実現される機能の一部をハードウェアとしてもよく、或いは、ハードウェアで実現される機能の一部をソフトウェアで実現してもよい。その他、POS端末13、印刷装置12、及び、制御サーバー15の他の各部の具体的な細部構成についても、本発明の趣旨を逸脱しない範囲で任意に変更可能である。
1…情報処理システム、12…印刷装置、13…POS端末、15…制御サーバー(情報処理装置)、20…POS端末制御部、21…POS端末通信部、22…タッチパネル、23…POS端末記憶部、30…印刷装置制御部、31…印刷部、32…印刷装置記憶部、33…印刷装置通信部、34…印刷装置ネットワーク通信部、35…デバイス通信部、40…制御サーバー制御部、41…制御サーバーネットワーク通信部(接続部)、42…制御サーバー記憶部、43…制御サーバー表示部、44…制御サーバー入力部、201…アプリケーション実行部、421…分析プログラム群管理データベース、422…分析データ管理データベース、BR…バーコードリーダー、CD…カスタマーディスプレー、G…群、GN…グローバルネットワーク、JT…自動釣銭機、SK…設定項目、SK111~SK114…項目値設定項目、SK71…項目名設定項目、SK72…項目値設定項目、SK91…項目値設定項目、SK92…項目名設定項目、SK93…項目値設定項目、SK94…項目名設定項目、SM11…設定メニュー、SM7a…設定メニュー、SM9…設定メニュー。

Claims (9)

  1. 印刷媒体に印刷される情報がテキストで記述されたテキストデータから、抽出条件に一致するテキストを抽出可能な情報処理装置であって、
    前記印刷媒体に前記情報が印刷されるレイアウトに準じて前記テキストデータを表示する画面において、出項目関連テキストの選択を受け付け、
    前記抽出項目関連テキストが選択された状態で、数の設定項目をメニューとして表示して前記設定項目の選択を受け付け、
    複数の前記設定項目のうち項目名設定項目が選択された場合、前記抽出項目関連テキストを、前記テキストデータから項目値テキストを抽出するための検索キーワードである項目名テキストとして設定し、
    複数の前記設定項目のうち項目値設定項目が選択された場合、前記抽出項目関連テキストを前記項目値テキストとして設定し、
    前記テキストデータにおける前記項目名テキストの相対位置、前記項目値テキストの相対位置、及び、前記項目値テキストの属性の少なくともいずれかに基づいて、前記テキストデータから前記項目値テキストを抽出するための前記抽出条件を生成し、
    生成した前記抽出条件に一致するテキストを前記項目値テキストとして抽出する、制御部を備える、
    情報処理装置。
  2. 前記制御部は、
    前記テキストデータを複数の群に分割した際、前記項目値テキストが属する群の他の群に対する位置を、前記相対位置として前記抽出条件を生成する、
    請求項1に記載の情報処理装置。
  3. 前記制御部は、
    前記テキストデータに含まれる特異なテキストに対する前記項目値テキストの位置を、前記相対位置として前記抽出条件を生成する、
    請求項1又は2に記載の情報処理装置。
  4. 前記制御部は、
    記項目名テキストに対する前記項目値テキストの位置を前記相対位置として前記抽出条件を生成する、
    請求項1から3のいずれか一項に記載の情報処理装置。
  5. 前記制御部は、
    生成した前記抽出条件に基づいて、前記テキストデータから前記項目値テキストの抽出を試行し、
    試行により抽出した前記項目値テキストを所定の形式に変換する際に変換候補が複数ある場合、試行の都度、前記変換候補を順に表示して変換候補の選択を受け付け、選択された前記変換候補に基づいて分析条件を生成する、
    請求項1から4のいずれか一項に記載の情報処理装置。
  6. 印刷装置と通信可能に接続される接続部を備え、
    前記制御部は、
    前記印刷装置により印刷されるレシートに係る前記テキストデータを、前記接続部により前記印刷装置から取得する、
    請求項1から5のいずれか一項に記載の情報処理装置。
  7. 記項目値は、日付を示す値、合計金額を示す値、商品に関する情報を示す値のいずれかである、
    請求項1から6のいずれか一項に記載の情報処理装置。
  8. 印刷媒体に印刷される情報がテキストで記述されたテキストデータから、抽出条件に一致するテキストを抽出可能な情報処理装置の制御方法であって、
    前記印刷媒体に前記情報が印刷されるレイアウトに準じて前記テキストデータを表示する画面において、出項目関連テキストの選択を受け付け、
    前記抽出項目関連テキストが選択された状態で、数の設定項目をメニューとして表示して前記設定項目の選択を受け付け、
    複数の前記設定項目のうち項目名設定項目が選択された場合、前記抽出項目関連テキストを、前記テキストデータから項目値テキストを抽出するための検索キーワードである項目名テキストとして設定し、
    複数の前記設定項目のうち項目値設定項目が選択された場合、前記抽出項目関連テキストを前記項目値テキストとして設定し、
    前記テキストデータにおける前記項目名テキストの相対位置、前記項目値テキストの相対位置、及び、前記項目値テキストの属性の少なくともいずれかに基づいて、前記テキストデータから前記項目値テキストを抽出するための前記抽出条件を生成し、
    生成した前記抽出条件に一致するテキストを前記項目値テキストとして抽出する、
    情報処理装置の制御方法。
  9. 印刷媒体に印刷される情報がテキストで記述されたテキストデータから、抽出条件に一致するテキストを抽出可能な情報処理装置が備える制御部により実行されるプログラムであって、
    前記制御部に、
    前記印刷媒体に前記情報が印刷されるレイアウトに準じて前記テキストデータを表示する画面において、出項目関連テキストの選択を受け付けさせ、
    前記抽出項目関連テキストが選択された状態で、数の設定項目をメニューとして表示して前記設定項目の選択を受け付けさせ、
    複数の前記設定項目のうち項目名設定項目が選択された場合、前記抽出項目関連テキストを、前記テキストデータから項目値テキストを抽出するための検索キーワードである項目名テキストとして設定させ、
    複数の前記設定項目のうち項目値設定項目が選択された場合、前記抽出項目関連テキストを前記項目値テキストとして設定させ、
    前記テキストデータにおける前記項目名テキストの相対位置、前記項目値テキストの相対位置、及び、前記項目値テキストの属性の少なくともいずれかに基づいて、前記テキストデータから前記項目値テキストを抽出するための前記抽出条件を生成させ、
    生成した前記抽出条件に一致するテキストを前記項目値テキストとして抽出させる、
    プログラム。
JP2017226114A 2017-11-24 2017-11-24 情報処理装置、情報処理装置の制御方法、及び、プログラム Active JP7059586B2 (ja)

Priority Applications (3)

Application Number Priority Date Filing Date Title
JP2017226114A JP7059586B2 (ja) 2017-11-24 2017-11-24 情報処理装置、情報処理装置の制御方法、及び、プログラム
US16/196,466 US10909360B2 (en) 2017-11-24 2018-11-20 Information processing device, control method of information processing device, and storage medium
EP18207764.4A EP3489816B1 (en) 2017-11-24 2018-11-22 Information processing device, control method of information processing device, and storage medium

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2017226114A JP7059586B2 (ja) 2017-11-24 2017-11-24 情報処理装置、情報処理装置の制御方法、及び、プログラム

Publications (2)

Publication Number Publication Date
JP2019096142A JP2019096142A (ja) 2019-06-20
JP7059586B2 true JP7059586B2 (ja) 2022-04-26

Family

ID=64476930

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2017226114A Active JP7059586B2 (ja) 2017-11-24 2017-11-24 情報処理装置、情報処理装置の制御方法、及び、プログラム

Country Status (3)

Country Link
US (1) US10909360B2 (ja)
EP (1) EP3489816B1 (ja)
JP (1) JP7059586B2 (ja)

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP7059586B2 (ja) * 2017-11-24 2022-04-26 セイコーエプソン株式会社 情報処理装置、情報処理装置の制御方法、及び、プログラム
JP7312357B2 (ja) * 2019-05-16 2023-07-21 京セラドキュメントソリューションズ株式会社 画像形成装置
JP7476524B2 (ja) * 2019-11-27 2024-05-01 セイコーエプソン株式会社 情報処理装置の情報処理方法、情報処理装置及びプログラム
JP7415509B2 (ja) * 2019-12-09 2024-01-17 カシオ計算機株式会社 取引データ処理装置、端末装置、取引データ処理システム及びプログラム
CN112214181B (zh) * 2020-09-02 2023-02-28 安天科技集团股份有限公司 一种打印机web信息提取方法、装置、电子设备及存储介质
US12001775B1 (en) * 2023-06-13 2024-06-04 Oracle International Corporation Identifying and formatting headers for text content

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2004164218A (ja) 2002-11-12 2004-06-10 Seiko Epson Corp レシート処理装置およびその方法、並びにコンピュータプログラム
JP2011019199A (ja) 2009-07-10 2011-01-27 Konica Minolta Business Technologies Inc 情報処理装置
JP2015130087A (ja) 2014-01-08 2015-07-16 セイコーエプソン株式会社 Pos制御システム、及び、pos制御システムの制御方法
JP2017120529A (ja) 2015-12-28 2017-07-06 セイコーエプソン株式会社 プログラム、情報処理装置、情報処理装置の制御方法、及び、情報処理システム
JP2017120521A (ja) 2015-12-28 2017-07-06 セイコーエプソン株式会社 情報処理装置、情報処理システム、及び、情報処理装置の制御方法

Family Cites Families (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH11272794A (ja) * 1998-03-24 1999-10-08 Sanyo Electric Co Ltd レシートデータ処理装置
JP4549725B2 (ja) * 2004-04-30 2010-09-22 大日本スクリーン製造株式会社 印刷データ処理装置、印刷データ処理方法、およびプログラム
US20070041041A1 (en) * 2004-12-08 2007-02-22 Werner Engbrocks Method and computer program product for conversion of an input document data stream with one or more documents into a structured data file, and computer program product as well as method for generation of a rule set for such a method
US20100302604A1 (en) * 2009-05-27 2010-12-02 Kodimer Marianne L System and method for setting data extraction fields for scanner input
JP2012027633A (ja) 2010-07-22 2012-02-09 Seiko Epson Corp デバイスドライバー、情報処理システム、デバイスドライバーの制御方法およびプログラム
US8788930B2 (en) * 2012-03-07 2014-07-22 Ricoh Co., Ltd. Automatic identification of fields and labels in forms
US9396540B1 (en) * 2012-03-28 2016-07-19 Emc Corporation Method and system for identifying anchors for fields using optical character recognition data
CN104765579B (zh) * 2014-01-08 2019-01-18 精工爱普生株式会社 Pos控制系统、pos控制系统的控制方法、以及打印装置
KR102230024B1 (ko) * 2014-09-05 2021-03-18 엘지전자 주식회사 전자 기기 및 그 동작방법
RU2613846C2 (ru) * 2015-09-07 2017-03-21 Общество с ограниченной ответственностью "Аби Девелопмент" Метод и система извлечения данных из изображений слабоструктурированных документов
US20180032483A1 (en) 2016-07-29 2018-02-01 Seiko Epson Corporation Information processing device, control method of an information processing device, and storage medium
US10445571B1 (en) * 2016-09-01 2019-10-15 United Services Automobile Association Document data capture
JP7059586B2 (ja) * 2017-11-24 2022-04-26 セイコーエプソン株式会社 情報処理装置、情報処理装置の制御方法、及び、プログラム
JP6885318B2 (ja) * 2017-12-15 2021-06-16 京セラドキュメントソリューションズ株式会社 画像処理装置
JP2019159633A (ja) * 2018-03-12 2019-09-19 セイコーエプソン株式会社 画像処理装置、画像処理方法および画像処理プログラム

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2004164218A (ja) 2002-11-12 2004-06-10 Seiko Epson Corp レシート処理装置およびその方法、並びにコンピュータプログラム
JP2011019199A (ja) 2009-07-10 2011-01-27 Konica Minolta Business Technologies Inc 情報処理装置
JP2015130087A (ja) 2014-01-08 2015-07-16 セイコーエプソン株式会社 Pos制御システム、及び、pos制御システムの制御方法
JP2017120529A (ja) 2015-12-28 2017-07-06 セイコーエプソン株式会社 プログラム、情報処理装置、情報処理装置の制御方法、及び、情報処理システム
JP2017120521A (ja) 2015-12-28 2017-07-06 セイコーエプソン株式会社 情報処理装置、情報処理システム、及び、情報処理装置の制御方法

Also Published As

Publication number Publication date
US20190163972A1 (en) 2019-05-30
JP2019096142A (ja) 2019-06-20
EP3489816B1 (en) 2024-02-28
EP3489816A1 (en) 2019-05-29
US10909360B2 (en) 2021-02-02

Similar Documents

Publication Publication Date Title
JP7059586B2 (ja) 情報処理装置、情報処理装置の制御方法、及び、プログラム
JP6759817B2 (ja) 情報処理装置、情報処理装置の制御方法、及び、制御プログラム
JP2016015108A (ja) 電子レシート管理サーバ、商品販売データ処理装置、印字制御装置およびプログラム
JP2010020477A (ja) 店舗決済システム及びこのシステムで用いられるハンディターミナル並びに店舗決済方法
US20150356616A1 (en) Graphical user interface implemented in a mobile computing device that displays alternate images to communicate a product purchase or a product promotion to a user of the mobile computing device
US20180211241A1 (en) Commodity sales data processing apparatus and commodity sales data processing method
JP2012043471A (ja) 店舗決済システム及び店舗決済方法
JP6657945B2 (ja) 制御サーバー、情報処理システム、及び、制御サーバーの制御方法
JP2016035704A (ja) 商品販売データ処理システム及び商品データ処理装置
JP6766503B2 (ja) 情報処理装置、情報処理装置の制御方法、及び、制御プログラム
JP6772636B2 (ja) 情報処理装置、情報処理装置の制御方法、及び、制御プログラム
JP5523432B2 (ja) 商品販売データ処理装置およびプログラム
JP4247714B2 (ja) 印刷および印字システム
JP7127506B2 (ja) 印刷装置、及び印刷装置の制御方法
EP3623931B1 (en) Information processing apparatus, control method for information processing apparatus, and storage medium storing program for information processing apparatus
JP6461292B2 (ja) 電子レシート管理サーバおよびプログラム
JP6756102B2 (ja) 情報処理装置、情報処理装置の情報処理方法、及び、情報処理システム
JP2022009568A (ja) システム、その制御方法、及びプログラム
JP6410864B2 (ja) 電子レシート発行方法、pos端末及びプログラム
JP7465791B2 (ja) 購入情報生成装置、商品販売データ処理システムおよびプログラム
JP7433387B2 (ja) 電子レシート管理サーバおよびプログラム
JP6651589B2 (ja) サーバ装置、プログラム、情報処理システム及び情報処理方法
JP2018147185A (ja) 商品販売データ処理装置、及びデータ処理プログラム
JP2014044464A (ja) サービス券処理装置
CN106157472A (zh) 打印机及其控制方法

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20201012

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20210730

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20210831

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20211018

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20220315

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20220328

R150 Certificate of patent or registration of utility model

Ref document number: 7059586

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150