【AICon】探索RAG 技术在实际应用中遇到的挑战及应对策略!AICon精华内容已上线73%>>> 了解详情
写点什么

针对 Python 开发人员的 10 个“疯狂”的项目构想

  • 2020-10-09
  • 本文字数:3817 字

    阅读完需:约 13 分钟

针对Python开发人员的10个“疯狂”的项目构想

本文最初发表于 Towards Data Science 博客,由 InfoQ 中文站翻译并分享。


你知道 Python 是被称为全能编程语言的吗?


是的,它确实是,虽然不应该在每个项目中都使用它


你可以使用它来创建桌面应用程序、游戏、移动应用程序、网站和系统软件。它甚至是最适合用于实现人工智能机器学习算法的语言。


因此,在过去的几周里,我为 Python 开发人员收集了一些独特的项目构想。这些项目构想很有可能会让你对这门神奇的语言产生兴趣。最棒的是,你可以通过这些有趣但也具有挑战性的项目来增强你的 Python 编程技能。


让我们来一一看下。

1、使用语音命令创建软件 GUI


“交互示例——原图来自UnsplashHeadway上传,本图由作者编辑过”


如今,桌面应用程序开发领域已经取得了巨大进步。你能看到许多拖拽式 GUI 构建器和语音识别库。那么,为什么不能将它们结合在一起,通过与计算机对话来创建一个用户界面呢?


这是一个全新的概念,经过一番研究,我发现还没有人尝试这样做。因此,它可能比下面提到的那些更具挑战性。


下面是使用 Python 开始这个项目的一些说明。首先,你需要用到如下的包:



现在,我们的想法是对一些语音命令进行硬编码,例如:



你明白我的意思了吧?可以非常简单明了地添加更多这样的命令。


因为这将是一个最小可行性产品(Minimum Viable Product,MVP)。所以,如果你必须硬编码许多条件语句(例如,if…else),这是完全可以的。


设置完这些基本命令后,就可以测试代码了。现在,你可以尝试在窗口中构建一个非常基本的登录表单。


这一想法的主要灵活性在于它可以用于游戏开发、网站和移动应用程序。即使是使用不同的编程语言也可以。

2、AI 博彩机器人


网球比赛——图片来自UnsplashMoises Alex上传"


博彩是一种人们预测结果的活动,如果他们猜对了,就会得到回报。在过去几年中,人工智能或机器学习领域出现了许多技术进步。


例如,你可能听说过像AlphaGo MasterAlphaGo ZeroAlphaZero这样的程序,它们可以比任何专业的人类玩家都能更好地玩Go(游戏)。你甚至可以获得类似 Leela Zero 这样程序的源码


我想表达的一点是,人工智能正在变得比我们更聪明。这意味着它可以通过考虑所有的可能性并从过去的经验中学习来更好地预测一些事情。


让我们在 Python 中应用一些有监督学习的概念创建一个 AI 博彩机器人吧。要开始本项目,这里有一些你需要使用到的库。



首先,你需要选择一种比赛(例如网球、足球等)来预测结果。现在搜索可用于训练模型的历史匹配结果数据。


例如,.csv 格式的网球比赛数据可以从tennis-data.co.uk网站上下载


如果你对博彩不了解,下面是它的工作原理。


  • 你可以在 Roger Federer 身上以 1.3 的赔率押 10 美元。

  • 如果他获胜,你将获得 10 美元(实际金额),外加 3 美元(利润)。

  • 如果他输了,你也会输掉你的钱(例如,10 美元)。


训练完模型后,我们必须计算每个预测的置信水平(Confidence Level),通过检查预测正确的次数来了解机器人的表现,最后还要关注投资回报率(ROI)。


可以下载由 Edouard Thomas 开发的一个类似的开源AI博彩机器人项目

3、交易机器人


交易——图片来自UnsplashNick Chong上传


交易机器人与上一个项目非常相似,因为它也需要 AI 来进行预测。


现在的问题是,AI 是否可以正确地预测股价的波动?


当然,答案是肯定的。


在开始之前,我们需要一些数据来开发一个交易机器人。



这些来自投资百科(Investopedia)的资源可能有助于训练机器人。



读完这两篇文章后,你会对什么时候买股票,什么时候卖股票有一个更好的理解。这些知识可以很容易地转换为 Python 程序,从而自动地为我们做出决策。


你也可以参考这个名为freqtrade的开源交易机器人。它使用 Python 构建,并实现了多种机器学习算法。

4、钢铁侠 Jarvis(基于 AI 的虚拟助手)


AI 助手界面——图片来自UnsplashJoshua Sortino上传


