環境:
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 >>>
主人公的名字排名靠前,嗯,合情合理。