(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2022059636
(43)【公開日】2022-04-13
(54)【発明の名称】操作ログ解析装置、操作ログ解析方法及びプログラム
(51)【国際特許分類】
G06Q 10/06 20120101AFI20220406BHJP
【FI】
G06Q10/06 324
【審査請求】有
【請求項の数】5
【出願形態】OL
(21)【出願番号】P 2022019215
(22)【出願日】2022-02-10
(62)【分割の表示】P 2019186254の分割
【原出願日】2019-10-09
(71)【出願人】
【識別番号】000102717
【氏名又は名称】NTTテクノクロス株式会社
(74)【代理人】
【識別番号】100107766
【弁理士】
【氏名又は名称】伊東 忠重
(74)【代理人】
【識別番号】100070150
【弁理士】
【氏名又は名称】伊東 忠彦
(72)【発明者】
【氏名】大家 眸美
(72)【発明者】
【氏名】安田 航
(72)【発明者】
【氏名】生駒 勝幸
(72)【発明者】
【氏名】北島 憲男
(72)【発明者】
【氏名】江島 隆文
(57)【要約】
【課題】操作ログから業務プロセスを特定すること。
【解決手段】一実施形態に係る操作ログ解析装置は、通信ネットワークを介して接続された1以上の端末から、前記端末のユーザが行った操作で操作対象となったアプリケーションを特定するための特定情報と前記アプリケーションにより表示された画面の名称とが含まれる操作ログを取得する取得手段と、前記取得手段によって取得された操作ログを前記名称でクラスタリングした結果と前記特定情報によって特定されるアプリケーションとを用いて、業務プロセスを構成するタスクを定義するタスク定義手段と、前記タスク定義手段により定義されたタスク間の相関関係を表す相関係数を計算する計算手段と、を有する。
【選択図】
図2
【特許請求の範囲】
【請求項1】
通信ネットワークを介して接続された1以上の端末から、前記端末のユーザが行った操作で操作対象となったアプリケーションを特定するための特定情報と前記アプリケーションにより表示された画面の名称とが含まれる操作ログを取得する取得手段と、
前記取得手段によって取得された操作ログを前記名称でクラスタリングした結果と前記特定情報によって特定されるアプリケーションとを用いて、業務プロセスを構成するタスクを定義するタスク定義手段と、
前記タスク定義手段により定義されたタスク間の相関関係を表す相関係数を計算する計算手段と、
を有する操作ログ解析装置。
【請求項2】
前記操作ログには、前記操作対象となったアプリケーションで表示されているコンテンツのアドレスが含まれ、
前記タスク定義手段は、
前記アドレスを1以上のグループにグルーピングし、
前記計算手段は、
前記グルーピングされたアドレスと前記タスクとの間の相関関係を表す相関係数を計算する、請求項1に記載の操作ログ解析装置。
【請求項3】
前記取得手段により前記端末からリアルタイムに操作ログが取得されると、取得された操作ログが表す操作で実行されているタスクと、前記グルーピングされたアドレスと前記タスクとの間の相関関係を表す相関係数とを用いて、前記操作ログが表す操作で実行されているタスクに関連するアドレスを特定する第1の特定手段を有する請求項2に記載の操作ログ解析装置。
【請求項4】
通信ネットワークを介して接続された1以上の端末から、前記端末のユーザが行った操作で操作対象となったアプリケーションを特定するための特定情報と前記アプリケーションにより表示された画面の名称とが含まれる操作ログを取得する取得手順と、
前記取得手順によって取得された操作ログを前記名称でクラスタリングした結果と前記特定情報によって特定されるアプリケーションとを用いて、業務プロセスを構成するタスクを定義するタスク定義手順と、
前記タスク定義手順により定義されたタスク間の相関関係を表す相関係数を計算する計算手順と、
をコンピュータが実行する操作ログ解析方法。
【請求項5】
コンピュータを、請求項1乃至3の何れか一項に記載の操作ログ解析装置として機能させるプログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、操作ログ解析装置、操作ログ解析方法及びプログラムに関する。
【背景技術】
【0002】
近年、オフィスにおける様々な業務は電子化されており、PC(パーソナルコンピュータ)等の端末を人が操作することで業務が行われることが多い。これらの業務の中には、事務作業等の定型的な間接業務も存在し、その効率化が求められている。これに対して、RPA(Robotic Process Automation)と呼ばれる技術が知られるようになってきた(例えば非特許文献1参照)。RPAとは、事務作業等の定型的な業務を自動的に実行する技術のことである。
【先行技術文献】
【非特許文献】
【0003】
【非特許文献1】「WinActor」,<URL:https://winactor.biz/>
【発明の概要】
【発明が解決しようとする課題】
【0004】
しかしながら、RPAでは業務プロセスの定義を人が行う必要がある。また、業務プロセスを定義するためには、業務プロセスの分析を行って、その業務ではどのような作業(タスク)をどのような順番で行っているのかを特定する必要があり、多くの労力を要する。
【0005】
本発明の実施形態は、上記の点に鑑みてなされたもので、操作ログから業務プロセスを特定することを目的とする。
【課題を解決するための手段】
【0006】
上記目的を達成するため、一実施形態に係る操作ログ解析装置は、通信ネットワークを介して接続された1以上の端末から、前記端末のユーザが行った操作で操作対象となったアプリケーションを特定するための特定情報と前記アプリケーションにより表示された画面の名称とが含まれる操作ログを取得する取得手段と、前記取得手段によって取得された操作ログを前記名称でクラスタリングした結果と前記特定情報によって特定されるアプリケーションとを用いて、業務プロセスを構成するタスクを定義するタスク定義手段と、前記タスク定義手段により定義されたタスク間の相関関係を表す相関係数を計算する計算手段と、を有する。
【発明の効果】
【0007】
操作ログから業務プロセスを特定することができる。
【図面の簡単な説明】
【0008】
【
図1】実施例1における操作ログ解析システムの全体構成の一例を示す図である。
【
図2】実施例1における操作ログ解析装置及び端末の機能構成の一例を示す図である。
【
図3】実施例1における学習処理の一例を示すシーケンス図である。
【
図5】実施例1における前処理後の操作ログ情報の一例を示す図である。
【
図8】実施例1における関連タスク特定処理の一例を示すシーケンス図である。
【
図9】実施例2における操作ログ解析装置及び端末の機能構成の一例を示す図である。
【
図10】実施例2における学習処理の一例を示すシーケンス図である。
【
図11】実施例2における前処理後の操作ログ情報の一例を示す図である。
【
図13】タスク・アドレス間の相関行列の一例を示す図である。
【
図14】実施例2における関連タスク特定処理の一例を示すシーケンス図である。
【
図16】応用例における操作ログ解析装置及び端末の機能構成の一例を示す図である。
【
図17】応用例における業務プロセス解析処理の一例を示すシーケンス図である。
【発明を実施するための形態】
【0009】
以下、本発明の実施形態について説明する。本実施形態では、ユーザが操作する端末から収集した操作ログを解析することで、操作ログから業務プロセスを特定することができる操作ログ解析システム1について説明する。なお、業務プロセスとは、或る業務を完遂するまでに実行される一連の作業(タスク)のことである。
【0010】
[実施例1]
まず、実施例1について説明する。
【0011】
<全体構成>
実施例1における操作ログ解析システム1の全体構成について、
図1を参照しながら説明する。
図1は、実施例1における操作ログ解析システム1の全体構成の一例を示す図である。
【0012】
図1に示すように、実施例1における操作ログ解析システム1には、操作ログ解析装置10と、1以上の端末20とが含まれる。また、操作ログ解析装置10と各端末20は、例えば、社内LAN(Local Area Network)等の任意の通信ネットワークNを介して接続されている。
【0013】
操作ログ解析装置10は、端末20から収集(取得)した操作ログを解析することで、これらの操作ログから業務プロセスを特定するコンピュータ又はコンピュータシステムである。ここで、上述したように、業務プロセスとは或る業務を完遂するまでに実行される一連のタスクのことである。このため、或るタスクに対して、このタスクの次に実行されるタスク(より正確には次に実行される可能性が高いタスク)を特定することで、業務プロセスを特定することができる。そこで、実施例1における操作ログ解析装置10では、操作ログからタスク間の相関関係を推定することで、各タスクに対して、当該タスクの次に実行されるタスクを特定するものとする。これにより、1つ以上のタスクで構成される業務プロセスを特定することが可能となる。
【0014】
なお、以降では、或るタスクの次に実行されるタスク(より正確には次に実行される可能性が高いタスク)を「関連タスク」とも表す。後述するように、当該或るタスクとの関連性が高いタスクが関連タスクとなる。
【0015】
また、操作ログ解析装置10は、端末20でユーザが行っている操作の操作ログを取得して、事前に推定されたタスク間の相関関係から、当該操作ログが表す操作で実行されているタスクの関連タスク(つまり、当該ユーザが現在行っているタスクの次に実行される可能性が高いタスク)を特定する。これにより、実施例1における操作ログ解析装置10は、当該端末20のユーザに対して、例えば、次に実行すべきタスクとして関連タスクを提案したり、関連タスクを自動で実行させたりすることが可能となる。
【0016】
端末20は、ユーザが操作するコンピュータ又はコンピュータシステムである。端末20は、ユーザによる操作のログ(操作ログ)を操作ログ解析装置10に送信する。以降では、一例として、端末20にはWindows(登録商標)系のOS(Operating System)が搭載されているものとする。ただし、本実施形態は、Windows系のOS以外の任意のOSが端末20に搭載されている場合であっても適用可能である。なお、端末20としてはPC等が挙げられるが、これに限られず、例えば、スマートフォンやタブレット端末、プリンタ、スキャナ、FAX等の各種の端末であってもよい。
【0017】
なお、
図1に示す操作ログ解析システム1の構成は一例であって、他の構成であってもよい。例えば、操作ログ解析装置10は複数の装置にして配置されていてもよい。また、例えば、操作ログ解析装置10の全部又は一部が、インターネット等を介して接続されるクラウドサーバ等によって実現されていてもよい。
【0018】
<機能構成>
次に、実施例1における操作ログ解析装置10及び端末20の機能構成について、
図2を参照しながら説明する。
図2は、実施例1における操作ログ解析装置10及び端末20の機能構成の一例を示す図である。
【0019】
図2に示すように、実施例1における操作ログ解析装置10は、ログ取得部101と、前処理部102と、タスク定義部103と、相関計算部104と、タスク特定部105と、関連タスク特定部106とを有する。これら各部は、例えば、操作ログ解析装置10にインストールされた1以上のプログラムが、CPU(Central Processing Unit)等のプロセッサに実行させる処理により実現される。
【0020】
また、実施例1における操作ログ解析装置10は、記憶部107を有する。記憶部107は、例えば、HDD(Hard Disk Drive)やSSD(Solid State Drive)等の補助記憶装置を用いて実現可能である。なお、記憶部107は、操作ログ解析装置10と通信ネットワークNを介して接続される記憶装置やデータベースサーバ等を用いて実現されていてもよい。
【0021】
ログ取得部101は、端末20におけるユーザの操作ログを示す操作ログ情報を当該端末20から取得する。また、ログ取得部101は、端末20から取得した操作ログ情報を記憶部107に保存する。なお、後述するように、操作ログ情報には、例えば、端末20で操作を行ったユーザのユーザID、当該操作の対象となったアプリケーションを特定するための情報(ウィンドウクラスのクラス名)、及び当該アプリケーションによって表示されたウィンドウ(表示領域)の名称(タイトル)等が含まれる。
【0022】
前処理部102は、記憶部107に記憶されている操作ログ情報に対して所定の前処理を行う。前処理としては、例えば、操作の対象となったアプリケーションの名称(アプリケーション名)を特定する処理やタイトルを形態素解析して形態素に分解する処理等が行なわれる。
【0023】
タスク定義部103は、前処理部102による前処理後の操作ログ情報をクラスタリングすることで操作ログ情報を分類し、同一クラスタに分類される操作ログ情報からタスクを定義する。
【0024】
相関計算部104は、タスク定義部103により定義されたタスク間の相関関係を表す相関係数を計算する。
【0025】
タスク特定部105は、ログ取得部101により取得された操作ログ情報が表す操作で実行されているタスクを特定する。
【0026】
関連タスク特定部106は、相関計算部104により計算された相関係数を用いて、タスク特定部105により特定されたタスクの関連タスクを特定する。
【0027】
記憶部107は、各種データ(例えば、操作ログ情報やタスク間の相関係数等)を記憶する。
【0028】
図2に示すように、実施例1における端末20は、表示制御部201と、操作受付部202と、ログ作成部203と、ログ送信部204とを有する。これら各部は、例えば、端末20にインストールされた1以上のプログラムが、CPU等のプロセッサに実行させる処理により実現される。
【0029】
また、実施例1における端末20は、記憶部205を有する。記憶部205は、例えば、HDDやSSD等の補助記憶装置を用いて実現可能である。
【0030】
表示制御部201は、端末20のディスプレイ上への各種情報の表示を制御する。例えば、表示制御部201は、ユーザの操作等に応じて、当該操作の対象となったアプリケーションのウィンドウ等をディスプレイ上に表示する。
【0031】
操作受付部202は、ユーザによる各種操作を受け付ける。例えば、操作受付部202は、アプリケーションを起動させるための操作、アプリケーションの各種機能を実行させるための操作等の様々な操作を受け付ける。
【0032】
ログ作成部203は、操作受付部202により受け付けられた操作のログ(操作ログ)を示す操作ログ情報を作成する。また、ログ作成部203は、作成した操作ログ情報を記憶部205に保存する。
【0033】
ログ送信部204は、記憶部205に記憶されている操作ログ情報をバッチ的に操作ログ解析装置10に送信したり、ログ作成部203により作成された操作ログ情報をリアルタイムに操作ログ解析装置10に送信したりする。
【0034】
記憶部205は、各種データ(例えば、ログ作成部203により作成された操作ログ情報等)を記憶する。
【0035】
<処理の詳細>
以降では、実施例1における操作ログ解析システム1の処理の詳細について説明する。実施例1における操作ログ解析システム1は、1以上の端末20の操作ログ情報を操作ログ解析装置10がバッチ的に収集してタスク間の相関関係を推定する学習処理と、各端末20の操作ログ情報を操作ログ解析装置10がリアルタイムに収集して関連タスクを特定する関連タスク特定処理とを実行する。そこで、以降では、学習処理と関連タスク特定処理について説明する。なお、学習処理は、例えば、所定の時間毎(日次や週次等)に繰り返し実行される。一方で、関連タスク特定処理は、例えば、端末20でユーザによって操作が行われ、この操作の操作ログ情報が作成される度に繰り返し実行される。
【0036】
≪学習処理≫
実施例1における学習処理について、
図3を参照しながら説明する。
図3は、実施例1における学習処理の一例を示すシーケンス図である。
【0037】
まず、各端末20のログ送信部204は、記憶部205に記憶されている操作ログ情報を操作ログ解析装置10に送信する(ステップS101)。上述したように、操作ログ情報は、操作受付部202によってユーザの操作が受け付けられると、ログ作成部203によって作成される。
【0038】
なお、各端末20のログ送信部204は、記憶部205に記憶されている全ての操作ログ情報を操作ログ解析装置10に送信してもよいし、記憶部205に記憶されている操作ログ情報うち、未送信の操作ログ情報を操作ログ解析装置10に送信してもよい。また、各端末20のログ送信部204は、例えば、学習処理が開始された後に、自動的に操作ログ情報を操作ログ解析装置10に送信してもよいし、操作ログ解析装置10からの要求に応じて操作ログ情報を当該操作ログ解析装置10に送信してもよい。
【0039】
操作ログ解析装置10のログ取得部101は、各端末20からの操作ログ情報を受信すると、これらの操作ログ情報を記憶部107に保存する(ステップS102)。これにより、各端末20の操作ログ情報が収集される。
【0040】
ここで、記憶部107に記憶されている操作ログ情報の一例について、
図4を参照しながら説明する。
図4は、操作ログ情報の一例を示す図である。
【0041】
図4に示すように、操作ログ情報には、データの項目として、「User」、「Datetime」、「WindowClass」、「WindowTitle」及び「Path」等が含まれる。
【0042】
「User」には、操作ログ情報が表す操作ログに対応する操作を行ったユーザのユーザIDが設定される。「Datetime」には、当該操作が行われた日時が設定される。「WindowClass」には、当該操作の対象となったアプリケーションを特定するための情報(ウィンドウクラスのクラス名)が設定される。なお、ウィンドウクラスのクラス名が設定されることは一例であって、端末20に搭載されているOSの種類に応じて、ウィンドウクラスのクラス名の代わりに、当該操作の対象となったアプリケーションを特定するための任意の情報が設定されてもよい。
【0043】
「WindowTitle」には、当該アプリケーションによって表示されたウィンドウ(表示領域)の名称(タイトル)が設定される。「Path」には、当該アプリケーションがWebブラウザ等である場合にウィンドウ内に表示されるコンテンツのアドレス(例えば、URL(Uniform Resource Locator)等)が設定される。
【0044】
このように、操作ログ情報には、例えば、ユーザID、ウィンドウクラスのクラス名、ウィンドウのタイトル等の情報が含まれる。記憶部107には、各端末20から収集(取得)した1以上の操作ログ情報が保存されている。
【0045】
図3の説明に戻る。ステップS102に続いて、操作ログ解析装置10の前処理部102は、記憶部107に記憶されている操作ログ情報に対して所定の前処理を行う(ステップS103)。なお、前処理部102は、記憶部107に記憶されている操作ログ情報のうち、未だ前処理が行われていない操作ログ情報に対してのみ前処理を行えばよい。
【0046】
前処理部102は、前処理として、操作ログ情報に含まれるクラス名からアプリケーション名を特定すると共に、ウィンドウのタイトルを形態素解析して形態素に分解する。ここで、
図4に示す操作ログ情報に対して前処理を行った結果(前処理後の操作ログ情報)を
図5に示す。
【0047】
図5に示す例では、操作ログ情報の「WindowClass」に設定されているクラス名「XLMAIN」からアプリケーション名「Excel(登録商標)」特定されている。同様に、操作ログ情報の「WindowClass」に設定されているクラス名「IEFrame」からアプリケーション名「Internet Explorer(登録商標)」が特定されている。なお、記憶部107にはウィンドウクラスのクラス名とアプリケーション名とが対応付けられた情報が予め記憶されており、前処理部102は、これらの情報を参照することで、ウィンドウクラスのクラス名からアプリケーション名を特定することができる。
【0048】
また、
図5に示す例では、操作ログ情報の「WindowTitle」に設定されているタイトルが形態素に分解されている。具体的には、例えば、「入館証発行申請_yamada.xlsx」は[入館証,発行,申請,yamada]と4つの形態素に分解されている。同様に、例えば、「入館証発行申請_suzuki.xlsx」は[入館証,発行,申請,suzuki]と4つの形態素に分解されている。なお、前処理部102は、既知の手法により形態素解析を行えばよい。
【0049】
図3の説明に戻る。ステップS103に続いて、操作ログ解析装置10のタスク定義部103は、上記のステップS103での前処理後の操作ログ情報を用いて、以下のStep11~Step13によりタスクを定義する(ステップS104)。なお、以降のStep11~Step13では、前処理後の操作ログ情報を単に「操作ログ情報」と表す。
【0050】
Step11:まず、タスク定義部103は、操作ログ情報の「WindowTitle」に設定されているタイトル(つまり、形態素に分解されたタイトル)をそれぞれ単語ベクトルに変換する。ここで、タスク定義部103は、例えば、単語の語彙集合に含まれる語彙数をNとして、形態素に分解されたタイトル中に含まれる単語(形態素)に対応する要素を1、それ以外の要素を0とするN次元の単語ベクトルに当該タイトルを変換する。これにより、操作ログ情報の「WindowTitle」に設定されているタイトルのそれぞれがN次元の単語ベクトルに変換される。なお、この単語ベクトルは、操作ログ情報の特徴ベクトルと称されてもよい。
【0051】
Step12:次に、タスク定義部103は、上記のStep11で得られた単語ベクトルを用いて、各操作ログ情報をクラスタリングする。なお、クラスタリング手法としては任意の手法を用いることができるが、例えば、k-平均法(k-means法)等を用いることが可能である。これにより、各操作ログ情報が1つ以上のクラスタに分類(クラスタリング)される。
【0052】
Step13:そして、タスク定義部103は、同一クラスタに分類された操作ログ情報の「WindowTitle」に設定されているタイトル中に含まれる特徴的な単語の集合(特徴単語集合)と、これらの操作ログ情報の「WindowClass」に設定されているアプリケーション名とを対応付けてタスクを定義する。このとき、タスク定義部103は、例えば、同一クラスタに分類された操作ログ情報に共通に含まれる単語の集合を特徴単語集合としてもよいし、同一クラスタに分類された操作ログ情報に多く含まれる単語(例えば、所定の割合以上の操作ログ情報に含まれる単語等)の集合を特徴単語集合としてもよい。また、タスク定義部103は、例えば、同一クラスタに分類された操作ログ情報に共通に含まれるアプリケーション名を用いてタスクを定義してもよいし、同一クラスタに分類された操作ログ情報に多く含まれるアプリケーション名(例えば、所定の割合以上の操作ログ情報に含まれるアプリケーション名等)を用いてタスクを定義してもよい。これにより、クラスタ毎にタスクが定義される。
【0053】
上記のStep11~Step13により定義されたタスクを示すタスク定義情報は、例えば、記憶部107に保存される。タスク定義情報には、例えば、アプリケーション名と特徴単語集合とが含まれる。なお、タスク定義情報には、当該タスク定義情報を識別するため情報(例えば、番号等)が含まれていてもよい。
【0054】
ここで、上記のStep11~Step13により定義されたタスクの一例を
図6に示す。
図6に示す例では、アプリケーション名「Excel」と特徴単語集合「入館証,発行,申請」とが対応付けられて1つのタスク(TaskA)が定義されている。また、アプリケーション名「Excel」と特徴単語集合「購買,依頼,書」とが対応付けられて1つのタスク(TaskB)が定義されている。同様に、アプリケーション名「Internet Explorer」と特徴単語集合「ワークフロー」とが対応付けられて1つのタスク(TaskC)が定義されている。
【0055】
図3の説明に戻る。ステップS104に続いて、操作ログ解析装置10の相関計算部104は、上記のステップS104で定義されたタスクのタスク定義情報を用いて、各タスク間の相関関係を表す相関係数を計算する(ステップS105)。相関計算部104は、例えば、Matrix FactorizationやFactorization Machines等の既知の手法を用いてタスク間の相関係数を計算(推定)すればよい。タスク間の相関係数は、例えば、記憶部107に保存される。
【0056】
ここで、タスク間の相関係数を各要素とする相関行列の一例を
図7に示す。
図7に示す例は、TaskA~TaskDのうちの2つのタスク間の相関係数を各要素とする相関行列である。例えば、
図7に示す相関行列の(2,1)成分の要素は、TaskBとTaskAとの相関係数が0.8であることを表している。同様に、
図7に示す相関行列の(3,1)成分の要素は、TaskCとTaskAとの相関係数が0.2であることを表している。他の要素についても同様である。
【0057】
なお、タスク間の相関係数は、タスク間の共起確率や相互作用等を表している。例えば、
図7に示す例では、TaskAと、TaskB~TaskDのそれぞれとの相関係数は、それぞれ0.8、0.2、0、5である。これは、TaskAの次に実行されるタスク(又は、TaskAと一緒に実行されるタスク)として、TaskBが最も可能性が高いことを表している。したがって、この場合、TaskAの関連タスクとして、TaskBを特定することが可能となる。
【0058】
以上のように、実施例1における操作ログ解析装置10は、各端末20から収集した操作ログ情報を用いてタスクを定義した上で、タスク間の相関係数を計算する。これにより、後述する関連タスク特定処理において、各端末20からリアルタイムに取得した操作ログ情報を用いて、当該端末20で実行されているタスクの関連タスクを特定することができるようになる。
【0059】
≪関連タスク特定処理≫
実施例1における関連タスク特定処理について、
図8を参照しながら説明する。
図8は、実施例1における関連タスク特定処理の一例を示すシーケンス図である。以降では、或る端末20でユーザが実行しているタスクの関連タスクを特定する場合について説明する。
【0060】
まず、端末20のログ送信部204は、ユーザの操作に応じて、ログ作成部203によって作成された操作ログ情報を操作ログ解析装置10に送信する(ステップS201)。上述したように、操作ログ情報は、操作受付部202によってユーザの操作が受け付けられると、ログ作成部203によって作成される。
【0061】
操作ログ解析装置10の前処理部102は、端末20からの操作ログ情報がログ取得部101により受信されると、
図3のステップS103と同様に、当該操作ログ情報に対して所定の前処理を行う(ステップS202)。すなわち、前処理部102は、前処理として、操作ログ情報に含まれるクラス名からアプリケーション名を特定すると共に、ウィンドウのタイトルを形態素解析して形態素に分解する。
【0062】
次に、操作ログ解析装置10のタスク特定部105は、上記のステップS202での前処理後の操作ログ情報に含まれるタイトルと、
図3のステップS104で得られたタスク定義情報とを用いて、タスクを特定する(ステップS203)。すなわち、タスク特定部105は、例えば、各タスク定義情報の特徴単語集合と、前処理後の操作ログ情報の「WindowTitle」に設定されているタイトル(つまり、形態素に分解されたタイトル)とを比較して、当該タイトルの中に特徴単語集合が含まれるタスク定義情報を特定する。これにより、このタスク定義情報によって示されるタスクが特定される。
【0063】
なお、上述したタスク定義情報の特定方法は一例であって、これ以外にも、例えば、前処理後の操作ログ情報の「WindowTitle」に設定されているタイトルと最も類似度が高い特徴単語集合が含まれるタスク定義情報を特定してもよい。このとき、類似度としては、単語(形態素)の集合間の類似度合いを表すものであれば任意のものを用いることが可能である。
【0064】
次に、操作ログ解析装置10の関連タスク特定部106は、記憶部107に記憶されているタスク間の相関係数を用いて、上記のステップS203で特定されたタスクの関連タスクを特定する(ステップS204)。関連タスク特定部106は、例えば、上記のステップS203で特定されたタスクとの相関係数が最も高い他のタスクを関連タスクと特定してもよいし、上記のステップS203で特定されたタスクとの相関係数が所定の値以上の他のタスクを関連タスクと特定してもよいし、上記のステップS203で特定されたタスクとの相関係数が高い順に所定の個数の他のタスクを関連タスクとして特定してもよい。
【0065】
次に、操作ログ解析装置10の関連タスク特定部106は、上記のステップS204で特定した関連タスクを示す関連タスク情報を端末20に送信する(ステップS205)。なお、関連タスク情報には、タスク定義情報と同様に、例えば、アプリケーション名と特徴単語集合とが含まれる。
【0066】
端末20の表示制御部201は、関連タスク情報を受信すると、この関連タスク情報により示される関連タスクを次に実行すべきタスク(又は、次に実行すべきタスクの候補)として表示(提案)する(ステップS206)。これにより、当該端末20のユーザは、現在実行しているタスクの次に実行すべきタスクを知ることができる。
【0067】
なお、上記のステップS206では、関連タスク情報により示される関連タスクを次に実行すべきタスク(次に実行すべきタスクの候補)としてユーザに提案したが、これに限られず、例えば、端末20は、関連タスクを自動実行してもよい。ただし、関連タスクが自動実行される場合は、上記のステップS205で操作ログ解析装置10は1つの関連タスク情報のみを当該端末20に送信することが好ましい。又は、上記のステップS205で操作ログ解析装置10が関連タスク情報と共に相関係数も端末20に送信し、当該端末20が、相関係数が最も高い関連タスク情報により示される関連タスクを自動実行してもよい。
【0068】
以上のように、実施例1における操作ログ解析装置10は、各端末20での操作ログ情報をリアルタイムに取得することで、この操作ログ情報が表す操作で実行されているタスクの関連タスクを特定することができる。これにより、実施例1における操作ログ解析装置10は、各端末20のユーザに対して次に実行すべきタスクを提案したり、次に実行すべきタスクを自動実行させたりすることが可能になる。
【0069】
このため、端末20のユーザは、例えば、業務プロセスがマニュアル化されていない業務を実施するような場合であっても、その業務を容易に実施することが可能となる。なお、業務プロセスがマニュアル化されていない業務には、マニュアルが整備されていない業務の他、例えば、複数の部署や複数の会社等に対して横断的な作業を行う必要がある業務等が挙げられる。具体的には、例えば、A部署に対して申請A(タスクA)を行った後、B部署に対して申請B(タスクB)を行い、その後、C部署に対して申請C(タスクC)を行うような場合である。この場合、一般的に、申請A、申請B及び申請Cのそれぞれに対してはマニュアルが存在することが多い。しかしながら、申請A、申請B及び申請Cのそれぞれは申請を受け付ける部署が異なるため、申請A、申請B及び申請Cをこの順に申請する必要があることはマニュアル化されていない場合が多い。このような場合であっても、実施例1における操作ログ解析装置10を用いることで、タスクAの次に実行するタスクとしてタスクBを、タスクBの次に実行すべきタスクとしてタスクCを提案等することが可能となる。
【0070】
なお、上述した関連タスク特定処理では、端末20がリアルタイムに操作ログ情報を操作ログ解析装置10に送信し、当該操作ログ解析装置10で関連タスクの特定を行ったが、これに限られず、例えば、学習処理で得られたタスク定義情報と相関係数とを操作ログ解析装置10が端末20に事前に送信(つまり、関連タスク特定処理が実行される前に送信)しておくことで、端末20で関連タスクの特定が行われてもよい。
【0071】
[実施例2]
次に、実施例2について説明する。ここで、ユーザは、タスクの実行中にWebブラウザでマニュアル等を参照したり、このタスクの実行に必要なWebページ(例えば、各種申請を行うためのWebページ等)を開いたりすることがある。そこで、実施例2では、ユーザが現在実行しているタスクと関連するアドレス(以降、「関連アドレス」とも表す。)を特定し、この関連アドレスもユーザに提案等する場合について説明する。
【0072】
なお、実施例2では、主に、実施例1との相違点について説明し、実施例1と同様の構成要素についてはその説明を省略する。
【0073】
<機能構成>
まず、実施例2における操作ログ解析装置10及び端末20の機能構成について、
図9を参照しながら説明する。
図9は、実施例2における操作ログ解析装置10及び端末20の機能構成の一例を示す図である。
【0074】
図9に示すように、実施例2における操作ログ解析装置10は、実施例1で説明した機能構成に対して、アドレス定義部108と、関連アドレス特定部109とを更に有する。これら各部は、例えば、操作ログ解析装置10にインストールされた1以上のプログラムが、プロセッサに実行させる処理により実現される。
【0075】
また、実施例2における前処理部102は、記憶部107に記憶されている操作ログ情報に対する前処理として、更に、操作ログ情報の「Path」に設定されているアドレス(URL)をスラッシュで区切られた文字列単位に分解すると共に、クエリパラメータを削除する。
【0076】
アドレス定義部108は、前処理部102による前処理後の操作ログ情報の「Path」に設定されているアドレスをグルーピングすることで、同一グループにグルーピングされるアドレスを、同一Webページを表すアドレスとして定義する。
【0077】
また、実施例2における相関計算部104は、更に、タスク定義部103により定義されたタスクと、アドレス定義部108により定義されたアドレスとの間の相関関係を表す相関係数を計算する。
【0078】
関連アドレス特定部109は、ログ取得部101により取得された操作ログ情報が表す操作で実行されているタスクの関連アドレスを特定する。
【0079】
<処理の詳細>
以降では、実施例2における操作ログ解析システム1の処理の詳細について説明する。実施例2における操作ログ解析システム1は、1以上の端末20の操作ログ情報を操作ログ解析装置10がバッチ的に収集してタスク間の相関関係とタスク及びアドレス間の相関関係とを推定する学習処理と、各端末20の操作ログ情報を操作ログ解析装置10がリアルタイムに収集して関連タスクと関連アドレスとを特定する関連タスク特定処理とを実行する。そこで、以降では、学習処理と関連タスク特定処理について説明する。なお、学習処理は、例えば、所定の時間毎(日次や週次等)に繰り返し実行される。一方で、関連タスク特定処理は、例えば、端末20でユーザによって操作が行われ、この操作の操作ログ情報が作成される度に繰り返し実行される。
【0080】
≪学習処理≫
実施例2における学習処理について、
図10を参照しながら説明する。
図10は、実施例2における学習処理の一例を示すシーケンス図である。
【0081】
図10のステップS301~ステップS302は、
図3のステップS101~ステップS102とそれぞれ同様であるため、その説明を省略する。
【0082】
ステップS302に続いて、操作ログ解析装置10の前処理部102は、記憶部107に記憶されている操作ログ情報に対して所定の前処理を行う(ステップS303)。なお、前処理部102は、記憶部107に記憶されている操作ログ情報のうち、未だ前処理が行われていない操作ログ情報に対してのみ前処理を行えばよい。
【0083】
前処理部102は、前処理として、
図3のステップS103で説明した前処理に加えて、操作ログ情報の「Path」に設定されているアドレス(URL)をスラッシュで区切られた文字列単位に分解すると共に、クエリパラメータを削除する。ここで、
図4に示す操作ログ情報に対して前処理を行った結果(前処理後の操作ログ情報)を
図11に示す。
【0084】
図11に示す例では、操作ログ情報の「Path」に設定されているアドレスがスラッシュで区切られた文字列単位に分解されていると共に、クエリパラメータが削除されている。具体的には、例えば、「http://abc.def.xyz.co.jp/portal/workflow/admission/?p=・・・」はクエリパラメータ「?p=・・・」が削除された上で、「http://」以降の文字列がスラッシュ「/」で区切られて[abc.def.xyz.co.jp, portal, workflow, admission]と分解されている。同様に、例えば、「http://abc.def.xyz.co.jp/portal/workflow/purchase/?q=・・・」はクエリパラメータ「?p=・・・」が削除された上で、「http://」以降の文字列がスラッシュ「/」で区切られて[abc.def.xyz.co.jp, portal, workflow, purchase]と分解されている。なお、本実施例では「http://」を削除したが、これに限られず、例えば、「http://」を削除せずに、「http://」を1つの文字列単位としてもよい。
【0085】
図10の説明に戻る。ステップS303に続くステップS304は、
図3のステップS104と同様であるため、その説明を省略する。
【0086】
ステップS304に続いて、操作ログ解析装置10のアドレス定義部108は、上記のステップS303での前処理後の操作ログ情報を用いて、以下のStep21~Step22によりアドレスを定義する(ステップS305)。なお、以降のStep21~Step22では、前処理後の操作ログ情報を単に「操作ログ情報」と表す。
【0087】
Step21:まず、アドレス定義部108は、操作ログ情報の「Path」に設定されているアドレス(つまり、クエリパラメータが削除され、かつ、スラッシュで区切られた文字列単位に分解されたアドレス)について、同一アドレスを同一グループとしてグルーピングする。
【0088】
Step22:そして、アドレス定義部108は、上記のStep21でのグルーピングにより得られたグループに対応するアドレスを、同一Webページをアドレスとしてそれぞれ定義する。これにより、グループ毎にアドレスが定義される。
【0089】
上記のStep21~Step22により定義されたアドレスを示すアドレス情報は、例えば、記憶部107に記憶される。アドレス情報には、例えば、クエリパラメータが削除され、かつ、スラッシュで区切られた文字列単位に分解されたアドレスが含まれる。なお、アドレス情報には、当該アドレス情報を識別するための情報(例えば、番号等)が含まれていてもよい。
【0090】
ここで、上記のStep21~Step22により定義されたアドレスの一例を
図12に示す。
図12に示す例では、[abc.def.xyz.co.jp, portal, workflow, admission]が1つのアドレス(AddressA)として定義されている。また、[abc.def.xyz.co.jp, portal, workflow, purchase]が1つのアドレス(AddressB)として定義されている。
【0091】
図10の説明に戻る。ステップS305に続いて、操作ログ解析装置10の相関計算部104は、ステップS304で定義されたタスクのタスク定義情報と、上記のステップS306で定義されたアドレスのアドレス情報とを用いて、各タスク間の相関係数と、各タスク及び各アドレス間の相関係数とを計算する(ステップS306)。相関計算部104は、例えば、Matrix FactorizationやFactorization Machines等の既知の手法を用いてタスク間の相関係数と各タスク及び各アドレス間の相関係数とを計算(推定)すればよい。タスク間の相関係数と各タスク及び各アドレス間の相関係数とは、例えば、記憶部107に保存される。
【0092】
ここで、タスク及びアドレス間の相関係数を各要素とする相関行列の一例を
図13に示す。
図13に示す例は、TaskA~TaskDと、AddressA~AddressDとのそれぞれの間の相関係数を各要素とする相関行列である。例えば、
図13に示す相関行列の(1,1)成分の要素は、TaskAとAddressAとの相関係数が0.7であることを表している。同様に、
図13に示す相関行列の(2,1)成分の要素は、TaskBとAddressAとの相関係数が0.4であることを表している。他の要素ついても同様である。
【0093】
なお、タスク及びアドレス間の相関係数は、タスクとアドレスとの間の共起確率や相互作用等を表している。例えば、
図13に示す例では、TaskAと、AddressA~AddressDのそれぞれとの相関係数は、それぞれ0.7、0.8、0.2、0.1である。これは、TaskAの実行中に参照されるコンテンツのアドレスとして、AddressBが最も可能性が高いことを表している。この場合、TaskAの関連アドレスとして、AddressBを特定することが可能となる。
【0094】
以上のように、実施例2における操作ログ解析装置10は、各端末20から収集した操作ログ情報を用いてタスク及びアドレスを定義した上で、タスク間の相関係数とタスク及びアドレス間の相関係数とを計算する。これにより、後述する関連タスク特定処理において、各端末20からリアルタイムに取得した操作ログ情報を用いて、当該端末20で実行されているタスクの関連タスクと関連アドレスとを特定することができるようになる。
【0095】
≪関連タスク特定処理≫
実施例2における関連タスク特定処理について、
図14を参照しながら説明する。
図14は、実施例2における関連タスク特定処理の一例を示すシーケンス図である。以降では、或る端末20でユーザが実行しているタスクの関連タスクと関連アドレスとを特定する場合について説明する。
【0096】
まず、端末20のログ送信部204は、
図8のステップS201と同様に、ユーザの操作に応じて、ログ作成部203によって作成された操作ログ情報を操作ログ解析装置10に送信する(ステップS401)。
【0097】
操作ログ解析装置10の前処理部102は、端末20からの操作ログ情報がログ取得部101により受信されると、
図10のステップS303と同様に、当該操作ログ情報に対して所定の前処理を行う(ステップS402)。ただし、操作ログ情報に含まれるアドレスに対する前処理(つまり、クエリパラメータの削除とスラッシュで区切られた文字列単位への分解)は行われなくてもよい。
【0098】
以降のステップS403~ステップS404は、
図8のステップS203~ステップS204とそれぞれ同様であるため、その説明を省略する。
【0099】
ステップS404に続いて、操作ログ解析装置10の関連アドレス特定部109は、記憶部107に記憶されているタスク及びアドレス間の相関係数を用いて、ステップS403で特定されたタスクの関連アドレスを特定する(ステップS405)。関連アドレス特定部109は、例えば、ステップS403で特定されたタスクとの相関係数が最も高いアドレスを関連アドレスと特定してもよいし、ステップS403で特定されたタスクとの相関係数が所定の値以上のアドレスを関連アドレスと特定してもよいし、ステップS403で特定されたタスクとの相関係数が高い順に所定の個数のアドレスを関連アドレスとして特定してもよい。
【0100】
次に、操作ログ解析装置10の関連タスク特定部106は、ステップS404で特定した関連タスクを示す関連タスク情報と、上記のステップS404で特定された関連アドレスを示す関連アドレス情報とを端末20に送信する(ステップS406)。なお、関連アドレス情報は、アドレス情報と同様に、クエリパラメータが削除され、かつ、スラッシュで区切られた文字列単位に分解されたアドレスが含まれる。
【0101】
端末20の表示制御部201は、関連タスク情報及び関連アドレス情報を受信すると、この関連タスク情報により示される関連タスクを次に実行すべきタスク(又は、次に実行すべきタスクの候補)として表示(提案)すると共に、この関連アドレス情報により示される関連アドレスを現在実行しているタスクに関連するコンテンツのアドレスとして表示(提案)する(ステップS407)。これにより、当該端末20のユーザは、現在実行しているタスクの次に実行すべきタスクや現在実行しているタスクに関連するコンテンツを表示するためのアドレスを知ることができる。
【0102】
なお、上記のステップS407では、関連アドレス情報により示される関連アドレスをユーザに提案したが、これに限られず、例えば、当該関連アドレスにより表示されるコンテンツを端末20に自動的に表示してもよい。
【0103】
以上のように、実施例2における操作ログ解析装置10は、各端末20での操作ログ情報をリアルタイムに取得することで、この操作ログ情報が表す操作で実行されているタスクの関連アドレスも特定することができる。これにより、実施例2における操作ログ解析装置10は、各端末20のユーザに対して、現在実行しているタスクに関連するコンテンツのアドレスを提案したり、このコンテンツを自動的に表示させたりすることが可能になる。
【0104】
[応用例]
次に、本実施形態に係る操作ログ解析システム1の応用例について説明する。応用例では、業務プロセスを構成するタスクの平均作業時間を算出することで、当該業務プロセスでボトルネックとなっているタスク(つまり、多くの時間が掛かっているタスク)を特定する場合について説明する。
【0105】
上述したように、実施例1における操作ログ解析装置10ではタスク間の相関係数を計算することができる。このため、
図15に示すように、互いに関連性のあるタスクをグルーピングすることが可能となる。
図15に示す例では、タスクA、タスクB及びタスクDが1つのグループにグルーピングされていると共に、タスクC及びタスクEが1つのグループにグルーピングされている。
【0106】
また、
図15に示すように、操作ログ情報から同一グループ内のタスク間の順序性を特定することで、同一グループのタスクで構成される業務プロセスを定義することができる。したがって、
図15に示すように、操作ログ情報から業務プロセスを構成する各タスクの平均作業時間を算出することで、当該業務プロセスでボトルネックとなっているタスクを特定することが可能となる。
図15に示す例では、タスクAとタスクBとタスクDとで構成される業務プロセスにおいて、タスクBが他のタスク(タスクA及びタスクD)よりも多くの時間を要しており、ボトルネックとなっている。
【0107】
このようなボトルネックとなっているタスクを特定して、企業の管理者等のユーザ等に対して情報として提供することで、当該ユーザは、業務プロセスの改善等を図ることが可能となる。なお、同一グループ内のタスク間に順序性がない場合もある。
図15に示す例では、タスクCとタスクEとの間には順序性がない。
【0108】
なお、応用例では、主に、実施例1との相違点について説明し、実施例1と同様の構成要素についてはその説明を省略する。
【0109】
<機能構成>
まず、応用例における操作ログ解析装置10及び端末20の機能構成について、
図16を参照しながら説明する。
図16は、応用例における操作ログ解析装置10及び端末20の機能構成の一例を示す図である。
【0110】
図16に示すように、応用例における操作ログ解析装置10は、実施例1で説明した機能構成に対して、業務プロセス定義部110と、作業時間算出部111とを更に有する。これら各部は、例えば、操作ログ解析装置10にインストールされた1以上のプログラムが、プロセッサに実行させる処理により実現される。
【0111】
業務プロセス定義部110は、相関計算部104により計算された相関係数を用いてタスクをグルーピングした上で、同一グループ内のタスクの順序性を特定することで、これのタスクで構成される業務プロセスを定義する。
【0112】
作業時間算出部111とは、業務プロセス定義部110により定義された業務プロセスを構成する各タスクの平均作業時間を算出する。
【0113】
<処理の詳細>
以降では、応用例における操作ログ解析システム1の処理の詳細について説明する。応用例における操作ログ解析システム1は、1以上の端末20の操作ログ情報を操作ログ解析装置10がバッチ的に収集して業務プロセスの定義とタスクの平均作業時間の算出とを行う業務プロセス解析処理を実行する。
【0114】
≪業務プロセス解析処理≫
応用例における業務プロセス解析処理について、
図17を参照しながら説明する。
図17は、応用例における業務プロセス解析処理の一例を示すシーケンス図である。
【0115】
図17のステップS501~ステップS505は、
図3のステップS101~ステップS105とそれぞれ同様であるため、その説明を省略する。
【0116】
ステップS105に続いて、操作ログ解析装置10の業務プロセス定義部110は、ステップS505で計算された相関係数を用いて、ステップS504で定義されたタスクをグルーピングする(ステップS506)。業務プロセス定義部110は、例えば、相関係数が所定の閾値以上のタスク同士(つまり、関連性の高いタスク同士)を同一のグループにグルーピングすればよい。
【0117】
次に、操作ログ解析装置10の業務プロセス定義部110は、記憶部107に記憶されている操作ログ情報を用いて、同一グループ内のタスクの順序性を特定する。そして、業務プロセス定義部110は、同一グループ内の各タスクで順序性が特定された場合、当該グループ内で順序付けられたタスクを1つの業務プロセスとして定義する(ステップS507)。なお、同一グループ内で順序性が特定できないタスクが存在する場合、当該グループには業務プロセスが定義されない。
【0118】
ここで、業務プロセス定義部110は、例えば、2つのタスクのそれぞれに対応する操作ログ情報に順序性があるか否かを判定することで、これら2つのタスクの順序性を特定すればよい。具体的には、例えば、タスクAとタスクBとの間の順序性を特定する場合、業務プロセス定義部110は、ステップS504でタスクAと定義されたクラスタに分類された操作ログ情報Aと、ステップS506でタスクBと定義されたクラスタに分類された操作ログ情報Bとの間に順序性があるか否かを判定すればよい。このとき、例えば、同一ユーザの操作ログ情報A及び操作ログ情報Bについて、操作ログ情報Aの後に操作ログ情報Bが出現する場合は、操作ログ情報Aと操作ログ情報Bとの間には「操作ログ情報A→操作ログ情報B」という順序性があると判定され、業務プロセス定義部110は、タスクAとタスクBとの間の順序性を「タスクA→タスクB」と特定する。一方で、例えば、同一ユーザの操作ログ情報A及び操作ログ情報Bについて、操作ログ情報Bの後に操作ログ情報Aが出現する場合は、操作ログ情報Aと操作ログ情報Bとの間には「操作ログ情報B→操作ログ情報A」という順序性があると判定され、業務プロセス定義部110は、タスクAとタスクBとの間の順序性を「タスクB→タスクA」と特定する。
【0119】
これに対して、操作ログ情報Aと操作ログ情報Bとの間に順序性がない場合、業務プロセス定義部110は、タスクAとタスクBとの間には順序性はないと特定する。
【0120】
同一グループ内の各タスクの順序性が特定され、これらの各タスクが順序付けられることで業務プロセスが定義される。
【0121】
次に、操作ログ解析装置10の業務プロセス定義部110は、記憶部107に記憶されている操作ログ情報を用いて、上記のステップS507で定義された業務プロセス毎に、当該業務プロセスを構成する各タスクの平均作業時間を算出する(ステップS508)。業務プロセス定義部110は、業務プロセスを構成するタスク毎に、当該タスクの操作ログ情報の「Datetime」に設定されている日時と、当該操作ログ情報と同一ユーザの次の操作ログ情報の「Datetime」に設定されている日時までの差分の平均を算出することで、当該タスクの平均作業時間を算出すればよい。
【0122】
そして、操作ログ解析装置10の業務プロセス定義部110は、上記のステップS507で定義された業務プロセスと、上記のステップS508で算出されたタスク毎の平均作業時間とが含まれる情報を業務プロセス情報として端末20に送信する(ステップS509)。これにより、端末20では、当該業務プロセス情報を用いて、この業務プロセス情報が示す業務プロセスを構成する各タスク及びその順序性(実行順)と、これら各タスクの平均作業時間とを表示等させることができる。
【0123】
以上のように、応用例における操作ログ解析装置10は、各端末20から収集した操作ログ情報を用いてタスク及び業務プロセスを定義した上で、業務プロセスを構成するタスクの順序性(実行順)とその平均作業時間とを特定することができる。これにより、端末20のユーザは、業務プロセスを構成する各タスクの平均作業時間からボトルネックとなっているタスクを特定し、当該業務プロセスの改善等を図ることが可能となる。
【0124】
本発明は、具体的に開示された上記の実施形態に限定されるものではなく、特許請求の範囲から逸脱することなく、種々の変形や変更等が可能である。
【符号の説明】
【0125】
1 操作ログ解析システム
10 操作ログ解析装置
20 端末
101 ログ取得部
102 前処理部
103 タスク定義部
104 相関計算部
105 タスク特定部
106 関連タスク特定部
107 記憶部
201 表示制御部
202 操作受付部
203 ログ作成部
204 ログ送信部
205 記憶部