本港台开奖现场直播 j2开奖直播报码现场
当前位置: 新闻频道 > IT新闻 >

报码:教你打造一个曲风分类机器人(2)

时间:2017-07-08 18:46来源:本港台直播 作者:118KJ 点击:
然后在解析每个music的时候,使用PhantomJS来加载歌词界面,并获得到歌词。(由于获得歌词中包含br等这样的Html元素标签,所以通过正则手段去掉)最终将

然后在解析每个music的时候,使用PhantomJS来加载歌词界面,并获得到歌词。(由于获得歌词中包含<br>等这样的Html元素标签,所以通过正则手段去掉)最终将获得到的全部信息通过Pipeline输出到文件。

这样我们数据提取的过程就结束了,我们得到了一个.csv格式的文件输出,其中每一行就是一首歌及该歌曲的相应信息。部分截图如下:

报码:教你打造一个曲风分类机器人

最后我们就可以用这些数据去进行一些可视化绘图,比如不同风格中最受欢迎的歌手,以及每个风格中的Top10歌曲,不同风格中歌单的平均长。

报码:教你打造一个曲风分类机器人

报码:教你打造一个曲风分类机器人

2.数据清洗与特征选择

因为提取到数据还是相对完善,并没有出现复杂的数据清洗需求。因此只是简单的对数据做了一次去掉Nan空值的操作。因为我们做风格分类,所以我们考虑使用每一首歌曲的歌词作为特征,因此我们将爬取到的信息中的歌词和风格单提出来,其中歌词作为特征,风格作为标签。基于此构建一个牛逼的分类器,实现我们的风格分类。

通过一些复杂的正则和替换操作,拿到最终的训练数据,格式如下:

报码:教你打造一个曲风分类机器人

接下来呢,我们搞个有意思的东西【词云】 我们使用WordCloud 和 jieba 来实现这个小功能。效果图如下:

报码:教你打造一个曲风分类机器人

报码:教你打造一个曲风分类机器人

是不是还足够炫酷的样子!小插曲而已,那么接下来干点正事。我们要去构建模型了

Let us Go!!!

3.模型构建

因为分类问题嘛,我们现在只选取其中的2类进行分类,分别为【古风、英伦】。

首先因为数量不一致,会导致分类器的偏向问题,于是我们首先要对2类样本做一个剪裁。让英伦类样本数量大致与古风类样本相同。

报码:教你打造一个曲风分类机器人

然后呐,我们需要去掉一些对我们分类起不到作用甚至是有干扰的单词,也就是停用词。

停用词:在信息检索中,为节省存储空间和提高搜索效率,在处理自然语言数据(或文本)之前或之后会自动过滤掉某些字或词,这些字或词即被称为Stop Words(停用词)。这些停用词都是人工输入、非自动化生成的,生成后的停用词会形成一个停用词表。

我们接下来有好多种方法可以用来做这个分类

第一种思路是使用词频进行分类,可以通过构建每句话的词频向量完成我们的任务。类似可见新闻文本分类,垃圾邮件等。贝叶斯对这类问题处理的已经很不错了。

第二种就是使用了Word2Vec,这个工具可以根据词义构建词义向量。即语义上相近的两个单词那么他们之间的向量距离也更为相近,反之亦然。

举个例子:

香蕉,苹果 对应的词义向量的欧氏距离更为相近,而 香蕉 , 轮胎 对应的词义向量的欧氏距离要更远。

模型证实我们的分类效能有84%左右。我们仍然可以通过调参的方式去改进模型,提高准确率,这里不再提及。接下来我们可是要迫不及待的去检验一下成果了!

4.预测

哇!这一步真的是去感觉自己的劳动果实味道如何。预测是个享受的过程,中间不必赘述,咱直接跳到最后看看我们都能预测出来什么?

报码:教你打造一个曲风分类机器人

就这样我们亲手实现了一波机器学习流程。回看一下我们所做的,其实数据科学离我们很近,AI离我们也没有那么遥远!加油!

(责任编辑:本港台直播)
顶一下
(0)
0%
踩一下
(0)
0%
------分隔线----------------------------
栏目列表
推荐内容