如果要统计一篇英文文章中,或者一本英文书中出现的词组频率进行统计排序,如果人工做那是不敢想象的工作量。而使用python之需要两行代码就完成主要工作了。
下面演示代码:
def txt():
t = open("D:\hamlet.txt", "r").read() #打开文件
t = t.lower() #把所有的字母都转换成小写
for ch in '!"#$%&()*+,-./:;<=>?@[\\]^_‘{|}~': #去掉标点呼号
t = t.replace(ch, " ") #将文本中特殊字符替换为空格
return t
hamletTxt = txt()
words = hamletTxt.split()
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)
for i in range(10):
word, count = items[i]
print ("{0:<10}{1:>5}".format(word, count))#获取排名前10的名单
执行结果:
the 1138
and 965
to 754
of 669
you 550
i 542
a 542
my 514
hamlet 462
in 436
就是使用这个功能,李笑来出了第一本书畅销书《TOEFL核心词汇21天突破》,也是一本长畅销书,到目前的销量还很好。
________________END______________
网友评论