丁宇 | DING Yu

介绍M-O,LT 0.5的主角之一!

还记得电影“WALL-E”中的那个可爱的清洁工M-O吗?它和主角WALL-E的那对交流让人忍俊不禁,不过看似小巧的它倒是非常忠于工作-决不放过任何污渍(这话怎么听起来有点像洗衣粉广告?)。

M-OM-O

在即将开源的LT 0.5中,我大幅度地完善了对评论的分类和管理,并决定把这一SPAM防火墙最终命名为M-O!我是有一天晚饭吃糖醋排骨的时候,突然想起来这个创意的,所以吃顿好吃的晚饭真的很重要。

目前M-O能为LT带来以下一些功能:

自动化的评论分类

M-O会使用内建的贝叶斯算法并结合黑名单机制,对每一条评论进行识别。正常留言直接予以发表;SPAM则标记为SPAM,并告知留言者此评论待审核。最棒的是,M-O是有学习能力的,随着留言数量的不断增多,M-O分类的准确性也会上升。

如果万一你发现M-O出现了判断失误,只需要在管理界面中操作一下,M-O就会记住你的判断并吸取教训。

智力

因为M-O对评论是有学习能力的,所以我们可以通过“智力”这个功能,得知它现在聪明到了一个什么程度。智力以一种非常有趣的方式来表示:“猴子-人-外星人”分别代表了从低到高的智能程度。这个点子其实来自于Sapiens,现在连图标都是用人家的,不过以后会改掉的。

M-O的智力M-O的智力情况。图片点击放大

说句题外话就是,有人问外星人一定比地球人聪明吗?答案要看谁先找到谁。如果某一天外星飞船忽然出现在了太阳系甚至地球,那毫无疑问,人家比我们发达多了。顺便推荐一本我读了几遍仍是爱不释手的《量子物理史话》

其实这个功能可能并没有什么用处,但是看起来很好玩。还有就是,做这种功能有什么比较好的算法(Javaeye上的提问贴)?

统计

显示一些关于评论的统计数据,比如一共有多少条评论、其中多少是正常的、多少是SPAM,在分类的过程中有多少错误识别等等。

黑名单

在以下两种情况下,黑名单会特别有用:

  1. 贝叶斯算法失效时。贝叶斯算法并不能处理所有的情况,比如当SPAM内容为一串很长且无规律的英文字母、或者数据库中尚未建立对此SPAM内容的存储时;
  2. 你有特别不想见到的评论时。比如来自某个或某段IP、来自某个email、内容中包含特定的词等等。

M-O的内建黑名单M-O的内建黑名单。图片点击放大

你可以把不同类型的内容放到黑名单里,比如评论人的名字、邮件、网站、IP和评论的内容等,只要满足任何一个条件,他的评论就会被当作SPAM。

如果需要的话,你甚至可以使用正则表达式!比如对于SPAM内容为一串很长且无规律的英文字母的情况,一条内容如下的正则就解决问题了:

/\b[a-z]{25,}\b/

在M-O的内建黑名单中加入关键字在M-O的内建黑名单中加入关键字。图片点击放大

评论管理

你当然可以在LT中管理你收到的文章评论。所有的评论分为三种状态:已发表的、SPAM和被放进废纸篓的。

已发表的评论已发表的评论。图片点击放大

SPAMSPAM。图片点击放大

废纸篓废纸篓。图片点击放大

你可能注意到,在每种状态下,你可以进行的操作是不同的:

细节设计-不同类型评论的不同操作细节设计-不同类型评论的不同操作

当然了,作为一个以用户体验为目标的blog系统,当然少不了特效:

LT 0.5仍处于开发中,所以上述功能和设计还会进一步的调整。


  1. 叶森 @ 2009-02-27 03:40:40 +0800:

    very very impressed..... [emoticon:wahou]

  2. liupeng @ 2009-02-27 04:21:10 +0800:

    [emoticon:angel] 不错!这个博客的风格模板如何实现的呢?做风格好做吗?

  3. liupeng @ 2009-02-27 04:32:52 +0800:

    什么时候换的域名?

  4. 丁宇 @ 2009-02-27 07:07:27 +0800:

    @叶森 叶总大驾光临 [emoticon:big_smile] ,我刚把关于“概念创造”的资料发给你。

    @liupeng 理论是讲是好做的,因为模型、逻辑和表现是完全分离的(MVC),不同模板切换也是内建支持;不过实际上,在现有的视图层设计中,还没来得及为视觉设计师考虑。所以,简而言之,短期内不太会做这方面的支持。

    老实说现在的LT仍然极其简陋,我预计到0.7版的时候,会逐渐能给非程序员用。

  5. AquarHEAD @ 2010-03-11 08:55:25 +0800:

    喔~看来《量子物理史话》这书确实看的人真不少呀。

    啥时候我能用Cake做出你这样子。。。

  6. ahu @ 2011-01-17 01:50:34 +0800:

    为啥没考虑采用Akismet呢?想整合很容易啊http://www.achingbrain.net/stuff/php/akismet

  7. 丁宇 @ 2011-01-24 05:22:48 +0800:

    @ahu 我写LT的时候Akismet功能还很弱,而且我不想每次处理留言都跑到它的服务器上判断,很影响速度。