0

以下の条件でタスクがあります-それはJava /データ構造に関するものです。これらに答えることが道を見つけるのに役立つので、質問を簡単にまとめようとします(道に迷ったので):

  1. 使用することをお勧めするデータ構造は何ですか?
  2. どのアルゴリズムに従いますか? (詳細を感謝します)。

クエリにキーワードが含まれ、検索対象のドキュメントのコレクションがある単純な情報検索システム。クエリに応答して、システムは、すべてまたは一部のキーワードを含む各ドキュメント (最大 n 個のドキュメント) を識別し、見つかったキーワードの降順でドキュメント名を出力します。つまり、すべてのキーワードを含むドキュメントは、ドキュメントの先頭に表示されます。リスト。

4

1 に答える 1

5

まず、 JavaでIRシステムを実装するオープンソースライブラリであるapacheluceneを探しているかもしれません。

自分で何かを実装するのは難しいですが、IRで最も重要なデータ構造は転置インデックスです。

転置インデックスは、実際にはmap:term->list<index>、各用語間でそれが表示されるドキュメントにマップされます。転置インデックスの利点は、接続詞(およびクエリ)などのIR標準操作によく適合することです。

特定の質問では、コレクションから転置インデックスを作成し、k用語のクエリが到着したら、kこれらの用語に対応するリストを取得し、それらの結合を取得します。
ユニオンができたら、ヒストグラムを作成し(各用語が表示されるリストの数で、として実装できますHashMap<Term,Integer>)、これらのヒストグラムのキーを値の降順で出力するだけです。

IRに関する知識を広げたい場合は、マニングの情報検索入門を読むことをお勧めします。

于 2012-05-01T11:34:29.197 に答える