中文笑话语料库的构建与应用

2018-08-17 08:38徐琳宏樊小超刁宇峰林鸿飞
中文信息学报 2018年7期
关键词:语料笑话语料库

任 璐,杨 亮,徐琳宏,樊小超,刁宇峰,林鸿飞

(1. 大连理工大学 信息检索研究室,辽宁 大连116023;2. 大连外国语大学 软件学院,辽宁 大连 116044)

1 概述

1.1 笑话的概念以及分类

笑话是我们日常生活中不可或缺的重要组成部分。古人云,“古今世界一大笑府”“不笑不话不成世界”[1]。从古至今,笑话无处不在,是最通俗易懂贴近人们日常生活的文学形式之一。笑话可以使人身心愉悦,也可以拉近人与人之间的距离。作为生活中必不可少的调味剂,笑话可以减轻我们的压力,消除我们的紧张,有助于我们的工作、学习以及生活。

“笑话”,在现代汉语词典里的解释是“能引人发笑的谈话或故事”。笑话是一种文体名,通常篇幅短小,情节简单而巧妙,往往能够出人意料,给人带来欢乐,取得笑的艺术效果。笑话作为第二批国家级非物质文化遗产,通常通过口头传播,这种传播方式造成了笑话的多样性。中国笑话不同于西方的幽默,但中国笑话自古就包含幽默成分,本文所要研究的笑话是狭义的幽默。

笑话作为通俗易懂的文学形式,不少学者对其进行分类。现在国内则倾向于按不同标准进行分类,如谭达人从幽默技法把幽默分为四个大类共51个小类;任绍伟从构成原理把笑话分为74类,是迄今最为详细、也最为明晰的一种分类方法。更多幽默笑话集和网络笑话则基本沿用了中国传统上按主题或内容分类的方式,如海笑把幽默分为生活、机智、家庭、校园、爱情、军事、动物、交通、医疗、国际、商业、职业、愚人、讽刺14个大类[2]。综上所述,目前笑话并没有明确的分类标准,为了研究的需要,本文按照主题分类,将笑话分为校园笑话、职场笑话、家庭笑话、名人笑话以及古代笑话;根据笑话产生的原因分类,将笑话分为谐音笑话、谐义笑话、类比笑话、委婉笑话、反语笑话、讽刺笑话、夸张笑话以及反转笑话。

1.2 笑话的相关理论基础

西方幽默三大理论为优越论、释放论以及乖讹论,其中,目前影响最广、最受认可的是乖讹论。乖讹论是从人们的心理认知角度来分析幽默,认为幽默产生的原因是由于某种不和谐产生的。现代学者很多都是在乖讹论的基础上提出了新的幽默理论。

第一个语言学意义上的幽默理论,即幽默的语义脚本理论(semantic script theory of humor,SSTH),就是Raskin于1985年在乖讹论的基础上提出的[3]。SSTH对人工智能中的幽默计算起到了指导作用。SSTH提出的最终目标是成为确定和证明文本为幽默的充要条件。语义脚本理论提出将笑话的结构定义分为主体(set-up)与妙语(punch line)两部分。其中,主体由两个或两个以上的解释(脚本)构成,只有一个解释被呈现出来,而第二个不明显解释的妙语以令人意外的方式触发产生幽默效果。

基于幽默语义脚本理论,Attardo将笑话表示成五层模式: 表层、语言层、目标+情景层、模板层以及基本层,这五层的顺序是依据语言学中句子的形成从意义到声音的理论依次排序的[2]。本文定义的笑话框架就是基于这五层定义的。所谓表层就是指最表层的信息,比如标点、字词句等。语言层在语料库对应的是笑话产生的原因,即对应的修辞手法。目标+情景层在语料库中以人物以及场景的形式体现。基本层就是笑话包含的语义信息以及逻辑机制,跟外界知识相关联的,也是最难攻克的难点之一。

