• 马广铭
  • 2016035107159
  • 码云仓库:https://gitee.com/magegeya/word_frequency/tree/master

 

代码分析:

SRE实战 互联网时代守护先锋,助力企业售后服务体系运筹帷幄!一键直达领取阿里云限量特价优惠。

1.导入模块

from string import punctuation

2.读取文件

def process_file(dst):     
    try:    
        f = open(dst,'r')
    except IOError as s:
        print (s)
        return None
    try:     
        bvffer = f.read()
    except:
        print ("Read File Error!")

        return None


    f.close()


    return bvffer

3.处理缓冲区,将字母全部转换为小写,以空格分隔单词,将重复词汇存入字典

def process_buffer(bvffer):
    if bvffer:
        word_freq = {}
        # 下面添加处理缓冲区 bvffer代码,统计每个单词的频率,存放在字典word_freq

        bvffer = bvffer.lower()
        #将文档中的全部字母改为小写,防止大小写混淆
        
        words = bvffer.strip().split()
        #以空格分割词汇
        
        for word in words:
            word_freq[word] = word_freq.get(word,0)+1
        #将重复词汇存到字典里
            
        return word_freq

4.输出重复率前十的词汇

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)

5.运行

if __name__ == "__main__":
    import argparse
    parser = argparse.ArgumentParser()
    parser.add_argument('dst')
    args = parser.parse_args()
    dst = args.dst
    bvffer = process_file(dst)
    word_freq = process_buffer(bvffer)
    output_result(word_freq)

 

运行结果:

大文件:

 作业三_查重+分析效能 随笔 第1张

小文件:

作业三_查重+分析效能 随笔 第2张

 

性能分析:

作业三_查重+分析效能 随笔 第3张

 

共执行3219次,耗时0.004秒

 

总结:

  • 通过这次作业学习到了词汇查重这项能力
  • 明白了如何分析效能以及分析效能的目的
  • 本次作业内容并不困难,但是操作方式不当,所以百度了很久,百度的内容也并不详细,希望老师上课时可以讲一下操作方法
扫码关注我们
微信号:SRE实战
拒绝背锅 运筹帷幄