増井ラボノート コロンブス日和

第9回 ExpandHelp

この記事を読むのに必要な時間:およそ 3.5 分

ヘルプの憂鬱

複雑なシステムにはオンラインヘルプやマニュアルが用意されているものですが,パソコンやアプリケーションの解説本が大量に売られているところを見ると,ヘルプやマニュアルは十分役にたってはいないようです。

ヘルプが利用されない最大の理由は必要な項目が見つからないことでしょう。たとえばMacを米国時間に設定したいと思って「米国時間」で検索すると図1が表示されます。

図1 米国時間で検索すると……

図1 米国時間で検索すると……

これではわけがわからないので「時間」で検索すると,より多くの項目が表示されますが図2),米国時間の設定には関係なさそうです。

図2 さらに「時間」で検索すると……

図2 さらに「時間」で検索すると……

「時刻」「時計」で検索すれば「日付と時刻」環境設定」という項目が見つかりますが,これで米国時間に設定できるのかはよくわかりませんし,そもそも「米国時間」「時間」でも検索できるべきではないでしょうか。

必要な項目が見つかった場合でも,そこに記述されている方法は自分で実行する必要があります。ユーザはMacを米国時間に設定したいだけであり,時刻やタイムゾーンを設定する方法を知りたいわけではないのに,ヘルプシステムは一般的なやり方しか教えてくれませんから,ユーザは自分で環境設定パネルを開いて,米国時間に設定する必要があります。

このように,たいていのヘルプシステムは,

  • ヘルプ項目が見つからない
  • 自分で操作が必要

という問題があることになります。一方で,最近は普通にWeb検索すればそれなりに有用情報が見つかることが多いため,ヘルプシステムへの期待が低くなってしまっているのだと思われます。

ExpandHelp

Web検索に苦労することが少なくなってきたのは,検索エンジンの性能が向上したこともさることながら,情報の量がすごい勢いで増えてきたことによる影響も大きいでしょう。どこかのブログに「Macの時計を米国時間に設定する方法」という記事があれば,普通に「Mac 米国時間」で検索すれば見つかる可能性が高いと思われますが,さまざまな表現で情報が表現されていれば検索に成功する可能性が高くなると言えるでしょう。

Generate and Filter

パズルを解く方法としてGenerate and Testと呼ばれるアルゴリズムがあります。たとえば「数独」を解こうとする場合,理屈で推論して空きを埋めていくのではなく,あらゆる数字の組み合わせを生成して順番に試してみれば,時間はかかるかもしれませんが必ず最終的に答が見つかるはずです。これはひどく効率が悪いやり方に見えますが,明らかに間違っている組み合わせを早目に無視するような工夫をすれば,このような簡単なアルゴリズムでもうまくパズルを解くことができる場合があります。

ヘルプの検索でもこれに似た方法を使うことができます。ヘルプデータやWebをキーワード検索する場合,検索対象は固定であり,それを検索するためのキーワードをユーザが工夫するのが常識になっています。たとえば「時間」というキーワードを使って,米国時間に関連した情報を探すことに失敗した場合は「時刻」「タイムゾーン」のような別のキーワードで再検索を試みるのが普通でしょう。これは結果的に(時間¦時刻¦タイムゾーン)のような正規表現で検索したのと同等ですから,ユーザにとっては面倒な話ですが,Web検索でもファイル検索でもこういうやり方があたりまえになっているので,これをとくに苦痛だと思っていない人も多いかもしれません。

しかし本当にユーザにとって便利なヘルプ情報を提供しようとするならば,ユーザに検索語を工夫させるのではなく,「米国時間にセット」でも「タイムゾーンを設定」でもヘルプエントリを検索できるように,あらゆる表現でデータを用意しておくほうが親切です。たとえばヘルプシステム側に「タイムゾーンを(米国¦英国)(時間¦時刻)に(設定¦セット¦変更)する」のような正規表現を用意しておき,これを使ってあらゆるヘルプ表現の組み合わせを生成し,ユーザの与えた検索語でフィルタリングすることにすれば,「米国時間にセット」でも「タイムゾーンを設定」でもヘルプが見つかるようになるはずです。

Generate and Test であらゆる解の候補を生成してから解のチェックをするのと同じ要領で,あらゆる説明文字列のパターンを生成しつつ,その中でユーザの検索文字列とマッチするものでフィルタリングを行うGenerate and Filter方式を使えば,ユーザはキーワードについて頭を使うことなく検索に成功する可能性が高まります。このような手法をExpandHelpと呼ぶことにします。

展開されたデータは巨大になってしまう可能性がありますが,最近のパソコンでは多少大きなデータを利用しても問題ありませんし,Generate and Testの場合と同じように実装を工夫すれば,実際にすべての文字列を展開せずに検索を行うこともできます。

ヘルプ項目の実行

ヘルプ項目の検索に成功した場合,記事を参照しながらユーザが自分で操作を行う必要があります。この手間をなくすには,ユーザが指定した検索キーワードを基にして,ユーザの意図に合致する操作コマンドをシステムが生成して実行できるようにすれば良いでしょう。

「米国時間」でヘルプ検索に成功してユーザの意図どおりの結果が出た場合,ユーザの意図は正しく検索システムに伝わっていることになりますから,そのままシステムに実行を指示できます。タイムゾーンを設定するtimezoneというコマンドが存在したとすると,「米国」のようなパラメータを使って,timezone 米国を起動できます。

Mac版ExpandHelp

このような考えに基づいて,Mac版のExpand Helpを試作してみました。MacのExpandHelpはメニューバーに常駐するアプリケーションで,キーワードを入力するとそれに関連したヘルプが表示されます図3)。たとえば「3:45」と入力すると,3:45という時刻に関連するコマンドがメニューに表示されます図4)。

図3 Mac版ExpandHelpの起動

図3 Mac版ExpandHelpの起動

図4 関連するコマンドが表示される

図4 関連するコマンドが表示される

ここで「時刻を3:45にセットする」を選ぶとdateコマンドが実行されて,システムの時刻が3:45にセットされます。

ExpandHelpのヘルプデータは図5のような配列として表現されています。

図5 ExpandHelpのヘルプデータの構造

図5 ExpandHelpのヘルプデータの構造

(時計¦時間¦時刻)を(0¦1¦2¦3¦4¦5¦6¦7¦8¦9¦10¦11¦12):(0¦1¦2¦3¦4¦5)(0¦1¦2¦3¦4¦5¦6¦7¦8¦9)(AM¦PM)に(セットする¦設定する¦あわせる)を展開したパターンのうち3:45にマッチするものが表示され,時刻を3:45にセットするを選択するとsetdate(3,4,5)が実行されます。

著者プロフィール

増井俊之(ますいとしゆき)

1959年生まれ。慶應義塾大学環境情報学部教授。ユーザーインターフェースの研究者。東京大学大学院を修了後,富士通半導体事業部に入社。以後,シャープ,米カーネギーメロン大学,ソニーコンピュータサイエンス研究所,産業技術総合研究所,Appleなどで働く。2009年より現職。携帯電話に搭載される日本語予測変換システム『POBox』や,iPhoneの日本語入力システムの開発者として知られる。近著に『スマホに満足してますか? ユーザインターフェースの心理学』。

コメント

コメントの記入