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)

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM