問題タブ [lsh]
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.
tensorflow - 10M+ コーパスで BERT を使用してテキスト類似性を実行する方法は? LSH/ANNOY/fiass または sklearn を使用していますか?
私の考えは、DB 内のすべてのテキストのトークンを抽出しCLS
、CSV または別の場所に保存することです。Cosine Similarity/JAccard/MAnhattan/Euclidean
したがって、新しいテキストが入ってくると、または他の距離を使用する代わりに、またはLSH, ANN (ANNOY, sklearn.neighbor)
ここで与えられたもの のような近似を使用する必要がありますfaiss
。どうすればそれができますか?私のコードは次のとおりです。
PyTorch :
Tensorflow の使用:
そして、トークンを次のように取得できると思いますCLS
:(間違っている場合は修正してください)
それが正しい使い方かどうか教えてください。また、そのようなものをどのように使用できますLSH, ANNOT, faiss
か?
したがって、すべてのテキストには768
長さのベクトルがあり、N(No of texts 10M)x768マトリックスを作成できます。指定された画像/埋め込み/データに最も類似しているデータ ポイント (テキスト)のインデックス を見つけるにはどうすればよいですか?ポイント?top-5
apache-spark - Spark LSH パイプライン、テキスト長を増やしたときのパフォーマンスの問題
この例から始めて、重複したドキュメントを見つけるために Pyspark で Locality-Sensitive Hashing (LSH) を使用しました。
私の DB に関するメモ: 4M のテキスト ファイルがあります。各ファイルの平均文字数は 20,000 文字です。現在、各ドキュメントの最初の 500 文字のみを検討しています。
文字数を 500 から 1000 に増やすと、メモリ エラーが発生します。
パイプラインのパラメーターに取り組んでみました。Ngramでnを増やし、MinHashLSHでNumHashTablesを減らすメモリエラーを回避できることを私は知っています。ただし、これにより偽陰性が増えすぎます。
パイプラインにパフォーマンスを改善できる他のステップはありますか?
私の目的は、メモリ エラーや非常に長い計算時間 (理想的には、計算時間 < 6 時間) を発生させずに、文字数を 500 から 2000 に増やすことです。
これは偽のデータを含む私のコードです: