嗨~我是小鱼,一个不太厉害混迹编程界的老学姐

今天分享一个超级厉害的模块PyQ5,学过编程的都了解过这个小工具吧?不仅可以生成艺术签名还可以让电脑自己哼唱歌曲。今天我们利用这个pyq5这个小工具和贝叶斯公式来做一个非常有意思且无聊的小项目:利用PyQ5制作一个根据名字来辨别性别。

一、PyQ5简介

这样一个强大的模块PyQt5是由Riverbank Computing开发,绑定Qt5的应用程序框架。他在Python 2.x和3.x中都是可用的。该教程使用的是Python3.x。Qt库是一套非常棒的GUI库。

PyQt5PyQt5是作为一套Python模块实现的。他已经超过620个类和6000个函数与方法。他是一个运行在所有主流操作系统上的多平台组件,包括Unix,Windows和Mac OS。PyQt5是双重许可的。开发者可以选择GPL和商业许可。

二、PyQt5安装

sudo pip3 install pyqt5

我们可以使用pip3安装PyQt5。

三、PyQt5模块

PyQt5的类被分成了多个模块,包括下面的:

QtCore

QtGui

QtWidgets

QtMultimedia

QtBluetooth

QtNetwork

QtPositioning

Enginio

QtWebSockets

QtWebKit

QtWebKitWidgets

QtXml

QtSvg

QtSql

QtTest

QtCore

PyQt4和PyQt5的不同点:

PyQt5是不对PyQt4向后兼容的;在PyQt5上有很多重大的改变。然而,使旧的编码适应新的库是并不困难的。不同点如下:

Python模块已经被重新组织了。一些模块已经被丢弃了(QtScript),其他的已经被分成子模块了(QtGui,QtWebkit)。新的模块已经被引入了,包括QtBluetooth,QtPositioning或Enginio。

PyQt5仅仅支持新形势的信号和槽处理。SIGNAL()和SLOT()的调用已经不被支持了。

在Qt v5.0中被标注过时的API,在PyQt5中已经不被支持了。

四、项目原理简介

先来简单介绍一下贝叶斯公式吧,然后再来说代码实现。

1、贝叶斯公式

英国数学家贝叶斯 ( Thomas Bayes 1702-1763 ) 发展,用来描述两个条件概率之间的关系,比如 P(A|B) 和 P(B|A)。按照乘法法则:P(A∩B)=P(A)*P(B|A)=P(B)*P(A|B),可以立刻导出。

如上公式也可变形为:P(B|A)=P(A|B)*P(B)/P(A)

例如:一座别墅在过去的 20 年里一共发生过 2 次被盗,别墅的主人有一条狗,狗平均每周晚上叫 3 次,在盗贼入侵时狗叫的概率被估计为 0.9,问题是:在狗叫的时候发生入侵的概率是多少?

我们假设 A 事件为狗在晚上叫,B 为盗贼入侵,则 P(A) = 3 / 7,P(B)=2/(20·365)=2/7300,P(A | B) = 0.9,按照公式很容易得出结果:P(B|A)=0.9*(2/7300)/(3/7)=0.00058

综合上面的结论,贝叶斯公式

实际应用到我们的姓名猜测性别中的话,其实就是求:

显然,我们有:

2、代码

这里我们已知每个汉字在男性名字和女性名字中出现的频率:

我们可以假设他们是独立的,例如:

def genderprob(name, probs, type_='male'):assert type_ in ['male', 'female']if type_ == 'male':p = self.male_total / self.totalfor c in name:p *= probs.get(c, (0, 0))[0]else:p = self.female_total / self.totalfor c in name:p *= probs.get(c, (0, 0))[1]return p

还是以刘亦菲为例:

P(女性) = 女性姓名出现的次数 / 总出现次数

P(刘|女) = 刘在女性姓名中出现的次数 / 女性姓名出现的总次数

分母在做除法的时候可以约去,所以不用算,即:

male_prob = genderprob(name, self.name_probs, 'male')female_prob = genderprob(name, self.name_probs, 'female')result = {'male': male_prob / (male_prob + female_prob), 'female': female_prob / (male_prob + female_prob)}

五、可视化界面

然后利用PyQt5给这个姓名预测性别的小模型做个简单的可视化界面:

源代码私聊获取~


在实操过程中有问题的可以进群咨询,交流群:954526228(注意进群暗号是:小鱼)
里面还有适合小白新手的全套资料给到大家~
快来和小鱼一起成长进步吧!
① 2000多本Python电子书(主流和经典的书籍应该都有了)
② Python标准库资料(最全中文版)
③ 项目源码(四五十个有趣且经典的练手项目及源码)
④ Python基础入门、爬虫、web开发、大数据分析方面的视频(适合小白学习)
⑤ Python学习路线图(告别不入流的学习)

