软件工程第二次作业 词频统计

1.项目名称:词频统计

2.代码地址:https://coding.net/u/songyuu/p/python_wf/git

3.代码如下:

 1 import os
 2 import re
 3 import collections
 4 #print(os.getcwd()) #显示wf.py路径
 5 #print(os.listdir())#显示目录下的文件
 6 file_name=input("wf  ")
 7 if not os.path.isfile(file_name+‘.txt‘):
 8     print(‘文件不在当前文件夹‘)
 9 else:
10     file_name_word = open(file_name+‘.txt‘).read()
11     # print(len(file_name_word),type(len(file_name_word)))
12     file_name_word_list = re.split(‘\W+‘, file_name_word.lower())
13     # lower变小写 split 切割  re正则表达式
14     if ("") in file_name_word_list:
15         #print(file_name_word_list)
16         file_name_word_list.remove(‘‘)
17         #print(file_name_word_list)
18         #file_name_word_list.remove("")
19     # 删除列表中的空元素
20     # print(type(file_name_word_list))
21     file_name_word_list_t = collections.Counter(file_name_word_list)
22     # collections 模块调用,统计列表
23     print("total", len(file_name_word_list_t), "words\n")  # 列表中有多少个元组
24     a = file_name_word_list_t.most_common(10)
25     #print(a)
26     # 显示次数最高的前10
27     for i in a:  # 输出结果换行
28         j=(i[0].ljust(15),i[1])#对齐
29         k = str(j)  # 元组变字符串
30         l = k.replace("‘", "")
31         m = l.replace("(", "")
32         n = m.replace(")", "")# 去除字符串标点
33         print(n.replace(",", "      "))
34
35     print(‘-------------------‘)
36 input()

4.测试:

5.总结:

时间紧迫,只实现前两个功能,遇到问题如下:

输出结果是元组,为了符合作业要求,转换成字符串然后把标点符号删掉,我觉得应该还有更好的方法,现在还没又找到。

统计时发现在word中apple.pear算一个单词,apple. pear算两个单词,有的句子末尾没有加空格,有的句子末尾加空格,word计数不一样。

有的名词中间也有标点符号(.)和(-),所以我感觉要做出完美的词频统计还需要考虑很多,我做的这个小程序还不是很完善。

通过做作业得到的感受:

因为是刚学习python,列表、元组、字符串经常弄混,经过这次作业记忆深刻一些。在作业中我用的都是很基础的知识,没有定义函数,代码显得有点“低端”,以后尽力提高。

时间: 2024-08-19 00:52:51

软件工程第二次作业 词频统计的相关文章

软件工程第二周作业----词频统计

实验要求: 统计文件中出现过的单词数目,并按数目和字典顺序排序,将结果输出到指定文件中.需要统计单词的文件名从命令行输入. 实验分工: 代码编写&测试:张文杰 博客编写:朱昱青 实验思路: 1.在主函数中打开输入和输出文件,获得文件的指针,然后以指针为参数调用count()函数进行词频统计. 2.在count()函数中,利用while循环,不断从文件中分离出可能是单词的字符串(也就是被分隔符隔开的连续字母和数字),然后进一步判断该字符串是否是一个单词.如果是,再查看这个单词是否出现过,如果出现过

第二周作业-词频统计

本周作业是词频统计,编程具体要求如下: https://edu.cnblogs.com/campus/nenu/SWE2017FALL/homework/922 对实现功能进行简要的介绍: 功能一:小文件输入,为表明程序能跑.需要在控制台下输入命令,得到文件中不重复的总单词数.并对单词出现的次数进行排序输出. 功能二:支持命令行输入英文作品的文件名,亲自录入,输出显示不重复单词总数,并对出现频率最高的前10的单词进行输出 功能三:支持命令行输入存储有英文作品文件的目录名,批量统计词频. 功能四:

【现代软件工程】第一次作业——词频统计

目录 1.1基本功能 1.2设计实现 1.3代码结构 1.4测试运行 1.5性能分析 1.6项目总结 1.7 PSP展示   1.1 基本功能 1. 统计文件的字符数(只需要统计Ascii码,汉字不用考虑,换行符不用考虑,'\0'不用考虑)(ascii码大小在[32,126]之间) 2. 统计文件的单词总数 3. 统计文件的总行数(任何字符构成的行,都需要统计)(不要只看换行符的数量,要小心最后一行没有换行符的情形)(空行算一行) 4. 统计文件中各单词的出现次数,输出频率最高的10个. 5. 

