我的简书地址,欢迎关注:

https://www.jianshu.com/u/524cf64f28b5

写在前面

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

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

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

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

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

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

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

观察左侧的歌词:

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

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

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

总结

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

最后的最后,喜欢的可以加一波关注哦~

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

  1. clistctrl控件最后插入在后面_用图表控件做一个简单的员工信息查询系统

    前几天在上课的时候有同学说在做人员的信息查询的时候,经常的要去做查找搜索很麻烦,能不能做一个简单的人员信息查询系统,只需要选择人员的编号就可以查询到这个员工的信息.其实要实现这个同学的需求在EXCEL ...

  2. 【NLP】如何利用BERT来做基于阅读理解的信息抽取

    信息抽取 (Information Extraction: IE)是把文本里包含的信息进行结构化处理,变成计算机能够处理的结构,实体抽取.关系抽取.事件抽取等都属于信息抽取的范畴.在NLP领域,信息抽 ...

  3. 安卓 spinner下拉框 做模糊查询_用图表控件做一个简单的员工信息查询系统

    前几天在上课的时候有同学说在做人员的信息查询的时候,经常的要去做查找搜索很麻烦,能不能做一个简单的人员信息查询系统,只需要选择人员的编号就可以查询到这个员工的信息.其实要实现这个同学的需求在EXCEL ...

  4. 通过LRC文件分析出一首歌曲的速度

    // try1.cpp : 定义控制台应用程序的入口点. // #include "StdAfx.h" #include <stdio.h> //for printf, ...

  5. 【CIPS 2016】(8-10章)信息抽取、情感分析自动文摘 (研究进展、现状趋势)

    CIPS 2016 笔记整理 <中文信息处理发展报告(2016)>是中国中文信息学会召集专家对本领域学科方 向和前沿技术的一次梳理,官方定位是深度科普,旨在向政府.企业.媒体等对中文 信息 ...

  6. 如何用Python 制作词云-对1000首古诗做词云分析

    主页: https://codeshellme.github.io 今天来介绍一下如何使用 Python 制作 词云 . 词云又叫文字云,它可以统计文本中频率较高的词,并将这些词可视化,让我们可以直观 ...

  7. 爬取网易云音乐50000+首歌曲

    用python写的一个爬虫程序,可以实现歌曲的下载功能,大约有50000多首歌曲可以下载(本文仅供学习使用) 1.爬虫程序,请求网页,解析网页,储存所需要的信息(wangyi.py) from url ...

  8. 李宇春的歌用计算机弹,计算器当钢琴玉米弹出李宇春5首歌曲(组图)

    微博爆红的计算器弹琴视频截图. 计算器也能当钢琴弹 计算器可以用来做什么?当然是计算数据.如果实在结实,也许能用来砸核桃.但网友"玉米葱花粥"手中的计算器,还可以当钢琴用.近日,& ...

  9. python+jieba分析唐诗三百首

    python+jieba分析唐诗三百首 代码及源文件地址:poem_300 代码保证符合命名规范.遵循PEP8规则.导包顺序清晰.尽量做到复用性和不罗嗦 记得修改文件路径哟(^U^)ノ~YO 如果有帮 ...

  10. 抖音一个老人和一个机器人歌曲_抖音歌曲少年是谁唱的 最近抖音非常火的一首歌曲...

    原标题:抖音歌曲少年是谁唱的 最近抖音非常火的一首歌曲 最近抖音非常火的一首歌曲<少年>,我还是从前那个少年,大家都非常想知道<少年>谁唱的?今天我们就来为大家整理一下梦然的个 ...

最新文章

  1. (转载)浅析HTTP协议
  2. swing GeneralPath::cubicTo绘制平滑曲线
  3. python转移环境_python 虚拟环境及项目快速迁移
  4. Animation.wrapMode循环模式
  5. 华为新系统鸿蒙有哪些手机_华为鸿蒙OS系统传来新消息!外媒宣布:未来几年内华为手机都将无缘...
  6. 你可能对position和z-index有一些误解
  7. 测试数据构建器和对象母亲:另一种眼神
  8. qt调用mysql调用了存储过_Qt调用Server SQL中的存储过程
  9. ionic简单路由及页面传参
  10. C#LeetCode刷题之#62-不同路径(Unique Paths)
  11. IT人不要一辈子靠技术生存(转)
  12. Android:Eclipse如何删除ADT
  13. android studio app显示红叉_发现这个 APP 后,感觉可以放弃桌面时钟了
  14. 多Resource文件的相互引用与合并问题及其解决方案
  15. bzoj 3377: [Usaco2004 Open]The Cow Lineup 奶牛序列
  16. 使用HTML编写简单的邮件模版
  17. 超实用的XRD数据定性分析方法,三分钟上手,科研小白变大神!
  18. 黑客攻防技术宝典(六)
  19. android图片上传大小限制,Android解决图片上传过大问题
  20. HTML+CSS十分钟实现响应式布局页面,响应式布局实战教程

热门文章

  1. C语言之-1与0xffffffff
  2. 微信小程序登陆踩坑记录
  3. 期刊论文发表有哪些方法
  4. gmoj 6842. 【2020.11.5提高组模拟】淘淘蓝蓝之扮猪吃愉悦
  5. Knowledge 7一阶谓词逻辑-Generalized Modus Ponens规则
  6. 计算机键盘没有fn,电脑上没有FN键怎么打开小键盘
  7. 黑群晖二合一安装不了套件_家庭NAS部署指南(二)——如何自己动手安装一台黑群晖主机...
  8. Linux:DNS域名解析服务
  9. 腾讯云服务器到期续费流程
  10. Altium Designer禁止联网操作说明