設計一個簡單的新聞聚合產品

設計一個簡單的新聞聚合產品

來自專欄 本地頭條的產品部

你好,我叫大中,是一家內容類創業公司的產品總監,此前在阿里5年,負責過蝦米音樂等產品。平常關注內容、社區和電商類產品,歡迎關注。

你知道在三四線的縣城,用戶在哪裡看新聞么?不是在今日頭條里,而是在微信中的那個騰訊新聞里。這是我在安徽青陽做用戶調研時絕大多數給我的回答。這或許說明一點:用戶沒有像設計師那樣的潔癖,期望每一個app都有明確的邊界。誰說不能在一個社交app里看新聞,我還要加一句,誰說不能在本地頭條(我正在負責的產品)里看全國頭條。說是這麼說了,但是心裡清楚這只是產品的外延,既然是外延就應該追求做產品的性價比,所以才有了這個極簡的新聞聚合產品。

先定個產品的小目標:通過全技術的方式,給用戶提供一個高頻更新的新聞列表,運營可進行微調干預。

整個過程7步完成,對,就是七步成詩那七步。

1.構建標籤庫

標籤庫其實就是詞條庫,詞條哪裡來?或者換一個問法,互聯網上誰最懂中文?答案當然是百度咯。跑到百度百科首頁一看,我們要的東西就躺在下面的紅框里。

那我們還客氣啥,爬呀,等等,1400萬是不是有點太多了?那我們就去掉一點吧,只留下名詞好了,這樣可以把詞庫控制在百萬量級。

2.抓取新聞

接下來,就是抓新聞,新聞哪裡有,找門戶網站唄,公眾號app就算了,費時費力,爬PC站不是一樣的嘛,以體育為例,我們可以挑選新浪體育,搜狐體育,鳳凰體育,還有什麼體育?你也看出來了其實我對體育無感,這裡就假設有10個體育專題網站吧。

我們要抓的是熱門新聞,啥叫熱門,出現在第一屏的就是熱門,所以我們抓取的時候,只抓取首屏新聞。結果就是我有了一堆標題和鏈接,還有鏈接後面的正文。

3.建立新聞和標籤的關聯

現在到了建立新聞和標籤關聯的時候了,首先當然是要分詞,怎麼分?呃,這個好像有很多自然語言詞庫的吧,你自己去找吧,分詞完了之後,計算各個詞的出現頻率,出現頻率越高說明它越可能是這篇文章的關鍵詞。出現在標題里的詞是不是比出現在正文里的詞更重要呢?所以你可以把標題里的詞加個N倍權重,N等於幾?關注我私信我就告訴你。

這裡分出來的詞,其實就是標籤庫里的標籤。這樣每一篇文章就有一個對應的詞頻由高到低的標籤列表了,太長了也沒用,就取TOP5吧。

這裡有個問題留給你,既然文章要分詞,文章分出來的詞直接做詞庫不就好了,為啥要去百度爬呢?答案還是要關注我私信我才告訴你。

4.標籤熱度排序

現在我們為體育頻道選擇了10個數據源(就是新浪體育這樣的網站),每個數據源下抓了50篇文章,每篇文章都有5個標籤,現在我們要看哪個標籤最熱了。我們的方式簡單得很,否則怎麼說我們設計了一個極(jian)簡(lou)的產品呢,方法是如果一個標籤在一個數據源出現了,就加1,在10個數據源都出現了那就是10。通過這種方式你會得到每一個標籤的值,這個值除以數據源總數就是「熱度值」,在我們這裡就是0.1到1之間的分布。

這個時候運營的妹子來亂入了,她說她的特長就是八卦,而且是先人一步的八卦,讓我們千萬要相信她判斷熱點的是否會大熱的能力。這句話的意思是:她想來人肉預先提升一個標籤的熱度值,雖然現在它還沒有大熱。嗯,平常關係辣么好,我不信也得做個姿勢選擇相信,於是就有了下面的線框。她可以調整一個標籤次的熱度值。

