我分析了2837首歌曲,做了个信息检索与信息抽取系统

写在前面

首先,作者受到 《我分析了42万字的歌词,为了搞清楚民谣歌手们在唱些什么》 这篇文章的影响,加上自己也是一个音乐爱好者,所以决定做一个网易云热门歌手歌词信息检索与信息抽取系统。

通过爬取 网易云音乐 60位热门歌手,每位歌手50首左右的热门歌词。根据输入的关键字,检索出相关性最高的10首歌,并能够从歌曲中抽取出歌名、演唱、作词、作曲、季节、情绪、个性化标签等结构化信息。

实现思路(非技术人员可以跳过此小节)

(1) 爬取歌词信息,生成文档数据集;
(2) 对所有文档进行分词处理;
(3) 构造“词-文档流”倒排索引;
(4) 利用向量空间模型技术,检索出相关度排名前十的歌曲;
(5) 分析歌词数据,从歌词中抽取出有效的结构化信息;
(6) 搭建B/S系统,进行结果展示。

流程图
实现环境(非技术人员可以跳过此小节)

(1)操作系统:Windows10 x64
(2)后端:Anaconda3(64-bit),Python3.6,Flask框架
(3)前端:HTML,CSS,JavaScript,JQuery,BootStrasp,Chrome

好了,进入正题,预备,开始……

我把目标锁定在网易云音乐热门的华语男歌手、华语女歌手以及华语组合/乐队,每一类爬取20个热门歌手,这样我就有了60位歌手的信息。
网易云歌手

爬取的歌手个人信息

有了歌手信息,我就可以爬取歌手的歌曲了,每个歌手大概都可以爬取50首左右,因此最终我获得了2837首歌曲。
爬取歌词过程

结果1

结果2

我们以周杰伦的歌曲为例,看一下爬取的结果。
周杰伦歌曲

告白气球
有了这些数据,按照实现思路,就可以搭建信息检索与信息抽取系统了。(非技术人员可以跳过此小节)

(1)使用“jieba”中文分词库对歌词数据进行分词处理;
(2)计算每首歌词中每个词的TF-IDF值,构建字典集;
(3)在用户输入后,构建查询向量,利用向量空间模型,计算查询向量和文档向量的相似度,取排序前十名的歌曲;
(4)进行结构化信息抽取,抽取出歌曲的歌名、演唱、作曲、作词、季节、情绪,个性化标签;
(5)搭建B/S展示系统,在web端接收用户输入,并将检索和抽取结果在web端显示,使用Flask进行前端和Python后端数据交互。

网易云热门歌手歌词信息检索与信息抽取系统

展示系统做的有些简单,欢迎各位吐槽。首先,进入主界面:

主界面

我们在检索框中输入想要检索的内容。比如,我们输入“确认过眼神,才能够遇到对的人”,点击检索一下,就可以得到检索结果:

检索结果
如图,检索框那一行显示的是检索时间为2.4秒,下面列出按相似度得分从大到小排序的前10篇歌词文档,包括排名、歌曲名、演唱歌手以及相似度得分。同时,每一个歌曲名是一个链接,可以点击。

以点击排名第一的歌词文档《醉赤壁》链接为例,跳转链接:

醉赤壁
左侧显示的是《醉赤壁》这首歌的歌词内容,右侧显示的是抽取的结构化信息。

观察左侧的歌词:

醉赤壁歌词
这些红色框中的歌词“确认过眼神 我遇上对的人”与我们的输入“确认过眼神,才能够遇到对的人”不完全相同,但还是检索了出来,说明与我们想要检索的内容相关性较高。

观察右侧抽取的结构化信息:

醉赤壁抽取的结构化信息
我们发现,歌词中并没有出现有关“秋天”的字样,但是还是提取出了季节为秋天这个信息。而《醉赤壁》这首歌描述的正是秋天的景象,这说明我们系统有较强的信息抽取能力。同时,我们给这首歌计算了一个情绪值,为-4,表示这首歌是有点负面的。通过对歌词的分析,发现这首歌的气氛是比较凄凉的,所以我们的抽取还是很准确的。但是,在抽取个性化标签时,第一个标签“情极”貌似不是一个词。当然,这个取决于“jieba”中文分词库,它把“情极”作为了一个词。因为它在这首歌的出现率还是很高的,所以作为了个性化标签。如果分词的结果更准确一些,我们的提取也将更准确。

总结

本次分析使用了一些机器学习及自然语言处理(NLP)的知识。由于本人是研究图像处理的,对NLP也是初次尝试,加之时间有限,做得稍微粗糙了一些,如有错误欢迎指正。

最后的最后,喜欢的可以点一下喜欢,加一波关注哦~
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 158,736评论 4 362
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 67,167评论 1 291
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 108,442评论 0 243
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 43,902评论 0 204
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 52,302评论 3 287
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 40,573评论 1 216
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 31,847评论 2 312
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 30,562评论 0 197
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 34,260评论 1 241
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 30,531评论 2 245
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 32,021评论 1 258
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 28,367评论 2 253
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 33,016评论 3 235
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 26,068评论 0 8
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 26,827评论 0 194
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 35,610评论 2 274
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 35,514评论 2 269

推荐阅读更多精彩内容