酸民們的冷嘲熱諷:人工智慧能找出網路上的酸文

作者 Jamie Beckett

我向來見人都是過目不忘,不過我很樂意為了你破例。

Groucho Marx美國喜劇演員)

喜劇演員靠著挖苦別人來糊口,這些諷刺的字眼說著表面上的一件事,但其實酸的是骨子裡的另一件事。

電腦能學會看破這種極其細微的表達形式嗎?Pushpak Bhattacharyya 表示他們能做到,他手上的演算法能證明這一點。

印度理工學院巴特納校區主任,同時亦為印度理工學院孟買校區教授的 Bhattacharyya,在過去的幾年裡一直致力於應用 GPU 深度學習技術,找出網路言論裡的諷刺字眼。

「我們發現許多推特上的推文,尤其是在政治方面,都帶有諷刺字眼。」他如此說道,這或許是到2018年的現在,最為輕描淡寫的說法。

研究諷刺並非笑話

Bhattacharyya 表示他有充分的理由去研究網路上的諷刺字眼,並非是玩笑話。政治家、國家元首、企業,甚至想要保護名譽的名人都會監看推特及其它社交媒體,以求瞭解公眾的意見。

Bhattacharyya 說他們使用「情感分析」法無法用於分析諷刺字眼。

他說:「諷刺這件事揭露出人類思維的運作方式。」難怪電腦無法處理。

酸言提示

「sarcasm 」一字源自於希臘語裡的「sarkasmós」,意指「用牙齒撕下肉」,充份表現出它的目的:嘲笑或表示蔑視。

有時候這些酸言酸語帶有一個明確的訊號,像是加上「#sarcasm」標籤的推文,或是有著「as if」或「like you care」的字眼。多個感嘆號、大寫字母、表情符號和 #LOL,都是常用帶有嘲笑意味的符號。

不過更常見的情況是從表面上看不出任何諷刺字眼。Bhattacharyya說那些正面的言論往往隱藏著負面意義。他用「I love being ignored」這句話來形容他的觀點。

他說:「看到『I love being』這幾個字時,你會希望看到它後面接著一些積極的字眼,像是『rewarded』或『appreciated』。但是看到『ignored』這個字時,就會知道這其實是諷刺。」

就像是那還不夠難一樣

在其它情況下得視上下文或是完整情況,才能明白是否在開玩笑。要是有人說「手機電池可以撐兩小時,太棒了」,人工智慧就得明白電池壽命只有兩小時並非什麼好事。

那又點出了另一個問題。Bhattacharyya 說有近五分之一的諷刺推文與數字有關,可是尋常的情緒分析結果卻看不出這一點。

開始認真看待諷刺一事

Bhattacharyya 及其研究團隊(包括他的學生、語言學家及心理學家)更深入發掘時,找到區分語言裡正面與負面文字的關鍵。

Bhattacharya 說:「不協調是諷刺的核心。這是我們的主要貢獻。」

研究團隊使用 cuDNN 加速的 TensorFlow 深度學習架構,加上 GeForce GTX 1080 Ti GPU 來訓練神經網路辨識資料集合裡的不協調性,這些資料包括推特裡的推文、電影評論,再到1990年代電視情境喜劇影集《六人行》(Friends)的對話。

他們的演算法在多項研究裡,可以較現有方法更準確地檢測到諷刺字眼,特別是對於內有數字的推文,他們如今 80% 的準確率較過去提高三倍之多。

Bhattacharya 與他的多名博士生合作研究這項計畫:Aditya Joshi、Mark Carmen、Abhijit Mishra 及 Raksha Sharma。

多項用於檢測諷刺的工具

研究人員以其過去的研究結果為基礎,建立了一個可嵌入瀏覽器來檢測諷刺的引擎「Sarcasm Suite」,內有兩個經過訓練的模組,研究人員可以在任何地方用來找出文字裡的諷刺之意。

這些模組會評估人們以前的推文來檢測諷刺字眼,還有辨識矛盾文字及不協調的情緒表達等文字元素。為了充實其分析過程,研究人員的演算法還加入了文字強度等因素,像是「good」(好)與「excellent」(優)間的差異,並且使用眼動追蹤研究的資料。

這項工具還包括聊天機器人 SarcasmBot 的程式碼,它在回答問題時會自己產生諷刺文字。在它問答的某個樣本裡,用戶問 SarcasmBot:「你覺得 Greg 怎麼樣?」回答:「呃…我喜歡 Greg,我絕對欣賞一點責任也不想背的人。」

所以現在電腦說出來的話,可以像我們其他人一樣酸。這聽起來還不錯。

如需更多資訊,請見以下 Bhattacharya 及其團隊提出的研究報告: