NLP揭秘:除了宝石,女儿也是灭霸的真爱(大雾)
《复仇者联盟4:终局之战》仍在热映中。在看到大结局的同时,本文将带你通过数据科普的眼光来回顾《复仇者联盟3:无限战争》:看看这群世界上最强的超级英雄们最爱说的词汇是哪些? 这次回顾旅程将从一个新的角度出发——自然语言处理。 本文通过使用spaCy(用于处理和理解大量文本的NLPPython 开源程序库)对复联3的剧本进行分析,并研究以下几个项目:
看见代码和专业词汇就想睡?今天你可以放心了!为读者着想,本文中使用的词汇和术语都是非技术性的,所以就算是你没有接触过NLP、AI、机器学习或者诸如*insert buzzword here*之类的代码,你都能理解并掌握本文想要传达的信息哦!所以,不看代码也不会影响你对其余内容的理解。 灭霸 图片来源:Marvel 处理数据 实验中使用的数据或文本语料库(通常在NLP中称为语料库)是电影脚本。但是,在使用这些数据之前,需要做一下筛选。因为,心理描写、动作描述或者场景描写的文本,以及每句台词前的角色名(仅指示说话人,不作为文本分析的语料库)都不是本次研究的对象。所以,诸如“Thanoscrushes the Tesseract, revealing the blue Space Stone…” (灭霸捏碎了宇宙魔方,获得了蓝色的空间宝石……)之类的句子都被删除了。 此外,作为spaCy数据处理步骤的一部分,“I”(我)、“you”(你)、“an”(一个)这类被标记为停止词(常用的单词,多为冠词、介词、副词或连词)的术语被将不做处理。同时,实验过程中只使用单词的标准形式,也就是词根。举例说明,动词“talk”、“talked”和“talking”是同一个词“talk”(说话)的不同形式,所以这些词的词根就是“talk”。 要在spaCy中处理一段文本,首先需要加载语言模型,然后在文本语料库上调用模型进行文本处理。结果会输出一个涵盖所有已处理文本的Doc文件。
在spaCy中创建Doc文件 然后就可以获得一个经过处理、有效信息占比极高的语料库。紧接着就可以开始实验了! 整部电影中使用最频繁的前十个动词、名词、副词和形容词 是否可能仅通过了解出现最频繁的动词就推断出电影的整体走向和情节呢?下文的图表证明了这一观点。 “I know” (我了解……)、“you think” (你觉得……)是最常见的短语。 “know” (了解)、“go” (去)、 “come”(来)、“get” (获得)、“think”(思考)、“tell” (告诉)、“kill” (谋杀)、“need” (需要)、“stop” (制止)、和“want” (想要) 。从中能够推断出什么?介于这部电影于2018年上映,相信大部分观众都已经知道它讲述了一个什么样的故事:根据这些动词推断出《复仇者联盟3:无限战争》是关于了解、思考和调查如何去阻止某物或某人。 通过以下代码就能统计各个动词出现次数:
(编辑:ASP站长网) |