1991年,Attardo和Raskin在SSTH的基础上提出了语言幽默的一般理论(general theory of verbal humor,GTVH)[4]。相较于SSTH,GVTH包含更多的笑话语言学源素。GTVH包含了六个不同级的幽默源素,即语言(language, LA)、叙述策略(narrative strategy,NS)、目标(target,TA)、场景(situation,SI)、逻辑机制(logical mechanism,LM)以及脚本对立(script oppostion,SO)。1994年,由Attardo撰写的专著《幽默语言学理论》(LinguisticTheoriesofHumor)[5]提出了笑话的同位分离模型(isotopy-disjunction model of jokes,IDM)。IDM模型是对Attardo早期提出理论更为详细的一种描述,并没有在本质上有所突破。近年来,幽默本体语义理论(OSTH)也是在乖讹论的基础上提出、发展并完善的。本文的工作就是在幽默理论的基础上开展的。

1.3 国内外研究进展

林语堂[6]最早将英文单词“humor”音译为“幽默”,他指出幽默具有“戏谑”性。而笑话作为幽默包含的文体之一,并且国内外很多学者也是在标签为“#joke#”的推文做幽默的相关工作。所以,本文不对幽默与笑话做区分。

Attardo[5]指出幽默识别是自然语言处理中一个非常具有挑战性的课题。笑话识别之所以能够归为较高级的人工智能范畴,是因为它涉及人类的认知以及相关的背景知识才能被理解,感到“有趣、好笑”。拥有不同背景知识的人对于同一个笑话的感觉都会不一样。例如,

妻子: 每次我唱歌的时候,你为什么总要到阳台上去?

丈夫: 我是想让大家都知道,不是我在打你。(《避嫌》)

如果没有一定的背景知识,可能就无法理解这个笑话的主旨是“丈夫”在利用委婉的手段表达“妻子”唱歌不好听。计算机在处理这段话的时候,并不能理解文字背后的意义,所以幽默计算必须计算文本隐性的语义信息。

现在大多数的幽默识别为二元分类问题,试图添加一些语言特征来识别幽默与否。最具代表性的是Mihalcea和Strapparava[7]结合幽默语言学特征定义了三个幽默特征,即头韵、反义词以及俚语,基于这些特征训练了分类器对幽默进行识别。类似地,Zhang和Liu[8]设计了几个类别的幽默相关的特征,这些特征是从目前具有影响力的幽默相关理论、语言规范和情感维度推断出的,并添加了约50个特征到迭代决策树模型(GBRT)中识别幽默。Taylor和Mazlack[9]基于N-gram统计语言识别技术识别双关语笑话,为双关语是否发生提供了一个启发式的焦点。除了语言特征之外,一些其他研究者还利用语音或多维信号等作为特征。例如,Purandare和Litman[10]分析了声韵律和语言特征,用来在口语对话期间对幽默进行自动识别。目前,很多工作没有系统地对幽默相关的特征进行扩展或解释。

目前,幽默识别多使用的是传统的机器学习,深度学习使用得并不多。基于深度学习的幽默研究工作主要代表是Bertero等人[11]。Bertero和Fung从《生活大爆炸》中获得了相关剧本,根据视频的音频中的笑声自动对语料进行标注,他的主要工作是笑点识别,使用RNN和CNN来预测剧本中的笑点[11]。实验结果表明CNN比RNN的效果更好。Fung等人的另一篇文章[12]使用CNN对对话序列进行编码,然后将其作为LSTM的输入来预测剧本中的笑点。

目前的幽默识别处于起步阶段,现有的数据集也非常少。文献[7]分别整理了路透社新闻内容、谚语以及英国国家语料库的文本作为负例构建语料进行幽默识别任务。Zhang和Liu[8]等人选取了Twitter中1 500条非幽默推文作为负例。现有相对标准的幽默数据集是基于Mihalcea和Strapparava[7]等人构建的16 000条幽默文本。另外,Castro等人[13]选取了Twitter上带有“jokes”的推文,共有16 488条,非幽默的语料包含新闻、反思、奇怪的事等主题,共22 875条。国外也有一些专门发布幽默文本的网站,如http: //www.punoftheday.com,该网站主要收集具有双关语的幽默文本。

现在国内还没有标准的幽默数据集或是语料库,因此整理并构建语料库迫在眉睫。幽默识别与生成技术还处于起步阶段,尤其是中文幽默的识别与生成研究更是少之又少。本文构建中文笑话语料库的相关工作,将为中文笑话研究打下坚实的基础。

