返回列表 发帖
原帖由 无边无际 于 2006-5-10 11:43 AM 发表


不觉得麻烦么?如果有十条岂不询问十次?也许我理解错了你的意思


不用啊,做个下拉选择,只要第一次访问该网站是选一次就行

TOP

最简单的方法..装个admuncher....一切都清爽了...哈哈

TOP

讨论的好不热闹,黑名单记数排序法以及过滤库虽是比较好的,可总归有其缺点,这点用输入法做比喻就很能说明问题,就像广告不可能大部分时间都是规率的一样,用户的使用有时也是捉摸不定的,从用户而非技术的角度来说,用户可能想几乎任何时候这种广告功能都应是有效率、不卡、简便的。

过滤库的作用可能更多的是提供给用户的一种参考,上网习惯和过滤要求的不同也注定决定了没有万能的过滤库。

TOP

正是由于没有万能的过滤库,所以也从一个侧面说明,过滤系统总是可以改进得更好的。
花不花资源的问题,我从starsoft 的帖子里并没看出增加计数器功能相关内容,他的贴子论点是规则过多会消耗很多资源,这个其实很显而易见,所以我也前也大力推荐应该使用正则表达式来减少规则数目。
计数器只是很简单的增量计数,在任何编程语言里都应该属于最低负荷的操作,这和需要算法实现的规则匹配完全不是一个数量级。虽然我的没做过浏览器的开发,但是以我经验相信技术上和复杂度上应该是很低的。

至于说很少用到的规则并不等于用不到,可以通过阀值设置,让用户自己确定。例如设定过去3个月都没有用到的规则自动失效。而且还可以强制永久生效,满足所有要求。

过滤库的概念并不新鲜,Firefox的就有插件自动更新Adblock的规则,但是过滤库通常都是包含许多人的规则,他们访问的网站不一定是我们访问的网站,就会有许多无用的规则,影响效率。对于很多喜欢自力更生的人,总是希望通过自己努力实现符合自己要求的更高效率的。

[ 本帖最后由 zlowly 于 2006-5-10 02:57 PM 编辑 ]

TOP

记数器匹配黑名单,不是从记数器本身的技术实现或是功能上说的,而是说的命中效率(就像输入法的字词排序一样),规率情况下自然很好,可很多时候并非是规率的,当然 zlowly 显然已经为此提到建议,就是阀值设置。

而正则表达式,我大致理解的好比是一个 IF 语句的嵌套,如果第一个匹配了就不会进行以下的运算,假如常规的黑名单也是匹配后不会再进行其它的匹配,那么两者的区别可能就剩下眼见条目多少了,不知理解是否有误。

TOP

增加计数器不会对效率资源有大响,不过是增加一些 variables 而已。 Proxomitron 便一直有这功能:
附件: 您需要登录才可以下载或查看附件。没有帐号?加入 我们

TOP

原帖由 tongang 于 2006-5-10 01:22 PM 发表
最简单的方法..装个admuncher....一切都清爽了...哈哈

m2 就是采用 admuncher 的方法,而且更进一步支持 regular expression 及 site specific 过滤规则。

TOP

个人意见全局过滤条件和站点私有条件没有必要。因为我们有很简单的方法,就是通配符。

我觉得zlowly兄弟说的,再加上上面我说的使用2个类别,一个是固定(不删除)类别,一个是临时(可自动删除)类别。这样可以排除误删除的可能。

另外还有一点,我觉得过滤内容里面或许改加一个注释的功能,有的时候名单多了,但是自己却忘了某个过滤条件是哪个站点添加的。

PS:这样的讨论很好,虽然我们的想法不一定对也不一定有用,但要是能给凤凰他们带来点灵感,那也是不错的。
260 字节以内
不支持自定义 Discuz! 代码

TOP

原帖由 Aycox 于 2006-5-10 01:44 PM 发表
讨论的好不热闹,黑名单记数排序法以及过滤库虽是比较好的,可总归有其缺点,这点用输入法做比喻就很能说明问题,就像广告不可能大部分时间都是规率的一样,用户的使用有时也是捉摸不定的,从用户而非技术的角度来 ...


宏观上,的确没有完美的过滤设置,但是,针对某个网站来说,过滤设置多数情况下都是固定的,即使不同用户所需要的过滤设置也都是相同的,偶所说的过滤库存放的是针对某个网站的过滤包,只针对该网站有效,而不是单独的过滤规则。这个功能很容易实现,而且能十分有效的提高过滤效率。

计数器并不能提高过滤效率,也不能用输入法的词频调整来做参考,原因很简单,用户在输入文字时,所需要的字是已知的,因此词频调整把常用的字放在前面能增加命中率,减少候选字的查询,但是广告过滤则不同,广告过滤时的规则总是未知的,不能因为规则排在后面而不去管他,始终都需要全部匹配一次。

例如设定过去3个月都没有用到的规则自动失效。而且还可以强制永久生效,满足所有要求。


这也有很多问题,如果某个网站用户不常去,或者只在需要时才会去,而用户并不知道下一次何时会去,那么很可能再去时过滤规则就失效了,用户不得不再一次添加,这种情况很普遍,如果设置为永久有效,那么针对该网站的那些设置对于其他网站来说,就是个负担了,同样降低效率。

原帖由 AY 于 2006-5-10 04:44 PM 发表
增加计数器不会对效率资源有大响,不过是增加一些 variables 而已。 Proxomitron 便一直有这功能:


跟ADBlock一样,这儿的计数器只是用来统计而已,让用户有个参考,并不是用来做词频调整的。

