译者序
以Web2.0的核心价值观—集体智慧为出发点,探讨各种能够让Web2.0程序变得更为智能的算法及其应用。
算法:过滤器,聚类算法,SVM,遗传编程,优化技术,PageRank。
中英文词汇对照:
前言
集体智慧(collective intelligence)。本书的目的是要带领你超越以数据库为后端的简单应用系统,并告诉你如何利用自己和他人每天搜集道德信息来编写更为智能的程序。
以循序渐进的方式来构建应用程序。
* 为何选择python:
简练,易于阅读,易于扩展,交互性,多范式,多平台和免费
Python技巧
- 列表和字典的构造函数
书中大量使用的两类基本类型:列表和字典。
列表:一组任意类型的值构成的有序列表,方括号组成。
number_list = [1,2,3,4]
string_list = ['a','b','c','d']
mixed_list = ['a',3,'c',8]
字典:一组名值对构成的无序集合,类似于hash map,大括号组成。
ages = {'John':24,'Sarah':28,'Mike':31}
访问元素:需列明后加方括号
srtring_list[2] #return 'c'
ages['Sarah'] #return 28
- 有意义的空白字符
利用代码缩进定义代码块
if x == 1
print 'x is 1'
print 'Still in if block'
print 'outside if block'
缩进可以使是任何数量的空格,但必须是常量。一般是两个空格。
* 列表推到式
列表推导式(list comprehension)是一种方便的语法形式,可以用来对一个列表过滤,转换成另一个列表。利用它将函数应用于列表中的元素。
格式:
[表达式 for 变量 in 列表]或者[表达式 for 变量 in 列表 if 条件]
代码示例:
list = [1,2,3,4,5,6,7]
print [v * 10 for v in list if v > 4]
打印输出:
[50,60,70]
与dict构造函数结合使用:
list = [1,2,3,4,5,6,]
timesten = dict([(v,v * 10) for v in list])
上述代码会建立字典然后乘以10输出
{1:10,2:20,3:30,4:40,5:50,6:60}
开放的API
API允许我们通过特殊的协议对数据进行访问,可以下载,处理数据。数据由站点的使用者提供,我们可以用现成的Python库访问API,或者创建自己的接口来访问数据。
* 常用提供API的Web站点:
del.icio.us:社会型书签应用系统
Kayak:提供API的旅游网站,集成航班和旅馆搜索。
eBay:在线交易站点,允许查询正在出售的货品
Hot or Not:评分与交友网站,对人员进行搜索。
Akismet:用于对协作型