首页
学习
活动
专区
圈层
工具
发布
    • 综合排序
    • 最热优先
    • 最新优先
    时间不限
  • 来自专栏素质云笔记

    LSH︱python实现MinHash-LSH及MinHash LSH Forest——datasketch(四)

    MinHash LSH Forest——datasketch(四) datasketch这个模块有非常多的功能,主要是: HyperLogLog HyperLogLog++ MinHash LSH MinHash LSH Ensemble MinHash LSH Forest MinHash Weighted MinHash 其中MinHash 与simHash不同,其主要采用的是Jaccard距离,LSHForest 如果有已经存在状态的MinHash,会更快 当然,如果要节约内存可以使用: datasketch.LeanMinHash MinHash 2、MinHash案例 from datasketch import minhash。 objects m1 = MinHash(num_perm=128) m2 = MinHash(num_perm=128) m3 = MinHash(num_perm=128) for d in data1

    7.4K60发布于 2018-01-02
  • 来自专栏全栈程序员必看

    minhash算法_小k

    Minhash技术 由于shingles的集合非常大,即使把它们映射hash成4字节,所需要的空间仍然是一篇文档所占空间的4倍。对于million级别的文档,就不能将所有shingle集合加载到内存。 计算所得到的,任何一列的minhash值为经过置换后第一个为1的元素对应行号(行号从0开始)。 Minhash和Jaccard相似性有重要的联系:如果两个集合S1和S2的Jaccard相似性是一样的,那么以很高的概率保证它们的minhash值也是相等的。 计算signatures的步骤: 1> 对特征矩阵M做n次随机置换; 2> 根据这些置换确定minhash函数h1,h2,… ,hn; 3> 用列表示集合S,构建S的minhash的signature ,(h1(S), h2 (S), . . . , hn (S)); 4> 有上述步骤即可构建M的signature矩阵,即M的第i列被替换为第i列的minhash signature。

    1.2K30编辑于 2022-11-17
  • 来自专栏mythsman的个人博客

    最小哈希签名(MinHash)简述

    1&S_2&S_3&S_4\\1&b&0&0&1&0\\4&e&0&0&1&0\\0&a&1&0&0&1\\3&d&1&0&1&1\\2&c&0&1&0&1\\\end{matrix} 那么每个集合的minhash 这就是minhash的基本方法。 最小哈希签名 在最小哈希的基础上,最小哈希签名也就很简单了。在最小哈希中,需要对每行进行随机行排列,如果是真随机排列的话显然计算消耗会特别大。

    2.3K20编辑于 2022-11-14
  • 来自专栏Spark学习技巧

    面试|海量文本去重~minhash

    所以本文推荐一种方法,minhash+lsh(局部敏感hash),用minhash来降维。用lsh来做近似查询,本文主要介绍一下minhash。 在介绍minhash之前,先给出相似性的度量方法。 2. minhash 刚才我们知道在求相似度的时候我们用到了文档和单词。通常情况下,我们都会将文档和单词表示成doc-term矩阵的形式,能够看到term详细的是什么对最后的结果没有不论什么影响。 其它部分1表示文档S中有这个单词,0表示没有这个单词,有了这个集合,我们看一下minhash是怎么做的 随机确定一个顺序。比如上面的顺序是01234。随机确定一个顺序,比如12340。注意这里是随机。 为什么minhash的方法是合理的 问题:两个集合的随机的一个行排列的minhash值相等的概率和两个集合的Jaccard相似度相等 证明例如以下: 两个集合。A、B。对一行来说。 再看minhash,由于排列是随机的,在遇到Y之前遇到X的概率是x/(x+y)。是不是正好等于jaccard系数的值。 4. 怎样进行相似查询比較 通过前面的方法。

    3.1K30发布于 2018-12-28
  • 来自专栏Reinvent Data Science

    垃圾询盘过滤,焦点科技的 Milvus 实践

    | 关键技术 MinHash 在过去通过人工过滤垃圾询盘的时代中,焦点科技累积下了一定数量的已知的垃圾询盘模板。 考虑到既往询盘量为千万级,对计算实时性要求较高,因此选择使用 MinHash 算法将询盘文本转换为哈希编码来进行最近邻检索。 MinHash 算法的主要思想为: (1)一个文本从字符串的角度可以近似看做由字(词)或字(词)的 2-gram 构成的集合。 MinHash 本质上是对文本对应的字(词)集合进行了降维,目标是降低 Jaccard 相似度计算的复杂度,并尽可能保持计算精度。 整个业务流程中大致可以分为三个流程: (1)向量化流程 在查询客户端中,将待判断的询盘利用 MinHash 算法转化为特征向量。

    84620发布于 2020-06-12
  • 来自专栏炼丹笔记

    炼丹秘术:给Embedding插上翅膀

    Signature Matrix def make_minhash_signature(shingled_data, num_hash): inv_index, docids = invert_shingles )]=min(sigmatrix[row1,docids.index(docid)],hash_funcs[row1](row)) return sigmatrix, docids 07 MinHash similarity estimate def minhash_similarity(id1, id2, minhash_sigmat, docids): # get column of the = np.mean(minhash_sigmat[:, index_id1]==minhash_sigmat[:, index_id2]) # return this fraction as the minhash similarity estimate return minhash_similarity_estimate 工业界怎么用Embedding?

    62210编辑于 2021-12-20
  • 来自专栏AI科技时讯

    LSH算法:高效相似性搜索的原理与Python实现

    在这里,使用四个 minhash 函数/向量来创建一个四位数的签名向量。如果你在每个 minhash 函数中从 1 开始计数,并找出与稀疏向量中的 1 对齐的第一个值——你会得到 2412。 通过这种方式,可以为稀疏向量中的每个1生成一个MinHash值。为了创建完整的MinHash签名,需要为签名中的每个位置分配一个不同的MinHash函数,并重复上述过程多次。下面用代码实现它。 hashes.append(create_hash_func(vocab_size)) return hashes # 创建20个minhash向量 minhash_func = build_minhash_func 从稀疏向量到签名的信息传递 一个关键问题是,当我们从原始的稀疏向量转换到MinHash签名时,是否保留了足够的信息以进行有效的相似性比较。 可以首先使用原始的shingle集合来计算Jaccard相似性,然后对相应的MinHash签名进行相同的计算。

    3.2K10编辑于 2024-07-04
  • 来自专栏素质云笔记

    R语言实现︱局部敏感哈希算法(LSH)解决文本机械相似性的问题(一,基本原理)

    的区别: 一般的hash可能两个文档本来相似,但是hash之后的值反而不相似了;simhash/minhash可以做到两个文档相似,hash之后仍然相似; 3、simhash与Minhash的区别: simhash和minhash可以做到两个文档Hash之后仍然相似,但是simhash计算相似的方法是海明距离;而minhash计算距离的方式是Jaccard距离。 4、局部敏感哈希与simhash、minhash的区别。 参考:常用相似性、相关性度量指标 2、simhash与minhash simhash和minhash由于hash之后的算法构造不同,所以需要不同的距离去测度,一般simhash用的是海明距离,而minhash (2)minhash: Min-hashing定义为:特征矩阵按行进行一个随机的排列后,第一个列值为1的行的行号。

    2.7K30发布于 2019-05-26
  • 来自专栏机器学习AI算法工程

    海量图片去重算法-局部分块Hash算法

    参考:https://www.xzbu.com/8/view-7438065.htm 方法3-基于minHash的局部敏感Hash 局部敏感Hash算法希望原始特征空间中保持相邻的数据在经过某种Hash 这里我们以基于minHash的局部敏感Hash算法为例。 首先讲解一下minHash算法的步骤: 对每个样本生成二值化的特征向量(列形式)。 重复k次步骤3,每次重复i++,并记录每一个样本的minHash向量[h_1(x), ..., h_k(x)]。该向量被称为样本x的minHash signature。 基于minHash的LSH方法步骤: 用pHash或者网络生成图片的2值化特征向量。 针对每一个band,分别建立一个Hash表,然后就可以把所有样本在一个band上的minHash子向量进行散列,这样相似的样本在同一个band上就非常有可能被映射到Hash表中同一个位置。

    3.2K20编辑于 2022-04-11
  • 来自专栏架构师之路

    洗稿,技术上怎么判断文章相似性?

    答:局部敏感哈希LSH(Locality Sensitive Hash)是典型解决方案(感兴趣的同学自行百度),这里分享一下minHash的思路。 什么是minHash? 答:minHash是局部敏感哈希的一种,它常用来快速判定集合的相似性,也常用于检测文章的相似性。 例子说明了整体思路,实际执行的过程中: 可以使用更多的元素来代表集合,以提高准确性 可以使用更多的hash函数来代表集合,以提高准确性 minHash可以量化评判相似度 文章库中的哈希值都可以提前计算 minHash可以检测集合相似度,它与文章相似度有啥关系? 答:如果能将每一篇文章,用一个集合来表示,那么文章的相似度就能用minHash来解决了。 如何将文章转化为集合? 答:分词。

    1.5K40发布于 2018-07-27
  • 如何用AI自动生成+发布每日内容,解放双手

    yield {"title": title.strip()}​​素材去重系统​​:SimHash算法检测相似度(阈值>0.8视为重复)from datasketch import MinHash , MinHashLSHdef get_minhash(text): m = MinHash() for word in jieba.cut(text): m.update(word.encode ('utf8')) return mlsh = MinHashLSH(threshold=0.8, num_perm=128)lsh.insert("doc1", get_minhash("如何高效学习

    55310编辑于 2025-10-20
  • 来自专栏AI智能体从入门到实践

    构建AI智能体:数据预处理对训练效果的影响:质量过滤、敏感内容过滤与数据去重

    (self, text, num_perm=128): """创建文本的MinHash签名""" minhash = MinHash(num_perm=num_perm) = self.create_minhash(text) # 查询相似文档 similar_docs = self.lsh.query (str(i), minhash) self.doc_hashes[str(i)] = minhash unique_texts.append = self.create_minhash(text1) minhash2 = self.create_minhash(text2) return minhash1.jaccard (minhash2) def analyze_duplication(self, texts): """分析数据重复情况""" print("分析数据重复情况

    59032编辑于 2026-01-13
  • 来自专栏机器之心

    CV之后,纯MLP架构又来搞NLP了,性能媲美预训练大模型

    MinHash 因计算简单被用作哈希函数,并依靠子词 tokenization 来确定哈希输入。 投影层通过复用词汇表 V 的单个子词单元的 fingerprint 来计算每个输入 token t 的 MinHash fingerprint F^t。 投影比较 首先,该研究比较了不同特征提取策略对性能的影响,包括: BERT 嵌入 二进制 TSP MinHash SimHash 下表 1 给出了基模型获得的投影分数。 然而,表现最好的投影 MinHash,精确匹配准确率为 80.8%,与最差的投影 TSP 相比,其得分为 77.6% ,它们之间存在相当大的差异。 鉴于这些结果,在剩下的实验中,该研究仅将 MinHash 视为投影层。 模型比较 已有结果表明,MinHash 投影提供了强大的语言表征。

    1K20编辑于 2022-02-24
  • 来自专栏架构师之路

    超经典,网页判重核心技术!(第25讲)

    《架构师之路:架构设计中的100个知识点》 25.网页判重核心技术,LSH,minhash,分句 如何快速判断,1个网页是否属于1亿个网页中的重复网页? 答:预处理,每个网页用一个hash签名代替。 minhash就是一种局部敏感哈希,它经常用来判断集合的相似性,它的思路为:使用相同的规则抽取集合中的少量元素,代表整个集合。 局部敏感哈希LSH,内容越相近,hash值也越相近; 3. minhash是一种LSH,常用来判断集合的相似性,其思路为:使用相同的规则抽取集合中的少量元素,作为集合的hash值。

    25700编辑于 2024-12-24
  • 来自专栏AI SPPECH

    116_大规模预训练数据管理与质量控制机制

    数据去重技术 5.1 文本去重原理 5.1.1 文本相似度计算 常用的文本相似度计算方法: MinHash:用于大规模近似重复检测 SimHash:生成文本指纹,支持快速相似度计算 局部敏感哈希(LSH ):将相似文本映射到相同的桶中 5.1.2 去重级别 完全重复:完全相同的文本 近似重复:高度相似的文本 语义重复:语义内容相同但表达不同的文本 5.2 高效去重算法 5.2.1 MinHash + LSH (min_val) return minhash def add(self, doc_id, text): minhash = self.compute_minhash _insert_into_hash_tables(doc_id, minhash) def query(self, text): minhash = self.compute_minhash _get_candidates(minhash) # 过滤低于阈值的结果 return [doc_id for doc_id in candidates if self.

    35910编辑于 2025-11-16
  • 来自专栏Rust语言学习交流

    【Rust日报】Rust的三种引用类型

    原文链接 https://without.boats/blog/ownership/ rensa: 高性能 MinHash实现 rensa 是一个使用 Rust 实现的高性能 MinHash,同时提供

    41710编辑于 2024-07-02
  • 来自专栏素质云笔记

    R语言实现︱局部敏感哈希算法(LSH)解决文本机械相似性的问题(二,textreuse介绍)

    hash functions(有多个哈希函数,是从某个哈希函数族中选出来的)哈希成一个叫“签名矩阵(Signature Matrix)”的东西,这个矩阵可以直接理解为是降维后的数据,此时用simhash、minhash TextReuseTextDocument(text, file = NULL, meta = list(), tokenizer = tokenize_ngrams, ..., hash_func = hash_string, minhash_func = list(), progress = interactive(), tokenizer = tokenize_ngrams, ..., hash_func = hash_string, minhash_func hashes、minhashes、rehash、hash_string R语言中构造hash函数也有专门的包:digest 其中hash_string(词),有n个词就hash成n个hash值; 而minhash 一般有两类:海明距离(用在simhash)、Jaccard距离(用在Minhash) 如果只是不hash,直接看样本的相似性,必然是Jaccard要好一些。

    1.2K10发布于 2019-05-26
  • 来自专栏素质云笔记

    LSH︱python实现局部敏感哈希——LSHash(二)

    一) LSH︱python实现局部敏感哈希——LSHash(二) 相似性︱python+opencv实现pHash算法+hamming距离(simhash)(三) LSH︱python实现MinHash-LSH 及MinHash LSH Forest——datasketch(四) .

    4.2K70发布于 2018-01-02
  • 来自专栏arXiv每日学术速递

    统计学学术速递[9.9]

    在本文中,我们提出了{\bf循环MinHash(C-MinHash)},并给出了令人惊讶的理论结果,我们只需要两个独立的随机置换。 与经典的MinHash不同,这些$K$散列显然是相关的,但我们能够提供严格的证据,证明我们仍然能够获得Jaccard相似性的无偏估计,并且理论方差一致小于具有$K$独立排列的经典MinHash。 C-MinHash的理论证明需要一些非平凡的工作。通过数值实验验证了该理论的正确性,并证明了C-MinHash算法的有效性。 In this paper, we propose {\bf Circulant MinHash (C-MinHash)} and provide the surprising theoretical The theoretical proofs of C-MinHash require some non-trivial efforts.

    87520发布于 2021-09-16
  • 来自专栏新智元

    FineWeb技术报告出炉!揭秘HuggingFace规模最大、质量最高预训练数据集

    数据集是怎么去重和过滤的 下图概括了FineWeb数据集生成的主要步骤: URL过滤→文本提取→语言过滤→Gopher过滤→MinHash去重→C4过滤器→自定义过滤器→PII(个人身份信息)移除 本文主要介绍去重和过滤的部分 研究者采用了MinHash这种基于模糊哈希的去重技术,因为它可以有效地扩展到许多CPU节点,并可以调整相似性阈值(通过控制bucket的数量和大小)以及考虑的子序列长度(通过控制n-gram大小)。 为了改进去重方法,研究者尝试了一种新策略:对每个单独的数据包使用MinHash技术进行独立的去重,而不是将所有数据包合并在一起去重。

    73110编辑于 2024-06-17
领券