APP下载

基于多粒度的分词消歧和语义增强的情景剧幽默识别

2022-05-31孙岩松林鸿飞

关键词:分词粒度语义

孙岩松, 杨 亮, 林鸿飞

(大连理工大学计算机科学与技术学院, 辽宁大连 116024)

幽默广泛存在于人类各种语种的很多场合中,例如小品相声演出、人类的日常交流、情景剧中人物的对话。幽默是人的一种高级的表达,所以机器也应拥有对于幽默语言的计算分析能力。近年来人工智能以及计算机技术的快速发展,如何利用计算机技术来进行幽默表达的识别以及幽默话语的生成成为了自然语言处理的新兴研究领域——幽默计算[1]。幽默一般以对话作为载体出现,通过不同个体之间的交流,用特定的方式(如调侃、自嘲)进行体现。幽默不仅能够给人们带来欢乐,还能消除摩擦,拉近人与人之间的距离。因此,计算机对幽默这一表达方式进行识别和生成拥有广阔的场景。例如在聊天机器人[1]的人机对话应用场景中,机器能够通过对对话者的话语进行幽默表达的识别,从而进行适当的回应,或者机器主动生成幽默的表达,这样就能使机器更富有人情味,增强用户体验。

1 相关工作

有学者认为幽默的来源是框架转移以及语义矛盾[2],也有学者归纳了幽默的模糊性[3]特点,还有学者提出了谐音的横生枝节[4]对于幽默表达的重要性。自然语言处理中情感分析的研究成果较多,但是幽默作为人类情感的高级表达有着其特殊性,一些常用的情感分析算法并不能体现幽默识别的特点,中文文本的幽默识别目前成果较为单薄。

从情感分析的方法层面来讲,自然语言处理中对于情感计算的发展在深度学习提出之前常用的方法是传统机器学习方法,对于中文文本的情感分析已经有了一些成果[5-7]。

逻辑回归是一种广义的线性模型,主要用于二分类任务,逻辑回归模型的主要思路是利用sigmoid函数将正例的得分映射为一个概率值,然后利用极大似然估计来计算样本的概率,并结合梯度上升法对模型中的参数进行训练。SVM[5,8]算法的思想是寻找到一个超平面来将线性可分的数据集分开,从而实现数据的分类。随机森林[9]是一种基本的回归与分类方法,由多棵CART树构成,它在分类任务中可以看成是许多if-then规则的集合,也可以认为是定义在特征空间与类空间中的条件概率分布。孙建旺等[5]利用情感极性词典的方式来辅助SVM算法进行情感识别;陈平平等[6]采用去除停用词、jieba分词并进行TF-IDF特征提取等方法进行辅助特征工程;徐健锋等[7]采用信息增益的方式来尝试解决机器学习方法多领域泛化性的问题。前人工作多着手于机器学习方法对情感分析问题上的探讨,在特征工程方法上都有着自己独到的见解。

机器学习算法有执行时间短的优势,但其对数据特征过分依赖。例如,前期的数据预处理以及特征工程的步骤需要研究者根据经验去完成,对于一些场景的应用不友好。

深度学习提出后,常用方法包括textCNN[10-12]、LSTM[13-15]。直到2018年基于注意力机制[15-16]、Transformer[17]的BERT预训练模型[18]的提出,使得包括文本分类任务在内的多种自然语言处理任务得到质的提升。之后出现了很多基于BERT改进的成果,例如RoBERTa[19]、ERNIE[20],这说明预训练的问题解决方法对于语言问题的解决有巨大作用。这些方法在中文自然语言处理任务中取得了一些成果,但是,在中文的幽默计算、情感分析任务中仍然存在2个问题:

1)分词歧义。中文不同于英文,中文没有明显的切分,一个句子可以有很多个不同的分词结果。对于词粒度上来说,现有的分词一般不会做出百分之百正确的选择。举一个较为简单的例子,如图1所示,对于“老板鸭怎么卖”这句话,不同的分词结果可能会对计算机的理解产生不同的影响:这一句话到底是在询问老板“鸭”的价格,还是在询问“老板鸭”的价格?由于这种情况的存在,在对文本信息的分析中,造成了在分析话语表达过程中信息的缺失。

图1 分词可能会有多种结果Fig. 1 Multiple results of word segmentation

