免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
12下一页
最近访问板块 发新帖
查看: 13254 | 回复: 14
打印 上一主题 下一主题

[C] 自己写的敏感词过滤服务器 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2011-08-24 14:41 |只看该作者 |倒序浏览
本帖最后由 liexusong 于 2012-10-16 16:49 编辑

首先我深感遗憾,我又为高墙添砖了。不过在天朝没办法...

安装很简单,只需要make一下就行了。内含一个php的接口文件,可以方便php调用。至于速度嘛,我觉得每秒5-10万应该是没有问题的。

可以用于论坛,微薄等过滤用户的数据。

==================================================================================


为什么需要敏感词过滤服务器?你可能想用正则去过滤,不过细想一下,如果有10万个敏感词,那不是要用正则匹配10万次。

而是用敏感词过滤服务器只需要匹配一次即可,速度非常快,速度只跟你要匹配的原文长度有关。

#安装方法#

1.安装libevent(http://monkey.org/~provos/libevent/)

2.安装libdatrie(http://linux.thai.net/~thep/datrie/datrie.html)

3.make

详细参考:http://code.google.com/p/libra-server/

论坛徽章:
0
2 [报告]
发表于 2011-08-24 14:47 |只看该作者
膜拜 ,  有空的时候好好学习下  {:3_193:}

论坛徽章:
0
3 [报告]
发表于 2011-08-24 15:44 |只看该作者
而是用敏感词过滤服务器只需要匹配一次即可,速度非常快,速度只跟你要匹配的原文长度有关。
liexusong 发表于 2011-08-24 14:41


是怎么做到的呢?

论坛徽章:
0
4 [报告]
发表于 2011-08-24 15:47 |只看该作者
, 代码写得不错,比我的整洁多了.

能否结绍下具体怎么用?   ,不太了解实際的需求, 是不是每次提交一个文章
,由php 送往服务器,search?

论坛徽章:
0
5 [报告]
发表于 2011-08-24 15:49 |只看该作者
本帖最后由 liexusong 于 2011-08-24 15:51 编辑

原理是是用双数组字典树,时间复杂度为O(n),n为文章的长度。与字典的大小无关。

使用也很简单,只有4个命令:
+--------------------------------------------------------+
| VAILD         过滤字符串是否存在敏感词
| STORE         把敏感词存入敏感词字典
| DELETE        从字典中删除一个敏感词
| AUTH          验证用户
+--------------------------------------------------------+

论坛徽章:
0
6 [报告]
发表于 2011-08-24 16:15 |只看该作者
这里面有个牛B的东西, dat 的实现, 应该类似AC算法, 里面包含了某种装态转化.
也就是一次扫描,能扫描多个关建字.

论坛徽章:
0
7 [报告]
发表于 2011-08-24 16:21 |只看该作者
就是字典树,只不过使用了DFA压缩而已

论坛徽章:
0
8 [报告]
发表于 2011-08-25 14:45 |只看该作者
那个lib插入删除reallocation开销大不?

论坛徽章:
0
9 [报告]
发表于 2011-08-28 10:26 |只看该作者
原来挺期待的,一用发现编译都不过...
strncmp的参数都写错?
看来不review一下代码不太敢用了...

论坛徽章:
0
10 [报告]
发表于 2011-08-28 12:21 |只看该作者
你说码农何苦祸害码农
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP