20200917-2 词频统计
此作业的要求参见:https://edu.cnblogs.com/campus/nenu/2020Fall/homework/11206
词频统计 SPEC
老五在寝室吹牛他熟读过《鲁滨逊漂流记》,在女生面前吹牛热爱《呼啸山庄》《简爱》和《飘》,在你面前说通读了《战争与和平》。但是,他的四级至今没过。你们几个私下商量,这几本大作的单词量怎么可能低于四级,大家听说你学习《构建之法》,一致推举你写个程序名字叫wf,统计英文作品的单词量并给出每个单词出现的次数,准备用于打脸老五。
希望实现以下效果。以下效果中数字纯属编造。
功能1 小文件输入。 为表明程序能跑,结果真实而不是迫害老五,请他亲自键
盘在控制台下输入命令。
实现:重点是如何计算频数,并且如何按照频数排序。
dir_a = {} for str1 in list1: if str1 != ' ': if str1 in dir_a.keys(): dir_a[str1] = dir_a[str1] + 1 else: dir_a[str1] = 1 dir_b = sorted((dir_a).items(), key=lambda x: x[1], reverse=True)
效果:
功能2 支持命令行输入英文作品的文件名,请老五亲自录入。
实现:根据空格数来计算词频。使用open函数来读取文件。
try: with open(filename, 'r', encoding='UTF-8') as f_obj: content = f_obj.read() countNumber(content, flag)
效果:
功能3 支持命令行输入存储有英文作品文件的目录名,批量统计。
>dir folder
gone_with_the_wand
runbinson
janelove
>wf folder
gone_with_the_wand
total 1234567 words
the 5023
a 4783
love 4572
fire 4322
run 3822
cheat 3023
girls 2783
girl 2572
slave 1322
buy 822
----
runbinson
total 1234567 words
实现:1.对python中的函数还不够熟悉,从此项目中,对其中一些函数的了解更多了。2.要会读取文件。
for filenames in fileNameList: fileName = filenames + ".txt" path = pathCurrent + fileName print(filenames) countFileWords(path, flag)
效果:
功能4 从控制台读入英文单篇作品,这不是为了打脸老五,而是为了向你女朋
友炫酷,表明你能提供更适合嵌入脚本中的作品(或者如她所说,不过是更灵活
的接口)。如果读不懂需求,请教师兄师姐,或者 bing: linux 重定向,尽管
这个功能在windows下也有,搜索关键词中加入linux有利于迅速找到。
实现:对于重定向有了一定的了解。
elif str(os.path.exists(sys.argv[1])) == 'True': getdocument(sys.argv[1]) else: inputfile = sys.argv[1] + '.txt' flag = 1 countFileWords(inputfile, flag)
效果:
PSP
这周的作业对我而言还是有不小的难度的,也发现身边同学很多能力比较强的,值得我去学习,接下来一定要努力提高自己的能力。
代码及版本控制
(5分。虽然只有5分,但此题如果做错,因为教师得不到你的代码,所以会导致“功能实现”为负分。)
代码要求在 coding.net 做版本控制。要求push&pull时使用git客户端,不允许使用web页面。
要求频繁checkin。要求在PSP中记录的每次离开键盘5分钟以上,需要checkin。如果你持续长达4小时不离开键盘,教师要求展示此项能力。
推荐git客户端tortoisegit。
推荐先pull [https://github.com/weijunying2019102969/novelsfortest.git],里面有测试用例。
github链接:https://github.com/Freddzf/zuoye