问题标签 [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 投票
2 回答
459 浏览

python - Python 2.7:添加后缀的去重列表

我不确定我是否正确地考虑了这个问题。我想编写一个函数,它接受一个包含重复项的列表并将一个迭代后缀附加到“重复”列表中。

例如:

回归目标:

我的直觉是在使用 while 语句迭代列表时使用 pop 函数,如下所示:

但:

['苹果','樱桃','橙子']

感谢任何指针。

0 投票
1 回答
1828 浏览

r - R如何从列表中删除重复项

我有一个列表列表,其中包含以下 2 个变量:

有没有办法删除重复项,如果邮政编码出现在一个列表中,则根据特定标准从其他列表中删除?

示例:邮政编码 00921 出现在上面的两个列表中。我只想将其保留在 hu(住房单元)总和最低的列表中。在此,我只想将邮政编码 00921 保留在第二个列表中,因为列表 2 中的总和为 162,280,而列表 1 中的总和为 256,803。

很感谢任何形式的帮助。

0 投票
4 回答
686 浏览

c++ - 查找要重复数据删除的项目

我有一个数据池(X 1 ..X N),我想为它找到相等值的组。比较非常昂贵,我无法将所有数据都保存在内存中。

我需要的结果是,例如:

X 1等于 X 3并且 X 6
X 2是唯一的
X 4等于 X 5

(行的顺序或行内的顺序无关紧要)。

如何通过成对比较来实现它?


这是我到目前为止所拥有的:

比较所有对 (X i , X k ) 与 i < k,利用传递性:如果我已经找到 X 1 ==X 3和 X 1 ==X 6,我不需要比较 X 3和 X 6

所以我可以使用以下数据结构:

其中组是任意分配的(例如输出中的“行号”)。

对于i < k的一对 (X i , X k ):

  • 如果 i 和 k 都已经分配了一个组,则跳过

  • 如果它们比较相等:

    • 如果我已经分配了一个组,请将 k 放入该组
    • 否则,为 i 创建一个新组并将 k 放入其中
  • 如果它们不相等:

    • 如果我还没有分配组,请为我分配一个新组
    • k 一样

如果我对项目的顺序很小心,那应该可以,但我想知道这是否是解决这个问题的最好/最不令人惊讶的方法,因为这个问题似乎有点普遍。


背景/更多信息:目的是对项目的存储进行重复数据删除。他们已经有一个哈希值,如果发生冲突,我们希望保证完全比较。相关数据的大小具有非常尖锐的长尾分布。

迭代算法(找到任何两个重复项,共享它们,重复直到没有重复项)可能更容易,但我们需要非修改诊断。代码库是 C++,适用于 STL / boost 容器或算法的东西会很好。

[编辑]关于散列:出于这个问题的目的,请假设一个无法替换的弱散列函数。

这是对现有数据进行一次性重复数据删除的必要条件,并且需要处理哈希冲突。最初的选择是“快速散列,并在碰撞时比较”,选择的散列有点弱,但改变它会破坏向后兼容性。即便如此,我还是用一个简单的陈述睡得更好:万一发生碰撞,您不会得到错误的数据。而不是写关于狼袭击的博客。

0 投票
1 回答
1021 浏览

python - Python 元组重复数据删除列表

我试图一个接一个地删除一组不同的元组列表。列表如下所示:

我正在运行(例如列表 A):

我会得到:

但是,如果我对 B 重复,我可能会选择第二个元组而不是第一个:

理想情况下,B 应该是:

对于字符串序列,我需要它们相同,因为我将使用它们来连接 A、B 等中的浮点数。我很高兴知道是否有办法让去重列表的选择方法保持不变。谢谢!

0 投票
3 回答
1439 浏览

mysql - 重复数据库记录比较多个字段中的值

所以我试图清理数据库表中的一些电话记录。

我发现了如何使用以下方法在 2 个字段中查找完全匹配项:

哇,太好了。

我想进一步扩展它以查看众多字段,以查看 3 个电话字段中的 1 个中的电话号码是否重复。

所以我想检查 3 个字段(general mobile, general phone, business phone)。

1.查看它们是否不为空('') 2.查看其中任何一个中的数据(数字)是否出现在表中的其他 2 个电话字段中。

因此,将我有限的 SQL 推到了极限,我想出了以下内容,它似乎返回了带有 3 个空电话字段的记录以及没有重复电话号码的记录。

显然我的逻辑是有缺陷的&我想知道是否有人能指出我正确的方向/同情等等......

非常感谢

0 投票
0 回答
100 浏览

mysql - 使用 LOAD DATA INFILE 或其他解决方案对数百万行进行 DeDuping

祝大家有美好的一天。我知道这个话题经常出现,并为任何冗余道歉,但我需要你的 MYSQL 专家。

我尝试了几种已在此处发布的解决方案,但均无济于事。解决方案要么花费太长时间和/或更有可能我只是没有知识库来在截止日期前完成这项任务并且需要指导。似乎有意义的最常见答案是使用临时表中的 LOAD DATA INFILE 但我应该将文件分解成块,使用循环脚本吗?我知道这将帮助这里的很多新手获得完整的示例和解释,也许可以一劳永逸地为你们提供帮助。我的树桩可能来自使用带有 IGNORE 或 REPLACE 的参数。下面是两张表:

表 1 有 2700 万行和基于具有多种疾病的个人的重复项,如下所示:

Table2 有 300 万行和两个空列,但没有内部重复的疾病。

我希望根据第一个,最后一个和邮政编码来欺骗。如果有帮助,我会丢失一些数据以更快地处理此问题。我非常感谢这种帮助。

0 投票
2 回答
52 浏览

database - 节省空间的营销电子邮件存储

我正在开发一个邮件网关,它会自动为通过它发送的所有电子邮件提供(除其他外)“在浏览器中查看”功能。这就提出了将所有电子邮件存储在某个地方以便可以轻松访问的需求。即使时间段有限,甚至在保存消息之前应用 gzip,我们仍在研究仅保留最近的消息所需的约 500GB 存储空间。

由于所有电子邮件大多相同(除了一些个人变量),我在想是否有更有效的存储方式。对多条记录的重复数据删除的东西,或者类似的东西。对此有何建议?

另一种方法是保存模板,并为每封发送的电子邮件只保存变量,但我们不想这样做,因为这个过程对发件人应该是透明的。这意味着这些信息将无法访问,并且需要事后推断。

0 投票
3 回答
1624 浏览

c# - 去重字符串实例

我有近 1,000,000 条记录的数组,每条记录都有一个“文件名”字段。

有许多文件名完全相同的记录。

我的目标是通过去重字符串实例(文件名实例,而不是记录)来改善内存占用。

.NET Framework 2.0 是一个约束。这里没有 LINQ。

我为重复数据删除编写了一个通用(和线程安全)类:

这个类的问题是它增加了更多的内存使用,并且它一直呆在那里直到下一次 GC。

我正在寻找一种减少内存占用的方法,而无需增加大量内存使用,也无需等待下一次 GC。我也不想使用GC.Collect(),因为它会冻结 GUI 几秒钟。

0 投票
2 回答
167 浏览

mysql - mysql有效地将2个表连接到相同的2个表

我有 2 个表可以简化为这种结构:

表格1:

表 2:

我想将描述加入table1,按描述过滤,所以我只得到描述= abc的行,并过滤掉“重复”行,如果两行具有相同的值并且它们的日期在6分钟内,则两行是重复的其他。我想要的输出表如下(假设 abc 是想要的描述过滤器)。

我提出的查询是:

不幸的是,这个查询在我的数据集上运行需要一分钟,并且没有返回任何结果(尽管我相信应该有结果)。有没有更有效的方法来执行这个查询?有没有办法命名派生表并稍后在同一查询中引用它?另外,为什么我的查询没有返回结果?

提前感谢您的帮助!

编辑:我想保留几个时间戳接近的样本中的第一个。

我的 table1 有 610 万行,我的 table2 有 30K,这让我意识到 table2 只有一行用于描述“abc”。这意味着我可以事先查询 descr_id,然后使用该 id 来避免在大查询中加入 table2,从而提高效率。但是,如果我的 table2 的设置如上所述(我承认这将是糟糕的数据库设计),那么执行此类查询的好方法是什么?

0 投票
2 回答
301 浏览

algorithm - 去重 n-gram 集

我需要想出一种方法来排序并向用户显示最相关的数据。我们的数据由从社交媒体中提取的多个 n-gram 组成。我们称这些为“主题”。

我面临的问题是数据包含很多重复。虽然每个字符串都不是另一个字符串的直接副本,但它们是子集。对于用户而言,此信息似乎是重复的。以下是一些示例数据:

一个极端情况是可以从其他短语中提取短语“lazy people”。例如,“懒人快乐”。使用最小的公分母(在这种情况下为“懒惰的人”)似乎不是一个好主意,因为最终用户不会看到不同的上下文(“拿走食品券”和“很开心”)。

另一方面,取最长的 N-Gram 可能信息太多。在我上面给出的例子中,这似乎是合乎逻辑的。然而,这可能并不总是正确的。

我的总体目标是以一种信息丰富且排名靠前的方式呈现这些数据。

有没有现有的解决方案和相应的算法来解决这类问题?

注意:最初我的问题非常模糊和不清楚。事实上,这导致我一起改变了这个问题,因为我真正需要的是指导我的最终结果应该是什么。

注意 2:让我知道我是否误用了任何术语或应该修改此问题的标题以增强其他人搜索此类问题的答案。