如何设计一个简单的新闻聚合产品?

2017 年 7 月 14 日 人人都是产品经理 大中


作者:大中

全文共 2389 字,阅读需要 5 分钟


—— BEGIN ——


你知道在三四线的县城,用户在哪里看新闻么?


不是在今日头条里,而是在微信中的那个腾讯新闻里。


这是我在安徽青阳做用户调研时绝大多数给我的回答。这或许说明一点:用户没有像设计师那样的洁癖,期望每一个app都有明确的边界。


谁说不能在一个社交app里看新闻?我还要加一句,谁说不能在本地头条(我正在负责的产品)里看全国头条?


说是这么说了,但是心里清楚——这只是产品的外延,既然是外延就应该追求做产品的性价比,所以才有了这个极简的新闻聚合产品。


先定个产品的小目标:通过全技术的方式,给用户提供一个高频更新的新闻列表,运营可进行微调干预。


整个过程7步完成,对,就是七步成诗那七步。


一、构建标签库


标签库其实就是词条库,词条哪里来?


或者换一个问法,互联网上谁最懂中文?


答案当然是百度咯。


跑到百度百科首页一看,我们要的东西就躺在下面的红框里。



那我们还客气啥,爬呀~


等等,1400万是不是有点太多了?那我们就去掉一点吧,只留下名词好了,这样可以把词库控制在百万量级。


二、抓取新闻


接下来,就是抓新闻。


新闻哪里有,找门户网站呗;公众号app就算了,费时费力;爬PC站不是一样的嘛。


以体育为例,我们可以挑选新浪体育、搜狐体育、凤凰体育,还有什么体育?你也看出来了——其实我对体育无感,这里就假设有10个体育专题网站吧。


我们要抓的是热门新闻,啥叫热门?出现在第一屏的就是热门。所以我们抓取的时候,只抓取首屏新闻。


结果就是我有了一堆标题和链接,还有链接后面的正文。



三、建立新闻和标签的关联


现在到了建立新闻和标签关联的时候了,首先当然是要分词,怎么分?


呃,这个好像有很多自然语言词库的吧,你自己去找吧~


分词完了之后,计算各个词的出现频率,出现频率越高说明它越可能是这篇文章的关键词。


出现在标题里的词是不是比出现在正文里的词更重要呢?所以你可以把标题里的词加个N倍权重,N等于几?关注我私信我就告诉你。


这里分出来的词,其实就是标签库里的标签。这样每一篇文章就有一个对应的词频由高到低的标签列表了,太长了也没用,就取TOP5吧。


这里有个问题留给你,既然文章要分词,文章分出来的词直接做词库不就好了,为啥要去百度爬呢?答案还是要关注我私信我才告诉你。


四、标签热度排序


现在我们为体育频道选择了10个数据源(就是新浪体育这样的网站),每个数据源下抓了50篇文章,每篇文章都有5个标签,现在我们要看哪个标签最热了。


我们的方式简单得很,否则怎么说我们设计了一个极(jian)简(lou)的产品呢,方法是如果一个标签在一个数据源出现了,就加1,在10个数据源都出现了那就是10。


通过这种方式你会得到每一个标签的值,这个值除以数据源总数就是“热度值”,在我们这里就是0.1到1之间的分布。


这个时候运营的妹子来乱入了,她说她的特长就是八卦,而且是先人一步的八卦,让我们千万要相信她判断热点的是否会大热的能力。


这句话的意思是:


她想来人肉预先提升一个标签的热度值,虽然现在它还没有大热。


嗯,平常关系辣么好,我不信也得做个姿势选择相信,于是就有了下面的线框。她可以调整一个标签次的热度值。



呀,最后怎么还有两个词连接在一起的?实际上多个词比单个词更接近于一个热点事件。当然对于这种二元词,计算方式和一元词略有不同,细节此处不展开。


五、文章按频道排好序


到这里我们已经有了标签的热度排序,那文章的热度怎么算呢?


文章不是有5个标签嘛,那个最高热度值标签的热度就是文章的热度。


实际上热度只是文章的一个维度,要给文章排序,你自然还会想到以下的几个维度:


  • 质量分:一篇结构完整、图片丰富的文章显然具有更高的质量

  • 时效分:越新的越优先,大家是来看新闻的嘛。


具体算法上可以用高斯衰减:比如72小时内基本无衰减,超过72小时后每过12小时就衰减一点。


说到衰减,最近看了采铜的效益半衰期理论感觉颇为受用,大意是:一个人管理自己日常的行为,可以考虑这个行为对自己长期受用程度来衡量;有些事情效益半衰期很长比如读书和健身,就应该多做,另外一些事情效益半衰期很短比如游戏,就可以少做。


扯一扯防松一下,接回来说。


文章要排序,就是看这3个因子,编一个数据公式把:热度分,质量分,时效分串起来计算出一个数值就ok了。


想要公式?好像不是很方便哎,再说你那么聪明,自己也能搞出来。


六、按频道权重整合输出


文章有了排序,下一步直接输出么?可是当前我们只有一个全国新闻频道,细分分频道啊,个性化呀那都是以后的事情,极简系统就是千人一面的啦。


所以下一步我们要定一下各种频道的内容如何混在一起。这个没有啥技术含量,就是给各个频道定个权重,然后按这个权重计算个比例去混合就好了。


