#40python 统计四级单词词频
#40python 统计四级单词词频 Python 词云 统计 词库
2019年05月21日 23时36分54秒
成果展示 第一步寻找四级真题 第二步分析文字 文字拆分并排序 文字写入文件 总代码 碎碎念
代码主要靠百度边查边写 为了能够更好地展现 代码的生成过程,(主要是懒) 作业的完成主要靠百度,基本上是用啥查啥 (有同学问我题,说为啥..我说百度上有,便说我敷衍,百度上真的有,说的很清楚,比我讲的更高效,更系统,遇到这种情况我也是没办法了o(╥﹏╥)o)
我也很想给解释清楚,但是无奈我也是菜的抠脚,只能干着急,写写博客来锻炼一下自己。。
学习路径有很多嘛
所以我赶紧写个博客,再问我题,我可以直接甩博客链接过去.简单高效 我也没有进行过多的修饰和完善代码。 这样可能更有助于像我这样的新手,看到代码实现的过程, 通过哪些博客的借鉴最终成型的。
很多时候博客也是没人会看的,但是写给自己看很重要,不写的时候感觉学会了,一操作发现啥也不会,
好不容易,做上来了,写个博客,发现啥也说不清楚
所以写博客很重要滴!!!
我在知乎上看到过一个问题就是,为啥有人一直坚持写博客?
第一个回答是
即使最后没有人为你鼓掌,也要优雅地谢幕,感谢自己的认真付出。
不瞎写了,看今天的笔记
成果展示
最终统计单词结果
第一步寻找四级真题
网上随便找的
四级真题
网上版本多样,不能统一,所以我直接暴力,复制文本,粘贴到文本格式TXT保存方便读取
复制成文本文件
整理成文本格式方便读取
第二步分析文字
文字中很明显可以看出,有中文,有标点,怎么去掉呢?
文字标点数字进行了分词的干扰
想办法去除这些干扰因素
查阅资料 使用python提取中文数字和英文
将汉字和数字标点进行替换即可
我构建了下列函数,读取文件并返回去除干扰字符后的字符串
def F(a): f=open(a,’r’) st=f.read() s1 = re.sub(u”([^\u0041-\u005a\u0061-\u007a])”,” “,st) return s1 f.close()
紧接着 发现每段文字,第一个单词会是大写的,所以也要考虑大小写的问题,加上一句代码进行大小写转换
s=s.lower() 文字拆分并排序
1.所有干扰字符替换成空格,并且本身单词与单词之间以空格进行分隔,所以直接使用空格拆分即可 引用string 库里的split()函数 2.拆分后为一个列表,遍历列表统计单词出现个数 3.使用字典类型进行统计,key存储单词,velue存储单词个数 4.存储完后用sort()函数 进行排序
资料 python 统计单词个数
s=s.lower()r=s.split()words=rcounts={}for word in words: counts[word]=counts.get(word,0)+1items=list(counts.items())items.sort(key=lambda x:x[1],reverse=True) 文字写入文件
参考资料 python的list变量保存为txt文本
f=open(‘最终.txt’,’w’)sw=’四级单词词频统计\n’for i in range(len(items)): f.write(items[i][0]+’\t’+str(items[i][1])+’\n’) f.close() 总代码 import stringimport redef F(a): f=open(a,’r’) st=f.read() s1 = re.sub(u”([^\u0041-\u005a\u0061-\u007a])”,” “,st) return s1 f.close()f=open(’17-12.txt’,’r’)st=f.read()s = re.sub(u”([^\u0041-\u005a\u0061-\u007a])”,” “,st)f.close()f=open(’17-12-1.txt’,’r’)st=f.read()s1 = re.sub(u”([^\u0041-\u005a\u0061-\u007a])”,” “,st)s=s+s1f.close()f=open(’17-12-2.txt’,’r’)st=f.read()s1 = re.sub(u”([^\u0041-\u005a\u0061-\u007a])”,” “,st)s=s+s1f.close()s+=F(’16-12-1.txt’)s+=F(’16-6-2.txt’)s+=F(’15-12-1.txt’)s=s.lower()r=s.split()words=rcounts={}for word in words: counts[word]=counts.get(word,0)+1items=list(counts.items())items.sort(key=lambda x:x[1],reverse=True)f=open(‘最终.txt’,’w’)sw=’四级单词词频统计\n’for i in range(len(items)): f.write(items[i][0]+’\t’+str(items[i][1])+’\n’) f.close()