我用了100行Python代码,实现了与女神尬聊微信(附代码)

Python045

我用了100行Python代码,实现了与女神尬聊微信(附代码),第1张

朋友圈很多人都想学python,有一个很重要的原因是它非常适合入门。对于 人工智能算法 的开发,python有其他编程语言所没有的独特优势, 代码量少 ,开发者只需把精力集中在算法研究上面。

本文介绍一个用python开发的,自动与美女尬聊的小软件。以下都是满满的干货,是我工作之余时写的,经过不断优化,现在分享给大家。那现在就让我们抓紧时间开始吧!

准备:

编程工具IDE:pycharm

python版本: 3.6.0

首先新建一个py文件,命名为:ai_chat.py

PS: 以下五步的代码直接复制到单个py文件里面就可以直接运行。为了让读者方便写代码,我把代码都贴出来了,但是排版存在问题,我又把在pycharm的代码排版给截图出来。

第一步: 引入关键包

简单介绍一下上面几个包的作用: pickle 包 是用来对数据序列化存文件、反序列化读取文件,是人类不可读的,但是计算机去读取时速度超快。(就是用记事本打开是乱码)。 而 json包 是一种文本序列化,是人类可读的,方便你对其进行修改(记事本打开,可以看到里面所有内容,而且都认识。) gensim 包 是自然语言处理的其中一个python包,简单容易使用,是入门NLP算法必用的一个python包。 jieba包 是用来分词,对于算法大咖来说效果一般般,但是它的速度非常快,适合入门使用。

以上这些包,不是关键,学习的时候,可以先跳过。等理解整个程序流程后,可以一个一个包有针对性地去看文档。

第二步:静态配置

这里path指的是对话语料(训练数据)存放的位置,model_path是模型存储的路径。

这里是个人编程的习惯,我习惯把一些配置,例如:文件路径、模型存放路径、模型参数统一放在一个类中。当然,实际项目开发的时候,是用config 文件存放,不会直接写在代码里,这里为了演示方便,就写在一起,也方便运行。

第三步: 编写一个类,实现导数据、模型训练、对话预测一体化

首次运行的时候,会从静态配置中读取训练数据的路径,读取数据,进行训练,并把训练好的模型存储到指定的模型路径。后续运行,是直接导入模型,就不用再次训练了。

对于model类,我们一个一个来介绍。

initialize() 函数 __init__() 函数 是对象初始化和实例化,其中包括基本参数的赋值、模型的导入、模型的训练、模型的保存、最后返回用户一个对象。

__train_model() 函数,对问题进行分词,使用 gesim 实现词袋模型,统计每个特征的 tf-idf , 建立稀疏矩阵,进而建立索引。

__save_model() 函数 和 __load_model() 函数 是成对出现的,很多项目都会有这两个函数,用于保存模型和导入模型。不同的是,本项目用的是文件存储的方式,实际上线用的是数据库

get_answer() 函数使用训练好的模型,对问题进行分析,最终把预测的回答内容反馈给用户。

第四步:写三个工具类型的函数,作为读写文件。

其中,获取对话材料,可以自主修改对话内容,作为机器的训练的数据。我这里只是给了几个简单的对话语料,实际上线的项目,需要大量的语料来训练,这样对话内容才饱满。

这三个工具函数,相对比较简单一些。其中 get_data() 函数,里面的数据是我自己编的,大家可以根据自己的习惯,添加自己的对话数据,这样最终训练的模型,对话方式会更贴近自己的说话方式。

第五步: 调用模型,进行对话预测

主函数main(), 就是你整个程序运行的起点,它控制着所有步骤。

运行结果:

程序后台运行结果:

如果有疑问想获取源码( 其实代码都在上面 ),可以后台私信我,回复:python智能对话。 我把源码发你。最后,感谢大家的阅读,祝大家工作生活愉快!

计算机软件专业

前言

最近我看了一些文章,都是python和java到底学谁好,我觉得Java的应用经验更丰富,代码量比Python更多一些,所以Python相对简单。

PYTHON是最好的语言:

学好Python能做什么?相信这是很多打算入门Python的新手们所关心的问题。知己知彼,方能百战百胜。更何况是想要学习热门的Python编程语言,更是少不了对其有一定的认识了解。

常言道: "流水的语言,铁打的 Python",Python编程语言自身具有天生丽质,易于读写,非常实用,从而赢得了广泛的群众基础,被誉为"宇宙最好的编程语言",被无数程序员热烈追捧。由于其可扩展性,适应性和易于学习而成为增长最快的编程语言之一。

Python的整体语言设计,低级和高级编程的平衡,模块化编程和测试框架使其不同于其他语言。即便是不相关的其他行业人士,也能很容易用Python完成项目,甚至利用它成功转行!

你没有看错,学好python就是这么受欢迎。

工作方向:

既然Python优势如此之多,那么,到底学好python能做什么?有哪些就业方向呢?

1.人工智能(AI) 2.网络爬虫 3.数据科学 4.Web 应用开发

小编在这里主要推荐人工智能,Python在人工智能大范畴领域内的数据挖掘、机器学习、神经网络、深度学习等方面都是主流的编程语言,得到广泛的支持和应用。

人工智能的薪酬是多少?

这是我一家招聘网上看到的阿里巴巴招聘工资,排在第一位的是人工智能,其次是图像算法(目前也挺火的),然后才是机械学习。可以看到人工智能的工资远远高于其他岗位,当然这基本上是985/211的毕业生,其他本科的待遇可能会差一点,不过基本保持在15K-20K之间吧,想想互联网其他岗位那个起薪有这么高。

为什么人工智能工资这么高?

说到底,还是因为稀缺,相对来说人工智能的起步条件还是很高的。首先培养需要很大的成本,而且想成为AI工程师,不仅需要过硬的编程能力,还需要扎实的数学基础和英文水平,另外,在上大学的时候就要受到名师指导,或者在毕业就职的时候,就能进入一个有实力的公司,接受前辈的指点。

AI工程师不等于程序员,在某些程度来看,AI工程师的层次是高于程序员的,想成为一名优秀的AI工程师,所需的知识,绝对不仅仅只有计算机方面的知识。因为AI工程可能只需要几百几千行代码就可以完成,

而JAVA工程则需要几万甚至十万以上行的代码才能完成,所以其技术含量可想而知。

既然工作没有那么简单,那常见的AI工程师每天都在干着什么岗位呢?

以纯理论方向发展的有AIpha,前段时间AIphaStar又一次以10比0的碾压式打败了人类。还有各种聊天软件如:微软小冰,小爱同学。

以实战方向发展的有YOLO多物体追踪,这个是实用性最好的模型。比如公安局应用的天网系统,对于通过的嫌疑人或者车辆可以进行检测和逃逸轨迹预测。(虽然是现在被一张图片打败了)

其实像阿里,腾讯等等这种大型企业因为占据了大好位置,也想进一步扩大地盘,所以不择手段的加工资,以吸引人才。(那为什么不挖我去,有他们一半工资就好了)

最后

人工智能这个岗位其实综合能力要求比较高的,就像开发岗的架构师一样,因为不是基础岗位所以它要求你对于框架,数据处理,数学部分和深度学习部分都要有所了解,如果有想往这方面走一定要多维的的发展。

当真正开始学习的时候难免不知道从哪入手,导致效率低下影响继续学习的信心。

但最重要的是不知道哪些技术需要重点掌握,学习时频繁踩坑,最终浪费大量时间,所以拥有有效资源还是很有必要的。

关于如些学习Python: