我们都知道布隆过滤是用来判断一个元素是否在一个集合中的很有效的方法。比如在WPS字处理软件中,需要检查一个单词是否拼写正确;在FBI中需要判断一个嫌疑犯的名字是否在嫌疑名单上;在网络爬虫里,判断一个网址是否被访问过。最简单的解决办法就是采用HashTable的方法来存储,它的好处是快速且精确,缺点是耗费大量内存空间。所以针对耗费空间大的问题,提出了布隆过滤。但是布隆过滤是有误识别率的,也就是说在集合中的元素一定能识别出来,但是不在集合中的元素可能被识别为在集合中,好在这种误识别率的概率比较小,通常可以接受。
进行布隆过滤的第一步就是构造一个布隆过滤器。所以现在Mayuyu就带大家来使用Julia的三方包BloomFilters。
在Julia中,有很多比较优秀的包,具体可以参考:http://pkg.julialang.org/ 而我们需要的布隆过滤包在这里:https://github.com/johnmyleswhite/BloomFilters.jl
当然,第一步就是安装BloomFilters包了,在Julia交互模式下,执行如下命令
好了,执行完命令后,Mayuyu的BloomFilters就安装好了,现在开始学习它的使用方法。如下图
在Julia的布隆过滤包中,还有mmap功能,即把文件当内存使用,可以将建立好的布隆过滤数据等写入文件中,以便下次直接用。具体用法可以参考如下链接:
https://github.com/johnmyleswhite/BloomFilters.jl/blob/master/README.md
时间: 2024-11-08 18:00:44