项目场景:

编写程序,实现用户随机输入一段话,统计本段话的高频词汇


原来的代码

import jieba
txt = input("请输入一段话:")
words = jieba.lcut(txt) # jieba.lcut(txt)把文本中的句子精确的切开
excludes={'。',',','!',';'} #这里是想把一些感叹词给列出来
counts = {}
for word in words:counts[word]=counts.get(word,0)+1#返回字典counts中word元素对应的值,即0,该代码用来统计次数
for word in excludes: #循环遍历感叹词del counts[word] #利用字典中的del方法,删除相应的键
items = list(counts.items()) #返回字典键值,并转为列表
items.sort(key=lambda x:x[1],reverse=True) #利用列表的sort()进行排序,True为降序排序
for i in range(3): #返回出现次数最好从前三个词word,count=items[i]print("{0:<5}{1:>5}".format(word,count))
#大括号相当于是位置,分别对应word和count,冒号是引导符,后面跟的是格式控制方法
#<表示左对齐,>表示右对齐,数字表示宽度,如<5,左对齐,并占5个位置

问题描述

报错KeyError


原因分析:

想要上述代码不报错,输入的代码中必须含有那些标点符号,否则就会报错KeyError

比如:该句话中就没有分号,如果把代码excludes={' 。' , ' ,' , ' !', ' ; '}中的' ; '删掉就可以正常运行


解决方案:

因为不能保证每次客户输入的话中标点符号都一样,所以我就想到了,用限制长度的方法来省略一些不必要的词语,也简化了代码

if len(word)==1:
        continue

如果是碰到一个文章比较长的,比如:输出三国演义中出场次最高的十个人物,需要排除一些地名或者不是人名的词语的干扰时,需要使用del 方法,这也仅限于固定的长篇文章。

(个人是这样想的,仅限参考)

import jieba
txt = input("请输入一段话:")
words = jieba.lcut(txt) # jieba.lcut(txt)把文本中的句子精确的切开
counts = {}
for word in words:if len(word)==1: #把长度为1的直接省略continuecounts[word]=counts.get(word,0)+1
items = list(counts.items())
items.sort(key=lambda x:x[1],reverse=True)
for i in range(5):word,count=items[i]print("{0:<5}{1:>5}".format(word,count))

统计本段话的高频词汇——报错:KeyError相关推荐

  1. mysql数据库表字段使用DESC等关键字报错及解决方法

    mysql数据库表字段使用DESC等关键字报错及解决方法 参考文章: (1)mysql数据库表字段使用DESC等关键字报错及解决方法 (2)https://www.cnblogs.com/li--xi ...

  2. 使用PIL的Image.fromarray报错KeyError: ((1, 1, 1), ‘|u1‘)

    使用PIL的Image.fromarray报错 错误:使用PIL的Image.fromarray报错KeyError: ((1, 1, 1), '|u1') 原因:Pillow的fromarray函数 ...

  3. Django models新增属性后 迁移报错 KeyError ,--fake解决

    models在数据库已有表数据,新增一个field属性, isdeleted = models.IntegerField(default=0, blank=True, null=True) 然后进行m ...

  4. python之字典dict:明明有key,但是却报错KeyError

    问题:字典从文件中读出,字典中key含中文,明明有key,但是却报错KeyError:key不存在 预期:取出对应key的value 解决:将key前加上u,对key进行unicode编码,比如小红- ...

  5. 报错 KeyError

    当报错KeyError 1 时,多半是你使用一个不存在的key时报的错 来个dome a = {1:"a",2:"b",3:"c"}prin ...

  6. 求指教:报错KeyError: “None of [Index([‘2022/1/1 0:00:00‘, ... ],\n dtype=‘object‘] are in the [index]“

    求指教:Python运行报错KeyError: "None of [Index(['2022/1/1 0:00:00', - '2022/1/8 23:59:45'],\n dtype='o ...

  7. php curl如何解决分页,一段PHP的分页程序,报错,该如何解决

    PHP codeinclude_once('conn.php'); if(isset($_GET['pclass'])) { $p_class=$_GET['pclass']; } else { $p ...

  8. ansys一段时间后进入model报错:ansysWBU.exe encountered a problem.

    问题报错提示:AnsysWBU.exe encountered a problem 解决方法: 顺利解决

  9. 用java代码怎样打开网址_写了一段打开网页java代码报错: 求大神解救

    报错内容:Exceptioninthread"main"org.openqa.selenium.WebDriverException:Unabletobindtolockingpo ...

最新文章

  1. 亿级PV,常见性能优化策略总结与真实案例
  2. R语言grep函数和grepl函数字符匹配实战
  3. ubuntu14 备份
  4. 最长递增子序列问题合集
  5. Json.NET Deserialize时如何忽略$id等特殊属性
  6. 前端代码是怎样智能生成的?
  7. 进程控制1--fork vfork函数
  8. .net core中不支持GB2312编码的问题
  9. 【软件体系结构】软件体系结构复杂性
  10. Phoenix官方教程 (一) 构建和运行
  11. linux 环境安装及学习
  12. android使用lombok_Android Studio 使用Lombok
  13. thinkphp5.0连接mysql_thinkphp5.0数据库操作
  14. 建筑系学生怎么系统地学 Photoshop、CAD 之类软件?
  15. HDU 5762 Teacher Bo (水题)
  16. 二元关系:(自反,对称,传递)关系的求逆与闭包
  17. android心率曲线绘制,巧妙绘制心率曲线图的方法实践
  18. 信息检索与搜索引擎:Simhash算法优化
  19. VB制作网页自动填表
  20. oj2448: 分离正整数中的各位数

热门文章

  1. 关于印发《建造师执业资格制度暂行规定》的通知
  2. SQL基础语法练习题(1)
  3. oracle创建视图与生成唯一编号
  4. 采购订单审批与采购申请审批
  5. java lda主题模型_主题模型(一):LDA 基本原理
  6. conda的一个坑。channels: - https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/pytorch - https://mirro
  7. 电子商城数据库设计思路
  8. vue 给某个div设置回到顶部
  9. linux配置pcie无线网卡,【Linux c】读写pcie配置空间(安装lib库)
  10. 导数和微分的区别与联系