(57)【要約】【課題】プルプリントにおける印刷指示をより簡易に行うことを可能とする。【解決手段】プリントシステムであって、文書データに対する印刷リクエストを受け付けたことに応じて、当該印刷リクエストにて示される印刷設定に基づき印刷データを発行する発行手段と、前記印刷データにて用いられた印刷設定と、前記印刷データにて用いられた文書データが示す文書の属性情報とを対応付けて収集データとして蓄積する蓄積手段と、前記収集データから、文書の属性情報からなる入力データと、印刷設定からなる正解データとの対から構成される学習データを生成する生成手段と、前記学習データを用いて、印刷設定の推定に用いられる学習モデルの生成を機械学習により行う処理手段と、推定リクエストを受け付けた際に、前記学習モデルを用いて、当該推定リクエストにて示される文書の属性情報を入力として、印刷設定の推定を行う推定手段とを有する。【選択図】  図１１
2020160947.tif 000002
【特許請求の範囲】
【請求項１】
ネットワークを介してプリンターに印刷データを提供するプリントシステムであって、
印刷の対象となる文書データを受け付けて管理する管理手段と、
前記管理手段にて管理する文書データに対する印刷リクエストを受け付けたことに応じて、当該印刷リクエストにて示される印刷設定に基づき印刷データを発行する発行手段と、
前記発行手段にて発行された印刷データにて用いられた印刷設定と、当該印刷データにて用いられた文書データが示す文書の属性情報とを対応付けて収集データとして蓄積する蓄積手段と、
前記蓄積手段にて蓄積されている収集データから、文書の属性情報からなる入力データと、印刷設定からなる正解データとの対から構成される学習データを生成する生成手段と、
前記生成手段にて生成された学習データを用いて、印刷設定の推定に用いられる学習モデルの生成を機械学習により行う処理手段と、
推定リクエストを受け付けた際に、前記処理手段にて生成された学習モデルを用いて、当該推定リクエストにて示される文書の属性情報を入力として、印刷設定の推定を行う推定手段と、
前記推定手段にて推定された印刷設定を前記推定リクエストの要求元に提供する提供手段と
を有することを特徴とするプリントシステム。
【請求項２】
前記プリンターは、
印刷の対象となる文書データの指定を受け付ける受け付け手段と、
前記受け付け手段にて文書データの指定を受け付けた際に、当該文書データが示す文書の属性情報を用いて、前記推定リクエストを前記プリントシステムに送信する要求手段と
を有することを特徴とする請求項１に記載のプリントシステム。
【請求項３】
前記プリンターは、
印刷設定の推定を行うか否かの設定情報を保持する保持手段を有し、
前記要求手段は、前記設定情報に基づいて、前記推定リクエストの送信を制御することを特徴とする請求項２に記載のプリントシステム。
【請求項４】
前記設定情報は、ユーザーごとに設定されることを特徴とする請求項３に記載のプリントシステム。
【請求項５】
前記推定リクエストは、前記管理手段が新たな文書データを受け付けた際に、当該新たな文書データが示す文書の属性情報を用いて、前記プリントシステムにて発行されることを特徴とする請求項１に記載のプリントシステム。
【請求項６】
前記プリンターは、
印刷の対象となる文書データの指定を受け付ける際に、前記推定手段にて推定された印刷設定を用いて印刷を行うか否かの指定を受け付ける設定手段を更に有し、
前記推定手段にて推定された印刷設定を用いて印刷を行う指定を前記設定手段にて受け付けた場合、印刷設定画面を表示することなく、前記推定手段にて推定された印刷設定を用いた当該文書データに対する印刷リクエストが前記プリントシステムに送信されることを特徴とする請求項１乃至５のいずれか一項に記載のプリントシステム。
【請求項７】
前記推定手段にて推定された印刷設定を用いずに印刷を行う指定を前記設定手段にて受け付けた場合、前記推定手段にて推定された印刷設定が初期値として設定項目に示された前記印刷設定画面が表示されることを特徴とする請求項６に記載のプリントシステム。
【請求項８】
前記処理手段は、前記印刷設定に含まれる設定項目ごとに学習モデルの生成を行うことを特徴とする請求項１乃至７のいずれか一項に記載のプリントシステム。
【請求項９】
ネットワークを介してプリンターに印刷データを提供するプリントシステムにおける印刷設定推定方法であって、
印刷の対象となる文書データを受け付けて管理手段にて管理する管理工程と、
前記管理手段にて管理する文書データに対する印刷リクエストを受け付けたことに応じて、当該印刷リクエストにて示される印刷設定に基づき印刷データを発行する発行工程と、
前記発行工程にて発行された印刷データにて用いられた印刷設定と、当該印刷データにて用いられた文書データが示す文書の属性情報とを対応付けて収集データとして蓄積手段にて蓄積する蓄積工程と、
前記蓄積手段にて蓄積されている収集データから、文書の属性情報からなる入力データと、印刷設定からなる正解データとの対から構成される学習データを生成する生成工程と、
前記生成工程にて生成された学習データを用いて、印刷設定の推定に用いられる学習モデルの生成を機械学習により行う処理工程と、
推定リクエストを受け付けた際に、前記処理工程にて生成された学習モデルを用いて、当該推定リクエストにて示される文書の属性情報を入力として、印刷設定の推定を行う推定工程と、
前記推定工程にて推定された印刷設定を前記推定リクエストの要求元に提供する提供工程と
を有することを特徴とする印刷設定推定方法。
【請求項１０】
コンピューターを、
印刷の対象となる文書データを受け付けて管理する管理手段、
前記管理手段にて管理する文書データに対する印刷リクエストを受け付けたことに応じて、当該印刷リクエストにて示される印刷設定に基づき印刷データを発行する発行手段、
前記発行手段にて発行された印刷データにて用いられた印刷設定と、当該印刷データにて用いられた文書データが示す文書の属性情報とを対応付けて収集データとして蓄積する蓄積手段、
前記蓄積手段にて蓄積されている収集データから、文書の属性情報からなる入力データと、印刷設定からなる正解データとの対から構成される学習データを生成する生成手段と、
前記生成手段にて生成された学習データを用いて、印刷設定の推定に用いられる学習モデルの生成を機械学習により行う処理手段、
推定リクエストを受け付けた際に、前記処理手段にて生成された学習モデルを用いて、当該推定リクエストにて示される文書の属性情報を入力として、印刷設定の推定を行う推定手段、
前記推定手段にて推定された印刷設定を前記推定リクエストの要求元に提供する提供手段
として機能させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、プリントシステム、印刷設定推定方法、およびプログラムに関する。
【背景技術】
【０００２】
近年、人間が自然に行うタスクをコンピューターに学習させる機械学習の手法のひとつとして、ディープラーニング（深層学習）が注目されている。ディープラーニングは、人工知能（ＡＩ）の発展を支える重要な役割を担う重要な技術であり、その進歩により様々な分野への実用化が進んでいる。従来の機械学習では、対象データの特徴量を手動で抽出し、抽出した特徴量を使って予め何を学習するかというのを定義することで、データの分類等を行うモデルを作成する。一方、ディープラーニングでは、入力としてのデータと、分類など処理すべき結果を与えることで、特徴量をデータから自動的に抽出し、自動的にその処理方法を学習することでモデルを形成する。これにより、ディープラーニングは、従来の機械学習では特徴量の抽出が難しい複雑な問題に対しても高い精度の結果を得ることができる。
【０００３】
プリントシステムにおいてもクラウドサービス化が進むことで、ユーザー操作や文書、印刷データ、プリンターやサービスのログ等に関する情報が集積されてきており、機械学習を用いてこれらを活用することで新たな機能を提供することが考えられている。例えば、特許文献１では、帳票画像における罫線、罫線の数、特徴点、特徴点の数、色情報などを特徴データとして帳票種別毎に蓄積し、処理対象帳票の画像の特徴を蓄積された特徴データと比較することで、帳票種別を推定するという技術が開示されている。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特許第５６７０７８７号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
プリントシステムにおいては、ディープラーニングの利用方法として、入稿文書の属性情報や、印刷設定情報を活用することが考えられる。プリントシステムをクラウドサービスとして提供するプリントサービスにおいて、ユーザーはプルプリントに方式よる印刷を行うのが一般的である。従来、プルプリントの場合、ユーザーはプリンターの操作パネルに表示された文書リストから印刷対象を選択し、その都度所望の印刷設定を設定し、印刷を実行する。事前にユーザーが所望している印刷設定が再現できれば、ユーザーはリストから印刷対象を選択するのみの操作で簡易に印刷指示ができる。しかし、印刷設定には様々な設定項目があり、ユースケースも多様なため、ルールベースによる印刷設定の管理は困難という課題がある。
【課題を解決するための手段】
【０００６】
上記課題を解決するために本願発明は以下の構成を有する。すなわち、ネットワークを介してプリンターに印刷データを提供するプリントシステムであって、印刷の対象となる文書データを受け付けて管理する管理手段と、前記管理手段にて管理する文書データに対する印刷リクエストを受け付けたことに応じて、当該印刷リクエストにて示される印刷設定に基づき印刷データを発行する発行手段と、前記発行手段にて発行された印刷データにて用いられた印刷設定と、当該印刷データにて用いられた文書データが示す文書の属性情報とを対応付けて収集データとして蓄積する蓄積手段と、前記蓄積手段にて蓄積されている収集データから、文書の属性情報からなる入力データと、印刷設定からなる正解データとの対から構成される学習データを生成する生成手段と、前記生成手段にて生成された学習データを用いて、印刷設定の推定に用いられる学習モデルの生成を機械学習により行う処理手段と、推定リクエストを受け付けた際に、前記処理手段にて生成された学習モデルを用いて、当該推定リクエストにて示される文書の属性情報を入力として、印刷設定の推定を行う推定手段と、前記推定手段にて推定された印刷設定を前記推定リクエストの要求元に提供する提供手段とを有する。
【発明の効果】
【０００７】
本発明により、プルプリントにおける印刷指示をより簡易に行うことが可能となる。
【図面の簡単な説明】
【０００８】
【図１】本発明の一実施形態に係るシステム構成の例を示す図。
【図２】本発明の一実施形態に係るハードウェア構成の例を示す図。
【図３】本発明の一実施形態に係るソフトウェア構成の例を示す図。
【図４】本発明の一実施形態に係るデータ収集のシーケンス図。
【図５】本発明の一実施形態に係る収集データの前処理と学習のシーケンス図。
【図６】ニューラルネットワークを説明するための図。
【図７】ニューラルネットワークにおける隠れ層の活性化関数を説明するための図。
【図８】シグモイド関数を説明するための図。
【図９】学習モデルの学習処理におけるデータフローの例を示す図。
【図１０】勾配降下法を用いた学習処理のフローチャート。
【図１１】本発明の一実施形態に係る印刷設定の推定のシーケンス図。
【図１２】本発明の第二の実施形態に係る印刷設定の事前推定と印刷データの事前生成のシーケンス図。
【発明を実施するための形態】
【０００９】
以下、添付図面を参照して実施形態を詳しく説明する。尚、以下の実施形態は特許請求の範囲に係る発明を限定するものではない。実施形態には複数の特徴が記載されているが、これらの複数の特徴の全てが発明に必須のものとは限らず、また、複数の特徴は任意に組み合わせられてもよい。さらに、添付図面においては、同一若しくは同様の構成に同一の参照番号を付し、重複した説明は省略する。
【００１０】
＜第一の実施形態＞
［システム構成］
図１は、本実施形態に係るプリントシステムの全体構成の例を示す図である。図１において、プリンター１０２、およびクライアント１０３は、ローカルネットワーク１０１を介してインターネット１００にアクセスする。インターネット１００上には、各種サービスを提供するサーバーが設けられ、ここでは、プリントサービス１０４、データ収集サービス１０５、推定サービス１０６が提供されている例を示す。プリンター１０２、およびクライアント１０３は、各種サービスを利用可能であるとする。
【００１１】
プリントサービス１０４は、プルプリントを提供するサービスであり、文書データの管理、印刷データの生成、管理などを行う。データ収集サービス１０５は、各種収集データの保存と取り出し（抽出）を提供するサービスであり、学習データ用の文書の属性情報や、印刷設定情報が蓄積される。本実施形態では、推定サービス１０６による学習に用いられるデータを管理する。推定サービス１０６は、印刷設定の推定を提供するサービスであり、文書の属性情報を受け取り、事前にデータ収集サービス１０５が管理するデータを基に機械学習を行い、その結果として得られる学習済のモデルを用いて印刷設定を推定する。ここで示す各サービスはそれぞれ複数台のサーバーで冗長化されたクラウドサービスとしてインターネット上に公開されるが、本実施形態では説明を簡略化するため、１台のサーバー構成により提供されるものとして説明する。
【００１２】
［ハードウェア構成］
図２は、本施形態に係るプリントシステムのプリントサービス１０４、データ収集サービス１０５、推定サービス１０６、クライアント１０３、プリンター１０２のハードウェア構成の例を示す。なお、図２においては、説明を簡略化するために同じハードウェア構成の装置をまとめて示しているが、物理的に別の装置により実現されてよい。
【００１３】
各サービスを提供するサーバーおよびクライアント１０３として機能する情報処理装置の各ハードウェア構成要素はシステムバス２０１により通信可能に接続されている。ＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）２０２は、情報処理装置の制御部であり、ＲＯＭ（Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ）２０３またはＨＤＤ（Ｈａｒｄ  Ｄｉｓｃ  Ｄｒｉｖｅ）２０５に格納されているアプリケーションプログラムやＯＳ（Ｏｐｅｒａｔｉｎｇ  Ｓｙｓｔｅｍ）を実行する。また、ＣＰＵ２０２は、ＲＡＭ２０４にプログラム実行に必要な情報やファイル等を一時的に格納する制御を行う。ＲＯＭ２０３は不揮発性の記憶手段であり、内部に基本Ｉ／Ｏプログラム等のプログラムを記憶する。ＲＡＭ２０４は一時記憶手段であり、ＣＰＵ２０２やＧＰＵ２０９の主メモリやワークエリア等として機能する。ＨＤＤ２０５は、外部記憶手段の一つで、大容量メモリとして機能する記憶装置であり、アプリケーションプログラムやＯＳ等の本発明に係るプログラムを格納している。
【００１４】
ＮＩＣ２０６は、ネットワークインターフェースであり、インターネット１００やローカルネットワーク１０１を介して外部装置とのデータのやり取りを行う。入力部２０７は入力を受け付けるためのインターフェースであり、不図示のキーボードやマウス等からの入力を受け付ける。表示部２０８は出力表示手段であり、各プログラムの出力画面等を表示する。ＧＰＵ（Ｇｒａｐｈｉｃａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）２０９は、画像処理や機械学習などのベクトル演算に特化した演算装置である。
【００１５】
プリンター１０２の各ハードウェア構成要素はシステムバス２１１により通信可能に接続されている。ＣＰＵ２１２は、プリンター１０２の制御部であり、ＲＯＭ２１３またはＨＤＤ２１５に格納されているアプリケーションプログラムやＯＳを実行する。また、ＣＰＵ２１２はＲＡＭ２１４にプログラム実行に必要な情報やファイル等を一時的に格納する制御を行う。ＲＯＭ２１３は不揮発性の記憶手段であり、内部に基本Ｉ／Ｏプログラム等のプログラムを記憶する。ＲＡＭ２１４は一時記憶手段であり、ＣＰＵ２１２の主メモリやワークエリア等として機能する。ＨＤＤ２１５は、外部記憶手段の一つで、大容量メモリとして機能する記憶装置であり、アプリケーションプログラムやＯＳ等の本発明に係るプログラムを格納している。
【００１６】
ＮＩＣ２１６は、ネットワークインターフェースであり、インターネット１００やローカルネットワーク１０１を介して各サービスとデータのやり取りを行う。入力部２１７は、入力を受け付けるためのインターフェースであり、プリンター１０２の操作パネル等からの入力を受け付ける。表示部２１８は、出力表示手段であり、各プログラムの出力画面等を表示する。プリントエンジン２１９は、既知の印刷技術を利用する印刷部であり、好適な実施系として例えば電子写真方式（レーザービーム方式）やインクジェット方式、昇華方（熱転写）方式等が挙げられる。プリントエンジン２１９は、印刷データ（ＰＤＬ（Ｐａｇｅ  Ｄｅｓｃｒｉｐｔｉｏｎ  Ｌａｎｇｕａｇｅ）、ＰＤＦ（Ｐｏｒｔａｂｌｅ  Ｄｏｃｕｍｅｎｔ  Ｆｏｒｍａｔ）など）から変換された画像データを用いて印刷動作を行う。
【００１７】
［ソフトウェア構成］
図３は、本実施形態に係るプリントシステムのプリントサービス１０４、データ収集サービス１０５、推定サービス１０６、クライアント１０３、およびプリンター１０２のソフトウェア構成の例を示す。
【００１８】
プリンター１０２には、プルプリントアプリ３２１が備えられる。プルプリントアプリ３２１は、図２で示したＨＤＤ２１５に記憶され、ＣＰＵ２１２によってＲＡＭ２１４にロードされ実行される。プルプリントアプリ３２１は、入力部２１７にてユーザーから受け付けた操作に従い、プリントサービス１０４から印刷に係る情報を取得し、表示部２１８に表示する。さらに、プルプリントアプリ３２１は、印刷に係るリクエストをプリントサービス１０４に送信し、プリントサービス１０４から印刷データの取得、プリントエンジン２１９への印刷データの転送を行い、印刷を実行する。
【００１９】
クライアント１０３には、文書入稿アプリ３３１が備えられる。文書入稿アプリ３３１は、図２で示したＨＤＤ２０５に記憶されており、ＣＰＵ２０２によってＲＡＭ２０４にロードされ実行される。文書入稿アプリ３３１は、予めＨＤＤ２０５に保存された文書データをプリントサービス１０４の印刷ＡＰＩ３４１に送信することで入稿を行う。
【００２０】
プリントサービス１０４は、印刷ＡＰＩ３４１、印刷管理部３４２、印刷データ生成部３４３、およびストレージ３４４を含んで構成される。各ソフトウェアモジュールは図２で示したＨＤＤ２０５に記憶されており、前述したようにＣＰＵ２０２によってＲＡＭ２０４にロードされ実行される。印刷ＡＰＩ３４１は、プリントサービス１０４の各種インターフェースを提供し、プリンター１０２からの文書入稿、文書情報取得、印刷、印刷ジョブ情報取得などのリクエストの受付け、応答を行う。また、プリントサービス１０４が扱う文書情報、文書データ、印刷ジョブ情報、印刷データは、ストレージ３４４に格納されており、印刷管理部３４２によって管理される。
【００２１】
データ収集サービス１０５は、データＡＰＩ３５１、データ管理部３５２、およびストレージ３５３を含んで構成される。各ソフトウェアモジュールは図２で示したＨＤＤ２０５に記憶されており、前述したようにＣＰＵ２０２によってＲＡＭ２０４にロードされ実行される。データＡＰＩ３５１は、データ収集サービス１０５の各種インターフェースを提供し、プリントサービス１０４からのイベントデータ保存、推定サービス１０６からのデータ取得のリクエストの受付け、応答を行う。また、収集した各種データは、ストレージ３５３に格納され、データ管理部３５２によって管理される。
【００２２】
推定サービス１０６は、推定ＡＰＩ３６１、学習モデル３６２、学習部３６３、データ前処理部３６４を含んで構成される。各ソフトウェアモジュールは図２で示したＨＤＤ２０５に記憶されており、前述したようにＣＰＵ２０２、ＧＰＵ２０９によってＲＡＭ２０４にロードされ実行される。推定ＡＰＩ３６１は、推定サービス１０６の各種インターフェースを提供し、プリントサービス１０４、プリンター１０２からの印刷設定推定リクエストの受付け、応答を行う。印刷設定の推定は、推定ＡＰＩ３６１から受け取った文書の属性情報を入力として、学習モデル３６２で行う。
【００２３】
学習部３６３は、データ前処理部３６４が生成したベクトル化済み学習データを使用して後述の学習モデルの学習を行う。データ前処理部３６４は、データ収集サービス１０５のデータＡＰＩ３５１にデータ取得リクエストを送信して収集データを取得し、後述の学習に必要なデータの抽出、構造化、ベクトル化といった前処理を行う。これにより、データ前処理部３６４は、学習部３６３での学習に使用できるベクトル化済み学習データを生成する。
【００２４】
［データ収集］
次に、図４を用いて、本実施形態に係る文書入稿、印刷処理、処理データの収集のシーケンスについて説明する。
【００２５】
Ｓ４１０にて、クライアント１０３の文書入稿アプリ３３１が、印刷ＡＰＩ３４１に印刷対象となる文書データとその属性情報を含めた文書入稿リクエストを送信する。プリントサービス１０４は、文書入稿リクエストを受け付けると、印刷管理部３４２がストレージ３４４に文書データを保存するとともに、文書情報を登録する。
【００２６】
表１は、プリントサービス１０４の印刷管理部３４２で管理される文書情報の構成例を示す。ｄｏｃ＿ｉｄは、管理される文書を一意に識別するための文書ＩＤ（識別子）であり、文書情報登録時に印刷管理部３４２によって発行される値である。ｄｏｃ＿ｎａｍｅは、文書入稿リクエスト時に属性情報として指定された文書名であり、ユーザーが文書を識別するための表示などに使用される。ｄｏｃ＿ｐａｔｈは、当該文書情報が示す文書の文書データの保存先であり、この値を参照することでストレージ３４４上の文書データにアクセスできる。ｄｏｃ＿ｐａｇｅｓｉｚｅ、ｄｏｃ＿ｃｏｌｏｒ、ｄｏｃ＿ｐａｇｅｓはそれぞれ、ページサイズ、カラーモード、ページ数などの文書の特徴を表す属性情報であり、文書データの特徴を表すものであればこれに限らない。これらの属性情報は、プリントサービス１０４の印刷データ生成部３４３で文書データを解析することで得た値を登録するか、ｄｏｃ＿ｎａｍｅと同様にクライアントから文書入稿リクエストとともに受信した値を使用してもよい。
【００２７】
【表１】
2020160947.tif 000003
【００２８】
Ｓ４１１にて、プリントサービス１０４の印刷管理部３４２は、Ｓ４１０で文書データが入稿され、文書情報を登録されたことに伴って、データ収集サービス１０５のデータＡＰＩ３５１にその文書情報を送信する。データ収集サービス１０５のデータ管理部３５２は、データＡＰＩ３５１で受け取った文書情報をストレージ３５３に記録する。
【００２９】
Ｓ４２０にて、プリンター１０２のプルプリントアプリ３２１は、プリントサービス１０４の印刷ＡＰＩ３４１に文書情報リスト取得リクエストを送信する。プリントサービス１０４は、印刷ＡＰＩ３４１で文書情報リスト取得リクエストを受ける。
【００３０】
Ｓ４２１にて、プリントサービス１０４は、文書情報リスト取得リクエストに応答して、印刷管理部３４２により文書情報を取得し、その文書情報を含むリストをプリンター１０２に返す。プリンター１０２のプルプリントアプリ３２１は、プリントサービス１０４から受信した文書情報リストを文書情報リスト画面４０１に表示する。図４（ｂ）に示す文書情報リスト画面４０１には、Ｓ４２１で受信した文書情報リスト４０２、印刷対象を選択するためのチェックボックス４０３、および印刷指示を行うための印刷ボタン４０４が設けられる。
【００３１】
プリンター１０２のプルプリントアプリ３２１は、ユーザー操作により文書情報リスト画面４０１の印刷ボタン４０４が押下されると、チェックボックス４０３により選択された文書情報についての印刷設定画面４０５を表示する。印刷設定画面４０５には、プリントサービス１０４が対応する印刷属性を指定するための設定項目（プルダウンやテキストボックス）４０６と印刷指示のための印刷ボタン４０７が設けられる。例えば、本実施形態では、設定項目４０６において、ページサイズ、ページレイアウト、片面／両面印刷、カラーモード、部数が指定できるものとするが、これに限らず、他の印刷属性を指定可能にも構成してよい。
【００３２】
ユーザー操作により、印刷設定画面４０５で、印刷設定が指定されて印刷ボタン４０７が押下されると、Ｓ４３０にて、プルプリントアプリ３２１は、印刷リクエストをプリントサービス１０４の印刷ＡＰＩ３４１に送信する。このとき、プルプリントアプリ３２１は、文書情報リスト画面４０１で選択された文書の文書ＩＤと、印刷設定画面４０５で指定された印刷設定を印刷リクエストに含める。プリントサービス１０４の印刷管理部３４２は、印刷ＡＰＩ３４１にてプリンター１０２からの印刷リクエストを受け付けると、リクエスト内容で印刷ジョブ情報を登録する。
【００３３】
表２は、プリントサービス１０４の印刷管理部３４２で管理される印刷ジョブ情報の構成例を示す。ｊｏｂ＿ｉｄは、管理される印刷ジョブを一意に識別するための印刷ジョブＩＤ（識別子）であり、印刷ジョブ情報の登録時に印刷管理部３４２によって発行される値である。ｄｏｃ＿ｉｄは、印刷リクエスト時に指定された印刷データの元となる文書の文書ＩＤである。ｊｏｂ＿ｐａｔｈは、当該印刷ジョブ情報が示す印刷ジョブの印刷データの保存先であり、この値を参照することで、ストレージ３４４上の印刷データにアクセスできる。ｊｏｂ＿ｐａｇｅｓｉｚｅ、ｊｏｂ＿ｃｏｌｏｒ、ｊｏｂ＿ｃｏｐｉｅｓ、ｊｏｂ＿ｌａｙｏｕｔは、前述の印刷設定画面４０５で指定され、印刷リクエストに含まれた印刷設定の属性値である。  
【００３４】
【表２】
2020160947.tif 000004
【００３５】
Ｓ４３２にて、印刷管理部３４２は、印刷データ生成部３４３に印刷データ生成を指示し、印刷ジョブＩＤをプルプリントアプリ３２１に返す。一方、Ｓ４３１にて、印刷データ生成部３４３は、印刷ジョブ情報のｄｏｃ＿ｉｄをキーとして文書情報のｄｏｃ＿ｐａｔｈから文書データを取得し、変換することで印刷データを生成し、ストレージ３４４のｊｏｂ＿ｐａｔｈが示すパスに保存する。この時、印刷管理部３４２は、登録した印刷ジョブ情報をデータ収集サービス１０５のデータＡＰＩ３５１に送信する。そして、データ収集サービス１０５のデータ管理部３５２は、プリントサービス１０４から受信したデータをストレージ３５３に記録する。
【００３６】
Ｓ４４０にて、プリンター１０２のプルプリントアプリ３２１は、印刷リクエストの応答としてＳ４３２で受け取った印刷ジョブＩＤを含めた印刷データ取得リクエストをプリントサービス１０４の印刷ＡＰＩ３４１に送る。
【００３７】
Ｓ４４１にて、プリントサービス１０４の印刷管理部３４２は、印刷ＡＰＩ３４１で受け付けた印刷データ取得リクエストに含まれる印刷ジョブＩＤの印刷ジョブ情報のｊｏｂ＿ｐａｔｈを確認し、ストレージ３５３に保存している対応する印刷データを取得する。そして、印刷管理部３４２は、印刷データ取得リクエストに対する応答として、印刷データをプルプリントアプリ３２１に返す。
【００３８】
Ｓ４４２にて、プリンター１０２のプルプリントアプリ３２１は、受信した印刷データをプリントエンジン２１９に送り、印刷を実行する。
【００３９】
これらの処理の仕組みにより、プリントサービス１０４で入稿された文書情報、および、印刷リクエストにより生成された印刷ジョブ情報が対応付けられて、データ収集サービス１０５のストレージ３５３に蓄積されていく。以降、データ収集サービス１０５には後述の学習データに十分な件数の収集データが蓄積されているものとする。なお、上述した文書情報や印刷ジョブ情報として管理される情報は上記に限定するものではなく、例えば、要求を行ったユーザー情報や印刷を行う装置情報、そのほか、印刷に関するその他の情報（時間帯や位置情報）などを更に用いてもよい。
【００４０】
［データ前処理／教師データ作成］
次に、推定サービス１０６がデータ収集サービス１０５に蓄積された文書情報、および印刷ジョブ情報から学習モデルの学習に使用するベクトル化済み学習データを作成するデータ前処理について説明する。
【００４１】
Ｓ５１０にて、推定サービス１０６のデータ前処理部３６４は、データ収集サービス１０５のデータＡＰＩ３５１を呼び出す。
【００４２】
Ｓ５１１にて、データ収集サービス１０５のデータ管理部３５２は、前述のデータ収集によってストレージ３５３に蓄積された文書情報、および印刷ジョブ情報を取り出し、推定サービス１０６に返す。ここでデータ前処理部３６４が取得するデータの量は、学習モデルの学習に使用する情報の量となるため、より多い方が推定精度の向上を期待できる。また、データ収集サービス１０５のデータＡＰＩ３５１にクエリＩ／Ｆ（インタフェース）を設け、データ前処理部３６４が指定した条件に応じてデータ管理部３５２がストレージ３５３から取り出して返す構成であってもよい。
【００４３】
Ｓ５２０にて、データ前処理部３６４は、Ｓ５１１で取得した文書情報と印刷ジョブ情報をｄｏｃ＿ｉｄ（つまり、文書ＩＤ）をキーとして結合し、さらに学習に使用する要素のみを抽出して学習データとする。表３は、文書情報と印刷情報を結合し、推定の入力データとなる文書属性情報と、正解データとなる印刷設定情報を抽出した学習データの例である。
【００４４】
【表３】
2020160947.tif 000005
【００４５】
更にデータ前処理部３６４は、ｄｏｃ＿ｐａｇｅｓｉｚｅやｄｏｃ＿ｃｏｌｏｒのように文字列でカテゴリを表す要素について値のベクトル化を行う。本実施形態では、ベクトル化の手法として、公知の方法であるＯｎｅ−Ｈｏｔ−Ｅｎｃｏｄｉｎｇを使用する。Ｏｎｅ−Ｈｏｔ−Ｅｎｃｏｄｉｎｇカテゴリを表す要素について、１つ以上の０と、１の値を持つ新しい値として置き換える。例えば、ｄｏｃ＿ｃｏｌｏｒはモノクロを表すＢＷ、または、カラーを表すＣＬの２種類の値をとるカテゴリ要素である。これを、ｄｏｃ＿ｃｏｌｏｒ＿ＢＷ、ｄｏｃ＿ｃｏｌｏｒ＿ＣＬの２つの値に置き換える。ｄｏｃ＿ｃｏｌｏｒがＢＷであったデータは、ｄｏｃ＿ｃｏｌｏｒ＿ＢＷ＝１，ｄｏｃ＿ｃｏｌｏｒ＿ＣＬ＝０となる。その他のカテゴリ要素についても同様にＯｎｅ−Ｈｏｔ−Ｅｎｃｏｄｉｎｇを行う。
【００４６】
表４は、Ｏｎｅ−Ｈｏｔ−Ｅｎｃｏｄｉｎｇによってカテゴリ要素をベクトル化したベクトル化済み学習データの例である。表４において、ｄｏｃ＿ｐａｇｅｓｉｚｅ＿Ａ４、ｄｏｃ＿ｐａｇｅｓｉｚｅ＿Ａ３、ｄｏｃ＿ｐａｇｅｓｉｚｅ＿Ｂ５は、表３のｄｏｃ＿ｐａｇｅｓｉｚｅをベクトル化したものである。また、ｄｏｃ＿ｃｏｌｏｒ＿ＢＷ、ｄｏｃ＿ｃｏｌｏｒ＿ＣＬは表３のｄｏｃ＿ｃｏｌｏｒをベクトル化したものである。ｄｏｃ＿ｐａｇｅｓやｊｏｂ＿ｃｏｐｉｅｓの値は、表２に示した値が示されている。なお、ベクトル化の手法は、Ｏｎｅ−Ｈｏｔ−Ｅｎｃｏｄｉｎｇに限られるものではなく、例えば、ｄｏｃ＿ｐａｇｅｓｉｚｅは、各用紙サイズの面積等の定量値に置き換えることで、大小関係を表現した特徴としてベクトル化することもできる。
【００４７】
【表４】
2020160947.tif 000006
【００４８】
Ｓ５３０にて、学習部３６３は、上記のようにデータ前処理部３６４にて前処理を行ったベクトル化済み学習データを用いて、学習モデルの学習を行う。
【００４９】
［ニューラルネットワーク］
本実施形態の推定に用いる手法として、ディープラーニングの基本的なアルゴリズムである、フィードフォワード・ニューラルネットワークなどと呼ばれる多層パーセプトロンを用いて定量データを推定する回帰について説明する。
【００５０】
図６は、ニューラルネットワークの概念構成の例を示したものである。ニューラルネットワークは、人間の脳内の神経細胞（ニューロン）と信号を伝達するためのつながりである神経回路網を模して数式的なモデルで表現される。
【００５１】
図６において、入力層６１０、隠れ層６２０、および出力層６３０の３層からなるニューラルネットワークの例を示している。各層において、白丸（〇）はニューロンを表す。入力層６１０は、ｘ［０］〜ｘ［３］の４つの入力信号を受け付ける４つのニューロンからなる入力層である。隠れ層６２０は、入力層６１０からの信号を受け付け、出力層６３０へ信号ｈ［０］〜ｈ［２］を出力する３つのニューロンからなる隠れ層である。出力層６３０は、一つの出力信号ｙのためのニューロンからなる出力層である。
【００５２】
図６において、ニューロン間を結ぶノードに示されたｗは、出力信号に対する重みを示す。ｗ１［０，０］〜ｗ１［３，２］は、入力層６１０の各ニューロンから隠れ層６２０のニューロンへの信号に対する重みである。同じように、ｗ２［０］〜ｗ２［２］は隠れ層６２０から出力層６３０への信号に対する重みを表す。更に、ｂ１［０］〜ｂ１［２］、ｂ２［０］はそれぞれ、隠れ層６２０への信号に対するバイアス、および出力層６３０への信号に対するバイアスを表す。
【００５３】
図７は、図６の隠れ層６２０のニューロンを拡大して図示したものである。図７において、隠れ層６２０の各ニューロンには、前の層からの入力信号の総和ａ１［０］〜ａ１［２］をどのように活性化して次のニューロンに伝えるかを決定するために活性化関数ａｃｔ（）が適用される。本実施形態では、隠れ層６２０の活性化関数にシグモイド関数を使用する。しかし、これに限定するものではなく、活性化関数として、ｔａｎｈ関数やＲｅＬｕ関数などを用いてもよい。
【００５４】
図８は、シグモイド関数の例を示し、式：ｆ（ａ）＝１／（１＋ｅｘｐ（−ａ））で与えられ、入力に対して０から１までの範囲で出力を返す。これにより、隠れ層６２０の全ニューロンの出力ｈは０から１の間の値をとる。このとき、図７に示す重み付き信号とバイアスの総和ａ、隠れ層６２０の出力信号ｈ、出力層６３０の出力信号ｙは、下記の式で計算できる。
ａ１［０］＝ｗ１［０，０］×ｘ［０］＋ｗ１［１，０］×ｘ［１］＋ｗ１［２，０］×ｘ［２］＋ｗ１［３，０］×ｘ［３］＋ｂ１［０］
ａ１［１］＝ｗ１［０，１］×ｘ［０］＋ｗ１［１，１］×ｘ［１］＋ｗ１［２，１］×ｘ［２］＋ｗ１［３，１］×ｘ［３］＋ｂ１［１］
ａ１［２］＝ｗ１［０，２］×ｘ［０］＋ｗ１［１，２］×ｘ［１］＋ｗ１［２，２］×ｘ［２］＋ｗ１［３，２］×ｘ［３］＋ｂ１［２］
ｈ１［０］＝ａｃｔ（ａ１［０］）
ｈ１［１］＝ａｃｔ（ａ１［１］）
ｈ１［２］＝ａｃｔ（ａ１［２］）
ｙ＝ｗ２［０］×ｈ１［０］＋ｗ２［１］×ｈ１［１］＋ｗ２［２］×ｈ１［２］＋ｂ２［０］
【００５５】
ニューラルネットワークは、重みｗやバイアスｂの値を変更することで、入力信号に対して様々なパターンの出力を表現できる。さらに、隠れ層６２０の層数やニューロン数を変更することで、重みｗやバイアスｂの数が増え、ニューラルネットワークが表現できる処理パターンが増える。一般的に、ニューロンの数を増やすことで、ネットワークの柔軟性が増し、より複雑な特徴を捉えることができる反面、過度に増やした場合には、学習データに含まれる偶発的なノイズも学習してしまう可能性もある。そのため、隠れ層６２０の層数やニューロン数は、目的に応じて調整される。
【００５６】
本実施形態に係る学習モデルは、推定する印刷設定の属性（設定項目）毎に定義、学習するものとし、部数などの連続値を指定する属性については回帰、カラーモードやページサイズ等の選択式の属性の推定にはクラス分類の問題として扱う。ただし、一つの学習モデルで扱う推定値の数は、本発明を制限するものではなく、複数の属性値を推定するモデルとして定義することもできる。また、学習モデルのアルゴリズムは、他の機械学習アルゴリズムを用いてもよい。したがって、印刷設定に関する各種設定項目に対しては、一律に同じ手法にて学習を行うものでは無く、その内容に応じて変更してよい。
【００５７】
［ニューラルネットワークにおける学習］
ニューラルネットワークの学習について説明する。ニューラルネットワークの特徴は、データから学習できることであり、学習とは前述の重みｗとバイアスｂを予め収集した学習データに適応するように調整することである。ニューラルネットワークの学習では、その指標として損失関数を用いる。損失関数とは、ベクトル化済み学習データの入力データをニューラルネットワークに与えて得られた結果を正解データで評価し、どれだけ適合していないかを損失として算出する関数である。ニューラルネットワークの学習ではこの値を０（すなわち、完全一致）に近づけることを目標とする。
【００５８】
本実施形態では、損失関数に２乗和誤差を使用し、損失Ｌを以下の式（１）で算出するものとする。損失関数としては、交差エントロピー誤差など他の関数を用いてもよい。
2020160947.tif 000007
式（１）において、ykは、ニューラルネットワークの出力である推定データを表す。tkは、ベクトル化済み学習データの正解データを表す。ｋは、その次元数、つまり出力層のニューロンの数を表す。
【００５９】
図９は、学習モデルの学習に用いる損失Ｌを求める際のデータフローを示す図である。推定モデル９０１は、前述の図６の各パラメータｗ、ｂを保持する学習モデルであり、入力データＸが入力された際に、その推定データＹを出力する。そして、損失関数９０２は、正解データＴと、推定データＹが入力されることで、損失Ｌを計算することができる。Ｘ、Ｙ、Ｔはそれぞれの次元数に応じた複数の値を含む入力データ、推定データ、正解データを表す。このとき、Ｙ、Ｔの次元数は同じである。
【００６０】
本実施形態において、各パラメータｗ、ｂを調整して損失Ｌを小さくする手法としては、公知の方法である勾配法（勾配降下法）を用いる。勾配法では、前述の損失関数の各パラメータｗ、ｂに関する微分を勾配として求め、その勾配と逆方向に各パラメータｗ、ｂの値を更新する処理を繰り返す。これにより、損失関数によって求められる損失Ｌが小さくなることが期待できる。さらに、勾配法で使用する各パラメータｗ、ｂの勾配を効率的に求める方法としては、公知の方法である誤差逆伝播法が使用できる。
【００６１】
続いて、図５のＳ５３０で行われる学習モデルの学習処理について、データ前処理（図５のＳ５２０）で整形したベクトル化済み学習データを用いた印刷設定の部数属性を推定する例を用いて説明する。
【００６２】
表５および表６は、表４のベクトル化済み学習データから、本実施形態に係る部数属性の推定に必要な列を、入力データと正解データとして取り出した例である。印刷属性情報を入力データ（表５）とし、印刷設定情報の部数項目を正解データ（表６）として学習する。表５に示すように、部数属性の推定に用いられる学習モデルの学習には、ページサイズ、色設定、およびページ数などが用いられる。
【００６３】
【表５】
2020160947.tif 000008
【００６４】
【表６】
2020160947.tif 000009
【００６５】
［学習フロー］
図１０は、前述の勾配降下法を用いた学習を示すフローチャートである。上述したように、本実施形態において、図１０に示す処理は、推定サービス１０６の学習部３６３にて行われるものとする。
【００６６】
Ｆ１００１にて、学習部３６３は、学習モデルのパラメータｗ、ｂを初期化する。初期化の値は、例えば、正規分布での乱数に「０．０１」で重み付けした値などを用いればよい。
【００６７】
Ｆ１００２にて、学習部３６３は、準備した入力データからレコードを取り出し、学習モデルに入力Ｘとして入力する。そして、学習部３６３は、学習モデルから得られた推定データＹと、入力した入力データに対応する正解データＴとを損失関数（本例では、上記の式（１））に入力することで損失Ｌを計算する。ここで計算された損失Ｌおよびこの時点で算出に用いられた損失関数の各パラメータｗ、ｂは記憶されているものとする。
【００６８】
Ｆ１００３にて、学習部３６３は、前回の処理にて求められた損失Ｌと今回のＦ１００２の処理で求めた損失Ｌの変化量から、損失関数の各パラメータｗ、ｂに関する微分を勾配として求める。
【００６９】
Ｆ１００４にて、学習部３６３は、Ｆ１００３で求めた各パラメータの勾配と逆方向にパラメータの値を更新する。このとき更新する量は学習率と呼ばれ、１回の学習でどれだけパラメータを更新するかを決める。学習率の値は予め決めておく必要があり、ここでは学習率を「０．０１」とするが、学習結果を見ながら調整して決定されてよい。
【００７０】
Ｆ１００５にて、学習部３６３は、用意したベクトル化済み学習データを全て用いて学習を行ったか否かを判定する。学習が終わっていないと判定された場合（Ｆ１００５にてＮＯ）Ｆ１００２へ戻り、未使用のベクトル化済み学習データを用いて処理を繰り返すことで、学習モデルのパラメータの調整を繰り返す。学習が終わったと判定された場合（Ｆ１００５にてＹＥＳ）本処理フローを終了する。
【００７１】
これにより、学習モデルはデータ収集サービス１０５が収集した学習データを用いて、文書の属性情報から印刷設定の部数属性を推定するための学習を行ったこととなり、この学習によってパラメータが調整された学習モデルを学習済みモデルと呼ぶ。学習済みモデルは、学習した学習データのパターンを近似した関数として機能し、上記処理により得られた学習済みモデルを用いることで、未知の入力データから結果を推定することができる。
【００７２】
この印刷設定の部数属性を推定する例の学習済みモデルでは、表５と同じ項目から構成される未知の入力データを入力として、印刷設定の部数属性の値を推定データとして小数値で出力する。
【００７３】
推定サービス１０６は、印刷設定の属性情報毎に学習フロー（図１０）にて学習した学習済みモデルを学習モデル３６２に配備する。本実施形態では、入力データを構成する属性情報として、ページサイズ属性用、ページレイアウト属性用、片面／両面印刷属性用、カラーモード属性用などがある。推定サービス１０６は、プリントサービス１０４によってデータ収集サービス１０５に新しく蓄積され続ける学習データを使用して、学習モデル３６２を再学習することができる。この再学習のタイミングは、定期やリアルタイム、手動による再学習指示に基づいて行われてもよい。
【００７４】
［印刷属性の推定］
図１１を用いて、プリンター１０２が、推定サービス１０６によって推定した印刷設定でプリントサービス１０４に印刷リクエストを行うシーケンスについて説明する。ここでは、図４との差分のみを説明するものとする。
【００７５】
Ｓ４３１にて、プルプリントアプリ３２１は、プリントサービス１０４から文書情報リストを受信すると、文書情報リスト画面１１０１に表示する。
【００７６】
Ｓ１１１０にて、プルプリントアプリ３２１は、文書情報リストに含まれる文書情報の属性情報を含めた印刷設定の推定リクエストを推定サービス１０６の推定ＡＰＩ３６１に送信する。
【００７７】
Ｓ１１１１にて、推定サービス１０６は、推定ＡＰＩ３６１にて推定リクエストを受け付けると、学習モデル３６２に配備された印刷設定の各属性用の学習済みモデルにリクエストで受け取った文書情報の属性情報を入力データとして入力する。そして、推定サービス１０６は、学習済みモデルから出力された推定データを取得する。さらに、推定サービス１０６は、推定した推定データを実際の印刷設定の属性値として使用できる推定値に変換する。例えば、部数属性などの回帰による小数値として得られる推定データは、最も近い整数値などに変換する。また、カラーモード属性などのクラス分類による推定データは、一番確率の高いクラスに対応する属性値に変換する。
【００７８】
Ｓ１１１２にて、推定ＡＰＩ３６１は、推定値として変換した印刷設定を、推定リクエストの要求元であるプリンター１０２に返す。
【００７９】
図１１（ｂ）に示す文書情報リスト画面１１０１は、図４（ｂ）に示した文書情報リスト画面４０１との差分として、おすすめ設定印刷チェックボックス１１０３を備える。ユーザー操作により、おすすめ設定印刷チェックボックス１１０３を有効にした状態で文書情報リスト１１０２における文書選択とともに印刷ボタン１１０４が押下されたとする。この場合、Ｓ４３０において、プルプリントアプリ３２１は、該当の文書ＩＤと、Ｓ１１１２で受信した印刷設定を用いて、プリントサービス１０４に印刷リクエストを送信する。このとき、図４の印刷設定画面４０５に相当する印刷設定画面１１０５は表示されず、ユーザーは自身で印刷設定の操作を行うことなく、推定サービス１０６によって推定された印刷設定で印刷を指示することができる。この後、プリントサービス１０４は、推定された印刷設定を用いて印刷データを生成し、プリンター１０２へ送信することとなる。
【００８０】
また、文書情報リスト画面１１０１において、おすすめ設定印刷チェックボックス１１０３を無効にした状態で、文書情報リスト１１０２の文書選択と共に印刷ボタン１１０４が押下された場合、プルプリントアプリ３２１は印刷設定画面１１０５を表示する。このとき、印刷設定画面１１０５の各属性値には、Ｓ１１１２で取得した印刷設定の属性値が初期値として設定された上で、印刷設定画面１１０５が表示される。つまり、おすすめ設定印刷チェックボックス１１０３を無効に指定した場合でも、文書データの属性値に応じて印刷設定の推定が行われ、これに基づいて印刷設定画面１１０５の各設定項目の初期値の表示が制御されることとなる。
【００８１】
このようにプルプリントの印刷指示の際に、推定サービス１０６で推定した印刷設定をおすすめ設定として利用する。これにより、プリンター１０２は、ユーザーの所望、またはそれに近い印刷設定を事前に再現でき、より簡易なプルプリント指示を行うことができる。
【００８２】
＜第二の実施形態＞
第一の実施形態では、プルプリントの印刷指示シーケンスにおいて、プリンター１０２が推定サービス１０６を使用して推定した印刷設定を自動で設定または表示していた。しかしながら、推定サービス１０６が推定する印刷設定は、データ収集サービス１０５に蓄積されたデータから抽出した学習データのパターンを近似した結果であり、必ずしも全てのユーザーにとって所望する印刷設定を推定できるとは限らない。そのため、ユーザーによっては印刷設定の推定を望まない場合もある。
【００８３】
以下、本発明の第二の実施形態として、ユーザー毎に印刷設定の推定機能の有効、無効の設定を保持し、推定処理を切り替える実施形態に関して説明する。なお、参照番号および名称は特に断らない限り、第一の実施形態と同様である。また、第一の実施形態と重複する構成等については、説明を省略する。
【００８４】
表７は、プリンターのプルプリントアプリ３２１で管理するユーザー設定情報の例を示す。ユーザー設定情報には、プルプリント指示を行うユーザーを示すｕｓｅｒＩｄと、印刷設定の推定機能を利用するかを示すｅｎａｂｌｅ＿ｐｒｅｄｉｃｔが含まれる。ｕｓｅｒＩｄは、プルプリント指示を行う際にユーザーを一意に識別する識別子である。ｕｓｅｒＩｄは、例えば、プリンター１０２にログインする際のユーザーや、プルプリントアプリ３２１上でプリントサービス１０４にログインする際のユーザーなどに関連づけられるＩＤ（識別子）であればよい。また、ユーザー設定情報は、プルプリントアプリ３２１において、ユーザー設定画面（不図示）等からユーザーの操作により設定され、保持されているものとする。
【００８５】
【表７】
2020160947.tif 000010
【００８６】
図１１のＳ４２１にて、プルプリントアプリ３２１は、プリントサービス１０４から文書情報リストを受信すると、ユーザー設定情報を参照し、操作中のユーザーの印刷設定の推定機能が有効であるか否かを確認する。印刷設定の推定機能が有効であった場合、Ｓ１１１０にて、プルプリントアプリ３２１は、図１１（ｂ）に示す文書情報リスト画面１１０１を表示するとともに、推定サービス１０６に推定リクストを送信する。一方、印刷設定の推定機能が無効であった場合、プルプリントアプリ３２１は、図４（ｂ）に示す文書情報リスト画面４０１を表示する。
【００８７】
このように制御することで、本実施形態では、ユーザー毎に印刷設定の推定機能を使用するか否かを切り替えることができる。そのため、印刷設定に関するユーザーの利便性が向上する。
【００８８】
＜第三の実施形態＞
上記の実施形態では、プルプリントの印刷指示シーケンスにおいて、プリンター１０２が推定サービス１０６を使用して推定した印刷設定を自動で設定または表示する構成であった。しかしながら、文書情報リスト画面にて文書情報リストを表示するタイミングで、プリンター１０２から推定サービス１０６に推定リクエストを送信して印刷設定の推定を行う場合、その処理に時間を要し、ユーザーの印刷指示に間に合わない場合がある。これに対し、本実施形態では、推定に必要な文書の属性情報は、文書の入稿時に登録されていることを考慮し、事前に推定処理を行う形態について説明する。
【００８９】
以下、本発明の第三の実施形態として、クライアント１０３からの文書入稿のタイミングでプリントサービス１０４が推定サービス１０６を利用して印刷設定の推定値を取得し、さらに推定された印刷設定で事前に印刷データを生成する形態に関して説明する。なお、参照番号および名称は特に断らない限り、第一の実施形態と同様である。また、第一の実施形態と重複する構成等については、説明を省略する。
【００９０】
［処理シーケンス］
図１２は、プリントサービス１０４が、文書入稿リクエストを受け付けた際に、推定サービス１０６を利用して印刷設定の推定を行い、推定された印刷設定を基に事前に印刷データを生成するシーケンスを示す図である。
【００９１】
Ｓ４１０にて、プリントサービス１０４は、文書入稿リクエストを受け付けると、印刷管理部３４２は、文書情報を登録する。そして、Ｓ１２１０にて、プリントサービス１０４は、登録した文書情報を含めた印刷属性の推定リクエストを、推定サービス１０６の推定ＡＰＩ３６１に送信する。
【００９２】
Ｓ１２１１にて、推定サービス１０６は、学習モデル３６２に配備された学習済みモデルを用いて印刷設定の推定処理を行う。
【００９３】
Ｓ１２１２にて、推定サービス１０６は、Ｓ１２１１における推定結果である印刷設定を、プリントサービス１０４に返す。
【００９４】
Ｓ１２１３にて、印刷管理部３４２は、推定サービス１０６から受信した印刷設定と、Ｓ４１０で登録した文書情報を印刷データ生成部３４３に渡し、印刷データの生成を指示する。また印刷管理部３４２は、印刷データに対応する印刷ジョブ情報を登録する。印刷データ生成部３４３は、印刷管理部３４２からの指示に従って印刷データを生成し、ストレージ３４４に保存する。
【００９５】
一方、文書情報リスト画面１１０１にて、ユーザー操作により、おすすめ設定印刷チェックボックス１１０３を有効にした状態で文書情報リスト１１０２における文書選択とともに印刷ボタン１１０４が押下されたとする。この場合、Ｓ１２２０にて、プルプリントアプリ３２１は、プリントサービス１０４におすすめ設定印刷リクエストを送信する。
【００９６】
Ｓ１２２１にて、プリントサービス１０４は、プリントＡＰＩでおすすめ設定印刷リクエストを受け付けると、その文書ＩＤをキーとして、Ｓ１２１１にて推定された印刷設定で生成した印刷データをストレージ３４４から取り出し、プリンター１０２に返す。
【００９７】
以上、本実施形態により、プリンターは、文書情報リストの表示時に推定サービスを利用して印刷設定の推定処理を行うことなく、事前にプリントサービスで推定された印刷設定を使用した印刷指示を行うことができる。また、プリントサービスで事前に印刷データの生成を行うことで、おすすめ設定印刷を利用するユーザーは、印刷データ生成を待つことなく印刷を開始できる。その結果、プルプリントにおけるユーザーの利便性を向上させることが可能となる。なお、おすすめ設定印刷チェックボックス１１０３が無効にされた状態で印刷ボタン１１０４が押下された場合には、第一の実施形態にて述べたように、印刷設定画面を表示し、その初期値として推定された印刷設定を表示させるような構成であってもよい。
【００９８】
＜その他の実施形態＞
本発明は上述の実施形態の１以上の機能を実現するプログラムをネットワーク又は記憶媒体を介してシステム又は装置に供給し、そのシステム又は装置のコンピューターにおける１つ以上のプロセッサがプログラムを読出し実行する処理でも実現可能である。また、１以上の機能を実現する回路（例えば、ＡＳＩＣ）によっても実現可能である。
【００９９】
発明は上記実施形態に制限されるものではなく、発明の精神及び範囲から離脱することなく、様々な変更及び変形が可能である。従って、発明の範囲を公にするために請求項を添付する。
【符号の説明】
【０１００】
１０２…プリンター、１０３…クライアント、１０４…プリントサービス、１０５…データ収集サービス、１０６…推定サービス
【図１】
2020160947.tif 000011
【図２】
2020160947.tif 000012
【図３】
2020160947.tif 000013
【図４】
2020160947.tif 000014
【図５】
2020160947.tif 000015
【図６】
2020160947.tif 000016
【図７】
2020160947.tif 000017
【図８】
2020160947.tif 000018
【図９】
2020160947.tif 000019
【図１０】
2020160947.tif 000020
【図１１】
2020160947.tif 000021
【図１２】
2020160947.tif 000022