補正#このセクションでは以下の補正機能について説明します。どのように動作するか#補正機能は補正した語を計算するために3種類の検索を使います。:学習したデータを共起検索。登録されている語を類似検索。共起検索#共起検索はユーザの間違って入力した文字列から登録済みの語を検索します。共起検索ではユーザがどのように検索を実行したかを使います。ユーザがどのように検索したかはクエリログやアクセスログから学習します。ユーザが以下のように検索を実行したとします。(修正!)2011-08-10T22:20:52+09:00上記の検索実行ログから以下のような補正ペアを作ります。補正された語serachsearch1分以内の連続して実行された検索をユーザが入力を補正したものとみなします。検索を実行した間の入力途中の入力シーケンスは、補正用の学習データとしては利用しません。ユーザが"serach"と入力した場合、共起検索は"saerch"を返します。"serach"が「入力」カラムにあり、対応する「補正される語」カラムの値が"search"だからです。類似文書検索#類似検索はユーザの入力をトークナイズし、同じトークンを含んだ登録済みの語を検索します。トークナイズにはTokenBigramトークナイザーを使います。作るサジェストデータセットスキーマではデフォルトトークナイザーとしてTokenBigramトークナイザーを使っているからです。engine"という語が登録されているとします。engine"が補正候補になります。engine"は"search"という同じトークンを持つからです。engine"は"engine"という同じトークンを持っています。engine"は"search"トークンと"engine"トークンにトークナイズされます。(GroongaのTokenBigramトークナイザーは連続するアルファベットと数字を2文字にトークナイズしません。これは検索ノイズを減らす為です。確実に2文字でトークナイズするためにはTokenBigramSplitSymbolAlphaDigitを使います。service"は"web"トークンと"search"トークンと"service"トークンにトークナイズされます。engine"は"sound"トークンと"engine"トークンにトークナイズされます。コマンドを用意しています。オプションを使うと補正機能を利用できます。"saerch"と入力した時の補正結果取得するコマンドは以下のようになります。学習方法#共起検索は学習データを使います。学習データはクエリログやアクセスログから作ります。学習データを作るためにはユーザが検索を実行したときの検索クエリとタイムスタンプが必要です。ユーザが"search"で検索したかったとします。ユーザは正しい"search"というクエリで検索を実行する前に間違って"saerch"で検索してしまいました。このユーザの入力シーケンスは以下のようになります。(検索実行!)以下のコマンドでこの入力シーケンスから学習できます。