需要解決的問(wèn)題:
1.去掉標(biāo)點(diǎn),英文是英文著作,因此對(duì)形如「Damon's」還要對(duì)「'」作替換成空格處理,防止影響結(jié)果
2.將列表中的大小寫統(tǒng)一(時(shí)態(tài)、單復(fù)數(shù)暫時(shí)不考慮)
3.還需要一個(gè)去重的列表
下面是1st_version代碼
file_name = "Alice's Adventures in Wonderland.txt" #這里求方便,我們把文檔和.py放在同一目錄下
with open(file_name) as f_obj:
? ? contents = f_obj.read()
? ? words = contents.replace("'"," ") #首先將「'」替換成空格
import re #利用正則表達(dá)式去掉文中的標(biāo)點(diǎn)
r='[’!"#$%&\'()*+,-./:;<=>?@[\\]^_`{|}~]' #注意這里的格式是'[要去除的內(nèi)容]'
clean_words = re.sub(r,'',words)
split_words =? clean_words.split() #將文中單詞劃分開,形成原始的詞匯表
complete_words = [] #建立一個(gè)空的列表
for word in split_words:?
? ? lowercase_word = word.lower() #將列表中的元素利用遍歷統(tǒng)一格式
? ? complete_words.append(lowercase_word) #這里是把統(tǒng)一化的詞匯放在新的列表中
unique_words = list(set(complete_words)) #這里是去重之后的列表
frequencies = {} #設(shè)立新的字典
for word in unique_words:
? ? frequency = complete_words.count(word)
? ? frequencies[word] = frequency
print(frequencies)?