代碼搬運工。

Insights: 基於 Matters 「上千万文本數據」的分析之一:情感篇

好吧,我承認標題是用來唬人的(本文末尾有解釋)。

在 Matters 偶爾要寫寫代碼,搬搬磚。前些天,正優化搜索引擎時產生了一個疑問:

每天要索引的這些文字,它們是否也會像人類一樣表達情緒呢?它們到底開不開心?它們所表達的情緒是正面的,還是負面的?

抱着這樣的獵奇心理,從網上找了幾個情感詞典來爲 Matters 每個標籤的文章的用詞打分。大概思路是遇到代表正面、積極情緒的詞就 +1 分;反之,負面、消極的就 -1 分。之後,我們將每篇文章的得分加總,再除以相關詞語的個數,就是這些文章的「情感得分」。

當然,因爲這個方法太過簡單,所以即便得分爲負值,也並不代表相應文章所體現的情緒就一定是消極的。但是,如果我們將所有文章放在一起來對比,就會知道,總體相對來說,哪些文章更「消極」,那些文章更「開心」。例如下圖,選取文章「情感得分」平均下來最低/最高的標籤各20 個,可以發現「大屠杀 耶德瓦...」的文章,總體上顯然比「TechMoon」下的文章更消極,其他標籤同理,紅色表示相對更消極,藍色則更積極:

按標籤劃劃分的文章「情感得分」的箱線圖

上圖中,雖然可以看到標籤下各自文章的情感分布,但是並不能體現文章數量對「情感得分」的整體影響。

如果我們把文章數量也考慮進來,可以看下圖,"score" 是各標籤文章得分加總,"article_count" 是各標籤文章數量,"avg_score" 是 "score ÷ article_count",這樣處理之後,Matters 文章們的「小情緒」也就一目瞭然了,具體怎樣,大家可以自行觀察(作者太懶,不想繼續寫了,哼!):

標籤「情感得分」對比圖

想得到文章的詞彙數據,就先要將文章切分成一個一個的詞語,每個詞要有對應的標識數據,記錄這個詞在哪篇文章的哪一句話里出現過。在寫這篇帖子時,經過詞彙切分,得到的數據總共有 10,664,507 行,也就是所謂的「上千万文本數據」。

Matters227Matters工程日誌3數據7
37
37

回應11

只看衍生作品

評論區域升級啦!

現在「回應」包含了評論和關聯本作品的衍生創作,你可以選擇「只看衍生作品」。

  • 想知道所用的方法和工具?中文情感分析還蠻多陷阱的

    • 是的。文中的方法是簡單的基於詞典的情感分析。不過有用 Boson API 對多個詞庫進行評估和重新整理。

  • 謝謝你與 Matters 社區分享你的創作。這篇文章已被選入本週 Matters 通訊,推薦給所有 Matters 用戶。為了鼓勵優質作者的創作,每篇選入通訊的文章,都會由站方發送 5MAT,這 5MAT 已經到達你的帳戶,期待你的下一篇作品!

  • 哈哈哈沒想到休業日記整體情感是積極的,好好玩~~

    • 哈哈,“解決“,“思考”,“經營“,“追求”,“有趣”,“創造” 都是積極詞彙

  • “诗”和“香港文学”有这么大的方差也是很有意思~

    • 我理解是这两个标签涵盖的主题不会像其他标签那么集中,然后是带有情感的用词也比较丰富的原因,会出现很多“阳光”,“快乐”,“明亮”,“破碎”,“抛弃”,“孤独”,“沉默”一类的词

  • 发现在avg score中,正面情感得分最高的是“合作社”、“合作化运动”,而负面得分前三中,有一个是“马克思主义者”XDD

    • 这几个标签的作者感觉比较集中,另外“马克思主义者”标签下并没有讨论马克思主义,更多似乎是和维权有关

  • 有可能分析一下個別作者嗎?好像很好玩

    • 暫時還沒有什麼思路的。可能沒有辦法針對個別作者做分析,但是有可能做整體性的分析;另外,也要看看是否有什麼可以分享的探索結果。