梅小雨 20180912-3 词频统计

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

代码:https://e.coding.net/meixiaoyu/work.git

词频统计 SPEC 20180918

功能1 小文件输入。 为表明程序能跑,结果真实而不是迫害老五,请他亲自键
盘在控制台下输入命令。

重难点分析:1.需要将wf.py文件生成wf.exe文件

                      2.实现文件的读取

代码片段:

 def main():
        infile=open(filename,'r')
        count=100
        words=[]
        data=[]
    #读取文件

 

  wordCounts={}
  for line in infile:
  processLine(line.lower(), wordCounts)
  pairs = list(wordCounts.items())

#记录词频数

  print("total : %d\n"% len(pairs))

  items = [[x,y]for (y,x)in pairs]
  items.sort()

  for i in range(len(items) - 1, -1 , -1):
  print(items[i][1] + "\t" + str(items[i][0]))
  data.append(items[i][0])
  words.append(items[i][1])
  infile.close()

#按词频数进行排序

 

运行结果如图所示:

 

 

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

重难点分析:文件更大,需要对出现频数不同的字符排序

代码片段:

 tf = {}
        for word in word_list2:
            word = word.lower()
                # print(word)
            word = ''.join(word.split())
            if word in tf:
                tf[word] += 1
            else:
                tf[word] = 1
        return tf

    def get_counts(words):
        tf = {}
        for word in words:
            word = word.lower()
            # print(word)
            word = ''.join(word.split())
            if word in tf:
                tf[word] += 1
            else:
                tf[word] = 1
#统计词频

 

#根据频数排序,得到频数最高的前十个词

运行效果图:

 

 功能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

重难点:批量读取文件

代码:

textFolder = folderName
    fileNameList = []
    for folder in folderList:
        if textFolder == folder:
            path1= os.listdir(folder)
            for i in path1:
                if os.path.splitext(i)[1] == '.txt':
                    fileNameList.append(os.path.splitext(i)[0])
#读取文件夹中文件进行批量读取

运行效果图:

 

功能4 从控制台读入英文单篇作品,这不是为了打脸老五,而是为了向你女朋
友炫酷,表明你能提供更适合嵌入脚本中的作品(或者如她所说,不过是更灵活
的接口)

关于重定向捕获的文件方面理解不清晰,查阅了相关资料,简单写了一些代码,但是还没有实现。

def main(argv):
    if sys.argv[1] == '-h':
        print ('test.py -i -s filename.txt')
        sys.exit()
    elif sys.argv[1]=="-s":
        if(len(sys.argv)==3):
        countFileWords(sys.argv[2])
        else:
        redirect_words = sys.stdin.read() 

psp表格

 

posted @ 2019-09-18 07:10  梅小雨6  阅读(222)  评论(0编辑  收藏  举报