2 语料库的构建

2.1 语料库构建流程

整个标注过程包括语料收集和处理、自动识别部分标注内容、人工确认自动识别结果、人工标注其余元组部分、一致性检测、迭代标注等几个过程,如图1所示。

由图1可以看出,语料库的建立过程分为三个阶段: 语料收集及准备工作、标注存储过程和分析及应用。第一阶段是语料收集及准备工作,包括收集语料、制定标注体系和开发标注工具三部分。第二阶段是标注存储过程,分为自动识别标题以及提取关键字等、两人组确认、两人组标注幽默机制和等级及一致性检测、存储五个步骤,其中如果一致性检测不能通过,则由仲裁确认。如果一致性检测通过,存储后进入第三阶段,语料库的分析及应用。

2.2 基于历时与共时的语料收集

语料采集工作需要考虑语料库的历时性及共时性,这样语料库才能更加客观、全面、覆盖面大。所谓覆盖是指语料和文本在各个不同领域的分布或散布。这些不同领域通常是指由时间轴(反映时代特征)、空间轴(反映地域特征)、学科轴(反映知识特征)、风格轴(反映语体特征)构成的四维模型[14]。

从时间轴上看,本文采集的语料包括十年前出版的书籍中的笑话,这满足了语料库历时性;也包括近两年的书籍、微博、文学期刊、笑话网站等刊登的笑话,这也符合语料库的共时性;还包含从人们口口相传的笑话集锦、微博以及笑话网站近一年更新的笑话作品。从空间轴上,语料中既包含了国内的笑话,也包含了国外的笑话,以及带有阿凡提等明显民族特色的笑话。从学科轴上,笑话本身就因为读笑话人的不同,产生笑点的强度不同,这是由于不同人拥有不同的知识背景,对笑话的理解不同。从风格轴上,来自书籍上的笑话体裁多样而且相对比较规范,从民间收集的笑话并不规范。

2.3 语料库的标注体系

语料库标注是对原始语料进行预处理,使用便于计算机存储以及读取的标注格式结合笑话本身特殊需求进行标注。TEI(text encoding initiative)是机读语篇的国际信息编码规范。TEI标注模式是由计算语言学学会(Association for Computational Linguistics,ACL)、文学与语言学计算协会(Association for Literary and Linguistic Computing,ALLC)和计算机与人文科学学会(Association for Computers and Humanities,ACH)三家学术团体共同参与制订的[15]。目前许多大型语料库都是基于TEI标注准测的,如“英国国家语料库” (The British National Corpus)等。

结合笑话本身简洁、便于标注以及TEI便于计算机存储及读取等特点,本文采用TEI标注与自定义标注相结合的方式进行标注。中文笑话语料库体系基本框架如下:

JokeModel=([title], [scene],

person,keywords, level, reason, category)

标注体系包括以下内容: 笑话题目(title)、场景(scene)、人物(person)、关键词(keywords)、幽默程度(level)、幽默方式(reason)以及笑话类别(category)。上述变量中方括号内的title、scene是可选的,其他变量是必选不能为空的。幽默程度表示的是笑话的幽默程度: “1”表示幽默程度最低,“3”表示中等幽默,“5”表示幽默程度最高。变量中的person、keywords取值都是一个集合,即变量中不止包含一个变量。如person=(person1,person2,…,personi,…,relationship),keywords = (keyword1,keyword2,keyword3)。需要说明的是,person中的relationship指的是主要人物间的相互关系;相互关系包含师生关系、 医患关系、情侣关系、亲属关系、上下级关系、朋友关系以及其他关系。关键词序列使用Textrank算法,选取权重最高的三个词作为该笑话的关键词序列。本文使用的是由Mihalcea[16]等人提出的基于PageRank的Textrank算法, 用来提取关键词。标注说明如表1所示。

表1 中文笑话语料库标注说明

2.4 语料库标注方法

从上面标注体系可以看出,七元组是对笑话的深度标注,颗粒度较细,所需人工成本也较大。所以本文采用半自动的方式完成标注,即其中的标题、主人公、类别、关键词序列等利用命名实体识别等相关技术通过机器自动识别。标注者只需要在机器识别的基础上修正,能大幅度减少标注者的工作量。产生机制和幽默程度则需要人主观打分。标注软件如图2所示。

