以下、図面を参照しつつ、本発明に従う各実施の形態について説明する。以下の説明では、同一の部品および構成要素には同一の符号を付してある。それらの名称および機能も同じである。したがって、これらについての詳細な説明は繰り返さない。
<A.情報処理システム500>
図1を参照して、情報処理システム500について説明する。図1は、情報処理システム500の装置構成の一例を示す図である。
図1に示されるように、情報処理システム500は、複数の作業端末100と、1つ以上の情報処理端末200とを含む。
作業端末100は、たとえば、ノート型またはデスクトップ型のPC(Personal Computer)、タブレット端末、スマートフォン、または、通信機能を有するその他の情報処理端末である。情報処理システム500を構成する作業端末100の数は任意であり、たとえば、数台〜数千台である。説明を簡素化するために、図1には3台の作業端末100のみが示されている。作業端末100の各々は、同一の建屋に置かれていてもよいし、異なる建屋に置かれていてもよい。
作業端末100は、ユーザが作業を行うための端末である。作業端末100には、ユーザ操作を監視するための後述の操作監視プログラム122(図2参照)がインストールされている。操作監視プログラム122は、作業端末100に対するユーザ操作を操作ログ130に書き込み、操作ログ130を定期的に情報処理端末200に送信する。
情報処理端末200は、たとえば、ノート型またはデスクトップ型のPC、タブレット端末、スマートフォン、または、通信機能を有するその他の情報処理端末である。図1には、1台の情報処理端末200が示されているが、情報処理システム500を構成する情報処理端末200の数は任意である。
情報処理端末200は、作業端末100の各々から収集した操作ログ130を解析し、業務改善のための種々の指標をレポートする。
<B.情報処理端末200の概要>
次に、図2を参照して、上述の情報処理端末200の概要について説明する。図2は、操作ログ130から繰り返し作業を特定するための機能構成の一例を示す図である。
図2に示されるように、情報処理端末200は、通信部252と、作業特定部254と、繰り返し特定部256と、出力部260とを含む。
通信部252は、たとえば、作業端末100との通信機能を提供する通信ドライバである。通信部252は、たとえば、インターネット、ワイドエリアネットワーク(wide area network:WAN)、ローカルエリアネットワーク(local area network:LAN)、イーサネット(登録商標)ネットワーク、公的または私的ネットワークを介して作業端末100との通信を実現する。
通信部252は、複数の作業端末100の各々から当該作業端末100における操作ログ130を受信する。操作ログ130には、送信元の作業端末100に対した行われた操作に関する情報(以下、「操作情報」ともいう。)の各々が時系列で規定されている。「操作情報」は、たとえば、作業端末100内においてユーザが操作を行った対象のデータを示す。本明細書における「操作情報」は、操作対象のウィンドウの種別、操作対象のデータの種別、操作対象のアプリケーションの種別、操作対象のUI(User Interface)部品、操作対象の画面(たとえば、キャプチャした画面)、マウスなどの入力デバイスが示す座標情報、キーボードに対するキー入力結果、または、それらの組み合わせなどを含む概念である。通信部252は、受信した操作ログ130の各々を作業特定部254に出力する。
作業特定部254は、操作ログ130の各々に規定される時系列の各操作情報から、当該操作情報の各々について、対応する作業内容を特定する。各操作情報に対応する作業内容は、たとえば、作業定義232に基づいて特定される。作業定義232は、操作情報の種別に作業内容を対応付けている。一例として、作業特定部254は、作業定義232を参照して、操作ログ130に規定される操作対象「A」については対応の作業として作業「A」を特定する。また、作業特定部254は、操作対象「C」については対応の作業として作業「B」を特定する。
なお、対応の作業内容は、必ずしも作業定義232に基づいて特定される必要はない。たとえば、作業特定部254は、操作ログ130の各々に規定される時系列の各操作情報から余分なキーワードを削除し、当該編集後の操作情報を対応の作業内容として特定してもよい。作業特定部254による作業特定結果は、繰り返し特定部256に出力される。
繰り返し特定部256は、作業特定部254によって時系列の各操作情報について特定された各作業内容から、繰り返し行われている一連の作業(すなわち、繰り返し作業)を特定する。異なる言い方をすれば、繰り返し特定部256は、作業特定部254による作業特定結果の中から、作業内容の順序が類似する作業群を繰り返し作業として特定する。図2の例では、「作業C→作業B→作業D」の一連の作業が繰り返し行われているので、繰り返し特定部256は、「作業C→作業B→作業D」を繰り返し作業として特定する。繰り返し特定部256は、特定した繰り返し作業を出力部260に出力する。
なお、図2の例では、1種類の作業パターンの繰り返し作業が特定されている例が示されているが、複数種類の作業パターンの繰り返し作業が特定されてもよい。
出力部260は、特定された繰り返し作業を構成する各作業内容を時系列の順に並べて出力する。繰り返し作業は、任意の出力手段で出力される。一例として、出力部260は、作業レポート270として繰り返し作業を出力する。図2の例では、作業レポート270には、繰り返し作業を構成する各作業内容が矢印により繋がれている。作業レポート270の詳細については後述する。
ユーザは、作業レポート270を確認することで、繰り返し何度も行われている一連の作業を把握することができる。このような繰り返し作業が提示されることで、ユーザは、改善すべき業務内容を容易に発見することができる。この利点は、業務内容が複雑になるほど顕著となる。ユーザは、提示された繰り返し作業を自動化することで、作業効率を大幅に改善することができる。このようにして、情報処理端末200は、作業端末100における作業効率の改善を支援することができる。
<C.ハードウェア構成>
図3および図4を参照して、上述の図1に示される、作業端末100および情報処理端末200のハードウェア構成について順に説明する。
(C1.作業端末100のハードウェア構成)
まず、図3を参照して、作業端末100のハードウェア構成について説明する。図3は、作業端末100のハードウェア構成の一例を示す模式図である。
作業端末100は、制御装置101と、ROM(Read Only Memory)102と、RAM(Random Access Memory)103と、通信インターフェイス104と、表示インターフェイス105と、入力インターフェイス107と、記憶装置120とを含む。これらのコンポーネントは、バス110に接続される。
制御装置101は、たとえば、少なくとも1つの集積回路によって構成される。集積回路は、たとえば、少なくとも1つのCPU(Central Processing Unit)、少なくとも1つのGPU(Graphics Processing Unit)、少なくとも1つのASIC(Application Specific Integrated Circuit)、少なくとも1つのFPGA(Field Programmable Gate Array)、またはそれらの組み合わせなどによって構成され得る。
制御装置101は、作業端末100の操作監視プログラム122や作業用プログラム132やオペレーティングシステムなどの各種プログラムを実行することで作業端末100の動作を制御する。操作監視プログラム122は、作業端末100に対する操作を監視するためのプログラムであり、ユーザ操作に係る情報を操作ログ130に書き込む機能や、操作ログ130を情報処理端末200(図1参照)に定期的に送信する機能などを含む。作業用プログラム132は、ユーザの業務を支援するためのアプリケーションである。一例として、作業用プログラム132は、各種メーラー、各種ブラウザ、Word、Excel(登録商標)、業務を支援するその他のアプリケーションを含む。
制御装置101は、操作監視プログラム122の実行命令を受け付けたことに基づいて、記憶装置120またはROM102からRAM103に操作監視プログラム122や作業用プログラム132を読み出す。RAM103は、ワーキングメモリとして機能し、操作監視プログラム122や作業用プログラム132の実行に必要な各種データを一時的に格納する。
通信インターフェイス104には、LAN(Local Area Network)やアンテナなどが接続される。作業端末100は、通信インターフェイス104を介して、外部機器との間でデータをやり取りする。当該外部機器は、たとえば、上述の情報処理端末200や、サーバーなどを含む。作業端末100は、サーバーなどの外部機器から操作監視プログラム122や作業用プログラム132をダウンロードできるように構成されてもよい。
表示インターフェイス105には、ディスプレイ106が接続される。表示インターフェイス105は、制御装置101などからの指令に従って、ディスプレイ106に対して、画像を表示するための画像信号を送出する。ディスプレイ106は、たとえば、液晶ディスプレイ、有機EL(Electro Luminescence)ディスプレイ、またはその他の表示機器である。なお、ディスプレイ106は、作業端末100と一体的に構成されてもよいし、作業端末100とは別に構成されてもよい。
入力インターフェイス107には、入力デバイス108が接続される。入力デバイス108は、たとえば、マウス、キーボード、タッチパネル、またはユーザの操作を受け付けることが可能なその他の装置である。なお、入力デバイス108は、作業端末100と一体的に構成されてもよいし、作業端末100とは別に構成されてもよい。
記憶装置120は、たとえば、ハードディスクやフラッシュメモリなどの記憶媒体である。記憶装置120は、操作監視プログラム122、操作ログ130、および作業用プログラム132などを格納する。なお、操作監視プログラム122、操作ログ130、および作業用プログラム132の格納場所は、記憶装置120に限定されず、制御装置101の記憶領域(たとえば、キャッシュメモリなど)、ROM102、RAM103、外部機器(たとえば、サーバー)などに格納されていてもよい。
操作監視プログラム122は、単体のプログラムとしてではなく、任意のプログラムの一部に組み込まれて提供されてもよい。この場合、操作監視プログラム122による通信監視処理は、任意のプログラムと協働して実現される。このような一部のモジュールを含まないプログラムであっても、本実施の形態に従う操作監視プログラム122の趣旨を逸脱するものではない。さらに、操作監視プログラム122によって提供される機能の一部または全部は、専用のハードウェアによって実現されてもよい。さらに、少なくとも1つのサーバーが操作監視プログラム122の処理の一部を実行する所謂クラウドサービスのような形態で作業端末100が構成されてもよい。
(C2.情報処理端末200のハードウェア構成)
次に、図4を参照して、情報処理端末200のハードウェア構成について説明する。図4は、情報処理端末200のハードウェア構成の一例を示す模式図である。
情報処理端末200は、制御装置201と、ROM202と、RAM203と、通信インターフェイス204と、表示インターフェイス205と、入力インターフェイス207と、記憶装置220とを含む。これらのコンポーネントは、バス210に接続される。
制御装置201は、たとえば、少なくとも1つの集積回路によって構成される。集積回路は、たとえば、少なくとも1つのCPU、少なくとも1つのGPU、少なくとも1つのASIC、少なくとも1つのFPGA、またはそれらの組み合わせなどによって構成され得る。
制御装置201は、情報処理プログラム222やオペレーティングシステムなどの各種プログラムを実行することで情報処理端末200の動作を制御する。制御装置201は、情報処理プログラム222の実行命令を受け付けたことに基づいて、記憶装置220またはROM202からRAM203に情報処理プログラム222を読み出す。RAM203は、ワーキングメモリとして機能し、情報処理プログラム222の実行に必要な各種データを一時的に格納する。
通信インターフェイス204には、LANやアンテナなどが接続される。情報処理端末200は、通信インターフェイス204を介して、外部機器との間でデータをやり取りする。当該外部機器は、たとえば、上述の作業端末100やサーバーなどを含む。情報処理端末200は、当該外部機器から情報処理プログラム222をダウンロードできるように構成されてもよい。
表示インターフェイス205には、ディスプレイ206が接続される。表示インターフェイス205は、制御装置201などからの指令に従って、ディスプレイ206に対して、画像を表示するための画像信号を送出する。ディスプレイ206は、たとえば、液晶ディスプレイ、有機ELディスプレイ、またはその他の表示機器である。なお、ディスプレイ206は、情報処理端末200と一体的に構成されてもよいし、情報処理端末200とは別に構成されてもよい。
入力インターフェイス207には、入力デバイス208が接続される。入力デバイス208は、たとえば、マウス、キーボード、タッチパネル、またはユーザの操作を受け付けることが可能なその他の装置である。なお、入力デバイス208は、情報処理端末200と一体的に構成されてもよいし、情報処理端末200とは別に構成されてもよい。
記憶装置220は、たとえば、ハードディスクやフラッシュメモリなどの記憶媒体である。記憶装置220は、情報処理プログラム222、上述の作業定義232、上述の作業レポート270、後述の作業推定モデルMなどを格納する。これらの格納場所は、記憶装置220に限定されず、制御装置201の記憶領域(たとえば、キャッシュメモリなど)、ROM202、RAM203、外部機器(たとえば、サーバー)などに格納されていてもよい。
情報処理プログラム222は、単体のプログラムとしてではなく、任意のプログラムの一部に組み込まれて提供されてもよい。この場合、情報処理プログラム222による操作ログの解析処理は、任意のプログラムと協働して実現される。このような一部のモジュールを含まないプログラムであっても、本実施の形態に従う情報処理プログラム222の趣旨を逸脱するものではない。さらに、情報処理プログラム222によって提供される機能の一部または全部は、専用のハードウェアによって実現されてもよい。さらに、少なくとも1つのサーバーが情報処理プログラム222の処理の一部を実行する所謂クラウドサービスのような形態で情報処理端末200が構成されてもよい。
<D.作業特定部254の機能>
次に、図5を参照して、図2に示される作業特定部254の機能の詳細について説明する。図5は、作業特定部254の機能構成の一例を示す図である。
作業特定部254は、操作ログ130と、作業定義232との入力を受けて、作業特定結果D1を出力する。
操作ログ130には、作業端末100に対する操作に係る各種情報が書き込まれている。操作ログ130に含まれる各種情報は、作業端末100に対して操作が行われた順に並べられている。操作ログ130は、たとえば、操作対象の作業端末100を示す端末識別情報と、操作を行ったユーザを示すユーザ識別情報と、操作が行われたタイミングを示す操作時刻と、操作に費やされた時間を示す作業時間と、操作対象のアプリケーションを示すアプリケーション識別情報と、送信元の作業端末100に対する操作情報とを含む。
図5の例では、端末識別情報の一例として、パソコン名が示されているが、端末識別情報は、IP(Internet Protocol)アドレスやMAC(Media Access Control)アドレスなどで示されてもよい。また、図5の例では、ユーザ識別情報の一例として、ログイン名が示されているが、ユーザ識別情報は、ユーザID(Identification)、IPアドレス、MACアドレスなどで示されてもよい。また、図5の例では、アプリケーション識別情報の一例として、アプリケーション名が示されているが、アプリケーション識別情報は、EXEファイルの場所を示すファイルパスなどで示されてもよい。また、図5の例では、操作情報の一例として、操作対象のウィンドウのタイトルが示されているが、操作情報は、操作対象のデータの種別(たとえば、ファイル名やファイルパス)、操作対象のUI部品(たとえば、ボタン名など)などで規定されてもよい。あるいは、操作情報は、操作対象の画面(たとえば、キャプチャした画面)や、マウスなどの入力デバイスが示す座標情報、キーボードなどの入力に対するキー入力結果などで規定されてもよい。
作業定義232は、操作情報の種別に作業内容(たとえば、操作対象のウィンドウのタイトル)を対応付けている。図5の例では、作業定義232に規定される操作情報の一例として、操作対象のウィンドウのタイトルが示されているが、操作情報は、操作対象のデータの種別(たとえば、ファイル名やファイルパス)、操作対象のUI部品(たとえば、ボタン名など)などで規定されてもよい。
作業特定部254は、作業定義232に基づいて、操作ログ130に規定される時系列の操作情報の各々について、対応する作業内容を特定する。より具体的には、操作ログ130に規定される操作情報を第1操作情報とし、作業定義232に規定される操作情報を第2操作情報と称した場合、作業特定部254は、ある第1操作情報を識別対象とし、第2操作情報の中から、識別対象の第1操作情報と一致するものを特定する。そして、作業特定部254は、当該一致した第2操作情報に対応付けられている作業内容を、識別対象の第1操作情報に対応する作業内容とする。作業特定部254は、このような作業内容の特定処理を、操作ログ130に規定される全ての第1操作情報について実行する。
なお、ここでいう「一致」との概念は、第1操作情報および第2操作情報の完全な一致だけでなく、第1操作情報および第2操作情報の略一致も含み得る。たとえば、第1操作情報および第2操作情報の一方が他方に部分的に一致している場合も「一致」との概念に含まれ得る。一例として、作業特定部254は、第2操作情報の中から、識別対象の第1操作情報の一部と一致するものを特定する。そして、作業特定部254は、当該特定した第2操作情報に対応付けられている作業内容を、識別対象の第1操作情報に対応する作業内容とする。
作業特定部254による作業特定処理の結果として、作業特定結果D1が出力される。上述のように、操作ログ130に規定される操作情報は、時系列の順(すなわち、操作順)に並んでいるので、作業特定結果D1に規定される作業内容群も時系列の順(すなわち、操作順)に並んでいる。作業特定結果D1は、繰り返し特定部256に出力される。
<E.繰り返し特定部256の機能>
次に、図6〜図9を参照して、図2に示される繰り返し特定部256の機能の詳細について説明する。図6は、繰り返し特定部256の機能構成の一例を示す図である。
図6に示されるように、繰り返し特定部256は、機能モジュールとして、学習データ生成部257と、学習部258と、解析部259とを含む。以下では、これらの機能モジュールについて順に説明する。
(E1.学習データ生成部257)
まず、図7を参照して、学習データ生成部257の機能について説明する。図7は、学習用データセットD2を生成する過程を示す図である。
図7に示されるように、学習データ生成部257は、作業特定結果D1の入力を受けて、後述の学習部258で用いられる学習用データセットD2を生成する。より具体的には、まず、学習データ生成部257は、作業特定結果D1に含まれる時系列の作業内容群を所定単位数(たとえば、10単位)ごとに分割する。当該単位数は、任意である。図7の例では、作業特定結果D1に規定される作業内容が3つごとにブロック化されている。次に、学習データ生成部257は、各ブロックに含まれる作業内容群に対して、当該ブロックに続く次ブロックに含まれる作業内容群を正解情報としてタグ付ける。図7の例では、たとえば、作業パターン1のブロックに含まれる作業内容群に対して、作業パターン1に続く作業パターン4のブロックに含まれる作業内容群が正解情報としてタグ付けされる。このようなタグ付けが全てのブロックについて実行され、それらが学習用データセットD2として生成されている。
学習データ生成部257によって生成された学習用データセットD2は、学習部258に出力される。
(E2.学習部258)
次に、図8を参照して、図6に示される学習部258の機能について説明する。図8は、学習部258による学習処理の過程を概略的に示す図である。
学習部258は、学習データ生成部257によって生成された学習用データセットD2を用いた予め定められた機械学習処理により作業推定モデルMを生成する。作業推定モデルMは、一連の作業群の入力を受けて、それらの作業軍に続く作業群を推定結果として出力する。学習部258が実行する機械学習処理は、ディープラーニング(深層学習)であってもよいし、RNN(Recurrent Neural Network)であってもよいし、サポートベクターマシンであってもよいし、その他の学習手法であってもよい。以下では、一例として、RNNで作業推定モデルを生成する方法について説明する。
図8には、初期状態の作業推定モデルM1と、1回目のパラメータ更新が済んだ作業推定モデルM2とが示されている。以下では、作業推定モデルM1,M2を特に区別しない場合には、作業推定モデルMとも称する。作業推定モデルMは、入力層Xと、中間層Hと、出力層Yとで構成される。
入力層Xは、学習用データセットD2に含まれる作業パターン(すなわち、入力用特徴量)の入力を受ける。入力層Xは、入力された作業パターンを構成する各作業内容を中間層Hに出力する。
中間層Hは、複数の層で構成されている。中間層Hの層数は、任意である。各層は、複数のユニットで構成される。中間層Hの各層を構成する各ユニットは、前の層の各ユニットと、次の層の各ユニットと接続される。各層の各ユニットは、前の層の各ユニットからの各出力値を受けて、各出力値に重みを乗算し、それらの乗算結果を積算し、その積算結果に対して所定のバイアスを加算(または減算)し、その加算結果(または減算結果)を所定の関数(たとえば、シグモナイト関数)に入力し、その関数の出力値を次の層の各ユニットに出力する。
出力層Yは、複数のユニットで構成される。出力層Yを構成する各ユニットは、中間層Hの最終層の各ユニットと接続される。出力層Yの各ユニットは、中間層Hの最終層の各ユニットからの出力値を受け手、各出力値に重みを乗算し、それらの乗算結果を積算し、その積算結果に対して所定のバイアスを加算(または減算)し、その加算結果(または減算結果)を所定の関数(たとえば、シグモナイト関数)に入力し、その関数の出力結果を出力値として出力する。当該出力値は、作業内容の種別を示す。作業推定モデルMは、出力層Yから出力される作業内容の各々を、入力された作業パターンに続く後続の作業パターンとして推定する。
より具体的な例として、学習部258は、学習用データセットD2に規定される1つ目の作業パターン「1」を作業推定モデルMに入力し、その結果得られた推定作業パターン「α」と、作業パターン「1」に対して正解情報として対応付けられている作業パターン「4」とを比較する。そして、学習部258は、推定作業パターン「α」が正解情報としての作業パターン「4」に近付くように、作業推定モデルMに含まれる各種のパラメータ(たとえば、重みやバイアス)を更新する。
次に、学習部258は、学習用データセットD2に規定される2つ目の作業パターン「2」を作業推定モデルMに入力する。2回目の以降の学習においては、学習部258は、さらに、前回の学習過程における中間層Hの出力の一部を入力層Xに入力する。このように、RNNにおいては、ある層の出力は、次の層の入力として利用されるだけでなく、次の学習過程における入力層Xにも入力される。その結果、作業推定モデルMの出力結果は、2つ目の作業パターン「2」だけでなく、1つ目の作業パターン「1」の影響を受けることになる。その結果、時間的な情報が受け渡されることになる。
学習部258は、学習用データセットD2から得られた推定作業パターン「β」と、作業パターン「2」に対して正解情報として対応付けられている作業パターン「5」とを比較する。そして、学習部258は、推定作業パターン「β」が正解情報としての作業パターン「2」に近付くように、作業推定モデルMに含まれる各種のパラメータ(たとえば、重みやバイアス)を更新する。
学習部258は、作業推定モデルMに含まれるパラメータの更新処理を、学習用データセットD2の各学習用データについて繰り返し行う。その結果、作業推定モデルMによる作業推定精度が向上し、作業推定モデルMは、一連の作業群の入力を受けると、その作業群に続く後続の作業群を出力するようになる。
なお、学習部258は、作業推定モデルMを生成するために、学習用データセットD2に含まれる全ての学習用データを必ずしも用いる必要はなく、学習用データセットD2に含まれる一部の学習用データを用いて作業推定モデルMを生成してもよい。
(E3.解析部259)
次に、図9を参照して、図6に示される解析部259の機能について説明する。図9は、解析部259による解析処理の過程を概略的に示す図である。
解析部259は、学習部258による学習済みの作業推定モデルMに対して学習用データセットD2を再び入力し、繰り返し作業である作業パターンを特定する。
より具体的には、解析部259は、学習用データセットD2に規定される1つ目の作業パターン「1」を学習済みの作業推定モデルMに入力し、その結果得られた推定作業パターン「γ」と、作業パターン「1」に対して正解情報として対応付けられている作業パターン「4」とを比較し、推定作業パターン「γ」が作業パターン「4」と類似しているか否かを判断する。一例として、解析部259は、推定作業パターン「γ」と作業パターン「4」との内積を計算することで、これらの相関値を算出する。そして、当該相関値が所定値を超えている場合には、解析部259は、作業パターン「1」(または作業パターン「4」)を繰り返し作業とみなす。
同様に、解析部259は、学習用データセットD2に規定される2つ目の作業パターン「2」を学習済みの作業推定モデルMに入力し、その結果得られた推定作業パターン「δ」と、作業パターン「2」に対して正解情報として対応付けられている作業パターン「5」とを比較し、推定作業パターン「δ」が作業パターン「5」と類似しているか否かを判断する。一例として、解析部259は、推定作業パターン「δ」と作業パターン「5」との内積を計算することで、これらの相関値を算出する。そして、当該相関値が所定値を超えている場合には、解析部259は、作業パターン「2」(または作業パターン「5」)を繰り返し作業とみなす。
解析部259は、このような繰り返し作業の解析処理を、学習用データセットD2の全学習用データについて行う。その結果、繰り返し作業269が特定される。このとき特定される繰り返し作業の作業パターンは、1種類とは限らず、複数種類の作業パターンが特定される可能性もある。
なお、作業推定モデルMが学習用データセットD2の一部を用いて生成されている場合には、解析部259は、学習用データセットD2の残りを当該作業推定モデルMに入力してもよい。その結果、学習用データセットD2の残りについて繰り返し作業が含まれるか否かが特定される。その後、解析部259は、作業推定モデルMを生成するために用いる学習用データセットと、解析に用いる残りの学習用データセットとの組み合わせを変えることで、学習用データセットD2の全学習用データについて繰り返し作業の解析処理を行う。これにより、過学習が抑制される。
<F.出力部260の機能>
次に、図10〜図14を参照して、図2に示される出力部260の機能の詳細について説明する。図10は、出力部260の機能構成の一例を示す図である。
図10に示されるように、出力部260は、機能モジュールとして、平均時間算出部261と、合計時間算出部262と、ユーザ数算出部263と、繰り返し回数算出部264とを含む。以下では、これらの機能モジュールについて順に説明する。
(F1.平均時間算出部261)
まず、図11を参照して、平均時間算出部261の機能について説明する。図11は、繰り返し作業を構成する各作業の平均作業時間を算出する過程を示す図である。
平均時間算出部261は、上述の作業特定結果D1(または操作ログ130)に規定される時系列の作業内容の中から、上述の繰り返し特定部256によって特定された繰り返し作業269が示す作業パターンを抽出する。一例として、特定された繰り返し作業269において、繰り返しパターン「作業E→作業A→作業G」が含まれていたとする。この場合、平均時間算出部261は、上述の作業特定結果D1に規定される時系列の作業内容の中から、繰り返しパターン「作業E→作業A→作業G」を抽出する。
上述のように、作業特定結果D1には、各作業内容に費やされた作業時間が作業内容ごとに対応付けられている。平均時間算出部261は、当該作業時間の各々に基づいて、繰り返し作業を構成する作業内容ごとに、当該作業内容に費やされた平均作業時間を算出する。図11に示される繰り返し作業「作業E→作業A→作業G」の例では、平均時間算出部261は、作業「E」に対応付けられている作業時間「ΔT31」,「ΔT41」,「ΔT51」の平均時間「TA」を作業「E」の平均作業時間として算出する。同様に、平均時間算出部261は、作業「A」に対応付けられている作業時間「ΔT32」,「ΔT42」,「ΔT52」の平均時間「TB」を作業「A」の平均作業時間として算出する。同様に、平均時間算出部261は、作業「G」に対応付けられている作業時間「ΔT33」,「ΔT43」,「ΔT53」の平均時間「TC」を作業「G」の平均作業時間として算出する。
平均時間算出部261は、このような平均作業時間の算出処理を上述の繰り返し特定部256によって特定された繰り返し作業269の各々について算出する。算出されたこれらの平均作業時間は、レポート生成部265に出力される。
(F2.合計時間算出部262)
次に、図12を参照して、図10に示される合計時間算出部262の機能について説明する。図12は、繰り返し作業に費やされた合計作業時間を算出する過程を示す図である。
合計時間算出部262は、上述の作業特定結果D1(図5参照)に規定される時系列の作業内容の中から、上述の繰り返し特定部256によって特定された繰り返し作業269が示す作業パターンを抽出する。一例として、特定された繰り返し作業269において、繰り返しパターン「作業E→作業A→作業G」が含まれていたとする。この場合、合計時間算出部262は、上述の作業特定結果D1に規定される時系列の作業内容の中から、繰り返しパターン「作業E→作業A→作業G」を抽出する。
上述のように、作業特定結果D1には、各作業内容に費やされた作業時間が作業内容ごとに対応付けられている。合計時間算出部262は、当該作業時間の各々に基づいて、繰り返し作業を構成する作業内容に対応付けられている作業時間を積算し、当該積算結果を繰り返し作業に費やされた合計作業時間として算出する。図11に示される繰り返し作業「作業E→作業A→作業G」の例では、合計時間算出部262は、作業「E」,作業「A」,作業「G」に対応付けられている作業時間「ΔT31」〜「ΔT33」,「ΔT41」〜「ΔT43」,「ΔT51」〜「ΔT53」の合計時間「Tsum」を繰り返し作業「作業E→作業A→作業G」に費やされた合計作業時間として算出する。
合計時間算出部262は、このような合計作業時間の算出処理を上述の繰り返し特定部256によって特定された繰り返し作業269の各々について算出する。さらに、合計時間算出部262は、繰り返し作業の作業パターンを区別せずに、繰り返し作業269の全体の合計作業時間を算出する。算出されたこれらの合計作業時間は、レポート生成部265に出力される。
(F3.ユーザ数算出部263)
次に、図13を参照して、図10に示されるユーザ数算出部263の機能について説明する。図13は、繰り返し作業を行ったユーザ数を算出する過程を示す図である。
ユーザ数算出部263は、上述の作業特定結果D1(または操作ログ130)に規定される時系列の作業内容の中から、上述の繰り返し特定部256によって特定された繰り返し作業269が示す作業パターンを抽出する。一例として、特定された繰り返し作業269において、繰り返しパターン「作業E→作業A→作業G」が含まれていたとする。この場合、ユーザ数算出部263は、上述の作業特定結果D1に規定される時系列の作業内容の中から、繰り返しパターン「作業E→作業A→作業G」を抽出する。
上述のように、作業特定結果D1には、作業を行ったユーザを識別するためのユーザ識別情報(たとえば、ログイン名)が作業内容ごとに対応付けられている。ユーザ数算出部263は、当該ユーザ識別情報に基づいて、繰り返し作業を行ったユーザの総数を算出する。図13の例では、繰り返し作業「作業E→作業A→作業G」には、ログイン名「User1」が2つと、ログイン名「User2」が1つ対応付けられている。ユーザ数算出部263は、ログイン名「User1」の重複を排除して人数をカウントする。その結果、繰り返し作業「作業E→作業A→作業G」を行っていたユーザ総数は、2人して算出される。異なる言い方をすれば、ユーザ数算出部263は、繰り返し作業に対応付けられているユーザ識別情報の種類数をユーザ総数として算出する。
ユーザ数算出部263は、このようなユーザ総数の算出処理を上述の繰り返し特定部256によって特定された繰り返し作業269の各々について算出する。さらに、ユーザ数算出部263は、繰り返し作業の作業パターンを区別せずに、繰り返し作業269を行ったユーザ総数を算出する。算出されたこれらのユーザ総数は、レポート生成部265に出力される。
(F4.繰り返し回数算出部264)
次に、図14を参照して、図10に示される繰り返し回数算出部264の機能について説明する。図14は、繰り返し作業を行った回数を算出する過程を示す図である。
繰り返し回数算出部264は、上述の作業特定結果D1(図5参照)に規定される時系列の作業内容の中から、繰り返し作業269が含まれている数を特定し、当該特定した数を繰り返し作業が行われた回数(以下、「繰り返し回数」ともいう。)として算出する。一例として、繰り返しパターン「作業E→作業A→作業G」が、特定された繰り返し作業269に含まれていたとする。この場合、繰り返し回数算出部264は、上述の作業特定結果D1に規定される時系列の作業内容の中から、繰り返し作業「作業E→作業A→作業G」を抽出する。その結果、繰り返し作業「作業E→作業A→作業G」が3つ抽出されたとする。繰り返し回数算出部264は、この抽出数を(すなわち、3回)を作業「作業E→作業A→作業G」の繰り返し回数として算出する。
繰り返し回数算出部264は、このような繰り返し回数の算出処理を上述の繰り返し特定部256によって特定された繰り返し作業269の各々について算出する。さらに、繰り返し回数算出部264は、繰り返し作業の作業パターンを区別せずに、繰り返し作業269の全体の繰り返し回数を算出する。算出されたこれらの繰り返し回数は、レポート生成部265に出力される。
(F5.レポート生成部265)
次に、図10に示されるレポート生成部265の機能について説明する。
レポート生成部265は、上述の平均時間算出部261によって算出された繰り返し作業を構成する各作業内容の平均作業時間、合計時間算出部262によって算出された繰り返し作業の合計作業時間、ユーザ数算出部263によって算出された繰り返し作業を行ったユーザ総数、および、繰り返し回数算出部264によって算出された繰り返し回数などを表わした作業レポート270を生成する。作業レポート270の詳細については後述する。
<G.作業レポート270>
次に、図15〜図18を参照して、上述の出力部260(図10参照)から出力される作業レポート270の具体例について説明する。
作業レポート270は、解析業者が解析結果を纏めた上で紙媒体で出力されてもよいし、作業端末100のディスプレイ106に表示されてもよいし、作業端末100と通信可能な他の装置に送信されて当該他の装置上のディスプレイに表示されてもよい。作業レポート270は、作業端末100や情報処理端末200のWebブラウザ上で表示されてもよいし、作業端末100や情報処理端末200にインストールされている専用のアプリケーション上に表示されてもよい。また、作業レポート270は、既存の各種のアプリケーションで読取り可能な形式で生成されてもよい。一例として、作業レポート270は、パワーポイント形式のデータとして生成されてもよいし、PDF(Portable Document Format)形式のデータとして生成されてもよいし、Word形式のデータとして生成されてもよいし、Excel形式のデータとして生成されてもよい。
(作業レポート270の具体例1)
まず、図15を参照して、作業レポート270の具体例1について説明する。図15は、具体例1に係る作業レポート270Aを示す図である。
作業レポート270Aは、作業端末100の各々から収集した操作ログ130の解析結果を示す分析結果欄271〜276を含む。
分析結果欄271には、繰り返し作業269に費やされた作業時間だけでなく、他の作業に費やされた作業時間も含めた作業総時間が示されている。図15の例は、全作業に「2960.5時間」が費やされたことを示す。また、分析結果欄271には、解析対象となったユーザの総数と、解析対象期間とがさらに示されている。当該ユーザ総数は、たとえば、操作ログ130に示されるユーザ識別情報に基づいて算出される。
分析結果欄272には、上述の合計時間算出部262によって算出された繰り返し作業の合計作業時間が示される。分析結果欄272に示される合計作業時間は、全パターンの繰り返し作業269の合計作業時間を示す。図15の例は、全パターンの繰り返し作業269に「307.5時間」が費やされたことを示す。また、分析結果欄272には、繰り返し作業269を行ったユーザ総数と、解析対象期間とがさらに示されている。当該ユーザ総数は、上述のユーザ数算出部263による算出結果の1つである。
分析結果欄273には、上述の解析部259によって特定された繰り返し作業のパターン数が示されている。図15の例は、28パターンの繰り返し作業が特定されたことが示されている。
分析結果欄274には、パソコン作業に費やされた合計作業時間(繰り返し作業に費やされた作業時間を除く)が示されている。図15の例は、パソコン作業に費やされた合計作業時間に「1165時間」が費やされたことを示す。また、分析結果欄274には、繰り返し作業269を行ったユーザの総数と、解析対象期間とがさらに示されている。当該ユーザ総数は、上述のユーザ数算出部263による算出結果の1つである。
分析結果欄275には、業務時間の内訳が円グラフ275A,275Bで示されている。円グラフ275Aは、繰り返し作業に費やされた合計作業時間と、パソコン作業に費やされた合計作業時間(繰り返し作業に費やされた作業時間を除く)と、パソコン作業を伴わない合計作業時間との内訳を示す。円グラフ275Bは、円グラフ275Aの一部に相当する。より具体的には、円グラフ275Bは、繰り返し作業に費やされた合計作業時間と、パソコン作業に費やされた合計作業時間(繰り返し作業に費やされた作業時間を除く)との内訳を示す。
分析結果欄276には、各作業パターンの繰り返し作業について合計作業時間が比較可能な態様(たとえば、グラフ276A)で示される。図15の例では、グラフ276Aは、円グラフで示されているが、グラフ276Aは、棒グラフが採用されてもよいし、折れ線グラフが採用されてもよいし、その他の種類のグラフが採用されてもよい。各作業パターンの繰り返し作業について合計作業時間が比較可能な態様で示されることで、ユーザは、どの作業パターンにおいて時間がかかっているかを容易に把握することができる。
好ましくは、グラフ276A上において、作業パターンごとの合計作業時間は、その合計作業時間が長い順に示される。これにより、ユーザは、作業パターンごとの合計作業時間をより比較しやすくなる。
(作業レポート270の具体例2)
次に、図16を参照して、作業レポート270の具体例2について説明する。図16は、具体例2に係る作業レポート270Bを示す図である。
作業レポート270Bは、作業端末100の各々から収集した操作ログ130の解析結果を示す分析結果欄280〜284を含む。
分析結果欄280には、所定期間におけるユーザ一人当たりの平均業務時間が示される。また、分析結果欄280には、一日当たりの平均業務時間がさらに示される。
分析結果欄281には、業務時間が長い上位所定数のユーザと、それらのユーザの業務時間とが示される。図16の例では、分析結果欄281において、業務時間が長い上位3人のユーザと、当該3人のユーザの業務時間とが示されている。
分析結果欄282には、業務時間が短い下位所定数のユーザと、それらのユーザの業務時間とが示される。図16の例では、分析結果欄282において、業務時間が短い下位2人のユーザと、当該2人のユーザの業務時間とが示されている。
分析結果欄283には、業務時間の内訳がユーザごとに示される。業務時間の内訳は、繰り返し作業に費やされた合計作業時間と、パソコン作業に費やされた合計作業時間(繰り返し作業に費やされた作業時間を除く)と、パソコン作業を伴わない合計作業時間とで構成される。繰り返し作業に費やされた合計作業時間がユーザごとに表示されることで、ユーザは、どのユーザが繰り返し作業を多く行っているのかを容易に把握することができる。
分析結果欄284には、作業レポート270Bに対する解析者のコメントが示される。典型的には、当該コメントは、解析業者によって入力される。
(作業レポート270の具体例3)
次に、図17を参照して、作業レポート270の具体例3について説明する。図17は、具体例3に係る作業レポート270Cを示す図である。
作業レポート270Cは、上述の解析部259によって特定された複数パターンの繰り返し作業269の内の、特定の作業パターンの繰り返し作業(以下、「第1の繰り返し作業」ともいう。)に関する解析結果を示す。作業レポート270Cは、分析結果欄310,311,313,320,330,340を含む。
分析結果欄310には、第1の繰り返し作業に対する対策優先度が示される。対策優先度は、第1の繰り返し作業に費やされた作業時間や、第1の繰り返し作業を行ったユーザ総数などを総合的に考慮して判断される。一例として、作業時間が多いほど対策優先度が高くなる。あるいは、ユーザ総数が多いほど対策優先度は高くなる。
分析結果欄311には、第1の繰り返し作業に費やされた合計作業時間が示される。当該合計作業時間は、上述の合計時間算出部262によって算出される。図17の例は、第1の繰り返し作業に「108時間」が費やされたことを示す。ユーザは、当該合計作業時間を確認することで、第1の繰り返し作業に費やされた時間を容易に把握することができる。
また、分析結果欄311には、第1の繰り返し作業が行われた総回数が示される。当該総回数は、繰り返し回数算出部264によって算出される。図17の例は、第1の繰り返し作業が「1361回」行われたことを示す。ユーザは、当該総回数を確認することで、第1の繰り返し作業が行われた総回数を容易に把握することができる。
分析結果欄313には、第1の繰り返し作業を行ったユーザ総数と、第1の繰り返し作業に係る作業量をユーザごとに比較可能な態様で表わしたグラフ314とが示される。図17の例では、グラフ314は、円グラフとして示されているが、第1の繰り返し作業に係る作業量をユーザごとに比較可能な態様であれば任意の種類のグラフが採用され得る。一例として、グラフ314において、棒グラフが採用されてもよいし、折れ線グラフが採用されてもよいし、その他の種類のグラフが採用されてもよい。第1の繰り返し作業に係る作業量をユーザごとに比較可能な態様で、ユーザは、第1の繰り返し作業をどの作業者が多く行っているのかを容易に把握することができる。
分析結果欄320には、第1の繰り返し作業を構成する各作業内容が時系列の順に並べて示される。このとき各作業内容は、たとえば、時系列の順に矢印で繋がれる。これにより、ユーザは、第1の繰り返し作業における作業順序を容易に分析することができる。また、この順序は、ユーザが作業を行う上での作業マニュアルにもなり得る。
好ましくは、分析結果欄320には、第1の繰り返し作業を構成する各作業を1回行うのに要した平均作業時間がさらに表わされる。典型的には、平均作業時間の各々は、対応する作業内容に並べて表わされる。平均作業時間は、上述の平均時間算出部261(図10参照)によって算出される。各作業内容の平均作業時間が示されることで、ユーザは、繰り返し作業を構成する各作業内容の内、どの作業内容に労力が使われているのかを容易に把握することができ、どの作業内容を自動化すれば効果的であるのかを分析することができる。また、分析結果欄320には、各作業内容に費やされた平均作業時間だけでなく、第1の繰り返し作業を1回行うのに要する平均作業時間も示される。
分析結果欄330には、第1の繰り返し作業が行われた頻度を予め定められた時間区分ごとに表わしたグラフ331が示される。図17の例では、グラフ331がヒストグラムとして示されているが、第1の繰り返し作業が行われた頻度の時間分布を表わす態様であれば任意の種類のグラフが採用され得る。一例として、グラフ331において、棒グラフが採用されてもよいし、折れ線グラフが採用されてもよいし、その他の種類のグラフが採用されてもよい。また、図17の例では、グラフ331に示される時間区分が日単位で示されているが、当該時間区分は、分単位で示されてもよいし、時間単位で示されてもよいし、週単位で示されてもよいし、月単位で示されてもよいし、年単位で示されてもよい。また、グラフ331に示される時間単位は、ユーザによって任意に調整されてもよい。ユーザは、グラフ331を確認することで、第1の繰り返し作業がどの時期に多く行われているのかを容易に分析することができる。
グラフ331に示される各頻度は、上述の操作ログ130(または作業特定結果D1)に示される操作時刻に基づいて算出される。当該操作時刻は、繰り返し作業が行われた時刻を表わすので、情報処理端末200は、当該操作時刻に基づいて、第1の繰り返し作業の各々が複数の予め定められた時間区分の内のいずれに属するのかを特定することができる。
分析結果欄340には、作業レポート270Cに対する解析者のコメントが示される。典型的には、当該コメントは、解析業者によって入力される。
(作業レポート270の具体例4)
次に、図18を参照して、作業レポート270の具体例4について説明する。図18は、具体例4に係る作業レポート270Dを示す図である。
作業レポート270Dは、上述の図17で説明した第1の繰り返し作業とは異なる作業パターンの繰り返し作業(以下、「第2の繰り返し作業」ともいう。)に関する解析結果を示す。作業レポート270Dは、分析結果欄410,411,413,420,430,440を含む。
分析結果欄410には、第2の繰り返し作業に対する対策優先度が示される。対策優先度は、第2の繰り返し作業に費やされた作業時間や、第2の繰り返し作業を行ったユーザ総数などを総合的に考慮して判断される。一例として、作業時間が多いほど対策優先度が高くなる。あるいは、ユーザ総数が多いほど対策優先度は高くなる。
分析結果欄411には、第2の繰り返し作業に費やされた合計作業時間が示される。当該合計作業時間は、上述の合計時間算出部262によって算出される。図18の例は、第2の繰り返し作業に「76.7時間」が費やされたことを示す。ユーザは、当該合計作業時間を確認することで、第2の繰り返し作業に費やされた時間を容易に把握することができる。
また、分析結果欄411には、第2の繰り返し作業が行われた総回数が示される。当該総回数は、繰り返し回数算出部264によって算出される。図18の例は、第2の繰り返し作業が「955回」行われたことを示す。ユーザは、当該総回数を確認することで、第2の繰り返し作業が行われた総回数を容易に把握することができる。
分析結果欄413には、第2の繰り返し作業を行ったユーザ総数と、第2の繰り返し作業に係る作業量をユーザごとに比較可能な態様で表わしたグラフ414とが示される。図18の例では、グラフ414は、円グラフとして示されているが、第2の繰り返し作業に係る作業量をユーザごとに比較可能な態様であれば任意の種類のグラフが採用され得る。一例として、グラフ414において、棒グラフが採用されてもよいし、折れ線グラフが採用されてもよいし、その他の種類のグラフが採用されてもよい。第2の繰り返し作業に係る作業量をユーザごとに比較可能な態様で、ユーザは、第2の繰り返し作業をどの作業者が多く行っているのかを容易に把握することができる。
分析結果欄420には、第2の繰り返し作業を構成する各作業内容が時系列の順に並べて示される。このとき各作業内容は、たとえば、時系列の順に矢印で繋がれる。これにより、ユーザは、第2の繰り返し作業における作業順序を容易に分析することができる。また、この順序は、ユーザが作業を行う上での作業マニュアルにもなり得る。
好ましくは、分析結果欄420には、第2の繰り返し作業を構成する各作業を1回行うのに要した平均作業時間がさらに表わされる。典型的には、平均作業時間の各々は、対応する作業内容に並べて表わされる。平均作業時間は、上述の平均時間算出部261(図10参照)によって算出される。各作業内容の平均作業時間が示されることで、ユーザは、繰り返し作業を構成する各作業内容の内、どの作業内容に労力が使われているのかを容易に把握することができ、どの作業内容を自動化すれば効果的であるのかを分析することができる。また、分析結果欄420には、各作業内容に費やされた平均作業時間だけでなく、第2の繰り返し作業を1回行うのに要する平均作業時間も示される。
好ましくは、分析結果欄420において、第2の繰り返し作業を構成する各作業内容は、アプリケーションごとに異なる態様で示される。より具体的には、第2の繰り返し作業を構成する各作業内容が、第1のアプリケーションを用いて実施された第1の作業群と、第2のアプリケーションを用いて実施された第2の作業群とを含む場合、第1の作業群および第2の作業群は異なる態様で示される。分類の仕方は任意である。たとえば、第1の作業群および第2の作業群は、それぞれ、文字や背景などの色を異ならせることで分類されてもよいし、矩形などの図形で囲まれることで分類されてもよい。
分析結果欄430には、第2の繰り返し作業が行われた頻度を予め定められた時間区分ごとに表わしたグラフ431が示される。図18の例では、グラフ431がヒストグラムとして示されているが、第2の繰り返し作業が行われた頻度の時間分布を表わす態様であれば任意の種類のグラフが採用され得る。一例として、グラフ431において、棒グラフが採用されてもよいし、折れ線グラフが採用されてもよいし、その他の種類のグラフが採用されてもよい。また、図18の例では、グラフ431に示される時間区分が日単位で示されているが、当該時間区分は、分単位で示されてもよいし、時間単位で示されてもよいし、週単位で示されてもよいし、月単位で示されてもよいし、年単位で示されてもよい。また、グラフ431に示される時間単位は、ユーザによって任意に調整されてもよい。ユーザは、グラフ431を確認することで、第2の繰り返し作業がどの時期に多く行われているのかを容易に分析することができる。
グラフ431に示される各頻度は、上述の操作ログ130(または作業特定結果D1)に示される操作時刻に基づいて算出される。当該操作時刻は、繰り返し作業が行われた時刻を表わすので、情報処理端末200は、当該操作時刻に基づいて、第2の繰り返し作業の各々が複数の予め定められた時間区分の内のいずれに属するのかを特定することができる。
分析結果欄440には、作業レポート270Dに対する解析者のコメントが示される。典型的には、当該コメントは、解析業者によって入力される。
<H.フローチャート>
以下では、図19および図20を参照して、作業端末100および情報処理端末200の制御構造について順に説明する。
(H1.作業端末100の制御フロー)
まず、図19を参照して、作業端末100の制御フローについて説明する。図19は、作業端末100が実行する処理の一部を表わすフローチャートである。作業端末100の制御装置101(図3参照)は、上述の操作監視プログラム122(図3参照)の実行開始指示を受けたことに基づいて、ステップS110の処理を実行する。
ステップS110において、制御装置101は、作業端末100に対する操作を受けたか否かを判断する。制御装置101は、作業端末100に対する操作を受けたと判断した場合(ステップS110においてYES)、制御をステップS112に切り替える。そうでない場合には(ステップS110においてNO)、制御装置101は、制御をステップS120に切り替える。
ステップS112において、制御装置101は、ユーザ操作に係る情報を上述の操作ログ130(図2参照)に書き込む。一例として、制御装置101は、操作対象の作業端末100を示す端末識別情報(たとえば、パソコン名)と、操作を行ったユーザを示すユーザ識別情報(たとえば、ログイン名)と、操作が行われたタイミングを示す操作時刻と、操作に費やされた時間を示す作業時間と、操作対象のアプリケーションを示すアプリケーション識別情報(たとえば、アプリケーション名)と、送信元の作業端末100に対する操作情報(たとえば、操作対象のウィンドウのタイトル)とを操作ログ130に書き込む。
ステップS120において、制御装置101は、操作ログ130の送信タイミングが到来したか否かを判断する。操作ログ130の送信タイミングは、予め定められた期間が経過(たとえば、1日)するごとに到来する。制御装置101は、操作ログ130の送信タイミングが到来したと判断した場合(ステップS120においてYES)、制御をステップS122に切り替える。そうでない場合には(ステップS120においてNO)、制御装置101は、制御をステップS130に切り替える。
ステップS122において、制御装置101は、操作ログ130を情報処理端末200に送信する。
ステップS130において、制御装置101は、操作監視プログラム122の実行を終了するか否かを判断する。一例として、制御装置101は、操作監視プログラム122の実行終了操作をユーザから受けたことに基づいて、操作監視プログラム122の実行を終了すると判断する。制御装置101は、操作監視プログラム122の実行を終了すると判断した場合(ステップS130においてYES)、図19に示される処理を終了する。そうでない場合には(ステップS130においてNO)、制御装置101は、制御をステップS110に戻す。
(H2.情報処理端末200の制御フロー)
次に、図20を参照して、情報処理端末200の制御フローについて説明する。図20は、情報処理端末200が実行する処理の一部を表わすフローチャートである。情報処理端末200の制御装置201(図4参照)は、上述の情報処理プログラム222(図4参照)の実行開始指示を受けたことに基づいて、ステップS210の処理の実行を開始する。
ステップS210において、制御装置201は、上述の通信部252(図2参照)として機能し、作業端末100の各々から操作ログ130を受信する。
ステップS212において、制御装置201は、上述の作業特定部254(図2参照)として機能し、作業端末100から受信した操作ログ130の各々に規定される時系列の各操作情報から、当該各操作情報について、対応する作業内容を特定する。操作情報に対応する作業内容を特定方法については、上述の「B.情報処理端末200の概要」で説明した通りであるので、その説明については繰り返さない。
ステップS214において、制御装置201は、上述の繰り返し特定部256(図2参照)として機能し、ステップS212で時系列の各操作情報について特定された各作業内容から、繰り返し行われている一連の繰り返し作業を特定する。繰り返し作業の特定方法については、上述の「E.繰り返し特定部256の機能」で説明した通りであるので、その説明については繰り返さない。
ステップS216において、制御装置201は、上述の出力部260(図2参照)として機能し、ステップS214で特定された繰り返し作業の作業パターンに基づいて、操作ログ130を分析する。操作ログ130の分析方法については、上述の「F.出力部260の機能」で説明した通りであるので、その説明については繰り返さない。
ステップS218において、制御装置201は、上述の出力部260(図2参照)として機能し、ステップS216での分析結果を作業レポート270として出力する。作業レポート270については「G.作業レポート270」で説明した通りであるので、その説明については繰り返さない。
<I.変形例1>
図21を参照して、上述の学習データ生成部257(図7参照)による学習データセットの生成方法について変形例を説明する。
上述では、学習データ生成部257は、作業特定結果D1に含まれる時系列の作業内容群を所定単位数ごとにブロック化し、各ブロックに基づいて学習用データセットD2を生成していた。これに対して、本変形例では、学習データ生成部257は、作業特定結果D1に時系列に規定される作業内容群を所定時間単位ごとにブロック化し、各ブロックに基づいて学習用データセットD2Aを生成する。
図21は、変形例に従う学習データ生成部257の機能を概略的に示す図である。図21には、作業特定結果D1に含まれる作業内容群がグラフG1として示されている。グラフG1の横軸は、時間を表わす。グラフG1の縦軸は、作業内容の種別を表わす。グラフG1に示される各点は、作業特定結果D1に含まれる1つの作業内容を示す。
図21に示されるように、学習データ生成部257は、作業特定結果D1に含まれる作業内容群が所定の単位時間ΔTごとにブロック化する。次に、学習データ生成部257は、各ブロックに含まれる各点の間を補間し、単位時間ΔTに含まれる作業内容群を所定次元数に正規化する。当該補間の方法は、任意である。一例として、補間処理として、各点間が直線で結ばれてもよいし、各点の近似関数が算出されてもよい。これにより、各ブロックに含まれる作業内容の数の差異が吸収される。以下では、正規化後の作業内容群を「作業ベクトル」とも称する。
次に、学習データ生成部257は、各ブロックの作業ベクトルに対して、当該ブロックに続く次ブロックに対応する作業ベクトルを正解情報としてタグ付ける。図21の例では、たとえば、作業パターン1に対応する作業ベクトルに対して、作業パターン1に続く作業パターン4の作業ベクトルが正解情報としてタグ付けされる。また、作業パターン2に対応する作業ベクトルに対して、作業パターン2に続く作業パターン5の作業ベクトルが正解情報としてタグ付けされる。このようなタグ付けが全てのブロックについて実行され、それらが学習用データセットD2Aとして生成されている。
上述の学習部258(図8参照)は、生成された学習用データセットD2Aに基づいて、作業推定モデルMを生成する。作業推定モデルMの生成方法は上述の通りであるので、その説明については繰り返さない。
上述の解析部259(図9参照)は、学習部258による学習済みの作業推定モデルMに対して学習用データセットD2Aを再び入力し、繰り返し作業を示す作業パターンを特定する。
このように、時間の長さが考慮された学習用データセットD2Aに基づいて、作業推定モデルMが生成されることで、繰り返し作業をより確実に抽出することが可能になる。
<J.変形例2>
次に、繰り返し特定部256(図2参照)による繰り返し作業の特定方法について変形例を説明する。
上述の繰り返し特定部256は、学習処理により生成された作業推定モデルMに基づいて、繰り返し作業269を特定していたが、繰り返し作業は、学習処理以外の方法で特定されてもよい。
一例として、繰り返し特定部256は、作業特定結果D1に含まれる時系列の作業内容群を所定単位数ごと(あるいは所定時間単位ごと)にブロック化し、作業内容群の各ブロックを比較することで、ブロック同士の類似度を算出する。より具体的には、繰り返し特定部256は、各ブロックに含まれる作業内容群をベクトルとしてみなし、各ブロック間でベクトルの内積値を算出する。当該内積値が高いブロック同士は、作業内容が類似していることを示す。
以上のように、繰り返し特定部256は、学習処理によって繰り返し作業269を特定してもよいし、予め定められたルールベースの処理によって繰り返し作業269を特定してもよい。
<K.変形例3>
図22を参照して、機能構成の実装形態について変形例を説明する。
上述の図2の例では、作業特定部254、作業特定部254、繰り返し特定部256、および出力部260などの機能構成が、情報処理端末200に実装されていた。すなわち、操作ログ130から作業レポート270を生成する各種の機能が情報処理端末200に実装されていた。これに対して、本変形例では、これらの機能構成が、作業端末100に実装される。
図22は、変形例に従う作業端末100を示す図である。図22に示されるように、作業端末100は、ハードウェア構成として、制御装置101と、記憶装置120とを含む。制御装置101は、機能構成として、操作監視部152と、作業特定部254と、繰り返し特定部256と、出力部260とを含む。
作業特定部254、作業特定部254、繰り返し特定部256、および出力部260の機能については上述の通りであるので、以下では、それらの説明について繰り返さない。
操作監視部152は、作業端末100に対する操作を監視する。操作監視部152は、ユーザが作業端末100を操作したことに基づいて、ユーザ操作に係る情報を上述の操作ログ130(図2参照)に書き込む。一例として、操作監視部152は、操作対象の作業端末100を示す端末識別情報(たとえば、パソコン名)と、操作を行ったユーザを示すユーザ識別情報(たとえば、ログイン名)と、操作が行われたタイミングを示す操作時刻と、操作に費やされた時間を示す作業時間と、操作対象のアプリケーションを示すアプリケーション識別情報(たとえば、アプリケーション名)と、送信元の作業端末100に対する操作情報(たとえば、操作対象のウィンドウのタイトル)とを操作ログ130に書き込む。
以上のように、操作ログ130から作業レポート270を生成するための各種処理は、必ずしも、情報処理端末200に実装される必要はない。これらの各種処理は、たとえば、作業端末100に実装されてもよい。すなわち、作業端末100は、上述の情報処理端末200として機能し得る。
<L.まとめ>
以上のようにして、情報処理端末200は、作業端末100の各々から受信した操作ログ130に基づいて、繰り返し行われている作業(すなわち、繰り返し作業)を特定する。そして、情報処理端末200は、特定した繰り返し作業を作業レポート270として出力する。
繰り返し作業が自動化されると、作業効率が大幅に改善されるので、このような繰り返し作業の提示は、作業効率を改善するためのヒントになり得る。そのため、情報処理端末200は、作業端末100における作業効率の改善を支援することができる。
また、情報処理端末200は、繰り返し作業を提示するだけでなく、業務改善のための種々のヒントを作業レポート270として出力する。一例として、情報処理端末200は、繰り返し作業が行われた総回数や、当該総回数のユーザごとの内訳や、繰り返し作業を構成する各作業の平均作業時間など、種々の情報を出力する。これらの情報も、作業効率を改善するためのヒントになり得る。これらの情報が提示されることで、ユーザは、より効率的に作業効率の改善を行うことができる。
今回開示された実施の形態はすべての点で例示であって制限的なものではないと考えられるべきである。本発明の範囲は上記した説明ではなくて特許請求の範囲によって示され、特許請求の範囲と均等の意味および範囲内でのすべての変更が含まれることが意図される。