問題タブ [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 投票する
5 に答える
9467 参照

php - PHP(または任意の言語)の文字列から重複を削除するための最良の方法は何ですか?

文字列から重複を削除するための最もよく知られているアルゴリズムを探しています。これを行うにはさまざまな方法が考えられますが、特に効率的であることが知られているソリューションを探しています。

次の文字列があるとします。

  • Lorem Ipsum Lorem Ipsum
  • Lorem Lorem Lorem
  • Lorem Ipsum Dolor Lorem Ipsum Dolor Lorem Ipsum Dolor

私はこのアルゴリズムが(それぞれ)それぞれに対して出力することを期待します:

  • Lorem Ipsum
  • Lorem
  • Lorem Ipsum Dolor

誰かがこれを助けることができる組み込みのPHP関数を知っている場合に備えて、私はPHPでこれを行っていることに注意してください。

ありがとう!

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

java - この Java コードの重複を排除する

約 10 個以上のクラスがあり、それぞれに LUMP_INDEX と SIZE 静的定数があります。これらの各クラスの配列が必要です。配列のサイズは、これら 2 つの定数を使用して計算されます。現時点では、各クラスに配列を作成する関数があります。次のようなものです。

これらの関数は 10 個ありますが、違いはクラスの型だけなので、ご覧のとおり、大量の重複があります。

この重複を回避する方法について何かアイデアはありますか? ありがとう。(以前も似たような質問をしたのですが、ちょっと言い方が違っていた気がします)

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

perl - Perlコードの重複排除を支援するためのツール?

特定のプロジェクトツリーをスキャンし、コードの重複、つまりさまざまなファイルで繰り返されるコードのブロックについて報告するツール/ライブラリを探しています。

このようなものはありますか?

今のところ、私はそれら(ファイル)をすべて表示し、重複を検索する必要がありますが、それほど効率的ではありません。

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

python - sqlalchemy を使用した重複排除 DB スキーマ - ORM セマンティクスでグループを表す方法は?

mysql を使用し、プログラムによるアクセスに sqlalchemy を使用して、エンティティ重複排除スキーマの単純な表現を作成しようとしています。

私は一種の自己参照クエリだと思う特定の効果を達成しようとしていますが、よくわかりません:

基本的に、「entities」テーブル (一意の entity_id を持つ) と関連付けられた Entity オブジェクトがあり、次に (簡単にするために)「group_id」列と「entity_id」列を持つ entity_groups テーブルがあり、エンティティを「登録」します。そのリレーションの行を作成してグループ化します。このテーブルも ORM オブジェクト (EntityGroup) に関連付けられています。

質問は、グループ内のすべてのエンティティを参照する EntityGroup オブジェクトを取得するにはどうすればよいですか?

次のようなものを書く必要があると思います:

mapper(EntityGroup, entity_groups_table, properties={ 'entities': relationship(エンティティ, .... ?) },

そして、私は詳細について少し曖昧です。基本的に、オブジェクトによって表される行と同じ group_id を持つ entity_groups 内のすべての行が必要です。次に、これらの行の entity_id 列に関連付けられたすべてのエンティティ オブジェクトを具体化する必要があります。これは、sqlalchemy のより詳細な Query() 操作で達成できるもののように思えますが、それを relationship() 構造と組み合わせる方法がわかりません (もしあれば - おそらく手動にしますか?)

どんな助けも役に立ちます。私が明確で要点がはっきりしていることを願っています

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

java - Java: 重複排除する時間遅延キュー

みなさん、こんにちは。

特定のオブジェクトが変更されるたびに、別のシステム (ターゲット) に非同期的に通知する必要があるシステム (ソース) があります。ねじれは、ソース システムが単一のオブジェクトを短い間隔で何度も変更する可能性があることです (更新は非常に「バースト的」です)。その場合、ターゲット システムに 1 回だけ通知し、最終状態を物体。

私が考えたのは、ThreadPoolExecutor の前にある種の遅延型重複排除キューを使用することでした。このキューは次のようになります。

  1. 最小限の時間、アイテムをキューに保持します (理想的には、突然変異の典型的なバーストの期間よりもわずかに長くなるように構成されます)。

  2. (オブジェクトの識別子によって定義された) 重複がキューに入れられた場合に、既存のオブジェクトを置き換えます。ただし、アイテムはキュー内の元の位置を保持する必要があります (1 つのアイテムがキューの最後に永続的に押し付けられるのを避けるため、別のアイテムが一時的に発生する場合でも、ある時点で通知を送信する必要があります)。

java.util でこれとまったく同じものを見たことがなく、この領域での私の google-fu は特に弱いようです。

誰かがこれを以前に実装したことがありますか、このように動作する BlockingQueue 実装を知っていますか、または実装方法についてのヒントがありますか?

前もって感謝します!

ピーター

PS。ESB がこの種のことを行うことは知っていますが、この場合、それは重すぎるアプローチです。理想的には、ソース システムに新しいライブラリの依存関係をまったく追加したくないのです。

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

bash - bashスクリプトの重複排除

シェルスクリプトがあります。cronジョブは1日1回実行します。現時点では、wgetを使用してWebからファイルをダウンロードし、ファイル名にタイムスタンプを追加してから圧縮します。基本的なもの。

ただし、このファイルはあまり頻繁に変更されないため、ダウンロードしたファイルが既に存在する場合は破棄したいと思います。

これを行う最も簡単な方法は?

ありがとう!

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

google-ads-api - Google Adwords はコンバージョンの重複を排除しますか?

AdWords を使用して ajax サイトのコンバージョンを追跡しています。固有のラベルと値を持つ単一のコンバージョンに適しています。

問題:

このサイトでは、ユーザーが非常によく似た複数の変換を短時間で連続して実行できるユース ケースがあります。これらのコンバージョンは固有のものである場合もあれば、1 つ以上の他のコンバージョン値やラベルと一致する場合もあります。

これらの変換を送信すると、一部の変換が追跡され、他の変換は追跡されません。

最初はコンバージョン スニペットをページに追加していたので、conversions.js を 1 回だけインクルードし、他のスニペットを起動していないと考えました。そこで、これを修正するために、コンバージョン スニペットを iFrame に移動し、それをページに配置しました。これにも同じ問題がありましたが、conversions.js が確実に含まれていました。立て続けに発射されるのが問題なのではないかと心配したので、次の発射まで待機させました。1、2、4 秒間隔で試しましたが、どれも問題を解決しませんでした。

何が問題なのかを突き止めようとして、conversions.js を美しくし、デバッグ オプションを見つけました。オンにすると、conversion_id の欠落に関するすべての変換で警告が表示されました。これでも問題は解決しませんでした。

最後に、iFrame を捨てて、トラッキング ピクセルをページに追加してみました。トラッキング ピクセルは引き続き変換を正常に開始し、iFrame をページに追加してから削除するようです。残念ながら、コンバージョンはまだありません。

質問:

これがさまざまな方法で機能しないことを考えると、Google が私の同様の変換を重複排除しているかどうか疑問に思っています。ドキュメントにはこれを明らかにする情報はありませんが、google_conversion_id も文書化されていないため、文書化されていないことがたくさんあります。

もしそうなら、なぜ google_conversion_id はこれを修正しないのですか? 各リードを一意にする必要があるようです。ラベルまたは値に追加することはできません。ブラウザ側にないことを確認するために、キャッシュバスターを最後に追加してすべてのリクエストを作成しています。conversions.js が含まれるか、iFrame が表示されるので、機能していることを確認できます。

何か案は?これについてグーグル社員にどこで質問できるか知っている人はいますか? それは私を夢中にさせています。

0 投票する
5 に答える
2205 参照

java - Appengineでmapreduceを使用した200万レコードの重複排除のパフォーマンスが悪い

約200万件のレコードがあり、それぞれに重複がないかチェックする必要のある文字列フィールドが約4つあります。具体的には、フィールドとして名前、電話番号、住所、父親名があり、残りのデータとともにこれらすべてのフィールドを使用して重複排除を確認する必要があります。結果の一意のレコードをdbに記録する必要があります。

すべてのレコードのmapreduce、iterateを実装することができました。タスクレートは100/sに設定され、バケットサイズは100に設定されています。請求が有効になっています。

現在、すべてが機能していますが、パフォーマンスは非常に遅いです。10,000レコードのテストデータセットの中で、6時間で1000レコードの重複排除処理しか完了できませんでした。

Javaの現在の設計は次のとおりです。

  1. マップの反復ごとに、現在のレコードを前のレコードと比較します
  2. 前のレコードはdb内の単一のレコードであり、マップの反復ごとに別の前のレコードで上書きするグローバル変数のように機能します
  3. 比較はアルゴリズムを使用して行われ、結果は新しいエンティティとしてdbに書き込まれます
  4. 1つのMapreduceジョブの最後に、プログラムで別のジョブを作成します
  5. 前のレコード変数は、ジョブが残りのデータを含む次の候補レコードと比較するのに役立ちます

これを最短時間で達成するために、GAEリソースをいくらでも増やす準備ができています。

私の質問は次のとおりです。

  1. 重複排除(重複のチェック)の精度は、並列ジョブ/タスクによって影響を受けますか?
  2. この設計をどのように改善できますか?
  3. これは2000万レコードに拡大しますか
  4. 1つのmapreduceジョブ全体で使用できる、マップの反復中に変数(カウンターだけでなく)を読み書きするための最速の方法は何ですか。

フリーランサーはこれを支援することを大いに歓迎します。

ご協力いただきありがとうございます。

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

java - 大規模なデータフィードから重複レコードを除外するにはどうすればよいですか?

JSON形式で到着する大きなデータセットの操作を開始しました。残念ながら、データフィードを提供するサービスは、重要な数の重複レコードを配信します。利点として、各レコードには、64ビットの正の整数(Java long)として格納された一意のID番号があります。

データは週に1回到着し、各配信で約1,000万レコードです。現在の配信内の重複と、以前のバッチにあったレコードを除外する必要があります。

重複排除の問題を攻撃するための力ずくのアプローチは、ID番号をJavaセットにプッシュすることです。Setインターフェースには一意性が必要なため、挿入中に失敗すると重複が示されます。

問題は、レコードをインポートする限り、重複を探すためのより良い方法はありますか?

私はHadoopを使用してデータをマイニングしているので、Hadoopを使用してレコードの重複排除を行う良い方法があれば、それはボーナスになります。

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

sql-server-2008 - 先行ゼロのない行を削除する

列(registration_no varchar(9))を持つテーブルがあります。サンプルは次のとおりです。

(042400065)や(42400065)のような登録番号に注意してください。これらはほとんど同じで、違いは先行ゼロだけです。

上記と同じ大文字小文字の登録番号をすべて選択し、先行ゼロのない登録番号を削除したい(42400065)

pls、先行ゼロのないもの(42400065)を削除する前に、先行ゼロ(042400065)と同等のものがあることを確認する必要があることにも注意してください