图2 标注软件

标注工具能很好地提高标注的效率,使得准确率和速度都有一定幅度的提高。完成后的标注文件经标注者确认后以XML的形式统一存储。

3 语料库的一致性评价及分析

3.1 一致性检测

本文由九名实验室的博士研究生与硕士研究生共同完成笑话语料的标注工作,分为三个三人组。三人组采取交叉验证的方式进行标注,其中一人为仲裁。由于每个人的认知不同,对笑话的理解程度不同,所以对笑话的理解存在着不同程度的差异。当三人组中的二人标注相同时,则完成标注;如出现分歧的时候,由仲裁者进行仲裁。当仲裁跟标注的二人观点都不一致时,如果幽默程度出现分歧,则取平均值,即标注强度为中间值3。如果对产生机制产生分歧,则由全组九人讨论,最后进行投票选择,票数多者为最后标注,尽量最大程度地保证标注的一致性和准确性。统计后结果如图3所示。

图3 一致性检测结果

由图3可以看出来,对于人物的标注一致性为98.5%,幽默等级为68.5%,幽默产生机制为81%。笑话等级产生的分歧多,这是由于笑话等级是由人的主观决定的,是由人所掌握的背景知识所决定的。对于笑话产生机制,经过统计分析,标注者对讽刺/委婉以及反转/讽刺这两组概念最容易混淆。经过进一步的讨论与确认,在仲裁最终确认后,达成组内一致。

3.2 中文笑话语料库分析

目前收录的语料包含33 025条笑话,通过统计共158 074句话,包含了3 083 295字数,5 018种字,平均一个笑话包含了4.79句话。与小学生常用字表*http: //www.chinadmd.com/file/6vas6xrvue3xseoz6zscw-erc_1.html(2 500字)做比较,语料中出现100次及以上的有2 004个字,其中有1 859个字在小学生常用字表中,占比92.76%;出现50次及以上的字有2 478个字,其中有2 181个字在小学生常用字表中,占比88.01%。这些数据充分地验证了笑话是源于生活、面向大众的特点,说明笑话的受众很广,传播方式很多。

收集的语料中,古代笑话有3 585条,古代笑话是以古代为背景的笑话,并不是传下来的笑话本身,有些笑话已经被人们用白话文复述;还包括校园笑话、家庭笑话、名人笑话以及职场笑话。具体分布如图4所示。

图4 语料库中各类笑话数量及其占比

由笑话分类的分布可以看出来,家庭笑话最多,占了语料库的52%。这是因为,笑话的创作是无时无刻的,而在我们的日常生活中,家庭占了很大的一部分,所以家庭笑话最多也是可以预见的。由于每一类笑话的场景、主题等都不相同,所以表2给出了每类笑话出现频率较大而且比较关键的词汇。

表2 各类笑话高频词

由表2可以看出,每一类别的笑话的高频词都不相同。如名人笑话中的高频词,阿凡提在我国作为新疆有名的传说人物,所以带有新疆特色的名字“依麻目”“巴扎”也成为了高频词。阿凡提为传说人物,人们会在讲述其故事的时候带有古代文化色彩。每个类别下的高频词基本都符合该领域的特征。

本文将现代笑话划分为校园笑话、家庭笑话、笑话以及职场笑话。从高频词的分布也可以看出本文对笑话的分类是合理的。校园笑话的高频词为“老师、同学、学生……”,既符合校园的主题,也证明了本文分类的有效性。

根据笑话产生的原因,本文将笑话分为谐音、谐义、反语、类比、委婉、讽刺、夸张以及反转八种类别。基于笑话产生原因的数量统计如图5所示。

图5 基于笑话产生原因的各分类笑话数量

由图5可以看出,在33 025条笑话中,反转类型的笑话有13 160条,占比39.85%;讽刺类型的笑话有5 493条,占比16.63%;委婉类型笑话有4 720条,占比14.30%;类比类型笑话有2 795条,占比8.46%;谐义类型笑话有2 691条,占比8.15%;夸张类型的笑话有2 277条,占比6.89%;谐音类型笑话有1 319条,占比3.99%;反语类型笑话有570条,占比1.73%。

4 笑话识别

4.1 相关特征

笑话作为最贴近人们生活的文学体裁,它具有简洁性,大多数能够揭示生活中乖谬的现象,具有一定的讽刺性和娱乐性等特性。笑话作为幽默的一种体裁,所以幽默识别的一些特征可以借鉴到笑话识别中。本文将从相关的笑话理论以及语言规范等方面梳理本文用到的特征。

长度特征(length): 由于笑话体裁的限定,呈现一定的长度特性。笑话虽然具有简洁的特点,但是它会简单扼要地叙述一件事情,所以相较于歇后语、谚语又比较长。因此本文采用了文本长度作为特征之一。在长度相差较大的体裁中,特征可以较准确地区分笑话与非笑话。

句法特征(syntactic): 由于笑话的不一致性,所以一般会使用句法特征。例如“为什么鸟儿在冬天飞往南方? 走着去太远了。”当目标文本比较短的时候,句子级的句法分析是不能满足需求的。本文需要使用词语级的句法特征,利用词性占比,使用jieba分词的词性标注方法,分别计算了名词占比、动词占比、形容词占比、副词占比以及代词占比作为特征。

情感特征(emotion): 除了现有的幽默理论和语言学特征,笑话本身是具有情感特征的。如“甲: 我救了不少人耶!乙: 哦?说来听听。甲: 我落榜了。”,当甲说到“我救了不少人耶”时候的隐含情感是正向的,当故事讲到最后甲说“我落榜了”——“落榜”隐含着负向的情感。这符合笑话的前后不一致性。本文采用徐琳宏[15]等人构建的情感词典为基础,作为计算笑话的情感特征的基础。

转折特征(transition): 根据对中文笑话语料库的统计观察,得到很多笑话都是在最后一句产生笑点的结论。根据笑话的这一特征,本文将最后一句默认为笑点,即产生转折或者有一定的隐含意义的句子。除了最后一句,前面的所有文本作为一部分,最后一句作为另一部分,将二者包含的所有词的Word2Vec相加求平均作为它们的语义向量,通过相似度差异作为特征。

词义距离(vocabulary): 本文考虑到在笑话中往往会前后存在冲突,这些冲突一般是由一些词语造成的,比如“报数”与“抱树”语义距离相差很大,因此本文将名词以及动词作为产生冲突的候选词,分别将笑话中的笑点包含的名词/动词通过Word2Vec计算平均词向量与其他文本包含的动词平均词向量计算距离,作为词义距离特征。

4.2 数据集描述

笑话数据集采用中文笑话语料库中的笑话作为正例,共33 025条。从不同时间轴上包含了不同时代的人、事、物,包括古代笑话、校园笑话、家庭笑话、职场笑话和名人笑话,又在一定程度上包含了当下最经典、最日常的场景主题。在不同维度保证了正例的多样性。

本文使用了故事、新闻体裁、谚语/歇后语以及微博四种不同体裁、不同来源的文本作为负例。从表3的示例可以看出: 四种体裁在长度、叙述手法等方面都不相同。下面将分别对四种体裁的负例进行介绍。

表3 各类负例示例

故事是文学体裁的一种,侧重于事件发展过程的描述。这一特点预示着大多数故事不会很短。本文的故事是使用网络爬虫程序从网址1*http: //www.xigushi.com/收集到的,该网址包含了很多类故事,共收集到了6 260篇故事,每篇平均长度为965字。除了该网址中的幽默故事,其他类型的故事都存在于语料中。

谚语是广泛流传于民间的言简意赅的短语,多数反映了劳动人民的生活实践经验,多是口语形式的通俗易懂的短句或韵语。歇后语是中国劳动人民自古以来在生活实践中创造的一种特殊语言形式,是一种短小、风趣、形象的语句。谚语以及歇后语也都是贴近人们生活、口口相传的艺术瑰宝。本文收集了共1 671条文本,其中歇后语有904条,谚语有767条。

新闻是通过报纸、电台、广播等媒体途径传播消息的一种文体。本文选取了从网址2*http: //www.ssydt.com/sszz/总结的从2007年到2017年6月的时政新闻作为负例。共收集到6 071条新闻体裁类语料。

