摘要: 互联网的出现,意味着"信息大爆炸"。用户担心的,不再是信息太少,而是信息太多。如何从大量信息之中,快速有效地找出最重要的内容,成了互联网的一大核心问题。各种各样的排名算法,是目前过滤信息的主要手段之一。对信息进行排名,意味着将信息按照重要性依次排列,并且及时进行更新。排列的依据,可以基于信息本身的特征,也可以基于用户的投票,即让用户决定,什么样的信息可以排在第一位。下面,我将整理和分析一些基于用户投票的排名算法,打算分成六个部分连载,今天是第一篇。一、Delicious最直觉、最简单的算法,莫过于按照单位时间内用户的投票数进行排名。得票最多的项目,自然就排在第一位。旧版的D 阅读全文
posted @ 2013-07-18 16:38 ancientmoon 阅读(295) 评论(0) 推荐(0) 编辑
摘要: 1.作用Linux系统中grep命令是一种强大的文本搜索工具,它能使用正则表达式搜索文件或标准输入,并把匹配正则表达式的行打印出来。grep全称是Global Regular Expression Print,表示全局正则表达式版本,它的使用权限是所有用户。2.格式grep [options]... PATTERN [FILE]...3.主要参数Regexp selection and interpretation:-E:表示正则表达式PATTERN 为扩展的正则表达式-G:表示正则表达式PATTERN 为基本的正则表达式-f: 从文件中获取正则表达式-i: 不区分大小写-w: 强制PATTE 阅读全文
posted @ 2012-10-30 18:11 ancientmoon 阅读(324) 评论(0) 推荐(0) 编辑
摘要: 有人在Stack Exchange问了一个问题: "我一直觉得虚数(imaginary number)很难懂。 中学老师说,虚数就是-1的平方根。 可是,什么数的平方等于-1呢?计算器直接显示出错! 直到今天,我也没有搞懂。谁能解释,虚数到底是什么? 它有什么用?"帖子的下面,很多人给出了自己的解释,还推荐了一篇非常棒的文章《虚数的图解》。我读后恍然大悟,醍醐灌顶,原来虚数这么简单,一点也不奇怪和难懂!下面,我就用自己的语言,讲述我所理解的虚数。一、什么是虚数?首先,假设有一根数轴,上面有两个反向的点:+1和-1。这根数轴的正向部分,可以绕原点旋转。显然,逆时针旋转180度 阅读全文
posted @ 2012-10-22 15:09 ancientmoon 阅读(309) 评论(0) 推荐(0) 编辑
摘要: SVD分解是LSA的数学基础,本文是我的LSA学习笔记的一部分,之所以单独拿出来,是因为SVD可以说是LSA的基础,要理解LSA必须了解SVD,因此将LSA笔记的SVD一节单独作为一篇文章。本节讨论SVD分解相关数学问题,一个分为3个部分,第一部分讨论线性代数中的一些基础知识,第二部分讨论SVD矩阵分解,第三部分讨论低阶近似。本节讨论的矩阵都是实数矩阵。基础知识1. 矩阵的秩:矩阵的秩是矩阵中线性无关的行或列的个数2. 对角矩阵:对角矩阵是除对角线外所有元素都为零的方阵3. 单位矩阵:如果对角矩阵中所有对角线上的元素都为零,该矩阵称为单位矩阵4. 特征值:对一个M x M矩阵C和向量X,如果存 阅读全文
posted @ 2012-10-22 14:42 ancientmoon 阅读(429) 评论(0) 推荐(0) 编辑
摘要: 特征值和特征向量的物理意义ABSTRACT:特征向量:它经过这种特定的变换后保持方向不变。只是进行长度上的伸缩而已。特征值:一个变换(矩阵)可由它的所有特征向量完全表示,而每一个向量所对应的特征值,就代表了矩阵在这一向量上的贡献率——说的通俗一点就是能量(power)。内积:内积可以简单的理解为两个函数的相似程度,内积值越大表示两个函数相似程度越大,内积为零表示完全不相似。两个函数内积为零则两个函数正交,在三维空间中它们的夹角为90度,在三维以上不是这样的。CONTENT矩阵(既然讨论特征向量的问题。当然是方阵。这里不讨论广义特征向量的概念)乘以一个向量的结果仍是同维数的一个向量。因此。矩阵乘 阅读全文
posted @ 2012-10-22 14:41 ancientmoon 阅读(2165) 评论(0) 推荐(0) 编辑
摘要: 1.作用cut 是将文件中的每行所选的部分输出到标准输出流中的shell 工具,是常用的简单文件处理命令之一,其是以每一行为一个处理对象的,这种机制和sed是一样的。2.格式其主要使用方式是:cut [OPTION]... [FILE]...3.主要参数-b:以字节方式来进行截取-c: 按照字符方式来截取-d: 设置分隔符,以替代默认分隔符 TAB-f:选取被分隔符分割后的项-n: 该选项是和-b选项结合使用的,-nb,意思是不用将多字节字符分割上面这些选项中,-b,-c,-f 都是需要一个数字参数作截取范围限制,其格式通常如下:N :第N个N- :从N开始到结束N-M :从N开始到M-M.. 阅读全文
posted @ 2012-10-18 12:24 ancientmoon 阅读(241) 评论(0) 推荐(0) 编辑
摘要: 经常在使用hive会出现一些莫名其妙的错误,比如我最近使用hive在进行数据操作时遇到下面的问题:将数据insert 到local不会出现问题,但是insert overwrite table 的时候遇到了如下的错误信息:FAILED: Execution Error, return code 1 from org.apache.hadoop.hive.ql.exec.MapRedTask这个问题的解决方法:这是集群有问题, 在 sql 语句末尾加入 distribute by "任意字段" 后不会出现该错误, 加入 distribute 语句后将数据打散,这样通常会解决问 阅读全文
posted @ 2012-10-17 16:41 ancientmoon 阅读(1935) 评论(0) 推荐(0) 编辑
摘要: 当前HIVE 不支持 not in 中包含查询子句的语法,形如如下的HQ语句是不被支持的:查询在key字段在a表中,但不在b表中的数据select a.key from a where key not in(select key from b) 该语句在hive中不支持可以通过left outer join进行查询,(假设B表中包含另外的一个字段 key1select a.key from a left outer join b on a.key=b.key where b.key1 is null 阅读全文
posted @ 2012-10-10 17:28 ancientmoon 阅读(453) 评论(0) 推荐(0) 编辑
摘要: 作为数据分析中经常进行的join 操作,传统DBMS 数据库已经将各种算法优化到了极致,而对于hadoop 使用的mapreduce 所进行的join 操作,去年开始也是有各种不同的算法论文出现,讨论各种算法的适用场景和取舍条件,本文讨论hive 中出现的几种join 优化,然后讨论其他算法实现,希望能给使用hadoop 做数据分析的开发人员提供一点帮助.Facebook 今年在yahoo 的hadoop summit 大会上做了一个关于最近两个版本的hive 上所做的一些join 的优化,其中主要涉及到hive 的几个关键特性: 值分区 , hash 分区 , map join , inde 阅读全文
posted @ 2012-10-10 14:54 ancientmoon 阅读(357) 评论(0) 推荐(0) 编辑
摘要: 虽然有streaming方式,但是碍于本人蹩脚的C++,还是决定由JNI方式来进行分词,下面是具体环境:hadoop:0.201linux :2.6.16.60-0.21-TENCENT64-110923jdk:Java(TM) SE Runtime Environment (build 1.6.0_17-b04),Java HotSpot(TM) 64-Bit Server VM (build 14.3-b01, mixed mode)TCWordSeg所必需的文件:其中libTCWordSeg.so是分词的库文件,而TCWordSeg.jar中包含了所有的类和方法原型。还有一个词典文件夹 阅读全文
posted @ 2012-09-21 12:57 ancientmoon 阅读(896) 评论(0) 推荐(0) 编辑