海量字符串匹配或海量关键词匹配(脏字/敏感词汇搜索算法)

信息也是越来越多,字符串匹配算法起着非常 重要的作用。

 有kmp算法,索引法,还有什么拖拉机法等等。

本人就参考了索引法。索引法主要将关键词排序好,然后再匹配。

测试结果:2000条关键词,110K文章,匹配140毫秒。

              21万条关键词,110K文章,匹配9.845秒。

以上结果是查出总共有多少个关键词出现,如果只是查是否有那测试结果:匹配16毫秒就OK了。

程序演试:

http://files.cnblogs.com/mmpc/%E6%B5%B7%E9%87%8F%E5%85%B3%E9%94%AE%E8%AF%8D%E5%8C%B9%E9%85%8D.rar

感谢Sumtec的回复,本人修改了部份索引,从9.845秒提高到1:688秒。

已改的程序演试:

http://files.cnblogs.com/mmpc/%E6%B5%B7%E9%87%8F%E5%85%B3%E9%94%AE%E8%AF%8D%E5%8C%B9%E9%85%8D%E6%94%B9.rar

 

-------------------------------------------

程序再次提高。110K只用了656毫秒

提高的程序演试:

http://files.cnblogs.com/mmpc/%E6%B5%B7%E9%87%8F%E5%85%B3%E9%94%AE%E8%AF%8D%E5%8C%B9%E9%85%8D%E6%8F%90.rar

 

程序再度提高。110K只用了359毫秒,包含关系的用了203毫秒

包含关系是这样的:文章出现...不值钱...  关键词有“不值”,“值钱”,“不值钱”,那程序只找“不值钱”这关键词 

提高的程序演试:

http://files.cnblogs.com/mmpc/%E6%B5%B7%E9%87%8F%E5%85%B3%E9%94%AE%E8%AF%8D%E5%8C%B9%E9%85%8D%E5%86%8D%E6%8F%90.rar

 

昨晚想到关键词结合2分查找,理论应该从最新的21万关键词110K文章203毫秒进入100毫秒以内的大关。有空再写一个演示程序给大家。

转载于:https://www.cnblogs.com/mmpc/articles/2047474.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值