2018微博詞雲專案深度解析

tracy丶傑發表於2019-01-04

最初產生這個專案的想法應該是在2018年10月份,當時正在學習python中,就萌生了這樣一個想法:從一個使用者這一年釋出的微博資料中,提取最有意義的top50個關鍵詞。很明顯涉及到了資料採集和自然語言處理的一些知識。

前期準備:

  1. 需要到微博開發平臺認證開發者;

  2. 在微博開發平臺建立應用;

  3. 域名1個,伺服器1臺;

微博應用建立和稽核

建立應用的目的就是你的網站可以接入微博,使用微博登入授權,呼叫微博開放的一些api;質量高,使用者多的應用還會被推薦到微博應用廣場等等。

建立應用需要我們填寫一些資訊,應用名稱,描述之類的。把準備好的文案直接貼上進去就可以;需要不同規格的應用圖示和三張以上應用介紹的宣傳圖。這個裡面有一個關鍵點就是應用地址,需要提供一個可訪問到的,並且包含微博元件的一個地址。這些東西提交完就可以提交稽核了,微博應用稽核的速度還算比較快的,一兩天基本差不多會稽核完。

等應用稽核完,你就可以拿著appkey和appsecret繼續往下開發了。

微博資料採集

因為微博開放的api介面裡並不提供使用者微博資料,所以才使用了資料採集的方案。第一個版本的工具是用nodejs寫的,後來換成了python的版本。

提取關鍵詞

這裡還是使用python進行處理:

  1. 預處理(去掉微博裡的表情、標籤等);

  2. 分詞(將整句分割為詞彙);

  3. 載入詞庫(包括通用詞庫和使用者自定義詞庫);

  4. 去停用詞(去除一些無意義的詞彙);

  5. 計算TFIDF,按權重排序;

  6. 取前50個詞生成詞雲圖片。

串聯專案

專案的基礎架構使用nodejs搭建,整個應用的路由訪問控制,檢視渲染,異常處理, 日誌收集,程式管理,都是使用nodejs來完成。

大致流程:

  1. 使用者訪問應用;

  2. 引導使用者到微博授權頁;

  3. 授權成功後,後臺拿到uid,開啟一個新的子程式進行微博詞雲圖片的生成;

  4. 這個時候給使用者返回一個grant頁面(此時微博詞雲的程式可能還沒結束);

  5. 使用者點選到下一個頁面,如果圖片已經生成了,就展示該展示的資料,如果還沒有,就給使用者等待的處理。

對,基本流程差不多就這些,比較簡單。下面看下最終的效果。

2018微博詞雲專案深度解析

2018微博詞雲專案深度解析

2018微博詞雲專案深度解析

2018微博詞雲專案深度解析

2018微博詞雲專案深度解析

重要的知識點

  • 在nodejs中呼叫python指令碼,大致思路就是生成一個shell命令,然後nodejs開啟一個子程式,在子程式中執行這個shell即可。

2018微博詞雲專案深度解析

  • h5頁面,長按儲存成圖片,這裡的大致思路如下:

我們將html轉為canvas,然後取出canvas資料放入一個img標籤裡。將這個img放到頁面最頂層,並且將不透明度設為0就可以了。然後在微信、微博等app裡面,長按就可以儲存到手機了,具體實現程式碼請看下圖。

2018微博詞雲專案深度解析

總結

更多的是一些互動上的細化處理,讓使用者有更好的操作體驗,和視覺上的衝擊。這個應用視覺衝擊倒是沒有多少,哈哈。

最後,歡迎大家一起交流。

專案地址:yk.mcust.cn/wb

相關文章