基于众包标注提高教学效果的探索
2020-01-10李正华
李正华
(苏州大学计算机科学与技术学院 江苏·苏州 215006)
0 引言
随着深度学习的快速发展,人工智能已经成为一个具有国家战略意义的研究方向。国内很多知名高校纷纷建立人工智能学院或研究院,并且面向本科生开设了相应的人工智能基础课程。MSRA 副院长周明老师讲到,语言智能是人工智能皇冠上的明珠。自然语言处理无疑是真正实现强人工智能必须解决的难题。
英语文本中词语之间由空格隔开,因此可以直接得到英语句子的词序列。然而,中文文本则缺乏词语分隔符,给中文信息处理带来了很大的挑战。由于词语是信息表达的最基本单元,因此绝大部分上层任务或应用均以词序列、而非子序列作为输入,如句法语义分析、搜索引擎(百度)、机器翻译、客服机器人等。学术界在过去几十年,针对分词任务,提出了一系列的方法,人工标注了大规模的数据。但是,迄今为止分词问题还远没有解决。
如上讨论,中文分词对于自然语言处理乃至人工智能的科学研究和产业化的重要意义不言而喻。事实上,本科生很多课程都涉及中文分词问题,如自然语言处理、中文信息处理、[1]信息检索、数据挖掘等。
然而在课程授课中,大部分同学们很难理解分词为什么很困难,为什么不可以通过简单的词典匹配做好,为什么复杂的机器学习算法和模型也会输出很多明显的分词错误?
为此,笔者设计了一次众包标注形式的上机课。基于我们的标注系统,要求同学们根据自己对分词任务的理解,标注一定数量的句子。进而,我们对标注数据进行了行为分析,并通过调查问卷了解教学效果。通过这次上机课,同学们更深刻的了解了自动分词的难处,并且一小部分同学产生了自己实现分词工具的兴趣。
1 中文分词和众包标注
给定一个句子,如“这学期我主讲信息检索课”,中文分词的目的是将汉字序列切分为词序列,如“这/学期/我/主讲/信息/检索/课”。在英文中,词语之间以空格符作为天然分解符,但是中文中只有字、句、段可以明显区分。由于单个字的含义比较模糊,歧义较大,因此词通常被认为是语言表达的最基本单元,并在其基础上开展自然语言处理相关研究(如句法分析、语义分析),以及建立高层应用系统如信息检索系统。分词主要需要解决两种切分歧义。[2]第一种为交集型歧义,指三个连续的字“ABC”中,“AB”和“C”可以形成两个词,“A”和“BC”同样也可以形成两个词。交集型歧义的例子如“和服装”“表面的”等。另一种歧义为组合型歧义,指两个(或多个)连续的字“AB”,可以组合起来作为一个词,也可以分开单独成词。组合型歧义需要对整个句子整体把握,才能正确消解。以“把手”为例,“请把手拿开”和“这个门把手坏了”的切法不同。同样,“中将”在“将军任命了一名中将”和“产量三年中将持续增长”两句中切法也不同。
过去十多年里,分词技术得到了长足发展。最简单并快速的方法是最大前向匹配和最大后向匹配;基于自动机实现的基于规则的方法;将分词任务看作基于字的分类问题;基于字的序列标注方法;基于词的动态规划搜索算法。目前的分词方法在规范的新闻领域文本上可以达到约98%的准确率。[2-3]
近年来,网络用户产生的海量网络文本数据,如微博、产品评论、邮件等,对中文分词提出了新的挑战。网络文本和传统新闻领域文本相比,主要有两个特点:新词多(如“快男”)、旧词新义(如“粉丝”)。新词发现一直是中文分词的一大困难。对于训练语料中没有出现过的词语,分词模型一般很难正确切分。[3]
目前,面向网络文本的中文分词才刚刚起步,缺乏适当规模的标注数据用以模型训练和评价。笔者也一直思考如何基于近年流行的众包方式,快速有效的建立所需的标注数据。众包的基本思想是利用大量空闲网络用户,以有偿或无偿(无意)的形式,快速获取标注数据。但是众包的应用场景一般是很简单的标注任务,如对图片中的物体打标签。[4]目前还很少看到对分词这样的复杂任务进行众包标注。本文对此进行了初步尝试,并且利用一次教学上机课进行了实际操作,获得一些有趣的发现和结论。
2 众包标注系统设计
由于目前的众包平台无法满足需求,笔者开发了一个基于浏览器的标注系统,支持百人以上同时在线标注。我们将系统部署在云服务器上,网址为http://139.224.234.18/anno-sys。系统支持用户注册、任务分发、标注、结果提交、标注时间统计等基本功能。
标注系统给出一个句子,同时给出一个词(下划线标记)。用户首先确定这个词是否正确。如果正确,则直接提交答案。如果错误,那么需要对分词结果进行修改,然后提交答案。左键单击两次确定一个词,提交的结果中必须包含初始词中的所有字,同时不允许一个词中不包含任何初始词中的字(即标注出的词要和初始词相关)。用户对词语修改的结果会展示在系统中,同时标注系统中用不同颜色来区分不同词。
3 标注及分析
上机课开始后,笔者首先给学生说明了一些分词标注的基本原则,演示了标注系统的使用方法。然后学生开始标注。标注过程大概持续两个小时,学生一共提交了17,357 个标注结果,其中4,417 个是面向地雷任务,剩余的12,940 个为有效标注。通过分析我们发现,这些标注对应4,787 个句子中的6,601个任务,即每个句子平均标注1.4 个任务。
从准确率方面分析,我发现同学们的平均准确率为84.70%。其中正确率90%以上的同学占总人数的26.7%;在80-90%的占43.3%;在70-80%之间的人数占30%。从这一点看出,同学们在标注过程中是很认真的,并且能够达到一定的准确率。
从标注时间方面分析,我们发现同学们平均12.0 秒做一个任务。其中10 秒以内的同学占总人数20%;10-15 秒的同学占63.3%;15 秒以上的同学占16.7%。这个分析结果可以很好的支持后期的大规模标注工作,也为其他相关研究人员提供有用参考。
4 问卷调查的反馈
题目做完后,笔者做了一个问卷调查,目的是想看看同学们是否对中文分词有进一步的认识,对分词系统提出改进建议,以便以后继续完善标注系统。问卷包含5 道选择题和2 道问答题。从同学们的反馈中我们看到了很多有趣的信息。
86%的学生认为计算机自动分词很困难;72%的学生认为通过此次标注,对汉语分词任务有了更深的理解;72%的学生表示这个标注系统本身实现起来复杂;17%的学生表示对标注系统的实现感兴趣;10%的学生表示有兴趣实现一个自动分词程序。
另外,通过问答题,同学们对标注系统提出了很多改进的需求,并且对计算机进行自动分词可能遇到的困难和应对措施提出了自己的思考和见解。
综上,笔者认为,通过这次标注活动,同学们对分词问题的理解更加透彻,对后续课程的学习体现出了更强的兴趣和主动性。尤其是,部分同学在标注过程中表现出对语言很敏感的特点,笔者将引导其加入后续有偿的数据标注工作中;对于感兴趣的同学,笔者也将引导其继续深入研究分词算法和标注系统实现。
5 结束语
本次众包形式的标注活动共标注了约5000 个微博句子,提交了约17,000 个标注结果。通过这次教学活动,学生普遍对中文分词有了更深入的理解,同时由于中文的复杂性和习惯性,大家都觉得分词任务对计算机而言是有一定困难的。部分同学对标注系统和分词任务的实现产生了兴趣,后续将加入实验室并继续深入研究。根据课堂效果和反馈情况来看,笔者认为,这种教学与科研相辅助的教学模式,既能提升学生的兴趣,又能让他们真正去重视这门课的学习,而不再是为修学分而学习。以后笔者会将这种模式加以扩大和推广,让学生在学好理论的同时,增强实际动手能力,养成学以致用的习惯,为未来工作打好基础。