看了一个Beyond的纪录片, 提到这个. 觉得心有不甘, 于是搜集了24首歌词, 用Python做了简单分词和词频统计.

源码(包括歌词)在: program-in-chinese/study

统计了总出现次数(词频列表)和词出现在歌曲的数目(词所在文件数列表). 前者算进了所有重复歌词, 后者是算某个词出现在了几首歌中.

源码:

import jieba
import os 所有词 = []
词频表 = {}
词所在文件 = {}
词所在文件数 = {}
路径 = "数据"
for 文件名 in os.listdir(路径):
print(文件名)
with open(os.path.join(路径, 文件名)) as 文件:
内容 = 文件.read()
分词结果 = jieba.cut(内容)
for 词 in 分词结果:
if 词 != " " and len(词) != 1:
所有词.append(词)
if 词 in 词频表:
词频表[词] += 1
词所在文件[词].add(文件名)
else:
词频表[词] = 1
词所在文件[词] = set([文件名]) for 词 in 词所在文件:
词所在文件数[词] = len(词所在文件[词]) # 词频列表 = sorted(词频表.items(), key=lambda d: d[1], reverse=True)
词所在文件数列表 = sorted(词所在文件数.items(), key=lambda d: d[1], reverse=True)
print(词所在文件数列表)

前者的最高频几个中文词(完整的在"所有词频输出.txt"):

后者的前几位(完整的在"所在文件数.txt"):

至少这几首经典里, "理想"比"唏嘘"更多.


觉得如果有个IDE插件能把一些常用的Python操作集合起来, 如果组织得好, 会挺有用. 因为写这个例子里, 包括取目录下的文件, 读取文本文件, 字典排序等等, 自己的第一反应还是到处找现成代码黏贴.

05-11 11:03