我被要求编写一个算法来检测讽刺,但我在逻辑中遇到了一个缺陷(或看起来像一个缺陷)。
例如,如果一个人说
A:我喜欢贾斯汀·比伯。你喜欢他吗?
B:是的。当然。我绝对爱他。
现在这可能被认为是讽刺与否,唯一知道的方法似乎是知道 B 是否认真。
(我不应该深入。我们得到了一堆短语,只是被告知如果这些在句子中,那么它是讽刺的,但我感兴趣?)
有没有办法解决这个问题?还是计算机在讽刺方面绝对卡住了?
(我想这取决于扬声器的语气,但我的输入是文本)
看起来有研究试图这样做,但他们还没有提出一个运行良好的算法。
来自González-Ibáñez, R. 等人。“识别 Twitter 中的讽刺:仔细观察”
讽刺和反讽是语言学、心理学和认知科学中经过充分研究的现象[...]。但是在文本挖掘文献中,讽刺的自动检测被认为是一个难题[...],并且仅在少数研究中得到解决。[...] 与我们最密切相关的工作是 Davidov 等人的工作。(2010),其目标是识别 Twitter 和亚马逊产品评论中的讽刺和非讽刺话语。在本文中,我们考虑了区分讽刺推文和非讽刺推文的难度更大的问题
他们得出结论:
也许不足为奇的是,无论是人类评委还是机器学习技术都表现不佳。[...] 我们的结果表明,仅词汇特征不足以识别讽刺,语用和上下文特征值得进一步研究
这是另一篇最近的相关论文:
Reyes, A. “从幽默识别到反讽检测:社交媒体的比喻语言”
...句子是由用户编写的。这是2个人之间的模拟对话。
用一个短语来检测讽刺几乎是不可能的,但在上下文中它可能更可行。让我们假设您可以解析句子并解释其字面意思(这不是一项简单的任务,但该问题至少在一定程度上得到了解决)。
你现在有来自:
要利用 #1,您可以相互交叉引用所有短语。它们中的任何一个直接矛盾吗?
例子:
演讲者 1:我爱贾斯汀比伯。你?
扬声器2:完全!我爱他。
演讲者1:你最喜欢他的什么?
演讲者2:他的音乐很棒!
演讲者1:真的吗?你最喜欢的歌是什么?
演讲者2:来吧,你知道我讨厌他的音乐。
我们知道有两个矛盾的短语,“我爱他!” 和“我讨厌他的音乐”。至少有可能发生了讽刺。
方法#2 可能更有效(或无用......也许讽刺是众所周知的,但在两方之间没有说出来)。
例子:
演讲者 1:贾斯汀比伯在城里。我真要去见他。
扬声器 2:哈。
另一个例子:
演讲者 1:我爱贾斯汀比伯。你?
演讲者 2:我的床头上有一张他的巨幅海报。
演讲者 1:是的。
更详细地说,您可以应用启发式方法来确定对话在特定短语后偏离的剧烈程度。
演讲者1:我非常喜欢贾斯汀比伯!!!你是?
演讲者 1 发表了强调声明
演讲者 2:是的,当然。
讽刺。我们不知道,但谈话中的另一个人知道。
Speaker 1 现在走什么方向?他们改变话题了吗?根据谈话的激烈程度,它可能表明他们对感知反应的反应。
综上所述,其中大部分都需要复杂的处理,我预计最多只能有非常低的准确率。但这是一个有趣的问题。
讽刺真的是说话的语气,文字没有声调,这句话的真实性也可以确定它的讽刺......
如果输入由用户输入,则有两种方法可以做到。
一种是基于他们使用互联网术语编写的内容。
例如:
用户可能键入:
"Yeah. Sure. I absolutely love him. /sarcasm"
您可以查找诸如此类的/sarcasm
[/sarcasm]
关键字
或者,您可以使用统计赔率:
"Yeah, and I'm the president of USA"
....它实际上正确的统计几率是如此之低,以至于可以被标记为讽刺。
那么,从文化或语言的角度来看,讽刺究竟是什么?如果你想解决这个复杂的问题,你必须澄清这一点。这个问题非常复杂,因为要求在某些人类语言中使用人工智能。你可以看看ALICE以获得一些灵感。