藉助情感分析教計算機理解情感

情感分析教計算機識別文本中的人類情感。基本原則是在簡單性和準確性之間進行權衡。方法有很多,從使用與情緒相關的單詞列表,到使用詞嵌入、神經網絡和注意機制等深度學習技術。

Johnson Controls首席數據科學家Donagh Horgan將在RebelCon.io 2019大會上介紹爲Twitter構建的一個情感分析器。大會將於6月19日至20日在愛爾蘭科克舉行。根據活動網站介紹:

  • RebelCon連續第三年將科克軟件工程社區聚集在一起,舉行爲期兩天的研討會,討論軟件行業的最新技術、文化和開發實踐;

  • RebelCon是由開發者社區爲社區舉辦的非營利性技術會議。

在他的演講中,Horgan將展示如何迭代地爲Twitter情感分析構建一個AI驅動的管道。

在過去的幾年裏,情感分析被用於越來越多的應用程序:它用於在客戶支持中根據客戶的感知情感傾向對進來的問題進行排序,在市場調研和民意調查中瞭解人們如何思考某些話題,在論壇和在線討論區中檢測辱罵、威脅和怒火。Johnson Controls利用情感分析來發現暴力威脅,以更好地保護客戶及其員工。

據Horgan說,情感分析在生命安全方面有着很大的機會。過去一年裏發生了幾起大規模槍擊事件,犯罪嫌疑人事先在公共或半公共論壇上發佈了警告。他看到了讓機器分析這類內容從而拯救生命的可能;這種分析的成本將非常低。

InfoQ採訪了Donagh Horgan,瞭解我們可以如何使用情感分析來教機器理解情感。

InfoQ:什麼是情感分析?

Donagh Horgan:情感分析是人工智能的一個領域,它致力於教計算機識別文本中的人類情感。情感分析的目的是理解書面文本中的各種情感和強度。

通常,對於人類而言,這是一項簡單的任務。例如,如果我告訴你“這部電影很棒”,你不用太考慮就會知道,我(1)對這部電影的評價很高(2)而且感到興奮(3)。但是,對於機器來說,學習如何做到這一點更加困難,因爲語言並不簡單。例如,我可以說,“This movie is better than that one,”但不是“This movie is gooder than that one”,而那種知識是與生俱來的。

但是,計算機是通過算法工作的,要寫出一套精確的、可維護的規則來理解英語中出現的所有異常情況是非常困難的。更糟糕的是,有許多不同的語言。這是個棘手的問題。

InfoQ:情感分析是如何工作的?

Horgan:有幾種不同的方法,但基本原則是在簡單性和準確性之間進行權衡。一種簡單的方法是列出與你想要跟蹤的每種情感相關的單詞。例如,你可以做一個正面詞彙表(好、很好、優秀)和一個負面詞彙表(不好、極差、糟糕)。然後,你拿起你感興趣的那篇文章,把其中出現的所有正面和負面的單詞都記下來。如果總體上是正面的,那麼你就可以得出結論:文本是正面的;否則,你可以得出結論:它是負面的。

你可以通過給每個單詞設定一個“強度(strength)”,從而使這個過程更加準確。例如,“好”可能是60%正面,但“很棒”聽起來更加正面,你可能會給一個80%的分數。並不像聽起來那麼費力,網上有免費開放的情感詞列表(例如,Python庫pattern),所以你通常不需要自己整理。

但簡單的單詞計數往往無法識別細微的差別,無法掌握更多專用的語言結構。例如,我可能會告訴你,“這部電影非常好”,這可能會生成一箇中性或者負面分數,取決於你如何看待“非常(awfully)”這個詞。雖然藉助單詞計數可以變通地解決解決這個問題,但一般來說,這些方法還不足以徹底地解決該問題。

一個解決方案是使用機器學習算法,讓計算機學習單個單詞或詞對或更長一點的文本與給定情感相關的概率。我不會介紹這裏用到的數學知識,但構建一個合理的樸素貝葉斯模型(或者至少是比單詞計數要好)並不難。

InfoQ:情感分析有多可靠?我們可以相信其分析結果嗎?

Horgan:遺憾的是,目前已知的所有方法都缺少某種形式的上下文。例如,單詞計數過於強調單詞,所以無法理解諸如“重大失敗(great failure)”這樣的短語。使用樸素貝葉斯算法就可以解決這個問題,因爲它可以學會把情緒與詞對、三個詞或任意長度的短語關聯起來,但是,對於特定的雙重否定,如果你沒有足夠的樣本,它就仍可能在“I can’t get no satisfaction”這樣的句子上犯錯。

現在的最新技術是深度學習,它使用詞嵌入、神經網絡和注意機制等技術,學習人類語言的複雜結構。但即使是這些模型也會搞不明白更復雜的語言結構,如諷刺和挖苦。事實上,甚至在人類中間,人們對情感的判斷一致性也很少超過80%。我認爲這裏的教訓是,語言和情感綁定在一起,但這種關係並不總是清晰的,甚至對我們而言也是如此。目前,機器只能做得和我們一樣好。

InfoQ:您在爲Twitter構建情感分析器的過程中學到了什麼?

Horgan:實際上相當多。它比聽起來容易,也比聽起來難。你可以試下現成的方法,它們有效,但如果你想使自己構建的東西非常準確,你得更具體一點。比如,你可以考慮發推特的人的個人資料。唐納德·特朗普就是一個很好的例子,他要麼非常正面,要麼非常負面。將這類信息加入關於單個用戶的算法中可以得到更好的結果。

InfoQ:如果InfoQ的讀者想了解更多關於情感分析的內容,他們該如何入手?

Horgan:關於數據科學,有很多教程(有些更高級)通常是針對只想快速入手的計算機迷。一般來說,Natural Language Processing with Python是一個很好的起點,雖然這不是免費的。有很多有用的Python庫提供了良好的文檔和教程,如nltkspacytextblobvadergensim

InfoQ正在以文章、問答、綜述的形式對RebelCon.io 2019大會進行報道。InfoQ此前發表了Sabine Wojcieszak的文章“CI= 持續改進,DevOps 的動力源泉”。

查看英文原文Teaching Machines to Understand Emotions With Sentiment Analysis

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章