201671010413葛进花 词频统计软件项目报告

一.需求分析

用户需求:

1.程序可读入任意英文文本文件,该文件中英文词数大于等于1个。

2.程序需要很壮健,能读取容纳英文原版《哈利波特》10万词以上的文章。

3.指定单词词频统计功能:用户可输入从该文本中想要查找词频的一个或任意多个英文单词,运行程序的统计功能可显示对应单词在文本中出现的次数和柱状图。

4.高频词统计功能:用户从键盘输入高频词输出的个数k,运行程序统计功能,可按文本中词频数降序显示前k个单词的词频及单词。

5.统计该文本所有单词数量及词频数,并能将单词及词频数按字典顺序输出到文件result.txt。


二.功能设计

基本功能:

1.读入读出文件功能(将文件进行读取,存放)
2.用户输入功能(用户输入想要查询的单词,以及查询高频单词的个数)
3.词频统计功能
4.排序功能(降序排序和按字典顺序排序)
5.显示功能(显示柱状图,显示前k个高频单词的词频,显示指定单词出现的次数)
备注:因为编码能力有限,所以只能实现部分功能,没有按照老师的要求将功能全部实现。


三.设计实现

用findall 抽取出[a-z,A-Z]的英文单词 然后用for循环遍历统计单词出现的次数


四.测试运行


五.部分代码

import re #应用re模块

lines_count = 0
chars_count = 0
words_dict= {}

f=open('cyy.txt','r')

for line in f:
    lines_count = lines_count + 1
    chars_count  = chars_count + len(line)
    match = re.findall(r'[^a-zA-Z]+', line)#匹配英文单词
    for i in match:
        line = line.replace(i, ' ')
        lines_list = line.split()
    for i in lines_list:
        if i not in words_dict:
            words_dict[i] = 1
        else:
            words_dict[i] = words_dict[i] + 1
f.close()

for w,n in words_dict.items():
    print(w,n)

六.PSP展示

任务内容 计划共完成需要的时间(min) 实际完成需要的时间(min)
计划 10 10
估计这个任务需要多少时间,并规划大致工作步骤 30 20
开发 200 200
需求分析 (包括学习新技术) 10 10
生成设计文档 20 15
设计复审 (和同事审核设计文档) 20 15
代码规范 (为目前的开发制定合适的规范) 20 20
具体设计 30 30
具体编码 100 100
代码复审 25 25
测试(自我测试,修改代码,提交修改) 20 20
报告 30 30
测试报告 10 10
计算工作量 5 3
事后总结 ,并提出过程改进计划 6 4

        从 PSP表中可以看出,我所有的阶段付出的时间都比别人多好多可能是因为第一次,缺乏经验,在每一个阶段我都在搜索,归纳,总结,所以付出的时间相对来说就比别人多好多,不过通过做这次表格,让我了解了做一个项目所要经历的阶段,都要做什么,虽然细节还是不懂,但是大概框架还是知道了,所以在今后的学习中,我会加倍努力,弥补自己的不足。

点击查看源码

猜你喜欢

转载自www.cnblogs.com/gejinhua/p/10550323.html