快乐学习!Python趣味练手项目:PyQ5模块实现通过中文名字识别性别相关推荐

  1. python练手经典100例-Python 的练手项目有哪些值得推荐?

    首先两点建议:最好不要写太应用的程序练手,如果你发现你写程序的大部分时间都在查库手册(或者类似的事情),那就是大家所说的"搬砖"了:要思考什么更像是知识,什么只是经验,还是那句老话 ...

  2. 熬夜整理出了70个清华大佬都在用的Python经典练手项目【附源码】

    我们都知道,不管学习那门语言最终都要做出实际的东西来,而对于编程而言,这个实际的东西当然就是项目啦,不用我多说大家都知道学编程语言做项目的重要性. 于是,小编熬了几个通宵,终于整理出了70个清华大佬都 ...

  3. 70个Python实用练手项目(附源码)

    不管学习哪门语言都要做出实际的东西来,这个实际的东西就是项目. 恶霸整理了 70 个 Python 实战项目,都有完整且详细的教程,你可以从中选择自己想做的项目进行参考学习练手,你也可以从中寻找灵感去 ...

  4. Python 的练手项目:用Python创建一张三维立体画

    本项目生成的三维立体画设计为用"墙眼"方式观看.看到它们的最好方法,就是让眼睛聚焦在图像后面的点(如墙上).有点神奇,一旦在这些图案中感知到某样东西,眼睛就会自动将它作为关注的焦点 ...

  5. python新手项目-Python 的练手项目有哪些值得推荐?

    其实初学者大多和题主类似都会经历这样一个阶段,当一门语言基础语法学完,之后刷了不少题,接下来就开始了一段迷茫期,不知道能用已经学到的东西做些什么即便有项目也无从下手,而且不清楚该如何去提高技术水平. ...

  6. Python体系练手项目200例(附源代码),练完可显著提升python水平(鲲鹏编程--Python教育新物种)

    个人公众号 yk 坤帝 后台回复 练手项目 获取全部源代码 1.十转二 2.十转八 3 十转十六 4.字符串转字节 5.转为字符串 6.十转 ASCII 7.ASCII 转十 8.转为字典 9.转为浮 ...

  7. 100个Python实战练手项目(附源码+素材),学习必备

    前言: 不管学习哪门语言都希望能做出实际的东西来,这个实际的东西当然就是项目啦,不用多说大家都知道学编程语言一定要做项目才行. 这里整理了最新32个Python实战项目列表,都有完整且详细的视频教程和 ...

  8. (转)Python学习路径及练手项目合集

    转载自知乎 Wayne Shi,仅仅为了方便收藏查看,侵权删. 阶段1:入门知识 零编程基础的可以先从下面几个教程了解编程及环境入门知识.( 已有编程基础直接从阶段2起步) 1.  编程新手指南 2. ...

  9. Python 的练手项目有哪些值得推荐?

    点击上方"小白学视觉",选择加"星标"或"置顶" 重磅干货,第一时间送达 今天要推荐一本非常著名的开源书籍:<500 Lines or ...

最新文章

  1. DB2 XQuery学习笔记
  2. Python编程基础:第四十七节 抽象类Abstract Classes
  3. U3D非常诡异的【结构体引用】现象-个例
  4. 插画与UI组合素材APP模板|一切简单而美好
  5. 云计算开源软件有哪些?
  6. 你自己的事,你不操心谁操心?
  7. NotePad++ 调试PHP代码中文显示乱码
  8. FFT海水模拟(又来了-_-b)
  9. 新版电力系统决策支持系统开发告一段落
  10. 移动国际漫游电话费用计算
  11. no version information available问题解决
  12. AMD CPU 超频
  13. 云服务器流量是什么东西_云服务器带宽与流量都有什么关系?不限制流量服务器...
  14. 《生活中的魔法数学》读后感
  15. substratum android8,substratumlite主题管理
  16. 宝宝为什么不吃奶粉,奶爸必读文章
  17. AppsFlyer的测试
  18. Lenovo T460 Fn功能键切换
  19. Spring Boot学习笔记(超详细)
  20. linux还原数据库报错,RMAN还原数据库报错问题解决案例

热门文章

  1. haimianjie工作日记:2023年5月
  2. 网站SEO伪原创四步走,轻松搞定文章伪原创
  3. python实现批量提取图片中文字的小工具
  4. 100句泰语日常用语~
  5. 一分二USB-C双PD3.0智能快充与一般充电线区别
  6. linux和windows互传文件、用户配置文件和密码配置文件、用户组管理、用户管理...
  7. Linux 主要使用的文件系统,3.Linux磁盘、文件系统管理---文件系统的使用(挂载)...
  8. 关心房价的朋友看看,或许有些道理
  9. [转载]Eclipse开发J2ME程序之仿真机发布
  10. Adobe Photoshop CC 键盘快捷键