微博(Weibo),即微型博客(Microblog)的简称,也即是博客的一种,是一种通过关注机制分享简短实时信息的广播式的社交网络平台。微博作为当代人分享心情、传播消息最热门的社交平台之一,每天有超过1亿条微博内容产生。本文采用了SMP2016评测任务的微博语料,共237 801条语料,选取了前30 000条微博语料作为负例。

4.3 实验结果分析

本节利用五类特征分别对笑话与故事、新闻、谚语歇后语以及微博这四类体裁进行区分。实验采用Logistic Regression算法,用五倍交叉验证的方式进行实验。本文采用准确率、召回率以及F1值作为评价指标。

首先使用6 260篇故事与33 025条笑话构成的39 285的数据集进行幽默识别任务。虽然故事与笑话都具有一定的情节,但是由于篇幅的不同,使用长度作为特征就可以把二者区分开。这也进一步证明了笑话的简洁的特点,结果如表4。

表4 以故事类为负例的实验结果

其次,本文使用1 671条歇后语/谚语作为负例,由于负例与正例的数据明显不平衡,将33 025条笑话中名人笑话1 874条笑话与该负例构成数据集,并进行识别任务。由于各自篇幅的特点,实验采用了长度作为特征,相较与长篇故事,效果更好。由于笑话通常会有一定的情节,而歇后语/谚语是简单扼要地说明一个问题,一般是通俗易懂的短句或韵语,歇后语/谚语与笑话类型的语料在长度上有天然的分界。实验结果如表5。

表5 以歇后语/谚语为负例的实验结果

接着,本文使用收集到的6 071条新闻类语料当作负例,与33 025条笑话构成共39 096条数据的数据集进行笑话识别。先使用长度作为特征,但并未取得较好的效果,这说明新闻类的体裁与笑话类体裁的篇幅差距不大。由于新闻类体裁属于官方文字,所以情感词语用得不多,本文使用徐琳宏[15]等人构建的词典作为基础,如出现在情感词典中,则值为1,否则为0。实验结果如表6所示,证明了句法特征以及情感特征的有效性。

最后本文采用SMP 2016评测提供的微博中的前三万条作为负例,长度特征、句法特征、情感特征依次添加到模型中,结果如表7所示,证明随着特征的增加,准确率、召回率、F1值等都有不同程度的提升,再一次证明了特征的有效性。

表6 以新闻类体裁为负例的实验结果

表7 以微博类体裁为负例的实验结果

本节分别从故事、歇后语/谚语、新闻以及微博分别构建负例,做笑话识别任务。由于笑话更贴近人们的生活,具有强烈的情感,所以与其他体裁识别效果明显。

考虑到不同数据集的文本长度分布的不同,仅使用文本长度就可以对笑话与非笑话进行区分,不利于笑话识别工作的开展。针对这个问题,本文从文本长度的角度对正例与负例进行数据集重新构建,正例来自中文笑话语料库,负例来源于故事、新闻体裁、谚语/歇后语以及微博构建的负例集合。长度统计如表8所示。

表8 正例与负例在不同长度区间的分布

基于正负比例平衡,选取长度大于150小于等于200的笑话作为正例,负例同样选取该区间的文本。最终选取了3 477条正例与4 242条负例构建的数据集进行幽默识别试验。由于选取了相同的长度区间的正例、负例,所以长度不能再作为特征之一。首先采用情感作为特征之一,此时仅仅采用情感词的多少作为特征是远远不够的,将一个样例中所有的情感词根据情感词典中具有积极情感以及消极情感的词的打分,取出得分最高以及最低的情感词,并将其得分相减,作为情感特征。实验采用了情感特征、句法特征、基于笑话本身的转折特征以及词义距离训练分类器,笑话识别结果如表9所示。

表9 等长文本的笑话识别结果

5 笑话语料库在聊天机器人中的应用

“人工智能之父”——图灵在哲学刊物《思维》(Mind)上发表了“计算机器与智能”的文章,提出了后来经典的图灵测试——交谈能检验智能,如果一台计算机能像人一样对话,它就能像人一样思考。现有的聊天机器人还处于比较低级的人工智能阶段,并没有通过图灵测试。目前的聊天机器人还存在缺少人情味、不能思考等问题。为了使聊天机器人更智能、更有人情味以及具有幽默感,本节通过以下几点分析介绍。

