用Python实现小说中的汉字频率统计

 环境:

Python 3的代码,亲测可用。

思路:

是先把每个字符提出来放在列表里;再过滤掉其中的标点符号;最后用字典对某个字出现的频率进行累加。

扩展:

用处很多,稍微改改,既可以用来统计小说或文章,也可以用来决定让孩子学哪些常用字,还可以用来分析微博或朋友圈中好友的语言特点,需要的就拿去浪吧,记得送我一个滑稽的回复。

 1 #coding:utf-8
 2 
 3 word_lst = []
 4 word_dict = {}
 5 
 6 exclude_str = ",。!?、()【】<>《》=:+-*—“”…" 
 7 
 8 with open("芳华.txt","r") as fileIn ,open("芳华字频.txt",'w') as fileOut:
 9 
10     # 添加每一个字到列表中
11     for line in fileIn:
12         for char in line:
13             word_lst.append(char)
14 
15     # 用字典统计每个字出现的个数       
16     for char in word_lst:
17         if char not in exclude_str:
18             if char.strip() not in word_dict: # strip去除各种空白
19                 word_dict[char] = 1
20             else :
21                 word_dict[char] += 1
22 
23     # 排序
24     #   x[1]是按字频排序,x[0]则是按字排序
25     lstWords = sorted(word_dict.items(), key=lambda x:x[1],  reverse=True) 
26    
27     # 输出结果 (前100)
28     print ('字符	字频')
29     print ('=============')
30     for e in lstWords[:100]:
31         print ('%s	%d' % e)
32         fileOut.write('%s, %d
' % e)

输出结果:

  1 字符    字频
  2 =============
  3 的    3641
  4 一    1834
  5 了    1748
  6 是    1506
  7 不    1267
  8 我    1229
  9 她    1156
 10 他    985
 11 小    962
 12 个    921
 13 人    866
 14 在    853
 15 刘    745
 16 丁    728
 17 那    723
 18 上    705
 19 来    698
 20 峰    691
 21 们    684
 22 就    667
 23 说    577
 24 有    572
 25 到    564
 26 这    562
 27 里    537
 28 儿    520
 29 嫚    499
 30 子    494
 31 都    492
 32 着    491
 33 大    482
 34 么    462
 35 出    460
 36 看    441
 37 也    415
 38 得    404
 39 下    383
 40 时    367
 41 还    366
 42 女    349
 43 地    340
 44 头    331
 45 好    327
 46 没    326
 47 去    321
 48 过    320
 49 老    317
 50 跟    311
 51 你    309
 52 把    307
 53 对    303
 54 年    301
 55 会    300
 56 生    291
 57 为    289
 58 发    289
 59 要    281
 60 何    280
 61 亲    273
 62 后    272
 63 给    267
 64 和    266
 65 天    265
 66 家    259
 67 手    251
 68 长    251
 69 想    249
 70 多    242
 71 自    241
 72 开    240
 73 当    236
 74 兵    235
 75 样    232
 76 郝    230
 77 可    228
 78 起    225
 79 被    224
 80 成    216
 81 十    215
 82 什    215
 83 以    209
 84 事    209
 85 从    209
 86 点    208
 87 能    203
 88 两    203
 89 回    202
 90 门    201
 91 所    195
 92 淑    188
 93 雯    188
 94 只    188
 95 心    184
 96 身    184
 97 让    179
 98 道    179
 99 母    174
100 做    173
101 话    173
102 最    172
103 >>> 

主人公的名字排名靠前,嗯,合情合理。

本文由hATEmATH原创 转载请注明出处:http://www.cnblogs.com/hatemath/
原文地址:https://www.cnblogs.com/hatemath/p/8268234.html