摘要:昨天在StackExchange上看到了一个很有趣的帖子:《为什么人们要使用编程技术书籍?(Why do people use programming books?)》。今天发布出来与大家分享,大家有什么观点尽情回复,我期待与大家分享心得,开展讨论。在我写这篇文章的时候,这个帖子在StackExchange站群的热门问题中排名第二。楼主的问题是这么说的:我发现当有人问如何编程的时候,别人通常会提供给他/她一个书单。但我不认为所有人都是通过看书学会编程的。有的人只是遇到问题,学习编程,然后将编程作为工具解决问题。拿我来说,我当时编程是因为想给自己玩的游戏搞一个服务器。那时我google一下找到了
阅读全文
摘要:本读书笔记的目录地址:http://www.cnblogs.com/mdyang/archive/2011/06/29/data-intensive-text-prcessing-with-mapreduce-contents.html因为最近工作比较忙,没有时间继续写这本书的读书笔记,所以本系列将会暂停一段时间。3.5 关系连接相关wiki:Join: http://en.wikipedia.org/wiki/Join_(SQL)Nested Loop Join: http://en.wikipedia.org/wiki/Nested_loop_join(译者:整个3.5都更像是数据库教程,
阅读全文
摘要:本文内容基于之前的一篇博文《Data-intensive Text Processing with MapReduce》读书笔记第3章:MapReduce算法设计(2):pair模式与stripe模式。这一节的末尾提出一个问题:stripe模式因为需要在mapper内维护一个关联数组,因此无法处理语料的词汇表非常大的情况。随后文章给出了一个解决思路:划分词汇表。但没有给出具体解决方法。本文针对这个思路,谈一谈如何通过划分词汇表的方式解决stripe模式存在的内存瓶颈。本文仅从抽象算法的层面对这个思路进行细化,不涉及具体的程序设计。因为条件所限,我目前尚无hadoop编程经验。空谈难免会有错误之
阅读全文
摘要:今天接到0571-的来电,简单寒暄过后对方表示是支付宝HR.大概三个月前的这个时候我正在找实习,当时我曾经投过支付宝,并且拿到了实习offer. 但我把他们拒掉了,原因是我对提供的职位没兴趣(J2EE)。前两秒纳闷我跟他们还有什么好说的,随后对方表示想深入了解一下没能实习的原因,于是我重申了我的理由:1. 职位不匹配 2. 招聘程序太拖沓(拿到offer时已经定了去EMC实习)我以支付宝应聘为例子,对自己找实习的经历进行了简单梳理。不过,这一篇不讨论笔试、面试题目。只是对一些边边角角的东西闲聊一下。关于职位其实我完全不知道这次是怎么选择职位的,当时支付宝来学院招聘,我登记了一些个人信息、提交简
阅读全文
摘要:本读书笔记的目录地址:http://www.cnblogs.com/mdyang/archive/2011/06/29/data-intensive-text-prcessing-with-mapreduce-contents.html3.4 二次排序在中间结果进入reducer之前,MapReduce会先将这些中间结果进行排序,然后再进行分发。这个机制对于依赖中间结果输入顺序(按照key的顺序)的reduce操作非常方便。反序(orderinversion)模式便是利用这个机制的一个例子。但如果有更进一步的排序需求呢(在前面的基础上再按value排序)?有了二次排序,能够保证到达reduce
阅读全文
摘要:本读书笔记的目录地址:http://www.cnblogs.com/mdyang/archive/2011/06/29/data-intensive-text-prcessing-with-mapreduce-contents.html3.3 计算相对频度(relative frequency,频率)改进共现矩阵:使用相对频度回顾上一节的内容,对于n×n的共现矩阵(co-orrurancematrix)m,mij的值是单词wi与wj在指定上下文范围内共现(co-orrurance)的次数。考虑现实中的一种情况:有的单词在本文中出现的次数远远多于其他单词(例如the)就会发现,使用这种
阅读全文
摘要:1 前言这篇读书笔记根据《集体智慧编程》第3章:聚类写成。本系列目录:http://www.cnblogs.com/mdyang/archive/2011/07/07/PCI-contents.html本文先对监督学习和无监督学习的概念进行简要介绍,引出聚类。然后给出聚类的一个经典问题:文档聚类的描述,并介绍构造特征向量和计算向量之间距离/相似度的方法。在此基础上给出使用两种基本聚类算法(层次聚类、K均值聚类)解决文档聚类问题的解法。2 监督学习与无监督学习简单地说,监督学习就是需要输入正确样例进行预训练的学习。预训练可以理解为告诉程序“怎么做”的过程。监督学习,例如神经网络、决策树、支持向量
阅读全文
摘要:本读书笔记的目录地址:http://www.cnblogs.com/mdyang/archive/2011/06/29/data-intensive-text-prcessing-with-mapreduce-contents.html3.2 对(pairs)与带(stripes)本节用一个自然语言处理(Natural Language Processing, NLP)中的常见示例来说明pair和stripe两种数据组织模式的区别。这个示例是共现矩阵(Co-occurance Matrix)的计算。共现矩阵在NLP中,共现矩阵是一个n×n的方阵,n是所需处理的语料中的单词数(不同单词
阅读全文
摘要:今日大致浏览了一下《High Performance Web Sites》。本书的中文版是《高性能网站建设指南》。本书另有对其中个别问题深入探究的进阶篇《Even Faster Web Sites》,中译《高性能网站建设进阶指南》。作者介绍上面的豆瓣链接中有,就不再照搬过来了。这本书中给出了14条网站性能提升的原则,每个原则独立成章,配有示例。这些原则大多数都非常实用,适合站点架构师、前端工程师。其中对于前端工程师的意义更大一些。这次看的是原版。我对于Web开发较缺乏实践经验,加之看得匆忙,因此可能存在遗漏、表述不当之处,希望广大网友不吝指正。原则1 减少HTTP请求数 构造请求、等待响应需要
阅读全文
摘要:爽约了。本来应该昨天更新的,结果昨天收到刚买的Focus手机过于兴奋把正事忘记了,十分抱歉!本读书笔记的目录地址:http://www.cnblogs.com/mdyang/archive/2011/06/29/data-intensive-text-prcessing-with-mapreduce-contents.html引言MapReduce的强大很大程度上来自于它的简单,程序员只需要准备以下几个要素:输入数据mapper和reducer划分器与合并器(这两个是可选的)但另一方面,这意味着所有希望使用MapReduce实现的算法都得以MapReduce模型特有的方式表达(map-redu
阅读全文
摘要:本书读书笔记目录:http://www.cnblogs.com/mdyang/archive/2011/07/07/PCI-contents.html第2章 推荐想得到电影推荐的时候怎么做?最原始的做法就是问自己的朋友。一开始,你会要求大多数朋友给你推荐电影,经过一段时间,你发现有些朋友比别人”有眼光“。这实际上意味着相对于别人,这些朋友与你具有更高的偏好相似度,因此他们喜欢的电影你很可能也会喜欢。这样一来,你自然就会更关注那些他们看过觉得不错,而你还没有看过的电影。这种就是众多协同过滤(collaborativefiltering)技术的来源。收集评价信息本章构建一个电影推荐程序,程序基于几
阅读全文
摘要:本读书笔记的目录地址:http://www.cnblogs.com/mdyang/archive/2011/06/29/data-intensive-text-prcessing-with-mapreduce-contents.html2.6 Hadoop集群架构图2.6 完整的Hadoop集群架构将上面的所有功能模块整合起来,我们就可以得到完整的Hadoop集群架构(如图2.6):1) HDFS namenode上运行namenode守护进程(daemon)2) 工作提交节点(job submission node)上运行工作追踪器(jobtracker),这种节点直接与客户端连接,接受Ma
阅读全文
摘要:本书读书笔记目录:http://www.cnblogs.com/mdyang/archive/2011/07/07/PCI-contents.html前言(本书于2007年由O’Reilly出版)Internet上由用户创造的献数据正在不断增加。这些数据暗含了用户的经历、喜好、行为特征等信息,因此对于商务决策、市场运作有很大价值。本书介绍一个正在崛起的领域——集体智慧。本书的目标是让你能设计可以更聪明的程序,这些程序可以分析你获得的数据,从而帮你构建超越简单数据后台管理程序的应用。本书主要涵盖数据挖掘、机器学习、搜索等领域的基础算法。要求本书中的代码全部使用Python边写,因此要求具有一定的
阅读全文
摘要:前言本文是《Programming Collective Intelligence》的读书笔记目录。说实话,这本书的中文名着实让我纠结。乍看书名,我还以为是讲团队合作的呢。但如果不用这个书名,估计看到的人也不知道我说的是《Programming Collective Intelligence》这本书吧=_=真的翻开了书才发现都是一些实用的数据处理算法,涉及数据挖掘、人工智能/机器学习、搜索/ranking等多个领域的基础知识。本书为了突出实用性与易读性,避免了晦涩的形式化数学表述。涉及算法几乎全部来源于实例,且都用Python代码描述。对于希望快速上手上述领域算法设计的程序员是一本不可多得的好
阅读全文
摘要:本博文记录我读过的SIGMOD 2011论文,一方面与大家分享,另一方面方便自己以后查找。1) Processing Theta-Joins using MapReduceAlper Okcan, Northeastern University; Mirek Riedewald*, Northeastern UniversityTheta-Join是Equijoin的超集(http://en.wikipedia.org/wiki/Relational_algebra#.CE.B8-join_and_equijoin)。简单来说,Equijoin的连接谓词是=,而Theta-Join的谓词则可以
阅读全文
摘要:本读书笔记的目录地址:http://www.cnblogs.com/mdyang/archive/2011/06/29/data-intensive-text-prcessing-with-mapreduce-contents.html2.5 分布式文件系统HDFS从数据放置的角度看传统大规模数据处理中的问题前面集中关注处理。但没有数据,处理无从谈起。在传统集群架构(例如HPC)中,计算与存储是两个分离的组件。虽然不同系统的具体实现有差异,但总体思路是一致的:计算节点从存储节点将数据读入,处理数据,将结果写出。随着数据量的增大,数据处理对于计算能力的要求也在提高。随着计算能力的提高,存储节点与
阅读全文
摘要:本读书笔记的目录地址:http://www.cnblogs.com/mdyang/archive/2011/06/29/data-intensive-text-prcessing-with-mapreduce-contents.html2.3 执行框架MapReduce最伟大的地方在于它分离了编写并行算法的what和how(你只需要写程序,而不需要为它怎么执行操心). 而对这一点贡献颇大的就是执行框架:它处理了几乎所有底层执行的细节,并且能够保证MapReduce集群具有从几个节点增长到数千节点的扩展能力。具体来说,包括以下一些职责:1) 调度每项MapReduce工作(job)都被分解为多个
阅读全文