2)语义歧义。在中文的单词表述中,一个词语能够有不同的意思。如图2所示,关于苹果的语义,常用的有2个解释,在这句话中到底是在描述一种水果?还是在描述智能手机?我们没有上下文并不能得到结论。在进行分析的过程中,计算机如果不理解这个中文单词的语义,则更可能会做出错误的选择决定。

图2 同样的词语会有不同的语义Fig. 2 Different meanings of the same word

为解决以上2个问题,本文提出一种既引入多种分词结果信息,又引入每个单词通用多语义的语言分析模型。首先,为了解决分词歧义问题,通过不同的分词工具得到多粒度的分词信息,用词格图[21]的数据形式来进行信息存储,如图3所示。再通过图神经网络建模的方式进行嵌入表示。然后,为了解决语义歧义问题,使用Hownet[22]进行通用语义的引入,完成对单词意义的信息引入。Hownet的数据组织方式也是图结构,自然地找到了两者联合解决问题的方法。

图3 词格图形式Fig. 3 Lattice fomat

综上,本文提出一种基于分词消歧和语义增强的深度学习算法,下文简称为DISA-SE-GAT。首先,通过几种常见的分词方法来进行多粒度的分割,在输入模块中,从OpenHowNet[23]提供的预训练义位嵌入[23]开始,使用图注意力机制(GAT)获得初始的语义表示。此外,通过使用一种池化方法从字粒度的Transformer编码器中聚合特征来获得初始单词表示。然后,用一种基于图注意力机制(GAT)的信息融合方式,融合单词和语义之间的信息。在每一层中,先更新节点表示,而后更新单词表示。该方法需要与预训练模型进行结合,本文使用的是BERT[18]。本文提出的DISA-SE-GAT可以看作是对BERT预训练模型的扩充,在微调阶段将多粒度信息以及语义信息整合到预先训练好的语言模型中的一种方法。

本文研究可以概括为以下3点:

1)提出一个可以充分包含不同分词信息的中文文本分析方法;

2)提出一种容易将语义信息融入文本分析的方法;

3)构建基于《爱情公寓》的情景剧幽默数据集,在该数据集上验证算法DISA-SE-GAT的有效性和可行性,并在CCL2020的《我爱我家》幽默数据集中验证该方法的泛化能力。

本文构建的《爱情公寓》情景剧幽默数据集已公开(https:∥pan.baidu.com/s/1tHq2R3aP75vNFtQe-bETpQ,提取码a4q9)。

2 图注意力网络

首先介绍一种基于多维图注意力网络的方法,本文的很多模块都用到该方法。

GNN自提出以来被应用于包含文本分类[24]在内的许多任务中。图注意力网络(GAT)是GNN的一种特殊版本,它使用注意力机制来对图结构的数据进行操作。给定一个图结构G=(V,E),V和E是节点xi的集合与边的集合,其中N+(xi)表示包括节点xi在内,与之直接相连的节点。

(1)

(2)

(3)

(4)

(5)

将式(5)简写为

(6)

3 DISA-SE-GAT

3.1 问题定义

中文幽默识别问题可以定义为:给出一个中文句子S={c1,c2,c3,…,cT},ci是句子中第i个字符,句子S中共有T个字符,中文幽默识别任务的目标是预测句子S是否属于一个幽默的表达。

本文采用的方法如图4所示。首先将句子通过3种分词方式进行处理,得到词格图的存储格式,如图3所示。然后,通过情感词典对每一个节点进行查询,得到其不同的语义网络。本文提出的多粒度及通用语义的深度学习模型分为以下几个部分:BERT模块、输入模块、表示融合更新模块、分类模块。BERT模块实现对每个结点进行嵌入;输入模块完成对语义信息及多粒度信息的初步嵌入表示;语义融合模块实现语义信息及多粒度信息表示的迭代更新,以此来融合多粒度信息及从词典中提取的语义信息,从而提高句子的表示能力;分类模块通过神经网络对已有句子表示进行有监督的学习,完成句子的幽默识别。

图4 DISA-SE-GAT算法模型Fig. 4 DISA-SE-GAT model

3.2 BERT及上下文嵌入

