問題タブ [inverted-index]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
mongodb - MongoEngine 検索インデックス
投稿内の用語に重みが割り当てられ、次のような埋め込みドキュメントとして使用される MongoDb (MongoEngine) を使用して逆インデックス検索エンジンを実装しようとしています。
次に、用語を指定すると、次のクエリを使用してその用語を含む投稿を見つけることができます。
ただし、これは投稿のリストを返しますが、埋め込まれた用語のリストを反復して用語を探すことなく、返された各投稿の用語の重みを見つけるにはどうすればよいでしょうか? 返された投稿の重みも自動的に返すように投稿をクエリする方法はありますか?
また、MongoDB で検索エンジンを実装するためのより良い方法を誰かが持っていれば幸いです。
ありがとう!
python - dict内包表記と自動インクリメンタルIDを使用して、文字列リストから辞書への逆インデックスを実装する方法は?
アイテムのリストを反復処理し、自動インクリメントされた整数 ID と等しい値を持つ辞書でそれらをハッシュするための辞書内包表記を提案できますか? または、ジェネレーターまたは他のリストから値を取得する方法はありますか?
次のような可能性はありますか?
私の現在の解決策:
python - OOBtree インデックスをディスクに書き込む方法は?
インデックスを作成し、後で取得するために投稿リストを作成する大量の情報があります。検索してBTree Data structure
、ディスクに大量のデータ マッピングを格納するのに適していることがわかりました。
The python Libraries で Btree 4.08 を見つけてドキュメントを読みましたOOBTree module
。コードで使用し、データを挿入しましOOBtree
たが、このツリーのどの部分をディスクに保存する必要があるか、または保存する方法がわかりませんか?
BTree Python ドキュメントのリンクは次のとおりです。
arrays - VBA で転置インデックスを効率的に作成する方法
単語が表示される行番号のリストが関連付けられた単語の辞書を取得するための逆インデックスを作成しています (行番号とその行内の特定のセルに表示される単語のリストを開始します)。
私はこれのためにいくつかのコードを動作させることができましたが、配列(辞書の値)への追加を扱うのは少し面倒であることがわかりました.
辞書の値に行番号のリストを格納するために、配列、コレクション、または簡単に検索できるその他のデータ型を使用することにオープンです。以下のコアの問題を示すために、コードの縮小バージョンを貼り付けました。質問は実際にはBuildInvertedIndex
手順に関するものですが、シナリオを簡単に再現できるようにするために残りの部分が含まれています。
これを実行するには、アクティブ シート (文) の列 F に値が必要です。値がない場合は、VBA 環境で Microsoft Scripting Runtime への参照を追加して、辞書データ型を使用できるようにする必要があります。 (ツール -> 参照 -> Microsoft Scripting Runtime)。
コードからわかるように、既存の配列 (ディクショナリ内に値として格納されている) に新しい行番号を挿入する必要があるため、これは少し面倒です。(既存の値をクリアせずに) この配列を拡張する方法がわからないため、変数 tmpArr を使用して適切なサイズの配列を作成し、辞書内の既存の配列から値を 1 つずつコピーしました。次に、現在の行番号を最後に追加します。次に、一時配列を使用して、そのキー (現在の単語) の既存の値を置き換えます。
これに関するアドバイスは大歓迎です。
information-retrieval - メタ インデックスと呼ばれるインデックス構造を読み込めませんでした
terrier 3.5 を使用してコレクションの逆インデックスを作成したとき。まず、「./bin/trec_setup.sh var/corpus」を使用し、次に「./bin/trec_terrier.sh -i -j」を使用しますが、メタ インデックスと呼ばれるインデックス構造を読み込めませんでしたというエラーが発生します。
c++ - C++ で転置インデックスを保存、読み込み、使用する最良の方法 (~500 Mo)
TF-IDF とコサイン類似度を使用した小さな検索エンジンを開発しています。ページが追加されると、別のページで単語の頻度を維持するために逆索引を作成します。ストップワードとより一般的な単語、および複数形/動詞/などを削除します。ステミングされます。
私の逆インデックスは次のようになります。
このデータ構造を使用すると、 で idf の重みを取得できますword_a.size()
。クエリが与えられると、プログラムはキーワードをループし、ドキュメントにスコアを付けます。
データ構造がよくわからないので、質問は次のとおりです。
検索時にロードするために 500 Mo の転置インデックスを格納する方法は? 現在、ブーストを使用してインデックスをシリアル化しています。
そして、検索時にロードします。
しかし、非常に遅く、読み込みに 10 秒ほどかかることもあります。
map
逆インデックスに対して十分に効率的かどうかはわかりません。- ドキュメントをクラスター化するために、各ドキュメントからすべてのキーワードを取得し、これらのキーワードをループして類似ドキュメントをスコアリングしますが、各ドキュメントを再度読み取ることは避け、この逆インデックスのみを使用したいと考えています。しかし、このデータ構造はコストがかかると思います。
助けてくれてありがとう!
java - Java 逆索引プログラム
複数のドキュメント間の用語の頻度を返す逆インデックス プログラムを Java で作成しています。コレクション全体で単語が出現する回数を返すことはできましたが、その単語がどのドキュメントに出現するかを返すことはできませんでした。これは私がこれまでに持っているコードです: