9.27作業
阿新 • • 發佈:2018-09-27
com 替換 word 分享圖片 ems and 排序 預處理 編碼
1.準備utf-8編碼的文本文件file
2.通過文件讀取字符串 str
3.對文本進行預處理
4.分解提取單詞 list
5.單詞計數字典 set , dict
6.按詞頻排序 list.sort(key=)
7.排除語法型詞匯,代詞、冠詞、連詞等無語義詞
8.輸出TOP(20)
f = open(‘strgc.txt‘,‘r‘,encoding="utf-8") #從同一目錄下讀取文件 strgc = f.read().lower() #小寫 f.close() print(strgc) seq =‘.,‘ for ch in seq: strgc=strgc.replace(ch,"") #用for循環replace函數將.和,替換成空格 print(strgc) strList = strgc.split() #拆分 print(len(strList),strList) #分隔一個一個單詞並統計英文單詞個數 strSet = set(strList) #將列表轉化成集合 exclude={"and","if","a","or","in","the"} strSet=strSet-exclude #去掉排除語法型詞匯,代詞、冠詞、連詞等無語義詞 print(strSet) strDict={} for word in strSet: #再將集合轉化成字典來統計每個單詞出現次數 strDict[word] = strList.count(word) #只有列表可以統計 print(len(strDict),strDict) wclist =list(strDict.items()) #以列表返回可遍歷的(鍵, 值) 元組數組 wclist.sort() #簡單排序 print(strDict.items()) #def takeSecond(elem): #定義函數# x=elem[1] # return x #wclist.sort(key=takeSecond,reverse=True) #排序,默認升序,reverse=true降序 法① wclist.sort(key=lambda x:x[1],reverse=True) #方法② 用lambda函數排序 print(wclist) for i in range(20): #輸出前20個 print(wclist[i])
9.27作業