BERT[13]作为自然语言处理领域近几年最为成功的成果,在数项任务中刷新了记录,说明BERT在词表示阶段效果出众。在该模型中,BERT模块用于提取已经得到的多粒度信息及语义信息的初步字粒度表示,然后通过注意力机制进行一步池化来完成词粒度初步表示的提取。首先,对原始文本信息做标记,得到S={[CLS],c1,c2,c3,…,cT,[SEP]};然后,把经过处理的文本信息放入BERT预训练模型,得到整句话中每一个字的表示为{c[CLS],c1,c2,c3,…,cT,c[SEP]};之后,假设每个节点中单词的表示为wi,wi={co,…,cp},则先通过前馈神经网络再通过sigmoid归一化求得注意力系数,进而对节点中包含的字进行加权求和,以得到每一个词粒度的词表示,公式为:

uk=MD-softmax(FFN(ck));

(7)

(8)

可以把这种操作简写为

wi=att-pooling({ck|o≤k≤p})。

(9)

3.3 语义输入模块

通用语义信息的引入:根据BERT预训练模型的特点,经过BERT的词粒度表示只含有上下文信息。中文的表述中,每一个词粒度在不同句子不同语境中会包含不同的语义信息,本文借助外部词典显式地引入语义信息来进行信息的补充。

(10)

(11)

3.4 融合更新模块

该模块主要任务是将前一步得到的多粒度表示和通过外部知识库得到的通用语义表示进行一系列的融合迭代,方法如下:

第1步:为了聚合上文与下文的信息,进行以下2种操作,

(12)

在每一次更新过程中,使用GRU进行语义信息的更新,

(13)

第2步:在多粒度的更新过程中,采用以下方式进行上下文表示信息的更新,

(14)

与上一步类似,也采用GRU进行语义信息的更新,

(15)

3.5 分类模块

对于每个句子,已知每个字符的增强上下文表示以及语义表示,使用注意力池化来进行最终句子表示的计算,

y=att-pooling({hi|wi∈W(ct)})。

(16)

用得到的句子表示以及三层前馈神经网络来完成最后的分类工作,

p=FFN(cCLS,y)。

(17)

本文用的损失函数是交叉熵损失函数,

(18)

4 实验及分析

4.1 数据集

本文的工作致力于挖掘互联网上有关对话场景的幽默表达方式。本文《爱情公寓》数据集来源于电视剧《爱情公寓》第二季全部20集的剧本。《爱情公寓》作为21世纪广受青少年喜爱的青春情景喜剧,主要描写了住在爱情公寓中的一群租户之间发生的乐趣横生的日常故事。其中一些幽默形式代表了21世纪在青少年中广为流传的幽默表达方式。

《爱情公寓》数据集尽力还原了剧本中的一切元素,例如:场景、旁白、角色以及对白,并对其中的幽默表达进行标注,标注分为幽默及非幽默。该数据集的标注方法是根据该情景喜剧视频作品中嵌入的罐头笑声,即角色台词后紧接着罐头笑声就将这句台词视为幽默表达。该数据集中数据总数为9 528条,其中幽默表达总数为2 814条。

《我爱我家》幽默数据集是CCL2020的评测数据集,其来源于中国国际文化艺术中心在20世纪90年代出品的一部家庭情景喜剧《我爱我家》。该剧描述了20世纪90年代北京六口之家以及他们邻里、亲朋好友的色彩斑斓的生活画卷,它不仅是20世纪90年代社会的缩影,也是当时幽默表达方式的缩影。该数据集的每一条语句文本数据包括一个幽默标签(幽默或非幽默),一个情绪(sentiment)标签(积极、消极和中性),一个情感(emotion)标签(包括愤怒、快乐、难过、中性、惊讶、害怕和厌恶),另外,还有说话人、集数以及对话(dialogue)的划分。该数据集共有819段对话及19 103个语句,数据量庞大,可以利用的信息量较足。

4.2 实验平台

本实验的数据处理、特征工程、训练以及推理测试阶段使用Nvida RTX2080 GPU完成;操作系统为Ubuntu 20.04.2;训练所采用的深度学习框架是mxnet1.8;CUDA版本为10.2。

4.3 实验结果

除了本文提出的算法模型以外,还分别在2个数据集中进行以下几种算法的实验:1)逻辑回归;2)SVM支持向量机;3)随机森林;4)textCNN;5)BERT。实验结果如表1、表2所示。

表1 《爱情公寓》数据集实验结果Tab. 1 Result in Ipartment %

