2012-05-01 26 views
0

私は以下の条件のタスクを持っています。それはJava /データ構造に関するものです。私は質問に答えてくれるので、私は迷子になって道を見つけるのに役立ちます。情報検索システムのデータ構造/アルゴリズム

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

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

答えて

3

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

自分で実装するのは難しいですが、IRの中で最も重要なデータ構造はinverted indexです。

逆インデックスは、実際には各用語の間に表示されるドキュメントにマップするmap:term->list<index>です。逆インデックスの利点 - 接続(およびクエリ)などのIR標準操作に適していますか?

具体的な質問では、コレクションから逆インデックスを作成し、kという用語のクエリが到着したら、これらの用語に対応するkのリストを取得し、その和集合を取得します。
一度組合が完成すれば、残りはすべてhistogram(それぞれの用語が表示されるリストの中でHashMap<Term,Integer>として実装できます)を作成し、これらのヒストグラムのキーを値の降順に表示します。

IRに関する知識を広げたい場合は、マニングのIntroduction to Information Retrievalを読むことをお勧めします。

+0

+1良い答え。 – Tudor

+0

ありがとう、Amit。 HashMapは良い出発点であり、本もあります(私はそれを見たことがありますが、読める時間はあまりありませんでしたが、それは正しいもののようです)私はちょっと時間が限られていましたので、役に立つとそこからそれを取る。 – user1321503

関連する問題