問題タブ [deduplication]

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.

0 投票する
4 に答える
2225 参照

python - 膨大なファイルリストに対して重複チェックを行うための最良の方法またはアルゴリズムは?

私はPythonを使用して、ファイル(20000を超える)ファイルの膨大なリストをニアデュープしています。合計約300MB

現在の方法は、difflibのSequenceMatcherを使用してほぼ重複チェックを行い、QuickRatioを使用して結果を取得することです。

4人の労働者のプロセスでは、仕事を完了するのに25時間かかりますが、これは非常に遅いです。

また、Cベースのニアデュープチェックを提供するLivenstheineも試しましたが、difflibよりもさらに低速で精度が低くなります。

チェックは次のように行う必要があります。フォルダ内に20000個のファイルがあります。各ファイルは、反復ごとにフォルダー内の20000ファイルと比較する必要があります。したがって、20000*20000回の反復があります。

私が考えているのは、すべてのファイルにインデックスを付けてインデックスを比較することですが、インデックスを作成するのは初めてで、うまくいくかどうかはわかりません。その場合、最良のインデックス作成オプションは何ですか?

ありがとう。

以下はコードです:

0 投票する
3 に答える
698 参照

duplicate-data - 重複顧客の検出

複数のテーブルに正規化された顧客データがたくさんあります。顧客が同じである可能性があると推測するための最良の基準を決定したいと考えています。重複の数を最小限に抑えることと、誤検出を最小限に抑えることとの間でバランスを取る必要があるため、潜在的な重複についてユーザーが質問するのを妨げる必要があります。

|| 姓名と電話番号の組み合わせを探しています || 電子メールアドレス。

最初の質問は、顧客が別の顧客と同じかどうかを判断するための適切な基準は何かということです。

2 番目の質問は、この特定のアプリケーションについて、過去 2 か月以内にサインアップした顧客の重複のみを検出したいということです。これにより、検出基準がまったく変更されますか?

0 投票する
4 に答える
555 参照

c# - 文字列の重複を高速かつメモリ効率的に検出するためのデータ構造の選択

いくつかの方法で解決できる興味深い問題があります。

  • 文字列を受け取る関数があります。
  • この関数がこの文字列を以前に見たことがない場合は、何らかの処理を実行する必要があります。
  • 関数が以前に文字列を見たことがある場合は、処理をスキップする必要があります。
  • 指定された時間が経過すると、関数は重複した文字列を受け入れる必要があります。
  • この関数は 1 秒間に何千回も呼び出される可能性があり、文字列データは非常に大きくなる可能性があります。

これは、実際のアプリケーションの高度に抽象化された説明であり、質問の目的のために核となる概念に取り掛かろうとしています。

関数は、重複を検出するために状態を保存する必要があります。また、重複を期限切れにするために、関連付けられたタイムスタンプを保存する必要があります。

文字列を保存する必要はありません。文字列の一意のハッシュは、衝突による誤検出がなく (完全なハッシュを使用しますか?)、ハッシュ関数のパフォーマンスが十分であれば問題ありません。

