2009-03-17 6 views
0

プロジェクトのシナリオの説明:ライブラリコンピュータシステムで検索して記事を作成するには、キーワードを 'and'などのブール演算子と組み合わせて使用​​します&)および 'または()。たとえば、ナノテクノロジーや橋梁建設の用途を扱う記事や書籍を検索する場合、クエリはNanotechnology &ブリッジの構築になります。書籍とアーティキルを適切に検索するために、すべての文書は、文書の内容を表す一連のキーワードを使用して表現されます。ライブラリコンピュータシステムで検索するために使用されるキーワード文書のファイルのファイルを読み取る

各文書(書籍、記事など)は一意の文書番号で表現されているものとします。以下に示すように、その文書に含まれる数字とキーワードで表される一連の文書が提供されます。

887 5 
nanotechnology 
bridge construction 
carbon fiber 
digital signal processing 
wireless 

上記887は文書番号に対応し、5は文書に与えられたキーワード数です。各キーワードは別々の行に表示されます。プロジェクトの入力には、各文書の文書番号とキーワードのセットが含まれます。入力の最初の行には、処理する文書レコードの数に対応する整数が入ります。

逆索引データ構造は、キーワードごとにキーワードを含む一連の文書番号を格納します。例えば、キーワード炭素繊維のために、我々は次のようになります。

橋の建設887、117、665、900 炭素繊維を887、1098、654、665、117

番のドキュメント887、1098、654、665、および117のすべてがキーワード炭素繊維が含まれていますし、キーワード橋の建設が文書で発見されたが、このプロジェクトには2つの主要な側面がある887、117、665および900

に番号が付け:

  1. Iは、文書情報が含まれています(標準入力を使用して)ファイルを読み込み、反転リストのデータ構造にブールクエリを適用するために、反転リストデータ構造
  2. を構築するために必要なのです。

ブールクエリは、次の例のように処理されます。キーワードブリッジを含む文書を得るには、&カーボンファイバーを設定し、交差点操作を行い、文書887,117、および665を取得します。炭素繊維は和集合操作になりますし、このクエリの文書が887、1098、654、665、および900

OKですので、私の質問は:

私は以来、文書を読むにはどうすればよいです私の最初のクラスは、ドキュメント番号のセットを格納するsetClassですか?彼らはすべての右の別の後にキーワードの異なった量を持っているので、

25 //first document number 329 7 //second document number ARAMA ROUTING ALGORITHM AD-HOC CSMA MAC LAYER JARA MANET 107 4 //third document number ANALYSIS CROSS-LAYER GEOGRAPHIC FORWARDING WIRELESS SENSOR NETWORKS 

は、どのように私は、文書番号を読み取ることができます。

私の問題は、すべての文書は、例えば、1つのテキストファイル内のすべてであるということですか?

答えて

1

最初の行の "25"は実際にファイル内のドキュメントの数ですか?その最初の数は数がある場合

int numDocs = readLine // assuming first number is number of docs 

for (int i = 0; i < numDocs; ++i) 
{ 
    string line = readLine 
    int docNumber = getFirstNumber(line) 
    int numKeywords = getSecondNumber(line) 

    for (int j = 0; j < numKeywords; ++j) 
    { 
     string keyword = readline 
     associate keyword with docNumber // however this works 
    } 
} 
+0

イムわからない:(あなたがEOFを打つまでは、単に文書を読んでいない場合)、私はここで

は、ファイルを読み取るためのいくつかの擬似コードであることを仮定して行きますよ文書は、しかし、良い観察です。私は教授に電子メールを送って、それが何であろうと思っているのかを見ても、まだ答えを得ていません。 –

+0

私はあなたのコードを使用しようとしたので、readLineが宣言されていない識別子であることを私に伝え続けます 私は読取りラインを使用するために必要なヘッダがあります。 お知らせください。 ありがとう –

+0

ああ、おそらく実際の機能ではありません。どのように見えるかを知るための疑似コードです。 C++の場合、 "readLine"は "cin >> myString"などとなります –

関連する問題