作者 | Brandon Punturo

译者 | 刘畅

编辑 | Jane

出品 | AI科技大本营

【导读】如何评定一首歌的歌词的创造性?有些歌词是否真的套词或假借他人之手?本文作者就尝试用 NLP 技术分析了一位出名却也具有争议的嘻哈歌手 —— Drake 创作的歌词,来看看他的歌词中到底蕴藏着什么秘密。



背景

每隔几年就会有一位艺术家风靡世界。甲壳虫乐队和迈克尔杰克逊的盛名不必多说。 这些艺术家用他们天才般的创造力感染着数百万人。现在,许多艺人争相想成为  Top 1。有些出乎意料的是,一位多伦多本地,艺名叫“Drake”的艺人,近年来声势颇盛。

Drake最初声名鹊起的原因他参演了一部在21世纪初流行的青少年情景喜剧《德格拉西:下一代》中的角色。然而,当 Drake 想成为一名说唱歌手时,他便退出了演出。在与唱片公司签约后,Drake 发行了他的第一张专辑《So Far Gone》。这张专辑获得了 Platinum 认证,并让Drake迅速登顶了嘻哈世界的顶峰。在接下来的八年里,他又连续出了多张专辑,其中专辑Scorpion 是他最近发行的新专辑。

为什么 Drake 的作品很受欢迎?这里面可能包含很多原因。然而,我选择从他歌曲的歌词方分析入手。获取 Drake 歌曲的歌词文本数据并不困难,难的是,如何分析它们?这就要感谢如今日益提升的 NLP(自然语言处理)技术,使分析文本数据比以往容易很多。



今天,神经网络已经成为无数 NLP 算法的通用框架,有各种各样的工具可供使用,因此开发者可以使用它们解决大量的 NLP 问题。这些工具让我可以分析 Drake 的歌词。

在进入实际分析之前,我需要先处理一下 Drake 的歌词。虽然有几个在线的歌词资源可用,但我决定使用 Genius.com。Genius 是一个注释歌词的网站,并且有一个很棒并易于使用的API。

Drake 的哪一首歌有最独特的歌词?

大家似乎对 Drake 的创造力并不买账,经常批评他缺乏创造力。过去,他常被指控窃取其他说唱歌手的 flow 并且拥有幕后的作词者。我打算去看看这些评论是否合理。

我从其他文章中提到的处理方法获得灵感。不分析歌词的总字数,在我看来一首歌的歌词总字数并不能作为衡量创造性的主参考,我改为分析歌词中的独特词。

在完成清理文本数据后,我开始分析每首歌曲中独特歌词的数量。下面是 Drake 所有歌曲中独特歌词分布的直方图。似乎他的大多数歌曲都有 100 到 200 个独特词。但是没有其他艺术家歌曲的分布作参考,这个直方图目前并不能说明 Drake 的创造力。



一个更好的方法是根据专辑的独特词来看他的创造力。下图是在 Tableau 中完成的可视化结果。x 轴表示专辑的名称,y轴表示独特词的数量。每个Bubble(气泡)代表一首歌。就独特的歌词而言,似乎没有任何一张专辑显得更具创意。但是,每件作品在独特歌词数量方面至少有一个异常值。令人吃惊的是,尽管有如此庞大的作品数量(25首歌曲),他最近发行的专辑 Scorpion 上的歌曲在独特歌词的数量上几乎没有变化。



现在,再回答上面的问题,哪首歌具有最独特的歌词?答案似乎是 6PM in New York。 下表列出了排名前十的歌曲。



命名实体识别(NER)

命名实体识别属于“信息提取”的子任务,旨在将文本中的命名实体定位和分类为预定义的类别,例如人员,组织,地点,时间表,数量,货币价值,百分比等等。”(维基百科)。 NER是一项特别棘手的任务。由于语言的复杂性,使得创建一个对所有文本都准确的 NER 算法非常困难。某个算法或许可以在一个语料库(在我们的例子中就是 Drake 歌词的集合)上效果很好,但是在另一个语料库上表现就不好。这种不一致性使得有必要多尝试几种 NER 算法。我也尝试了集中不同的算法,发现有些算法并不是非常不准确。下面简要介绍一下我使用的两个 NER 算法:NLTK 和 CRF-NER。

