python中英文词频统计

python中英文词频统计

要求:

1.给定一段英文文本,实现对输入英文的分词,并统计每个单词出现的次数;
2.只用输出前十个;

分析:

1.要实现对英文单词的切分,首先就需要将英文文本按照一个特殊的格式来切分,我选用的是按照空格切分,所以我们需要将文本中的” ,“ ” . “ ” !“等符号转换为空格方便切分;
2.用Counter函数来对切分出来的单词计数;
3. 用循环对切分出来的单词和次数进行输出;

实现效果:

在这里插入图片描述

代码实现:

from collections import Counter   #cnt = Counter()       进行计数
   #打开文件
with open("en1.tok.txt",errors='ignore') as f: 
#errors='ignore'用于忽略文件中的非法字符
    txt = f.read()
    txt = txt.lower()                         
     #将文本中的大写字母改写为小写字母,这样可以避免同一个单词因大小写问题统计两次
    for ch in '!"#$&()*+,-./:;<=>?@[\\]^_{|}·~‘’':
     #将文本中可能出现的字符替换为空格
        txt = txt.replace(ch, "")
    words = txt.split()                        
    #按空格分词
    cnt = Counter(words)                       
    #用Counter函数对分完的词进行计数
    for word, cnt in cnt.most_common(10):      
    #输出前十个出现次数最多的单词
        print(word, cnt)

初学,欢迎大家指正我的错误!

补充:
1.进行了忽略非法字符操作后还需要对文本中出现的字符(逗号,感叹号等等)进行替换,不进行替换就会出现将“,” “ . ” 也当成英文字母输出的情况:
在这里插入图片描述
2.Counter(x).most_common(n)函数便可以用来统计词频,该函数用来表示统计x中出现次数最多的前n个元素及其次数,前十就n取10,前三就n取3,然后再循环输出就可以了。

关于Counter函数更多的知识可以去这里看:https://www.cnblogs.com/wfc139/p/9999016.html

  • 2
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值