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

posted @ 2020-09-23 10:36  duzf  阅读(156)  评论(0编辑  收藏  举报