数据分析:从歌词了解歌手

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了数据分析:从歌词了解歌手相关的知识,希望对你有一定的参考价值。

结巴(jieba)是国人开发的一款插件,可以对中文进行分词,根据分词粒度的粗细,可以获取一些意想不到的信息

开源地址:http://www.oschina.net/p/jieba/

下面实例分析,从歌词文本获取歌手的高频词汇,侧面了解歌手表达的主题

#coding=utf-8
import os
from collections import Counter
import jieba

#同一首歌中出现多次的词,只能算作一次
all_words = []    #用词列表
L = os.listdir(rC:\\Users\\HP\\Desktop\\lyrics)
print L   #[‘\\xb3\\xc9\\xb6\\xbc.txt‘, ‘\\xb9\\xc4\\xc2\\xa5.txt‘....]
for filename in os.listdir(rC:\\Users\\HP\\Desktop\\lyrics):  
    filename1 = filename.decode(gbk)
    print filename1
    with open(C:/Users/HP/Desktop/lyrics/ + filename1) as f:
        lyrics = f.read()
        data = jieba.cut(lyrics)
        print type(data)
        all_words.extend(set(data))  #set(data)去除重复的词,得到这首歌的用词列表

count = Counter(all_words)   #统计出现次数,以字典的键值对形式存储,元素作为key,其计数作为value。
result = sorted(count.items(), key=lambda x: x[1], reverse=True)  #key=lambda x: x[1]在此表示用次数作为关键字

for word in result:
    print word[0], word[1]   

输出:

技术分享

 

源码分析:

1.os.listdir(r‘C:\\Users\\HP\\Desktop\\lyrics‘):获取指定目录下的文件名称

注:必须保证运行时在当前目录,即C:\\Users\\HP\\Desktop\\lyrics

2.open(‘C:/Users/HP/Desktop/lyrics/‘ + filename1):filename1需是能看懂的字符,不能是unicode或者其他非人类的字符

3.sorted(listname,key=lambda x: x[1]):key表示用列表元素的某个属性和函数进行作为关键字

4.‘C:/Users/HP/Desktop/lyrics/‘和‘C:\\Users\\HP\\Desktop\\lyrics‘区别

 

以上是关于数据分析:从歌词了解歌手的主要内容,如果未能解决你的问题,请参考以下文章

Python大佬分析了15万歌词,告诉你民谣歌手们到底在唱什么

大数据在linux下分析当红歌手歌词风格

简单版实现歌词读条

翻译下A little respect歌词

wonderful u - demo version歌词大意

网易云音乐怎么下载一个歌手的全部歌曲,除了一个专辑一个专辑下