2018微博詞雲項目深度解析

最初產生這個項目的想法應該是在2018年10月份,當時正在學習python中,就萌生了這樣一個想法:從一個用戶這一年發佈的微博數據中,提取最有意義的top50個關鍵詞。很明顯涉及到了數據採集和天然語言處理的一些知識。

前期準備:

  1. 須要到微博開發平臺認證開發者;
  2. 在微博開發平臺建立應用;
  3. 域名1個,服務器1臺;

微博應用建立和審覈

建立應用的目的就是你的網站能夠接入微博,使用微博登陸受權,調用微博開放的一些api;質量高,用戶多的應用還會被推薦到微博應用廣場等等。html

建立應用須要咱們填寫一些信息,應用名稱,描述之類的。把準備好的文案直接粘貼進去就能夠;須要不一樣規格的應用圖標和三張以上應用介紹的宣傳圖。這個裏面有一個關鍵點就是應用地址,須要提供一個可訪問到的,而且包含微博組件的一個地址。這些東西提交完就能夠提交審覈了,微博應用審覈的速度還算比較快的,一兩天基本差很少會審覈完。node

等應用審覈完,你就能夠拿着appkey和appsecret繼續往下開發了。python

微博數據採集

由於微博開放的api接口裏並不提供用戶微博數據,因此才使用了數據採集的方案。第一個版本的工具是用nodejs寫的,後來換成了python的版本。shell

提取關鍵詞

這裏仍是使用python進行處理:canvas

  1. 預處理(去掉微博裏的表情、標籤等);
  2. 分詞(將整句分割爲詞彙);
  3. 加載詞庫(包括通用詞庫和用戶自定義詞庫);
  4. 去停用詞(去除一些無心義的詞彙);
  5. 計算TFIDF,按權重排序;
  6. 取前50個詞生成詞雲圖片。

串聯項目

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

大體流程:

  1. 用戶訪問應用;
  2. 引導用戶到微博受權頁;
  3. 受權成功後,後臺拿到uid,開啓一個新的子進程進行微博詞雲圖片的生成;
  4. 這個時候給用戶返回一個grant頁面(此時微博詞雲的進程可能還沒結束);
  5. 用戶點擊到下一個頁面,若是圖片已經生成了,就展現該展現的數據,若是尚未,就給用戶等待的處理。

對,基本流程差很少就這些,比較簡單。下面看下最終的效果。服務器

重要的知識點

  • 在nodejs中調用python腳本,大體思路就是生成一個shell命令,而後nodejs開啓一個子進程,在子進程中執行這個shell便可。

  • h5頁面,長按保存成圖片,這裏的大體思路以下:

咱們將html轉爲canvas,而後取出canvas數據放入一個img標籤裏。將這個img放到頁面最頂層,而且將不透明度設爲0就能夠了。而後在微信、微博等app裏面,長按就能夠保存到手機了,具體實現代碼請看下圖。微信

總結

更多的是一些交互上的細化處理,讓用戶有更好的操做體驗,和視覺上的衝擊。這個應用視覺衝擊卻是沒有多少,哈哈。架構

最後,歡迎你們一塊兒交流。app

項目地址:http://yk.mcust.cn/wb

相關文章
相關標籤/搜索