呀,最後怎麼還有兩個詞連接在一起的?實際上多個詞比單個詞更接近於一個熱點事件。當然對於這種二元詞,計算方式和一元詞略有不同,細節此處不展開。

5.文章按頻道排好序

到這裡我們已經有了標籤的熱度排序,那文章的熱度怎麼算呢?文章不是有5個標籤嘛,那個最高熱度值標籤的熱度就是文章的熱度。

實際上熱度只是文章的一個維度,要給文章排序,你自然還會想到以下的幾個維度:

1.質量分:一篇結構完整、圖片豐富的文章顯然具有更高的質量

2.時效分:越新的越優先,大家是來看新聞的嘛。具體演算法上可以用高斯衰減,比如72小時內基本無衰減,超過72小時後每過12小時就衰減一點。說到衰減,最近看了采銅的效益半衰期理論感覺頗為受用,大意是:一個人管理自己日常的行為,可以考慮這個行為對自己長期受用程度來衡量,有些事情效益半衰期很長比如讀書和健身,就應該多做,另外一些事情效益半衰期很短比如遊戲,就可以少做。

扯一扯防松一下,接回來說。

文章要排序,就是看這3個因子,編一個數據公式把:熱度分,質量分,時效分串起來計算出一個數值就ok了,想要公式?好像不是很方便哎,再說你那麼聰明,自己也能搞出來。

6.按頻道權重整合輸出

文章有了排序,下一步直接輸出么?可是當前我們只有一個全國新聞頻道,細分分頻道啊,個性化呀那都是以後的事情,極簡系統就是千人一面的啦。所以下一步我們要定一下各種頻道的內容如何混在一起。這個沒有啥技術含量,就是給各個頻道定個權重,然後按這個權重計算個比例去混合就好了。技術上可確保,用戶看的越多,實際比例就越接近預先定義的權重分布

咦,好像漏了說文章屬於什麼頻道的了。在我們第2步里決定去哪些數據源抓新聞的時候就決定了。每個數據源都對應了一個頻道, 那麼從這個數據源里抓取的文章也就對應了一個頻道。主要的幾個頻道是:社會、娛樂、體育、汽車、歷史、房產、科技、財經、軍事、國際。

7.過濾用戶已讀

終於來到了最後一步,作詩也沒這麼累啊。

對於全國新聞這種用之不盡、取之不竭、看過就忘、不看兩遍的題材來說,給用戶最好的閱讀體驗就是每次都給他沒看過的,過濾掉所有已經看過的。

那如何儘可能簡潔地實現呢?簡潔的本質就是照顧主要場景忽略次要場景。主要場景是用戶每幾個小時打開一次,打開一次看十來分鐘。如果我們每小時爬取的新聞數足夠多,衰減做的足夠高,是否需要過濾已讀都是可以商量的了。實操里,我們還是記錄了用戶的已讀信息,然後一次請求里返回足夠多的新聞,比如10個頻道每個頻道300篇,也就是3000篇,然後再過濾一下,性能上完全可接受,主要場景里也不會出現新聞看完的情況。

總結一下

在設計這個熱門新聞列表產品的過程中,主要是幾個點:

1.新聞的熱度本質上是標籤的熱度,標籤用百度的詞條

2.標籤的熱度其實就是同時出現在多個網站上的頻度

3.文章的排序就是文章熱度分,質量分,時效分的綜合打分

下集預告:一個縣城社區冷啟動過程中的產品設計

上集:設計好輪播區,就這3點

最後,和你說件近期在做的事情,我比較喜歡攝影,所以找了幾個寶寶一起做了一款人像攝影作品的app叫「85mm」,(當前僅在應用寶上可搜索到),歡迎大家下載體驗。如果你恰好是個會寫代碼的寶寶,歡迎一起來玩呀,我微信zhonghua081238

推薦閱讀:

泊柏科技關於網路課堂的預想
作為行業新人,這是最全的行業學習策略
服裝首富跌落神壇,全年虧損一個億?
用戶體驗詞條-21.用戶體驗五個層面

TAG:產品經理 | 產品設計 | 移動互聯網 |