学Python 掌握人工智能,创建聊天机器人,你不知道有哪些?

学Python 掌握人工智能,创建聊天机器人,你不知道有哪些?

在最近几年 Python 一直在快速增长,python作为人工智能首先编程语言后,尤其是在去年跃居为排名第一的编程语言。在 Stack Ovehrflow 上,关于 Python 相关问题的访问数增长的比任何语言都快,作为世界上增长最快的主要编程语言,其相关行业薪资水平水涨船高。

学Python 掌握人工智能,创建聊天机器人,你不知道有哪些?

近日,Python 语言作者 Guido van Rossum 在开发者邮件列表上 宣布:Python 2.7 将于 2020 年 1 月 1 日正式终止支持,用户如果想要在这个日期之后继续得到与 Python 2.7 有关的支持,则需要付费给商业供应商。

学Python 掌握人工智能,创建聊天机器人,你不知道有哪些?

据悉,Python 2.7 原计划在 2015 年终止支持,但由于大量现有代码没有移植到 Python 3,所以开发者将终止支持的时间推迟到了 2020 年。

作为 Python 2.x 版本的最后一版,Python 2.7 于 2010 年 7 月 3 日发布。开发者表示,发布 Python 2.7 的目的在于,通过提供一些测量两者之间兼容性的措施,使 Python 2.x 的用户更容易将功能移植到 Python 3 上,所以 Python 2.7 也被认为是一种遗留语言。

学Python 掌握人工智能,创建聊天机器人,你不知道有哪些?

另外,如果你使用的是 Python 2.7 版本,而且打算参加全国计算机等级考试的话,你将不符合 Python 科目的考试规则。

2020 年元旦之后,来自 Python 核心开发团队、PSF(Python 软件基金会)、Python.org 的支持,统统都停掉。

如果以后你想要对 2.7 的支持,你得给商业供应商掏钱了。当然了,因为 Python 是开源的,所以也欢迎大家来 fork。

官方核心开发团队已经努力工作够长的时间了,离 2020 年的 EOL 日期还有很长,(之前曾说过在 2015 年就终结),所以停止支持 Python 2,我完全没觉得有啥糟糕的。

在 2017 年 12 月 25 日,教育部宣布的全国计算机等级考试改革中,首次加入了 Python 科目,但是软件要求达到 Python 3.5.2 版本及以上 IDLE。

学Python 掌握人工智能,创建聊天机器人,你不知道有哪些?

作为一门面向对象的编程语言,Python 相比起其他编程语言,具有语法简练、可读性强、易学易读,且开源、可移植、可拓展、可嵌入等优势,其面向对象也更加安全,是如今最为高效的编程语言之一。更有说法认为, Python 是最接近 AI(人工智能)的编程语言。

值得一提的是,屡次战胜人类围棋手的 AlphaGo,背后的程序很大一部分就是由 Python 语言编写的。

下面教你手把手教你用Python创建微信聊天机器人

准备工作

安装非常简单,从官方源下载安装

pip install -U wxpy

或者从豆瓣源安装

pip install -U wxpy -i "https://pypi.doubanio.com/simple/"

模块初探

安装完成后,我们来试下几个基本的功能

fromwxpy import*

bot = Bot()

运行上面的程序,会弹出二维码,用手机微信扫一扫即可实现登录。

但上面的程序有一个缺点,每次运行都要扫二维码。不过 wxpy 非常贴心地提供了缓存的选项,如下

bot = Bot(cache_path= True)

这样把登录信息保存下来,就不用每次都扫二维码了。

2. 发送消息

bot.file_helper.send( "hello")

这里的 file_helper 就是微信的文件传输助手,我们给文件传输助手发送一条消息,可以在手机端收到如下的消息

学Python 掌握人工智能,创建聊天机器人,你不知道有哪些?

3. 接受消息

我们实现一个收到消息自动回复的功能。

@bot.register()

defprint_message(msg):

print(msg.text)

returnmsg.text

# 进入Python命令行,让程序保持运行

embed()

我们打开自己的公众号管理平台,在后端向自己发送消息,就可以收到如下的消息回复

学Python 掌握人工智能,创建聊天机器人,你不知道有哪些?

4. 搜索好友及微信群

我们来实现一个搜索公司群、定位老板并转发老板消息的功能

fromwxpy import*

bot = Bot(cache_path= True)

# 定位公司群

company_group = bot.groups().search( '公司微信群')[ 0]

# 定位老板

boss = company_group.search( '老板大名')[ 0]

# 将老板的消息转发到文件传输助手

@bot.register(company_group)

defforward_boss_message(msg):

ifmsg.member == boss:

msg.forward(bot.file_helper, prefix= '老板发言')

# 堵塞线程

embed()

对于老板喜欢在群里面喊话的同学来说,这是一个福音,以后再也不用担心错失老板的重要信息了~~

数据统计

wxpy 的好友统计功能非常好用,可以很方便地统计好友的地理位置分布和性别分布。

下面的代码中,强哥统计了下自己的好友的分布情况,并打印出人数最多的 10 个地区。

fromwxpy import*

bot = Bot(cache_path= True)

friends_stat = bot.friends().stats()

friend_loc = [] # 每一个元素是一个二元列表,分别存储地区和人数信息

forprovince, count infriends_stat[ "province"].iteritems():

ifprovince != "":

friend_loc.append([province, count])

# 对人数倒序排序

friend_loc.sort(key= lambdax: x[ 1], reverse= True)

# 打印人数最多的10个地区

foritem infriend_loc[: 10]:

printitem[ 0], item[ 1]

统计出来的地区分布数据画成图表如下

大多数的好友也来自上海,上面的图表也如实地反应了这一情况。

统计性别分布的代码如下

forsex, count infriends_stat[ "sex"].iteritems():

# 1代表MALE, 2代表FEMALE

ifsex == 1:

print"MALE %d"% count

elifsex == 2:

print"FEMALE %d"% count

学Python 掌握人工智能,创建聊天机器人,你不知道有哪些?

学Python 掌握人工智能,创建聊天机器人,你不知道有哪些?

聊天机器人

有了上面功能简介部分的基础,我们来实现一个聊天机器人。

聊天机器人基于图灵机器人。图灵机器人可以在图灵机器人-中文语境下智能度最高的机器人大脑注册账号,并创建机器人。

# -*- coding: utf-8 -*-

importjson

importrequests

fromwxpy import*

# 调用图灵机器人API,发送消息并获得机器人的回复

defauto_reply(text):

url = "http://www.tuling123.com/openapi/api"

api_key = "你的api key"

payload = {

"key": api_key,

"info": text,

"userid": "123456"

}

r = requests.post(url, data=json.dumps(payload))

result = json.loads(r.content)

return"[tuling] "+ result[ "text"]

bot = Bot(console_qr= True, cache_path= True)

@bot.register(mp)

defforward_message(msg):

returnauto_reply(msg.text)

embed()

运行上面的程序,发送消息给自己,可以看到如下的对话

学Python 掌握人工智能,创建聊天机器人,你不知道有哪些?

机器人太逗了,上来就要红包。

学Python 掌握人工智能,创建聊天机器人,你不知道有哪些?

学Python 掌握人工智能,创建聊天机器人,你不知道有哪些?

相关推荐