日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

第三次作业(词频统计及其效能分析)

發布時間:2024/4/15 编程问答 33 豆豆
生活随笔 收集整理的這篇文章主要介紹了 第三次作业(词频统计及其效能分析) 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

?博客開頭給出自己的基本信息,格式建議如下:

  • 學號2017035107122;
  • 姓名:張煒一
  • 碼云地址:https://gitee.com/weiyi1208/word_frequency

調用次數最多的

執行時間最長的

?

將文件讀入緩沖區(dst指文本文件存放路徑,設置成形參,也可以不設,具體到函數里設置)

def process_file(dst): # 讀文件到緩沖區
try: # 打開文件
txt=open(dst,"r")
except IOError as s:
print (s)
return None
try: # 讀文件到緩沖區
bvffer=txt.read()
except:
print ("Read File Error!")
return None
txt.close()
return bvffer

?

設置緩沖區,將文本度數緩沖區,并對文本的特殊符號進行修改,使其更容易處理,并讀入字典。
def process_buffer(bvffer):
if bvffer:
word_freq = {}
# 下面添加處理緩沖區 bvffer代碼,統計每個單詞的頻率,存放在字典word_freq
bvffer=bvffer.lower()
for x in '~!@#$%^&*()_+/*-+\][':
bvffer=bvffer.replace(x, " ")
words=bvffer.strip().split()
for word in words:
word_freq[word]=word_freq.get(word,0)+1
return word_freq

?

設置輸出函數,運用lambda函數對詞頻排序,并以“詞”——“頻”格式輸出
def output_result(word_freq):
if word_freq:
sorted_word_freq = sorted(word_freq.items(), key=lambda v: v[1], reverse=True)
for item in sorted_word_freq[:10]: # 輸出 Top 10 的單詞
print (item)

?

封裝main函數,以便接下來的cProfile的性能評估
def main():

dst = "Gone_with_the_wind.txt"
bvffer = process_file(dst)
word_freq = process_buffer(bvffer)
output_result(word_freq)

if __name__ == "__main__":
import cProfile
import pstats
cProfile.run("main()", "result")
# 直接把分析結果打印到控制臺
p = pstats.Stats("result") # 創建Stats對象
p.strip_dirs().sort_stats("call").print_stats() # 按照調用的次數排序
p.strip_dirs().sort_stats("cumulative").print_stats() # 按執行時間次數排序

?

本次作業使我學習了python中cProfile的使用方式,通過此次作業是我對如何減少軟件執行時間有了新的想法。

轉載于:https://www.cnblogs.com/weiyi08/p/10616809.html

總結

以上是生活随笔為你收集整理的第三次作业(词频统计及其效能分析)的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。