IMTX添加基于“中文”的垃圾评论检测机制

标签: imtx 中文 垃圾 | 发表时间:2011-09-12 21:03 | 作者:(author unknown) ndv
出处:http://imtx.me/

最近本blog的垃圾评论(SPAM)泛滥,每天都要花一分钟左右处理一下,实在是恼火。

IMTX用的是跟WordPress一样的Akismet垃圾评论验证机制(见此:Akismet for Django),真不知道怎么回事最近怎么效果越来越差了,而且都是一些非常明显的垃圾评论。

一怒之下,我决定为IMTX增加新的垃圾评论检测机制,那就是通过中文来检测。

先来看看垃圾评论们都长什么样吧~哎呀,外国的垃圾评论,这简直太弱智了!跟中文领域的能智能地根据文章内容来发表评论的垃圾评论相比,你们简直落后了整整五年以上!

遗憾的是Akismet竟然还判断不出来,可见Akismet并没有多少智能在里面(或者是我的Free Plan不给力)。

IMTX Comments 01

好吧,下面来解决问题。

根据本站的情况,IMTX的评论99%以上都是基于中文的,而99%以上的垃圾评论呢,则是基于英文的。于是我想到了就通过检测评论正文有没有含中文字来判断是否是垃圾评论。

根据一些信息得出,汉字的Unicode范围大致是:U+4E00..U+9FA5。但是这个范围并不精确,真正的Unicode中文相关的,可是分好几个区间的,具体可以参考这篇文章:unicode中文范围

但是因为我只是比较纯粹地判断一下中文字符就可以了,于是也选了这个“u4E00-\u9FA5”这个范围。

具体的代码也很简单,只要用Python的re来search一下正文即可,如:re.search(ur'[\u4e00-\u9fa5]+', comment.content)

最终的应用,还得仔细思考一下:难道我就这么放弃那1%的用英文来评论的读者吗?

要知道,大家的评论可是我写文章的动力,1%的评论都不能马虎的就当作SPAM处理掉。

于是我在下面加了一句:Notes:Please input at least one Chinese character (or copy this 哈),也就是说,如果你要用英文评论,或者当前的环境没有中文输入法,那么就可以复制那个“哈”进去即可。

IMTX Comments 02

我想会用英文输入评论的人,都会去看这句话吧。这也是我自己想想的,具体效果那是要看着办了。

最近少时间在技术细节上去解决问题,于是就想了这么个简单且省事的解决方案。希望这样基本解决SPAM的问题。

让垃圾评论来的再猛烈一些吧!

相关 [imtx 中文 垃圾] 推荐:

IMTX添加基于“中文”的垃圾评论检测机制

- ndv - I'm TualatriX
最近本blog的垃圾评论(SPAM)泛滥,每天都要花一分钟左右处理一下,实在是恼火. IMTX用的是跟WordPress一样的Akismet垃圾评论验证机制(见此:Akismet for Django),真不知道怎么回事最近怎么效果越来越差了,而且都是一些非常明显的垃圾评论. 一怒之下,我决定为IMTX增加新的垃圾评论检测机制,那就是通过中文来检测.

垃圾车定律

- iBeyond - 穿过记忆的河流
有一天,打算到机场,因时间来-不及,因此,我拜托一位好朋友载我去. 当我们开上正确的车道时,突然间一辆黑色轿车从停车位开出, 正好挡在我们前面. 我朋友立即踩剎车,车子滑行了一小段路,刚好闪开来车,两车之间的距离就只差个几英吋. 这一辆车的驾驶凶狠地甩头,并且朝着我们大喊大叫. 我朋友只是微笑,对那家伙挥挥手.

简易垃圾桶

- Zoe - 玩意儿
Jonliow 设计了一款简易的垃圾桶,外形就像是一个倒立的凳子,不过它却又很强的灵活性,可以放置各种大小的垃圾袋,比一般的垃圾桶更容易清洗,不过不能倒汤汁类的,否则垃圾袋有破洞就麻烦了. 本文原始链接:http://www.cngadget.cn/simple-trash.html. 让办公室的垃圾也为你增加乐趣.

jvm垃圾回收

- Cano - 淘宝共享数据平台 tbdata.org
在jvm中堆空间划分为三个代:年轻代(Young Generation)、年老代(Old Generation)和永久代(Permanent Generation). 年轻代和年老代是存储动态产生的对象. 永久带主要是存储的是java的类信息,包括解析得到的方法、属性、字段等等. 我们这里讨论的垃圾回收主要是针对年轻代和年老代.

萌兔最爱垃圾桶

- Al - 鸸鹋动物园
什么情况,非要跟垃圾桶较劲:). © 丸子 for 鸸鹋动物园, 2011. 转发本文地址 萌兔最爱垃圾桶 http://www.ermiao.com/video/20110623/20405.html. 本文标签:兔子, 垃圾桶, 搞笑, 萌. 继续阅读分类【视频】下的更多精彩. 小帖士,看不见图或者看不见视频的,请点这里试试看 | 欢迎给动物园投稿.

吸尘器垃圾桶

- cantus - 创意产品,创意设计,创意生活--先看看
设计师Jun-se Kim等人在垃圾桶底部装了个真空吸尘器,你不需要移动它,只需将灰尘扫到它. 的面前,就可以直接被吸入垃圾桶内. 垃圾桶和吸尘器还能分开单独使用. 先看看|创意产品,创意设计,创意生活 |逛逛我们的创意网店.

JVM 垃圾回收算法

- - 码蜂笔记
《深入理解Java虚拟机:JVM高级特性与最佳实践》-笔记. 垃圾回收,Garbage Collection,简称GC. 判断对象是否存活一般有两种方式:. 引用计数:每个对象有一个引用计数属性,新增一个引用时计数加1,引用释放时计数减1,计数为0时可以回收. 此方法简单,无法解决对象相互循环引用的问题.

Java中的垃圾回收

- - Java译站
前文中对标记删除算法的介绍更多还是偏理论性质的. 实践中,为了更好地满足现实的场景及需求,还需要对算法进行大量的调整. 举个简单的例子,我们来看下JVM需要记录哪些信息才能让我们得以安全地分配对象空间. 碎片及整理(Fragmenting and Compacting). JVM在清除不可达对象之后,还得确保它们所在的空间是可以进行复用的.

Java垃圾回收调优

- - 编程语言 - ITeye博客
在Java中,通常通讯类型的服务器对GC(Garbage Collection)比较敏感. 通常通讯服务器每秒需要处理大量进出的数据包,需要解析,分解成不同的业务逻辑对象并做相关的业务处理,这样会导致大量的临时对象被创建和回收. 同时服务器如果需要同时保存用户状态的话,又会产生很多永久的对象,比如用户session.

java的垃圾收集算法和垃圾收集器

- - ITeye博客
   该算法主要分为标记和清除两个阶段,先对需要回收的对象进行标记,然后再进行清除,该算法的有点是简单,缺点有两个,一个是效率问题,标记和清除的效率都不高,另一个问题是空间问题,标记清除之后会造成大量的空间碎片,当程序需要分配一个大对象而无法找到连续的空间时就必须出发一次垃圾回收.   该算法是将内存空间分为大小相等的两块,在其中的一块进行对象的分配,需要垃圾回收时将其中一块存活的对象拷贝到另一块即可,然后把用过的内存块给清理掉,该算法的有点是:不用考虑内存碎片问题,实现简单,运行高效,缺点是:将内存缩小为了原来的一半,代价有点儿高.