这个想法取材于好莱坞电影《钢铁侠》系列。这部电影围绕着科技、机器人和 AI 展开。


在这里,钢铁侠用人工智能为自己打造了一个虚拟助手。该程序被称为 Jarvis,可以帮助钢铁侠完成日常任务。


钢铁侠使用简单的英语向 Jarvis 发出指令,Jarvis 也用英语回应。这意味着我们的程序需要语音识别以及文本转语音的功能。


建议使用这些库:



现在,你可以对语音命令进行硬编码,例如:



你还可以使用 Jarvis 执行其他很多任务,例如:


  • 设置手机闹钟。

  • 不停地检查家里的监控摄像头,并告知是否有人在外面等着。你可以添加更多的功能,如人脸检测和识别。它可以帮助你了解外面有哪些人或者有多少人。

  • 打开/关闭房间的窗户。

  • 打开/关闭灯。

  • 自动回复电子邮件。

  • 安排任务。


甚至连 Facebook 的创始人“马克·扎克伯格”(Mark Zuckerberg)都将Jarvis作为一个辅助项目。

5、监控某个网站以了解即将举行的艺术家演唱会


门票——图片来自UnsplashAndy Li上传


Songkick是一项非常受欢迎的服务,它可以提供有关即将举行的音乐会的信息。其 API 可用于通过以下方式搜索即将举行的音乐会:


  • 艺术家

  • 位置

  • 会场

  • 日期和时间


你可以创建一个 Python 脚本,使用 Songkick 的 API 每天检查某个特定的音乐会。最后,只要有音乐会,就给自己发一封电子邮件。


有时 Songkick 甚至会在其网站上显示“购票”链接。但是,这个链接可以针对不同的音乐会转到不同的网站上。这意味着即使我们利用网络抓取,也很难自动购票。


相反,我们可以简单地显示“购票”链接,就像它在我们的应用程序中一样,以便进行手动操作。

6、自动续订 Let’s Encrypt 的免费 SSL 证书


Let’s Encrypt 的图标—— https://letsencrypt.org/


Let’s Encrypt是一个提供免费 SSL 证书的证书颁发机构。但是,问题在于该证书的有效期只有 90 天。 90 天后,你必须续订。


我认为,这是使用 Python 实现自动化的一个绝佳场景。我们可以编写一些代码,在网站 SSL 证书到期之前自动续订。


可以在GitHub上查看这段代码以寻找灵感。

7、识别人群中的个人


人脸识别——作者的照片


如今,政府已在公共场所安装了监控摄像头,以提高公民的安全性。这些摄像头大多只是用于录制视频,法医专家必须手动识别或跟踪个人。


如果我们创建一个 Python 程序来实时识别摄像头中的每个人会怎么样呢?首先,我们需要访问国家身份证数据库,但我们可能没有权限访问。


所以,一个简单的选择是创建一个包含家庭成员记录的数据库。


然后,可以使用一个人脸识别库,并将其与摄像头的输出连接起来。

8、接触者追踪


接触者追踪应用程序——图片来自UnsplashMarkus Winkler上传


接触者追踪是一种识别所有在特定时间段内相互接触的人的方法。它主要用于像 COVID-19 或 HIV 这样的大流行病。因为没有任何关于谁被感染了的数据,我们无法阻止其传播。


Python 可以与称为 DBSCAN(Density-Based Spatial Clustering of Applications with Noise,基于密度的带噪声的应用程序空间聚类)的机器学习算法一起用于接触者追踪。


由于这只是一个附属项目,因此我们无法获得任何官方数据。目前,最好使用Mockaroo生成一些实际的测试数据。


你可以查看这篇文章以了解具体代码实现。

9、自动将文件从一个文件夹移动到另一个文件夹


Ubuntu 的的 Nautilus 文件管理器——图片由作者上传


这是一个非常基本的 Python 程序,始终监视某个文件夹,每当有文件添加到该文件夹中时,它都会检查其类型并相应地将其移动到特定的文件夹中。


例如,我们可以跟踪我们的下载文件夹。现在,当一个新文件被下载时,它会根据其类型自动将其移动到另一个文件夹中。


.exe 文件很可能是软件设置程序,因此将其移至“软件”文件夹中。而将图片(png、jpg、gif) 移动在“ 图像”文件夹中。


通过这种方式,我们可以组织不同类型的文件,以便快速访问。

10、从 YouTube 上收集职业道路相关的视频


YouTube 主页——图片来自UnsplashKon Karampelas上传


创建一个应用程序,接受我们需要学习的职业技能名称。


