就是這樣,程式碼寫好了,就差個女朋友了。
最後的效果就是檢測某一微博博主新發的微博,如果判斷為消極情緒就發出警告(手機通知、郵件通知、自動發一條上圖那樣的微博之類的)。
專案地址#
https://github.com/DIYgod/Weibo2RSS 以 RSS 形式輸出消極情緒的微博
https://github.com/DIYgod/Text2Emotion 分析一句話的情緒值
使用方法#
消極情緒微博 RSS 配合 IFTTT 使用,具體設置如下圖,條件是 RSS 出現新內容,行為是發一條微博通知(也可以改成手機通知或者郵件通知等)。
開發過程#
下面是我的開發過程。
一、分詞#
這東西自己做不來,所以只好找現成的解決方案,找到了下面幾個:
除了騰訊文智其他都是免費或者開源的,簡單比較之後選擇了錘子 Big Bang 也在用的訊飛。
二、情緒分析#
這個關鍵在於詞典,也是找現成的:
大連理工的本體庫標註了超過兩萬詞語,包括這些詞語詞性種類、情感類別、情感強度及極性等信息,像下面這樣:
看起來很不錯,就選擇了這個。
詞典下載下來是一個 excel 表格,把它先另存為成 csv 格式,然後就可以導入到 mongodb 數據庫裡了。
mongoimport -d emotion -c emo --type csv --headerline --file emotion.csv
三、情緒值計算#
把要分析的話進行分詞處理,再把每個詞語的情緒值進行累加,就可以得出一條微博的情緒值。
這裡其實還有很多算法工作可以做,但簡單起見,我只是進行了累加。
然後寫完發現效果很差,原因是詞典內容太少,很多詞語都沒有,所以很多句子根本判斷不出來。
最後廢棄了上面的所有東西,直接使用騰訊文智的收費服務。。。
四、應用到微博#
抓取微博內容的原理很簡單,新浪微博的微博秀是不需要登錄就可以訪問的,直接使用 Node.js 解析頁面就可以拿到微博內容。
然後對微博內容進行情緒值計算,把消極情緒的微博輸出成 RSS。
五、監控#
輸出成 RSS,監控也容易了,其中 IFTTT 效果最佳,檢測到 RSS 有新內容時,可以觸發手機通知、郵件通知、發一條微博等行為。
以上,其實最大的問題還是:我差個女朋友。