摘要:
很庆幸,我还能坐在咖啡馆中写博客。很庆幸,我熬过了所谓的世界末日,来到了2013。随着“世界末日”一天天远去,关于末日的讨论和话题也慢慢淡忘,但不管怎样,我们应该跟过去说再见,跟烦恼说再见,跟自己的缺点说再见,从现在开始重新活一次,活的更有质量,更精彩,就像已经死过一次一样。这样才能更加珍惜现在的生活,珍惜身边的亲人和朋友,珍惜所从事的工作,珍惜所有人和事。很庆幸,我的2012年很精彩,让我难以忘记。家庭和睦,爱情甜美,基情四射,5次旅行,9个城市,1段宝贵的实习经历,将近10个工作offer,将我所有的烦恼冲淡,回想这一年,我无比欣慰,并充满了感激。还是学生身份的我,得以有这么多的机会外出旅 阅读全文
摘要:
经过3个月的笔试,面试,再笔试,再面试,终于把工作的事情基本搞定了。这一段时间可谓是真刀真枪,紧张激烈,好在结果还算让人满意。之所以要写这个面经,主要是想介绍一些找工作的经验,特别是对于一个来自于非985学校的毕业生,如何找到自己的定位,准备面试。希望我的经历可以对后来人有所帮助,也欢迎大家多多跟我交流,有什么问题都可以随时留言,我必知无不言,言无不尽。先说说我的战绩,只陈述事实,绝无他意:(按时间顺序)得到offer的公司:百度商务搜索部,人人网搜索部,搜狗网页搜索部,阿里巴巴集团杭州总部算法研发工程师,安管家公司(腾讯投资的一个创业工资),盘古搜索,Garena公司(Singapore)面 阅读全文
摘要:
转过来以后备用~根据自己喜好可以进行额外修改, 放在~/.vimrc即可 :)vimrc 的语法规则是用双引号作为行注释开始, 类似 C/C++ 里的 // 注释1234567891011121314151617181920212223242526272829303132set nocompatible " 非 vi 兼容模式syntax on " 色彩高亮filetype on " 识别文件类型set number " 显示行数set ruler " 显示当前位置于右下角set backspace=2 " 设置 backspace 阅读全文
摘要:
转载一篇文章,作为记录,有时间去看一遍~为了方便大家从理论到实践,从入门到精通,循序渐进系统地理解和掌握推荐系统相关知识。特做了个读物清单。大家可以按此表阅读,也欢迎提出意见和指出未标明的经典文献以丰富各学科需求(为避免初学者疲于奔命,每个方向只推荐几篇经典文献)。1. 中文综述(了解概念-入门篇)a) 个性化推荐系统的研究进展b) 个性化推荐系统评价方法综述2. 英文综述(了解概念-进阶篇)a) 2004ACMTois-Evaluating collaborative filtering recommender systemsb) 2004ACMTois -Introduction to R 阅读全文
摘要:
因为经常遇到各种错误,所以转载过来,以备忘:经常遇到的exception是:PipeMapRed.waitOutputThreads(): subprocess failed with code N"OS error code 1: Operation not permitted""OS error code 2: No such file or directory""OS error code 3: No such process""OS error code 4: Interrupted system call" 阅读全文
摘要:
上次介绍了信息检索技术——布尔检索,布尔模型已经可以解决一个很重要的问题,就是找到和用户需求相关的文档(其中还需要很多处理,比如分词,归一化,去掉停用词等等,我们只是介绍主要的框架流程)。但是这样找到的文档会有很多,也许上千个,也许上万个,这远远不是用户所要的。用户也不会去从几万个文档中挑选自己要找的。因此我们需要对结果进行排序,把最能满足用户需求的文档放在最上面显示给用户,就像google和baidu做的一样。细心的朋友就能发现,其实信息检索是一个循序渐进的剪枝和筛选过程,最后留下的就是用户想要的。因此,我们需要一种评分机制来进行排序,通过得分的高低排除top N的文档返回给用户。这个评分通 阅读全文
摘要:
前一阵子和大家分享了一系列排序算法,希望对大家能够有一些帮助。从今天开始,本人打算开展一个新的领域,介绍一下信息检索相关的技术。信息检索技术可以说现如今发展非常迅速,使用也极其广泛,甚至可以说是随处可见。特别是做一些跟搜索引擎,机器学习相关工作时,信息检索的知识无处不在。为了让大家更好的理解信息检索技术,我将分多次对信息检索技术做一个尽可能细致的阐述,难度由浅及深,欢迎大家多多拍砖。今天先介绍最简单的信息检索技术,布尔检索。信息检索(IR),通俗的讲,就是要在一个很大的文本(有时可能是其他数据,如图像等)集合中,找到与用户需求相关的可以满足用户需求的非结构化信息。听起来有点拗口,其实就是一种查 阅读全文
摘要:
前一阵子一直在写排序的系列文章,最近因为一些事情耽搁了几天,也穿插了几篇其他类别的随笔。今天还是回到排序上面来,善始善终,呵呵。今天要介绍的也是一种效率很高的排序——堆排序思想堆排序,顾名思义,就是基于堆。因此先来介绍一下堆的概念。堆分为最大堆和最小堆,其实就是完全二叉树。最大堆要求节点的元素都要大于其孩子,最小堆要求节点元素都小于其左右孩子,两者对左右孩子的大小关系不做任何要求,其实很好理解。有了上面的定义,我们可以得知,处于最大堆的根节点的元素一定是这个堆中的最大值。其实我们的堆排序算法就是抓住了堆的这一特点,每次都取堆顶的元素,将其放在序列最后面,然后将剩余的元素重新调整为最大堆,依次类 阅读全文
摘要:
今天来说一个简单的需求:在一个序列中找到第二大的元素。一眼看到这个问题,感觉解决的方法有很多,因为这并不是一个困难的问题。随便一想,能有下面几种解法:1 首先排序,然后取第二个位置的元素2 循环遍历元素序列,找到最大的元素,然后将其移除。再重复此过程,得到第二大的元素当然还有其他的思路,这里就不一一列举了。如果大家有什么好的想法,可以给我留言,咱们一起探讨。仔细分析一下,不难发现,上面的方法虽然可以达到目的,但是效率都不高。第一种方法相当于一次排序过程,最快也要O(nlogn)的时间才能完成。而第二种方法需要循环遍历序列两次,O(n)+O(n)的时间复杂度虽然不是无法接受,但毕竟还是要循环两次 阅读全文
摘要:
今天在使用hadoop时遇到一个需求,要将具有一定关系的若干个大表进行合并join,乍看起来比较困难。但是仔细分析了一下,还是可以比较好的解决问题的。况且在海量数据处理中,这是一个非常普遍常见的需求。因此写下来和大家分享一下。如果哪为仁兄看后有更好的办法,咱们也可以切磋一下。欢迎拍砖,哈哈。下面描述一下需求,有如下两种数据数据Akey value1 value2 value3...valuen数据Bvalue1 a1 a2 a3....anvalue2 b1 b2 b3....bn...valuen x1 x2 x3...xn目标数据key value1 a1 a2 a3...an value 阅读全文