去年春天的时候我写过一篇名为“一个更好的Twitter客户端”的文章,里面提到了使用贝叶斯算法来对tweets的内容进行过滤,把自己不喜欢的内容删除掉,这样可以解决信息过载的问题。
庄表伟对这个事情也很感兴趣。他本来写了一个名为TinyTui的Twitter客户端的,于是我们经过简单的讨论,决定就在TinyTui的基础上,融入降噪的功能,并将这个客户端命名为TinyTui2,简称TT2。
TT2使用PHP+MySQL编写,使用了CURL库,服务器只要支持这3个条件就能用。
这是TT2的重头,目前主要从三方面入手:
内容过滤。按照内容对tweets进行过滤,使用贝叶斯算法;
行为过滤。按照行为规则过滤,比如过滤掉我深恶痛绝的“用RT聊天”的行为。目前没有想好用什么算法,@tinyfool和@virushuo推荐了“隐马尔可夫模型(Hidden Markov model)”和“协同过滤(Collaborative filtering)”,不过这两个坑都太深了,庄老师和我都还只是站在坑边上往下看了看,没敢跳。此外,我觉得算法可以有很多种,但每种算法要单独写到一个过滤器里面,然后用户加载不同的过滤器满足自己的需求(类似LT的VisitorSense);
好友过滤。简单地说,就是给每个你follow的人以不同的权重。
这三个方面经过计算后分别得到一个0到1之间的值,然后按照某种公式把这三个值汇总,得到一个总分,最后比较这个总分和事先设定好的阙值,就可以决定某条tweet是否应该显示或者被过滤掉。
除了降噪以外,TT2还集成了一些其它的特色功能,比如它内建了一个简单的网页代理,可以让你直接查看那些被墙的网页(典型如短网址)。
项目托管在Google Code上:http://code.google.com/p/tinytui2/。要注意的是,提供下载的0.1-0.4版是我参与之前的版本,没有降噪功能,最新的代码请从SVN中获取。
代码完全是“quick and dirty”风格的,我们都是实用派。
必须自己安装才能使用?是否有一个演示的页码?
@ooof 任何twitter地址只要传播开来,结果都是被墙,所以不行。
有没有如何用之类的说明,下下来了,不知道如何用!
@bing 1)从svn checkout出代码;2)按照你的用户名,修改一下tinytui2.sql;3)上传到服务器上;4)设置b8-0.4.4/etc/config_storage中mysql的主机、用户名和密码;5)把tinytui2.sql导入到数据库中;6)设置tweets_cache的属性为777;7)给b8-0.4.4这个目录用.htaccess加个密。
现在还是挺麻烦的,慢慢改。
中文分词怎么搞定的?
@kuber 中文分字。见 http://dingyu.me/blog/posts/view/spam-bayesian-chinese-5
7)给b8-0.4.4这个目录用.htaccess加个密
这一步不懂
@crcw 从3月5日提交的r19版本开始,就不再需要第七步了。强烈建议从SVN更新至新版本(目前为r26)。
我抽空写个安装程序。
这一抽空就快一年过去了...
而且我建议将你的这个版本打个包出一个下载吧
@ahu 哈,由于Twitter安全策略更改,tinytui2应该不能用了。