当前位置: 首页 > news >正文

中文锐推榜的优化

郑昀@玩聚RT 20090615

 

中文锐推榜(原理很简单,就是自动搜集中文世界微博客的锐推(转发)消息,语义计算消息之间的相似性,自动聚合一条消息被 Twitter和饭否用户转发的次数;转发次数高的消息将登上热榜)在6月9日加入饭否的合并统计之前,存在的老问题:

1、重复:发源自不同人的锐推,内容大致是一件事情或一个链接,但由于措辞不同(汉语博大精深),甚至只是在最前面加了几个字或者诡异的符号,然后只要转发次数足够多,就可以导致重复上榜;

    解决办法:针对此问题,我们已经建立了不少规则,尽可能地去除锐推消息中的标点符号英文字母、各种格式各种习惯的转发过程中用户增加的评论。自然语言处理上,则清理消息中无意义的停止词,如“的”“是”等等。但只能尽可能减少,并未彻底解决。

 

在 @NetPuter 的建议下,最近加入对饭否数据的统计。

之后常被投诉的问题:

1、还是重复问题

2、部分知名ID过于频繁上榜:尤其以饭否ID为主;

3、少量上榜消息不具有传播性:即消息并不像玩聚RT所致力挖掘的那么“有趣”;

4、饭否的消息上榜过多:饭否的站方规范转发行为,增加了转发按钮之后,降低了转发行为的成本。

    解决办法:针对2和3,玩聚RT增加了一个黑名单,专门收纳那些有很多热情粉丝的、消息却不具有传播性的ID。但考虑到无处不在的“马太效应”,名人ID的消息上榜多,是显而易见的社会常态,不应该被禁止或限制。只要符合“有趣”的特质,那么即使是名人的消息,通过转发次数足够多证明了它的可传播性,那么就应该被传播出去。毕竟,榜单追求的是“有趣”。当初TechMeme的创始人Gabe非常强调的一点就是:“我希望能让读者感到有趣,同时也为不知名作者提供展示自己的舞台”。如果榜单上全都是东东枪、连岳或艾未未的名人锐推,人们也会很快厌倦的,所以增加不知名微博客用户的上榜几率,才是我们要认真考虑的。热门榜单相当于给你五分钟登上舞台中央的机会,至于是否抓人,就要看你的自身魅力了。上了锐推榜,第一波可以让至少两、三千人看到,然后也许有近百人再转发,按此估算,上榜的辐射面可能有近万人。这能够给不知名作者带来不少订阅者。

                  针对4,把来自twitter的消息上榜的阈值,与饭否的分开。饭否的上榜阈值要高得多。

                  针对1,@terryxxy 建议,对每一条已达到上榜资格的锐推消息,在准备上榜之前,可以与48小时内的已上榜锐推进行相似性比较;如果此消息发现与之前的消息重复度大于85%,就不再上榜。但考虑到微博客用户对汉语运用的随意性,还是会存在一定判错几率的。

 

其他问题:

5、@easthero 认为饭否用户和Twitter用户的群体是完全不同的,Twitter上的更具有Geek气质。所以他认为需要把Twitter的锐推榜与饭否的彻底分开,不要混合在一起计算和传播。

当然,在@NetPuter 建议为饭否单独建一个锐推榜时,我也是这么认为;饭否用户质量不如Twitter质量高,所以它们的消息不能合并计算。

但,在做了一段时间的实验后,我发现也不是这么绝对。

具有传播特质的锐推,和人性有关,与Geek无关。Geek也是人。

饭否和twitter上的能上榜的锐推消息本质都是一样,无非几个命题:

    自由主义、科技、情色和爆炸性新闻。

你可以回到加入饭否之前(6月9日)的锐推榜,比如 http://rt.ju690.com/?v=new&d=7&p=page30 ,对,修改后面的p参数,翻到40、50页看看,看和现在合并统计的有何区别呢?不还都是那些东西吗?科技、自由、大事件、段子、情色。

以后再增加其他微博客服务时,只要调高或调低发源自它们的消息的上榜阈值,调整好黑名单,我认为可以合并统计。

相关文章:

  • 如何下载vSphere Big Data Extensions 1.0免费试用版
  • Android深度探索读后感 第四章
  • Android官方教程翻译(4)——启动另一个Activity
  • 动态生成自定义控件ascx如何给ascx传值
  • Android UI(二)DridView的菜单
  • HTML5 预加载
  • SonarQube简介
  • ​虚拟化系列介绍(十)
  • 用Python设计第一个游戏 - 零基础入门学习Python002
  • MFC 消息
  • Asp.net常用的三十多个代码(2)
  • 1、Nginx安装和配置文件
  • 小插曲之变量和字符串 - 零基础入门学习Python003
  • Linux rpm 命令参数使用
  • 不起眼的 z-index 却能牵扯出这么大的学问(转)
  • 【391天】每日项目总结系列128(2018.03.03)
  • 【Redis学习笔记】2018-06-28 redis命令源码学习1
  • CentOS6 编译安装 redis-3.2.3
  • hadoop集群管理系统搭建规划说明
  • JavaScript设计模式系列一:工厂模式
  • Laravel核心解读--Facades
  • Phpstorm怎样批量删除空行?
  • rabbitmq延迟消息示例
  • rc-form之最单纯情况
  • Synchronized 关键字使用、底层原理、JDK1.6 之后的底层优化以及 和ReenTrantLock 的对比...
  • use Google search engine
  • VirtualBox 安装过程中出现 Running VMs found 错误的解决过程
  • vue2.0一起在懵逼的海洋里越陷越深(四)
  • 对话 CTO〡听神策数据 CTO 曹犟描绘数据分析行业的无限可能
  • 发布国内首个无服务器容器服务,运维效率从未如此高效
  • 复习Javascript专题(四):js中的深浅拷贝
  • 前嗅ForeSpider采集配置界面介绍
  • 前言-如何学习区块链
  • 融云开发漫谈:你是否了解Go语言并发编程的第一要义?
  • 腾讯优测优分享 | Android碎片化问题小结——关于闪光灯的那些事儿
  • PostgreSQL之连接数修改
  • python最赚钱的4个方向,你最心动的是哪个?
  • 我们雇佣了一只大猴子...
  • ###C语言程序设计-----C语言学习(6)#
  • #每天一道面试题# 什么是MySQL的回表查询
  • ( 10 )MySQL中的外键
  • (23)Linux的软硬连接
  • (Demo分享)利用原生JavaScript-随机数-实现做一个烟花案例
  • (二)斐波那契Fabonacci函数
  • (已解决)报错:Could not load the Qt platform plugin “xcb“
  • (原)本想说脏话,奈何已放下
  • (转贴)用VML开发工作流设计器 UCML.NET工作流管理系统
  • (转载)虚幻引擎3--【UnrealScript教程】章节一:20.location和rotation
  • .net core 6 集成 elasticsearch 并 使用分词器
  • .net framework4与其client profile版本的区别
  • .NET 使用 ILMerge 合并多个程序集,避免引入额外的依赖
  • .NET/C# 在代码中测量代码执行耗时的建议(比较系统性能计数器和系统时间)...
  • .NET6 命令行启动及发布单个Exe文件
  • .Net程序猿乐Android发展---(10)框架布局FrameLayout
  • .net通用权限框架B/S (三)--MODEL层(2)