zoukankan      html  css  js  c++  java
  • 徐丽君 20190912-3 词频统计

    此作业的要求参见https://edu.cnblogs.com/campus/nenu/2019fall/homework/6583

    我的代码源地址:https://e.coding.net/xulijun/xulijun11.git

    词频统计 SPEC 20180918

    1.功能1 

    小文件输入。通过程序统计文件中单词的总量total,并统计各个单词出现的频率,total一项中相同的单词不重复计数数,出现两次的单词记为1次。

    1.1 重点难点:

    (1)题目要求用控制台输入命令行参数,python代码不能直接在控制台运行,所以我查阅资料,了解到python的命令行参数是用sys.argv[]获取的。

    (2)统计单词词频我使用了re.findall()方法通过正则表达式生成列表,然后用collections.counter()统计单词数量。

    代码如下

     f = open(path, encoding='utf-8')
        words = re.findall(r'[a-z0-9^-]+', f.read().lower())
    
    def count(words):
        collect = collections.Counter(words)
        num = 0
        for i in collect:
            num += 1
        print('total %d words
    ' % num)
        result = collect.most_common(10)
        for j in result:
            print('%-8s%5d' % (j[0], j[1]))

    1.2 效果展示

    2.功能2

    支持命令行输入英文作品的文件名,请老五亲自录入。

    2.1 重点难点

    功能二要求输入的文件名不带txt后缀,我通过查阅资料,利用参数sys.argv[1]是否等于‘-s’来判断执行功能一还是功能二。

    代码如下

    def main(argv):
        if sys.argv[1] == '-s':
            if (len(sys.argv) == 3):
                doCount(sys.argv[2])
            else:
                redicertText = sys.stdin.read()
                doCountByPurText(redicertText)
        elif os.path.isdir(sys.argv[1]):
            fileFindAndCount(sys.argv[1])
        else:
            doCount(sys.argv[1])
    
    def doCount(accept):
        s = '.txt'
        if s in accept:
            path = accept
        else:
            path = accept + '.txt'
        f = open(path, encoding='utf-8')
        words = re.findall(r'[a-z0-9^-]+', f.read().lower())
        count(words)

     

    2.2 效果展示

    3.功能3

    支持命令行输入存储有英文作品文件的目录名,批量统计。

    3.1 重点难点

    如何判断输入的路径是一个文件夹,可以用os.path.isdir()方法,用os.listdir()方法遍历文件夹。

    代码如下:

    def fileFindAndCount(path1):
        files = os.listdir(path1)
        for file in files:
            if os.path.isfile(file):
               doSomeFileCount(file)

    3.2 效果展示

    4.功能4

    从控制台读入英文单篇作品,这不是为了打脸老五,而是为了向你女朋
    友炫酷,表明你能提供更适合嵌入脚本中的作品(或者如她所说,不过是更灵活
    的接口)。如果读不懂需求,请教师兄师姐,或者 bing: linux 重定向,尽管
    这个功能在windows下也有,搜索关键词中加入linux有利于迅速找到。

    4.1 重点难点

    百度和请教了学长重定向的内容,了解了基本概念,但未能编译成功,我会努力把这个功能编写完善。

    PSP表格

    总结:刚开始第一个功能,由于查阅资料,时间较长由于能力和时间有限第四个功能没有编译成功,即使作业截止我也打算努力把他写出来。

  • 相关阅读:
    杭电ACM 2052 Picture
    杭电ACM求平均成绩
    杭电ACM水仙花数
    cigarettes
    分数加减法
    推荐几个sql server牛人的博客
    npm 介绍
    centos Flash Player插件的安装
    node.js学习(1)
    查询功能:yum [list|info|search|provides|whatprovides] 参数
  • 原文地址:https://www.cnblogs.com/xulijun811/p/11536904.html
Copyright © 2011-2022 走看看