表2 《我爱我家》数据集实验结果Tab. 2 Result in I love my family %

由表1、表2可知,在逻辑回归、支持向量机、随机森林等传统机器学习模型中,随机森林的准确率最高,但F1指数不够理想,主要是随机森林在Recall值上表现不好。这是因为数据集中出现了数据不平衡的问题,这种情况在各种算法中都有体现,而随机森林算法在该数据集中对于这种问题更为敏感。

深度学习算法CNN比传统机器学习算法的实验结果略有提升,使用了BERT之后,则有了很大提升,这说明BERT确实是一个划时代的成果。本文算法DISA-SE-GAT的F1值最大,说明本文算法的提升更为全面且稳定,能够在一定程度上解决上述的分词歧义。

对2个数据集进行横向比较,数据量较多的《我爱我家》数据集相对于数据量较少的《爱情公寓》数据集有着些微优势,说明数据规模对本文提出的算法有一定影响。

4.4 消融实验

本文利用一系列的消融实验来证明引入的多种分词方法以及单词的多种语义信息对模型效果有提升作用。首先,仅使用单一分词工具进行分词,所得到的数据输入粒度就不包含除这一分词工具之外的其他粒度。本文进行了3次不同分词工具的消融实验,以《爱情公寓》数据集为例,实验结果如表3所示。由表3可知,本文方法中引入多种分词多粒度的方式能够对结果产生一些积极影响,这说明引入多个分词信息能够一定程度上解决分词消歧的问题,从而对幽默识别起到一定帮助作用。

表3 消融实验结果Tab. 3 Result of ablation %

其次,进行语义信息的消融。在融合更新模块中只使用多维自注意力进行上下文的更新嵌入表示,即不引入语义信息来进行文本的表示融合更新,结果见表3最后一行。根据结果可知,本文提出的模型有助于利用外部知识中的通用语义信息来帮助识别幽默表达,实现语义增强的效果。

4.5 案例研究

下面讨论一个典型的分词歧义的例子,这是从数据测试集中挑选出来的一个例子的部分节选。由表4可知,第2种分词结果是无法充分挖掘这种非成语四字词语的意义的。在遇到这种情况时,如果只采用一种分词工具进行分析,会给后续分析算法更多的负担以及干扰,是不科学的。类似这样的非成语四字词语还有很多,本文算法能够在一定程度上解决这个问题。

表4 典型案例结果Tab. 4 Case study

语义歧义方面,《爱情公寓》数据集中有一个在语义消融实验中预测错误的例子:“我有一套新的更有效更直接,就是数水饺,水饺=睡觉,这才是中国人的心里暗示”,其中“水饺”在情感词典中的意义与“睡觉”相差过大,所造成的反差被模型捕捉到了,从而帮助了幽默识别。

5 结语

本文找到了一种可以融入多粒度信息的方式,以此来进一步挖掘中文句子中的更多信息,同时,为了充分挖掘每一个词的语义,本文尝试使用外部知识库的方法对上下文信息进行语义补充。本文方法在2个中文幽默情景喜剧数据集中进行验证,并进行了消融实验。实验结果表明,本文提出的方法能够将两方面的信息进行融合,从而达到比对比模型更好的结果。

本文不仅提出了一种解决中文文本分析中2个常见问题的方法,而且构建了《爱情公寓》幽默数据集。在数据集构建中考虑到了很多其他信息,例如角色信息、另一维度的情感信息、场景信息以及对话中的情感发展连续性的信息。本文使用的2个数据集可以继续从多个角度去充分挖掘对幽默识别有用的信息。例如,研究人员可以从多任务的角度切入,或者从对话情感连续性的角度进行建模。我们今后的研究会继续利用这2个数据集,用更完善的方式来建模,并扩充数据规模,或引入不同模态的多模态角度去完善数据集,期望达成更好的实验结果。

猜你喜欢

分词粒度语义
粉末粒度对纯Re坯显微组织与力学性能的影响
分词在英语教学中的妙用
语言与语义
结巴分词在词云中的应用
结巴分词在词云中的应用
批评话语分析中态度意向的邻近化语义构建
“社会”一词的语义流动与新陈代谢
双粒度混合烧结矿颗粒填充床压降实验
“吃+NP”的语义生成机制研究
泉州湾表层沉积物粒度特征分析