単純な実装は次のようになります (C# の場合):

ただし、メモリ フットプリントを削減し、潜在的にパフォーマンスを向上させるために、基本的なハッシュ テーブルの代わりに、これを処理するカスタム データ構造を評価しています。

では、これらの制約が与えられた場合、何を使用しますか?

編集、提案された実装を変更する可能性のあるいくつかの追加情報:

  • 文字列の 99% は重複しません。
  • ほとんどすべての複製が連続して、またはほぼ順番に到着します。
  • 実際には、関数は複数のワーカー スレッドから呼び出されるため、状態管理を同期する必要があります。
0 投票する
2 に答える
195 参照

sql - SQL:最も既知の値を持つ行を選択する方法は?

ユーザーのIDが永続的なユーザーのテーブル(username、gender、date_of_birth、zip)がありますが、ユーザーは過去に何度も登録される可能性があり、すべてのデータを入力する場合としない場合があります。それに加えて、彼は居住地を変更することができました (この場合、zip が変更される可能性があります)。

したがって、クエリ

次の結果を返します。

この場合、user1 は住居を変更しました。郵便番号が変更されました。彼に「属する」2 番目の行には、人口統計データが含まれていません。User3 にも複数のレコードがあり、2 つのレコードだけに人口統計データが含まれています。

私がやりたいことは、ユーザーに関するデータを最も多く含む行にユーザーをバインドし、最も既知の値を持つ行に含まれる zip を検討することです。適切なクエリの書き方を知っている人はいますか?

ありがとう!

0 投票する
3 に答える
2944 参照

parsing - mbox 形式のメールボックスの重複を削除 (重複排除) するにはどうすればよいですか?

"X-Evolution:" ヘッダーのみが異なるメッセージの複製コピーを含む mbox メールボックスを持っています。

できるだけ迅速かつ簡単な方法で、重複したものを削除したいと思います。これはすでに書かれているようですが、Python メールボックス モジュール、さまざまな perl mbox パーサー、formail などを見てきましたが、見つかりませんでした。

誰か提案はありますか?

0 投票する
2 に答える
518 参照

vb.net - VB.Net - データの重複を排除する効率的な方法

SQL 2000 データベースに対して VB.Net 2.0 で記述されたレガシー アプリケーションを扱っています。

〜125,000行と同様のデータを持つ2つのフィールドペアを持つ単一のテーブルがあります。

つまり、FieldA1、FieldB1、FieldA2、FieldB2

FieldA と FieldB を組み合わせた個別のリストを処理する必要があります。

SQL を使用して、約 140,000 の個別の行があることを確認しました。

アプリケーションのフレームワークが非常に制限されているため、2 つの XML オブジェクト、2 つの DataTable オブジェクト、または 2 つの DataTableReader オブジェクトとしてのみデータを取得できます。フレームワークを使用してカスタム SQL を実行できません。

DB アクセス ポリシーが非常に制限されているため、View または Stored Proc を追加して単一のリストとして取得することができません。

後で処理するために、2 つの XML / DataTable / DataTableReader オブジェクトを 1 つの個別の IEnumerable オブジェクトに結合する最も効率的な方法は何ですか?

0 投票する
3 に答える
7176 参照

hash - データの整合性と重複排除に使用するのに最適なハッシュアルゴリズムは何ですか?

(1)将来の破損をチェックし、(2)重複ファイル(名前やその他のメタデータが完全に異なる可能性がある)を排除するために、内部にバイナリデータを含む多数のファイルをハッシュしようとしています。

私はmd5とsha1およびそれらの親戚について知っていますが、これらはセキュリティのために設計されているため、ブルートフォース攻撃の効果を減らすために意図的に遅くなっていると理解しています。対照的に、衝突を可能な限り減らしながら、可能な限り高速に実行されるアルゴリズムが必要です。

助言がありますか?

0 投票する
2 に答える
1122 参照

database - CSVをデータベースにインポートする(重複エントリ)

私の仕事では、週に1〜2回更新されて送信される、長いスプレッドシートで情報を検索する必要があります。最新のスプレッドシートでは、最後のスプレッドシートにあった情報が欠落していることがあり、必要な情報を見つけるためにいくつかの異なるスプレッドシートを調べる必要があります。最近、スプレッドシートをCSVファイルに変換して、データベーステーブルにアップロードできることを発見しました。数行のスクリプトで、探しているものとVoilaを入力するだけです。今、私は最新のスプレッドシートを手に入れました。古いスプレッドシートの上にそれをインポートできるかどうか疑問に思っています。データベースでプライマリに設定した行ごとに一意の番号があります。現在の情報の上にインポートしようとすると、プライマリが複製される行をスキップするだけですか、それともデータベースを台無しにするだけですか?

試してみる前に専門家に聞いてみようと思いました。ご入力いただきありがとうございます。

詳細:スプレッドシートは、私たちのクライアントで構成されています。各行には、クライアントの名前、一意のID番号、アドレス、および連絡先情報が含まれています。一意のIDを含む行をプライマリに設定してからアップロードできます。私の懸念は、csvファイルに新しい行を示すものが何もないことです(私は思います)。アップロードすると、重複をスキップするオプションが表示されますが、行全体またはそのセルだけがスキップされ、データが間違った行に配置されます。これは、ApacheサーバーIDKのmysqlのバージョンです。これには000webhostを使用しています。

0 投票する
1 に答える
1416 参照

solr - SOLR重複排除を使用して重複記事のエントリを1つ保持します

solrconfig.xmlの次の設定でSolr重複排除を使用しました

およびschema.xml

私の目的は、説明が重複しているドキュメントを見つけることです(ほぼ重複する場合は、TextProfileSignatureを使用します)。1つのエントリを保持し、他の重複するエントリを削除します。

たとえば、doc1の説明:Websol –候補者はコミュニケーションに優れている必要があり、コンピュータスキルは転居を希望している必要があります。国際コールセンターのバックオフィスには十分な空席があります。

doc2 description:Websol –候補者はコミュニケーションに優れている必要があり、コンピュータースキルは転居を希望している必要があります。国際コールセンターのバックオフィスには十分な欠員があります。

これらの2つのドキュメントから、両方ではなく1つだけを削除しますが、solr重複排除を使用すると両方のエントリが削除されます。

設定で何かが足りない場合、またはこれを達成するために他の方法に従う必要がある場合は、私に知らせてください。

0 投票する
2 に答える
1983 参照

java - Solr ベースの重複除外システムを作成するためのベスト プラクティスは何ですか?

検索条件に一致する検索結果を返すsolr検索ベースの重複除外システムをセットアップしています。データベースからデータを取得し、Solr サーバーにインデックス付きドキュメントを作成するために、dataimport ハンドラーを使用しました。

私のsolrスキーマは次のとおりです。

上記のように、DoubleMetaphoneFilterFactory を使用して、名 (fname) および姓 (lname) フィールドのタイプを音声検索用の音声として指定しました。音声フィールド タイプの説明は次のとおりです。

検索で、いずれかの検索フィールドだけでなく、指定したすべてのクエリ フィールドに一致するドキュメントが返されるようにします。

私の問題は、fname、lname、または address のいずれかを単独で検索すると、結果は非常に関連性がありますが、プライマリ検索クエリと一緒にフィルター クエリを使用すると、両方の検索条件からの結果の結合が結果に含まれることです。

誰かが私が間違っていることを指摘してください。また、重複した顧客レコードを特定できる銀行の重複除外システム用の solr スキーマを設計するために留意すべきベスト プラクティスはありますか。

前もって感謝します!!