zoukankan      html  css  js  c++  java
  • bitmap去重与布隆过滤器

    bitmap去重与布隆过滤器原理

    1. bitmap去重

    通过一个比特位来存一个地址,占用内存很小

    2. 布隆过滤器

    BloomFilter 会开辟一个m位的bitArray(位数组),开始所有数据全部置 0 。当一个元素过来时,能过多个哈希函数(h1,h2,h3....)计算不同的在哈希值,并通过哈希值找到对应的bitArray下标处,将里面的值 0 置为 1 。

    Python中使用布隆过滤器

    #python3.6 安装
    #需要先安装bitarray
    pip3 install bitarray-0.8.1-cp36-cp36m-win_amd64.whl(pybloom_live依赖这个包,需要先安装)
    #下载地址:https://www.lfd.uci.edu/~gohlke/pythonlibs/
    pip3 install pybloom_live

    示例一

    #ScalableBloomFilter 可以自动扩容
    from pybloom_live import ScalableBloomFilter
    
    bloom = ScalableBloomFilter(initial_capacity=100, error_rate=0.001, mode=ScalableBloomFilter.LARGE_SET_GROWTH)
    url = "www.cnblogs.com"
    url2 = "www.baidu.com"
    bloom.add(url)
    
    print(url in bloom)
    print(url2 in bloom)

    示例二

    #BloomFilter 是定长的
    from pybloom_live import BloomFilter
    
    bf = BloomFilter(capacity=1000)
    url='www.baidu.com'
    bf.add(url)
    
    print(url in bf)
    print("www.cnblogs.com" in bf)
  • 相关阅读:
    html5 -- data-* 自定义属性
    javascript -- canvas绘制曲线
    php -- 取整数
    vim 常用命令
    Html Meta 标签详解
    基于行块分布函数的正文抽取
    机器学习公开课~~~~mooc
    快速排序
    mapreduce (三) MapReduce实现倒排索引(二)
    temp gbk2utf8
  • 原文地址:https://www.cnblogs.com/baohanblog/p/12689309.html
Copyright © 2011-2022 走看看