本文共 1111 字,大约阅读时间需要 3 分钟。
问题:载入文档,统计字频并排序。
引申:如果需要统计中文词频,首先需要进行中文分词,可以通过结巴分词包来做简单的中文分词,然后去统计词频。
方法一:字典方法。将字作为字典的键,字频作为字典的值。在录入字时首先判断是否存在于字典键中,如果已存在,更改字典的值,如果不存在,将新的字作为键,值设为1。最后根据键值排序。
#字典方法统计字频dic = {}path = r'test.txt'f = open(path,'r')f.closefor i in f.readlines(): for j in i: if j in dic.keys(): dic[j] += 1 else: if j == ' ' or j == '\n': continue else: dic[j]=1dic = sorted(dic.items(), key=lambda d:d[1], reverse = True) for k in range(len(dic)): print dic[k][0],dic[k][1]
方法二:数组方法。原理同上,添加了读取文档,保存到文档。
path = r'C:/Users/Desktop/test.txt'f = open(path,'r')f.closezi = []count = []for i in f.readlines(): i = i.decode('gbk') #print i for j in i: if j in zi: count[zi.index(j)] += 1 else: if j == ' ' or j == '\n': continue else: zi.append(j) count.append(1)for i in range(len(zi)): print zi,'\n',countpath_w = r'C:/Users/Desktop/testWrite.txt'g = open(path_w,'w')g.write(str(zi))g.write('\n')g.write(str(count))g.close
转载地址:http://xmsti.baihongyu.com/