自動補完

出典: フリー百科事典『ウィキペディア(Wikipedia)』
移動: 案内検索

自動補完: Autocomplete)は、ソースコードエディタワードプロセッサウェブブラウザなどで広く採用されている機能の一つ。入力補完あるいは単にオートコンプリートとも。自動補完は、ユーザーが入力しようとしている文字列をユーザーが全て入力する前に予測する機能である。この機能は、入力しようとしている単語がすでに入力された文字列から容易に予測可能な場合に効力を発揮する。それは、その状態で一般に使われる単語や入力可能な単語が限られている場合である。このため、電子メールソフト、ウェブブラウザコマンドラインインタプリタなどでよく使われ、テキストエディタの場合は対象言語が高度に構造化され、容易に予測可能な場合(つまりソースコードエディタ)に主に使われる。自動補完は、うまく環境にマッチすれば、人間とコンピュータの相互作用を高速化できる。

ウェブブラウザ[編集]

ウェブブラウザでは、アドレスバー(ブラウザの履歴情報を使う)と頻繁に利用するウェブページ上のテキストボックス検索エンジンの検索ボックスなど)で自動補完が使われる。ウェブのアドレスは長ったらしく、間違えずに打ち込むのが難しい場合があるため、その自動補完は特に便利である。しかし、ログイン又はサインインが必要なホームページにアクセスする際、IDやパスワードを自動記憶してしまう為、セキュリティーやプライバシー上で問題が生じてしまう場合もある。

電子メールソフト[編集]

電子メールソフトでの自動補完は、メール作成時に送信先の電子メールアドレスを打ち込む際に使われる。一般に頻繁に電子メールを送る相手はそれほど多くはなく、自動補完を使うのは比較的容易である。ウェブのアドレスと同様、電子メールのアドレスも長ったらしく、間違えずに打ち込むのが難しい場合がある。

  • マイクロソフトOutlook Expressでは、アドレス帳にある名前からアドレスを探すことができる。
  • GoogleGmailでも、アドレスの一部や格納されている名前からアドレスを探すことができる。
  • BBDB[1] は、Emacs上で同等の機能を提供する。

ソースコードエディタ[編集]

ソースコードでの自動補完を「コード補完(code completion)」と呼ぶ。ソースコードエディタでの自動補完は、プログラミング言語の規則性を利用するので、非常に単純である。ある時点(または名前空間)で意味のある単語の種類は、変数名や関数名などに限られている。よく知られている自動補完機能として、マイクロソフトインテリセンスがある。現在の入力から考えられる補完をポップアップリストで表示し、ユーザーがそこから正しいものを選択できるようになっている。オブジェクト指向プログラミングでは、プログラマは特定のクラスがどんなメンバーを持っているかを正確には知らないことが多いため、特に自動補完が役立つ。すなわち、自動補完はインプットメソッドであると同時にマニュアルの役目も担っている。また、自動補完があると長い変数名も苦もなく使えるようになるため、ソースコード可読性が向上する。命名規則としてキャメルケースを採用した場合、"numberOfWordsPerParagraph" などといった文字列を素早く打ち込むのは難しいが、自動補完があればそれほど苦にならない[要出典]

クエリツール[編集]

クエリツールにおける自動補完は、SQL文を打ち込む際に表の名前や属性名を対象として使われる。打ち込む際の前後関係から、表名の自動補完が必要なのか、それとも属性名の自動補完が必要なのかを自動で判断する。表名の自動補完の際には、データベース上にある利用可能な表の一覧が表示される。属性名の自動補完の場合は、SQL文が参照しようとしている表に関する属性名の一覧だけが表示される。

ワードプロセッサ[編集]

ワードプロセッサには自動補完機能が備わっていることが多く、タイピング時間の削減に一役買っている。自動補完の元となる情報としては、既存の文書から集める場合とユーザーが定義した主な単語の一覧を使う場合がある。この種の自動補完を行うものとしては、OpenOffice.orgStarOfficeLibreOfficeMicrosoft OfficeKOffice などがある。また、EmacsVim にも同様の機能がある。

コマンドラインインタプリタ[編集]

UNIXshbashWindowscmd.exePowerShellといったコマンドラインインタプリタや、その他のコマンドラインインタフェースでは、ユーザーがアクセス可能な名前を全て保持することで、コマンド名やファイル名の自動補完を行っている。一般に、最初の数文字を打ち込んだ後にタブキーを押下することで自動補完が行われる。例えば、カレントディレクトリで "x" で始まるファイル名が "xLongFileName" しかない場合、ユーザーが "x" を打ち込んでから自動補完で名前を完成させることができる。ただし、そのとき他にも "x" で始まる候補があった場合、もう少し打ち込んでから自動補完するか、タブキーを繰り返し押下してコンピュータに候補を順次表示させ選択する必要がある。

類似の機能[編集]

自動置換(Auto replace)
ある文字列を別の文字列に自動的に置き換える機能であり、一般に長くて覚えにくい文字列を打ち込む必要がある場合に使われる。日本語ではこの用途にかな漢字変換のユーザー登録辞書を使うこともある。また、単純な入力ミスを自動的に修正する場合にも使われ、例えば "teh" と打ち込んだものを "the" に置換するなどといった場合がある。
入力予測(Predictive text)
主に携帯電話その他の組み込み機器において搭載されている機能で、自動補完との共通点も多いが入力時だけではなくその後に繋がる語句に対しても予測が行われる。現在の日時や文脈などを反映する機能を備えたものもある。

脚注[編集]

  1. ^ The Insidious Big Brother Database”. 2008年2月23日閲覧。

外部リンク[編集]

実装[編集]

  • PredictAd
  • Google サジェスト
  • CustomizeGoogle Firefox に Google サジェストの機能を追加する
  • WICK オープンソースの自動補完フレームワーク。
  • CreateWebApp.com 商用Ajax自動補完ウィジェット
  • LuMriX 英語版Wikipediaの記事名を文字列入力の際にリアルタイムでヒントとして一覧表示
  • FastAutoComplete 商用Ajax自動補完ウィジェット(大規模辞書対応)
  • CompleteSearch 自動補完付き全文検索。高速であり、2500万以上の文献でテスト済み
  • TypeBooster 自動補完機能を任意の Windows アプリケーションに追加する