(実施例1)
本発明を具体的に説明する前に、まず概要を述べる。本発明の実施例は、処理装置と複数の端末装置とがネットワークを介して接続された処理システムに関する。処理装置は、所定のプログラムを使用する複数のユーザの設定情報(登録辞書、ショートカット、マクロ等)を収集するとともに、ユーザが作成した成果物(ファイル)に関する情報を収集する。また、処理装置は、ファイル作成操作の「効率性」である操作効率を示す指標をユーザ毎に算出し、ターゲットユーザよりも操作効率の良いユーザを特定し、特定したユーザの設定情報(推奨設定情報)をターゲットユーザに通知する。
図1は、処理システム1000の構成を示す。処理システム1000は、端末装置100と総称される第1端末装置100a、第2端末装置100b、第3端末装置100c、ネットワーク300、処理装置400を含む。処理装置400は、情報処理装置400とも呼ばれる。処理システム1000に含まれる端末装置100の数は「3」に限定されない。第1端末装置100aは第1ユーザ200aに使用され、第2端末装置100bは第2ユーザ200bに使用され、第3端末装置100cは第3ユーザ200cに使用される。第1ユーザ200a、第2ユーザ200b、第3ユーザ200cはユーザ200と総称される。なお、1つの端末装置100を複数のユーザ200が使用してもよい。その場合、異なるユーザアカウントを用いてログイン処理を行い、端末装置100を使用するユーザ200を識別することが望ましい。
各端末装置100では、ユーザ200による操作によって、同一のプログラム(本実施例ではアプリケーション)が動作しており、端末装置100は、ユーザ200の操作データ(操作履歴)をネットワーク300経由で処理装置400に送信する。ネットワーク300は、例えば、インターネット、LAN(Local Area Network)等であり、有線であっても無線であってもよい。処理装置400は、複数のユーザ200の操作データを記憶し、後述する処理を実行する。
図2は、端末装置100の構成を示す。端末装置100は、操作部110、メモリ領域120、プログラム記憶部130、辞書140、操作記録部150、制御部160、タイマ170、送受信部180、表示部190を含む。本実施例における端末装置100は、パソコン、タブレット端末、スマートフォン、スマートウォッチ等の装置であり、ユーザ200が文字を入力することが可能な装置である。
操作部110は、キーボードやマウス等で構成され、ユーザ200からの操作を受けつけるインターフェースである。メモリ領域120は、半導体メモリで構成され、プログラム記憶部130に記憶されたプログラムを実行する際に使用される一時記憶部である。プログラム記憶部130はHDD(Hard Disk Drive)やSSD(Solid State Drive)といった不揮発性の記録媒体で構成され、ユーザ200によって使用されるプログラムを記憶する。プログラムの一例はアプリケーションである。辞書140は、ユーザ200によって登録され、例えばかな漢字変換等に使用される。1つの端末装置100を複数のユーザ200が使用する場合、基本的にはユーザ毎に辞書140が作成される。ただし、ユーザ間で1つの辞書140を共有できるようにしてもよい。この場合は、端末装置100毎に作成される。辞書140は、語句と、語句の読みと、登録日時とを関連付けて記憶する。さらに辞書140に、ユーザ200を識別するユーザIDまたは端末装置100を識別する端末IDを記録してもよい。操作記録部150は、ユーザ200による操作の履歴を記録する。制御部160は、端末装置100全体を制御する。タイマ170は時間を計測する。送受信部180は、図1のネットワーク300を介して処理装置400と通信する。表示部190は、実行されたプログラムによって生成される画面を表示する。
本実施例において、プログラムは文書ファイルを作成する機能をもつワープロソフトやテキストエディタなどのアプリケーション(アプリケーションプログラム)である場合を例に説明する。また、メールソフトやメッセージソフトについても、1通のメールや1通のメッセージを1つのファイルとみなして本実施例を適用可能である。また、これらに限らず、他の種類のアプリケーションであってもよい。また、アプリケーションに限らずOS(Operating System)やファームウェアであってもよい。
制御部160はタイマ170を用いて、アプリケーションの備える機能毎に、ファイルを新規作成した時刻、ユーザ200が操作部110を介して指示を入力した時刻、ファイルを保存した時刻などを計測し、操作記録部150に記録する。タイマ170は端末装置100内に設置されているが、外部からの時刻を受信するなどしてもよい。記録する情報は、操作や時刻以外にも、ユーザ200が作成したファイルの種類や数、サイズ、入力された文字数等の成果物の量(成果量)であってもよい。
本実施例において、プログラムはユーザにより設定された辞書140を利用して(用いて)、成果物を作成する。本実施例において、典型的な成果物はファイル(データ)である。ただし、端末装置100内に保存されるファイルに限らず、送受信部180を介してネットワーク等に送信されるデータであってもよい。辞書140は、設定情報の1つであるため、プログラムはユーザにより設定された設定情報を用いて、成果物を作成する、ともいえる。つまり、成果物は設定情報を用いて作成されている。また本実施例において辞書140は、辞書140を利用するプログラムとは独立した存在であるが、プログラムに含まれていてもよい。また、辞書140の登録内容を追加、削除、変更するための辞書管理プログラムを用いてもよいし、辞書140を利用するプログラム(ワープロソフトやテキストエディタなどのアプリケーション)が、辞書140の追加、削除、変更機能を備えていてもよい。いずれにしても、プログラムは辞書140を用いるため、辞書140はプログラムに係る設定情報であるともいえる。なお、本実施例では端末装置100で動作するプログラム(アプリケーション)が辞書140を使用する場合を説明するが、辞書140を使用するものは必ずしもプログラムに限らない。例えば、端末装置100あるいは他の装置(不図示)のハードウエアが辞書140を用いて、成果物(ファイル、データ等)を作成してもよい。
各端末装置100は、各ユーザ200が操作し、操作記録部150に記録された操作履歴を処理装置400にネットワーク300を介して送信する。処理装置400に送信するタイミングとしては、操作履歴が追加、更新される都度送信してもよいし、1時間に1回など所定の周期で送信してもよい。また、送受信部180は、プログラムが用いる設定情報を送信するとともに、プログラムを用いて作成された成果物の情報を送信する。設定情報は、例えば、辞書140の登録内容であり、これは、文字変換(文字入力)のための登録辞書であるといえる。文字変換とは、例えば入力された「かな」を「漢字」に変換する「かな漢字変換」である。また例えば、入力されたアルファベットを英単語や英文に変換する処理であってもよい。制御部160は、送受信部180を制御して、所定のタイミング、例えば辞書140が変更されたタイミングで、辞書140の登録内容と、ユーザIDまたは端末IDとを関連付けて処理装置400に送信する。
この構成は、ハードウエア的には、任意のコンピュータのCPU、メモリ、その他のLSIで実現でき、ソフトウエア的にはメモリにロードされたプログラムなどによって実現されるが、ここではそれらの連携によって実現される機能ブロックを描いている。したがって、これらの機能ブロックがハードウエアのみ、ソフトウエアのみ、またはそれらの組合せによっていろいろな形で実現できることは、当業者には理解されるところである。例えば、本実施例をソフトウエアを用いて実施する場合、ユーザが操作を行うアプリケーションとは別のプログラムとして実施することも可能であり、アプリケーションの機能の一部として一体的に実施することも可能である。
図3は、処理装置400の構成を示す。処理装置400は、送受信部410、操作履歴DB420、辞書DB430、取得部440、効率判定部450、制御部460を含む。送受信部410は、各端末装置100と図1のネットワーク300を介してデータを送受信する。操作履歴DB420は、各端末装置100から受信した操作履歴を保存する。辞書DB430、取得部440、効率判定部450については後述する。制御部460は、処理装置400全体を制御する。
図4は、辞書DB430のデータ構造を示す。前述のごとく、端末装置100は、ユーザID(ユーザ識別子)と辞書登録内容を処理装置400に定期的に送信する。辞書DB430は、各ユーザ200の端末装置100の辞書登録内容を集め、複数のユーザ200の辞書登録情報を記録したものである。図4の例に示すように、各ユーザ200のユーザID毎に登録された語句(単語など)と、その読み(読み方)と、語句が登録された日時(登録日時)が記録されている。登録日時は、日付だけでもよく、時分秒などの時刻の情報を含んでいてもよい。また、辞書DB430のデータ(行)を識別するための設定IDが付与されている。また、語句の種類(アルファベット、平仮名、片仮名、漢字、数字、記号、絵文字等)を記録してもよい。なお、本実施例においては、ユーザ200(端末)毎に辞書登録をしているが、さらにアプリケーション固有の辞書を登録してもよい。
図5は、端末装置100の動作を示すフローチャートである。ステップS7000において、端末装置100の制御部160は、操作部110におけるユーザ操作の監視を開始する。ステップS7010において、ユーザ200が操作部110を介して所定の操作を入力し、アプリケーションを起動する。ステップS7020において、端末装置100の制御部160は、アプリケーションの実行によって、ファイルが新規作成されたか否かを判定する。YESの場合、ステップS7030に進み、Noの場合、ステップS7040に進む。ステップS7030において、制御部160は、ファイルを新規作成した時刻を端末装置100の操作記録部150へ記録する。
ステップS7040において、端末装置100の制御部160は、ユーザ200が、マウス、キーボードなどで構成される端末装置100の操作部110を介して何らかの操作をしたか否かを判定する。YESの場合、ステップS7050に進み、Noの場合、ステップS7060に進む。ステップS7050において、制御部160は、操作の種別、操作があった時刻を操作記録部150へ記録する。ユーザ200がファイルを保存した場合は、保存日時とファイルの文字数とバイト数が記録される。ここで文字数は文字の種類(アルファベット、平仮名、片仮名、漢字、数字、記号、絵文字等)毎に記録してもよい。また、漢字をさらに複数の区分に対応させて、区分毎の文字数を記録してもよい。例えば、JIS漢字コードの第1水準~第4水準毎に、漢字の文字数を記録してもよい。また、JIS漢字コードに限らず、一般的によく使われる漢字と、一般的にあまり使用されない漢字とを区別して記録してもよい。また、ファイル作成においてユーザ200がキーを打鍵した数(キー入力数)を記録してもよい。このキー数は、かな漢字変換(文字変換)前の文字数に相当する。また、ファイル作成においてユーザ200が使用した、かな漢字変換の変換回数を記録してもよい。一般的には、かな入力モードにおいて「スペース」キーを押すことにより、漢字に変換されるため、ファイル「オープン」から「クローズ」までのかな入力モードにおける「スペース」キーの押下回数をカウントすればよい。
ステップS7060において、端末装置100の制御部160は、アプリケーションが終了したか否かを判定する。YESと判定されたとき、ステップS7070に進み、Noと判定された場合は、ステップS7020に戻って処理を繰り返す。ステップS7070において、端末装置100の制御部160は、それまで操作記録部150に蓄積された操作履歴データにユーザIDを付加して処理装置400に送信する。なお、ユーザIDの代わりに端末IDを用いてもよい。特に、1つの端末装置100を複数のユーザ200が共用しない環境においては、端末IDで十分である。また、端末IDとユーザIDを両方送信してもよい。ユーザIDと端末IDは、ともに操作の主体に関する識別子なので、これらを総称して主体識別子と呼ぶ場合もある。以下では、主体識別子としてユーザIDを用いる場合を例に説明するが、端末IDを用いて同様な処理をすることも可能である。アプリケーション終了後に操作履歴を送ることに限らず、アプリケーションの起動中、例えばS7050の処理の一部として、操作履歴を処理装置400に送信してもよい。ステップS7080において全ての監視を終了する。なお、図5のフローチャートでは、アプリケーションとは別のプログラムがユーザ操作を監視する例を説明したが、アプリケーション自体がユーザ操作を監視する機能を備えていてもよい。その場合、S7010を実行した後にS7000を実行する。また、アプリケーションを終了する前に、操作履歴を処理装置400に送信する。
図6は、処理装置400の動作を示すフローチャートである。以下の説明においては、推奨設定情報を提供する対象となるユーザ200をターゲットユーザ200xまたはカレントユーザ200xと称する。ステップS8000において、処理装置400は送受信部410を介して端末装置100から送信された操作データを受信し、操作履歴DB420に格納する。図7は、操作履歴DB420のデータ構造を示す。本図に示すように、操作履歴DB420には、複数のユーザ200の操作履歴がユーザID毎に記録されている。操作履歴DB420は、操作を行ったユーザのユーザIDと、操作対象のアプリケーションの名称(アプリケーション名)または識別子(アプリケーションID)と、操作日時(操作時刻)と、操作種別(種別)と、操作内容とを関連付けて記憶する。本図に示す例では、操作日時は、「年-月-日 時:分:秒.ミリ秒」の形式で示されている。なお、日付やミリ秒の格納を省略してもよく、「時:分:秒」の情報を記憶するだけでもよい。また、操作履歴DB420のデータ(行)を一意に識別するための履歴IDが付与されている。本図に示す例では、履歴ID「8」の種別「保存」の操作履歴において、保存したファイルの容量(バイト数)と、文字数を記録している。さらに文字を細分化して、平仮名の数、片仮名の数、記号の数、数字の数、アルファベットの数、漢字の数、第1水準~第4水準の漢字の数を記録している。また、キー入力数、変換回数(かな漢字変換の回数)を記録している。操作内容と関連付けて保存した時点毎にファイルの容量や文字数等を記録することにより、操作効率を精度よく算出することができる。一方、処理を簡略化したい場合には、このようなファイルの詳細な情報を履歴DBに保存せずに、ファイル名(ファイルパス名)だけを履歴DBにしてもよい。その場合、操作効率を算出す際に、保存されたファイル名をもとにファイルの内容(中身)を読み出し、ファイルの文字数等を算出すればよい。ただし、ファイル名だけの保存だと、操作効率の算出精度が低下する場合がある。図7の履歴ID「5」では、キーボードのキー1つ1つの入力内容の記録を省略し、所定時間内に連続的に行われたキー入力をまとめて記録している。つまりこの例では、所定の時間内に入力されたキー入力数(打鍵数)と、入力文字数を記録している。この方法とは別に、キー1つ1つの入力内容を詳細に記録してもよい。
図8は、操作履歴DB420の別のデータ構造を示す図である。図8は、図7の履歴ID「5」の操作にあたる第1ユーザ200aのキーボードによる入力の詳細を示した図である。図8に示すように、キー1つずつの操作内容(入力内容)と、操作日時(入力日時、入力時刻)とを記録している。キー入力は、1秒間に複数回なされる場合もあるため、入力日時は、ミリ秒単位など、必要十分な時間精度で記録することが望ましい。履歴ID「14」および「15」において「Space」キーが入力されているが、これはかな漢字変換操作における「変換」キーである。また履歴ID「16」における「Enter」キーは、かな漢字変換操作における「確定」キーである。本図は、文字変換の変換操作を2回行った後に、確定操作を行った例を示している。これらの操作履歴を「保存」の操作で記録してもよい。図6に戻る。
ステップS8010において、取得部440は、提供情報作成処理で用いる操作履歴を操作履歴DB420から取得(選択)する。ここでは、複数のユーザ200のそれぞれに対して、成果物を作成するための操作を含む操作履歴が取得される。具体的には、以下のいずれかの方法で取得すればよい。
(方法1)取得部440は、全ての操作履歴を選択する。操作履歴DB420に格納された操作履歴は、ユーザ200が文字を入力してファイルを作成したという共通性をもっており、広い意味で共通の目的の操作であるといえる。この方法は、操作履歴の数が少ない場合に適している。
(方法2)取得部440は、ターゲットユーザ200xが主に使用しているアプリケーションを特定し、そのアプリケーションに関する操作履歴を選択する。例えば、ターゲットユーザ200xの操作履歴の大半が第1アプリケーションである場合、第1アプリケーションに関する操作履歴を全て選択する。この方法は、操作履歴の数がある程度多い場合に適している。特定のアプリケーションの操作履歴に限ることにより、後述する効率算出処理の精度が高くなる。
(方法3)取得部440は、ターゲットユーザ200xが使用しているアプリケーションと同じ性質をもつアプリケーションに関する操作履歴を選択する。例えば、文書ファイルを作成するアプリケーションを、文字の大きさや装飾を自由に設定できるワープロソフトと、基本的にプレーンテキストを編集するテキストエディタに大きく分けることができる。ワープロソフトとテキストエディタは、使用目的や用途が異なるため、これらを分けて処理を行う。例えば、ワープロソフト1、ワープロソフト2、ワープロソフト3を「ワープロソフト」グループとし、テキストエディタ1、テキストエディタ2、テキストエディタ3を「テキストエディタ」グループとする。そしてターゲットユーザ200xが、ワープロソフトグループと、テキストエディタグループのどちらを多く使っているかを判定し、使用頻度の高いグループのアプリケーションに関する操作履歴を選択する。この方法は、操作履歴の数が中程度(方法1に適する数よりは多く、方法2に適する数よりは少ない)場合に適している。
(方法4)取得部440は、ターゲットユーザ200xが使っているアプリケーションの割合と似たような組合せでアプリケーションを使っているユーザ200を特定し、そのユーザ200の操作履歴を選択する。例えば、ターゲットユーザ200xが第1アプリケーションを50%、第2アプリケーションを30%、第3アプリケーションを20%の割合で使っている場合、この割合に近いユーザ200(例えば、第1アプリケーションの割合が45%~55%、第2アプリケーションの割合が25%~35%、第3アプリケーションの割合が15%~25%など)を特定し、そのユーザ200の操作履歴を選択する。ユーザ200毎のアプリケーション使用割合は、ユーザ200が入力した文字数をアプリケーション毎に集計して算出すればよい。ユーザ200が複数のアプリケーションに共通する辞書を使って文字入力を行う環境においては、複数のアプリケーションの組み合せが似たユーザ200の操作履歴に限定することにより、操作効率の比較精度が向上する。
(方法5)取得部440は、ファイルの文字数やファイルサイズに関してターゲットユーザ200xと傾向の似た操作履歴を選択する。例えば、ターゲットユーザ200xが作成したファイルの文字数が、1ファイルあたり2000文字である場合、1ファイルあたり文字数がそれに近い(例えば、±10%の差に収まる1800文字~2200文字)の操作履歴を選択する。あるいは、ユーザ200毎の1ファイルあたりの平均文字数を算出し、平均文字数が1800文字~2200文字のユーザ200を特定し、特定したユーザ200の操作履歴を選択してもよい。辞書内容の語句や入力された文字数は、文字の種類(アルファベット、平仮名、片仮名、漢字、数字、記号、絵文字等)毎に分けて算出してもよい。また、ファイルの文字数だけでなく、ファイルサイズ(バイト数)を用いて、同様の処理を行ってもよい。
(方法6)取得部440は、ファイルの内容を分類し、ターゲットユーザ200xが作成したファイルと傾向の近いファイルに関する操作履歴を選択する。例えば、ファイルに含まれるテキストデータを解析し、ファイルの内容(主題)をいくつかのカテゴリに分類する。具体的には、ファイルに記載されているテキストの主題(トピック)が、例えば、「政治」、「経済」、「健康」、「グルメ」、「ファッション」、「スポーツ」、「科学」、「コンピュータ」、「ゲーム」等の所定のカテゴリに当てはまる度合いを数値化する。取得部440は、ターゲットユーザ200xの作成したファイルに関して、当てはまり度合いの高いカテゴリを特定する。例えば、ターゲットユーザ200xは、「健康」と「スポーツ」に関して記述したファイルを作る傾向が高いと判定した場合、ファイルのトピックが「健康」または「スポーツ」に該当するファイルを特定し、特定したファイルに関する操作履歴を選択する。
あるいは、取得部440は、ユーザ200毎に当てはまり度合いの高いカテゴリを特定し、ターゲットユーザ200xに傾向が似た他のユーザ200を特定し、特定したユーザ200に係る操作履歴を選択してもよい。具体的には、ユーザ200毎に作成したファイルのカテゴリ情報を作成する。ターゲットユーザ200xのカテゴリjに関する当てはまり度合いをQ[x][j]、他の第Yユーザ200yのカテゴリjに関する当てはまり度合いをQ[y][j]として、次のようにターゲットユーザ200xと他の第Yユーザ200yとの類似度S[x][y]を算出する。
ここでnはカテゴリの総数である。取得部440は、S[x][y]が所定値以上のユーザ200、あるいはS[x][y]が高い順に所定数のユーザ200を類似ユーザ200として特定し、特定したユーザ200に係る操作履歴を選択する。
(方法7)取得部440は、ターゲットユーザ200xが作成した全ファイルに使用されている単語のうち、それらの語句が辞書に1つ以上登録されている他のユーザ200(ターゲットユーザ200x以外のユーザ200)の操作効率を比較対象とする。図9は、辞書DB430と作成ファイルに使用されている語句の例を示す。本図において、ターゲットユーザ200xは第1ユーザ200aであるものとする。図示のごとく、第1ユーザ200aの辞書に語句1が登録してあり、第2ユーザ200bから第6ユーザ200fまでの辞書には語句1、語句2、語句3、語句4が図示のごとく登録されているとする。一方、第1ユーザ200aはファイル1~4を作成したとする。第1ユーザ200aが作成したファイル1には他のユーザ200の辞書登録語句のうち、語句1と語句2が使用されており、同様にファイル2には語句1と語句3が、ファイル3には語句2が使用されていることを示している。ファイル4は語句1~語句4のうちどの語句も使用されていないことを示している。このような例の場合、第1ユーザ200aが作成したファイルには語句1、語句2、語句3が使用されており、それらの語句のうち1つ以上を辞書に登録しているユーザ200は、第6ユーザ200f以外の第2ユーザ200bから第5ユーザ200eとなる。したがって、取得部440は、ターゲットユーザ200x(ここでは第1ユーザ200a)に対して、第2ユーザ200bから第5ユーザ200eの操作履歴を選択する。
(方法8)取得部440は、ターゲットユーザ200が作成した全ファイルに使用されている単語のうち、それらの語句が辞書に1つ以上登録されているユーザ200で、かつそれらの語句を含むファイルを作成したときの操作履歴の操作効率のみを比較対象とする。例えば図9のように、第1ユーザ200aから第6ユーザ200fの辞書が登録されており、各ユーザ200がファイル1~4を作成しているものとする。上述したように本図において、ターゲットユーザ200xは第1ユーザ200aである。このような例の場合、第1ユーザ200aが作成したファイルには語句1、語句2、語句3が使用されており、それらの語句のうち1つでも辞書に登録しているユーザ200は第6ユーザ200f以外の第2ユーザ200bから第5ユーザ200eとなる。また、取得部440は、それら第2ユーザ200bから第5ユーザ200eのうち、語句1~3が使用されているファイルを作成したときの操作履歴を選択する。例えば、第2ユーザ200bについては、語句1および語句2が含まれたファイル1と、語句1が含まれたファイル2と、語句2が含まれたファイル3を特定し、この3つのファイルに関する操作履歴を選択する。また、第1ユーザ200aについては、語句1~3が含まれるファイル1~3(ファイル4以外)に関する操作履歴を選択する。
また、上記の方法1~方法8において、ファイルに含まれる文字の種類が、所定の条件を満たす場合に、そのファイルに関する操作履歴を選択するようにしてもよい。例えば、ファイルにおける漢字の割合が所定値以上(例えば、30%以上)の場合に、その操作履歴を処理対象として選択し、それ以外のファイルは処理対象から除外してもよい。また、ファイルの中の辞書に登録された語句(文字)が、ファイル全体の文字数に占める割合が所定値(例えば、10%)以上であるファイルに関する操作履歴を選択してもよい。このような処理を行うことにより、辞書と操作効率との関連性をより強めることができる。図6に戻る。
ステップS8020において、効率判定部450が、ステップS8010で選択された操作履歴を用いて、ターゲットユーザ200xに提供する情報(提供情報)を作成する処理を実行する。なお、提供情報は推奨情報とも呼ばれる。その際、取得部440によって、複数のユーザ200のそれぞれに対して、プログラムを用いて作成された成果物の情報が取得される。図10は、処理装置400による、ステップS8020の提供情報(推奨情報)作成処理の詳細を示すフローチャートである。まず、S8210において、効率判定部450は、ステップS8010で選択された操作履歴を対象にして、該当するファイル毎の操作効率(作成効率)を算出する。例えば、ファイルの文字数をファイル作成に要した時間で割った値を、ファイル作成の操作効率とする。あるいは、ファイルサイズをファイル作成に要した時間で割った値を、ファイル作成の操作効率としてもよい。
図11(a)-(b)は、アプリケーションの画面と、ユーザ200の操作を時間軸で示した例を示す。ファイルの作成に要した時間、つまり操作時間は、例えば、図11(a)のようにファイルを新規作成した時刻から、ファイルを保存(クローズ)した時刻までの経過時間としてもよいし、例えば、図11(b)のように文字入力を開始した時刻から、ファイルを保存(クローズ)した時刻までの経過時間を操作時間としてもよい。例えば、操作時間あたりの入力文字数を操作効率とする場合、1ファイルの操作効率を示す指標Eは、nを1ファイルの文字数、tを操作時間とすると、(2)式に従って算出される。
ここでαは正の所定値である。g、hは所定の単調増加関数である。関数gおよび関数hは、線形関数であっても、非線形関数であってもよい。つまり、操作時間tが短いほど、かつファイルの文字数nが多いほど、指標Eの値が大きな値となる。すなわち、指標Eが大きいほど、ファイル作成に係る操作効率がよいといえる。
また、効率判定部450は、(2)式における文字数nの代わりに、ファイルの漢字数naを用いて、(3)式に従って指標Eを算出してもよい。つまり所定の種類の文字(文字種)の文字数をもとに指標Eを算出してもよい。
指標Eの算出に用いる文字種を漢字(辞書により出力される文字種)に限定することにより、辞書の優劣をより直接的に指標Eに反映させることができる。
また、効率判定部450は、ファイルの漢字数naと、ファイル作成時にユーザ200によってキーが入力された回数(キー入力数)nbとを用いて、(4)式に従って指標Eを算出してもよい。
ここで、βは正の所定値、j、kは単調増加関数である。すなわち指標Eは、キー入力1回あたりに出力される漢字数となる。この処理は、同じ数の漢字を含むファイルを作成した場合、ユーザ200のキー入力数が少ない方が、操作効率がよいという知見に基づく処理である。
また、効率判定部450は、ファイルの漢字数naと、ファイル作成時にかな漢字変換が実行された回数(変換回数)mとを用いて、(5)式に従って指標Eを算出してもよい。
ここで、γは正の所定値、j、qは単調増加関数である。すなわち指標Eは、かな漢字変換1回あたりに出力される漢字数となる。この処理は、同じ数の漢字を含むファイルを作成した場合、かな漢字変換の回数が少ない方が、操作効率がよいという知見に基づく処理である。
(2)式~(5)式に示すように、本実施例では、プログラムが生成する成果物の量(ファイルの文字数など)を操作に係るコスト(操作時間、操作回数など)で割ることにより、操作効率を算出している。これは、操作時間あるいは操作回数によって成果物の量を除算することによって、操作効率を示す指標を算出するといえる。なお、成果物の量は、「成果物のサイズ」あるいは「成果物の大きさ」とも呼ばれる。このため、ユーザ200毎に作成するファイル(成果物)が異なっていても、操作効率を精度よく算出することができる。つまり、本実施例では、全ユーザ200に共通のタスク(操作効率を測定するための特別な課題)を与えて操作効率を測定するのではなく、各ユーザ200がそれぞれ所望のファイルを作成するだけで操作効率を算出することができる。操作効率を測定するための特別な操作をユーザ200に要求しないため、ユーザ200の利便性が高い。
効率判定部450は、操作時間を辞書の使用中(変換中)と不使用中とに分類し、使用中の時間あたりの漢字の入力文字数を操作効率としてもよい。例えば、かな漢字変換中において、「スペース」キーを押して、変換候補の一覧が表示されてから、「リターン」キーを押して文字を確定するまでの時間を計測する。ファイル作成時における、その時間の合計と、変換により出力される文字数(漢字)の合計を用いて、(3)式に基づいて指標Eを算出する。操作効率をより詳細に求める場合は、操作記録部150によって記録されたキーボードの打鍵回数やマウスのクリック回数、マウスの移動距離、複数の操作要素を総合して判断してもよい。また、入力された文字の種類(アルファベット、平仮名、片仮名、漢字、数字、記号、絵文字等)にそれぞれ分類し、各文字種の使用頻度の操作効率を計算してもよい。
上記の操作効率を計算する例では、操作時間はファイルのオープンからクローズ(保存)までの連続した時間を使用したが、操作効率に関係しないと思われる余計な時間を除外して操作効率を算出してもよい。具体的なキー入力として、「半角/全角」キーでかな入力に切り替え、「yokohama」と入力し、「Space」で「横濱」に変換して、「Enter」で決定する一連の操作の例を挙げて、操作時間tにおいて除外する時間の例を以下に示す。図12(a)-(c)は、操作時間から省く例を示す。図12(a)は、所定時間Tb以上ユーザ200が操作をしなかった場合の例である。図12(a)では、キー「a」を入力した後にキー「m」を入力するまでの時間(無操作時間)Taが所定時間Tb以上である場合を示す。
このような場合、その無操作の時間は、ユーザ200がファイル作成の操作を行っていない(例えば、入力内容そのものを考えている、別の端末で作業をしている、席を外している等)可能性が高い。このため、効率判定部450は、無操作時間TaからTbを引いた時間Tc(Tc=Ta-Tb)を操作時間から除外する。所定時間Tbは、入力内容が決まっている場合に、一般的なユーザ200のキー入力の間隔よりも長い時間(例えば、10秒)に設定される。無操作時間Taから所定時間Tbを引くことにより、無操作時間の長いユーザ200の方が見かけ上の操作時間が短くなることを防止できる。ただし、処理を簡略化したい場合には、時間Tcを算出せずに無操作時間Taを操作時間から除外してもよい。
また図12(b)のように、文字入力変換の効率に特化して操作効率を求める場合、Enterで変換を決定した後から次の文字入力が開始されるまでの時間を操作時間から除外してもよい。さらに、図12(c)のように、ユーザ200のキー入力の速さは、辞書登録の内容の違いによる文字変換の効率の良し悪しには関係がないとみなして、効率判定部450は、変換前の文字入力に掛かった時間を操作時間から除外してもよい。つまり、かな漢字変換操作における変換キー「Space」と、確定キー「Enter」に係る操作時間のみを用いて操作効率を算出してもよい。図10に戻る。
S8220において、効率判定部450は、ステップS8210で算出したデータを用いて、各ユーザ200の操作効率を算出する。具体的には、ユーザ200が操作したファイルに関して、ファイル毎の操作効率の代表値を算出し、それをユーザ200の操作効率とする。代表値としては、平均値、中央値、最頻値などを用いることができる。例えば、ターゲットユーザ200xがファイル1、ファイル2、ファイル3の3つのファイルを作成しており、各々のファイルの操作効率の指標Eが、「8.5」「9.0」「9.5」である場合、「平均値=(8.5+9.0+9.5)÷3=9.0」を算出し、それをターゲットユーザ200xの指標にする。このようにして、各ユーザ200の指標を算出する。なお、S8210とS8220とをまとめて、「効率算出処理」または「操作効率算出処理」とも呼ぶ。
S8230において、効率判定部450は、ターゲットユーザ200xの操作効率と、他のユーザ200の操作効率を比較し、ターゲットユーザ200xの操作効率より操作効率の良いユーザ200が存在するか否かを判定する。つまり、効率判定部450は、成果物の情報と操作履歴とをもとに、操作効率を示す指標をユーザ200毎に算出し、ターゲットユーザ200xよりも操作効率の高い他のユーザ200を特定する。ターゲットユーザ200xの操作効率より操作効率の良いユーザ200が存在する場合(S8230のYes)、S8240に進み、そうでない場合(S8230のNo)は、S8250に進む。S8240おいて、効率判定部450は、ターゲットユーザ200xよりも操作効率のよいユーザ200の設定情報(登録辞書)に基づいて、推奨設定情報、つまり推奨情報を作成する。このため、効率判定部450は、推奨情報を作成する作成部(不図示)として機能する。ターゲットユーザ200xより操作効率の高い他のユーザ200は、ターゲットユーザ200xを基準にして相対的に操作効率(指標)が高いユーザであるといえる。このため、効率判定部450は、相対的に操作効率(指標)が高いユーザの設定情報をもとに推奨情報を作成するともいえる。
具体的には、以下の方法で推奨情報(推奨設定情報)を作成する。この処理のために、取得部440は、複数のユーザ200のそれぞれについて、ユーザ毎の設定情報、つまり登録辞書を取得する。
(方法1)効率判定部450は、操作効率の最もよいユーザ200の登録辞書を推奨設定情報とする。この方法は処理量が最も少ない。
(方法2)効率判定部450は、ターゲットユーザ200xより操作効率のよい複数のユーザ200の登録辞書をもとに推奨設定情報を作成する。例えば、ターゲットユーザ200xより操作効率のよいユーザ200が10人いる場合、この10人全員の登録辞書を合成して推奨設定情報とする。あるいは、10人のうち上位3人の登録辞書のみを用いてもよい。つまり、操作効率が高い順に所定数のユーザ200を選出し、そのユーザの設定情報をもとに推奨情報を作成してもよい。複数のユーザ200の登録辞書において、同じ「よみ」に対して、複数の「語句」が登録されている場合、最も操作効率の高いユーザ200の登録辞書を採用してもよい。あるいは、人数(登録数)に応じて語句を選択してもよい。例えば、「よみ1」に対して、3人が「語句1」を登録し、5人が「語句2」を登録している場合、より登録数の多い「語句2」を採用すればよい。
(方法3)効率判定部450は、ターゲットユーザ200xの操作効率よりも操作効率のよいユーザ200であって、かつターゲットユーザ200xの操作効率との差が所定範囲であるユーザ200の登録辞書をもとに推奨設定情報を作成する。つまり、ターゲットユーザ200xの操作効率にある程度近いユーザに限定してユーザ200を選出し、そのユーザの設定情報をもとに推奨情報を作成してもよい。これは、ターゲットユーザ200xよりも大幅に操作効率が高いユーザ(非常に上級者)の設定情報は、ターゲットユーザ200xにとって理解したり使いこなしたりすることが難しい場合があり、むしろターゲットユーザ200xよりも若干操作効率が高い程度のユーザの設定情報の方が、ターゲットユーザ200xにとって有益であることが多いという知見に基づく処理である。ただし、なるべく操作効率の高いユーザの設定情報をもとに推奨情報を作成したい場合は、所定範囲の上限を用いなくてもよい。つまり、指標が所定値以上のユーザを特定し、そのユーザの設定情報を用いてもよい。なお、所定範囲内に複数のユーザ200が含まれる場合、効率判定部450は、方法1のごとく、操作効率の最もよいユーザ200の登録辞書を推奨設定情報としてもよく、方法2のごとく、複数のユーザ200の登録辞書をもとに推奨設定情報を作成してもよい。このように方法1から方法3では、ターゲットユーザ200xよりも操作効率の高い他のユーザ200のうち、所定数の他のユーザ200、あるいは所定範囲の操作効率の他のユーザ200が特定される。
(方法4)効率判定部450は、ターゲットユーザ200xとの類似度を考慮して推奨設定情報を作成する。例えば、ターゲットユーザ200xより操作効率のよいユーザ200(上位ユーザ200)が10人いる場合、ターゲットユーザ200xと上位ユーザ200それぞれとの類似度を算出する。例えば、(1)式にしたがってユーザ200間の類似度を算出する。あるいは使用しているアプリケーション、ファイルサイズ、ファイルの文字数、などを使ってユーザ200間の類似度を算出すればよい。ターゲットユーザ200との類似度の高いユーザ200の登録辞書ほど、より多く推奨設定情報(推奨辞書)に入れるようにする。方法4では、ターゲットユーザ200よりも操作効率の高い他のユーザ200のうち、成果物の類似度がしきい値以上の他のユーザ200が特定される。なお、上述の方法1~方法4では、効率算出処理において指標Eの算出に用いたファイルを特定し、そのファイル作成以前に登録された辞書内容を推奨設定情報に入れる。
図13に、ユーザ毎の操作効率の一例を示す。方法1を用いて推奨設定情報を作成する場合、つまり操作効率の最もよいユーザ200の設定情報を用いる場合、第1ユーザ200aから第3ユーザ200cのうち、第2ユーザ200bの操作効率E=10.0が最も大きい値となり、第2ユーザ200bの操作効率が最も良いと判定される。そのため、第1ユーザ200aまたは第3ユーザ200cがターゲットユーザ200xである場合、第2ユーザ200bの設定情報(登録辞書)が通知される。また、規定の操作効率の値より小さかった(効率が悪かった)と判定されたユーザ200に対してだけ推奨設定情報を送信して提供してもよい。図10に戻る。S8240からS8260に進む。
S8250において、効率判定部450は、ターゲットユーザ200xの操作効率が最もよいことを示す推奨情報を作成する。すなわち、ターゲットユーザ200xが設定した設定情報(辞書)により、他のユーザ200と比べて最も効率良く成果物(ファイル)が作成されたことを示す情報(メッセージ)が作成される。この場合、ターゲットユーザ200xの設定情報は、推奨すべき設定情報であり、推奨情報となる。このような情報により、ターゲットユーザ200xは、自分の設定情報が優れていることを認識できる。S8250からS8260に進む。
S8260において、効率判定部450は、送受信部410を介して、S8240またはS8250で作成した推奨情報をターゲットユーザ200xが使用する端末装置100に送信(出力)する。すなわち、効率判定部450と送受信部410の組み合せは、推奨情報を出力する出力部(不図示)として機能する。S8240からS8260に遷移した場合、効率判定部450において特定した他のユーザ200の設定情報をターゲットユーザ200xに推奨することに相当する。
図14は、端末装置100における情報提供処理を示すフローチャートである。S8310において、送受信部180は、処理装置400からの推奨情報(推奨設定情報)を受信する。推奨情報としては2種類あり、1つはS8240の処理によって提供される情報であり、もう1つはS8250の処理によって提供される情報である。前者は、ターゲットユーザ200xが使用する設定情報よりも操作効率のよい推奨情報といえる。S8320において、ユーザ200(ターゲットユーザ200x)による端末装置100の操作が行われる。S8330において、制御部160は、ユーザ200の操作によって、特定のアプリケーションが起動したか否かを判定する。本実施例において、この特定のアプリケーションは、登録辞書を使用するメールソフト、ワープロソフト、テキストエディタ、表計算ソフト等である。アプリケーションが起動されていなければ(No)、ユーザ200の操作によってアプリケーションが起動されるまで待つ。特定のアプリケーションが起動した場合(Yes)、S8340に進む。S8340において、表示部190は、受信した推奨設定情報を表示する。
図15(a)は、ターゲットユーザ200xよりも操作効率の良いユーザ200が存在する場合の画面であり、図15(b)は、ターゲットユーザ200xの操作効率が最も良い場合の画面である。なお以下の説明では、ターゲットユーザ200xよりも操作効率の良いユーザ200が存在する場合、ターゲットユーザ200xを「操作効率の悪いユーザ200」と呼ぶ場合がある。従って、「操作効率の悪いユーザ200」とは、操作効率が最も悪いといった意味ではない。図15(a)は、操作効率の悪いユーザ200に対して、効率の良い辞書登録内容を提供する画面である。一方、図15(b)は、操作効率の最も良いユーザ200に対して、自分の辞書登録内容が良かったことを提供する画面を示す。図16(a)-(b)は、操作効率の悪いユーザ200に対して、効率の良い辞書登録内容を提供する画面を示す。図17(a)-(b)は、操作効率の悪いユーザ200に対して、効率の良い辞書登録内容を提供する別の画面を示す。図18(a)-(c)は、操作効率の悪いユーザ200に対して、効率の良い辞書登録内容を提供するさらに別の画面を示す。このうち、図15(a)および図16(a)-(b)、図17(a)-(b)、図18(a)-(c)は、S8240の処理によって提供される推奨情報である。すなわち、ターゲットユーザ200xよりも操作効率が良いユーザ200が存在する場合に、ターゲットユーザ200xに提供される推奨情報である。
図15(a)のように、表示部190は、アプリケーションを起動させたときに、より操作効率の良い辞書登録内容が存在することを示すポップアップウィンドウを表示する。またさらに、「辞書登録」ボタンが表示される。ユーザ200は、表示された辞書登録内容を確認し、納得した場合には、「辞書登録」ボタンを押す。すると、操作効率の良い辞書登録内容が、辞書140に登録される。本図に示す例では、「よみ21」と「語句2」とが関連付けられて、辞書140に登録(追加登録もしくは更新)される。このように、推奨情報を確認したユーザ200は、それを容易に自分の環境(設定情報)に取り入れることができるため、ユーザの利便性を高めることができる。また、表示部190は、図16(a)-(b)のように、画面の隅に、ターゲットユーザ200の辞書よりも効率の良い辞書(辞書登録内容)があることを表示して、それを操作部110によりクリックすると詳しい情報を表示するようにしてもよい。さらに、表示部190は、図17(a)-(b)のように、効率の悪いターゲットユーザ200xの辞書登録内容と、効率の良い辞書登録内容とを対比させて表示してもよい。図17(b)に示す例では、ターゲットユーザ200xが登録している辞書登録内容と、他のユーザ200が登録している「効率の良い」ユーザ200の辞書登録内容とを対比して表示するため、ターゲットユーザ200xにとって非常に分かりやすい。また、いきなり詳細情報を表示せずに、ターゲットユーザ200xが希望したときのみ詳細情報を表示するため、不必要な表示スペースをとることがなく、ターゲットユーザ200xが本来行うべき操作に集中しやすい。
図18(a)のように、表示部190は、ターゲットユーザ200xが登録した辞書登録内容が、効率性の比較対象となった「35人」のユーザ200の中で5番目に効率が良かったことを示す。このように、効率性の比較対象となったユーザ200の数を表示することにより、ターゲットユーザ200x、つまり閲覧中のユーザ200に対して「さらに工夫して効率のよい操作を行ってみよう」等のモチベーションを与えることができる。
図18(a)において、ターゲットユーザ200xが「ここをクリック」をクリックすると、図18(b)の画面が表示される。本図の例では、効率のよい操作を行った上位5人のユーザ200の情報が表示されている。ユーザ名は、予めユーザ200毎に登録した名前(ニックネームまたは実名)が表示される。順位については指標を算出した全てのユーザ200を表示してもよいし、本図に示すように上位の所定数(35人中の5人)に限定して表示してもよい。また、本日の上位5人、今週の上位10人といったように、特定の期間において集計した結果を表示してもよい。操作の詳細については、各順位の行に詳細ボタンを表示して、それをクリックすると詳しい情報を表示するようにしてもよい。提示する辞書登録内容は、ターゲットユーザ200xが辞書に登録していない全ての登録内容を提示してもよいし、過去の所定期間において作成されたファイルに含まれる語句のみを提示してもよい。
また、上位のユーザ200の辞書登録内容のうち、複数(例えば2人以上)が登録している内容を提示してもよいし、順位によって重み付けをし、登録しているユーザ200の重みの合計のしきい値を超えたら提示してもよい。また、上位のユーザ200のうち、ターゲットユーザ200xと類似度が高いユーザ200の辞書登録内容のみを提示してもよい。類似度は、使用しているアプリケーションの類似度を比較してもよいし、入力文字数の量、図の有無、使用カラー等でもよい。あるいは、入力された文章の内容をテキスト解析し、同ジャンルであれば類似度が高いとみなしてもよい。図18(b)における「詳細クリック」ボタンをクリックすると、図18(c)の画面が表示される。この画面では、指定されたユーザ200の辞書登録内容が詳細に表示される。
図16(b)、図17(b)、図18(c)のように、推奨設定情報に含まれる他のユーザ200の辞書情報を、簡単にターゲットユーザ200xの辞書140に追加できるようなUIを表示してもよい。これらの場合、効率の良い辞書登録の各語句の読みの横にチェックボックスが付いていて、ユーザ200に確認させてから「辞書登録」ボタンを押して登録させる。登録したくない語句はチェックボックスを外して、登録したい読みのみを登録することができる。ユーザ200は内容を確認した上で、簡単に自分の辞書140に登録することができるため、ユーザ200の利便性が向上する。なお、ターゲットユーザ200xの辞書140に既に同じ「よみ」の語句が登録されている場合、それを削除した上で新規登録してもよいし、削除せずに両方を登録してもよい。後者の場合は、新規登録する語句の優先度を古い登録の語句よりも高く設定するのが望ましい。また辞書140を追加あるいは更新した際には、語句毎に日時(更新日時)を辞書140に登録する。また、他のユーザの辞書情報を辞書140に登録した際に、そのユーザのユーザIDを辞書140に登録してもよい。
他にも、例えば、「推奨設定情報に含まれる辞書をあなたの辞書に追加登録しますか?」というメッセージと、「Yes」、「No」のボタンを配置したウィンドウを表示して、ユーザ200に選択させる。ターゲットユーザ200xが「Yes」を指定した場合には、推奨設定情報に含まれる辞書が自分の辞書に自動的に登録される。つまり、ユーザ200が操作部110を操作することによって、図16(b)、図17(b)、図18(c)に表示された「辞書登録」のボタンを選択すると、制御部160は、推奨設定情報を辞書140に反映させる。これは、表示部190に表示された推奨設定情報の選択操作を操作部110が受けつけた場合に、推奨設定情報を辞書140に反映させることに相当する。
一方、図15(b)は、S8250の処理により、端末装置100がターゲットユーザ200xの操作効率が最もよいことを示す情報を受信した場合に、表示部190において表示される画面の一例である。この端末装置100を使用するユーザ200、つまりターゲットユーザ200xは、最も効率のよい操作を行ったユーザ200である。図15(b)では、ターゲットユーザ200xの辞書内容の効率が最も高かったこと示す情報を表示する。また、辞書内容を他のユーザ200に公開してもよいかどうかをターゲットユーザ200xに選ばせてもよい。公開を選んだ場合は、その辞書内容が他のユーザ200に公開される。非公開を選んだ場合は、その辞書内容は他のユーザ200に公開されない。このような画面を表示することにより、ターゲットユーザ200xは自分の辞書内容を容易に公開することができる。また、効率の良い辞書内容が公開されることにより、それを見た他のユーザ200の操作効率が向上したり、ユーザ200同士(ユーザコミュニティー)のコミュニケーションが活性化したりするなどの効果が得られる。また、ターゲットユーザ200xの辞書内容が、効率性の比較対象となった「35人」のユーザ200の中で最も効率が良かったことを示してもよい。このように、効率性の比較対象となったユーザ200の数を表示することにより、閲覧中のユーザ200に対して「さらに工夫して効率のよい操作を行ってみよう」等のモチベーションを与えることができる。図15(b)の画面については、操作効率が最も良かったユーザ200に限らず、他のユーザ200に対して提供されてもよい。例えば、操作効率の良い上位N人のユーザ200に提供されてもよい。あるいは、操作効率の最も悪いユーザ200も含めて、全ユーザ200に対して提供されてもよい。例えば、操作効率の最も悪いユーザ200に対して、「あなたは35人中最も操作効率の悪いユーザでした。他のユーザの設定情報を参考にしてみましょう。」といったメッセージを表示してもよい。
このような表示を行うことにより、ターゲットユーザ200xは、単に効率のよい辞書の登録内容を知ることができるだけでなく、効率のよい操作を行ったユーザ200についても知ることができる。例えば、ユーザ200毎に自分の連絡先を開示するか否かの設定をさせておき、連絡先の開示を許可したユーザ200については、図18(b)の画面において、連絡先を表示してもよい。すなわち、操作効率の良いユーザ200のリストにおいて、メールアドレスやSNSのアカウントや電話番号等の連絡先情報を表示してもよい。また、処理装置400が操作効率の良いユーザ200とコミュニケーションする機能(メッセージ交換機能など)を提供してもよい。このような表示を閲覧したユーザ200は、効率のよいユーザ200に直接連絡をとることができ、ユーザ200同士で情報交換を行うことができるので、さらに効率の良い設定情報や操作手順などを他のユーザ200から直接教えてもらうことができる。また、アプリケーションを使用するユーザコミュニティーが活性化されるので、そのアプリケーションが好きな「ファン」が増え、アプリケーションの長期的な収益につながる。他のユーザ200に設定情報や操作手順などを提供した(教えた)ユーザ200に対して、提供した情報の量や質に応じて、ポイントやクーポンを付与してもよい。また、ターゲットユーザ200xに提供される推奨情報のもとになったユーザ200(効率の良いユーザ)に対して、ポイントやクーポンを付与してもよい。推奨情報のもとになった効率の良いユーザは、間接的に他のユーザに有益な情報を提供していることになる。つまり、直接的あるいは間接的に他のユーザの操作効率を改善する可能性のある有益な情報を提供したユーザ200に対して、ポイントやクーポン等の報奨を与えてもよい。このような報奨を与えることにより、「自分の操作効率を上げて推奨情報に取り上げられるようになり、報奨をもらおう」といったモチベーションが各ユーザ200に自然に生じるため、結果的に多数のユーザの操作効率が向上するといった効果が得られる。
ユーザ200に推奨設定情報を提供するタイミングは、アプリケーションの起動時の例を示したが、新規ファイルを作成したときでもよいし、アプリケーション終了時やログイン直後でもよい。また、S8240の処理による推奨設定情報を提供する対象ユーザ200は、全ユーザ200でもよいし、ユーザ200の指標が所定値未満であるなど、効率値が所定条件よりも悪いユーザ200だけにしてもよい。
端末装置100の操作はPCを想定してキーボードやマウスを例に挙げたが、スマートフォンやタブレット端末であればタッチパネルのタップやフリック等の操作が考えられる。また、カメラやマイク等、入力デバイスであれば操作のインターフェースは特に制限しない。
なお、上述の説明では、S8230においてターゲットユーザ200xよりも操作効率の高いユーザ200が存在するか否かを判定し、その判定結果に応じて処理を変えているが、別の方法を用いることもできる。例えば、図10のフローチャートにおいてS8210およびS8220を実行した後、S8230~S8260を実行せず、S8235(不図示)を実行する。S8235において、効率判定部450は、操作効率(指標)が相対的に高いユーザを特定する。例えば、指標Eが所定値以上のユーザ200あるいは指標Eが高い順に所定数のユーザ200を特定(選出)する。ここで特定したユーザは、ユーザ200の集団(集合)の中で(ユーザ200の集合全体を基準にして)、相対的に操作効率(指標)が高いユーザである。S8235を実行した後、S8245(不図示)を実行する。S8245において、効率判定部450は、S8235で特定したユーザの設定情報をもとに推奨情報を作成する。具体的には、S8240と同様な方法で、推奨情報を作成すればよい。S8245からはS8265(不図示)に遷移する。S8265は、S8260と同様である。つまり、S8265において、効率判定部450は、送受信部410を介して、S8245で作成した推奨情報を端末装置100に送信(出力)する。その際に、S8235で特定したユーザのユーザIDも推奨情報に含めて送信する。推奨情報を受信した端末装置100は、図15~図18と同様な画面を表示部190に表示する。例えば、端末装置100は、推奨情報に含まれる操作効率が相対的に高いユーザのユーザIDと、端末装置100を使用するユーザのユーザIDが一致するか否かに応じて表示する情報を変えてもよい。また、S8235で特定したユーザが使用する端末装置100であるか否かに係らず、全ての端末装置100で同じ推奨情報を表示してもよい。例えば、図15(a)と同様な表示を全ての端末装置100で行ってもよい。つまり、ターゲットユーザ200xを識別せずに、全てのユーザ200に対して、同じ推奨情報を提供してもよい。操作効率が高いユーザの設定情報をユーザに通知することは、その設定情報を既に使用しているユーザにとっても、改めてその効果を確認することができるため、全てのユーザにとって有益である。
本実施例によれば、成果物の情報と操作履歴とをもとに、操作効率を示す指標をユーザ毎に算出し、ターゲットユーザよりも操作効率の高い他のユーザの推奨設定情報をターゲットユーザに提示するので、操作効率を改善可能な情報の精度を向上できる。また、ターゲットユーザと類似し、かつ操作効率の良いユーザの設定情報をもとに推奨設定情報を作成するため、ターゲットユーザに対して有益な情報を提供することができる。また、予め管理者(や運営者)が推奨設定情報を作成しておく必要がないので、管理者の負担の増加を抑制できる。
また、成果物の量を操作時間あるいは操作回数などの操作コストで除算することによって、操作効率を示す指標を算出するので、指標の算出精度を向上できる。また、操作効率を測定するための特別な操作をユーザに行わせることなく指標を算出できるため、ユーザの利便性が高い。また、ターゲットユーザよりも操作効率の高い他のユーザのうち、所定数の他のユーザ、あるいは所定範囲の操作効率の他のユーザを特定するので、推奨設定情報を作成するために適切な他のユーザを特定できる。また、ターゲットユーザよりも操作効率の高い他のユーザのうち、成果物の類似度がしきい値以上の他のユーザを特定するので、推奨設定情報を作成するために適切な他のユーザを特定できる。また、設定情報は、文字変換のための登録辞書であるので、操作効率を向上するための登録辞書を容易に追加更新できる。また、ユーザ(端末装置)が使用している設定情報よりも操作効率のよい推奨設定情報の選択操作を受けつけると、推奨設定情報を端末装置が使用する設定情報に反映させるので、ユーザの操作効率を容易に向上できる。
(実施例2)
次に、実施例2を説明する。実施例2は、実施例1と同様に、処理装置と複数の端末装置とがネットワークを介して接続された処理システムに関する。処理装置は、所定のプログラムを使用する複数のユーザの設定情報(登録辞書、ショートカット、マクロ等)を収集するとともに、ユーザが作成した成果物(ファイル)に関する情報を収集する。また、処理装置は、設定情報の登録日時をもとに複数の期間を設定して、各期間においてファイル作成の「効率性」を示す指標を算出し、過去の期間に比べて操作効率が改善された期間を特定する。さらに、処理装置は、特定した期間に登録された設定情報(推奨設定情報)をターゲットユーザに提供する。実施例2に係る処理システム1000、端末装置100、処理装置400は、図1から図3と同様のタイプである。ここでは、これまでとの差異を中心に説明する。
図19は、処理装置400による提供情報作成処理を示すフローチャートである。ここでは、過去の操作効率に比べて操作効率が改善されたユーザ200を特定し、特定したユーザ200の設定情報をもとに、推奨設定情報を作成する。まず、S8400を実行する。S8400は上述のS8210と同じである。つまり、効率判定部450は、ステップS8010で選択された操作履歴を対象にして、該当するファイル毎の操作効率を算出する。次に、S8410において、効率判定部450は、期間毎の操作効率を算出する。ここでの期間とは、各ユーザ200の辞書登録日時を境界にして定まる期間である。
図20(a)-(c)は、辞書登録のタイミングで区切った各ユーザ200の期間を示す。例えば、第1ユーザ200aは時点1~5までの5つの時点(5つのタイミング)で辞書登録を行っている。また、時点1~5は、例えば図4に示す日付の時点である。このため、横軸を時間軸として、第1ユーザ200aについては、時点1(2010/3/15)より前を期間1、時点1(2010/3/15)~時点2(2010/5/10)までを期間2、時点2(2010/5/10)~時点3(2015/7/5)までを期間3、時点3(2015/7/5)~時点4(2015/9/30)までを期間4、時点4(2015/9/30)~時点5(2015/11/25)までを期間5、時点5(2015/11/25)より後を期間6として、6つの期間を設定する。図4および図20に示す第2ユーザ200bについては、同様に時点1~時点5が存在するため、期間1~期間6の6つの期間が設定される。第3ユーザ200cについても同様に、辞書登録日時を境界とした期間を設定する。図19に戻る。
効率判定部450は、各期間においてユーザ200が作成したファイルを対象にして、S8400で算出された操作効率の指標Eの期間毎の代表値を算出する。代表値としては、平均値、中央値、最頻値などを用いることができる。例えば、第1ユーザ200aが期間1において、3つのファイルを作成しており、各々の指標Eが「4.0」、「5.0」、「9.0」である場合、代表値として平均値を用いるとすると、「(4.0+5.0+9.0)÷3=6.0」が、第1ユーザ200aの期間1における代表値となる。同様にして、各ユーザ200の期間毎の指標を算出する。なお、複数の期間を統合して1つの期間を作成してもよい。例えば、期間の長さが所定の基準(例えば、10日間)よりも短い場合、複数の期間をまとめて1つの期間としてもよい。その場合、辞書登録日時を1つ前の辞書登録日時あるいは1つ後の辞書登録日時に変更すればよい。また、1つの時点における辞書の登録数が所定数(例えば、3個)未満である場合、独立した期間にせず、複数の期間をまとめて1つの期間としてもよい。
次にS8420において、効率判定部450は、期間毎に操作効率の改善量を算出する。操作効率の改善量(操作改善量)は、同一ユーザ200の隣接する期間の指標の差分(差異)として算出する。具体的には、期間iにおける操作改善量ΔE[i]を式(6)に従って算出する。
ここで、i≧2である。つまり、ある期間の操作効率がその前の期間に比べて大幅に改善した場合に、操作改善量は大きな正の値となる。例えば、第1ユーザ200aに対して6つの期間が設定されている場合、各期間の指標をE[1]~E[6]とすると、ΔE[2]=E[2]-E[1]、ΔE[6]=E[6]-E[5]、などと算出する。期間「1」については、操作改善量を算出しない。
また、効率判定部450は、(7)式に従って操作改善量を算出してもよい。
ここでT[i]は、期間iの長さである。期間の単位としては、例えば、日、時、分、秒などの任意の時間単位を用いることができる。(7)式によれば、単位時間あたりの操作改善量を算出することができる。つまりS8420では、(6)式または(7)式にしたがって、期間iの操作改善量ΔE[i]を算出する。また、隣接する期間の指標の差分値に限らず、他の方法で操作改善量を算出してもよい。例えば、ΔE[3]=(E[3]+E[4])/2-(E[1]+E[2])/2、などとしてもよい。1つの期間の長さが短く、期間内に作成された成果物の数が少ない場合には、3つ以上の期間の指標を用いて操作改善量を作成した方がよい場合もある。
S8430において、効率判定部450は、操作改善量が所定条件を満たす期間を特定する。これは、過去の期間に比べて操作効率が向上した期間を特定することに相当する。ここで、所定条件としては、以下のいずれかの条件を用いることができる。なお、ステップS8430を実行した結果、所定条件を満たす期間が存在しない場合には、ステップS8440に進まずに処理を終了する。
(条件1)操作改善量が大きい上位所定数の期間
操作改善量が大きいほど、過去(1つ前の期間)に比べてユーザ200の操作効率が改善されていることになる。ここで、所定数は1以上の任意の数である。効率判定部450は、所定数を「1」として、操作改善量が最も大きい期間を1つ特定してもよいし、所定数を「10」としてもよい。
(条件2)操作改善量が所定値以上の期間
効率判定部450は、操作改善量が予め定めた所定値(しきい値)θ1以上の期間を特定する。所定値θ1として正の任意の値を用いることができる。また、ターゲットユーザ200の操作改善量が算出できる場合(ターゲットユーザ200xが2期間以上に渡って操作を行っている場合)、ターゲットユーザ200xの操作改善量を所定値とし、ターゲットユーザ200xの操作改善量よりも大きな値をもつ期間を特定してもよい。つまり、条件1、条件2において、前記効率判定部450は、操作効率の改善量が高い方から所定数の期間、あるいは操作効率の改善量が所定の範囲に含まれる期間を特定する。
(条件3)ターゲットユーザ200xの直近の指標に近い値をもち、かつ操作改善量が所定値以上の期間
まず、効率判定部450は、S8410で算出された各期間の指標E[i-1](i≧2)と、ターゲットユーザ200xの直近(最新)の指標(基準となる指標)Etとの差が所定値ε以下の期間を抽出する。つまり、|E[i-1]-Et|≦εを満たす期間を抽出する。E[i-1]はEtより大きくてもよいし、小さくてもよい。例えば、ターゲットユーザ200xの直近の指標Etが「5.0」であり、εが「0.5」である場合、「4.5」以上かつ「5.5」以下の指標Eをもつ期間が抽出される。ここで、Etは基準となる指標であるため、効率判定部450は、基準となる指標との差がしきい値ε以下の期間を抽出するといえる。次に、効率判定部450は、抽出した期間(i-1)の次の期間iを対象にして、条件2と同様に、操作改善量ΔE[i]が所定値θ2以上の期間を特定する。ここで、θ1とθ2を同じ値にしてもよいが、異なる値にしてもよい。例えば、θ2<θ1としてもよい。条件3によれば、過去において、ターゲットユーザ200xの直近の操作効率に近いレベルであった他のユーザ200の操作効率が、その後改善されている場合に、そのユーザ200の設定情報を推奨設定情報に反映させるため、ターゲットユーザ200xの現在のレベルに合った有益な情報を提供することができる。つまり、効率判定部450は、ターゲット(基準)となる操作効率との差が第1しきい値(ε)以下であり、かつ操作効率の改善量が第2しきい値(θ2)以上である期間を特定するといえる。
条件1から条件3において、期間の新しさを考慮してもよい。例えば、条件1において、操作改善量が同じ期間が複数存在する場合、新しい期間(設定情報の登録日時の新しい期間)を優先的に特定してもよい。また、操作改善量が大きいほど高い値となり、かつ期間が新しいほど高い値となる指標を算出し、その指標が高い順に所定数の期間を特定しもよい。また、その指標が所定値以上の期間を特定してもよい。
また、条件1から条件3において、ターゲットユーザ200xの最新期間の指標Etを考慮してもよい。例えば、条件1において、指標E[i]が指標Etより大きい期間iを対象にして、操作改善量が大きい順に所定数の期間を特定してもよい。また、条件2において、指標がEtより大きく、かつ操作改善量が所定値以上の期間を特定してもよい。また、条件3において、直近の指標がEtよりも大きいユーザ200の期間を対象にして、過去の指標がターゲットユーザ200xの直近の指標に近い値であり、かつ操作改善量が所定値以上の期間を特定してもよい。このような処理を行うことで、推奨設定情報に反映させるユーザ200を厳選することができる。ただし、ユーザ200毎の操作目的や操作条件は完全に同じではないため、指標はある程度の誤差を含む。つまり、異なるユーザ200間での指標の多少の違いよりも、同一ユーザ200の指標が改善したことに意味があると考えられる。このため、ターゲットユーザ200xよりも低い指標をもつユーザ200の設定情報をもとに推奨設定情報を作成してもよい。また、複数のユーザ200の設定情報をもとに推奨性設定値を作成する場合、ターゲットユーザ200xよりも低い指標をもつユーザ200の数または割合を制限してもよい。例えば、ターゲットユーザ200xよりも低い指標をもつユーザ200の割合が30%未満になるように設定してもよい。
S8430において、ターゲットユーザ200x以外のユーザ200を処理対象にしてもよいし、ターゲットユーザ200xを含む全てのユーザ200を処理対象にしてもよい。全てのユーザ200を処理対象にした場合、ターゲットユーザ200xの期間が所定条件に該当し、ターゲットユーザ200xの設定情報をターゲットユーザ200xに通知する可能性もある。例えば、ターゲットユーザ200xが何回も辞書の内容を変更しており、ターゲットユーザ200xの直近の操作効率よりも、それより前の期間の操作効率が高い場合、辞書の内容を前の状態に戻した方がよいことをターゲットユーザ200xに通知することができる。ターゲットユーザ200xにとって、他のユーザ200の設定情報を通知してもらうだけでなく、自分の過去の設定情報を通知してもらうことも有益である。
次にS8440において、効率判定部450は、S8430で特定した期間iに対応する設定情報を選択する。期間iに対応する設定情報とは、期間iの開始時に設定された設定情報である。また、期間iに対応する設定情報は、期間iにおいて成果物が作成された時点より前に設定された設定情報である。例えば、図20(a)-(c)の例では、前述のごとく、第1ユーザ200aについて6個の期間が存在するが、S8430において、第1ユーザ200aの期間3(設定ID2(2010/5/10)~設定ID3(2015/7/5))が特定された場合、図4に示す設定ID2(2010/5/10)の設定情報が該当する。S8430において複数の期間が特定された場合には、それらに対応する複数の設定情報を選択する。またS8430において特定された期間が多い場合には、そのうちの一部の期間の設定情報を選択してもよい。
S8450において、効率判定部450は、S8440で選択された設定情報に基づいて、推奨設定情報を作成する。例えば図20(a)-(c)の例において、S8440で設定ID2の設定情報が選択された場合、設定ID2の「よみ2:語句20」といった設定情報を推奨設定情報とする。また例えば、S8440で、設定ID「2」、「3」、「6」の3つの設定情報が選択された場合、3つの設定情報をまとめた情報、すなわち「よみ2:語句20、よみ3:語句30、よみ6:語句60」といった設定情報を推奨設定情報とする。奨設定情報とする。S8460において、効率判定部450は、S8450で作成された推奨設定情報を、ターゲットユーザ200xの端末装置100に送受信部410を介して送信する。つまり、送受信部410は、効率判定部450において特定した期間に登録された設定情報をターゲットユーザ200xに推奨する。
なお、上述の説明では、複数のユーザ200のそれぞれについて、期間を設定し、期間毎の指標を算出したが、1人のユーザ200しか存在しない場合であっても、本実施例を適用することが可能である。例えば、辞書DB430にターゲットユーザ200xのデータのみが存在する場合、ターゲットユーザ200xが辞書を登録した複数の時点をもとに、複数の期間を設定し、期間毎に指標および操作改善量を算出する。そして、上述の説明と同様に、操作改善量が所定条件を満たす期間を特定し、特定した期間に関する情報、および特定した期間に対応する辞書内容(設定情報)をターゲットユーザ200xに提示する。例えば、「あなたは、期間3(2010/5/10~2015/7/5)において、操作効率の改善量が最高でした。これは、期間3の直前に登録した(よみ2:語句20)という辞書の効果によるものと思われます」といったメッセージをターゲットユーザ200xが使用する端末装置100の表示部190に表示する。このようなメッセージ(情報)は、ターゲットユーザ200xが新たに登録すべき辞書内容を検討する際の重要なヒントになる。また例えば、ターゲットユーザ200xが「よみ2:語句20」という辞書を削除している場合、それを再登録した方がよいことが容易に分かる。つまり、1人のユーザ200のデータを用いて処理を行う場合であっても、そのユーザの操作効率を改善するための有益な情報を提供することができる。
本実施例によれば、複数の期間のそれぞれに対して、成果物の情報と操作履歴とをもとに、操作効率を示す指標を算出し、過去の期間に比べて操作効率が向上した期間に登録された推奨設定情報をターゲットユーザに提示するので、操作効率を改善可能な情報の精度を向上できる。また、成果物の量を操作時間あるいは操作回数などの操作コストで除算することによって、操作効率を示す指標を算出するので、指標の算出精度を向上できる。また、操作効率を測定するための特別な操作をユーザに行わせることなく指標を算出できるため、ユーザの利便性が高い。また、操作効率の改善量が高い方から所定数の期間、あるいは操作効率の改善量が所定の範囲に含まれる期間を特定するので、期間の特定精度を向上できる。また、ターゲットとなる操作効率との差が第1しきい値以下であり、かつ操作効率の改善量が第2しきい値以上である期間を特定するので、期間の特定精度を向上できる。また、設定情報は、文字変換のための登録辞書であるので、操作効率を向上するための登録辞書を容易に追加更新できる。
(実施例3)
次に実施例3を説明する。これまでは、設定情報の例として、かな漢字変換等に用いる登録辞書を用いて説明したが、これに限定されない。実施例3では、設定情報として、CTRLキーやファンクションキーなどの特定のキーと組み合せたキーボードのショートカットに関する登録情報を用いる。実施例3に係る処理システム1000、端末装置100、処理装置400は、図1から図3と同様のタイプである。ここでは、これまでとの差異を中心に説明する。
本実施例では、アプリケーションとしてテキストエディタを例にして説明する。このテキストエディタでは、キーボードのショートカット(キーバインド)をユーザ200毎に設定することが可能である。図21は、実施例3に係るショートカットの例を示す。これは、ショートカットの中で、カーソル移動に関する設定を抜粋した一例である。第1ユーザ200aは、独自の設定を全くしていない。独自の設定が全くない状態では、カーソルを移動させる際に、矢印キーを使ってカーソルを1文字ずつ移動させる必要がある。つまりデフォルトは、「↑」キーで1行上に移動、「↓」キーで1行下に移動、「←」キーで1文字前に移動、「→」キーで1文字後に移動するが、それ以外の移動は、できない状態である。
第2ユーザ200bは、上下左右の4方向のカーソル移動について、独自のショートカットを設定している。「Ctrl-p」は「Ctrl」キーを押しながら、「p」キーを押すことを表す。他のショートカットの表記についても同様である。通常のキーボードにおいて矢印キーは、アルファベットキーとは離れた位置に配置されていることが多いため、矢印キーによるカーソル移動をするには、ホームポジションから手の位置を移動させる必要がある。このため、カーソル移動を頻繁に行うと、文字入力の速度が遅くなる。一方、「Ctrl-p」等によるカーソル移動は、ホームポジションから手の位置を変えずに、「Ctrl」キーおよび「p」キーを押下することができるため、カーソル移動を多用しても、文字入力の速度があまり低下しない。このため、第1ユーザ200aに比べて、第2ユーザ200bは同じ文字数のファイルをより短時間で作成できる可能性が高い。
第3ユーザ200cは、第2ユーザ200bの設定に加えて、さらに4つのショートカットキーを設定している。例えば、カーソルを行の先頭に移動させるために「Ctrl-a」を設定している。例えば、1行が100文字あり、カーソルが行の末尾にある状態から行の先頭に移動させる場合、第1ユーザ200aは「←」キーを100回押すか、「←」キーを一定時間以上押し続ける必要がある。同様に第2ユーザ200bは、「Ctrl」キーと「b」キーを同時に100回押すか、「Ctrl」キーと「b」キーを一定時間以上押し続ける必要がある。つまり、第1ユーザ200aの設定および第2ユーザ200bの設定では、カーソルを移動させるために多くの操作と多くの時間が必要になる。それに対して、第3ユーザ200cは、「Ctrl」キーと「a」キーを1回押すだけでよい。また、単語単位にカーソルを移動させる設定も非常に操作効率を改善する。したがって、第2ユーザ200bに比べて、第3ユーザ200cは同じ文字数のファイルをさらに短時間で作成できる可能性が高い。
本実施例において、実施例1と同様に、図7に示すような操作履歴DB420が作成される。ただし、種別「保存」において保存する内容は、ファイルサイズ、文字数、キー入力回数のみでよい。つまり、文字の種類別の内訳、変換回数は省略する。あるいは、図8に示すようなキー入力1つ1つの詳細までも保存してもよい。
ステップS8010において、取得部440は、当該テキストエディタを用いて作成されたファイルに関する操作履歴を取得(選択)する。つまり、当該テキストエディタを使用しているユーザ200をターゲットユーザ200xとして、方法2を用いて、操作履歴を選択する。この際に以下のいずれかの条件を付加して選択してもよい。
(1)当該テキストエディタを用いて作成された全てのファイルに関する操作履歴
(2)当該テキストエディタを用いて新規にファイルが作成されたときの操作履歴
(3)当該テキストエディタを用いて既存のファイルを更新したときの操作履歴
上記(3)の条件を用いることにより、カーソル移動の効率性をより直接的に指標Eに反映できる場合がある。これは、既存のファイルを更新する場合に、カーソル移動を使う頻度が高い傾向にあるためである。
またステップS8210において、効率判定部450は、(2)式または(8)式にしたがって、ファイル毎の操作効率を示す指標Eを算出する。(8)式において、λは正の定数、r、sは単調増加関数であり、nはファイルの文字数であり、nkはカーソル移動に要したキー操作を含めたキー入力数である。
以上の処理を行うことにより、図15~図18の表示例と同様に、ショートカットキーに関する推奨設定情報をユーザ200に提供することができる。図21に示す例において、例えば、第3ユーザ200cの操作効率が最も高くなった場合、第1ユーザ200aおよび第2ユーザ200bに対して、第3ユーザ200cのショートカットキーに関する設定情報を、推奨設定情報として提供する。
本実施例では、ユーザ200の設定情報として、テキストエディタのショートカットキーを例にして説明したが、これに限定されるものではない。例えば、GUIアプリケーションにおいて、通常はマウス等を用いて選択するメニュー項目を、キーボードのショートカットにより選択できるようにしてもよい。初心者にとっては、マウス操作の方が分かりやすいが、上級者にとっては、文字入力を行うためのホームポジションから手の位置を移動させずに、メニュー項目を選択できるため、操作時間を短縮できる。また、ワープロソフトにおけるテンプレートの登録情報を設定情報としてもよい。また、表計算ソフトにおけるマクロ(スクリプト)の登録情報を設定情報としてもよい。また、メールソフトにおけるアドレス帳を設定情報としてもよい。
本実施例によれば、設定情報は、キーボードのショートカットの設定であるので、操作効率を向上するためのキーボードのショートカットを容易に追加更新できる。
(実施例4)
次に実施例4を説明する。実施例4では、操作効率を算出する際に、ユーザの生体情報を使用する。実施例4に係る処理システム1000、処理装置400は、図1、図3と同様のタイプである。ここでは、これまでとの差異を中心に説明する。
図22は、端末装置100の構成を示す。端末装置100は、操作部110、メモリ領域120、プログラム記憶部130、制御部160、タイマ170、送受信部180、表示部190、生体情報処理部600を含む。また、端末装置100は、生体情報取得装置500に接続可能であり、生体情報取得装置500は、カメラ510、心拍センサ520、血圧センサ530、加速度センサ540、発汗センサ550、体温計560を含む。端末装置100と生体情報取得装置500とは、例えば無線通信によって接続されるが、有線通信による接続であってもよい。また、端末装置100と生体情報取得装置500とを一体的に構成してもよい。
生体情報取得装置500は、ユーザ200の生体情報を計測可能な装置である。カメラ510は、ユーザ200の視線を監視して、計測結果を生体情報処理部600に出力する。心拍センサ520は、ユーザ200の心拍数を計測して、計測結果を生体情報処理部600に出力する。血圧センサ530は、ユーザ200の血圧を計測して、計測結果を生体情報処理部600に出力する。また血圧センサ530あるいは他のセンサが、血中酸素飽和度を計測してもよい。加速度センサ540は、ユーザ200の体の動き(加速度)を計測して、計測結果を生体情報処理部600に出力する。例えば、ユーザ200の頭、腕、指などの動きを検出する。発汗センサ550は、ユーザ200の発汗量を計測して、計測結果を生体情報処理部600に出力する。体温計560は、ユーザ200の体温を計測して、計測結果を生体情報処理部600に出力する。これらの計測結果は、成果物を作成するための操作におけるユーザ200の生体情報である。生体情報処理部600は、生体情報取得装置500からの計測結果を送受信部180経由で処理装置400に送信する。つまり、端末装置100はファイル作成時のユーザ200の生体情報を記録し、処理装置400に送信する。なお、図22に示すセンサ(計測装置)は、あくまでも例示であり、生体情報取得装置500は、これら以外のセンサを含んでいてもよい。また、生体情報取得装置500は、図22に示す任意のセンサ(例えば、カメラ510)を省略してもよい。つまり、生体情報取得装置500は、ユーザ200の1種類以上の生体情報を計測可能であればよい。
図3の処理装置400の効率判定部450は、生体情報取得装置500からの計測結果をもとに、操作時のユーザ200の疲労度を計算し、疲労度が少ない操作を効率の良い操作と判断する。例えば、視線移動量、心拍数、発汗量、体温、血圧、体の動き、血中酸素飽和度等を測定して、測定結果をもとに疲労度を計算する。具体的には、効率判定部450は、ファイル作成に係るユーザ200の疲労度を算出する。例えば、1つのファイルを作成する際の視線移動量、心拍数、発汗量、体温、血圧、体の動き、血中酸素飽和度等などをもとに疲労度zを算出する。例えば、視線移動量が多く、心拍数が多く、発汗量が多く、体温が高く、血圧が高く、体の動きが多く、血中酸素飽和度が低い場合に、疲労度zは高い値になる。逆に、視線移動量が少なく、心拍数が少なく、発汗量が少なく、体温が低く、血圧が低く、体の動きが少なく、血中酸素飽和度が高い場合に、疲労度zは低い値になる。なお、疲労度zとして消費カロリーを用いてもよい。効率判定部450は、例えば(2)式あるいは(3)式において、h(t)をf(z)に置き換えることにより、疲労度zをもとにユーザ200の操作効率Eを算出する。ここでfは所定の単調増加関数である。つまり、ファイルの文字数が多く、かつユーザ200の疲労度が少ないほど、ユーザ200の操作効率がよいと判定される。
ただし場合によっては、関数fの特性を変えて、ユーザ200の疲労度(消費カロリー)が多いほどユーザ200の操作効率がよいとみなしてもよい。例えば、ユーザ200が体重を減量するために、毎日どのような食事をして、どのような運動をしたかを日記ファイルに記入するような場合、ファイル作成に係るユーザ200の消費カロリーが多い方が、ユーザ200にとっては好ましい。このような目的がユーザ200間で共有されている場合、ファイル作成時の消費カロリーが多いほど、操作効率がよいとみなし、消費カロリーが高くなる設定情報(通常は、操作効率が悪いとされる設定情報)を他のユーザ200に通知してもよい。例えば、入力文字数が多いほど消費カロリーが高くなるため、入力文字数が多くなるような設定情報をユーザ200に提供してもよい。ユーザ200の操作量(操作工数)が多いほど疲労度zも大きくなるため、疲労度zは操作工数あるいは操作コストを示すともいえる。このように効率判定部450は、成果物の量を生体情報によって示される操作コスト(操作工数)で除算することによって、操作効率を示す指標を算出するといえる。
本実施例によれば、生体情報によって成果物のサイズを除算することによって、操作効率を示す指標を算出するので、指標の算出精度を向上できる。
以上、本発明を実施例をもとに説明した。この実施例は例示であり、それらの各構成要素や各処理プロセスの組合せにいろいろな変形例が可能なこと、またそうした変形例も本発明の範囲にあることは当業者に理解されるところである。