Python——组合数据类型的应用_1.英文句子中的词频统计

词频统计需要考虑下列几个问题:

  1. 英文单词的分隔符可以是空格、标点符号或者特殊符号,使用字符串的 replace()方法可以将标点符号替换为空格,以提高获取单词的准确性。
  2. split()函数可以拆分字符串,生成单词的列表。
  3. 逐个读取列表中的单词,并重复下面的操作。如果字典 map1的 key 值中没有这个单词,向字典中添加元素,关键字是这个单词,值是1,即 map1 [ word ]=1;如果字典的 key 值中有这个单词,则该单词计数加1,即 map1 [ word ]=1;当列表中的单词全部读取完后,每个单词出现的次数会被放在字典map1中, map1的 key 是单词, map1的 value 是单词出现的次数。
  4. 为了得到比较好的输出结果,将字典转换为列表后,排序输出。

例 5-17 统计英文句子中单词出现的次数:

#ex0517.py
sentence ='Beautiful is better than ugly . Explicit is better than implicit .\
Simple is better than complex . Complex is better than complicated .'
#将文件中涉及的标点用空格替换
for ch in ",.?!":
    sentence = sentence.replace(ch," ")
#利用字典统计词频
words = sentence.split()
map1 = {}
for word in words:
    if word in map1:
        map1[word] += 1
    else:
        map1[word] = 1
#对统计结果排序
items = list(map1.items())
items.sort(key = lambda x:x[1],reverse = True)
#打印控制
for item in items:
    word,count = item
    print("{:<12}{:>5}".format(word,count))
  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值