我对面孔可是过目不忘,但是对于你嘛,我会破例一次。
— 格劳乔·马克斯
喜剧演员以讽刺为乐 — 他们的讽刺、嘲讽性语言表面上说一件事,实际上却另有深意。
计算机能够学会检测这种微妙的表达形式吗?Pushpak Bhattacharyya 说,可以;他在借用算法来证明这一点。
在过去几年里,印度理工学院 (IIT) 巴特纳 (Patna) 分校院长兼孟买分校教授 Bhattacharyya 一直致力于使用由 GPU 助力的深度学习来发现网络上的讽刺言论。
他说:“我们发现许多推文,特别是在政治方面,都有讽刺性”,这可能是 2018 年目前为止最保守的表述。
讽刺研究不是玩笑
当 Bhattacharyya 表示研究讽刺的理由很充分时,他不是在开玩笑。政客、国家元首、企业以及那些关心维护自身声誉的名人,都会关注 Twitter 和其他社交媒体,以期评估公众意见。
但 Bhattacharyya 说,通常使用的所谓“情感分析”方法在遇到讽刺性语言时差强人意。
他说:“讽刺揭示了人类思维的运作方式。”所以计算机难以理解也不足为怪。
蛇鲨警报
“讽刺”一词来源于希腊语“sarkasmós”,意思是“用牙齿撕扯皮肉”,这形象地表达了它的目的:嘲笑或表示蔑视。
蛇鲨有时会发出一个清晰的信号 — 一条推文的标记为“#sarcasm”或者类似“好像”或“您关心”这样的短语。嘲笑的其他常用标记包括感叹号连用、字母大写、表情符号和 #LOL 等。
但更多时候,讽刺在表面上并不明显。Bhattacharyya 表示,正面的言论往往隐藏着负面的意义。他列举“我喜欢被忽视”来阐述他的观点。
他说:“当你看到’我喜欢’这个短语时,你一般看到它后面跟着一些积极的词汇,比如‘奖励’或‘赞赏’。”“然后你看到‘忽视’,你就理解了这句话其实是讽刺。”
好像难度还不够
很多时候,知道一句话何时是玩笑,取决于上下文或你对世界的认识。如果有人说:“手机电池续航两个小时。真棒。”AI 必须明白,两个小时的续航并不是一件好事。
这指向了另一个问题。Bhattacharyya 说,近五分之一的讽刺性推文与数字有关,但通常的情绪分析并没有发现这一点。
认真对待讽刺
Bhattacharyya 及其团队(包括他的学生、几位语言学家和心理学家)经过深入研究找到了区分褒贬的关键。
Bhattacharya 说:“不协调是讽刺的核心。”“这是我们的主要成果。”
研究人员借助由 cuDNN 加速的 TensorFlow 深度学习框架和 NVIDIA GeForce GTX 1080 Ti GPU 训练神经网络,以识别数据集中不协调的部分,包括从推文到电影评论,再到 20 世纪 90 年代电视情景喜剧《老友记》对白等的语言。
在众多研究中,他们的算法比现有方法更准确地检测出了讽刺。对于包含数字的推文尤其如此;他们的 80% 准确率比以前的方法高出两倍不止。
与 Bhattacharya 共同完成此项研究的是他几位博士生 — Aditya Joshi、Mark Carmen、Abhijit Mishra 和 Raksha Sharma。
讽刺套件
研究人员在早期工作的基础上创建了一个基于浏览器的引擎来检测讽刺。讽刺套件由两个经过训练的模块组成,研究人员可以随时随地进行蛇鲨测定。
这些模块通过评估人们的历史推文,同时识别矛盾的文字和不协调的情绪表达等文本元素来检测讽刺。为了扩展分析,研究人员还在算法中融合词汇强度等因素,例如“好”与“优”之间的差异,并利用眼球追踪研究的数据。
该工具还包括 SarcasmBot 代码,这是一个可以针对问题自动生成讽刺回答的聊天机器人。在其一个示例输出中,当用户问 SarcasmBot “你觉得 Greg 怎么样?”时,回答是:“呃……我喜欢 Greg。我就喜欢不可靠的人!”
所以现在计算机可以像我们其他人一样讽刺了。这听起来很棒。
如需了解详细信息,请参阅 Bhattacharya 及其团队的以下论文: