词频统计及其效能分析

1.个人信息

  • 学号:2017XXXXX7199
  • 姓名:王子铭
  • 词频统计及其效能分析仓库:

2.程序分析

1.导入正则表达式 (re模块)和string模块中的punctuation方法

import re
from string import punctuation

2.打开文件读入缓冲区

def process_file(dst):
    # 读文件到缓冲区
    try:
        # 打开文件
        fi1e=open(dst,"r")
    except IOError as s:
        print (s)
        return None
    try:
        # 读文件到缓冲区
        bvffer=fi1e.read()
    except:
        print ("Read File Error!")
        return None
    fi1e.close()

    return bvffer

3.process_buffer函数功能主要是对读取出来的文件进行操作对词频进行计数。

def process_buffer(bvffer):
    if 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

4.遍历切割完的字符串,并输出统计频率Top 10 的单词

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)

4.最后一段代码的功能为初始化程序

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)

3 性能分析结果及改进。

执行次数最多的代码,执行时间最长的代码。

4程序运行命令、运行结果截图以及改进后的程序运行命令及结果截图 。


1554101983873


5 给出你对此次任务的总结与反思。

1由于个人技术原因,此次作业由他人指导完成。
2通过这次作业又复习了一遍正则表达式 (re模块)和string模块中的punctuation方法 。
3通过这次作业了解效能分析有什么用,能做出简单的效能分析。
4.学会了git创建分支和切换到新建分支的方法。
5.由于失误将码云的master分支删除。

posted @ 2019-04-01 15:40  北软王子铭  阅读(289)  评论(0编辑  收藏  举报