腾讯DeepOcean原创文章:dopro.io/pymainhtml.…
笔者上一篇文章我们讲到了如何“从零开始造一个智障机器人”,如果感兴趣的朋友可以看一看。本文可以说是上一篇文章的前传,为造聊天机器人而打基础。
上篇文章中的对话机器人,其一问一答还是挺流畅的,那么我们不禁思考,为什么“机器人”能根据我们的问句,回答出符合逻辑、语义的答案呢?其实这一切的一切都是源于自然语言训练的基础——语料。
本文将和大家分享一些从互联网上爬取语料的经验。
0x1 工具准备
工欲善其事必先利其器,爬取语料的根基便是基于python。我们基于python3进行开发,主要使用以下几个模块:requests、lxml、json。
简单介绍一个各模块的功能
01|requests
requests是一个Python第三方库,处理URL资源特别方便。它的官方文档上写着大大口号:HTTP for Humans(为人类使用HTTP而生)。相比python自带的urllib使用体验,笔者认为requests的使用体验比urllib高了一个数量级。
我们简单的比较一下:
urllib:
1import urllib2
2import urllib
3
4URL_GET = "https://api.douban.com/v2/event/list"
5#构建请求参数
6params = urllib.urlencode({
'loc':'108288','day_type':'weekend','type':'exhibition'})
7
8#发送请求
9response = urllib2.urlopen('?'.join([URL_GET,'%s'])%params)
10#Response Headers
11print(response.info())
12#Response Code
13print(response.getcode())
14#Response Body
15print(response.read())
复制代码
requests:
1import requests
2
3URL_GET = "https://api.douban.com/v2/event/list"
4#构建请求参数
5params = {
'loc':'108288','day_type':'weekend','type':'exhibition'}
6
7#发送请求
8response = requests.get(URL_GET,params=params)
9#Response Headers
10print(response.headers)
11#Response Code
12print(response.status_code)
13#Response Body
14<