【每周一坑】统计英文小说词频

简介: 然而,只有我们依旧无趣地在此刻发干货文,提醒着你有没有写新的代码?有没有了解新的语法?硬生生给你五彩斑斓的周末生活蒙上一层阴影。每每想到这,我就觉得,这档子事儿还真是……

Thank God It’s Friday!


又到周五啦!眼看就要忙完一周的学习和工作,又可以出去浪咯。


然而,只有我们依旧无趣地在此刻发干货文,提醒着你有没有写新的代码?有没有了解新的语法?硬生生给你五彩斑斓的周末生活蒙上一层阴影。每每想到这,我就觉得,这档子事儿还真是……



干得漂亮!


不多说,先来看这周的题目。上周解答在后半部分。



统计英文词频


编程教室在之前发过一篇 数据分析:当赵雷唱民谣时他唱些什么?,里面对赵雷的几十首歌词做了分词、去冗余、统计的操作,得出了他在歌词中最喜欢用的词汇。



本周我们的题目与这个类似,不过要简单许多。


要求:


  • 统计一部英文小说里单词的出现次数(忽略大小写)
  • 按出现次数显示最高的 100 个单词
  • 【附加题】多统计几个不同作家的作品,挑选一些特征词汇的次数画在图表上,展示不同作家的风格区别。


示例:


Jane Eyre
----------------
1.  the   7406
2.  I     7245
3.  and   6346
4.  to    5155
5.  of    4331
6.  a     4314
...


因为英语天生自带分词,所以要比中文好处理。另外透露下,今天一同发送的 编程课堂 里,有解答这题的关键技巧。


我们提供了几部小说作为测试数据,公众号里回复 小说 可获取下载地址。


依旧欢迎大家积极投稿~


Talk is cheap. Show me the code.


双色球选号器解答


这道题还是比较简单的。就是如何从一定的范围中随机地选出几个数。


我们的课程中有介绍过 random.randint 方法,可以产生一定范围中的一个随机整数。所以你可以调用多次该方法,获取到足够多的数。当然考虑到有可能出现重复,需要判断随机出来的值是否有效。


然而这并不是一个好办法。


random 模块中其实有现成的方法:sample。它的作用就是从序列中随机挑选一些元素。因此,选取红球只需要:


import random
# 1~33的列表
red_pool = range(1, 34)
red = random.sample(red_pool, 6)


蓝球,可以一样用 sample,或者 random 的另一个方法:choice。它的作用是从序列中随机挑选一个元素:


# 1~16的列表
blue_pool = range(1, 17)
blue = random.choice(blue_pool)


这就大功告成了!


如果想显示的好看些(py2):


print '红球:',
red.sort()
for r in red.sort():
    print '%02d' % r,
print
print '蓝球: %02d' % blue


上一期的答案里,@王任 同学用一行代码搞定了选号:


import random 
[random.randint(1, 16), sorted(random.sample(range(1, 34), 6))]


另一位同学 @张良 完成了专注买彩一百年的代码,参见:


https://github.com/lightopen/lottery/blob/master/lottery.py


然而,当我今天第一次运行他的代码时,结果是:


100 years late, you spend 73000, and earn 3031520


我想这是写错了吧。后来又 run 了许多次,发现并不是……


确实是我错过了 300 万。



近期文章推荐阅读:

如何用100行Python代码做出魔性声控游戏“八分音符酱”

数据分析:当赵雷唱民谣时他唱些什么?

一行代码扫出“敬业福”

我扒了杜蕾斯的微博

Python 爬虫爬取美剧网站

个人开发者如何申请微信小程序

今天,你抢到票了吗?

爆款游戏《贪吃蛇大作战》的 Python 实现

相关文章
|
5月前
|
前端开发 NoSQL 关系型数据库
如何开发研发项目管理中的需求管理板块?(附架构图+流程图+代码参考)
本文探讨了中小企业在研发或产品工作中常见的需求管理问题,如需求记录混乱、交付靠口头约定、变更无追踪等。通过系统化的需求管理,可实现“谁在做什么、为什么做、何时完成、谁验收”的可视化与责任归属,减少沟通成本,提升效率。文章详细介绍了需求管理的核心功能模块(如需求看板、处理流程、研发日报)、系统架构设计、前后端实现参考、开发技巧与落地建议,以及上线后的运营指标与实施路线图。最终目标是将松散的流程规范化、可追踪、可复用,助力企业构建高效的研发项目管理体系。
|
4月前
|
存储 人工智能 大数据
云栖2025|阿里云开源大数据发布新一代“湖流一体”数智平台及全栈技术升级
阿里云在云栖大会发布“湖流一体”数智平台,推出DLF-3.0全模态湖仓、实时计算Flink版升级及EMR系列新品,融合实时化、多模态、智能化技术,打造AI时代高效开放的数据底座,赋能企业数字化转型。
995 0
|
机器学习/深度学习 算法 前端开发
经典机器学习系列(六)【集成学习】
经典机器学习系列(六)【集成学习】
445 2
|
存储 网络协议 Linux
第七问:你了解大端和小端字节序吗?
大端和小端是计算机中数据存储的两种字节序方式。大端(Big Endian)将高位字节存储在低地址,小端(Little Endian)将低位字节存储在低地址。大端主要用于网络通信和某些文件格式,确保数据传输的一致性;小端广泛应用于本地计算和硬件优化,提高处理速度。现代大多数 PC 和嵌入式设备使用小端字节序,如 x86 和 ARM 架构。
|
机器学习/深度学习 数据采集 自然语言处理
深度学习之文本检索
文本检索(Text Retrieval)是指在大量文本数据中,根据用户的查询文本找到相关文档。基于深度学习的方法通过提取文本的高层次语义特征,实现了高效和准确的文本检索。
366 3
|
JavaScript API
vue3获取元素并修改元素样式
vue3获取元素并修改元素样式
1526 5
vue3获取元素并修改元素样式
|
缓存 Java 测试技术
总结|性能优化思路及常用工具及手段
性能优化是降低成本的手段之一,每年大促前业务平台都会组织核心链路上的应用做性能优化,一方面提升系统性能,另外一方面对腐化的代码进行清理。本文结合业务平台性能优化的经验,探讨一下性能优化的思路及常用工具及手段。
76687 1
|
消息中间件 IDE Java
Springboot 集成 Rocketmq 生产者|学习笔记
快速学习 Springboot 集成 Rocketmq 生产者
1131 0
Springboot 集成 Rocketmq 生产者|学习笔记