一份 300 行的客户名单要拿去发通知,里面混着完全重复、同号不同写法、同名不同人三种情况。手工删了两遍仍然漏,还误删了两条真客户。这次按 3 条规则先分组再确认:300 行删掉 52 行(完全重复 38、同号异写 14),保留 248 行,同名不同号的 7 组全部保留。
一句话结论
合并名单的难点不是「找重复」,是「判哪条该留、哪条不算重复」。300 行里真正该删的只有 52 行,而「同名不同号」的 7 组看起来像重复,实际是两个不同的人——这类一旦合并就永久丢了一条记录。所以流程必须是先分组标记、人工确认、再删除,而不是让模型直接去重。
这篇解决什么问题
三种情况让合并反复出错。一是直接去重:把表格丢给工具一键去重,同名不同号的记录被并成一条,事后没人知道少的是谁。二是靠眼睛扫:300 行人工比对,前 100 行还认真,后面就开始跳着看,这次手工删两遍仍漏了 9 条。三是删了不留痕:删完不知道哪些被合并、哪一行吸收了哪一行,客户反馈「没收到通知」时查不出来。
根子是把合并当成一次删除动作,它其实是一组判定加一份日志。判定要写清规则,日志要记清去向,这样删错了还能回退。
开始前要准备什么
- 原始表格,保留完整字段,不要先手工清洗。这次 300 行,字段是姓名、手机号、来源、最近联系日期。
- 3 条判定规则,事先写死。这次是:同姓名加同手机号算重复;同手机号不同姓名写法算重复;同姓名不同手机号不合并。
- 一个「最近联系日期」字段,用来决定保留哪一行。没有这个字段就只能随机留一条,容易留下旧信息。
- 一条纪律:先分组不删除。分组结果可以反复看,删除是不可逆的。
具体怎么做
第一步:只做疑似重复分组,一个都不删
让模型按姓名和手机号做两轮分组,输出「疑似重复组」,每组列出所有行号和关键字段,并说明按哪条规则判的。300 行跑出 59 组可疑:完全重复 38 组(每组 2 行)、同号异写 14 组、同名不同号 7 组。20 分钟。
这一步的关键是不让它做最终判断。如果提示词里出现「请去重」,模型会直接把 7 组同名不同号也并掉。只要求「分组并标注依据」,人还能逐组核对;一旦让它删,错的那部分就被藏起来了。
这是我的客户名单(300 行,字段:姓名、手机号、来源、最近联系日期)。
请只做疑似重复分组,不要删除任何一行:
1. 按「姓名相同 + 手机号相同」分组,标为 A 类;
2. 按「手机号相同 + 姓名写法不同」分组,标为 B 类(例如同号对应「张三」与「张先生」);
3. 按「姓名相同 + 手机号不同」分组,标为 C 类;
4. 每类给出组数、总行数、涉及的行号,并对每组说明判定依据。要求:三类的区别要写清楚,尤其是 C 类为什么不能直接合并;不许输出「已去重」的结果,只输出分组清单;分组后保留原始行号,方便我回查。
第二步:按规则逐组确认,C 类一律保留
分完组才是判断:A、B 两类各保留一行,C 类全部保留。这次 A 类 38 组、B 类 14 组,共删 52 行;C 类 7 组 14 行一条没动。35 分钟,其中大半时间花在 B 类的姓名对应上——「张先生」和「张三」是不是同一人,得看来源字段和联系记录才能定。
保留哪一行有明确规则:保留「最近联系日期」更新的那一行,且合并时把另一行的非空字段补过来。这次有 11 组出现「一行有来源、一行有日期」的情况,直接删其中一行会丢信息。补字段后再删,才是无损合并。
这是我的疑似重复分组清单(A 类 38 组、B 类 14 组、C 类 7 组),以及 3 条判定规则。
请按规则给出保留建议:
1. A 类每组建议保留哪一行,依据「最近联系日期更新」这一条;
2. B 类每组先判断是否同一人,说明依据(来源、日期、其他字段是否吻合),不同一人的请标为保留;
3. C 类一律保留,不需要给建议,只需确认没有行号重复;
4. 对每组指出:删除的那一行有哪些非空字段是另一行没有的,需要先补过来。要求:不许直接说「删除」,要说明「保留行 X、吸收行 Y 的哪些字段」;判断同一人拿不准的标「待人工确认」,不要猜。
第三步:生成去重表加变更日志,删错了能找回
最后输出两张表:一张是 248 行的干净名单,一张是变更日志——每一行被删的记录都写明「被哪一行吸收、因为哪条规则、补了哪些字段」。15 分钟。日志看起来多余,但客户反馈「没收到通知」时,查一眼日志就知道这条记录合并到了谁身上。
顺带把 59 组的处理结果做成统计:A 类 38 组合并 38 行、B 类 14 组合并 14 行、C 类 7 组共 14 行全部保留。所以 248 = 300 − 52,删除的 52 行全部来自 A、B 两类,C 类零删除。
这是我的去重结果(248 行)与待生成的变更日志字段。
请生成变更日志并做一致性校验:
1. 每条被删记录一行,字段为:原行号、姓名、手机号、被哪一行吸收、适用规则、补入的非空字段;
2. 校验:删除行数 + 保留行数是否等于原始 300 行,把算式写出来;
3. 校验:有没有一行被两个组同时吸收(重复吸收),有的话列出来;
4. 指出日志里哪几条如果被回退,会影响已经发出的通知,请标出来。要求:数字必须对得上,对不上就指出差多少;不要省略任何被删行,即使它看起来完全重复。
实测记录
素材是一份 300 行的客户名单,4 个字段。分组 20 分钟、逐组确认 35 分钟、生成去重表与变更日志 15 分钟,合计 70 分钟。
结果:300 行删掉 52 行——A 类完全重复 38 组删 38 行、B 类同号异写 14 组删 14 行,剩余 248 行。C 类同名不同号 7 组共 14 行一条没删。有 11 组出现了「一行有来源、一行有日期」的情况,补字段后再删,没有丢信息。
对比之前的手工处理:手工删了两遍,仍然漏了 9 条重复,同时误删了 2 条真客户——误删的正是同名不同号那类。这就是为什么必须先把 C 类单独拎出来、并且规定「一律保留」:这类记录在算法眼里相似度很高,在人眼里也是,但它恰恰是最不该合并的一种。
最容易错的 3 个地方
第一,让模型直接去重。提示词里只要出现「去重」,同名不同号的记录就会被并掉,而且它不会告诉你并了哪些。这次改成「只分组、不删除」,59 组全摆出来人工确认,才把 C 类那 14 行保住。
第二,不补字段就删。这次 11 组是「一行有来源、一行有日期」,直接删一行就永久丢掉一个字段。正确做法是先合并非空字段再删,去重后每条记录的完整度应该比去重前更高,而不是更低。
第三,不留变更日志。删完只剩 248 行,客户说没收到通知就无从查起。有了「被哪一行吸收、适用哪条规则」的日志,查一次 30 秒,还能判断影响面。日志的成本是一张表,收益是删错了能回退。
可复用的东西
三类分组法:A 同名同号、B 同号异写、C 同名异号,A、B 可合并,C 一律保留,这个划分比「重复 / 不重复」两分法安全得多。
先分组后删除:提示词里明写「不要删除」,只输出分组清单,把决定权留给人。
保留规则:保留最近联系日期更新的那一行,先补非空字段再删,去重后信息只会更全。
变更日志四要素:原行号、被谁吸收、适用规则、补了哪些字段,删错了能一条条回退。
行数校验:删除行数加保留行数必须等于原始行数,这次 52 + 248 = 300,对不上就说明有重复吸收。
常见问题解答
为什么不能让工具直接一键去重
因为工具分不清「同名不同号」和「真正的重复」。这次 300 行里有 7 组同名不同号共 14 行,看起来像重复,实际是两个不同的人。一键去重会把它们并掉,而且不会告诉你并了哪些。手工删两遍时误删的 2 条真客户,正是这一类。
三类怎么划分
A 类是姓名和手机号都相同,B 类是手机号相同但姓名写法不同(张三与张先生),C 类是姓名相同但手机号不同。A、B 两类可以合并,C 类一律保留。这个三分法比「重复 / 不重复」两分法安全,因为它把「看起来像重复但可能不是」单独拎出来处理。
删除时会丢信息吗
会有这个风险,而且这次确实出现了 11 组。那 11 组的情况是「一行有来源、一行有最近联系日期」,直接删其中一行就永久丢掉一个字段。做法是先合并非空字段再删,这样去重后每条记录的完整度比去重前更高,而不是更低。
变更日志有必要保留吗
有。删完只剩 248 行,客户反馈没收到通知时无从查起。日志记四样:原行号、被哪一行吸收、适用哪条规则、补了哪些字段。这次查一条记录的去向只要 30 秒,还能看出会影响哪些已经发出的通知。日志成本是一张表,收益是删错了能回退。
本网站的部分内容可能来源于网络或用户投稿,仅供大家学习与参考,如有侵权,请联系客服: hhxmw778 进行删除处理。
本站一切资源不代表本站立场,并不代表本站赞同其观点和对其真实性负责。
教程如引导您添加微信或有另外收费服务,请自行甄别!
如遇充值环节或绑定支付账户或输入支付密码之类的异常步骤,建议停止操作!本站不对操作项目的损失负责!
本站一律禁止以任何方式发布或转载任何违法的相关信息,访客发现任何资源有问题请向站长举报下架
(手机微信用户建议用默认浏览器打开,可体验完整功能)
