2019年4月8日,第三届搜狐校园算法大赛正式开赛,同期面向参赛选手开放竞赛结果提交。本次比赛联合了清华大学等机构共同组织,面向全球范围内的全日制学生。
【组织方】搜狐、清华大学
【奖金】¥75000
【初赛提交时间】2019年4月8日-5月10日
【协办单位】清华数据科学研究院
【合作媒体】数据派THU、Paperweekly、大数据文摘
本次比赛的主题是提取文章主题,并判断文章对主题的情绪。我们生活在一个信息爆炸的世界,每天能接触到不同的新闻文章,体裁也多种多样,包括新闻快讯、广告软文、深度分析、事件评论,以及重要人物采访等等。每天新产生的信息量已经极大地超过了读者能够接受的极限。所以,如果有一种机器模型,可以自动提取出文章的主题,并且判断出文章对这些主题内容的情感倾向,就可以极大地提高阅读和消化信息的效率。
【参赛方式】点击“阅读原文”或扫描下方参赛二维码可直达赛事页面
注:因涉及到数据下载,强烈建议大家登录PC页面报名参加。
大赛页面地址:
https://biendata.com/competition/sohu2019/
【竞赛任务】
具体来说,参赛选手需要根据给定的文章,提取出文章中最重要的三个主题(也就是实体)。所谓实体,意思是人、物、地区、机构、团体、企业、行业等事物。和一般的实体抽取竞赛任务不同的是,本次比赛还要求选手判断文章对主题实体的情感倾向(包括积极、中立和消极三种情绪)。如下图:
【任务分析】
本次比赛可以分成相对独立的两个任务:从文章中提取最重要的实体,然后判断文章对这些实体的情绪。
第一个任务是提取文章中重要的实体。这个任务类似常见的命名实体识别(NER)任务。传统上来说,NER任务主要抽取7大类实体,包括人名、机构、地名、时间、日期、货币和百分比。目前,已经有很多关于命名实体(NER)的研究和分享出现。在斯坦福大学著名的课程CS224d: Deep Learning for Natural Language Processing中,有一次大作业就是用深度神经网络提取命名实体。也有很多人已经自愿分享了这次作业的模型方法和代码。
作业任务链接:
http://cs224d.stanford.edu/assignment2/index.html
CS224d作业代码分享:
《用深度神经网络处理NER命名实体识别问题》
https://cloud.tencent.com/developer/article/1081991
本次大赛的发起人之一,搜狐科学家、搜狐智能媒体研发中心负责人杨田也推荐了一篇详细的命名实体综述论文A Survey on Recent Advances in Named Entity Recognition from Deep Learning models。
论文链接:
A Survey on Recent Advances in Named Entity Recognition from Deep Learning models
https://aclweb.org/anthology/C18-1182
不过,本次比赛的难度比传统的NER要大。比赛的最大特点就是实战与应用。行百里者半九十,在学术成果的基础上,精度每向应用提高一点,难度就数倍增加,因此比赛的挑战性非常大。比赛的实体不仅仅包括人名,地名和机构名的识别,粒度更细,种类也更多。
在比赛前期发布的样本数据中,实体的例子包括:众要机械APP、卫生监督站、媒介、猪瘟、互联网、表带等内容。这也是目前实体抽取技术面对的难点。随着互联网的快速发展,信息越来越丰富,呈现出多源、异构、海量的特点,也对信息抽取技术提出了新的要求。很多时候,我们要抽取的并不是一般的实体,而是全新种类的实体。目前,越来越多的人开始研究实体扩展技术,目的是抽取开放类别的实体。
一种很自然的想法是把语料中所有的名词都作为实体备选,然后计算它们与训练集中种子实体的相似度,找出相似实体。这一思路主要由Pantel等人实践,相关研究记录在Web-Scale Distributional Similarity and Entity Set Expansion一文中。
在提取出实体后,我们还需要判断文章对实体的情绪。情感分析也是自然语言处理领域的一个重要方向。有大量相关研究可以参考。早期的研究根据构建好的情感词库进行判断。情感词库有很多选择,例如著名的知网HowNet就提供了“《知网》情感分析用词语集”公开下载。
在考虑情感词库时,还需要往前追溯1-2个词,看看有没有“不”、“没有”等否定词。这种方法需要人工构建情感词库,但没有一个情感词库可以适用所有应用场景,所以高度依赖人的经验。此外,这种方法也很难完整地考虑到上下文的语义信息。不过,如果刚刚上手情感分析,可以尝试这种方法。
代码链接:
基于情感词典的文本情感分析代码
http://www.aidnoob.com/ai/python/qinggan1
此后,还出现了基于特征的情感分析方法。这种方法主要利用统计学领域的知识,从语料中选取特征对文本进行表示,然后用决策树、SVM等方法对情绪进行分类。这种方法仍然高度依赖经验和特征的选择。相关研究有很多,比较详细的案例介绍来自清华大学计算机系谢丽星在孙茂松教授指导下的硕士论文《基于SVM 的中文微博情感分析的研究》。
论文原文链接:
《基于SVM 的中文微博情感分析的研究》
http://nlp.csai.tsinghua.edu.cn/site/images/file/2011_xlx_master_thesis.pdf
论文主要使用SVM的方法,分别从微博和Twitter预料中抽取了主题相关特征(如是否包含主题词、句子中是否缺乏名词性短语或者代词等)和主题无关特征(是否有url链接、是否有表情、是否有情感词和情感短语、形容词和动词的个数等),在使用主题无关特征时获得的最高准确率为 66.467%,使用主题相关的特征对情感分类后获得的最高准确率为 67.283%。
目前主要的情感分析方法大多基于深度学习,首先对词语、句子和篇章进行向量化表示,然后学习文本的深层语义信息。这种方法可以自动学习特征,不需要人工进行特征选择和规则制定。很多情感分析研究使用NLP常见的RNN,加上LSTM和注意力机制保证语义的完整性。
例如,腾讯的徐汉彬和宋彦就曾经分享了Keras代码实现对40 多万条真实的鹅漫用户评论数据的情感分类。他们的代码通过 Keras 实现,底层框架是 Google 开源的 TensorFlow,词向量采用腾讯人工智能实验室开源的词向量。整个模型包含 6 层,核心层包括 Embedding 输入层、中间层(LSTM)、输出层(Softmax)。模型中的 Flatten 和 Dense 层用于做数据维度变换,将上一层输出数据变换为相应的输出格式,最终的输出是一个二维数组,用于表达输入文本是正面或者负面的概率分布。
文章链接:
《基于 LSTM 的情感识别在鹅漫评论分析中的实践与应用》
https://www.infoq.cn/article/zJI*5CGPeRKqHsHJV3OQ
很多论文和公开代码主要针对文档级别的情感分析。但是在本次比赛中,需要更加细致的分析,因为一篇文章里可能对不同的实体有不同的情绪。我们在比赛前期给的数据样本里,已经能看到类似的情况。例如以下这篇文章:
{ "content": "华为宣布:起诉美国政府。 新闻越短,信息越大。 就在上午10时,华为在深圳总部举行外媒记者会,宣布一项重要决定:起诉美国政府。 北京时间10时,在外媒记者会上,华为轮值董事长郭平宣布,华为已向美国联邦法院提起诉讼,指控美国2019年国防授权法第889条款违反美国宪法。 在郭平的表述中,美国政府一直污蔑华为是威胁,还攻击华为的服务器,窃取邮件和源代码,而且从来没有提供任何证据支撑其关于华为是网络安全威胁的指控。 而且,美国竭力诋毁华为、影响公众舆论。更糟糕的是,美国政府试图阻止华为参与其他国家的5G网络建设。 而采取法律行动是华为不得已而为之的最后选择,也是受尽压迫之后的奋力反抗。 为什么华为这么有底气去起诉美国政府,除了华为过硬的技术、品牌的成绩之外,这更离不开一个人——任正非,华为的创始人。}
这里,人类标注员就判断文章对实体“华为”的情绪为正,对实体“美国政府”的情绪为负。事实上我们读完这段文本后很可能也确实同意这一标注判断。在这种情况下,我们就不能只对文档级别的内容做情感分析,还需要对粒度更细的内容做分析。
对此,我们可以参考更前沿的研究论文。2016年,清华大学朱小燕和黄民烈在EMNLP上发表了一篇情感粒度更细的论文Attention-based LSTM for Aspect-level Sentiment Classification。这篇论文提出了一种基于注意力机制(Attention Mechanism)的神经网络模型,使用注意力机制注意到文本中对给出的aspect最重要的部分,从而更充分地考虑文本对应的aspect信息,提高细粒度情感分类任务的性能。
根据这篇论文提出的改进,可以识别很多之前的模型无法识别的细粒度情感。例如,“The appetizer are ok, but the service is slow”这句话里出现了两个实体(或者说aspect)。food对应的是中性,service对应的是负面。
最后,搜狐官方也给所有参赛者提供了比赛的baseline供大家参考:
比赛baseline链接:
https://github.com/sohucampus2019/coreEntityEmotion_baseline
点击“阅读原文”进入官网报名