python 词频统计

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

想说的都在注释里了

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值