软件工程 第二周作业

##软件工程第二周作业 提出问题 1. 一般来说,想要自己的程序跑得又快又好,就要减少函数的反复调用,但有所得则必有所失,效能提高就有可能伴随着程序的稳定性的降低,这两者应该如何权衡呢? 2. 关于5.3.5 老板驱动的流程,这种开发流程模式存在着一些问题,那要如何解决这些问题呢? 这种模式当然也有它的问题. 领导对许多技术细节是外行. 领导未必懂得软件项目的管理,领导的权威影响了自由的交流和创造. 领导最擅长的管理方式是行政命令,这未必能管好软件团队或任何需要创造力的团队. 领导的精力有限,领

第二周结对编程作业——词频统计

本周作业是结对编写一个词频统计的程序,我们组是我(欧阳思琪)和贺晋飞同学共同完成这项任务.在仔细阅读了要求之后,我们组对程序编程进行了讨论.由于语言可以不必局限于要求中的C.C++,我们便考虑JAVA或python,两者各有优缺点,JAVA写起来比较繁重,而基于以往用python处理NLP相关项目的经验觉得python较为简单,但觉得在简单要求下,使用JAVA的运行速度明显更快,所以我们选择使用JAVA来完成本次作业. 分工:欧阳思琪 代码编写与博客编写 贺晋飞   代码审查与代码测试 实际:由

软件工程第二次作业(王伟东)

一周的时光转瞬即逝,第二周的作业也悄悄地开始了.杨老师的一言一行都深深地刻在我的心里,"不迟到"是做人做事的根本,努力则是成就人生的基石.正如<道德经>中所言"天地不仁,视万物为刍狗",上天对待世间万物是公平的,从来都是不偏不倚,只有勤奋好学的人才会得到垂青和奖赏. ㈠词频统计的四个功能 ①首先控制台输入内容到文件中,再对文件进行词频统计: ②命令行输入英文作品名,然后统计作品词频: ③命令行输入英文作品文件的目录名,再批量统计: ④从控制台读入英文单篇

2017秋-软件工程第二次作业

本周因为个人缘故,参加社团活动作业没能及时完成.对此我表示,做过就不后悔,至少我觉得生活是丰富多彩的,错过的时间就应该努力赶上!夜深人静的时候总是可以让人反省自己.本次作业我只实现了第一个功能和第二个功能的部分.对此我表示很不满,但是时间紧迫.个人能力有限,以至于自己没能让自己的软件看起来完美. 第二次作业的内容非常有趣,这也是我一直想做的一件事情,统计一篇文章里的字词.我知道自己的编程能力较差.距离完成提交时间很近,自己手写全部是不能及时按照约定提交的,于是就尝试借鉴前人的代码.第一晚的努力各

软件工程——第二次作业(2)

施工中-- 作业要求:https://edu.cnblogs.com/campus/nenu/SWE2017FALL/homework/922 项目要求是编写出一个拥有"词频统计"功能的小程序,作为一个小程序,若只是实现基本的词频统计功能,其实并不是很难.但是,如果再附加一些需求和功能的话就会让我感到有点难度了,更何况为了以后课程的要求,我选择使用Visual Studio 2015编译器和C#语言这两种从未学过的工具,在4-5天之内共10个小时左右(预计,但是实际上确实是花了更多时间

个人作业——词频统计

本次编程项目的主题为英文单词词频统计,主要分为下面四个小项目: 1.统计已存在的文档中的英文单词词频统计,并降序输出: 2.用户输入文件名,程序对其中的内容进行词频统计并降序输出: 3.用户输入指定文件夹的路径,程序遍历路径下的所有文件,并分别对其中的内容进行词频统计,降序输出前10个单词的词频: 4.用户在控制台按照要求输入文本内容,并将输入的内容存入指定文本中,程序对输入的内容进行词频统计并降序输出. 我在本科学期间进行过C/C++的学习,所以本次作业使用的语言为C++,使用codebloc