Compare · 横评对比
SemHash vs RapidFuzz:语义相似与字符串匹配怎么选?
字符差异可先试 RapidFuzz,语义改写候选可试 SemHash;两者都需事实和来源复核。
| 维度 | semhash | rapidfuzz |
|---|---|---|
| 表示 | 编码器向量 | 字符串距离与相似度 |
| 输入 | 记录、编码列、模型和后端 | 字符串、算法与预处理 |
| 依赖 | 模型与索引资源 | 不要求语义权重 |
| 结果 | 保留、过滤及匹配证据 | 分数与匹配结果 |
| 风险 | 高语义分仍可能合并不同事实 | 高字符分也不证明事实一致 |
先区分字符串近似与语义候选
查找拼写、空白和局部字符差异,可以先用 RapidFuzz;希望发现不同表达但语义接近的文本,可评估 SemHash。两者都不能单凭高相似度决定业务记录可以删除。对合同、售后规则和知识库版本,关键数字与否定词的变化往往比大部分共同词更重要。
本篇核对于 2026 年 10 月 26 日。SemHash 0.5.0 有七条合成记录实测,RapidFuzz 3.14.6 有单个字符串对照;没有共同标注集准确率、吞吐量或生产规模测试。
核心差异
| 维度 | SemHash | RapidFuzz |
|---|---|---|
| 表示 | 编码器向量与相似性搜索 | 具体字符串距离或相似度 |
| 接入 | 数据集、编码字段、模型与后端 | 字符串、算法及预处理 |
| 结果 | 保留与过滤记录及匹配证据 | 分数或匹配结果,应用组织流程 |
| 语言 | 受模型和业务样本影响 | 可比较序列,仍需处理和指标定义 |
| 依赖 | 模型与索引资源 | 不要求语义模型权重 |
| 删除判断 | 需业务确认 | 同样需业务确认 |
SemHash 的能力边界
SemHash 面向数据集相似内容的发现。你可以指定参与编码的列,选择模型和搜索后端,再检查哪些记录被过滤、匹配到什么来源。本文使用 basic 精确搜索,便于将观察集中在表示和阈值;不能由此推断近似索引的大规模召回。
模型理解的“接近”不是业务上的“同一事实”。英文样本“七天内退款”和“三十天内退款”在 0.9 阈值下被归并,约 0.924 的分数没有保护期限差异。调高到 0.98 后本例保留两条,但无法保证其他条款不会误判。
默认英文模型也不能因为能编码中文就成为合格中文方案。0.8 阈值下,两个中文期限版本同样被归并。换模型应独立验证,不要把一次小样本现象推广成所有模型的优劣结论。
RapidFuzz 的能力边界
RapidFuzz 提供多种算法,ratio 与局部匹配等方法关注的条件不同。先说明具体函数、输入处理和分数范围,再设阈值。大小写或空白是否保留,应由自己的规则决定,而不是假定库替你统一处理。
这类工具适合名称、标题和格式接近的文本,也可能把只有一个关键数字不同的条款排得很近。单纯加入更高字符阈值并不能解决同义改写,也不能保证不会合并重要差异。
本次 ratio 对照的对象是英文七天与三十天条款,仅展示字符串相似度。它没有与 SemHash 分数相同的量纲:不能把 90 分等同于语义 0.9,更不能解释为两份记录有九成概率相同。
哪些输入应先做规则检查
对订单号、产品型号、金额、币种和日期,先解析出明确字段,再决定哪些差异禁止合并。对政策文本,应保留否定和有效期。不能为了让匹配更好看就清除数字或“不能”等词。
同一句内容来自两个来源,是否重复也要先定义。知识库可以让内容共用一个表示,同时保留两个来源关系;训练数据可能需要按来源分组,避免验证集与训练集共享相同实体。字符串或语义高分都不替代这些设计。
如果业务只关心完全一致副本,精确比较通常是更容易解释的起点。若主要是拼写差异,可以先试 RapidFuzz。只有当需要发现更多表达改写时,再增加语义候选,而不是默认模型越多就越可靠。
怎样做一组可复核实验
准备标注为“可合并”和“必须保留”的样本对,包含同义改写、标点变化、数字变化、否定和跨语言。固定模型、算法、预处理和搜索方式,保存所有分数及候选来源。不要只统计删了多少条。
误删重要事实的成本可能高于保留少量重复,因此阈值应按业务错误成本校准。观察边界候选,明确人工复核规则,并保留一个未参与调参的验收集。本文的七条样本用于教学,不足以估计生产误判率。
如组合两者,可用字符或规则路线生成一批候选,用语义路线补充另一批,再统一复核。必须确认候选召回和额外成本,不能宣布组合后没有漏判。排序或代表记录选择也要检查来源质量,不能让低质量副本覆盖正式版本。
费用、数据与写回
SemHash 和 RapidFuzz 库均采用 MIT,许可费与运行、模型下载、存储及人工复核成本分开。SemHash 换用的编码器和权重条件应单独核对。本次从本地模型快照运行,没有调用付费模型 API。
输入、向量和匹配报告都可能包含内部内容,限制共享和日志范围。相似度不是用户授权,跨租户或跨客户的数据不能因为技术上方便就混池处理。中国大陆模型可达性与平台依赖应在目标环境确认。
建议先输出待复核报告,保留输入 ID、selected、filtered 及匹配记录,审核后才由独立程序更新结果。本文示例不删除文件。对错误合并要能追溯和恢复,不能只保留一个过滤比例。
选择建议
固定格式、拼写和名称差异优先试 RapidFuzz;表达变化较大、需要语义候选时试 SemHash。先用完全一致和重要事实差异做对照,再校准阈值。不要把字符串算法与语义模型当作互相替代的一次性判决器。
继续阅读:SemHash 介绍、文本去重推荐、与 datasketch 对比、阈值与复核教程。官方资料:SemHash、RapidFuzz 函数说明。
结论
字符差异可先试 RapidFuzz,语义改写候选可试 SemHash;两者都需事实和来源复核。
常见问题
- 高相似度可以直接删除吗?
- 不可以。期限、金额、否定和版本变化可能是必须保留的事实。
- 0.98 是通用安全阈值吗?
- 不是。它只在本次七条样本中保留期限差异,仍需按模型和业务校准。
- 默认英文模型能证明中文质量吗?
- 不能。中文示例仅为错配对照,换多语言模型仍需独立验收。
- 去重后就没有训练测试泄漏吗?
- 不能保证。还需按来源、实体、时间及任务定义划分和核查。
- 开源免费包含全部成本吗?
- 不包含模型、计算、存储、索引、标注、人工复核和维护。
- 教程会删除文件吗?
- 不会。只输出合成记录的保留和过滤候选报告,写回需另外复核。