問題タブ [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.
java - Javaを使用してテキストから複雑で不均一なデータを読み取る
均一で少し複雑ではないファイルからテキストを読み取る必要があります 基本的にはこの順序です
したがって、単語は n 個のドキュメントに表示され、ドキュメントに n 回表示される可能性があります。例として、ファイルの小さなセクションをコピーしていますが、スペースの制約により、何度も出てくる単語を入れることができません。
例:
誰でもこれで私を助けてください。また、このファイルを生成したときに、ファイルをより適切な方法でフォーマットできますか?再フォーマットして、より適切なフォーマットのテキスト ファイルを生成できるかもしれません。
ありがとうございました :)
mysql - mysqlで逆インデックスにアクセスするにはどうすればよいですか
転置インデックスを広範囲に使用するプログラムを作成しています。FTSエンジン経由のsqlite3では、そのようにfts4aux経由で逆インデックスにアクセスできます(fts4チュートリアルから取得)
誰かが mysql エンジンで同じことを行う方法を知っていれば、本当に感謝しています。どうもありがとうございました。
python - 一連の単語を「N」個のチャンクに分割する方法は?
まず第一に、あいまいさを許してください。私の問題は英語で説明するのが少し難しいと思います。基本的に私がやりたいことは、膨大な単語のセットを「N」個の部分に分割することです。
たとえば、ファイル内のすべての単語を読み取り、それらを N=10 の部分に分割します。より正確に言うと、私はデータ マイニング プロジェクトに取り組んでいます。の単語を並べ替える必要があるドキュメントは何千もあります。
n = 2 とします。am と nz をファイルに入れることができることを知っています。n > 100 に対してこれを実行できるアルゴリズムが必要です。
PS: 私のプログラムは最初に N 個のファイル (またはチャンク) を作成し、次にすべての単語を読み取り、開始方法に応じてそれらをチャンクの 1 つに割り当てる必要があります。
例 : 入力 : N = 2 語 = [....]
output : [amで始まる単語] , [nzで始まる単語]
言い換えれば、単語を辞書順に分割したい
python - Pythonを使用してドキュメントトークンのリストが与えられた逆インデックス?
私はpythonの初心者です。ドキュメント トークンのリストを指定して、逆インデックス関数を作成する必要があります。インデックスは、一意の各単語をドキュメント ID のリストにマップし、昇順で並べ替えます。
私のコード:
注: これは、入力引数が次の形式の場合に正常に機能します。{1:"Madam I am Adam",2: "I have never been afraid of him"}
上記の例で得られる出力:
私のコードによると、K、vはリストのキーと値に対応します
引数を指定して create_index 関数を呼び出したときの望ましい出力:
java - MapReduce 逆索引プログラム
values.next() (IntWritable オブジェクト) を、同じく IntWriteable であるファイルのハッシュセットに渡すことができないのはなぜですか? (REDUCER クラスを参照してください)
マッパークラス
レデューサークラス
実行方法
主な方法
エラー:
java.util.NoSuchElementException: org.apache.hadoop.mapred.Task$ValuesIterator.next(Task.java:121 で org.apache.hadoop.mapred.ReduceTask$ReduceValuesIterator.moveToNext (ReduceTask.java:250) で過去の最後の値を繰り返します) org.apache.hadoop.mapred.ReduceTask$ReduceValuesIterator.next(ReduceTask.java:246) で LineIndexer$LineIndexReducer.reduce(LineIndexer.java:49) で LineIndexer$LineIndexReducer.reduce(LineIndexer.java:1) で org .apache.hadoop.mapred.ReduceTask.runOldReducer(ReduceTask.java:522) org.apache.hadoop.mapred.ReduceTask.run(ReduceTask.java:421) org.apache.hadoop.mapred.LocalJobRunner$Job.run (LocalJobRunner.java:398)
c++ - ファイルをトークン化した後、転置インデックスを作成するにはどうすればよいですか?
逆索引を作成しようとしています。テキスト ファイルの行を読んでいます。テキスト ファイルには、各行の最初の位置にドキュメントの ID がdocId
あり、残りの行にはこのドキュメントに関するキーワードがあります。転置インデックスを作成するには、まずこのテキスト ファイルをトークン化する必要があります。私が書いた関数でそれを行い、すべての単語をベクトルに保存しました。私の唯一の不満はdocId
、ベクトルに文字列としても保存することです。必要に応じて、トークン化関数のヘッダーを次に示します。
ファイルをトークン化した後、すべての単語をマップに配置する関数を作成する必要があります。順序付けられていないマップを使用することを考えています。マップでは、すべての単語が 1 回表示されます。また、単語の頻度をどこかに保存する必要もあります。をマップのキーとして使用するのは良い考えだと思いましたが、テキスト ファイルには複数の単語が含まれているのに、単語を表示docId
できるのは 1 つしかないことに気付きました。docId
docId
では、どうすればこの問題を解決できるでしょうか。どこから始めればよいですか?
full-text-search - ハッシュ インデックスと逆インデックス
私が理解しているように、ハッシュ/逆インデックスは、値/単語をそれぞれレコード/ドキュメントにマップします。ただし、ハッシュ インデックスでの挿入の複雑さは低くなりますが (オーバーフローの場合に新しいバケットが追加されるため)、逆インデックスではより複雑になります (ドキュメント ID の並べ替えられたリストを維持するため)。実装を除いて、それらは本質的に同じであることを意味しますか?
filter - Elasticsearch 範囲フィルター逆インデックス
100 億のドキュメントがあります。ドキュメントの 1 つのフィールドはタイムスタンプ (ミリ秒) であり、インデックス作成時に次のマッピングが使用されます。
検索するときは、範囲フィルターを使用します。doc_value を使用しているため、レンジフィルターは内部的に逆インデックスを使用して検索します。それはある種の遅さです。
マッピングを別の方法で変更した場合、つまり、時間/秒/ミリ秒の代わりに日を使用します。
検索するときは、範囲フィルターを使用すると高速です。
パフォーマンスが異なる理由を誰かが説明できますか。
最初のもの(秒/ミリ秒を使用)、逆インデックス(内部的には一種のハッシュテーブルであると想定)には膨大な数のキーがあります。2 つ目 (使用日のみ) では、逆インデックスのキーははるかに少なくなります。それが理由ですか?