第一个是 NLTK 提供的命名实体算法。 “Ne_chunk”使用了部分语音标签(POS标签)的单词列表来推断哪些单词是命名实体。从下面的结果中可以看出,NLTK的算法本身并没有做得很好。



我尝试的第二个命名实体算法是由斯坦福提出的令人印象深刻的 NER 工具 —— CRF-NER。



与NLTK算法相比,它需要更长的运行时间,但会产生更准确的结果。虽然它并不完美,但有明显的进步。

主题建模

NLP中最有趣的方向之一就是主题建模了。主题模型是一种统计模型,用于发现在文档集合中的抽象主题。它是一种常用的文本挖掘工具,用于在文本中发现隐藏的语义结构”。主题建模有几种突出的算法。其中最突出的是显式语义分析和非负矩阵分解。在这次的分析中我选择用线性判别分析(LDA)。LDA是由 Andrew Ng,Michael I. Jordan和David Blei 开发的一种生成统计模型。首先通过学习给定语料库中固定数量的主题表示,然后在给定的主题数量的情况下,LDA将学习语料库中每个文档的主题分布。

▌1.给所有Drake的歌词进行主题建模

想要使用 LDA 的第一件事就是学习 Drake 所有歌曲中最突出的主题。为了实现这一点,我先将所有歌曲放入列表中。然后,使用 SciKitLearn 的 CountVectorizer 工具,创建了所有这些歌曲的词袋表示。词袋模型是一种通过矩阵表示单词的简单方法。 然后,使用SciKitLearn 版本的LDA,我训练了一个可以在给定文本中找到8个主题的模型。

▌2.可视化主题

有两种将 LDA 模型进行可视化的方法。第一个是通过写一个函数,输出为每个主题中最突出的单词。这个结果似乎很有意思,但它只能提供了少量的信息。例如下图中的结果,能知道主题7与主题2不同,但无法得知更多它们之间不同程度的信息。



出于这个原因,我用了另一种可以在文本中显示主题的方法。

在Python中,有一个很棒的库叫做 pyLDAvis。它是一个专门使用 D3 来实现 LDA 模型可视化的库。D3可以说是目前最好的可视化工具。(但是,它主要为 Javascript 用户准备的。因此拥有此插件但对JavaScript 不太了解的人非常有用。)这个库通过降维来实现可视化。 降维将有许多变量的数据集压缩为较少量的特征。降维技术对于数据可视化非常有用。基于我要解决的问题,我认为最好使用T-SNE(T分布的随机邻域嵌入)来降低维数。



从我训练好的模型来看,Drake的大部分歌词都可以分类到了 Topic 2,一个占据图表大部分的大型主题。

Drake 所有主要专辑的主题又是什么样的呢?

我按照与之前相同的步骤来尝试处理这个问题,这次我没有用 LDA 算法去找每个专辑间的主题。 而是使用了定义函数的方法来显示他所有主要作品中最突出的单词。



总结



每当 Drake 发布新歌或专辑时,肯定会有不满的声音。但他的作品几乎总是在人气榜上排名靠前的位置。他的歌词瞬间也成为 Instagram 和 Facebook 话题的主要内容,还会霸占数星期。他的歌让人很容易记住,大部分原因要归功于他的歌词。

通过主题建模和命名实体识别完成了一个简单的 NLP 项目,也对文本内容(Drake的歌词)有了不同且更具体的理解。这只是一个起点,也建议大家在工作和生活中进行一些实践,不断尝试,积累技能。

原文链接:https://towardsdatascience.com/drake-using-natural-language-processing-to-understand-his-lyrics-49e54ace3662

--【完】--

大咖有约

2018 AI开发者大会(AI NEXTCon)将于11月8日盛大开幕!

商汤科技副总裁、工程院院长沈徽已确定参加本次大会,并作为计算机视觉技术专题出品人发表演讲,对商汤科技和AI开发感兴趣的伙伴可以扫码添加小助手微信,回复:大会,入群详细了解。

