このようなものを最初から自分で作成したい場合は、TF / IDF:用語頻度/逆ドキュメント頻度と呼ばれるものを使用します。つまり、非常に単純化するために、コーパス全体では一般的ではない単語をクエリで検索し、それらの単語を含むドキュメントを検索します。
つまり、誰かが「象を買いたい」という単語を含むクエリを入力した場合、クエリ内の単語の中で、「象」という単語はおそらくあなたのコーパスで最も一般的でない単語です。 「購入」はおそらく次です。したがって、ドキュメント(この場合は以前のクエリ)を、「象」という単語が含まれている量と、「購入」という単語が含まれている量でランク付けします。 「I」、「to」、「an」という単語はおそらくストップリストに含まれているので、それらを完全に無視します。各ドキュメント(この場合は前のクエリ)を、一致する単語の数(ドキュメントの逆頻度に応じた重み付け-つまり、一般的でない単語の重みが高い)でランク付けし、上位のいくつかを表示します。
私は単純化しすぎたので、正しく理解するにはこれを読む必要がありますが、単純な方法で実装するのはそれほど複雑ではありません。ウィキペディアのページから始めるのが良いかもしれません:
http://en.wikipedia.org/wiki/Tf%E2%80 %93idf