原帖由 亡灵法师 于 2006-5-10 06:39 PM 发表
个人意见全局过滤条件和站点私有条件没有必要。因为我们有很简单的方法,就是通配符。

我觉得zlowly兄弟说的,再加上上面我说的使用2个类别,一个是固定(不删除)类别,一个是临时(可自动删除)类别。这样可 ...


通配符跟全局过滤条件和站点私有条件有什么关系?过滤规则的网站私有化是为了提高效率,私有化的规则只针对某个网站有效,不必参与每个网站的过滤匹配过程。

TOP

通配符当然有关系。我们可以使用通配符来满足某站点的过滤或者不过滤。比如*/ggao/*和http://www.crsky.com/ggao/*。

针对每一个站点不是好办法。它同样需要匹配计算。比如我们打开一个页面,需要核对列表,存在的项目都要核对。这个办法不能有效减少核对过程。

类似于病毒库也不理想。因为每个人登陆的站点都不一样,适合自己的过滤条件不一定适合别人。过滤追求的就是最小的代码最大的效果。亢长的过滤名单会导致打开网页有卡的感觉。

也就是说,如果我们使用名单过滤方式,面对的问题就是亢长名单导致卡的问题。最好有一种办法,可以让很多新人朋友使用亢长名单,又能在使用过程中自动或者方便的手动精简。

××××××××××××××××××××××××××××××××××××××××××××××

zlowly朋友说的计数,的确是个办法。比如几个月都没有产生作用的,我们可以去掉(自动或者手动)。再加上我说的分成2类,一类固定不动,另外一个临时类,可以删除。

这个办法是使用名单过滤,又追求过滤效率的无奈办法。

另外一个办法,是和adblock一样采取正则表达式。不过有个问题是一旦误过滤,修改起来相当麻烦。注定只能使用保守的正则表达式来过滤。其余的靠过滤列表支撑。如果这样的话,可以固定正则表达式不动,其余项目也可以用计数方式来决定是否删除。

×××××××××××××××××××××××××××××××××××××××××××××××

对普通用户最有吸引力的不是过滤机制,而是怎么方便过滤自己想过滤的……因为万能的过滤方式不存在。

我认为使用可视化的广告过滤方式(有点像Opera 9.0 Beta)是个好办法。就如同我们在IE中使用ViewPage,当鼠标移到一个页面项目上,ViewPage会用红线在页面勾出。Opera的这个功能,仅仅针对图片,如果TW能做到针对内嵌框架甚至文字,那就方便之极了。

使用这种办法(其实所有的名单过滤方式都是),几个月之后,过滤列表可能变得比较长,影响打开页面的速度。使用zlowly朋友的办法,可以缓解这个问题,起码,我们有了一个是否删除某个项目的参考。

[ 本帖最后由 亡灵法师 于 2006-5-10 10:05 PM 编辑 ]
260 字节以内
不支持自定义 Discuz! 代码

TOP

建议:请楼主将标题修改一下,或者,请大家另开新贴继续探讨关于 TW 的广告过滤问题。
因为一方面本人认为上述几位现有的讨论形式和讨论内容十分有益,第二方面讨论的内容已经远远超出了原贴主题的范围。请原谅可能本人存有私心,个人以为在这个主题下讨论貌似稍有不妥^_^,我想靠大家联手之力打造一个专门的有关广告过滤的帖子更有意义,谢谢!

TOP

原帖由 Aycox 于 2006-5-10 16:30 发表
而正则表达式,我大致理解的好比是一个 IF 语句的嵌套,如果第一个匹配了就不会进行以下的运算,假如常规的黑名单也是匹配后不会再进行其它的匹配,那么两者的区别可能就剩下眼见条目多少了,不知理解是否有误。


正则表达式远不是这么简单的,先说其效率问题,例如对于平常以下两条规则
*/ads.*
*/adv.*
如果URL里有adv,那么匹配时要比较的字母至少有a d s a d v6次
但是写成正则表达式只有一条规则
ad(s|v)
那么只需要比较a d s v4次。(当然括号之类的为了说明简单就不算数了)
而大家留意一下TW或者MT里的规则,许多都是十分类似的,例如都含有ad或者banner字母,只是在首尾有./之类的不同,这样几十条规则下来如果只用一条正则表达式来写成规则,就是节省了数十次的相同字母比较。若相似部分不是ad这么短而是更长,那么节省的更多。

其次是准确性问题,例如对于类似320x24.gif,228x128.jpg这样的广告,一般通配符规则是写不出来的,罗列更是不切实际的,而正则里用\d表示数字
\d{2,3}x\d{2,3}
就表示
2-3位数字x2-3位数字,十分精确,也不会不小心把1x1算进去。
再如不少门户网站会用类似
http://ad0.xxxx.com
http://ad8.xxxx.com
之类的URL
用ad?或者ad*的话明显误杀很多,
正则的话
ad\d*
*表示前面的字母(或数字)有0个或者0个以上
是不是准确很多呢?而正则表达式远不止这些规则,几乎可以匹配任何你想得到的规则。

最后就是算法的速度,由于正则表达式的功能复杂,它比一般的字符比较算法当然会慢,但是实际上很多语言本身就带有正则表达式的库甚至内置了正则表达式函数,例如Javascript,C++,Java等,它们都已经在一定程度上在甚至是在机器码级别优化过,速度并不比自己写通配符规则的算法慢多少。

[ 本帖最后由 zlowly 于 2006-5-11 02:35 AM 编辑 ]

TOP

返回列表