IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ 株式会社JVCケンウッドの特許一覧

特許7110915情報処理装置、情報処理方法及びプログラム
<>
  • 特許-情報処理装置、情報処理方法及びプログラム 図1
  • 特許-情報処理装置、情報処理方法及びプログラム 図2
  • 特許-情報処理装置、情報処理方法及びプログラム 図3
  • 特許-情報処理装置、情報処理方法及びプログラム 図4
  • 特許-情報処理装置、情報処理方法及びプログラム 図5
  • 特許-情報処理装置、情報処理方法及びプログラム 図6
  • 特許-情報処理装置、情報処理方法及びプログラム 図7
  • 特許-情報処理装置、情報処理方法及びプログラム 図8
  • 特許-情報処理装置、情報処理方法及びプログラム 図9
  • 特許-情報処理装置、情報処理方法及びプログラム 図10
  • 特許-情報処理装置、情報処理方法及びプログラム 図11
  • 特許-情報処理装置、情報処理方法及びプログラム 図12
  • 特許-情報処理装置、情報処理方法及びプログラム 図13
  • 特許-情報処理装置、情報処理方法及びプログラム 図14
  • 特許-情報処理装置、情報処理方法及びプログラム 図15
  • 特許-情報処理装置、情報処理方法及びプログラム 図16
  • 特許-情報処理装置、情報処理方法及びプログラム 図17
  • 特許-情報処理装置、情報処理方法及びプログラム 図18
  • 特許-情報処理装置、情報処理方法及びプログラム 図19
  • 特許-情報処理装置、情報処理方法及びプログラム 図20
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2022-07-25
(45)【発行日】2022-08-02
(54)【発明の名称】情報処理装置、情報処理方法及びプログラム
(51)【国際特許分類】
   G06F 3/0484 20220101AFI20220726BHJP
   G06F 3/0481 20220101ALI20220726BHJP
