2019年05月21日 23時36分54秒html
代碼主要靠百度邊查邊寫
爲了可以更好地展示 代碼的生成過程,(主要是懶)
做業的完成主要靠百度,基本上是用啥查啥
(有同窗問我題,說爲啥..我說百度上有,便說我敷衍,百度上真的有,說的很清楚,比我講的更高效,更系統,遇到這種狀況我也是沒辦法了o(╥﹏╥)o)python
我也很想給解釋清楚,可是無奈我也是菜的摳腳,只能乾着急,寫寫博客來鍛鍊一下本身。。函數
學習路徑有不少嘛學習
因此我趕忙寫個博客,再問我題,我能夠直接甩博客連接過去.簡單高效
我也沒有進行過多的修飾和完善代碼。
這樣可能更有助於像我這樣的新手,看到代碼實現的過程,
經過哪些博客的借鑑最終成型的。spa
不少時候博客也是沒人會看的,可是寫給本身看很重要,不寫的時候感受學會了,一操做發現啥也不會,.net
好不容易,作上來了,寫個博客,發現啥也說不清楚3d
因此寫博客很重要滴!!!code
我在知乎上看到過一個問題就是,爲啥有人一直堅持寫博客?orm
第一個回答是htm
即便最後沒有人爲你鼓掌,也要優雅地謝幕,感謝本身的認真付出。
不瞎寫了,看今天的筆記
網上隨便找的
網上版本多樣,不能統一,因此我直接暴力,複製文本,粘貼到文本格式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()函數 進行排序
s=s.lower() r=s.split() words=r counts={} for word in words: counts[word]=counts.get(word,0)+1 items=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()
import string import re def 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+s1 f.close() f=open('17-12-2.txt','r') st=f.read() s1 = re.sub(u"([^\u0041-\u005a\u0061-\u007a])"," ",st) s=s+s1 f.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=r counts={} for word in words: counts[word]=counts.get(word,0)+1 items=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()