import re # 正则表达式库
import collections # 词频统计库
f=open("Text_word_frequency_statistics.txt")
article=f.read().lower() #统一转化成小写
f.close()
pattern = re.compile("\t|!|,|\n|\.|:|;|\)|\(|\?|\"")
article = re.sub(pattern,' ', article) # 将符合正则表达式的字符用' '替代
done=article.split(' ') #以空格为分隔符,分词
remove=['the','and','of','a','i','in','you','my','he','his',',','s',''] #需要去除的词
over=[]
for i in done:
if i not in remove and i!=" ":
over.append(i)
counts= collections.Counter(over) # 对分词做词频统计 这里返回的是Counter对象
sum=dict(counts)
#b=list(zip(sum.keys(),sum.values()) ) #打包的方式
#sum=list(sorted(b,key=operator.itemgetter(1),reverse=True))
sum=sorted(sum.items(),key=lambda sum:(-sum[1],sum[0]))#lamabda 内的顺序为排序优先级 后面的以前面的为基准!!!即在sum[1]相等的时候才用得上sum[0]
x=0
for i in sum:
print('{0:<10}'.format(i[0]),'{0:>5}'.format(i[1]))
x+=1
if(x==10): #输出词频前十的单词
break
想说的都在注释里了