何 苑,谭红叶,陈浩然
(1.长治学院计算机系,山西 长治 046011;2. 山西大学计算机与信息技术学院,山西 太原 030006)
幽默在自然语言理解领域一直是一项充满趣味但又棘手的研究。近几年,计算机所扮演的角色不断地转换,从只能执行指定任务的自动机,慢慢转变为可以与人动态交互、理解用户的智能机器。幽默识别是指给定一段文本,判断该文本在一定程度上是否产生幽默的效果[1]。幽默识别在自然语言领域中是一项困难的任务。第一,对于幽默我们很难得到一个统一的定义。第二,幽默效果的产生往往需要依赖一些外部知识。例如,“海鸥飞到巴黎都不叫了,因为巴黎鸥来哑。”。如果我们不知道谐音梗的话,我们就会认为没有产生幽默。
现在大多数研究将幽默识别问题看做是一个二分类问题,通过一系列语言上的特征来实现幽默识别[2]。除了语言上的特征,其他方面的研究包括口语的声韵律以及多模态特征等。与幽默识别相比,幽默生成的大多数研究工作都是基于幽默理论去解释产生幽默的因素,然后运用模板去生成笑话[3]。借鉴关于幽默锚点的工作[4],我们基于中文短文本的特点,收集了大量的正样例和负样例来训练分类器,并挑选出一部分作为测试集,检验分类模型的效果。我们基于两种特征构建分类模型:1)基于幽默锚点的结构特征,2)基于文本内容特征。
为了能够实现幽默识别,我们构建了包含幽默和非幽默样例的正负样例数据集,训练幽默识别模型和检测模型的识别效果。
我们借鉴了Mihalcea提出的策略[4],基于Web的自举算法在中关村论坛上进行幽默文本收集,并过滤掉质量不高的文本,收集到17646条幽默文本,样例如表1所示。
表1 幽默文本样例
对于幽默识别任务的负样例数据,我们从以下资源中抽取样例:1)人民日报。2)谚语格言。3)BCC常用词例句。选择满足以下特点的样例来作为负样例:1)词全部包含在正样例词典中。2)长度与正样例的长度接近。表2提供了负样例数据的详细统计信息。
表2 负样例数据统计信息
我们借鉴Yang提出的策略[3],从以下4个方面探索幽默背后潜在的语义结构。
3.1.1 不一致性
幽默的产生往往依赖于一些不协调、反对或者矛盾的组合,即一个词与其他词间无法建立直接的关联。利用Word2Vec将句子中的词向量化,通过计算词向量之间的距离来估计词对之间的语义距离。设置两种特征:1) 语义断开:句子中词对的语义距离最大。2) 语义重复:句子中词对的语义距离最小。
3.1.2 模糊性
模糊性是指一个词在特定的语境下产生了多个意思,在许多幽默文本中它是一项极其重要的特征。设置语义组合作为识别特征。首先给句子中的词标注词性,选择词性为名词,动词,形容词,副词的词语,最后得到这样的词语集合{w1,w2...wK},然后根据以下公式计算句子的语义组合。
上式中nwi表示词语Wi具有的词义总数。
3.1.3 人际效应
幽默文本中的人际关系效应是幽默识别的重要部分,句子中包含一些表达强烈情感的词,往往会产生幽默效果。可以用情感字典对句中的词语表示的情感倾向进行分析,判断其倾向性,进而界定句子的主观性,来识别文本的幽默现象。为此我们设置了两种特征:1) 正向(负向)极性:句子中所有表达正向(负向)情感的词的总数。2) 强(弱)主观性:句子中所有可以表达强(弱)主观性的词的总数。
3.1.4 发音类型
许多幽默的文字都会伴随着声音播放,造成不协调的声音或文字。捕捉这种因素导致的幽默,给每个词语标注上拼音,同时设置了一种特征:词语谐音。如果一句话中两个不同的词语有相似的发音,那么我们就认为产生了谐音效果。
3.1.5 基于幽默结构特征的模型框架
基于上述对幽默背后4种结构特征的分析,可以构建如图1所示的基于幽默结构特征的模型框架,并采用朴素贝叶斯分类算法进行分类。
图1 基于幽默结构特征的模型框架
除了考虑结构特征,我们也考虑了内容特征。当考虑幽默文本的内容特征时,我们可以将幽默识别任务看成一个文本分类问题。我们选择了朴素贝叶斯模型进行分类。朴素贝叶斯算法是一种常用的文本分类算法,它是一种有监督的学习方法,根据训练数据学习到分类函数f,接着在测试数据上运用分类函数f,则可得到测试数据的类别信息[5]。
通过多次实验,对幽默识别任务相关的各个方面:分类效果,学习速率,负数据类型等,对分类方法的影响进行了分析。所有测试均使用了交叉验证,以确保估计的准确性。
在第一组实验中,我们评估了采用朴素贝叶斯算法基于幽默文本结构特征模型的分类效果:不一致性,模糊性,人际效应和发音类型。这些特征是启发式的,并且该模型所需的唯一参数是阈值。这些阈值是通过训练大量的幽默/非幽默数据集自动学习得到的。表3显示了在测试集上模型取得的结果。
表3 基于幽默结构特征模型的分类效果
由于这些特征反映了文本的结构,我们可以得出新闻的结构风格相对于幽默文本来说最为不同,而与谚语格言的结构风格最为相似。
第二组实验是对基于幽默文本内容特征模型分类效果的评估。表4显示了使用朴素贝叶斯文本分类器在三组不同的样例数据集上获得的结果。学习曲线绘制在图2中。
表4 基于幽默文本内容特征的分类效果
图2 学习曲线
新闻语料的内容似乎与幽默文本差异最大,而BCC语料中的句子与幽默文本最相似。这表明,笑话内容往往与普通文本非常相似,但是使用文本分类技术仍然可以进行粗略的区分。基于内容的特征可以将谚语格言和幽默文本区分开来,如表3所示,尽管他们的文体结构相似,但谚语和幽默文本具有不同的主题。
针对幽默识别的任务,在借鉴前人工作的基础上,基于幽默背后的四种语义结构设计了结构特征模型的幽默识别方法。同时我们也利用文本的内容特征采用朴素贝叶斯算法对幽默进行了识别,发掘出了幽默文本一些特性。在较大的数据集上获得的实验结果表明,该方法可以有效地用于区分幽默和非幽默文本。学习过程结束时曲线的扁平形状表明,将来的工作应该集中于发掘更复杂且识别度更高的幽默特征,进一步挖掘和理解这四种结构。