基本情報技術者試験 平成31年度 春期 午前 問18
理想的なハッシュ法についての問題。
--------------------
平成31年度 春期 午前 問18
データ検索時に使用される、理想的なハッシュ法の説明として、適切なものはどれか。
ア
キーワード検索のヒット率を高めることを目的に作成した、一種の同義語・類義語リストを用いることによって、検索漏れを防ぐ技術である。
イ
蓄積されている膨大なデータを検索し、経営やマーケティングにとって必要な傾向、相関関係、パターンなどを導き出すための技術や手法である。
ウ
データとそれに対する処理を組み合わせたオブジェクトに、認識や判断の機能を加え、利用者の検索要求に対して、その意図を判断する高度な検索技術である。
エ
データを特定のアルゴリズムによって変換した値を格納アドレスとして用いる、高速でスケーラビリティの高いデータ検索技術である。
--------------------------
解説
「ハッシュ(hash)」とは対象となるデータに対して特定の処理をして変換した小さな値のこと。
問題にあるデータ検索時のハッシュ法とは、このハッシュの値をデータ格納場所を示すアドレスとして使う方法のことである。
ということで正解は選択肢エ「データを特定のアルゴリズムによって変換した値を格納アドレスとして用いる、高速でスケーラビリティの高いデータ検索技術である。」となる。
もう少し細かく説明。
"データを特定のアルゴリズムによって変換" は簡単な例を挙げると、10で割った時の余りを格納のアドレスにする、などがある。
・1024 というデータは 4 というアドレスの場所に格納
・2048 というデータは 8 というアドレスの場所に格納
・4096 というデータは 6 というアドレスの場所に格納
といった具合。
探したいデータの格納アドレスがすぐにわかるので、そこを見れば、データがあるかどうかの検索が "高速" にできる。
"スケーラビリティの高い" はデータ量の増大に容易に対応してできるという意味。拡張性があるとも言う。
格納されるデータが多くなったとしても、(理想的なハッシュ法であれば)検索にかかる時間はハッシュの計算と特定した格納場所の参照なので一定の時間を保てる。
問題文にある "理想的な" はここで重要になり、格納先アドレスがかぶらないことを言っている。
上の例(10で割った余りを格納先アドレスに使う)では格納先はほぼかぶることになり、単純な一度の格納場所参照では検索出来なくなる。
ハッシュ計算の結果が容易にかぶらないことが、理想的なハッシュ法になる。
計算を複雑にしてハッシュ値の桁数を増やせばこの理想に近づくが、ハッシュの計算にかかる時間の増大、データ保管に必要なデータ量の増加となるためやりすぎは良くない。
選択肢ア「キーワード検索のヒット率を高めることを目的に作成した、一種の同義語・類義語リストを用いることによって、検索漏れを防ぐ技術である。」
は類似検索の技術。
簡単なものだと平仮名、片仮名、全角、半角の表記揺れを吸収できるようにするなど。ユーザに曖昧な検索を許す。
スペースが全角でないから検索で一致しなかったとか、やめてほしい。
選択肢イ「蓄積されている膨大なデータを検索し、経営やマーケティングにとって必要な傾向、相関関係、パターンなどを導き出すための技術や手法である。」
はデータマイニングの技術。
AI を活用して、人間には見出せない相関関係を見つけ出す。最近の流行り。
選択肢ウ「データとそれに対する処理を組み合わせたオブジェクトに、認識や判断の機能を加え、利用者の検索要求に対して、その意図を判断する高度な検索技術である。」
は具体的な技術名がわからない。
コンシェルジュとか、ヘルプセンターに役立ちそう。
前後の問題はこちら。