Bloomfilter很好很强大
来源:互联网 发布:neural style java 编辑:程序博客网 时间:2024/05/15 13:31
在文本预处理阶段,想要实现去停用词和去掉只出现一次的词这两个功能
版本一:
使用gensim上的python语句,基本上是遍历文本集了,两个阶段分别用1分钟和大于30分钟的时间(1800篇文章)
实现是这样写的:首先建立停用词list,然后遍历语料中的文本,判断是否是停用词,第三遍历语料文本,计算词出现的次数,最后遍历语料文本,判断是否是出现一次的词
版本二:
在版本一的基础上,改进了去停用词代码,使用bloomfilter生成停用词表,其他步骤不变
效果:停用词阶段大概不到20s的时间,去只出现一次的词用了大概30分钟时间(1800篇文章)
版本三:
在版本二的基础上,重写了去只出现一次的词的部分,在去停用词的阶段建一个bloomfiter存储出现一次的词,用list存储多次出现的词(对每个词判断,如果出现在bloomfilter中,就说明出现了多次,存到list里)
效果:
加上了time.clock()时间计算后,两个阶段时间分别为12.23s和1770.2s
版本四:
忽然发现版本三中的一个可以改进的地方,为啥不再加一个bloomfilter代替list呢?
效果:两个阶段时间分别为17.13s和5.84s。之所以第一阶段时间长了,是因为在去停用词的时候顺便建两个bloomfilter,可以减少一遍语料库的遍历
综上所述,bloomfilter效果确实很强大,但是响应的也会付出空间的代价(具体我没有计算,因为我的空间不值钱),还有精确度的代价(也可以忽略不计)
关于bloomfilter原理介绍有很多,可以百度或者google,我使用的版本是github里的pybloomfiltermmap版本。
- Bloomfilter很好很强大
- yield,很好很强大
- 很好很强大
- 很好很强大
- 很好很强大
- 很好很强大
- webclient很好很强大
- 很好,很强大
- Oracle很好、很强大
- iptables很好很强大
- 很好很强大
- 很好很强大!
- 很好,很强大
- IDA,很好很强大
- 俞敏洪语录--很好,很强大
- 很好很强大,天朝游戏机!!
- 很好很强大的Excel
- 很好很强大的FXTZ
- Please ensure that adb is correctly located at问题解决
- SAP BASIS TCODE
- 字符串比较
- Spring JdbcTemplate Querying Examples
- C#访问共享目录与Word.ApplicationClass发生冲突的解决办法
- Bloomfilter很好很强大
- 获取项目版本号与设置引导页的判断条件
- 第十三章 摘要认证
- 黑马程序员-高新技术(泛型)
- python 爬虫网站
- js多个对象绑定一个事件的方法
- (转)JAVA面试题解惑系列(一)——类的初始化顺序
- Get DDL metadata sql
- 难忘的“第一次”