# 💡 Summary [[minHash]] [[LSH]] [[Jaccard 相似度]] # 🧩 Cues # 🪞Notes ## 完整流程示例 ```Java 原文档: doc1: "我爱吃苹果和香蕉" doc2: "我爱吃苹果和香蕉" ← 完全一样 ↓ 步骤1:生成3-gram(假设用3-gram) doc1: {我爱吃, 爱吃苹, 吃苹果, 苹果和, 果和香, 和香蕉} doc2: {我爱吃, 爱吃苹, 吃苹果, 苹果和, 果和香, 和香蕉} ← 完全相同 ↓ 步骤2:计算MinHash签名 doc1: [12, 45, 78, 23, ...] ← 指纹 doc2: [12, 45, 78, 23, ...] ← 指纹一样 ↓ 步骤3:LSH分桶 桶#5: [doc1, doc2] ← 分到同一桶 ↓ 步骤4:计算精确Jaccard Jaccard(doc1, doc2) = 6/6 = 1.0 > 0.8阈值 ✓ ↓ 步骤5:去重 保留doc1,删除doc2 ``` **为什么要这么复杂?** - 如果有100万个文档,两两比较需要5000亿次 - 用MinHash+LSH,可能只需要比较几百万次 - 速度提升几千倍!