技术上可确保:用户看的越多,实际比例就越接近预先定义的权重分布。



咦,好像漏了说文章属于什么频道的了。


在我们第2步里决定去哪些数据源抓新闻的时候就决定了:每个数据源都对应了一个频道, 那么从这个数据源里抓取的文章也就对应了一个频道。


主要的几个频道是:社会、娱乐、体育、汽车、历史、房产、科技、财经、军事、国际。


七、过滤用户已读


终于来到了最后一步,作诗也没这么累啊。


对于全国新闻这种用之不尽、取之不竭、看过就忘、不看两遍的题材来说,给用户最好的阅读体验就是每次都给他没看过的,过滤掉所有已经看过的。


那如何尽可能简洁地实现呢?简洁的本质就是照顾主要场景忽略次要场景。主要场景是用户每几个小时打开一次,打开一次看十来分钟。如果我们每小时爬取的新闻数足够多,衰减做的足够高,是否需要过滤已读都是可以商量的了。


实操里,我们还是记录了用户的已读信息,然后一次请求里返回足够多的新闻,比如10个频道每个频道300篇,也就是3000篇,然后再过滤一下,性能上完全可接受,主要场景里也不会出现新闻看完的情况。


总结一下


在设计这个热门新闻列表产品的过程中,主要是几个点:


  • 新闻的热度本质上是标签的热度,标签用百度的词条

  • 标签的热度其实就是同时出现在多个网站上的频度

  • 文章的排序就是文章热度分,质量分,时效分的综合打分

 

—— END ——


作者:大中,内容类创业公司的产品总监,此前在阿里5年,负责过虾米音乐等产品。平常关注内容、社区和电商类产品。

本文由 @大中 原创发布于人人都是产品经理。未经许可,禁止转载


点击“阅读原文”下载APP

登录查看更多
0

相关内容

新闻,是指报纸、电台、电视台、互联网等媒体经常使用的记录与传播信息的 [2] 一种文体,是反映时代的一种文体。新闻概念有广义与狭义之分。广义上:除了发表于报刊、广播、互联网、电视上的评论与专文外的常用文本都属于新闻,包括消息、通讯、特写、速写(有的将速写纳入特写之列)等等; [3] 狭义上:消息是用概括的叙述方式,以较简明扼要的文字,迅速及时地报道附近新近发生的、有价值的事实,使一定人群了解。新闻一般包括标题、导语、主体、背景和结语五部分。前三者是主要部分,后二者是辅助部分。写法以叙述为主兼或有议论、描写、评论等。新闻是包含海量资讯的新闻服务平台,真实反映每时每刻的重要事件。您可以搜索新闻事件、热点话题、人物动态、产品资讯等,快速了解它们的最新进展。

知识荟萃

精品入门和进阶教程、论文和代码整理等

更多

查看相关VIP内容、论文、资讯等
【WWW2020-微软】理解用户行为用于文档推荐
专知会员服务
34+阅读 · 2020年4月5日
【干货书】流畅Python,766页pdf,中英文版
专知会员服务
224+阅读 · 2020年3月22日
【Amazon】使用预先训练的Transformer模型进行数据增强
专知会员服务
56+阅读 · 2020年3月6日
【经典书】精通机器学习特征工程,中文版,178页pdf
专知会员服务
354+阅读 · 2020年2月15日
今日头条技术架构分析
互联网架构师
11+阅读 · 2019年8月19日
推荐系统产品与算法概述 | 深度
AI100
11+阅读 · 2019年6月13日
听完了1000+首古风歌曲,我发现自己也能火
PingWest品玩
4+阅读 · 2019年6月2日
面向新闻媒体的命名实体识别技术
PaperWeekly
18+阅读 · 2019年4月17日
文本分析与可视化
Python程序员
9+阅读 · 2019年2月28日
两套经典的用户画像
产品100干货速递
26+阅读 · 2018年6月19日
我是一个爬虫
码农翻身
12+阅读 · 2018年6月4日
【大数据】如何用大数据构建精准用户画像?
产业智能官
12+阅读 · 2017年9月21日
你以为自己真的了解用户画像?其实猫腻可多了
THU数据派
8+阅读 · 2017年7月12日
Arxiv
5+阅读 · 2019年4月21日
Arxiv
31+阅读 · 2018年11月13日
Arxiv
3+阅读 · 2018年3月21日
Arxiv
8+阅读 · 2018年1月25日
VIP会员
相关资讯
今日头条技术架构分析
互联网架构师
11+阅读 · 2019年8月19日
推荐系统产品与算法概述 | 深度
AI100
11+阅读 · 2019年6月13日
听完了1000+首古风歌曲,我发现自己也能火
PingWest品玩
4+阅读 · 2019年6月2日
面向新闻媒体的命名实体识别技术
PaperWeekly
18+阅读 · 2019年4月17日
文本分析与可视化
Python程序员
9+阅读 · 2019年2月28日
两套经典的用户画像
产品100干货速递
26+阅读 · 2018年6月19日
我是一个爬虫
码农翻身
12+阅读 · 2018年6月4日
【大数据】如何用大数据构建精准用户画像?
产业智能官
12+阅读 · 2017年9月21日
你以为自己真的了解用户画像?其实猫腻可多了
THU数据派
8+阅读 · 2017年7月12日
Top
微信扫码咨询专知VIP会员