1. 程式人生 > >9.27作業

9.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作業