需要解决的问题:
1.去掉标点,英文是英文著作,因此对形如「Damon's」还要对「'」作替换成空格处理,防止影响结果
2.将列表中的大小写统一(时态、单复数暂时不考虑)
3.还需要一个去重的列表
下面是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 #利用正则表达式去掉文中的标点
r='[’!"#$%&\'()*+,-./:;<=>?@[\\]^_`{|}~]' #注意这里的格式是'[要去除的内容]'
clean_words = re.sub(r,'',words)
split_words = clean_words.split() #将文中单词划分开,形成原始的词汇表
complete_words = [] #建立一个空的列表
for word in split_words:
lowercase_word = word.lower() #将列表中的元素利用遍历统一格式
complete_words.append(lowercase_word) #这里是把统一化的词汇放在新的列表中
unique_words = list(set(complete_words)) #这里是去重之后的列表
frequencies = {} #设立新的字典
for word in unique_words:
frequency = complete_words.count(word)
frequencies[word] = frequency
print(frequencies)
网友评论