R语言:对说唱歌词的简单文本分析

本文使用R语言对说唱歌词进行文本分析,通过TF-IDF值提取每个歌手的代表性词汇,并进行可视化展示,揭示说唱歌手的独特风格。数据来源于公开GitHub仓库,包括36位说唱歌手的歌词。分析结果直观展示了如Eminem的Slim Shady、The Notorious B.I.G的Biggie Smalls等艺名的重要性。
摘要由CSDN通过智能技术生成

这一阵公司的事情越来越忙,感觉光是应付工作就要耗费很大的精力,工作之外的越来越没有时间做了。再加上最近一直在搞落户的事情,耗费了很多精力,大概工作之后的状态都是这样吧。12月份因为报表的事情连续加了半个月的班,本来想结束之后好好总结下的,但是后面实在太懒就鸽掉了。况且感觉都是些比较个人的经验也没啥好总结的。

前两天把一年前在Kaggle上写的一份代码拿出来改成了data.table版本,而且解决了之前的一个小bug。基本的思路是对歌词进行一系列的分词、词干提取等操作。然后将每个说唱歌手视为一篇文档,求出每个词的tf-idf值。tf-idf值能够很好地衡量每个词对于一篇文章的重要程度。也就是说,如果某个词在某个说唱歌手的歌曲中出现频率很高,但在所有说唱歌词中出现频率很低,我们会认为这个词很有助于区分这个说唱歌手。tf-idf值越高,那么该词的区分文档的能力就越高。在求出所有词的tf-idf值之后,我们取每个歌手的top 15词汇,做出可视化。

所有的歌词都是我从github一个公开repo上找来的,共36位歌手,当然这个名单中有些已经过世了(R.I.P Biggie/Big L/Mac Miller/Easy-E),而有的名字则是我从未涉猎过的。原始数据存储在txt文件中,我根据\n换行符将它们分行存储到csv文件中。

library(data.table)
library(ggplot2)
library(tidytext)
library(textstem)

stop_words = as.data.table(stop_words)
rap = fread('../input/data-concat/rap_all.csv')
rap[,text:= lapply(text, iconv, 'UTF-8', 'ASCII', sub='')]

rap_dt = unnest_tokens(rap
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值