※本記事ではソフトに関するアイディアを紹介しています。これらは特に記載がない限り、まだ実現されていないものです。これらのアイディアをぜひ実現していただける方をお待ちしております。
本当に使用しているアプリの予測
概要
別ページ「よいヘルプページを検索でヒットさせる仕組み」で記載した中で、有用なページかを判断するために必要と感じた機能です。ウィンドウやマウスの動きから、実行されているアプリケーションの中で、今ユーザーが、どのアプリをどれぐらい使用しているかを自動推定するといったアイディアです。各アプリに対して個別に0~100%の範囲で推定します。
これを使って、10分ごとに使用率のログをとれば、その日一日PCの上で、自分が何をやったかが分かるようにもなります。
背景
予測する方法が必要
別ページ「よいヘルプページを検索でヒットさせる仕組み」で記載した中で必要になった機能です。この中では、ウィンドウやマウスの動きから、ユーザーがどれぐらいそのWebページを読んでいるかを予測し、それによって有用なページかを判断、これを基に、次回の検索結果により多くの有用なページを提供します。
そこで、どれぐらいWebページを読んでいるかを予測するソフトを作る、といったアイディアに至りました。
どんなもの?
|
アプリケーションタブ [拡大] |
使用率を自動推定
実行されているアプリケーションの中で、今ユーザーが、どのアプリをどれぐらい使用しているかを自動推定するソフトがあれば、新しくて面白い、といったアイディアです。このソフトを実行すると、今実行されているアプリの一覧が、タスクマネージャのアプリケーションタブのように表示され、各アプリに対して自動推定した使用率が、その横の列に刻一刻と表示される、といったイメージです。
使用率は、CPU使用率のように全部を足すと100%になるものではなく、各アプリに対して個別に0~100%の範囲で使用率を推定します。
|
自動推定した使用率が表示される |
どのような動作から自動推定するか?
自動推定はユーザーがPCに対してなす、いろいろな振る舞いから推定します。どのような振る舞いから推定するかを次にリストアップします。
1. CPU使用率ではない |
バックグラウンドで他のアプリケーションが負荷の高い動作をしているかもしれない/記事を読んでいるときはCPU使用率は上がらない。 |
2. ハードディスクへの読み書き量、インターネットとの通信量ではない |
手当たり次第に次々とページを探しているときには両方の量が上がる/記事を読んでいるときは上がらない。 |
3. ウィンドウの重なり順(Zバッファ順)/フォーカスのあるウィンドウ |
作業をしているウィンドウは最前面にある/フォーカスを持っているはず。 |
4. マウスの動く領域の真下にあるウィンドウ |
作業をしているウィンドウの上をマウスが頻繁に通るはず。 |
5. スクロールしているウィンドウ |
記事を読んでいるときは少しずつスクロールする/早くスクロールすれば読み飛ばしている。 |
6. キー入力が入るウィンドウ |
キー入力が入れば、何らかの作業をしているばす。 |
7. 何度も最前面に出る |
常に最前面に出ていなくても、頻繁に最前面に出てくるウィンドウの上では作業をしているはず。 |
8. 表示面積の大きなウィンドウ |
読みたいページを読むときはよりウィンドウを大きくする/作業するウィンドウは大きくなるはず。 |
9. ユーザーが離席している可能性もある |
例えば、いくら表示面積が大きくても、同じ状態が続いたら、離席している可能性が高く、作業はしていない/人間まったく同じ状態でずっと見続けることはない。 |
|
このように1つの情報から決められるものではなく、いろいろな情報をうまくあわせて、総合して推定する必要があります。このため複雑です。中には一見関係がありそうであまり関係のない動作もあります。
モードを複数用意
推定したい動作に合わせてモードを複数用意して、より適切に推定できるようにすると、面白いと思います。例えば、平均的な動作を推定する一般的なモードの他に、ブラウザなどで文章を読んでいる動作を推定するモード、Wordなどで文章を書いている動作を推定するモードを用意します。それぞれのモードでその動作に推定を最適化します。
一日何をしたかが分かる
このソフトを使って、10分ごとに使用率のログをとれば、その日一日PCの上で、自分が何をやったかが分かるようになります。10分ごとに、その10分の間の平均使用率をログして、そのときに実行されていたアプリの名前やウィンドウのタイトル名、使用率を記録します。使用率を見ることで、そのとき自分がどのアプリを使って作業していたかが分かるようになります。
一日の最後に、今日は何をしたかと思い返すと、なかなか詳細まで思い出せないものです。昨日、一週間前となるとすっかり忘れてしまいます。このソフトで、一年間で何をしたかのログまでとれるようになります。
世の中の似た機能
ユーザーの振る舞いから動作を判断している、最も単純な例に、画面のスクリーンセーバがあります。ユーザーの振る舞いが一定時間ない状態が続くと、スクリーンセーバが起動します。振る舞いがあるかないかの、最も単純な判断の例です。
EclipseのMylyn機能の中に、タスクをアクティブにして作業すると、その作業時間を自動で計測してくれる機能があります。この時間計測が、ユーザーの動きから作業を判断して、時間を計測しているようです。タスクをアクティブにしたまま席をしばらく離れていても、作業時間はカウントされません。
更新履歴 |
2008/08/05 v1 |
|
2008/08/24 v2 |
|
2009/01/17 v3 |
|
|
※ご意見、ご感想、改善点、その他の情報などがありましたら、メールにてお知らせ願います。
|