python文字統計 基於Python的文字統計

2021-10-11 00:05:48 字數 1499 閱讀 8598

給定任意的文字檔案,統計檔案中的文字資訊。

#wordstats.py

#包含所有要保留的字符集

keep=

def normalize(s):

將字串轉化成標準字元

result=' '

for c in s.lower():

if c in keep:

result += c

return result

def make_freq_dict(s):

返回每個單詞的頻率數

s=normalize(s)

words=s.split()

d={}

for w in words:

if w in d: #如果w出現過,就將其出現的次數加1

d[w] += 1

else:

d[w] = 1 #如果w是第一次出現,就將其出現次數設定為1

return d

def print_file_stats(fname):

列印統計資訊

s=open(fname,'r').read()

num_chars=len(s) #規範化s之前計算字元數

num_lines=s.count('\n') #在規範化s之前計算行數

d=make_freq_dict(s)

num_words=sum(d[w] for w in d) #計算s包含多少單詞

#建立乙個列表,其中的元素為單詞及其出現次數的元組,並根據單詞出現的次數由高到低排列

lst=[(d[w],w) for w in d]

lst.sort() #排序

lst.reverse() #反轉

#螢幕上列印資訊

print("the file '%s' has: "%fname)

print(" %s characters" %num_chars)

print(" %s lines" %num_lines)

print(" %s words" %num_words)

print("\nthe top 10 most frequent words are:")

i=1 #迴圈變數

for count,word in lst[:10]:

print('%2s. %4s %s' %(i,count,word))

i += 1

def main():

print_file_stats('d:\\python3.4\\82208.txt')

if __name__ == '__main__':

main()

執行結果:

注:讀取之前應該確保檔案是可讀的,並且解除檔案的保護屬性。否則讀取會異常。

toby donaldson著,袁國忠譯.python 程式設計入門(第三版).人民郵電出版社.2013.12

Python 文字詞頻統計

hamlettxt gettext words hemlettxt.split counts for word in words counts word counts.get word,0 1這是一段遍歷hamlet.txt檔案的一段 s.split 函式返回的是列表list 我有一些困惑 1.最後...

Python例項 文字詞頻統計

最近在mooc跟著北京理工大學的嵩天老師學習python 受益匪淺,老師所講的通俗易懂,推薦給大家。在此記點筆記和注釋,備忘。今天所記得是文字詞頻統計 hamlet文字詞頻統計。直接上源 calhamletv1.py def gettext txt open e hamlet.txt r read ...

基於ZoomEye鍾馗之眼API的python指令碼

使用效果如下 如下 coding cp936 import os import sys import requests page 1 輸入個人賬號密碼 user passwd 驗證使用者名稱密碼,返回access token def check data info try respond reque...