如何评价创作歌手的业务能力?试试让NLP帮你分析一下相关推荐

  1. 业务能力建设,赋能融资租赁公司数字化转型

    来源:全球租赁业竞争力论坛 作者:肖泱 竞争力论坛特约研究员 供职于中关村科技租赁 编者按: 本文为融资租赁公司数字化转型研究系列第三篇,继数据能力.流程能力后,提出建设业务能力,以期为融资租赁公司数 ...

  2. 三四面_业务能力团队协作能力与带人能力

    三四面_业务能力团队协作能力与带人能力 三四面到了很关键的部分,要不是技术负责人要不就是业务负责人,如果技术负责人或者业务负责人确定你OK了,那你这次的offer基本就能定了,HR那块再按照之后的方法 ...

  3. 微服务架构设计模式~根据业务能力进行服务拆分

    业务能力定义了一个组织的工作 组织的业务能力通常是指这个组织的业务是做什么,它们通常是稳定的. 与之相反,组织采用何种方式来实现它的业务能力,是随着时间不断变化的. 识别业务能力 一个组织有哪些业务能 ...

  4. 走进新华三解决方案 360°业务能力中心,读懂新华三如何助力企业数字化转型

    随着数字化转型步入"深水区",云计算.5G.AI 等新一代技术落地应用各行各业.企业对"端到端"解决方案的需求愈发强烈,亟待统一规划.建设和交付的"端 ...

  5. 业务架构设计:价值流与业务能力

    一.价值流 价值流是TOGAF业务架构中核心概念之一. 01 价值是商业模式的核心 业务架构中价值的概念是非常宽泛的,是指某物是有用的.能带来利益的.能满足诉求的,而不是仅指某物的货币价值. 商业模式 ...

  6. 【业务架构】LEANIX : 业务能力

    业务能力是组织执行核心功能所需的能力.材料和专业知识的表达或发声.企业架构师使用业务能力来说明业务的总体需求,以便更好地制定满足这些业务需求的 IT 解决方案. 目录 介绍 业务能力建模 您可以通过业 ...

  7. 「业务架构」定义业务能力-备忘单

    业务能力定义了一个业务在其核心做什么.这与"如何"做事或在哪里做事不同.业务能力是业务架构(i)的核心.在进一步讨论之前,让我说这不是一篇关于业务能力或能力映射重要性的文章.如果您 ...

  8. IMS系统简介及增值业务能力分析

    2010-07-07 17:27 摘  要:主要介绍了IMS产生的相关背景,IMS及其业务的基本概念.IMS系统的特性,最后简要分析了IMS的市场需求,以及针对市场需求IMS提供的不同业务类型,为运营 ...

  9. 前端工程师应该掌握的哪些技术和业务能力?

    随着互联网行业的快速发展,企业间的竞争加剧,独当一面的工程师已经成为很多一二线互联网公司招聘的标准.那么,如何成为企业青睐的高端技术人才呢?接下来,下面将从以下技术能力和业务能力两个方面进行阐述. 提 ...

最新文章

  1. windows计算器
  2. php删除空标签_PHP如何去除Html所有标签、空格以及空白
  3. 先进先出置换算法(FIFO)
  4. [SharePoint 2010] Configuration SMTP for SharePoint 2010
  5. kaggle训练模型
  6. 怎么计算网站高峰期并发量和所需的带宽?
  7. jdbc c3p0 mysql_JDBC + MySQL使用c3p0连接池
  8. mvn 使用中的错误
  9. python response重头开始_你必须学写 Python 装饰器的五个理由
  10. mysql报1840_mysql 帮助手册 以及 warning: World-writable config file 以及 ERROR 1840 (HY000) at line 24:...
  11. python运算符及优先级顺序
  12. SQL初级语法 [查询: SELECT]
  13. bin mysql u root_MySQL安装后续步骤(修改root密码)
  14. 16.1 调色板的使用
  15. Windows API函数大全(精心总结)
  16. 软件需求说明书怎么写
  17. 节假日查询API接口上线
  18. (模拟)HDU - 5857 Median
  19. 腾讯日常实习面试经历
  20. C++项目实战-先把项目跑起来看看

热门文章

  1. 自己实现文本相似度算法(余弦定理)
  2. MOSS 2010:Visual Studio 2010开发体验(14)——列表开发之事件接收器
  3. 接近WinHEC 2008
  4. php高级技术考试题,PHP高级技术考试题.doc
  5. 在新建好的ROS空间里面添加功能包
  6. 2021全国高校计算机能力挑战赛(决赛)Java
  7. Android Drawable 详解(教你画画!)
  8. Eclipse中git检出、更新、提交、合并分支、以及解决冲突
  9. 关于查询ios的app更新的历史版本记录
  10. JS高级程序设计拾遗