用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 ('字符\t字頻')
29     print ('=============')
30     for e in lstWords[:100]:
31         print ('%s\t%d' % e)
32         fileOut.write('%s, %d\n' % 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 >>> 

 

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


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM