您好,登錄后才能下訂單哦!
python統計文本中字頻的方法?這個問題可能是我們日常學習或工作經常見到的。希望通過這個問題能讓你收獲頗深。下面是小編給大家帶來的參考內容,讓我們一起來看看吧!
思路:
是先把每個字符提出來放在列表里;
再過濾掉其中的標點符號;
最后用字典對某個字出現的頻率進行累加。
下面以芳華這本小說為例:
#coding:utf-8 word_lst = [] word_dict = {} exclude_str = ",。!?、()<>《》=:+-*—“”…" with open("芳華.txt","r") as fileIn ,open("芳華字頻.txt",'w') as fileOut: # 添加每一個字到列表中 for line in fileIn: for char in line: word_lst.append(char) # 用字典統計每個字出現的個數 for char in word_lst: if char not in exclude_str: if char.strip() not in word_dict: # strip去除各種空白 word_dict[char] = 1 else : word_dict[char] += 1 # 排序 # x[1]是按字頻排序,x[0]則是按字排序 lstWords = sorted(word_dict.items(), key=lambda x:x[1], reverse=True) # 輸出結果 (前100) print ('字符\t字頻') print ('=============') for e in lstWords[:100]: print ('%s\t%d' % e) fileOut.write('%s, %d\n' % e)
輸出結果
字符 字頻 ============= 的 3641 一 1834 了 1748 是 1506 不 1267 我 1229 她 1156 他 985 小 962 個 921 人 866 在 853 劉 745 丁 728 那 723 上 705 來 698 峰 691 們 684 就 667 說 577 有 572 到 564 這 562 里 537 兒 520 嫚 499 子 494 都 492 著 491 大 482 么 462 出 460 看 441 也 415 得 404 下 383 時 367 還 366 女 349 地 340 頭 331 好 327 沒 326 去 321 過 320 老 317 跟 311 你 309 把 307 對 303 年 301 會 300 生 291 為 289 發 289 要 281 何 280 親 273 后 272 給 267 和 266 天 265 家 259 手 251 長 251 想 249 多 242 自 241 開 240 當 236 兵 235 樣 232 郝 230 可 228 起 225 被 224 成 216 十 215 什 215 以 209 事 209 從 209 點 208 能 203 兩 203 回 202 門 201 所 195 淑 188 雯 188 只 188 心 184 身 184 讓 179 道 179 母 174 做 173 話 173 最 172 >>>
感謝各位的閱讀!看完上述內容,你們對python統計文本中字頻的方法大概了解了嗎?希望文章內容對大家有所幫助。如果想了解更多相關文章內容,歡迎關注億速云行業資訊頻道。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。