问题标签 [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 静态常量。我想要这些类中的每一个的数组,其中数组的大小是使用这两个常量计算的。目前,我为每个类创建了一个函数来创建数组,类似于:

等等。这些函数有 10 个,唯一的区别是类类型,所以你可以看到,有很多重复。

有人对如何避免这种重复有任何想法吗?谢谢。(我之前问过类似的问题,但我想我问的方式有点不对劲)

0 投票
1 回答
388 浏览

perl - 帮助 Perl 代码重复数据删除的工具?

我正在寻找一些可以扫描给定项目树并报告代码重复的工具/库 - 即在各种文件中重复的代码块。

有这样的吗?

就像现在一样,我必须全部查看它们(文件),并搜索重复项,但这并没有让我觉得效率很高。

0 投票
1 回答
538 浏览

python - A Deduplication DB schema with sqlalchemy - 如何用 ORM 语义表示组?

我正在尝试使用 mysql 为实体重复数据删除模式创建一个简单的表示,并使用 sqlalchemy 进行编程访问。

我正在尝试实现一种特定的效果,我认为这是一种自我参照查询,但我不确定:

本质上,我有一个“实体”表(具有唯一的 entity_id)和一个关联的 Entity 对象,然后是一个 entity_groups 表,该表(为简单起见)有一个“group_id”和“entity_id”列,因此我“注册”一个实体通过为该关系创建一行来分组。该表也与一个 ORM 对象 - EntityGroup 相关联。

问题是,如何让 EntityGroup 对象引用组中的所有实体?

我希望我需要写一些类似的东西:

映射器(EntityGroup,entity_groups_table,属性={'实体':关系(实体,...。?)},

我对细节有点模糊。基本上我需要 entity_groups 中与对象表示的行具有相同 group_id 的所有行。然后我需要具体化与这些行的 entity_id 列关联的所有实体对象。这听起来像是可以通过 sqlalchemy 中更详细的 Query() 操作来实现的,但我不确定如何将它与 relationship() 构造结合起来(如果有的话 - 也许可以手动操作?)

任何帮助都会很有用,我希望我说的很清楚

0 投票
2 回答
2656 浏览

java - Java:重复数据删除的延时队列

大家好,

我有一个系统(源)需要在某些对象发生变化时异步通知另一个系统(目标)。扭曲之处在于,源系统可能会在很短的时间间隔内多次改变单个对象(更新非常“突发”),在这种情况下,最好只通知目标系统一次,并以最终状态目的。

我的想法是为此在 ThreadPoolExecutor 前面使用某种延时、重复数据删除队列。该队列将:

  1. 将项目保留在队列中的时间最短(理想情况下,配置为比典型突变爆发的持续时间长一点点)

  2. 如果重复(由对象的标识符定义)入队,则替换现有对象。但是,该项目应该保留其在队列中的原始位置(以避免任何一个项目永远被撞到队列的后面 - 在某些时候我们只需要发送通知,即使另一个项目会暂时出现)。

我在 java.util 中没有看到类似的东西,而且我在这方面的 google-fu 似乎特别弱。

以前有没有人实现过这个,知道这样的 BlockingQueue 实现,或者有关于如何实现一个的提示?

提前致谢!

彼得

PS。我知道 ESB 会做这种事情,但在这种情况下,这种方法过于重量级——理想情况下,我根本不想向源系统添加任何新的库依赖项。

0 投票
4 回答
640 浏览

bash - bash 脚本重复数据删除

我有一个 shell 脚本。一个 cron 作业每天运行一次。目前它只是使用 wget 从网上下载一个文件,在文件名上附加一个时间戳,然后压缩它。基本的东西。

不过,这个文件不会经常更改,所以如果下载的文件已经存在,我想丢弃它。

最简单的方法是什么?

谢谢!

0 投票
1 回答
1143 浏览

google-ads-api - google adwords 是否对转化进行重复数据删除?

我正在使用 AdWords 跟踪 ajax 网站上的转化。它适用于具有唯一标签和价值的单一转化。

问题:

在网站上,我有一个用例,用户可以在短时间内触发多个外观非常相似的转换。有时这些转化是唯一的,有时它们可​​以匹配一个或多个其他转化值和标签。

当我提交这些转换时,它会跟踪其中的一些,而不是其他的。

起初,我将转换片段添加到页面中,所以我认为它只包含了一次conversions.js,而不是触发其他的。因此,为了解决这个问题,我将转换代码段移至 iFrame 并将其放在页面上。那有同样的问题,但肯定包括conversions.js。我担心这个问题可能与他们被快速连续发射的事实有关,所以我让他们在发射下一个之前等待。我尝试了 1,2 和 4 秒的间隔,但都没有解决问题。

为了找出问题所在,我美化了conversions.js,并找到了一个调试选项。我打开它,它在所有转换中都警告缺少conversion_id - 我尝试添加google_conversion_id,并将其设置为时间戳,因此它始终是唯一的。这也没有解决问题。

我终于尝试放弃 iFrame,并将跟踪像素添加到页面。跟踪像素仍然可以很好地触发转换,并且似乎将 iFrame 添加到页面,然后将其删除。不幸的是,仍然缺少转换。

问题:

鉴于这在许多不同的方式中都不起作用,我想知道谷歌是否正在删除我的类似转换。文档没有说明这一点的信息,但他们也没有记录 google_conversion_id,所以有很多没有记录的事情。

如果是,为什么 google_conversion_id 不解决这个问题?似乎每个线索都应该独一无二。我无法附加到标签或值,并且我在发出所有请求时都在末尾附加了一个 cachebuster,以确保它不在浏览器端。我可以验证它是否正常工作,因为无论是 conversions.js 还是 iFrame 出现。

有任何想法吗?任何人都知道我可以在哪里向 googler 询问这个问题?这让我疯狂。

0 投票
5 回答
2205 浏览

java - 在 Appengine 上使用 mapreduce 对 200 万条记录进行重复数据删除的性能不佳

我有大约 200 万条记录,每个记录大约有 4 个字符串字段,需要检查是否有重复项。更具体地说,我有姓名、电话、地址和父亲姓名作为字段,我必须使用所有这些字段和其余数据检查重复数据删除。生成的唯一记录需要记录到 db.xml 中。

我已经能够实现mapreduce,迭代所有记录。任务速率设置为 100/s,存储桶大小设置为 100。启用计费。

目前,一切正常,但性能非常缓慢。我已经能够在 6 小时内完成 10,000 条记录的测试数据集中仅 1000 条记录的重复数据删除处理。

java中的当前设计是:

  1. 在每次地图迭代中,我都会将当前记录与之前的记录进行比较
  2. 上一条记录是 db 中的一条记录,它就像一个全局变量,我在每次映射迭代中用另一个以前的记录覆盖它
  3. 使用算法进行比较,并将结果作为新实体写入 db
  4. 在一个 Mapreduce 作业结束时,我以编程方式创建另一个作业
  5. 上一个记录变量有助于作业将下一个候选记录与其余数据进行比较

我准备增加任何数量的 GAE 资源以在最短的时间内实现这一目标。

我的问题是:

  1. 重复数据删除(检查重复项)的准确性是否会因并行作业/任务而受到影响?
  2. 如何改进这种设计?
  3. 这是否会扩展到 2000 万条记录
  4. 在映射迭代期间读取/写入变量(不仅仅是计数器)的最快方法是什么,可以在一个 mapreduce 作业中使用。

最欢迎自由职业者在这方面提供帮助。

谢谢你的帮助。

0 投票
3 回答
3439 浏览

java - 如何从大型数据源中排除重复记录?

我已经开始处理一个以 JSON 格式到达的大型数据集。不幸的是,提供数据馈送的服务提供了大量的重复记录。从好的方面来说,每条记录都有一个唯一的 ID 号,存储为 64 位正整数(Java long)。

数据每周到达一次,每次交付大约有 1000 万条记录。我需要从当前交付以及以前批次中的记录中排除重复项。

解决重复数据删除问题的蛮力方法是将 Id 编号推入 Java Set中。由于Set接口要求唯一性,因此插入过程中的失败将表明重复。

问题是:只要我导入记录,是否有更好的方法来查找重复项?

我正在使用 Hadoop 来挖掘数据,所以如果有一种使用 Hadoop 对记录进行重复数据删除的好方法,那将是一个额外的好处。

0 投票
4 回答
171 浏览

sql-server-2008 - 删除不带前导零的行

我有一个带有列的表(registration_no varchar(9))。这是一个示例:

请注意注册号,如(042400065)和(42400065),它们几乎相同,不同之处只是前导零。

我想选择所有与上述情况相同的注册号并删除没有前导零的注册号,即(42400065)

请注意,在我删除没有前导零的那些(42400065)之前,我需要确保有一个具有前导零的等效项(042400065)