5.1 笑话语料的扩充

现有的聊天机器人在笑话储备问题上不够完整,比如Siri、微软小冰等,让他们讲诸如阿凡提这类具有我国少数民族特色的笑话,他们都不能胜任,因为他们不包含此类笑话。中文笑话语料库包含了多种类、多视角的笑话,可以满足更多人的需求。可以通过以下几个方式来满足用户的需求:

(1) 利用用户提供的关键词,直接搜索,找到对应的笑话;

(2) 对于找不到精确匹配的笑话,可以根据关用户提供的关键字与笑话的题目、关键字、场景、分类等依次进行相似度计算,匹配相似度最高的笑话作为输出。

5.2 笑话识别

聊天机器人想要通过图灵测试,至少暂时性地让与它对话的人类认为他是一个人而不是一台机器,成为一种高级的人工智能。除了使机器人具有情感、智慧、能够思考外,还应该让它具有幽默感,能够理解与它对话的人类幽默的点,这将使人工智能向前推进一步。如何让计算机拥有幽默感呢?目前国内外也有很多研究者在幽默识别的工作中取得了一些进展,也使用了很多类特征,使用机器学习方法做识别任务。也有很多学者使用了深度学习方法。我们日后可以通过中文笑话语料库中标注的关系、场景、关键词等训练需要识别的文本,抽取相应的特征;使用深度学习表示方法对该文本深层语义信息进行表示,利用深度学习网络模型将抽取的特征添加到模型中,通过深度学习神经网络计算判断是否为笑话。

5.3 笑话生成

聊天机器人要想实现高级的人工智能,仅仅能够理解笑话是不够的,还需要能够根据用户的需求自动生成笑话。中文笑话数据库的构建为笑话生成技术带来了可能。笑话的生成是聊天机器人通过用户的输入以及笑话产生的机制自动化地生成笑话的过程。在NLP领域中,生成技术一直以来都是一个难点,尤其笑话生成是基于人的认知的高难度难题,它既需要深度理解文本中的语义,也需要对背景知识以及相关文化有所了解。林鸿飞[17]等人提出一种基于深度学习的幽默生成框架,今后可以参照该框架结合中文笑话语料库自身的特点,最终实现笑话生成技术。

笑话生成技术中的输入为用户提供的文本,根据上下文的对话提取关键信息,如关键词、场景、人物关系以及双关语等,利用深度神经网络模型对关键词进行深层语义挖掘表示,与中文笑话语料库中的笑话中的高频词进行相似度计算,取出相似度最高的高频词与笑话对应的关键词进行替换,形成候选笑话文本集合,依次根据笑话识别技术判断其是否好笑,好笑的文本则作为输出。

6 结论

在幽默计算对语料资源的迫切需求下,本文构建了大规模笑话语料库。目前已经完成了第一阶段的标注,包括33 025条笑话。本文通过对中文笑话语料库的分析,总结了许多笑话内部的特点。通过与小学生常用字作对比,验证了笑话通俗易懂的特点。通过对高频词的归纳,可以总结出比如“阿凡提”“小明”等名字、“老婆”“老公”等称呼、“甲”“乙”等代词多在笑话中出现。在笑话语料库第一阶段初步标注的基础上,本文结合笑话简洁、具有一定的情感等特点,构建了五类特征,并且构建了不同的负例对笑话进行识别,从不同的角度验证了特征的有效性。但是,语料库的构建不可能是完美无暇的,我们将在今后的工作中,进一步对语料库进行完善修订,补充更多的数据;利用语料库标注的信息对反转识别、双关识别(谐音/谐义)、反语识别、笑话生成等难题进行攻破。

猜你喜欢
语料笑话语料库
基于归一化点向互信息的低资源平行语料过滤方法*
平行语料库在翻译教学中的应用研究
《语料库翻译文体学》评介
笑话
幽默笑话
《苗防备览》中的湘西语料
国内外语用学实证研究比较:语料类型与收集方法
语篇元功能的语料库支撑范式介入
幽默小笑话
笑话两则