python字符串匹配工具性能比较
2014-12-01 16:50
681 查看
做敏感词过滤的时候要用到字符串匹配,从一个文件中读入需要匹配的敏感词,和一段文本去匹配,用string的find方法是不太合适了,搜了一下,发现AC自动机的方式更好。AC自动机是一个可以用来快速进行多关键字匹配的数据结构,具体信息可以参见这篇经典的论文:Efficient string matching: an aid to bibliographic search再找了一下,python有几个扩展是做这个的,可以直接拿来用。考虑到性能问题,于是把他们放在一起对比一下,看看哪一个更快:Ahocorasick:使用Aho-Corasick自动机的方式,根据一组关键词进行匹配,返回关键词出现的位置。用C实现,python包装
Acora:多关键字搜索引擎,使用Aho-Corasick以及NFA-to-DFA自动机的方式
Esmre:也是使用的AhoCorasick自动机的方式,做了一些细微的修改。也是用C实现,python包装
对比的方式:敏感词列表中有684个中文敏感词,每个一行,用open的方式读入,用for循环进行构建,然后用敏感词和网上找的一片文章拼接出一段文本作为待匹配文本,大小为16K。分别使用上面三个工具进行匹配,记录使用的时间。测试代码如下:
原文http://www.aikaiyuan.com/1826.html
Acora:多关键字搜索引擎,使用Aho-Corasick以及NFA-to-DFA自动机的方式
Esmre:也是使用的AhoCorasick自动机的方式,做了一些细微的修改。也是用C实现,python包装
对比的方式:敏感词列表中有684个中文敏感词,每个一行,用open的方式读入,用for循环进行构建,然后用敏感词和网上找的一片文章拼接出一段文本作为待匹配文本,大小为16K。分别使用上面三个工具进行匹配,记录使用的时间。测试代码如下:
原文http://www.aikaiyuan.com/1826.html
相关文章推荐
- JavaScript 字符串匹配性能比较
- JavaScript 字符串匹配性能比较
- BF,KMP,BM三种字符串匹配算法性能比较
- C,Ruby, Io, PHP, Python, Lua, Java, Perl, Applescript, TCL, ELisp, Javascript, OCaml, Ghostscript性能比较
- 开源可视化 Python 性能调优工具 VPT 发布
- Python扩展方法及工具比较
- 开源可视化 Python 性能调优工具 VPT 发布
- 开源可视化 Python 性能调优工具 VPT 发布
- 字符串匹配算法比较
- Python性能测试工具
- Python性能测试工具
- shedskin--- 一种python性能优化工具
- Java报表工具及报表实现方案性能比较
- Python几种并发实现方案的性能比较
- python性能增强工具shedskin 0.3版发布
- LoadRunner 同开源性能测试工具 OpenSTA 的比较
- c/c++ c++ java 语言与工具 性能比较
- 查找字符串中指定字符出现的次数:性能比较
- 开源可视化 Python 性能调优工具 VPT 发布
- Python之Web性能工具:Pylot