码迷,mamicode.com
首页 > 其他好文 > 详细

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

时间:2017-07-03 17:23:08      阅读:315      评论:0      收藏:0      [点我收藏+]

标签:sort   image   .com   插件   sorted   歌词   div   开发   img   

结巴(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‘区别

 

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

标签:sort   image   .com   插件   sorted   歌词   div   开发   img   

原文地址:http://www.cnblogs.com/Ryana/p/7111787.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!