【FI】
G06F3/0484
G06F3/0481
【請求項の数】 9
(21)【出願番号】P 2018205364
(22)【出願日】2018-10-31
(65)【公開番号】P2020071673
(43)【公開日】2020-05-07
【審査請求日】2020-12-25
(73)【特許権者】
【識別番号】308036402
【氏名又は名称】株式会社JVCケンウッド
(74)【代理人】
【識別番号】110002147
【氏名又は名称】特許業務法人酒井国際特許事務所
(72)【発明者】
【氏名】片見 憲次
(72)【発明者】
【氏名】宍戸 一郎
(72)【発明者】
【氏名】萬年 礼一
【審査官】星野 裕
(56)【参考文献】
【文献】国際公開第2011/055801(WO,A1)
【文献】特開2003-177847(JP,A)
【文献】特開2003-345487(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
G06F 3/048
(57)【特許請求の範囲】
【請求項1】
端末装置においてユーザの操作によって作成された操作履歴を取得する操作履歴取得部と、
前記取得された操作履歴に基づき、前記ユーザの操作により実行された機能を、操作対象機能として特定する機能特定部と、
前記機能特定部が特定した操作対象機能の情報に基づき、前記取得された操作履歴の中から所定の操作履歴を抽出する操作抽出部と、
前記操作抽出部が抽出した操作履歴について、操作の効率性の高さを示す指標を算出する指標算出部と、
前記指標に基づき、所定の効率性を有する操作履歴を選択する操作選択部と、
前記操作選択部に選択された操作履歴に基づくガイド情報を出力する出力制御部と、
を備え
前記操作履歴取得部が取得する操作履歴は、ユーザの操作による操作結果が記憶されたメモリ空間のアドレス情報を含み、
前記機能特定部は、前記メモリ空間のアドレスと機能との対応関係を示す機能アドレス情報を参照し、前記取得された操作履歴に含まれるメモリ空間のアドレス情報に対応する機能を、前記操作対象機能であると特定する、
ことを特徴とする情報処理装置。
【請求項2】
前記操作抽出部は、前記操作対象機能が同一である複数の操作履歴を抽出し、
前記指標算出部は、前記抽出された複数の操作履歴それぞれについて、前記指標を算出し、
前記操作選択部は、前記指標が算出された操作履歴の中から、相対的に前記指標が高い操作履歴を選択する、
ことを特徴とする請求項に記載の情報処理装置。
【請求項3】
前記操作選択部は、前記出力制御部が前記ガイド情報を出力する先の端末装置を使用するユーザの操作履歴に係る前記指標に基づいて、前記所定の効率性を規定するための前記指標に関する条件を設定し、前記指標が前記設定した条件に合致する操作履歴を選択する、
ことを特徴とする請求項に記載の情報処理装置。
【請求項4】
前記操作履歴取得部は、複数のユーザに関する操作履歴を取得し、
前記出力制御部は、前記操作選択部で選択された操作履歴に係るユーザと、前記ガイド情報を出力する先の端末装置を使用するユーザとが一致するか否かに応じて、異なる種類のガイド情報を出力する、
ことを特徴とする請求項1から請求項のいずれか1項に記載の情報処理装置。
【請求項5】
前記操作履歴は、端末装置においてユーザが入力した操作内容を示す操作入力情報を含み、
前記指標算出部は、前記操作抽出部が抽出した操作履歴の操作入力情報に基づき、前記指標を算出し、
前記出力制御部は、前記選択された操作履歴に含まれる操作入力情報を前記ガイド情報として出力する、
ことを特徴とする請求項1から請求項のいずれか1項に記載の情報処理装置。
【請求項6】
前記指標算出部は、前記操作入力情報として、前記ユーザの操作時間と、前記ユーザによる前記端末装置の入力部への入力回数と、前記端末装置のポインタの移動量との少なくとも1つに基づき、前記指標を算出する、
ことを特徴とする請求項に記載の情報処理装置。
【請求項7】
前記指標算出部は、前記ユーザの操作による操作結果が記憶されるまでに要した前記ユーザによる操作の度合いを示す操作量と、前記操作結果が記憶されるまでに要した前記端末装置の消費電力量との、少なくともいずれかを、前記指標として算出する、
ことを特徴とする請求項1から請求項のいずれか1項に記載の情報処理装置。
【請求項8】
端末装置においてユーザの操作によって作成された操作履歴を取得する操作履歴取得ステップと、
前記取得された操作履歴に基づき、前記ユーザの操作により実行された機能を、操作対象機能として特定する機能特定ステップと、
前記機能特定ステップで特定した操作対象機能の情報に基づき、前記取得された操作履歴の中から所定の操作履歴を抽出する操作抽出ステップと、
前記操作抽出ステップで抽出した操作履歴について、操作の効率性の高さを示す指標を算出する指標算出ステップと、
前記指標に基づき、所定の効率性を有する操作履歴を選択する操作選択ステップと、
前記操作選択ステップで選択された操作履歴に基づくガイド情報を出力する出力制御ステップと、
を含み、
前記操作履歴取得ステップで取得される操作履歴は、ユーザの操作による操作結果が記憶されたメモリ空間のアドレス情報を含み、
前記機能特定ステップにおいては、前記メモリ空間のアドレスと機能との対応関係を示す機能アドレス情報を参照し、前記取得された操作履歴に含まれるメモリ空間のアドレス情報に対応する機能を、前記操作対象機能であると特定する、
ことを特徴とする、情報処理方法。
【請求項9】
端末装置においてユーザの操作によって作成された操作履歴を取得する操作履歴取得ステップと、
前記取得された操作履歴に基づき、前記ユーザの操作により実行された機能を、操作対象機能として特定する機能特定ステップと、
前記機能特定ステップで特定した操作対象機能の情報に基づき、前記取得された操作履歴の中から所定の操作履歴を抽出する操作抽出ステップと、
前記操作抽出ステップで抽出した操作履歴について、操作の効率性の高さを示す指標を算出する指標算出ステップと、
前記指標に基づき、所定の効率性を有する操作履歴を選択する操作選択ステップと、
前記操作選択ステップで選択された操作履歴に基づくガイド情報を出力する出力制御ステップと、
をコンピュータに実行させるプログラムであって、
前記操作履歴取得ステップで取得される操作履歴は、ユーザの操作による操作結果が記憶されたメモリ空間のアドレス情報を含み、
前記機能特定ステップにおいては、前記メモリ空間のアドレスと機能との対応関係を示す機能アドレス情報を参照し、前記取得された操作履歴に含まれるメモリ空間のアドレス情報に対応する機能を、前記操作対象機能であると特定する、
ことを特徴とするプログラム
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、情報処理装置、情報処理システム、情報処理方法及びプログラムに関する。
【背景技術】
【0002】
ユーザによる機器の操作を補助するために、例えば特許文献1には、ユーザの操作を監視して、監視した操作内容に基づき、ユーザに最適な操作補助を行う旨が記載されている。特許文献1には、2人のユーザの操作履歴が類似していた場合に、一方のユーザの操作履歴に含まれておらず、他方のユーザの操作履歴に含まれている機能を、未知の機能として提示する旨、及び、使用歴の浅いユーザに対して、他のユーザの操作履歴における使用頻度の高い機能を提示する旨が記載されている。
【先行技術文献】
【特許文献】
【0003】
【文献】特開2003-34587号公報
【発明の概要】
【発明が解決しようとする課題】
【0004】
ユーザによる機器操作は、効率性が高いことが求められる場合がある。特許文献1には、ユーザの操作を補助する情報を提示する旨が記載されているが、特許文献1の方法では、操作の効率性が高くなるように補助することは考慮されていない。従って、特許文献1の方法により提供される情報を用いたとしても、ユーザ操作の効率性は必ずしも高くはならない。このため、機器に対するユーザの操作の効率性向上を補助することが求められている。
【0005】
本発明は、上記課題を鑑み、ユーザ操作の効率性向上を補助することができる情報処理装置、情報処理方法及びプログラムを提供することを目的とする。
【課題を解決するための手段】
【0006】
本発明の一態様にかかる情報処理装置は、端末装置においてユーザの操作によって作成された操作履歴を取得する操作履歴取得部と、前記取得された操作履歴に基づき、前記ユーザの操作により実行された機能を、操作対象機能として特定する機能特定部と、前記機能特定部が特定した操作対象機能の情報に基づき、前記取得された操作履歴の中から所定の操作履歴を抽出する操作抽出部と、前記操作抽出部が抽出した操作履歴について、操作の効率性の高さを示す指標を算出する指標算出部と、前記指標に基づき、所定の効率性を有する操作履歴を選択する操作選択部と、前記操作選択部に選択された操作履歴に基づくガイド情報を出力する出力制御部と、を備える、ことを特徴とする。
【0007】
本発明の一態様にかかる情報処理方法は、端末装置においてユーザの操作によって作成された操作履歴を取得する操作履歴取得ステップと、前記取得された操作履歴に基づき、前記ユーザの操作により実行された機能を、操作対象機能として特定する機能特定ステップと、前記機能特定ステップで特定した操作対象機能の情報に基づき、前記取得された操作履歴の中から所定の操作履歴を抽出する操作抽出ステップと、前記操作抽出ステップで抽出した操作履歴について、操作の効率性の高さを示す指標を算出する指標算出ステップと、前記指標に基づき、所定の効率性を有する操作履歴を選択する操作選択ステップと、前記操作選択ステップで選択された操作履歴に基づくガイド情報を出力する出力制御ステップと、を含む、ことを特徴とする。
【0008】
本発明の一態様にかかるプログラムは、端末装置においてユーザの操作によって作成された操作履歴を取得する操作履歴取得ステップと、前記取得された操作履歴に基づき、前記ユーザの操作により実行された機能を、操作対象機能として特定する機能特定ステップと、前記機能特定ステップで特定した操作対象機能の情報に基づき、前記取得された操作履歴の中から所定の操作履歴を抽出する操作抽出ステップと、前記操作抽出ステップで抽出した操作履歴について、操作の効率性の高さを示す指標を算出する指標算出ステップと、前記指標に基づき、所定の効率性を有する操作履歴を選択する操作選択ステップと、前記操作選択ステップで選択された操作履歴に基づくガイド情報を出力する出力制御ステップと、をコンピュータに実行させる。
【発明の効果】
【0009】
本発明によれば、ユーザ操作の効率性向上を補助することができる。
【図面の簡単な説明】
【0010】
図1図1は、第1実施形態に係る情報処理システムのブロック図である。
図2図2は、第1実施形態に係る端末装置のブロック図である。
図3図3は、本実施形態に係るメモリ空間の模式的な概念図である。
図4図4は、端末装置が記憶する操作履歴テーブルの一例を示す図である。
図5図5は、第1実施形態に係る端末装置の処理フローを示すフローチャートである。
図6図6は、第1実施形態に係る情報処理装置のブロック図である。
図7図7は、機能アドレス情報テーブルの一例を示す図である。
図8図8は、情報処理装置が記憶する操作履歴テーブルの一例を示す図である。
図9図9は、機能の情報が付与された後の、情報処理装置が記憶する操作履歴テーブルの一例を示す図である。
図10図10は、指標の算出結果の一例を示す図である。
図11図11は、第1実施形態に係る情報処理装置の処理フローを説明するフローチャートである。
図12図12は、図11のステップS40の処理フローの詳細を示すフローチャートである。
図13図13は、第1実施形態に係る端末装置の情報の表示フローを説明するフローチャートである。
図14図14は、ステップS60で作成された啓蒙ガイド情報を表示している画面の例を示す図である。
図15図15は、ステップS60で作成された啓蒙ガイド情報を表示している画面の例を示す図である。
図16図16は、ステップS58で作成された称賛ガイド情報を表示している画面の例を示す図である。
図17図17は、ステップS58で作成された称賛ガイド情報を表示している画面の例を示す図である。
図18図18は、第2実施形態に係る電力換算テーブルの一例を示す図である。
図19図19は、第3実施形態に係る端末装置のブロック図である。
図20図20は、第3実施形態に係る端末装置の処理フローを示すフローチャートである。
【0011】
以下に、本発明の実施形態を図面に基づいて詳細に説明する。なお、以下に説明する実施形態により本発明が限定されるものではない。
【0012】
(第1実施形態)
図1は、第1実施形態に係る情報処理システムのブロック図である。図1に示すように、第1実施形態に係る情報処理システム1は、複数の端末装置10と、サーバである情報処理装置12(操作効率評価装置)と、ネットワーク14とを有する。1つ以上の端末装置10は、ネットワーク14を介して、情報処理装置12に接続されており、ネットワーク14を介して、互いに通信、すなわち情報の送受信が可能となっている。それぞれの端末装置10は、同一のプログラムの動作が可能であり、そのプログラムが動作した際のユーザによる端末装置10の操作の情報、すなわち操作履歴が、端末装置10から情報処理装置12に送信される。情報処理装置12は、端末装置10から送信された操作履歴を記憶して、後述する処理を実行することで、ユーザの操作を効率性の観点から分析して、ユーザの端末装置10の操作を補助する。なお、複数の端末装置10と情報処理装置12とは、無線通信で接続されていてもよし、有線通信で接続されていてもよい。図1に示す例では、端末装置10は3つであるが、端末装置10の数はこれより多くても少なくてもよい。例えば、情報処理システム1においては、端末装置10が1つであってもよい。
【0013】
(端末装置)
図2は、第1実施形態に係る端末装置のブロック図である。端末装置10は、コンピュータであり、プログラムを実行する。端末装置10は、プログラムを実行している際に、ユーザの端末装置10への操作の情報である操作履歴を取得して、情報処理装置12に出力する。端末装置10が実行するプログラムは、本実施形態ではアプリケーションであるが、それに限られず、OS(Operating System)及びファームウェアなどであってもよい。図2に示すように、制御部20と、通信部22と、操作部24と、表示部26と、タイマ部28と、記憶部29とを有する。制御部20は、演算装置、すなわちCPU(Central Processing Unit)であり、端末装置10の全体を制御する。
【0014】
通信部22は、通信インターフェイスであり、制御部20の制御により、他の装置、例えば情報処理装置12と通信することで、データの送受信をするよう構成される。操作部24は、ユーザの操作(入力)を受け付ける入力部である。本実施形態において、操作部24は、キーボード30及びマウス32を有する。ただし、操作部24は、ユーザの操作を受け付けるものであれば、キーボード30及びマウス32などの入力装置に限らず、他のデバイスを用いてもよい。例えば、タッチパネルであってもよい。表示部26は、制御部20の制御により、情報を出力する出力部であり、ここでは、情報を表示するディスプレイである。なお、端末装置10は、情報を出力する出力部として、表示部26以外を備えていてもよく、例えば、情報を音声で出力するスピーカを備えていてもよい。タイマ部28は、現在時刻を取得する装置である。タイマ部28は、自身で現在時刻を算出するものであるが、外部機器より時刻情報を受信するものであってもよい。
【0015】
なお、ユーザは、プログラムが動作している端末装置10を操作する。以下、ユーザによる端末装置10の操作の内容、すなわちユーザがどのように操作部24を操作したかの情報を、操作内容と記載する。操作内容は、操作入力情報あるいは操作手順とも称される。また、制御部20は、ユーザの操作に応じて所定の処理を実行する。ユーザの操作によって制御部20が実行した処理の結果を、操作結果と記載する。操作結果は、操作出力情報とも称される。この操作結果は、操作内容に応じたものとなり、後述する記憶部29のメモリ空間36に記憶される。また、ユーザは、操作部24を操作して、プログラムを実行中の制御部20に所定の処理を実行させるが、ユーザの操作により実行された処理の種類を、以下、機能Fと記載する。すなわち、機能Fとは、ユーザ操作に応じてユーザに提供される機能であるが、ユーザ操作の目的であるともいえる。ユーザは、機能Fをプログラムに実行させるために、自身で決めた操作内容で操作を行う。制御部20は、その操作内容に応じた処理を実行した結果(操作結果)を、プログラムの状態に反映する。従って、同一の機能Fを実行する場合であっても、操作内容(操作手順)はユーザに応じて異なる場合がある。一例としては、文章を作成するプログラムにおいて、文字のフォントを設定する処理が、機能Fといえる。そして、フォントを設定するためにマウス32やキーボード30をどのように操作したかを示す情報が、操作内容と言え、設定されたフォントを示す情報が、操作結果といえる。所定のフォントを設定するための操作手順は、1種類のみではなく、複数種類存在することが多い。ただし、これは一例であり、例えば、無線通信機器の設定を行うためのプログラムにおいて、無線通信機器の特定の機能を使用できるように(アクティブ状態に)設定する処理を、機能Fということもできる。
【0016】
記憶部29は、各種情報を記憶するものであり、本実施形態では、プログラム記憶部34、メモリ空間36、及び操作履歴記憶部38を有する。プログラム記憶部34は、端末装置10が実行するプログラムを記憶する。プログラム記憶部34は、本実施形態では、外部記憶装置であり、例えばHDD(Hard Disk Drive)やSSD(Solid Disk Drive)などの不揮発性の記録媒体である。制御部20は、プログラム記憶部34からプログラムを読み出して、プログラムを立ち上げる。
【0017】
メモリ空間36は、制御部20が直接アクセス可能なメモリ、すなわち内部記憶装置で構成され、例えば半導体メモリで構成される。メモリ空間36は、アドレス空間と言い換えることもできる。メモリ空間36内には、プログラムの機能F毎にメモリ領域が割り当てられている。そして、機能Fについての情報が、割り当てられたメモリ領域に書き換え可能に記憶される。例えば、ある機能Fについての操作結果は、その機能Fが割り当てられたメモリ領域に、書き換え可能に記憶される。すなわち、制御部20は、メモリ空間36にアクセスして、メモリ空間36に記憶されている情報に基づき処理を実行し、メモリ空間36に処理結果を記憶させることで、プログラムの機能Fを実行する。なお、機能Fについての処理内容も、その機能Fが割り当てられたメモリ領域に記憶されてもよい。
【0018】
図3は、本実施形態に係るメモリ空間の模式的な概念図である。図3では、メモリ空間36が、互いにアドレスが異なる複数のメモリ領域Mを有している例を示している。図3の例では、メモリ領域Mとして、メモリ領域M1からメモリ領域M25が示されている。図3の例では、メモリ領域M1からメモリ領域M5までが、1つの機能Fである、機能FAに割り当てられる。従って、機能FAの操作結果は、メモリ領域M1からM5の少なくとも1つに記憶される。また、図3の例では、メモリ領域M6が、機能FBに割り当てられ、メモリ領域M11からメモリ領域M15と、メモリ領域M21からメモリ領域M25までが、機能FCに割り当てられ、メモリ領域M19及びメモリ領域M20が、機能FDに割り当てられている。このように、メモリ空間36は、どの機能Fがどのアドレスのメモリ領域を使用するかが、予め定められている。言い換えれば、制御部20がプログラム実行時に使用するメモリ空間36は、所定のアドレスが所定の機能Fに対応しているといえる。ただし、図3における機能Fとメモリ領域Mとの対応関係は、あくまでも一例である。すなわち、機能Fに対応するメモリ領域Mが定まっていればよく、1つの機能Fに割り当てられるメモリ領域Mの数、メモリ領域Mの大きさ、メモリ領域Mのアドレスなどは、任意である。
【0019】
図2に戻り、操作履歴記憶部38は、ユーザによる端末装置10の操作の履歴である操作履歴を記憶するメモリである。操作履歴は、操作内容(操作入力情報)と操作結果(操作出力情報)とを含む。制御部20は、ユーザの操作部24への操作の内容、すなわち操作内容を検出して、検出した操作内容を、操作履歴記憶部38に記憶させる。また、制御部20は、メモリ領域Mの変化を検出して、変化があった場合には、メモリ領域Mの情報(操作結果の情報)を、操作履歴記憶部38に記憶させる。操作履歴記憶部38に記憶させる操作結果の情報は、その操作結果を記憶したメモリ領域Mのアドレスと、そのアドレスに記憶された値(操作結果を示す値)と、を含む。なお、操作履歴記憶部38は、例えば外部記憶装置であるプログラム記憶部34と、ハードウェアとして一体であってもよいが、プログラム記憶部34と別体の記憶装置であってもよい。
【0020】
図4は、端末装置が記憶する操作履歴テーブルの一例を示す図である。例えば、制御部20は、操作履歴を、操作履歴記憶部38の中の操作履歴テーブルに記憶させる。なお、図4の操作履歴テーブルの内容は一例である。図4に示すように、操作履歴テーブルは、操作時刻と、操作対象と、操作内容または操作結果とを関連付けて記憶している。ここで、操作時刻は、操作に係る時刻である。例えば、1つの操作が開始された時刻、1つの操作が終了した時刻、操作結果が記憶された時刻などである。図4に示すように、操作時刻は、日付と時刻を組み合せた「日時」であってもよい。本実施形態では、「日時」である場合も含めて、「時刻」という用語を用いる。また、操作対象は、その操作に係るデバイスを示している。操作履歴には、複数の操作の履歴が含まれる。以下において、1つの操作に対応する操作履歴であることを明確にしたい場合に、単位操作履歴OPと記載する。単位操作履歴は、1つの操作内容又は1つの操作結果の履歴である。操作履歴テーブルに、操作履歴(単位操作履歴OP)を識別する識別子(例えばOP1などの記号)を、操作内容などと関連付けて記憶させてもよいし、記憶させなくてもよい。
【0021】
図4の例では、単位操作履歴OP1は、表示部26にウィンドウW1を表示させた操作内容である。なお、単位操作履歴OP1は、それより前にユーザがウィンドウW1を開くよう操作を行うことで、制御部20が表示部26を制御することにより行われたものであるが、図4においては単位操作履歴OP1より前の操作履歴を省略している。従って、単位操作履歴OP1は、ユーザが表示部26を操作対象として、ウィンドウW1を表示させるという操作内容を実行した操作履歴ということもできる。単位操作履歴OP2は、単位操作履歴OP1の直後に行われた操作内容であり、ユーザが、マウス32を操作対象として、マウス32を移動量80だけスクロールした操作(表示部26に表示されるポインタを移動量80だけ移動させた操作)である。移動量80とは、例えば表示部26のピクセル80個分、スクロールしたことを意味しているが、それに限られず、例えば、マウス32の画面上の移動距離をセンチメートルやインチで表した数値であってもよい。また、マウス32の机上の移動距離をセンチメートルやインチで表した数値であってもよい。すなわち、マウス32の移動量を示す尺度として、任意の尺度を用いることができる。単位操作履歴OP3は、単位操作履歴OP2の直後に行われた操作内容であり、ユーザが、マウス32の左側のボタンを一度クリックした、すなわち左シングルクリックしたという操作である。単位操作履歴OP4は、単位操作履歴OP3の直後に行われた操作内容であり、ユーザが、キーボード30を8回打鍵した(打鍵数8)という操作である。なお、図4には示していないが、打鍵されたキーボード30のキー名称(キーボード30が備える複数のキーのうちどのキーが押されたかの情報)を、操作履歴テーブルに記録してもよい。単位操作履歴OP5は、単位操作履歴OP4の直後に行われた操作内容であり、ユーザが、マウス32を移動量50だけスクロールした操作である。単位操作履歴OP6は、単位操作履歴OP5の直後に行われた操作内容であり、ユーザが、マウス32を左シングルクリックした操作である。また、単位操作履歴OP7は、単位操作履歴OP6の直後にメモリ空間36に記憶された操作結果の情報であり、単位操作履歴OP1から単位操作履歴OP6の操作内容に応じて、制御部20が決定した操作結果の情報である。操作結果が記録される場合、操作履歴テーブルの操作対象フィールドは、「記憶部」になる。単位操作履歴OP7は、操作結果が記憶されたメモリ領域MのアドレスがA00100であり、そのアドレスに記憶された操作結果を示す値が、0x55であることを示している。このアドレスは、例えば、図3におけるメモリ領域M1に相当する。
【0022】
このように、制御部20は、ユーザによる操作内容に基づきプログラムを実行して操作結果をメモリ空間36に記憶させる。そして、制御部20は、操作内容の情報と操作結果の情報とを、操作履歴として操作履歴記憶部38に記憶させる。制御部20は、操作履歴に、その操作履歴がどのユーザ又はどの端末装置10によるものかを示すID(Identification)情報を関連付けて、通信部22を介して、情報処理装置12に送信する。なお、ID情報は、ユーザのID(ユーザID)であってもよいし、端末装置10のID(端末ID)であってもよい。例えば、図1において端末装置10が1つしかなく、複数のユーザが1つの端末装置10に交互にログインしてプログラムを使用する環境においては、ユーザIDを使用する。また例えば、端末装置10が携帯電話やスマートフォン等であり、1つの端末装置10を使用するユーザが1人に限定される環境においては、端末IDを使用してもよい。ユーザIDと端末IDはどちらも、操作に係る主体(操作主体)を示すIDであるので、これらを総称して、「操作主体ID」、あるいは「操作主体識別子」という。また、操作履歴が情報処理装置12に送信されるタイミングは、特定のアドレスのメモリ領域Mのデータ(値)が変化した際に、新しい単位操作履歴OPが追加されたり更新されたりした際であってもよいし、所定の時間毎であってもよい。
【0023】
端末装置10は、以上のような構成となっている。以下、端末装置10による操作履歴の取得のフローを、フローチャートで説明する。図5は、第1実施形態に係る端末装置の処理フローを示すフローチャートである。図5に示すように、制御部20は、ユーザからの操作部24への所定の操作(プログラムを立ち上げるための操作)を検出した場合に、プログラムを開始する(ステップS10)。プログラムを開始したら、制御部20は、メモリ空間36の監視を開始する(ステップS12)。具体的には、制御部20は、メモリ空間36内の特定のアドレスが割り当てられたメモリ領域Mの値が変化したかを監視する。特定のアドレスのメモリ領域Mとは、プログラムの機能Fが割り当てられているアドレスのメモリ領域Mである。そして、制御部20は、プログラムの実行によって、表示部26にウィンドウが表示されたかを判断する(ステップS14)。ここでのウィンドウは、操作を行うために開かれるウィンドウであり、「アクティブウィンドウ」とも称される。ウィンドウが表示されなかった場合(ステップS14;No)、後述のステップS18に進む。ウィンドウが表示された場合(ステップS14;Yes)、制御部20は、アクティブウィンドウ名、すなわち表示されてユーザが操作を行う対象となっているウィンドウの名称と、タイマ部28から読み出したウィンドウが表示された時刻とを、単位操作履歴OPとして操作履歴記憶部38に記憶する(ステップS16)。
【0024】
そして、制御部20は、ユーザの操作部24への操作があったかを検出する(ステップS18)。制御部20は、ユーザの操作が検出されなかった場合(ステップS18;No)、後述のステップS22に進む。制御部20は、ユーザの操作が検出された場合(ステップS18;Yes)、ユーザによる操作内容と、タイマ部28から読み出した操作が行われた時刻とを、単位操作履歴OPとして操作履歴記憶部38に記憶する(ステップS20)。そして、制御部20は、機能Fに対応するメモリ空間36が変化したかを判断する(ステップS22)。すなわち、制御部20は、監視していた、機能Fに対応する特定のアドレスのメモリ領域Mの値(データ)が変化したか否かを判定する(ステップS22)。メモリ空間36が変化しなかった場合(ステップS22;No)、後述のステップS28に進む。メモリ空間36が変化した場合(ステップS22;Yes)、制御部20は、メモリ空間36の変化パターン、すなわち操作結果の情報と、タイマ部28から読み出したメモリ空間36が変化した際の時刻とを、単位操作履歴OPとして操作履歴記憶部38に記憶する(ステップS24)。すなわち、制御部20は、特定のアドレスのメモリ領域Mの値が変化した場合、そのメモリ領域Mのアドレス及びそのメモリ領域の変化後の値と、そのメモリ領域Mの値が変化した際の時刻とを、単位操作履歴OPとして操作履歴記憶部38に記憶する。なお、メモリ空間36の変化パターン(操作結果の情報)は、1回の操作で複数のアドレスのメモリ領域Mに変化があった場合、複数のアドレスとそれらの値とを1件のデータとして記録してもよいし、アドレス毎にそれぞれ別のデータとして複数件の単位操作履歴OPとして記録してもよい。また、制御部20は、メモリ領域の変化後の値の代わりに、メモリ領域の変化前の値、又は変化前と変化後の差分値などを、操作結果を示す単位操作履歴OPとして記憶させてもよい。
【0025】
その後、制御部20は、複数の単位操作履歴OPのそれぞれに操作に係る主体を識別する操作主体ID(ユーザID又は端末ID)を関連付けて、情報処理装置12に送信する(ステップS26)。そして、制御部20は、プログラムを終了するかを判断し(ステップS28)、終了しない場合(ステップS28;No)、ステップS14に戻り処理を続け、終了する場合(ステップS28;Yes)、メモリ空間36の監視を終了して(ステップS29)、本処理を終了する。なお、図5に説明した処理は、立ち上げたプログラムとは別のプログラム、すなわちモニタープログラム及び操作監視プログラムなどで実行してもよいし、立ち上げたプログラム自体で実行してもよい。
【0026】
(情報処理装置)
次に、情報処理装置12について説明する。図6は、第1実施形態に係る情報処理装置のブロック図である。情報処理装置12は、コンピュータを用いて構成されており、いわゆるサーバである。なお、情報処理装置12を複数のコンピュータを用いて構成してもよい。その場合、図6の一部の機能ブロックをあるコンピュータが処理し、その他の機能ブロックを他のコンピュータが処理する、といったように、機能別の分散処理を行ってもよい。あるいは、同一の機能ブロックを複数のコンピュータで処理する分散処理を行ってもよい。情報処理装置12は、端末装置10から操作履歴を受信して、ユーザの操作の効率性を評価する。なお、本実施形態において、情報処理装置12は、端末装置10とは別の装置であるが、端末装置10が情報処理装置12を兼ねてもよく、言い換えれば、端末装置10と情報処理装置12とが同一の装置であってよい。すなわち、情報処理装置12が、ユーザが操作を行うプログラムを実行して、ユーザの操作履歴を記憶するとともに、情報処理装置12とは別の装置(他の端末装置10)の操作履歴を取得して、後述の処理、すなわちユーザの操作の効率性の評価を実行してもよい。また、端末装置10が、他の端末装置10の操作履歴を取得して、ユーザの操作の効率性の評価を実行してもよい。
【0027】
図6に示すように、情報処理装置12は、制御部40と、通信部42と、表示部44と、記憶部46とを有する。制御部40は、演算装置、すなわちCPU(Central Processing Unit)であり、情報処理装置12の全体を制御する。制御部40の詳細については後述する。
【0028】
通信部42は、通信インターフェイスであり、制御部40の制御により、他の装置、例えば端末装置10と通信することで、データの送受信をするよう構成される。表示部44は、制御部40の制御により、情報を出力する出力部であり、ここでは、情報を表示するディスプレイである。なお、情報処理装置12は、情報を表示する出力部として、表示部44以外を備えていてもよく、例えば、情報を音声で出力するスピーカを備えていてもよい。なお、情報処理装置12は、端末装置10と同様の操作部を備えていてもよい。また、表示部44を省略し、情報処理装置12とは別の装置(表示装置、他のコンピュータの表示部など)に情報処理装置12の情報を出力してもよい。
【0029】
記憶部46は、各種情報を記憶するものであり、本実施形態では、プログラム記憶部50と、操作履歴記憶部52と、機能アドレス情報記憶部54とを有する。プログラム記憶部50は、情報処理装置12が実行するプログラムを記憶する。情報処理装置12が実行するプログラムとは、ここでは、端末装置10からの操作履歴を取得して各種処理を実行するプログラムである。プログラム記憶部50は、本実施形態では、外部記憶装置であり、例えばHDDやSSDなどの不揮発性の記録媒体である。
【0030】
操作履歴記憶部52は、端末装置10から送信された操作履歴を記憶する。操作履歴記憶部38は、例えば外部記憶装置であるプログラム記憶部50と、ハードウェアとして一体であってもよいが、プログラム記憶部50と別体の記憶装置であってもよい。
【0031】
機能アドレス情報記憶部54は、機能アドレス情報を記憶する。機能アドレス情報は、端末装置10のプログラムの機能Fと、端末装置10のメモリ空間36のアドレス(メモリ領域M)との対応関係を示す情報である。具体的には、機能アドレス情報記憶部54は、機能アドレス情報テーブルを記憶する。図7は、機能アドレス情報テーブルの一例を示す図である。本図に示すように、機能アドレス情報テーブルは、開始アドレスと、終了アドレスと、機能(機能F)とを関連付けて記憶する。図7に示す例では、端末装置10のプログラムの機能F1が、メモリ空間36のアドレスA00000からA000FFまでに割り当てられており、機能F2が、メモリ空間36のアドレスA00100からA0011Fまでに割り当てられており、機能F3が、メモリ空間36のアドレスA00200からA003FFまでに割り当てられており、機能F4が、メモリ空間36のアドレスA00400からA004FFまでと、アドレスA00600からA006FFまでとに割り当てられており、機能F5が、メモリ空間36のアドレスA00500からA0057Fまでに割り当てられている。機能アドレス情報記憶部54は、このような機能アドレス情報を予め記憶している。なお、機能アドレス情報記憶部54は、例えば外部記憶装置であるプログラム記憶部50と、ハードウェアとして一体であってもよいが、プログラム記憶部50と別体の記憶装置であってもよい。
【0032】
図6に戻り、情報処理装置12の説明を続ける。制御部40は、操作履歴取得部60と、機能特定部62と、操作抽出部64と、指標算出部66と、操作選択部68と、出力制御部70とを有する。操作履歴取得部60と、機能特定部62と、操作抽出部64と、指標算出部66と、操作選択部68と、出力制御部70とは、制御部40がプログラム記憶部50からプログラムを読み出すことで実現されて、それぞれの処理を実行する。
【0033】
操作履歴取得部60は、通信部42を介して、端末装置10から、端末装置10の操作履歴記憶部38に記憶された操作履歴を取得する。操作履歴取得部60は、複数の端末装置10のそれぞれから、ユーザの操作によって作成された操作履歴を取得する。すなわち、操作履歴取得部60は、操作内容と、操作結果の情報(操作結果を記憶したメモリ領域Mのアドレスと、そのアドレスに記憶された値)と、操作時刻の情報と、その操作履歴の操作に係るユーザまたは端末装置10を示す操作主体IDの情報とを、操作履歴として取得する。操作履歴取得部60は、取得した操作履歴を、操作履歴記憶部52に記憶させる。
【0034】
図8は、情報処理装置12が記憶する操作履歴テーブルの一例を示す図である。例えば、操作履歴取得部60は、取得した操作履歴を、図8に示す操作履歴テーブルとして、操作履歴記憶部52に記憶させる。図8に示すように、操作履歴テーブルには、操作主体ID(ID情報)、操作時刻、操作対象、操作内容又は操作結果、の各フィールド(項目)が存在する。操作履歴テーブルは、これらのフィールドを関連付けて、単位操作履歴OPごとに、操作履歴として格納している。例えば、図4に示した端末装置10が記憶した単位操作履歴OP1からOP7に対し、図8では操作主体IDが追加されて格納されている。単位操作履歴OP1からOP7は、ユーザAが操作した旨の操作主体ID「A」を含む。また、図8の例では、図4に示した操作履歴が作成された後に、ユーザAの操作によって作成された単位操作履歴OP8、OP9が示されている。また、ユーザBの単位操作履歴OP10からOP13が、示されている。図8の例では、単位操作履歴OP8は、単位操作履歴OP7の直後に行われた操作内容であり、ユーザAが、マウス32を移動量60だけスクロールした操作である。また、単位操作履歴OP9は、単位操作履歴OP8の直後に行われた操作内容であり、ユーザAが、マウス32を左シングルクリックした操作である。また、単位操作履歴OP10は、ユーザAとは異なるユーザBが操作した操作内容であり、表示部26にウィンドウW2を表示させた操作内容である。単位操作履歴OP11は、単位操作履歴OP10の直後に行われた操作内容であり、ユーザBが、マウス32を移動量50だけスクロールした操作である。単位操作履歴OP12は、単位操作履歴OP11の直後に行われた操作内容であり、ユーザBが、マウス32を左シングルクリックした操作である。単位操作履歴OP13は、単位操作履歴OP12の直後にメモリ空間36に記憶された操作結果の情報であり、単位操作履歴OP10から単位操作履歴OP12の操作内容に応じて、制御部20が決定した操作結果の情報である。単位操作履歴OP13は、操作結果が記憶されたメモリ領域MのアドレスがA00500であり、そのアドレスに記憶された操作結果を示す値が、0x00であることを示している。なお、情報処理装置12における操作履歴テーブルについても、操作履歴(単位操作履歴OP)を識別する識別子(例えばOP1などの記号)を、操作内容などと関連付けて記憶させてもよいし、記憶させなくてもよい。
【0035】
図6に戻り、情報処理装置12の説明を続ける。機能特定部62は、操作履歴取得部60が取得した操作履歴を、グループ化して操作履歴群を作成し、操作履歴群に対する機能Fを特定する。言い換えれば、機能特定部62は、それぞれの単位操作履歴OPについて、操作履歴群に対応させるか否かを判定し、真と判定した単位操作履歴OPを、いずれかの操作履歴群に対応させ、操作履歴群のそれぞれについて機能Fを特定する。例えば、機能特定部62は、複数の単位操作履歴OPを、1つの操作履歴群とする。1つの操作履歴群は、1つの目的の処理(機能F)を行うためのユーザによる一連の操作の履歴であるといえる。すなわち、機能特定部62は、一連の単位操作履歴OPをまとめて操作履歴群を形成することにより、ユーザが入力した操作内容に対応する機能Fを特定するといえる。なお、「操作履歴」という用語は、1つ又は複数の単位操作履歴OPを意味する場合もあるが、1つ又は複数の操作履歴群を意味する場合もある。
【0036】
機能特定部62は、少なくとも1つの操作内容の単位操作履歴OPと、1つの操作結果の単位操作履歴OPとを含むように、操作履歴群を形成する。すなわち、機能特定部62は、1つの操作結果の単位操作履歴OPと、その単位操作履歴OPに対応する操作内容の単位操作履歴OPとを、1つの操作履歴群とする。機能特定部62は、操作結果の単位操作履歴OPと、その単位操作履歴OPより前の時刻が関連付けられた操作内容の単位操作履歴OPとを、1つの操作履歴群とする。具体的には、機能特定部62は、ユーザによる操作が可能になった状態から、操作によって操作結果が決定されるまでの間の単位操作履歴OPを、1つの操作履歴群にまとめる。操作が可能になった状態とは、典型的には、ユーザが操作を行うためのウィンドウ(アクティブウィンドウ)が表示された状態である。より詳しくは、機能特定部62は、同じ操作主体IDを有する単位操作履歴OPのうち、操作結果が含まれる単位操作履歴OP、すなわち、メモリ領域Mの値が変化した単位操作履歴OPから時刻を遡り、メモリ領域Mの値が変化した単位操作履歴OPの直前のウィンドウが表示された単位操作履歴OPまでの間に含まれる単位操作履歴OPを、1つの操作履歴群(操作履歴のグループ)とする。言い換えれば、機能特定部62は、メモリ領域Mの値が変化した単位操作履歴OPを、1つの操作履歴群に含まれる最終データとする。そして、機能特定部62は、その最終データの単位操作履歴OPから時刻を遡り、最終データとした単位操作履歴OPと同じ操作主体IDを有する単位操作履歴OPであってウィンドウが表示された単位操作履歴OPのうちで、最終データに最も近い時刻(直近の時刻)に関連付けられた単位操作履歴OPを、最初のデータとする。
【0037】
図8の例では、機能特定部62は、メモリ領域Mの値が変化した単位操作履歴OP7を最終データとし、単位操作履歴OP7の直前で単位操作履歴OP7と同じ操作主体IDのウィンドウ表示の単位操作履歴OP1を最初のデータとする。機能特定部62は、単位操作履歴OP1から単位操作履歴OP7を、ユーザAによる1つの操作履歴群T1であるとする。また、機能特定部62は、単位操作履歴OP10から単位操作履歴OP13までを、ユーザBによる他の1つの操作履歴群T2とする。なお、図8の例において、単位操作履歴OP8およびOP9は、いずれの操作履歴群にも対応していない。機能特定部62は、それぞれの単位操作履歴OPについて、ウィンドウが表示されてから、メモリ領域Mの値が変化するまでの操作に該当するか否かを判定する。そして、この条件に合致しない単位操作履歴OPは、いずれの操作履歴群にも対応しないと判定する。単位操作履歴OP8およびOP9は、この条件に合致しない操作であるため、いずれの操作履歴群にも対応しない、という結果になる。
【0038】
機能特定部62は、このように単位操作履歴OPをグループ化して操作履歴群を作成した後、操作履歴群ごとに、機能Fを特定する。ここで特定された機能Fは、ユーザの操作により実行された機能であるため、「操作対象機能」あるいは「操作目的機能」とも称される。操作履歴群は、ある1つの目的を達成するためにユーザが行った一連の操作のまとまりであり、ユーザ視点では、1つの操作履歴群は1つ(1回)のユーザ操作であるともいえる。従って、機能特定部62は、ユーザの操作ごとに、機能Fを操作対象機能として特定するともいえる。具体的には、機能特定部62は、同じ操作履歴群に含まれる単位操作履歴OPを、同じ機能Fであるとして特定する。機能特定部62は、操作履歴に含まれる、操作結果が記憶されたメモリ空間36の情報に基づき、操作履歴群ごとに機能Fを特定する。操作履歴取得部60が取得した操作履歴には、単位操作履歴OPがどの機能Fに対応するものであるかの情報が含まれていない。それに対し、機能特定部62は、操作結果が記憶されたメモリ空間36の情報に基づき、ユーザの操作ごとに、ここでは操作履歴群ごとに、機能Fを特定する。具体的には、機能特定部62は、操作履歴群に含まれるメモリ領域Mの値が変化した操作履歴(図8の例では単位操作履歴OP7や単位操作履歴OP13)から、そのメモリ領域Mのアドレス、すなわち操作結果が記憶されたメモリ領域Mのアドレスを抽出する。そして、機能特定部62は、機能アドレス情報記憶部54から、メモリ空間36のアドレスと機能Fとの関係を示す機能アドレス情報を読み出して、読み出した機能アドレス情報と、抽出したメモリ領域Mのアドレス(操作結果が記憶されたメモリ領域Mのアドレス)とを照合する。機能特定部62は、機能アドレス情報において、抽出したメモリ領域Mのアドレスと同じアドレスに関連付けられた機能Fを、その操作履歴群の機能Fであると特定する。機能特定部62は、操作履歴群毎に、このようにして機能Fを特定する。機能特定部62は、特定した機能Fの情報を操作履歴に関連付けて、操作履歴記憶部52に記憶させる。このように、機能特定部62は、機能アドレス情報を読み出し、機能アドレス情報において、操作結果が記憶されたメモリ空間36のアドレスに関連付けられた機能Fを、その操作の目的の機能Fであると特定する。機能特定部62は、操作履歴取得部60が取得した操作履歴群に対し、特定した機能Fの情報を付与する。
【0039】
なお、機能アドレス情報は、端末装置10側に記憶されていてもよい。この場合、端末装置10の制御部20は、上述の方法で機能アドレス情報に基づき作成した機能Fの情報を操作履歴に加えて、操作履歴記憶部38に記憶させる。従ってこの場合、情報処理装置12は、機能Fの情報を含んだ操作履歴を取得し、機能特定部62は、操作履歴に含まれた機能F(操作対象機能)の情報を取得することで、ユーザの操作により実行された機能を特定する。つまり、機能特定部62は、端末装置10で作成された情報を取得することにより、操作対象機能を特定してもよい。機能特定部62は、機能取得部あるいは操作対象機能取得部であるともいえる。
【0040】
次に、図7および図8を用いて、機能を特定する処理の具体例を説明する。図8の操作履歴テーブルの例では、単位操作履歴OP7のアドレスがA00100であるため、図7に示す機能アドレス情報によると、単位操作履歴OP1からOP7までの操作、すなわち操作履歴群は、機能F2となる。また、単位操作履歴OP13のアドレスがA00500であるため、図7に示す機能アドレス情報によると、単位操作履歴OP10からOP13までの操作履歴群は、機能F5となる。機能特定部62は、特定した機能の情報を図8の操作履歴テーブルに追加し、操作履歴記憶部52に記憶させる。図9は、機能の情報が付与された後の操作履歴テーブルの一例を示す図であり、図8の操作履歴テーブルと比べて、「機能」フィールドが追加されている。図9に示すように、機能特定部62は、単位操作履歴OP1からOP7までに、機能F2である旨の情報を関連付け、単位操作履歴OP10からOP13までに、機能F5である旨の情報を関連付ける。また、いずれの操作履歴群に分類されない単位操作履歴OP8およびOP9の「機能」欄には、いずれの機能Fにも関連付けられていないことを示す「-」が記録される。
【0041】
なお、操作履歴テーブルは、1回の処理で機能Fが特定された操作履歴以外にも、過去に機能Fが特定された際の操作履歴を含んでいる。図9の例では、ユーザCによる操作履歴群T3である単位操作履歴OP14から単位操作履歴OP17と、ユーザBによる操作履歴群T4である単位操作履歴OP19から単位操作履歴OP25とが、それに該当する。単位操作履歴OP14は、表示部26にウィンドウW2を表示させた操作内容である。単位操作履歴OP15、OP16については説明を省略するが、ユーザCによる操作内容を含む操作履歴である。単位操作履歴OP17は、単位操作履歴OP14から単位操作履歴OP16の操作内容に応じて、制御部20が決定した操作結果の情報である。単位操作履歴OP17は、操作結果が記憶されたメモリ領域MのアドレスがA00101であり、そのアドレスに記憶された操作結果を示す値が、0x55であることを示している。従って、単位操作履歴OP14からOP17には、機能F2が対応する。また、単位操作履歴OP19は、表示部26にウィンドウW1を表示させた操作内容である。単位操作履歴OP20からOP24については説明を省略するが、ユーザBによる操作内容を含む操作履歴である。単位操作履歴OP25は、単位操作履歴OP19から単位操作履歴OP24の操作内容に応じて、制御部20が決定した操作結果の情報である。単位操作履歴OP25は、操作結果が記憶されたメモリ領域MのアドレスがA00100であり、そのアドレスに記憶された操作結果を示す値が、0x33であることを示している。従って、単位操作履歴OP19からOP25には、機能F2が対応する。なお、操作履歴テーブルは、過去に取得した全ての操作履歴を含んでいてもよいし、所定期間(例えば、過去1年間)に取得した操作履歴、あるいは操作時刻が所定期間に該当する操作履歴のみを含んでいてもよい。
【0042】
図6に戻り、情報処理装置12の説明を続ける。操作抽出部64は、同じ目的の操作とみなせる操作履歴群を抽出する。例えば、同じ機能Fに対応する操作同士は、同じ目的の操作であると見なせるので、それらの操作を抽出する。具体的には、操作履歴テーブルに含まれる操作履歴群の中から、以下に示す(1)から(4)のいずれかの条件に合致する操作履歴群を、同一目的の操作として、抽出する。
(1)機能フィールドが第1の所定値(例えば機能F2)である操作履歴群。
(2)機能フィールドが第1の所定値(例えば機能F2)であり、かつ操作結果のアドレスが第2の所定値(例えばA00100)操作履歴群。
(3)機能フィールドが第1の所定値(例えば機能F2)であり、かつ操作結果のアドレスが第2の所定値(例えばA00100)であり、かつ操作結果の値(メモリ領域Mの値)が第3の所定値(例えば0x55)である操作履歴群。
(4)機能フィールドが第1の所定値(例えば機能F2)であり、かつ操作結果のアドレスが第2の所定値(例えばA00100)であり、かつ操作結果の値(メモリ領域Mの値)が第3の所定値(例えば0x55)であり、かつメモリ領域Mの変更前の値が第4の所定値(例えば0x00)である操作履歴群。
【0043】
ここで、第1の所定値から第4の所定値は、予め定められた値に限らない。例えば、(1)の条件を用いる場合、操作履歴テーブルの機能フィールドに格納された任意の1つの値を読み出し、それを第1の所定値としてもよい。このような処理をすると、操作履歴テーブルに格納された1つの操作履歴群の機能と同じ機能に対応付けられた操作履歴群を全て抽出することができる。また、操作履歴テーブルにおいて、2つ以上の操作履歴群に対応する機能を第1の所定値にし、1つの操作履歴群にしか対応しない機能は第1の所定値にしない(抽出対象としない)処理をしてもよい。すなわち、操作抽出部64は、(1)の条件を用いて、機能フィールド(すなわち機能F)が互いに一致する操作履歴群を、抽出することができる。同様に、操作履歴テーブルに格納された任意の操作結果のアドレスを読み出し、それを第2の所定値としてもよい。すなわち、操作抽出部64は、(2)の条件を用いて、機能フィールド及び操作結果のアドレスが互いに一致する操作履歴群を、抽出することができる。同様に、操作履歴テーブルに格納されたメモリ領域Mの値を読み出し、それを第3の所定値としてもよい。すなわち、操作抽出部64は、(3)の条件を用いて、機能フィールド、操作結果のアドレス、及び操作結果の値が互いに一致する操作履歴群を、抽出することができる。同様に、操作履歴テーブルに格納されたメモリ領域Mの変更前の値を読み出し、それを第4の所定値としてもよい。すなわち、操作抽出部64は、(4)の条件において、機能フィールド、操作結果のアドレス、操作結果の値、及びメモリ領域Mの変更前の値が互いに一致する操作履歴群を、抽出することができる。
【0044】
上記の条件(1)~(4)は、同じ目的の操作と判定するための条件であるが、条件(1)が最も緩く、番号が大きくなるほど条件が厳しくなり、条件(4)が最も厳しい。条件(1)を用いる場合、図9の例では、機能F2に対応する、操作履歴群T1と操作履歴群T3と操作履歴群T4とが同じ目的の操作と判定される。また、1つの機能Fに対応するメモリ空間が複数のアドレスで構成されている場合には、条件(1)と条件(2)では異なる結果になる場合がある。例えば、図9の例において、条件(1)を用いると、機能F2に対応する、操作履歴群T1、T3、T4は全て同じ目的と判定される。条件(2)を用いると、操作履歴群T1と操作履歴群T4は同じ目的と判定されるが、操作履歴群T1と操作履歴群T3は、アドレスが異なるため、同じ目的とは判定されない。また、条件(3)を用いると、操作履歴群T1、T3、T4において、アドレスおよびメモリ領域Mの値は、完全には一致しないため、それぞれ別の目的の操作と判定される。例えば、フォントカラーの変更機能において、特定の色に変更したものだけを同じ目的とするのでなく、どの色に変更した場合でも同じ目的とみなしたい場合、すなわち、メモリ領域Mの変更後の値が全く同じ変更でなくても、変更されたメモリ領域Mのアドレスが同じであれば、同じ目的としたい場合には、条件(1)または条件(2)を用いればよい。条件(4)を用いる場合、操作履歴取得部60は、メモリ領域Mが変更された後の値だけでなく、変更される前の値も、端末装置10から取得する。そして、操作抽出部64は、機能F、メモリ領域Mのアドレス、メモリ領域Mの変更後の値、メモリ領域Mの変更前の値、の全てが一致する操作履歴群を、同じ目的の操作であるとして抽出する。
【0045】
このように、操作抽出部64は、少なくとも機能Fが一致する操作履歴群を、同じ目的の操作として判定する。さらに、操作抽出部64は、同じ機能Fでなくても、類似する機能Fの操作履歴群を抽出してもよい。この場合、記憶部46は、関係性の高い(類似性の高い)機能に関する情報を記憶し、操作抽出部64は、その情報をもとに、関係性が高いと定義された2つ以上の機能Fに対応する操作履歴群を、同じ目的の操作であるとして抽出する。例えば、機能F2と機能F5は異なる機能であるが、関連性の高い機能であると定義されている場合、機能F2に係る操作と機能F5に係る操作を同じ目的の操作と判定する。すなわち、同じ目的の操作と判定する条件は、機能Fが同一であることに限定されない。あるいは、機能F2に係る操作と機能F5に係る操作を、同一の目的ではないが、類似する目的の操作と判定して、抽出対象に加えてもよい。この場合、操作抽出部64は、同一又は類似する目的の操作を判定して抽出する、といえる。
【0046】
また、記憶部46に、2つの機能の組み合せ毎に類似度(関連性/類似性の高さを示す数値)を記憶させておき、操作抽出部64は、その類似度をもとに、同じ目的の操作を判定してもよい。例えば、フォントの色を変更する機能と、フォントの文字修飾(ボールド/イタリック等)を変更する機能との類似度を「0.3」、フォントの色を変更する機能と、フォントの大きさを変更する機能との類似度を「0.2」などと適宜定義しておく。ここで類似度は、関連性/類似性が高いほど高い値に設定されている。そして操作抽出部64は、類似度が所定のしきい値(例えば「0.3」)以上である機能に対応する操作履歴群を、同一の目的の操作とみなして抽出する。
【0047】
また、機能と操作結果の値との組み合わせに関する類似度を記憶部46に記憶させておき、操作抽出部64は、その類似度をもとに、同じ目的の操作を判定してもよい。この類似度が定義される機能の組み合せは、同じであっても、異なっていてもよい。例えば、フォントの色を変更する機能に関して、操作結果の値である変更後の色が一致する場合の類似度を「1.0」、数値は若干異なるが、色差が所定値未満である場合(ほぼ同じ色とみなせる場合)の類似度を「0.8」、色差が所定値以上である場合(ほぼ同じ色とみなせない場合)の類似度を「0.5」などと定義しておく。そして操作抽出部64は、類似度が所定のしきい値(例えば「0.7」)以上である機能に対応する操作履歴群を、同一の目的の操作とみなして抽出する。この場合、「フォントの色を変更する」という同じ機能の範囲で、異なる操作結果の値に関する類所度を用いている。
【0048】
また、機能と操作結果の値との組み合せに関する類似度において、2つの機能が異なっていてもよい。例えば、「フォントの文字修飾を変更する」機能により、操作結果の値が「ボールド」となった状態と、「フォントの大きさを変更する」機能により、操作結果の値が「20ポイント」になった状態との類似度を「0.2」、「フォントの文字修飾を変更する」機能により、操作結果の値が「ボールド」となった状態と、「フォントの大きさを変更する」機能により、操作結果の値が「8ポイント」になった状態との類似度を「0.1」などと定義しておいてもよい。なお、ここでは通常フォントの大きさは「20ポイント」と「8ポイント」の間のサイズ(例えば「12ポイント」)であることを想定しており、通常フォントより大きなサイズのフォントは、その文字を強調するために使われる可能性が高いため、文字を強調する目的で使われる「ボールド」との類似度がより高い値に設定されている。すなわち、操作抽出部64は、機能F同士の類似度、又は、機能Fと操作結果の値との組み合せ同士の類似度を用いて、類似度が所定のしきい値以上の機能F又は操作結果に対応する操作履歴群を、同一の目的の操作とみなして抽出する。また、このしきい値を段階的に変化させて抽出処理を行ってもよい。例えば、最初にしきい値を「0.8」に設定して抽出処理を行い、必要な数の操作履歴群が抽出できた場合には処理を終了し、必要な数の操作履歴群が抽出できなかった場合には、しきい値を「0.5」に下げて、再度抽出処理を行うようにしてもよい。
【0049】
このように、操作抽出部64は、同じ機能F又は所定の関係を有する機能Fに対応する操作履歴群を抽出する。従って、操作抽出部64は、機能特定部62が特定した機能Fの情報に基づき、操作履歴群の中から、所定の操作履歴群を抽出するといえる。また、操作抽出部64は、所定の機能(操作対象機能)に対応する操作履歴を抽出するともいえる。例えば、操作抽出部64は、「機能F2に対応する操作履歴群」、「機能F2に対応し、かつ操作結果のアドレスがA00100であり、かつそのアドレスの値が0x55である操作履歴群」などを抽出するが、これら全ては、所定の機能(機能F2)に対応する操作履歴である。また例えば、機能F1とF5の関連性が高く、類似の目的の機能とみなせる場合に、操作抽出部64は、「機能F2または機能F5に対応する操作履歴群」、「機能F2に対応し、かつ操作結果のアドレスがA00100の操作履歴群、または、機能F5に対応し、かつ操作結果のアドレスがA00500の操作履歴群」などを抽出するが、これら全ては、所定の機能(機能F2または機能F5)に対応する操作履歴である。このように、所定の機能は、複数の機能Fの組み合せで定義されてもよい。またこのように、所定の機能に対応する全部の操作履歴ではなく、所定の機能に対応する一部の操作履歴を抽出してもよい。その意味で、操作抽出部64は、所定の機能に対応する少なくとも一部の操作履歴を抽出するともいえる。また、操作抽出部64は、全ての機能Fを抽出対象とするのではなく、予め定めた特定の機能Fのみを、抽出対象としてもよい。例えば、機能F1から機能F5が存在する場合、機能F1からF4を抽出対象とし、機能F5を抽出対象にしなくてもよい。
【0050】
図6に戻り、情報処理装置12の説明を続ける。指標算出部66は、操作抽出部64が抽出した操作について、操作の効率性に関する指標Eを算出する。すなわち、指標算出部66は、機能Fが一致する操作履歴群、又は機能Fが所定の関係を有する操作履歴群について、その操作履歴群におけるユーザ操作の効率性の高さを示す指標Eを算出する。指標Eは、抽出された操作履歴群におけるユーザの操作の効率性を評価した指標である。本実施形態では、指標Eは、操作結果がメモリ空間36に記憶されるまでに要したユーザの操作量(工数)を示す値であり、言い換えれば、操作履歴群に含まれる操作内容の良し悪しの程度(度合い)を示している。
【0051】
指標算出部66は、操作抽出部64が抽出した操作履歴群(以下、抽出操作履歴群とも呼ぶ)に含まれる単位操作履歴OPの操作内容に基づき、指標Eを算出する。この抽出操作履歴群は、複数種類の操作内容を含む場合がある。この場合、指標算出部66は、複数種類の操作内容に基づき、指標Eを算出する。本実施形態における操作内容は、マウス32のクリック数及びキーボード30の打鍵数、すなわち操作部24への入力回数と、マウス32の移動距離、すなわちポインタの移動量とを含んでいる。指標算出部66は、操作部24への入力回数及びポインタの移動量に加え、ユーザの操作時間を用いて、指標Eを算出する。
【0052】
指標算出部66は、抽出操作履歴群の中から指標Eの算出に用いる操作内容(単位操作履歴OP)を抽出する。具体的には、指標算出部66は、抽出操作履歴群に含まれる全ての単位操作履歴OPから、マウス32をクリックした単位操作履歴OPとキーボード30を打鍵した単位操作履歴OPを抽出する。そして、抽出した単位操作履歴OPにおけるマウス32のクリック数及びキーボード30の打鍵数の操作履歴群毎の合計値を、各操作履歴群における操作部24への入力回数として算出する。また、指標算出部66は、抽出操作履歴群に含まれる全ての単位操作履歴OPから、マウス32を移動させた単位操作履歴OPを抽出する。そして、抽出した単位操作履歴OPにおけるマウス32の操作履歴群毎の移動量の合計値を、各操作履歴群におけるポインタの移動量として算出する。また、ユーザの操作時間とは、機能Fに関する操作が開始されてから操作結果が記録されるまでに要した時間であり、言い換えれば、機能Fに関する操作が開始された時刻から、目的が達成された時刻(操作結果が決定された時刻)までの時間である。指標算出部66は、抽出操作履歴群において、ウィンドウが表示された時刻を操作が開始された時刻とし、機能Fに対応するメモリ領域が変更された時刻を目的が達成された時刻であるとする。すなわち、指標算出部66は、ウィンドウが表示された単位操作履歴OP(図9の例では単位操作履歴OP1)に関連付けられた時刻から、操作結果についての単位操作履歴OP(図9の例では単位操作履歴OP7)に関連付けられた時刻までの時間を算出して、算出した時間を操作時間とする。なお、操作が開始された時刻は、ウィンドウが表示された時刻に限られず、例えばユーザが最初に操作部24を操作した時刻(図9の例では単位操作履歴OP2)としてもよい。
【0053】
このように算出した操作部24への入力回数、ポインタの移動量、及びユーザの操作時間は、値が小さいほど、ユーザによる操作量が少ないといえる。そして、機能Fを実行するのに要したユーザの操作量が少ないほど、効率のよい操作であるといえる。以下の説明において、操作抽出部64は、条件(1)を用いて、機能F2に対応する同じ目的の操作履歴群を抽出しており、図9に示す操作履歴の中から、操作履歴群T1、T3、T4を抽出しているものとする。すなわち、機能F2に対応する抽出操作履歴群は、T1、T3、T4の3つである。指標算出部66は、抽出操作履歴群T1について、「マウス32の左シングルクリック」が2回であり、「キーボード30の打鍵数」が8回であるため、操作部24の入力回数を「2+8=10回」とし、ポインタの移動量を「80+50=130」とし、ウィンドウが表示された時刻「2018-01-15 13:00:00.000」から、操作結果が記録された時刻「2018-01-15 13:00:06.100」までの時間(時間差)である操作時間を「6.1秒」として算出する。また、指標算出部66は、抽出操作履歴群T3について同様に、操作部24の入力回数を「1回」とし、ポインタの移動量を「10」とし、操作時間を「3.0秒」として算出する。また、指標算出部66は、抽出操作履歴群T4について、操作部24の入力回数を「2+8=10回」とし、ポインタの移動量を「50+60=110」とし、操作時間を「6.0秒」として算出する。なお上述した、操作部24への入力回数、ポインタの移動量、及びユーザの操作時間は、単位操作履歴OPに含まれるユーザの操作量を示す値を、操作履歴群ごとに集約(集計)した値であるので、これらを操作集約値あるいは操作集計値と称する。
【0054】
指標算出部66は、以上のように、指標Eの算出に用いる操作内容を抽出し、それをもとに操作集約値を算出する。ただし、指標Eの算出に用いる操作内容の種類は、上記で説明したものに限られず、任意に設定してよい。例えば、指標算出部66は、操作内容として、ユーザの操作時間と、ユーザによる端末装置の操作部24への入力回数と、端末装置10のポインタの移動量との少なくとも1つに基づき、指標Eを算出してよい。また、マウス32のクリック数と、キーボード30の打鍵数を合計せずに、別々の操作集約値(パラメータ)として用いて、指標Eを算出してもよい。また、例えば端末装置10の操作部24がタッチパネルである場合、すなわち端末装置10がスマートフォンやタブレット端末などである場合、操作内容は、タッチパネルのタップやフリックなどの操作となる。操作部24がカメラやマイクなどであってもよく、この場合の操作内容は、カメラのボタン操作やマイクのスイッチ操作などになる。また、音声入力やジェスチャー入力による操作を用いる場合、ユーザの発話回数、発話時間、ジェスチャー動作に要した時間、ジェスチャー動作の運動量などを操作集約値として用いて指標Eを算出してもよい。
【0055】
指標算出部66は、抽出した操作内容を用いて、指標Eを算出する。指標算出部66は、抽出した操作内容に基づいて算出された操作集約値を、所定の関数に入力して、指標Eを算出する。例えば、指標算出部66は、次の式(1)を用いて指標Eを算出する。
【0056】
E=f(x,y,z) ・・・(1)
【0057】
ここで、fは、x、y、zを変数とした所定の関数であり、予め設定される。またここでは、xは操作時間であり、yは入力回数であり、zはポインタの移動量(移動距離)である。
【0058】
さらに、指標算出部66は、複数の操作集約値を算出した場合、操作集約値毎に異なる重み付けを行って、指標Eを算出することが好ましい。例えば、指標算出部66は、次の式(2)を用いて指標Eを算出する。
【0059】
E=α・g(x)+β・h(y)+γ・k(z) ・・・(2)
【0060】
α、β、γは、予め定められた定数であり、例えば0以上の値である。g、h、kは、それぞれx、y、zを変数とする予め設定された所定の関数であり、例えば出力値が0以上となる単調増加特性を持つ。従って、この場合、指標Eが小さいほど、ユーザによる操作の度合いを示す操作量が小さくなるといえる。つまり、指標Eが小さいほど、ユーザ操作の効率性が高い。指標算出部66は、α、β、γを予め異なる値に設定したり、g、h、kを予め異なる関数に設定したりすることで、操作集約値毎、すなわち操作内容毎に異なる重み付けを行って、指標Eを算出する。なお、g、h、kは線形関数であっても、非線形関数であってもよい。最も簡易な処理としては、出力=入力となる線形関数であってもよい。すなわち、関数を用いずに、x、y、zの重み付け加算値を指標Eとしてもよい。
【0061】
図10は、操作集約値および指標Eの算出結果の一例を示す図である。式(2)において、α=2、β=1、γ=0.1とし、g,h,kを出力=入力となる線形関数であるとすると、操作履歴群T1、T3、T4の指標Eは、図10のようになる。すなわち、操作履歴群T1の指標Eは、「35.2」となり、操作履歴群T3の指標Eは、「8.0」となり、操作履歴群T4の指標Eは、「33.0」となる。なお、指標算出部66は、すでに指標Eを算出済みの操作履歴群については、改めて指標Eを算出し直さなくてもよく、例えば記憶部46に記憶した算出済みの指標Eを読み出して、算出済みの操作履歴群の指標Eを取得してもよい。本実施形態における指標Eは、値が小さいほど、操作の効率性が高い(効率性が良い)、という特性を持っている。ただし、指標Eの値の大小と、操作の効率性の高さの関係は、任意に定義することができる。例えば、指標Eの値が大きいほど、操作の効率性が高いように、指標Eを算出することも可能である。以下の説明において、「ユーザ操作の効率性が高い」という意味で、「指標Eが高い」あるいは「指標Eの値が高い」という表現を用いる場合がある。本実施形態において、「指標Eが小さい」ことと「指標Eが高い」ことと「操作の効率がよい」ことは同義である。
【0062】
図6に戻り、情報処理装置12の説明を続ける。操作選択部68は、指標算出部66が算出した指標Eに基づき、同じ目的とみなせる操作のうちから、所定の効率性を有する操作を選択する。すなわち、操作選択部68は、指標算出部66が算出した指標Eに基づき、抽出操作履歴群のうちから、所定の効率性を有する操作履歴群を選択する。本実施形態における所定の効率性の1つは、操作の効率性が最もよいことである。従って、操作選択部68は、指標Eに基づき、互いに対応する機能Fを有する操作履歴群のうちから、最も効率性の高い操作履歴群、言い換えれば、ユーザによる操作量が最も少ない操作履歴群を、選択する。具体的には、操作選択部68は、抽出操作履歴群の指標Eを比較して、指標Eの値が最も小さい操作履歴群を、選択する。例えば、図10の例では、操作選択部68は、操作履歴群T1、T3、T4のうちから、操作履歴群T3を選択する。ただし、操作選択部68は、所定の効率性を有する操作を選択するものであれば、操作の効率性が最もよい操作履歴群を選択することに限られない。例えば、操作選択部68は、効率性が所定の基準よりも高い操作履歴群、すなわち指標Eが所定の閾値より小さい操作履歴を選択してもよい。また、操作の効率性が高い順に所定数の操作履歴群を選択してもよく、この所定数は2以上であってもよい。すなわち、操作選択部68は、指標Eが最も高い(指標Eが最も小さい)操作履歴を選択することに限られず、それぞれの操作履歴のうちから、相対的に指標Eが高い操作履歴を選択してよい。
【0063】
出力制御部70は、操作選択部68が選択した操作(操作履歴群)の情報、すなわち最も効率がよい操作履歴群に関する情報を、ガイド情報として出力する。出力制御部70は、操作選択部68が選択した操作履歴群に関する情報を、通信部42を介して、それぞれの端末装置10に出力、すなわち送信する。また、出力制御部70は、表示部44に操作選択部68が選択した操作履歴群の情報を出力、すなわち表示させてもよい。出力制御部70が出力する情報(ガイド情報)とは、操作選択部68が選択した操作履歴群における操作内容の情報(操作入力情報)であるが、詳しくは後述する。
【0064】
情報処理装置12の構成は、以上のようになっている。次に、情報処理装置12の処理フローを、フローチャートに基づき説明する。図11は、第1実施形態に係る情報処理装置の処理フローを説明するフローチャートである。図11は、最も効率のよい操作履歴群を選択するための処理フローである。図11に示すように、ステップS30において、操作履歴取得部60は、通信部42を介して、端末装置10から操作履歴を取得する。そして、ステップS32において、機能特定部62は、取得した操作履歴に含まれる単位操作履歴OPをグループ化して、操作履歴群を作成する。機能特定部62は、操作結果の単位操作履歴OPと、それに対応する操作内容の単位操作履歴OPとを1つのグループにまとめ、1つの操作履歴群を作成する。そして、ステップS34において、機能特定部62は、機能アドレス情報に基づき、操作履歴群毎に機能Fを特定し、操作履歴群を特定した機能Fに関連付けて、操作履歴記憶部52に記憶させる。機能特定部62は、機能アドレス情報において、操作結果が記憶されたメモリ空間36のアドレスに関連付けられた機能Fを、その操作履歴群により実行された機能Fであると特定する。
【0065】
そして、ステップS36において、操作抽出部64は、ステップS34で特定された機能Fをもとに、操作履歴記憶部52に記憶された操作履歴群の中から、同一又は類似する目的とみなせる操作履歴群の組み合せを特定し、抽出する。具体的には、操作抽出部64は、上述の条件(1)~(4)のいずれかを用いて、この処理を行う。説明を簡潔にするため、ここでは条件(1)を用いるものとする。この場合、例えば、機能F1に対応する4つの操作履歴群が抽出され、機能F2に対応する3つの操作履歴群が抽出され、機能F3に対応する5つの操作履歴群が抽出される、といったように、機能F(つまり同一の目的)ごとに、操作履歴群が抽出される。また、操作履歴群が1つしか存在しない機能Fについては、後続の処理で使われないため、そのような機能Fに対応する操作履歴群は抽出されない。つまり、ある1つの機能Fに対応する操作履歴群が複数存在する場合に、それらの操作履歴群が抽出される。1つの機能Fに対応する、抽出された複数の操作履歴群は、「操作履歴群グループ」とも称される。例えば、機能F1に対応する4つの操作履歴群が抽出された場合、その4つの操作履歴群をまとめて「機能F1に対応する操作履歴群グループ」あるいは短縮して「操作履歴群グループ1」と称する。
【0066】
次にステップS38において、指標算出部66は、操作抽出部64が抽出した操作履歴群の指標Eを算出し、操作履歴記憶部52に記憶させる。ここでは、操作履歴群グループ順に、各操作履歴群の指標Eを算出する。例えば、ステップS36において、機能F1に対応する操作履歴群グループ1として、4つの操作履歴群が抽出され、機能F2に対応する操作履歴群グループ2として、3つの操作履歴群が抽出された場合、まず操作履歴群グループ1の4つの操作履歴群について、各々指標Eを算出し、次に操作履歴群グループ2の3つの操作履歴群について、各々指標Eを算出する。そして、機能Fに対応付けて、操作履歴群と指標Eとを操作履歴記憶部52に記憶させる。次に、ステップS40において、操作選択部68は、最も効率のよい操作履歴群を選択して、その操作履歴群に関する情報(ガイド情報)を作成し、出力制御部70はガイド情報を端末装置10に出力する。
【0067】
次に、図11のステップS40の処理の処理フローを、より詳細に説明する。図12は、図11のステップS40の処理フローの詳細を示すフローチャートである。図12に示すように、まずステップS50において、制御部40は、通信部42を介して端末装置10からのガイド情報リクエスト(ガイド情報要求メッセージ)を受け付ける。端末装置10は、任意のタイミングでガイド情報リクエストを情報処理装置12に送信できる。このガイド情報リクエストには、操作主体ID(端末装置10を使用するユーザのユーザIDまたは端末装置10の端末ID)と、ガイド情報を指定するための情報(ガイド指定情報)として機能Fとが含まれている。なお、ガイド情報リクエストに含まれる操作主体IDは、ガイド情報を出力する先の端末装置10、あるいはその端末装置10を使用するユーザを示している。ガイド情報を出力する先の端末装置10を「ターゲット端末」と称し、ターゲット端末を使用するユーザを「ターゲットユーザ」と称する。次にステップS52において、操作選択部68は、操作履歴記憶部52から、ガイド指定情報に一致する機能Fに対応する指標Eを読み出し、読み出した指標Eを対象にして、最小値を算出する。すなわち、最小値とは、ガイド指定情報に一致する機能Fに対する複数の指標Eのうちの、最も値が小さい指標Eを指す。最小値を算出するには種々のアルゴリズムを用いることができるが、例えば、操作履歴記憶部52から読み出した指標Eを昇順にソートし、その先頭(1番目)の値を取得すればよい。
【0068】
次にステップS54において、操作選択部68は、ガイド指定情報に一致する機能Fに対応する操作履歴群の中から、指標EがステップS52で算出された最小値に一致する操作履歴群を選択する。言い換えれば、操作選択部68は、指標EがステップS52で算出された最小値となった操作履歴群を、選択する。つまり、操作選択部68は、端末装置10から指定された機能Fに関して、最も効率のよい(効率の高い)操作方法(操作履歴群)を選択する。最小値に一致する操作履歴群が複数存在する場合は、それらを全て選択してもよいし、その中の1つを選択してもよい。複数の操作履歴群から1つを選択する場合、例えば、操作時刻が最も新しい操作履歴群を選択すればよい。あるいは、以下のような方法を用いてもよい。過去に操作選択部68が選択した操作履歴群に対応する操作主体IDを記憶部46に記憶させておき、それらを集計して、操作主体IDごとに選択回数を算出する。そして、過去の選択回数が多い操作主体IDの操作履歴を優先的に選択する。例えば、指標Eが最小値となる操作履歴群として、ユーザA、ユーザB、ユーザCによる3つの操作履歴群が存在することを想定する。各ユーザの操作履歴群が過去に選択された回数が、ユーザA:「7」、ユーザB:「10」、ユーザC:「3」である場合、3つの操作履歴群から1つを選択して出力する際に、過去の選択回数が最も多いユーザBの操作履歴群を選択する。これは、操作スキルが属人的なスキルであり、過去に優れた操作を行ったユーザの操作は、今回の操作においても優れている可能性が高いという知見に基づく処理である。
【0069】
次にステップS56において、操作選択部68は、ステップS50で受け付けたガイド情報リクエストに含まれる操作主体IDと、ステップS54で選択された操作履歴群の操作主体IDとを比較し、両者が一致するか否かを判定する。両者が一致する場合(ステップS56;Yes)、ステップS58に進み、両者が一致しない場合(ステップS56;No)、ステップS60に進む。ステップS58において、操作選択部68は、操作効率がよいユーザ向けのガイド情報を作成する。すなわち、ガイド指定情報で指定された機能Fに関しては、ガイド情報を要求したユーザの操作方法が最もよいと判定されているので、ガイド情報リクエストに対応させて、効率がよいユーザ向けのガイド情報を作成する。このガイド情報は、「称賛ガイド情報」とも称される。称賛ガイド情報の詳細は後述する。ステップS58からはステップS62に進む。
【0070】
ステップS60において、操作選択部68は、操作効率が悪いユーザ向けのガイド情報を作成する。ここで、「効率が悪いユーザ」とは、本人よりも効率がよい(効率が高い)他のユーザが存在するユーザである。すなわち、ガイド指定情報で指定された機能Fに関しては、ガイド情報を要求したユーザの操作方法よりも効率のよい他のユーザが存在するため、ガイド情報リクエストに対応させて、効率が悪いユーザ向けのガイド情報を作成する。効率が悪いユーザ向けのガイド情報には、効率が最もよい操作方法(操作履歴群)に関する情報が含まれている。このガイド情報は、「啓蒙ガイド情報」とも称される。啓蒙ガイド情報の詳細については後述する。ステップS60からはステップS62に進む。
【0071】
ステップS62において、操作選択部68は、出力制御部70を介して、ステップS58またはステップS60で作成されたガイド情報を、端末装置10に出力する。つまり、操作選択部68は、出力制御部70にガイド情報を出力させる。以上がステップS40の詳細処理の説明である。ステップS58とステップS60で作成されるガイド情報は共に、操作効率のよい操作方法(操作履歴群)に基づく情報であり、指標Eに基づく情報であるともいえる。また、本実施形態では、効率がよいユーザ向けのガイド情報と、効率が悪いユーザ向けのガイド情報を分けて作成するが、必ずしも分ける必要はない。例えば、1つの機能Fに対して1つのガイド情報を作成し、全ての端末装置10に同じガイド情報を出力してもよい。なお、ステップS54において、ガイド指定情報に一致する機能Fに対応する操作履歴群であり、かつガイド情報リクエストに含まれる操作主体IDとは異なる操作主体IDをもつ操作履歴群を対象に選択処理を行ってもよい。つまり、ガイド情報リクエストを要求するユーザとは異なるユーザの操作履歴群を対象にして、指標Eが最小である操作履歴群を選択してもよい。このような処理をすると、「称賛ガイド情報」は出力されず、「啓蒙ガイド情報」のみが出力される。場合によっては、ガイド情報リクエストを要求するユーザの操作よりも、操作効率の低い操作手順がガイド情報として出力される可能性もあるが、他のユーザの操作手順を知ることは、操作効率のよいユーザにとっても有益であるため、このようなガイド情報も有益である。
【0072】
このように、出力制御部70は、操作選択部68で選択された操作履歴に係るユーザ(ステップS54で選択された操作履歴群の操作主体ID)と、ガイド情報を出力する先の端末装置10を使用するユーザ(ガイド情報リクエストに含まれる操作主体ID)とが一致するか否かに応じて、異なる種類のガイド情報を出力する。なお、ステップS56の判定処理を次のように変形してもよい。ステップS56の代わりに、ステップS56Aとして、操作選択部68は、ステップS50で受け付けたガイド情報リクエストに含まれる操作主体IDおよび機能Fに対応する操作履歴の指標Eが、ステップS52で算出された指標Eの最小値と一致するか否かを判定する。いずれにしても、ターゲットユーザの指標Eが、機能Fに対応する指標Eの中で最も小さいか否かに応じて、異なる種類のガイド情報を出力する、といえる。
【0073】
図10の例では、指標Eが最小の操作履歴群として、操作履歴群T3(ユーザCの操作履歴群)が選択されるため、出力制御部70は、操作履歴群T3に関するガイド情報を端末装置10に送信する。なお、操作履歴群T3は、ユーザCによる操作である。ターゲットユーザがユーザAまたはユーザBである場合、ターゲットユーザが使用する端末装置10(ターゲット端末)に対して、操作履歴群T3に関する啓蒙ガイド情報が送信される。ターゲットユーザがユーザCである場合、ターゲット端末に対して、操作履歴群T3に関する称賛ガイド情報が送信される。なお、操作履歴群T3に関する啓蒙ガイド情報をユーザCが使用する端末装置10を含む全ての端末装置10に送信してもよい。また、全ての端末装置10に対してガイド情報を送信するのではなく、一部の端末装置10に対してのみガイド情報を送信してもよい。例えば、所定の条件よりも効率が悪い、すなわち所定の閾値よりも指標Eが大きいユーザの端末装置10に対してのみ啓蒙ガイド情報を送信するようにしてもよい。
【0074】
なお、上述のステップS52およびステップS54において、ガイド指定情報と同じ機能Fに対応する指標Eの最小値を算出し、その最小値に対応する操作履歴群を選択しているが、これに限らず、以下のような変形処理を行ってもよい。まずステップS52に代わるステップS52Aにおいて、ターゲットユーザの機能Fに関する指標Eをもとに、指標Eに関する探索条件を設定する。探索条件として、探索目標値または探索範囲のいずれかを用いる。探索目標値は、ターゲットユーザの機能Fに関する指標Eよりも小さい値になるように設定する。例えば、ターゲットユーザの指標Eから所定値(例えば「8」)を引いた値を用いてもよいし、ターゲットユーザの指標Eに所定値(例えば「0.8」)を乗じた値を用いてもよい。探索範囲は、指標Eの範囲を示す数値であり、上限値と下限値の2つで構成される。具体的には、ターゲットユーザの指標Eよりも値が小さい方向の所定の範囲を探索範囲とする。例えば、ターゲットユーザの指標Eが「30.0」である場合、「指標Eが20以上30未満」の範囲を探索範囲とする。この範囲は、ターゲットユーザの指標Eから所定値(例えば「10」)を引いた値を用いてもよいし、ターゲットユーザの指標Eに所定値(例えば「0.7」)を乗じた値を用いてもよい。また、ターゲットユーザの指標Eから第1の所定値(例えば「5」)を引いた値(「25」)と、ターゲットユーザの指標Eから第1の所定値よりも大きい第2の所定値(例えば「10」)を引いた値(「20」を用いて、「指標Eが20以上25未満」の範囲を探索範囲としてもよい。
【0075】
次にステップS54に代わるステップS54Aにおいて、ステップS52Aで設定された探索条件をもとに、操作履歴群を選択する。探索条件として探索目標値を用いる場合は、探索目標値に最も近い値の指標Eをもつ操作履歴群を選択する。例えば、探索目標値と操作履歴群の指標Eとの差分が最も小さい操作履歴群を選択する。例えば、探索目標値が「20」であり、操作履歴群T5の指標Eが「18」、操作履歴群T6の指標Eが「23」、操作履歴群T7の指標Eが「27」である場合を想定する。この場合、探索目標値と各指標Eとの差分値は、T5が「-2」、T6が「+3」、T7が「+7」になるので、この中から探索目標値との差(差分値の絶対値)が最も小さい操作履歴群T5を選択する。あるいは、探索目標値に最も近く、かつ探索目標値よりも値が大きい指標Eをもつ操作履歴群を選択してもよい。その場合は、操作履歴群T6が選択される。また、探索目標値と各指標Eとの差分値に限らず、各指標Eを探索目標値で割った値を算出し、その値が最も「1」に近い操作履歴群を、探索目標値に最も近い指標Eをもつ操作履歴群としてもよい。最も近い値をもつ操作履歴群が複数存在する場合は、その中の1つをランダムに選択してもよいし、全てを選択してもよい。探索条件として探索範囲を用いる場合は、探索範囲に合致する指標Eをもつ操作履歴群を選択する。探索範囲に合致する指標Eが複数存在する場合は、その中の1つをランダムに選択してもよいし、全てを選択してもよい。また、探索範囲の下限値に最も近い値をもつ操作履歴群を選択してもよい。ステップS54AからはステップS56に進む。ターゲットユーザの指標Eが、機能Fに対応する指標Eの最小値である場合には、探索目標値に最も近い値の操作履歴群は、ターゲットユーザのものになるので、その場合はYesと判定される。
【0076】
このような処理を行うことにより、ターゲットユーザの指標Eよりもやや効率の高い指標Eをもつ操作履歴群を選択することができる。つまり、ターゲットユーザの操作よりも効率がよく、かつターゲットユーザの操作の効率とあまり大きな差がない操作を選択することができる。例えば、機能Fの指標Eの最小値が「10」であり、2番目に小さい値が「15」であり、3番目に小さい値が「20」であり、4番目に小さい値が「25」であり、探索範囲が「20以上25未満」である場合、最小値「10」に対応する操作は選択されず、3番目に小さい値「20」に対応する操作が選択され、それに基づくガイド情報が作成される。これは、ターゲットユーザに対して、最も効率がよい操作に関する情報を提供するよりも、ターゲットユーザの操作の効率にある程度近いレベルの操作に関する情報を提供した方が、ターゲットユーザにとって、分かり易く、有益である(価値が高い)場合があるという知見に基づく処理である。例えば、効率が最もよい操作は、操作に習熟した上級レベルのユーザが行った操作である可能性が高く、ターゲットユーザが操作に習熟していない初心者である場合、上級ユーザが行った操作に関する情報は、難し過ぎて参考にならない(価値が低い)可能性がある。一方、このような変形処理を行うことにより、ターゲットユーザの操作の効率と大きく違う操作を除外して、ユーザが受容し易い適切な情報を提供できる。つまり、ユーザの操作技能レベルに合った適切な操作補助情報を提供することができる。
【0077】
(ガイド情報の表示)
以上のように、情報処理装置12は、端末装置10が送信したガイド情報リクエストへの応答として、端末装置10に最も効率のよい操作履歴群に基づくガイド情報を送信する。端末装置10は、ガイド情報を受信したら、その情報を表示部26に表示する。以下、情報の表示方法について説明する。図13は、第1実施形態に係る端末装置の情報の表示フローを説明するフローチャートである。端末装置10の制御部20は、ユーザによる端末装置10の操作を監視している。ステップS70において、制御部20は、ガイド情報を表示するトリガとなる、ユーザの所定の操作を検出する。所定の操作として、あらかじめ種々の操作を定義しておくことができるが、ここでは、プログラムのウィンドウを表示する操作が検出対象として定義されているものとする。次にステップS72において、制御部20は、通信部22を介して、情報処理装置12にガイド情報リクエストを送信する。制御部20は、端末装置10を使用するユーザIDもしくは端末装置10の端末IDである操作主体IDと、表示したウィンドウに対応する機能Fとをガイド情報リクエストを作成して、情報処理装置12に送信する。なお、記憶部29には、ウィンドウと機能Fとの対応関係を示すデータ(不図示)が記録されている。なお、1つのウィンドウに複数の機能Fが対応する場合は、それら複数の機能Fをガイド情報リクエストに含めてもよい。次にステップS74において、制御部20は、通信部22を介して、情報処理装置12からガイド情報を受信する。次にステップS76において、制御部20は、ステップS74で受信したガイド情報を、表示部26に表示させる。つまり、表示部26がガイド情報を表示する。上述したように、情報処理装置12は、ガイド情報リクエストに対する応答として2種類のうちの1つのガイド情報を送信するため、ステップS76においては、2種類のガイド情報のいずれかが表示される。以上が、ガイド情報表示処理の処理フローの説明である。
【0078】
上述の説明では、ウィンドウを表示することをトリガとして、ガイド情報を表示しているが、これに限らず他の方法を用いてもよい。例えば、制御部20は、プログラムが起動したことトリガとして、ガイド情報を表示させてもよい。この場合、ステップS72において制御部20は、プログラムが備える全ての機能Fをガイド情報リクエストに入れて情報処理装置12に送信する。また、ステップS74において制御部20は、プログラムが備える全ての機能Fに関するガイド情報を受信する。そして、ステップS76において表示部26は、全ての機能Fに関する情報を表示する。また、ユーザが端末装置10にログインしたことをガイド情報表示のトリガとしてもよい。この場合は、ガイド情報リクエストに、ユーザが使用可能なプログラム(アプリケーションプログラム等)を識別するプログラム識別子と、各プログラムの機能Fとの組み合せを入れて送信する。また、プログラムが起動してから所定の時間が経過したことをトリガとしてもよい。また、メモリ領域Mに変化があることをトリガとしてもよい。この場合は、機能Fの代わりに、値が変化したメモリ領域Mのアドレスをガイド情報リクエストに入れて送信してもよい。情報処理装置12は、機能アドレス情報テーブルを参照して、ガイド情報リクエストに含まれるアドレスを機能Fに変換し、ガイド情報処理を行う。また、ガイド情報リクエストに、メモリ領域Mのアドレスと、そのアドレスの値を入れてもよい。またさらに、ガイド情報リクエストに、メモリ領域Mの変更前の値を入れてもよい。メモリ領域Mの変更後の値やメモリ領域Mの変更前の値をガイド情報リクエストに入れることにより、情報処理装置12は、ユーザが行った操作と同じ目的の操作履歴をより高い精度で特定できるため、より精度の高いガイド情報を提供できる。すなわち、ユーザの意図した目的により近い操作方法を厳選して提供できる。
【0079】
次に、ガイド情報の表示方法について説明する。図14及び図15は、ステップS60で作成された啓蒙ガイド情報を表示している画面の例を示す図である。端末装置10は、啓蒙ガイド情報として、最も効率がよい操作履歴に含まれる操作内容を表示する。図14に示すように、制御部20は、機能Fに対応するウィンドウWが表示されたら、例えばポップアップウィンドウとして、啓蒙ガイド情報を示すウィンドウD1を表示部26に表示させる。ウィンドウD1は、啓蒙ガイド情報として、最も効率がよい操作履歴群の操作内容を表示している。図14の例では、ウィンドウD1は、「機能F2は、ウィンドウW3から左シングルクリックでも設定可能です。」という文章(メッセージ)を表示している。例えば、ターゲットユーザが図9におけるユーザAである場合、ウィンドウD1には、ユーザAが過去に行った操作内容よりも効率の良い、ユーザCの操作内容が表示される。なお、上記のメッセージにおいて、「W3」という記号で示したウィンドウは、過去に効率の悪い操作をした機能Fに対応する「ウィンドウW」と同じであってもよいし、異なっていてもよい。
【0080】
また、端末装置10は、図15のように啓蒙ガイド情報を表示してもよい。すなわち、図15に示すように、制御部20は、機能Fに対応するウィンドウWに対応させて、ターゲットユーザが行った操作よりも効率のよい操作があることを示すウィンドウD2Aを表示部26に表示させる。ウィンドウD2Aは、「機能F2を設定するもっと効率のよい操作方法があります」という文章と、「ここをクリック」という表示D2A1とを表示する。すなわち、ウィンドウD2Aは、より効率のよい操作があることを通知する情報と、効率のよい操作内容を表示させるためのクリック箇所(リンク)とを表示する。ユーザが表示D2A1をクリックすると、ウィンドウD2Bが表示される。ウィンドウD2Bは、最も効率のよい操作履歴群に関する情報であり、最も効率のよい操作履歴群における操作内容を示す情報である。例えば、ターゲットユーザが図9および図10におけるユーザAである場合、ウィンドウD2Bには、ユーザAが過去に行った効率の悪い操作内容(操作手順)と、最も効率のよいユーザCの操作内容(操作手順)とが表示される。なお、図9の例において、ユーザCはスクロール操作を行っているが、スクロール操作は状況によって必要性が変わるため、図15に示すように、ガイド情報の操作手順では省略してもよい。あるいは、スクロール操作などを省略せずにガイド情報に表示してもよい。このように効率の悪い操作内容と、効率のよい操作内容とを対比して表示するため、ユーザにとって非常に分かり易い表示ができる。また、いきなり詳細情報を表示せずに、ユーザが希望した時のみ詳細情報を表示するため、不必要な表示スペースをとることがなく、過剰な情報を表示しないため、ユーザは、本来行うべき操作に集中し易くなる。なお、端末装置10を使用するユーザが、過去にウィンドウWに対応する機能Fを使用していない場合は、ウィンドウD2Bにおける「あなたの操作」欄の表示は省略する。
【0081】
図16及び図17は、ステップS58で作成された称賛ガイド情報を表示している画面の例を示す図である。ターゲットユーザの過去の操作が最も効率の良いものである場合、端末装置10は、称賛ガイド情報を表示する。図16に示すように、制御部20は、機能Fに対応するウィンドウWが表示されたら、例えばポップアップウィンドウとして、称賛ガイド情報を示すウィンドウD3を表示部26に表示させる。ウィンドウD3は、称賛ガイド情報として、この端末装置10を使用しているユーザが過去に実行した操作の効率が最も高かったこと示す情報を表示している。ここでは「前回あなたが機能F2を設定したウィンドウW3からシングルクリックは、最も効率がよい操作方法でした。」という文章(メッセージ)を表示している。
【0082】
また、端末装置10は、機能Fに関する操作のうち、ターゲットユーザの操作が最も効率の良いものであった場合、図17のように称賛ガイド情報を表示してもよい。すなわち、図17に示すように、制御部20は、機能Fに対応するウィンドウWに対応させて、称賛ガイド情報を示すウィンドウD4A、D4B、D4Cを、順次切り替えながら表示部26に表示させる。ウィンドウD4Aは、「ユーザが過去に使用した機能(機能F2)対応する操作内容が、効率性の比較対象となった35人のユーザの中で最も効率が良かった」ことを示している。このように、効率性の比較対象となったユーザの数を表示することにより、閲覧中のユーザに対して「さらに工夫して効率のよい操作を行ってみよう」等のモチベーションを与えることができる。また、ウィンドウD4Aは、ユーザにクリックさせるための表示D4A1も表示している。ユーザが表示D4A1をクリックすると、ウィンドウD4Bが表示される。
【0083】
ウィンドウD4Bは、機能Fに関して効率のよい操作を行ったユーザに関する情報を表示している。図17の例では、ウィンドウD4Bに、効率のよい操作を行った上位5人のユーザの情報が表示されている。「順位」の欄には、操作効率が高い順に付与された順位が表示される。本図の例では、順位「1」のユーザの操作効率が最も高い。「名前」の欄には、あらかじめユーザごとに登録した名前(ニックネームまたは実名)が表示される。「操作効率」の欄には、操作効率の高さを示す指標Eの値が表示される。上述したように、指標Eの値が小さいほど操作効率が高いことを示している。ユーザ名や指標Eなどの画面に表示される情報は、端末装置10が情報処理装置12から受信するガイド情報に含まれている。なお、1人のユーザが複数の操作内容で操作を行った場合、図17に示すように、同一のユーザ(ユーザB)を操作履歴群毎に複数回表示してもよい。また、ウィンドウD4Bは、情報処理装置12の操作抽出部64で抽出されたすべての操作履歴群についてユーザ情報を表示してもよいし、図17に示すように上位の所定数(35人中の5人)に限定して表示してもよい。また、「本日の上位10人」といったように、特定の期間において集計した結果を表示してもよい。さらにウィンドウD4Bは、操作履歴群の情報毎に、ユーザにクリックさせるための表示D4B1も表示している。ユーザが表示D4B1をクリックすると、クリックした表示D4B1に対応する操作履歴群の操作内容を示すウィンドウD4Cが表示される。ウィンドウD4Cには、ウィンドウD4Bで表示された各ユーザの操作の詳細情報として、操作履歴群の操作内容(操作手順)が表示される。図17のような表示を行うことにより、閲覧したユーザは、単に効率のよい操作内容を知ることができるだけでなく、効率のよい操作を行ったユーザについても知ることができる。例えば、ユーザごとに自分の連絡先を開示するか否かの設定をさせておき、制御部20は、連絡先の開示を許可したユーザについては、図17のウィンドウD4Bにおいて、連絡先を表示してもよい。すなわち、操作効率の良いユーザのリストにおいて、メールアドレス、SNS(Social Networking Service)のアカウント情報、電話番号などの連絡先情報を表示してもよい。また、端末装置10と情報処理装置12を連携させて、ユーザ間で情報交換(メッセージ交換)できる機能を提供してもよい。このような表示を閲覧したユーザは、効率のよいユーザに直接連絡を取ることができ、ユーザ同士で情報交換を行うことができるので、さらに効率の良い操作手順などを他のユーザから直接教えてもらうことができる。また、アプリケーションを使用するユーザコミュニティーが活性化されるので、そのアプリケーションが好きな「ファン」が増え、アプリケーションの長期的な収益につながることも期待される。
【0084】
制御部20は、以上のようにして、ガイド情報、すなわち効率のよい操作履歴群に基づく情報を表示する。なお、情報処理装置12は、所定の期間における複数回の操作に関する操作効率を集計して、操作効率ランキングを作成してもよい。例えば、過去1ヶ月間の操作履歴を収集し、その期間にある機能(例えば、機能F2)に関する操作を10回行ったユーザに対しては、10個の指標Eを算出し、それらの代表値(平均値、中央値、最頻値など)を算出する。そして、各ユーザの指標Eの代表値に従って、操作効率ランキングを作成する。さらに、情報処理装置12は、指標Eのばらつき度合いを用いて、操作効率ランキングを作成してもよい。例えば、過去1ヶ月間の操作履歴を収集し、その期間にある機能(例えば、機能F2)に関する操作を10回行ったユーザに対しては、10個の指標Eを算出し、それらの代表値と、それらのばらつき度合いを示す値(分散、標準偏差など)を算出する。そして、代表値が小さく、かつ、ばらつき度合いを示す値が小さいユーザほど、安定的に効率的な操作を行うユーザであると言えるので、そのようなユーザほど上位の順位になるように、操作効率ランキングを作成する。例えば、指標Eの代表値がほぼ同じユーザが2人(ユーザX、ユーザY)いる場合、ユーザXのばらつき度合いを示す値が「3」で、ユーザYのばらつき度合いを示す値が「10」であるとすると、ユーザXの方が安定して同じような効率の操作を行っていると言えるので、ユーザXの順位をより上位にする。また、情報処理装置12は、操作効率の改善率をもとに、操作効率ランキングを作成してもよい。例えば、情報処理装置12は、ある機能(例えば、機能D2)に関する操作効率が1ヶ月間でどの程度改善されたかを示す操作効率の改善率をユーザごとに算出する。この場合、例えば、最新の操作効率を過去の時点(例えば、1か月前)の操作効率で割った値を、操作効率の改善率とする。情報処理装置12は、このように作成した操作効率ランキング(ランキング情報)を端末装置10に送信する。端末装置10は、受信したランキング情報を表示部26に表示する。例えば、制御部20は、情報処理装置12から、各ユーザの操作効率の改善率を示すランキング情報を通信部22を介して受信し、改善率の大きい順にユーザを並べて、操作効率ランキングとして表示部26に表示させてもよい。なお、情報処理装置12ではなく、端末装置10でランキング情報を作成してもよい。
【0085】
また、制御部20は、効率の良い又は悪い操作は、どのメニューのどのボタンがクリックされた場合であるかの情報や、どのコントロールが選択された場合であるかの情報など、GUI(Graphical User Interface)に従った情報を表示部26に表示させてもよい。この場合、例えば、制御部20は、操作があった時のスクリーン座標(例えばマウスのポインタの位置など)の情報を、操作履歴記憶部38へ記録する一方、アプリケーションのフォームやボタンなど各コントロールについて、名称とスクリーン座標との対応情報を別テーブルとして用意し、このテーブルを使用して座標の情報から操作のあったコントロールの名称を取得する。
【0086】
また、制御部20は、効率の良い操作をする為の設定を勧める旨の情報を表示してもよい。例えば、ある機能Fを実行する操作の中で、キーボードショートカットを用いた操作の効率が最も良い場合、制御部20は、キーボードショートカットの設定方法を表示部26に表示させてもよい。このような表示をすることで、キーボードショートカットを設定していない効率の悪いユーザに対して、キーボードショートカットの設定方法を勧めることができる。効率の良い操作方法に関する情報を提供する対象のユーザは、全ユーザでも良いし、指標Eが所定値以上であるなど、効率が所定条件よりも悪いユーザだけにしてもよい。指標Eの所定値は、過去の平均を対象としてもよいし、一番最近の値を対象としてもよい。
【0087】
以上説明したように、本実施形態に係る情報処理装置12は、操作履歴取得部60と、機能特定部62と、操作抽出部64と、指標算出部66と、操作選択部68と、出力制御部70とを有する。操作履歴取得部60は、端末装置10においてユーザの操作によって作成された操作履歴を取得する。機能特定部62は、取得された操作履歴に基づき、ユーザの操作により実行された機能Fを、操作対象機能として特定する。操作抽出部64は、機能特定部62が特定した操作対象機能の情報に基づき、取得された操作履歴の中から所定の操作履歴を抽出する。指標算出部66は、操作抽出部64が抽出した操作履歴について、操作の効率性の高さを示す指標Eを算出する。操作選択部68は、指標Eに基づき、所定の効率性を有する操作履歴を選択する。出力制御部70は、操作選択部68に選択された操作履歴に基づくガイド情報を出力する。
【0088】
端末装置10は、ユーザの操作によって、処理を実行するが、処理を実行するまでのユーザの操作内容は、ユーザによって異なる。従って、端末装置10を用いた作業の効率を改善するためには、ユーザの操作内容(操作手順)の改善が必要となる場合がある。本実施形態に係る情報処理装置12は、ユーザの操作履歴を取得し、操作履歴に基づき特定したユーザの操作により実行された機能Fに基づき、所定の操作履歴を抽出する。そして、情報処理装置12は、抽出した操作履歴の効率性の指標Eに基づき、所定の効率性を有する操作履歴を選択し、その操作履歴のガイド情報を出力する。ユーザは、所定の効率性を有する操作の情報を確認することで、それを参考に処理内容を改善することが可能となる。従って、この情報処理装置12によると、ユーザ操作の効率性向上を補助(サポート)することができる。
【0089】
また、操作履歴取得部60が取得する操作履歴は、ユーザの操作による操作結果が記憶されたメモリ空間36のアドレス情報を含む。機能特定部62は、メモリ空間36のアドレスと機能との対応関係を示す機能アドレス情報を参照し、取得された操作履歴に含まれるメモリ空間のアドレス情報に対応する機能Fを、操作対象機能であると特定する。この情報処理装置12は、メモリ空間36の情報に基づいて操作対象機能を特定するため、操作の目的を精度よく判定することができる。従って、ユーザが行った操作と目的が同じ又は類似する操作を比較対象とし、全く異なる目的の操作を比較対象とせずに、操作の効率性を比較できる。このため、ユーザが行った操作と全く異なる目的の操作に関する情報(ユーザにとって価値の低い情報)を除外して、ユーザの操作効率性の向上に役立つ情報を提供することができる。
【0090】
また、操作抽出部64は、操作対象機能が同一である複数の操作履歴を抽出する。指標算出部66は、抽出された複数の操作履歴それぞれについて、指標Eを算出する。操作選択部68は、指標Eが算出された操作履歴の中から、相対的に指標Eが高い操作履歴を選択する。この情報処理装置12によると、操作対象機能(機能F)が一致する操作履歴の指標E同士を比較して、操作履歴を選択する。従って、ユーザが行った操作と同じ目的の操作の中から、効率性が高い操作を精度よく選択することができる。このため、ユーザの操作効率性の向上に役立つ情報を精度よく提供することができる。
【0091】
また、操作選択部68は、出力制御部70がガイド情報を出力する先の端末装置10を使用するユーザの操作履歴に係る指標Eに基づいて、所定の効率性を規定するための指標Eに関する条件(探索条件)を設定し、設定した条件に合致する操作履歴を選択する。この情報処理装置12によると、ガイド情報の対象となるユーザの指標Eに基づいて操作履歴を選択するため、ユーザの操作技能レベルに応じて適切な操作補助情報を提供することができる。
【0092】
操作履歴取得部60は、複数のユーザに関する操作履歴を取得する。出力制御部70は、操作選択部68で選択された操作履歴に係るユーザと、ガイド情報を出力する先の端末装置10を使用するユーザとが一致するか否かに応じて、異なる種類のガイド情報を出力する。この情報処理装置12によると、ユーザの操作効率性に応じて異なる種類のガイド情報を提供できるので、それぞれにユーザにとって適切な情報を提供することができる。
【0093】
また、操作履歴は、端末装置10においてユーザが入力した操作内容を示す操作入力情報を含む。指標算出部66は、操作抽出部64が抽出した操作履歴の操作入力情報に基づき、指標Eを算出する。出力制御部70は、選択された操作履歴に含まれる操作入力情報をガイド情報として出力する。この情報処理装置12は、操作入力情報に基づき指標Eを算出するため、操作の効率性を高い精度で評価することが可能となり、ユーザの操作の効率性向上に役立つ情報を精度よく提供することができる。
【0094】
また、操作抽出部64は、複数種類の操作内容を含んだ操作(操作履歴群)を抽出する。指標算出部66は、複数種類の操作内容に基づき、指標Eを算出する。この情報処理装置12は、複数の操作内容に基づき指標Eを算出するため、操作の効率性を高い精度で評価することが可能となり、ユーザの操作の効率性向上に役立つ情報を精度よく提供することができる。
【0095】
また、指標算出部66は、複数種類の操作内容毎に異なる重み付けを行って、指標Eを算出する。この情報処理装置12は、複数の操作内容の重み付けを変えることで、操作の効率性を高い精度で評価することが可能となり、ユーザの操作の効率性向上に役立つ情報を精度よく提供することができる。
【0096】
また、指標算出部66は、操作内容として、ユーザの操作時間と、ユーザによる端末装置の操作部24への入力回数と、端末装置10のポインタの移動量との少なくとも1つに基づき、指標Eを算出する。この情報処理装置12は、このような操作内容に基づき指標Eを算出するため、操作の効率性を高い精度で評価することが可能となり、ユーザの操作の効率性向上に役立つ情報を精度よく提供することができる。
【0097】
また、操作選択部68は、指標Eに基づき、ユーザの操作の効率性が最も高い操作を選択する。この情報処理装置12は、効率性が最も高い操作を出力するため、ユーザが効率性の高い操作を確認することが可能となり、ユーザの機器操作の効率性向上を好適に補助可能となる。
【0098】
また、本実施形態に係る情報処理システム1は、情報処理装置12と、情報処理装置12に操作履歴を送信する端末装置10と、を有する。この情報処理システム1は、ユーザの機器操作の効率性向上を好適に補助することができる。
【0099】
(第2実施形態)
次に、第2実施形態について説明する。第1実施形態においては、情報処理装置12は、操作結果がメモリ空間36に記憶されるまでに要したユーザによる操作の操作量を指標とすることで、ユーザの操作量が少ない操作を、効率のよい操作として扱っていた。しかし、効率のよい操作は、ユーザの操作量が少ない操作に限られない。例えば第2実施形態に示すように、効率のよい操作は、操作結果がメモリ空間36に記憶されるまでに要した端末装置10の消費電力量が小さい操作であってもよい。すなわち、第2実施形態に係る情報処理装置12は、ユーザの操作量の代わりに、機器の消費電力量を用いて効率性の評価を行っている点で、第1実施形態とは異なる。第2実施形態において、第1実施形態と構成が共通する箇所は、説明を省略する。
【0100】
図18は、第2実施形態に係る電力換算テーブルの一例を示す図である。第2実施形態に係る情報処理装置12は、記憶部46に、消費電力量と操作種別との関係を示す電力換算情報を記憶している。すなわち、情報処理装置12は、電力換算情報として、図18に例示されるような電力換算テーブルを記憶している。図18に示すように、電力換算テーブルは、単位操作量あたりの消費電力量を、操作種別毎に記憶している。図18の例では、例えば、単位時間あたりの消費電力量「P1」とキーボード30への1回の打鍵あたりの消費電力量「P2」と、ポインタ移動の単位距離あたりの消費電力量「P3」と、マウス32の1回のクリックあたりの消費電力量「P4」と、マウス32のホイールの単位回転角度あたりの消費電力量「P5」とが、電力換算情報として記憶されている。この電力換算情報は、例えば、予め試験などで測定された値を使用してよい。なお、単位時間当たりの消費電力量は、端末装置10の消費電力量であるが、端末装置10とモニター(表示部26)が分かれている場合は、モニターの消費電力量を含んでいてもよい。また、表示部26やモニター(表示装置)の設定条件(例えば、画面の輝度の設定)ごとに、消費電力量を記憶してもよい。また、単位時間当たりの消費電力量は、スピーカ、カメラ等の周辺機器の消費電力量を含んでいてもよい。また、単位時間当たりの消費電力量は、キーボード30、マウス32等の操作部の消費電力量を含んでいてもよい。また、情報処理装置12は、端末装置10の機種および周辺機器の機種ごとに、このような電力換算情報を格納してもよい。また、情報処理装置12は、単位時間当たりの消費電力量を、操作効率を判定する対象とするプログラムを単独で動作させた時の平均消費電力量としてもよい。この場合、他のプログラムや他のプロセスに起因する消費電力を除外して、対象プログラムのみに起因する消費電力を精度よく算出することができる。
【0101】
第2実施形態に係る指標算出部66は、操作抽出部64が抽出した操作履歴群について、電力換算情報に基づき、消費電力量を指標Eとして算出する。指標算出部66は、抽出操作履歴群に含まれる全ての単位操作履歴OPを対象にして、電力換算情報に記録された操作種別毎に操作集約値を算出する。例えば、1つの操作履歴群に含まれるキーボード30の打鍵数の合計値を算出する。次に、指標算出部66は、操作集約値と操作種別毎の電力消費量とを用いて演算処理を行い、操作種別毎の消費電力量を算出する。そして、指標算出部66は、操作種別毎の消費電力量を合計して、指標Eを算出する。例えば、指標算出部66は、次の式(3)により、操作履歴群ごとに指標Eを算出する。
【0102】
E=ε・x+λ・y+η・z+θ・u+μ・v ・・・(3)
【0103】
ここで、xがユーザの操作時間で、yがキーボード30の打鍵数で、zがポインタの移動距離で、uがマウス32のクリック数で、vがマウス32のホイールの延べ回転角度であり、これらは操作履歴群ごとに算出された値である(操作集約値)。また、ε、λ、η、θ、μは、電力換算情報における操作種別毎の単位操作量あたりの消費電力量であり、0より大きい係数である。図18に示す例の場合、εは「P1」、λは「P2」、ηは「P3」、θは「P4」、μは「P5」となる。さらに、指標算出部66は、モニター(表示部26)の輝度dや同時に表示したウィンドウの数wを考慮して、指標E、すなわち操作履歴群あたりの消費電力量を算出してもよい。すなわち、指標算出部66は、例えば次の式(4)により、指標Eを算出してもよい。
【0104】
E=h(d,w)・x+λ・y+η・z+θ・u+μ・v ・・・(4)
【0105】
ここで、hは、dとwとを変数とする関数であり、輝度dが大きくなるほど、また、ウィンドウ数wが大きくなるほど、値が大きくなる関数である。
【0106】
第2実施形態に係る情報処理装置12は、このように算出した指標Eを用いて、操作の効率性を判断する。すなわち、情報処理装置12は、指標Eが小さい操作ほど、消費電力の観点からの効率性がよいと判断する。なお、電力換算情報は、端末装置10が有していてもよい。この場合、端末装置10が単位操作履歴OPごとに消費電力量を算出して、算出した消費電力量を操作履歴に含めて情報処理装置12に送信する。指標算出部66は、端末装置10が算出した消費電力量を用いて、指標Eを算出する。例えば、1つの操作履歴群に含まれる単位操作履歴OPごとの消費電力量の合計値を算出し、指標Eとする。あるいは、端末装置10が指標Eを算出し、その指標Eを情報処理装置12に送信してもよい。
【0107】
以上説明したように、第2実施形態に係る情報処理装置12は、操作結果がメモリ空間36に記憶されるまでに要した端末装置10の消費電力量を指標Eとする。従って、この情報処理装置12は、消費電力の観点から、ユーザの機器操作の効率性向上を好適に補助することができる。第1実施形態と第2実施形態とで説明したように、情報処理装置12は、操作結果がメモリ空間36に記憶されるまでに要したユーザによる操作の操作量と、操作結果がメモリ空間36に記憶されるまでに要した端末装置10の消費電力量との、少なくともいずれかを、指標Eとして取得してよい。また、第1実施形態と第2実施形態とを組み合わせてもよい。すなわち、第1実施形態で算出した操作量の観点からの指標Eと、第2実施形態で算出した消費電力の観点からの指標Eとの両方を用いて、操作効率の総合的な判断を行ってもよい。例えば、ユーザの操作量を示す指標E1と、操作に係る消費電力量を示す指標E2との重み付け加算値を総合的な指標Eとして算出し、第1実施形態で述べた処理と同様な処理を行って、ガイド情報を提供してもよい。
【0108】
(第3実施形態)
次に、第3実施形態について説明する。第3実施形態は、機器の消費電力量を直接測定する点で、第2実施形態とは異なる。第3実施形態において、第2実施形態と構成が共通する箇所は、説明を省略する。
【0109】
図19は、第3実施形態に係る端末装置のブロック図である。図19に示すように、第3実施形態に係る端末装置10Aは、制御部20Aが、バッテリ25Aの残存電力量を検出する点で、第2実施形態とは異なる。制御部20Aは、バッテリ25Aの残存電力量を検出する。
【0110】
図20は、第3実施形態に係る端末装置の処理フローを示すフローチャートである。図20に示すように、制御部20Aは、ユーザからの操作部24への所定の操作(プログラムを立ち上げるための操作)を検出した場合に、プログラムを開始する(ステップS80)。プログラムを開始したら、制御部20Aは、メモリ空間36とバッテリ25Aとの監視を開始する(ステップS82)。具体的には、制御部20Aは、メモリ空間36内の特定のアドレスが割り当てられたメモリ領域Mの値が変化したかを監視すると共に、バッテリ25Aの残存電力量を監視する。そして、制御部20Aは、プログラムの実行によって、表示部26にウィンドウが表示されたかを判断する(ステップS84)。ステップS84からステップS92までは、図5に示す第1実施形態のステップS14からステップS22と同じなので、説明を省略する。
【0111】
ステップS92においてメモリ空間36が変化した場合(ステップS92;Yes)、制御部20Aは、メモリ空間36の変化パターン、すなわち操作結果の情報と、タイマ部28から読み出したメモリ空間36が変化した際の時刻と、消費電力量とを、操作履歴記憶部38に記憶する(ステップS94)。制御部20Aは、ユーザによる操作が行われる前のバッテリ25Aの残存電力量とユーザによる操作が行われた後のバッテリ25Aの残存電力量とを検出し、操作が行われる前のバッテリ25Aの残存電力量から、操作が行われた後のバッテリ25Aの残存電力量を差し引くことで、消費電力量を算出する。ユーザによる操作が行われる前のバッテリ25Aの残存電力量は、例えば、ウィンドウが表示される直前の残存電力量であり、ユーザによる操作が行われた後のバッテリ25Aの残存電力量は、メモリ空間36が変化した際のバッテリ25Aの残存電力量である。すなわち、制御部20Aは、操作履歴群ごとの消費電力量を算出する。そして、操作履歴記憶部38に含まれる操作履歴テーブルの操作結果フィールドに、メモリ領域のアドレスおよびそのアドレスの値と合わせて、操作履歴群の消費電力量を記録する。
【0112】
その後、制御部20Aは、操作履歴と操作主体IDとを関連付けて、情報処理装置12に送信する(ステップS96)。そして、制御部20Aは、プログラムを終了するかを判断し(ステップS98)、終了しない場合(ステップS98;No)、ステップS84に戻り処理を続け、終了する場合(ステップS98;Yes)、メモリ空間36及びバッテリ25Aの監視を終了して(ステップS99)、本処理を終了する。
【0113】
第3実施形態に係る情報処理装置12は、このように消費電力量の情報を含む操作履歴を取得する。第3実施形態に係る操作抽出部64、第1実施形態及び第2実施形態と同様に操作履歴群を抽出する。そして、第3実施形態に係る指標算出部66は、操作履歴から、操作履歴群毎の消費電力量を読み出して、読み出した消費電力量を、指標Eとして取得する。この場合、指標算出部66は、指標Eを算出せずに、端末装置10Aから取得するので、指標取得部であるともいえる。第3実施形態においても第1実施形態と同様に、情報処理装置12は、指標Eの値が小さい操作ほど、効率的な操作であると判定する。つまり、消費電力量の少ない操作ほど、効率的な操作であると判定される。なお、端末装置10Aは、操作履歴群ごとの消費電力量を算出せず、単位操作履歴OPごとに残存電力量を記憶してもよい。この場合、情報処理装置12は、単位操作履歴OPごとの残存電力量を取得し、ウィンドウが表示された単位操作履歴OPにおける残存電力量から、メモリ空間36が変化した単位操作履歴OPにおける残存電力量を差し引いて、1つの操作履歴群の消費電力量を算出して、指標Eとしてもよい。
【0114】
なお、短時間の操作による消費電力はごくわずかなので、第3実施形態に係る情報処理装置12は、同じ機能Fでの消費電力量を複数回記録しておき、回数あたりの平均の消費電力量を求めて、その平均電力量を指標Eとして取得してもよい。なお、バッテリ25Aの残量の差分から消費電力量を検出した場合、古いバッテリの方が減りが早い為、消費電力が大きいという判定になるおそれがある。従って、バッテリ25A又は端末装置10機器)の製造年などに基づき、指標Eに補正をかけてもよい。すなわち、製造年が古い場合の操作履歴群ほど、指標Eが小さくなるように補正をかけてもよい。また、同じ端末装置10で同時に複数のプログラムを使用していると、どのプログラムのどの機能がどのくらい電力消費しているのかを検出することが困難となるおそれもある。従って、同じような環境のユーザ、すなわち、同じ又は近い数のプログラムを使用している端末装置10同士を比較してもよい。また、表示部26やモニター(表示装置)の設定条件(例えば、画面の輝度の設定)に応じて、計測された消費電力を補正してもよい。例えば、同一の操作に対して、画面の輝度を高く(明るく)設定している端末装置10Aの方が、輝度を低く(暗く)設定している端末装置10Aよりも、消費電力量が多くなる。このため、画面の輝度を高く設定しているほど、計測された消費電力量の値をより小さな値に補正してもよい。つまり、同一の操作に対して、表示部26やモニター(表示装置)の設定条件によらずに、一律の消費電力量が得られるように補正処理を行ってもよい。あるいは、画面の輝度を高く設定しているのは、その必要のある操作(例えば、ポインタを細かく移動させる操作等)を行うためであるという観点に立てば、計測された消費電力量の補正を行わずに使用してもよい。
【0115】
第3実施形態では、端末装置10で実測した消費電力を用いるため、第2実施形態のような電力換算情報を予め準備する必要がない。一方、第2実施形態では、他のプログラムの影響やその他の外乱要因の影響を低減して、対象のプログラムに関する消費電力を精度よく算出することが可能となる。
【0116】
また、消費電力以外にも、例えばデータ通信量を監視して、データ通信量を、ユーザの操作効率としてもよい。例えば、情報処理装置12は、操作に係る通信データ量を指標Eとして算出し、通信データ量が少ないほど、効率のよい操作と判定してもよい。また、端末装置10への負担を考慮して、端末装置10にとっての効率を考慮してもよい。この場合、端末装置10への負担の度合い、例えば端末装置10の発熱量、端末装置10の温度上昇、端末装置10に含まれるモーターの回転数などに基づいて、指標Eを算出してもよい。この場合、端末装置10への負担の度合いが小さいほど、効率のよい操作と判定する。また、端末装置10の耐久性を考慮して操作効率を判定してもよい。例えば、マウス32のクリック数が1000万回まで保証されており、キーボード30の打鍵数が3000万回まで保証されている場合、マウス32のクリック1回がマウス32の寿命に与える影響よりも、キーボード30の打鍵1回がキーボード30の寿命に与える影響の方が少ない。このため、マウスクリック1回とキーボード打鍵1回で、どちらも同じ機能Fを実行できる場合は、端末装置10の寿命に及ぼす影響の少ないキーボード30を使った方が効率のよい操作と判定できる。従って、情報処理装置12は、例えば、キーボード30の打鍵数よりもマウス32のクリック数の重み付けを大きくして、指標Eを算出する。情報処理装置12は、このような評価尺度を用いることにより、端末装置10の寿命がなるべく長くなるような操作方法に関する情報をユーザに提供することができる。
【0117】
また、情報処理装置12は、端末装置10の耐久性の他に、端末装置10の価格(維持費用)を考慮して、操作効率を判定してもよい。例えば、マウス32のクリック数が1000万回まで保証されており、キーボード30の打鍵数が3000万回まで保証されており、マウス32の価格が2千円、キーボード30の価格が1万円である場合を想定する。この場合、マウス32のクリック1回により消耗される金銭価値(2千円/1000万回)と、キーボード30の打鍵1回により消耗される金銭価値(1万円/3000万回)を比較すると、マウス32の金銭価値の低下の方が少ないため、マウス32を使った操作の方が効率のよい操作と判定できる。従って、情報処理装置12は、例えば、キーボード30の操作よりもマウス32の操作の重み付けを大きくして、指標Eを算出する。情報処理装置12は、このような評価基準を用いることにより、維持費用(ランニングコスト)がより少ない操作方法に関する情報をユーザに提供することができる。
【0118】
以上、本発明の実施形態を説明したが、これら実施形態の内容により実施形態が限定されるものではない。また、前述した構成要素には、当業者が容易に想定できるもの、実質的に同一のもの、いわゆる均等の範囲のものが含まれる。さらに、前述した構成要素は適宜組み合わせることが可能である。さらに、前述した実施形態の要旨を逸脱しない範囲で構成要素の種々の省略、置換又は変更を行うことができる。
【符号の説明】
【0119】
1 情報処理システム
10 端末装置
12 情報処理装置
14 ネットワーク
20、40 制御部
22、42 通信部
24 操作部
26、44 表示部
28 タイマ部
29、46 記憶部
30 キーボード
32 マウス
34、50 プログラム記憶部
36 メモリ空間
38、52 操作履歴記憶部
54 機能アドレス情報記憶部
60 操作履歴取得部
62 機能特定部
64 操作抽出部
66 指標算出部
68 操作選択部
70 出力制御部
E 指標
F 機能
M メモリ領域
OP 単位操作履歴
図1
図2
図3
図4
図5
図6
図7
図8
図9
図10
図11
図12
図13
図14
図15
図16
図17
図18
図19
図20