1
本文作者: AI研習社 | 2017-02-12 13:22 |
雷鋒網編者按:如何通過女友最近發(fā)布的微博內容檢測她的情緒狀況?丁香園前端工程師DIYgod 給出了自己的解決方案。本文由原作者授權雷鋒網發(fā)布,轉載請聯(lián)系本人。原文地址
(微博檢測最終完成效果,雷鋒網注)
就是這樣,代碼寫好了,就差個女朋友了。
最后的效果就是檢測某一微博博主新發(fā)的微博,如果判斷為消極情緒就發(fā)出警告(手機通知、郵件通知、自動發(fā)一條上圖那樣的微博之類的)。
項目地址:
https://github.com/DIYgod/Weibo2RSS 以 RSS 形式輸出消極情緒的微博
https://github.com/DIYgod/Text2Emotion 分析一句話的情緒值
使用方法:
消極情緒微博 RSS 配合 IFTTT 使用,具體設置如下圖,條件是 RSS 出現(xiàn)新內容,行為是發(fā)一條微博通知(也可以改成手機通知或者郵件通知等)。
下面是我的開發(fā)過程。
一、分詞
這東西自己做不來,所以只好找現(xiàn)成的解決方案,找到了下面幾個:
結巴中文分詞
哈工大語言技術平臺云
新浪云中文分詞
訊飛語言云
騰訊文智
除了騰訊文智其他都是免費或者開源的,簡單比較之后選擇了錘子 Big Bang 也在用的訊飛。
二、情緒分析
這個關鍵在于詞典,也是找現(xiàn)成的:
中文情感極性詞典 NTUSD
大連理工情感詞匯本體庫
大連理工的本體庫標注了超過兩萬詞語,包括這些詞語詞性種類、情感類別、情感強度及極性等信息,像下面這樣:
看起來很不錯,就選擇了這個。
詞典下載下來是一個 excel 表格,把它先另存為成 csv 格式,然后就可以導入到 mongodb 數(shù)據庫里了。
三、情緒值計算
把要分析的話進行分詞處理,再把每個詞語的情緒值進行累加,就可以得出一條微博的情緒值。
這里其實還有很多算法工作可以做,但簡單起見,我只是進行了累加。
然后寫完發(fā)現(xiàn)效果很差,原因是詞典內容太少,很多詞語都沒有,所以很多句子根本判斷不出來。
最后廢棄了上面的所有東西,直接使用騰訊文智的收費服務。。。
四、應用到微博
抓取微博內容的原理很簡單,新浪微博的微博秀是不需要登錄就可以訪問的,直接使用 Node.js 解析頁面就可以拿到微博內容。
然后對微博內容進行情緒值計算,把消極情緒的微博輸出成 RSS。
五、監(jiān)控
輸出成 RSS,監(jiān)控也容易了,其中 IFTTT 效果最佳,檢測到 RSS 有新內容時,可以觸發(fā)手機通知、郵件通知、發(fā)一條微博等行為。
以上,其實最大的問題還是:我差個女朋友。
雷峰網版權文章,未經授權禁止轉載。詳情見轉載須知。