例如,要成为一名 Web 开发人员,我们需要学习:


  • HTML5

  • CSS3

  • JavaScript

  • 后端语言(PHP、Node.js、 Python、ASP.NET、或 Java)

  • Bootstrap 4

  • WordPress

  • 后端框架 (Laravel、Codeigniter、Django、Flask 等)

  • 等等。


输入技能后,会有一个“生成职业道路”按钮。它指导我们的程序搜索 YouTube,并根据每种技能选择相关的视频/播放列表。如果有很多类似的技能视频,那么它将选择观看次数、评论次数、喜欢次数最多的视频。


然后,程序会根据技能将这些视频分组,并在 GUI 中显示其缩略图、标题和链接。


它还会分析每个视频的时长,并汇总,然后告知我们学习该职业道路需要多长时间。


现在,作为一个用户,我们可以逐步观看这些视频,并成为这一职业的大师。

结论

通过这些独特的编程项目来挑战自己,可以让自己保持活力,提高技能,并能帮助你探索新的可能性。


我上面提到的一些项目构想也可以用作你的毕业设计。


现在是时候用 Python 编程语言展示你的创造力,并将这些构想转化为你引以为豪的东西了。


原文链接:


https://towardsdatascience.com/10-crazy-cool-project-ideas-for-python-developers-d7efeb0a345


公众号推荐:

2024 年 1 月,InfoQ 研究中心重磅发布《大语言模型综合能力测评报告 2024》,揭示了 10 个大模型在语义理解、文学创作、知识问答等领域的卓越表现。ChatGPT-4、文心一言等领先模型在编程、逻辑推理等方面展现出惊人的进步,预示着大模型将在 2024 年迎来更广泛的应用和创新。关注公众号「AI 前线」,回复「大模型报告」免费获取电子版研究报告。

AI 前线公众号
2020-10-09 14:161890
用户头像
刘燕 InfoQ高级技术编辑

发布了 1112 篇内容, 共 490.0 次阅读, 收获喜欢 1966 次。

关注

评论

发布
暂无评论
发现更多内容

springBoot集成rabbitmq并实现延时队列

生命在于折腾

RabbitMQ

小师妹学JVM之:cache line对代码性能的影响

程序那些事

JVM 小师妹 性能调优 cache line 签约计划第二季

Java 线程池中的线程复用是如何实现的?

武培轩

Java 程序员 后端 线程池 源码解析

用进废退,增加能力熟练度与经验值,让你的技能再次精进。

叶小鍵

一次非常有意思的 SQL 优化经历: 从 30248.271s 到 0.001s

Java小咖秀

MySQL 面试 后端 经验分享 优化逻辑

架构师训练营第五章总结

叮叮董董

架构师第5周总结

老姜

联想来酷广谱化生存:后疫情时代的"硬核品牌"启示录

Geek_116789

啃碎并发(二):Java线程的生命周期

猿灯塔

Ceph数据恢复初探

焱融科技

焱融科技 文件存储 分布式存储 数据恢复 Ceph

干货 | 如何评估Kubernetes持久化存储方案

焱融科技

Kubernetes 容器 云原生 k8s

一致性Hash算法以及Java代码实现

架构5班杨娟Jessie

极客大学架构师训练营

分布式缓存、消息系统和异步架构

架构5班杨娟Jessie

极客大学架构师训练营

Week 05 命题作业

卧石漾溪

极客大学架构师训练营

就餐卡系统设计

超详细!一文带你了解 LVS 负载均衡集群!

JackTian

Linux 负载均衡 运维 LVS 服务器集群

架构师训练营第五周课后总结

Cloud.

【Python】__name__ 是什么?

Leetao

Python Python基础

架构师训练营第五章作业

叮叮董董

一致性哈希算法实现

老姜

「深度解析」AI训练之数据缓存

焱融科技

人工智能 AI 存储 焱融科技 数据缓存

week05 学习总结 分布式缓存&消息队列&负载

Z冰红茶

游戏夜读 | 关卡设计的难点

game1night

一致性 hash 算法

Z冰红茶

一致性Hash算法

一致性hash的理解与实现

dongge

数据分析师成长体系漫谈--数据埋点

analysis-lion

数据分析 数据采集 埋点

Week 5 作业

Shawn

week2作业

使用@AutoConfigureBefore调整配置顺序竟没生效?

YourBatman

Java Spring Boot @AutoConfigureBefore

架构师训练营 - 第 5 课总结 -20200704- 技术选型

👑👑merlan

负载均衡 缓存 分布式数据库 架构设计 消息队列

第五周作业

Linuxer

极客大学架构师训练营

针对Python开发人员的10个“疯狂”的项目构想_语言 & 开发_Juan Cruz Martinez_InfoQ精选文章