自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

  • 博客(61)
  • 资源 (2)
  • 收藏
  • 关注

转载 OpenCV运动检测跟踪(blob track)框架组成模块详解

在..\opencv\doc\vidsurv文件夹中有三个doc文件,Blob_Tracking_Modules、Blob_Tracking_Tests、TestSeq,其中Blob_Tracking_Modules必须需要详读的。 “FG/BG Detection” module performsforeground/background segmentation for

2012-11-22 10:56:06 5718

转载 Python正则表达式

正则表达式是个魔鬼,也是个天使。在你没有掌握它之前,它是魔鬼,在你掌握它后,它是天使,但是,时 不时还是要跳出来,给你调皮捣蛋一番。一个正则表达式就是由普通字符以及特殊字符组成的文字模式,该模式描述在查找文字主体时待 匹配的一个或多个字符串。正则表达式作为一个模板,将某个字符模式与所搜索的字符串进行匹配,并能提取出匹配的结果。它是搜索、替换和解析复杂字符模式的 一种强大而标准的方法。

2012-10-16 17:02:01 8299

转载 Detecting Near-Duplicates for Web Crawling - simhash与重复信息识别

随着信息爆炸时代的来临,互联网上充斥着着大量的近重复信息,有效地识别它们是一个很有意义的课题。例如,对于搜索引擎的爬虫系统来说,收录重复的网页是毫无意义的,只会造成存储和计算资源的浪费;同时,展示重复的信息对于用户来说也并不是最好的体验。造成网页近重复的可能原因主要包括: 镜像网站内容复制嵌入广告计数改变少量修改一个简化的爬虫系统架构如下图所示: 事实上,传

2012-09-20 17:16:41 10166 1

转载 simhash算法的原理

simhash算法的原理第一次听说google的simhash算法[1]时,我感到很神奇。传统的hash算法只负责将原始内容尽量均匀随机地映射为一个签名值,原理上相当于伪随机数产生算法。传统hash算法产生的两个签名,如果相等,说明原始内容在一定概率下是相等的;如果不相等,除了说明原始内容不相等外,不再提供任何信息,因为即使原始内容只相差一个字节,所产生的签名也很可能差

2012-09-20 17:06:09 5017

转载 谷歌如何从网络的大海里捞到针

谷歌如何从网络的大海里捞到针David Austin关键词: 谷歌,搜索,随机矩阵,特征值想象一个含有250亿份文件,却没有集中管理机构和馆员的图书馆,而且任何人都可以在任何时间添加新的文件而不需要通知其他人。一方面你可以确定,这庞大的文件堆中有一份文件含有对你至关重要的信息,而另一方面,你又像我们中的大多数人那样没有耐心,想要在几秒钟之内就找到这条信息。你有什

2012-09-17 18:55:08 9489

转载 感悟、资产和幸福感

感悟、资产和幸福感随着阅历的加深,我关注的事物和接受的知识也在不断地发生着变化。大学毕业已经四年了,过去的半年中,我接触了一些看似不连贯的信息,因为觉得它们有用,就把这些信息全部记在了脑子中。直到最近,才发现一个片段正在解释和说明着另一个片段,而当我把这些片段信息串起来思考的时候,忽然有了一种开朗的感觉。我有一个习惯,就是当我感悟到一些东西的时候就把它写下来,因为在记录的过程中,我也会

2012-08-31 13:10:28 7429

转载 I/O多路复用

I/O多路复用之selectselect的功能可以用一句话来描述: 实现基于I/O多路复用的异步并发编程。 在具体讲解select之前我们先看看常规的阻塞socket编程方式,以服务端为例:              对于这种方式,最大的问题在哪里呢?accept和recev的阻塞调用!下面以两种场景为例,来说明相比这种情况,select是如何做到异步I/O多路复用的高

2012-08-31 11:59:40 8798

转载 SimHash算法

说到文本相似性计算,大家首先想到的应该是使用向量空间模型VSM(Vector Space Model)。使用VSM计算相似度,先对文本进行分词,然后建立文本向量,把相似度的计算转换成某种特征向量距离的计算,比如余弦角、欧式距离、Jaccard相似系数等。这种方法存在很大一个问题:需要对文本两两进行相似度比较,无法扩展到海量文本的处理。想想像Google这种全网搜索引擎,收录了上百亿的网页,爬虫每天

2012-08-31 11:46:41 11911

转载 MinHash算法

1.概述    跟SimHash一样,MinHash也是LSH的一种,可以用来快速估算两个集合的相似度。MinHash由Andrei Broder提出,最初用于在搜索引擎中检测重复网页。它也可以应用于大规模聚类问题。2.Jaccard index    在介绍MinHash之前,我们先介绍下Jaccard index。    Jaccard

2012-08-31 11:45:47 12294

转载 基于hash方法的相似计算

3 基于hash方法的相似计算       基于hash的相似度计算方法,是一种基于概率的高维度数据的维度削减的方法,主要用于大规模数据的压缩与实时或者快速的计算场景下,基于hash方法的相似度计算经常用于高维度大数据量的情况下,将利用原始信息不可存储与计算的问题转化为映射空间的可存储计算问题,在海量文本重复性判断方面,近似文本查询方面有比较多的应用,google的网页去重[1],goog

2012-08-31 11:44:55 8437

转载 Jaccard相似度、minHash、Locality-Sensitive Hashing(LSH)

在数据挖掘中经常需要用到比较两个东西的相似度。比如搜索引擎要避免非常相似的文档出现在结果的前几页,再比如很多网站上都有的“查找与你口味相似的用户”、“你可能喜欢什么什么”之类的功能。后者其实是很大的一块叫做“协同过滤”的研究领域,留待以后详谈。首先我们定义两个集合S,T的Jaccard相似度: Sim(S,T) = |S,T的交集| / |S,T的并集|。直观上就容易感觉出这是一个很简单而

2012-08-30 18:10:29 17491

转载 Fast bit count问题(即计算一个unsigned int的二进制表达中1的数目)

最近在看《Programming Pearls》。里面的好些问题很有意思。做一点小小的总结吧。这个问题是计算一个unsigned int型二进制数中一个的个数,google中看到了不少很巧妙的算法,在这里做一个简单总结。另外,很喜欢stackoverflow这个论坛,geek很多,打酱油的人很少,感觉国外的程序员遇到有趣的问题兴致更高。关于这个问题,帖子见http://stackoverf

2012-07-25 17:37:40 8702

转载 nohup 后台运行,以及重定向标准输出和标准错误 &/dev/null 文件

nohup 后台运行,以及重定向标准输出和标准错误 &/dev/null 文件nohup 加 &大家都知道是后台运行并把stdout输出到文件nohup.out中。其实&是后台运行的命令。具体的命令我就不介绍了,一般都是在linux下nohup command_line或者nohup command_line &这之间的差别是带&的命令行,即使terminal关

2012-07-12 10:18:28 32013

转载 TinyXML:一个优秀的C++ XML解析器

读取和设置xml配置文件是最常用的操作,试用了几个C++的XML解析器,个人感觉TinyXML是使用起来最舒服的,因为它的API接口和Java的十分类似,面向对象性很好。TinyXML是一个开源的解析XML的解析库,能够用于C++,能够在Windows或Linux中编译。这个解析库的模型通过解析XML文件,然后在内存中生成DOM模型,从而让我们很方便的遍历这棵XML树。DOM模型即

2012-07-11 10:06:52 4680

转载 vi 命令 用法

一、Unix编辑器概述      编辑器是使用计算机的重要工具之一,在各种操作系统中,编辑器都是必不可少的部件。Unix及其相似的ix 操作系统系列中,为方便各种用户在各个不同的环境中使用,提供了一系列的ex编辑器,包括 ex, edit,ed 和 vi.其中ex,edit,ed都是行编辑器,现在已很少有人使用,Unix提供他们的原因是考虑到满足各种用户特别是某些终端用户的需要。值得庆

2012-06-13 18:02:20 4130

原创 linux清除内存缓存方法

Writing to this will cause the kernel to drop clean caches, dentries and inodes from memory, causing that memory to become free.To free pagecache:echo 1 > /proc/sys/vm/drop_cachesTo free d

2012-05-24 13:45:12 5152

转载 教你如何迅速秒杀掉:99%的海量数据处理面试题 作者:July 出处:结构之法算法之道blog

教你如何迅速秒杀掉:99%的海量数据处理面试题作者:July出处:结构之法算法之道blog前言   一般而言,标题含有“秒杀”,“99%”,“史上最全/最强”等词汇的往往都脱不了哗众取宠之嫌,但进一步来讲,如果读者读罢此文,却无任何收获,那么,我也甘愿背负这样的罪名,:-),同时,此文可以看做是对这篇文章:十道海量数据处理面试题与十个方法大总结的

2012-04-20 18:12:42 9201

转载 Linux 平台相关代码的 C++ 解决方案

Linux 平台相关代码的 C++ 解决方案Linux 平台相关代码带来的问题目前市场上存在着许多不同的 Linux 平台(例如:RedHat, Ubuntu, Suse 等),各大厂商和社区都在针对自己支持的平台进行优化,为使用者带来诸多方便的同时也对软件研发人员在进行编码时带来不少问题:由于程序中不可避免的存在平台相关代码(系统调用等),软件研发人员为了保证自己

2012-04-11 13:49:32 5114

转载 Linux 的多线程编程的高效开发经验

Linux 的多线程编程的高效开发经验背景Linux 平台上的多线程程序开发相对应其他平台(比如 Windows)的多线程 API 有一些细微和隐晦的差别。不注意这些 Linux 上的一些开发陷阱,常常会导致程序问题不穷,死锁不断。本文中我们从 5 个方面总结出 Linux 多线程编程上的问题,并分别引出相关改善的开发经验,用以避免这些的陷阱。我们希望这些经验可以帮助读者们能更

2012-04-11 10:34:41 5157

转载 自旋锁及其衍生锁

自旋锁自旋锁(spinlock)是用在多个CPU系统中的锁机制,当一个CPU正访问自旋锁保护的临界区时,临界区将被锁上,其他需要访问此临界区的CPU只能忙等待,直到前面的CPU已访问完临界区,将临界区开锁。自旋锁上锁后让等待线程进行忙等待而不是睡眠阻塞,而信号量是让等待线程睡眠阻塞。自旋锁的忙等待浪费了处理器的时间,但时间通常很短,在1毫秒以下。   自旋锁用于多个CPU系

2012-04-10 11:47:16 4101

转载 典型的 C++ 程序员成长经历

一个典型的 C++ 程序员成长经历:1.  完整的学一遍 C++ 所有语言特性,典型书籍 "The C++ Programming Language" Part1, Part2, "C++ Primer"    感觉 C++ 像大杂烩(多编程范型),各种精妙的语法特性 (friend, virtual/RTTI, const/mutable, exception, templa

2012-04-01 18:01:56 660

转载 C++模板元编程技术

一个可以运行的模板元编程例子     模板元编程(Template Metaprogramming)更准确的含义应该是“编‘可以编程序的’程序”,而模板元程序(Template Metaprogram)则是“‘可以编程序的’程序”。也就是说,我们给出代码的产生规则,编译器在编译期解释这些规则并生成新代码来实现我们预期的功能。让我们来看一个可以运行的模板元编程例子 — 计算给定整数的指定次方

2012-04-01 17:21:47 853

转载 linux nc命令 <netcat>

功能说明:功能强大的网络工具语  法:nc [-hlnruz][-g网关...>][-G指向器数目>][-i延迟秒数>][-o输出文件>][-p通信端口>][-s来源位址>][-v...][-w超时秒数>][主机名称][通信端口...]参  数:  -g网关>   设置路由器跃程通信网关,最丢哦可设置8个。  -G指向器数目>   设置来源路由指向器,其数值为4的倍数。  -h

2012-03-26 18:20:03 1306

转载 typename

"typename"是一个C++程序设计语言中的关键字。当用于泛型编程时是另一术语"class"的同义词。[1]这个关键字用于指出模板声明(或定义)中的非独立名称(dependent names)是类型名,而非变量名。以下是对于泛型编程中typename两种迥然不同的用法的解释。class关键字的同义词这是一项C++编程语言的泛型编程(或曰“模板编程”)的功能,typena

2012-03-26 11:22:03 2245

转载 ubuntu安装GCC

整个过程我自己装过,可以的,具体参考了几个网页,有的忘记了,其中一个是 http://wiki.ubuntu.org.cn/Qref/Gutsy确保系统已联入互联网打开终端,“应用程序 - 附件 - 终端”修改并更新你的更新服务器列表,输入命令 sudo cp /etc/apt/sources.list /etc/apt/sources.list_backup su

2012-02-22 09:07:29 2408

转载 在Linux中创建静态库和动态库

我们通常把一些公用函数制作成函数库,供其它程序使用。函数库分为静态库和动态库两种。静态库在程序编译时会被连接到目标代码中,程序运行时将不再需要该静态库。动态库在程序编译时并不会被连接到目标代码中,而是在程序运行是才被载入,因此在程序运行时还需要动态库存在。本文主要通过举例来说明在Linux中如何创建静态库和动态库,以及使用它们。在创建函数库前,我们先来准备举例用的源程序,并将函数库的源程序

2012-02-16 17:49:43 519

转载 数据的标准化

数据的标准化(normalization)是将数据按比例缩放,使之落入一个小的特定区间。在某些比较和评价的指标处理中经常会用到,去除数据的单位限制,将其转化为无量纲的纯数值,便于不同单位或量级的指标能够进行比较和加权。  其中最典型的就是数据的归一化处理,即将数据统一映射到[0,1]区间上,常见的数据归一化的方法有:min-max标准化(Min-max normalization)

2012-02-03 18:12:56 664

转载 程序员六大职业素养

说起职业素养,可能大家脑子里马上反映出来的是西服领带公文包的精干白领形象,其实作为程序员来说,外在可能没有那么重要,更多的是内在职业素养,本期调查分享了两个研发小组的故事,让大家在统计数据的基础上进一步了解——什么是程序员需要的职业素养?案例一:问题团队A    D公司是个在发展壮大中的贸易公司,由于业务发展员工从刚开始的10人两年内增加到150多人,管理上出现了沟通效率低、对员工

2012-02-01 13:53:59 725

转载 C++实现多线程读写锁

在Win32下用C++实现多线程读写锁    读写锁实际是一种特殊的自旋锁,它把对共享资源的访问者划分成读者和写者,读者只对共享资源进行读访问,写者则需要对共享资源进行写操作。这种锁相对于自旋锁而言,能提高并发性,因为在多处理器系统中,它允许同时有多个读者来访问共享资源,最大可能的读者数为实际的逻辑CPU数。写者是排他性的,一个读写锁同时只能有一个写者或多个读者(与CPU数相关),但不能同

2012-02-01 13:10:46 14373 2

转载 GDB调试精粹及使用实例

GDB调试精粹及使用实例来源:不详 (2006-07-14 11:18:05)一:列文件清单 1. List (gdb) list line1,line2 二:执行程序 要想运行准备调试的程序,可使用run命令,在它后面可以跟随发给该程序的任何参数,包括标准输入和标准输出说明符()和外壳通配符(*、?、[、])在内。 如果你使用不

2012-01-14 16:58:20 453

转载 SVM入门(二三)线性分类器

SVM入门(二)线性分类器Part 1线性分类器(一定意义上,也可以叫做感知机) 是最简单也很有效的分类器形式.在一个线性分类器中,可以看到SVM形成的思路,并接触很多SVM的核心概念.用一个二维空间里仅有两类样本的分类问题来举个小例子。如图所示C1和C2是要区分

2012-01-09 16:19:24 893

转载 SVM入门(十)将SVM用于多类分类

从 SVM的那几张图可以看出来,SVM是一种典型的两类分类器,即它只回答属于正类还是负类的问题。而现实中要解决的问题,往往是多类的问题(少部分例外,例如垃圾邮件过滤,就只需要确定“是”还是“不是”垃圾邮件),比如文本分类,比如数字识别。如何由两类分类器得到多类分类器,就是一个值得研究的问题。还以文本分类为例,现成的方法有很多,其中一种一劳永逸的方法,就是真的一次性考虑所有样本,并求解一个多

2012-01-09 16:16:05 543

转载 SVM入门(八九)松弛变量

SVM入门(八)松弛变量现在我们已经把一个本来线性不可分的文本分类问题,通过映射到高维空间而变成了线性可分的。就像下图这样: 圆形和方形的点各有成千上万个(毕竟,这就是我们训练集中文档的数量嘛,当然很大了)。现在想象我们有另一个训练集,只比原先这个训练集多了一篇文章,映射到高维空间以后(当然,也使用了相同的核函数),也就多了一个样本点,但是这个样本的位置是这样的

2012-01-09 16:15:17 727

转载 SVM入门(七)为何需要核函数

生存?还是毁灭?——哈姆雷特可分?还是不可分?——支持向量机之前一直在讨论的线性分类器,器如其名(汗,这是什么说法啊),只能对线性可分的样本做处理。如果提供的样本线性不可分,结果很简单,线性分类器的求解程序会无限循环,永远也解不出来。这必然使得它的适用范围大大缩小,而它的很多优点我们实在不原意放弃,怎么办呢?是否有某种方法,让线性不可分的数据变得线性可分呢?有!其思想说来也

2012-01-09 16:13:11 628

转载 SVM入门(四五六)线性分类器的求解

SVM入门(四)线性分类器的求解——问题的描述Part1上节说到我们有了一个线性分类函数,也有了判断解优劣的标准——即有了优化的目标,这个目标就是最大化几何间隔,但是看过一些关于SVM的论文的人一定记得什么优化的目标是要最小化||w||这样的说法,这是怎么回事呢?回头再看看我们对间隔和几何间隔的定义:间隔:δ=y(wx+b)=|g(x)|几何间隔: 可以

2012-01-09 16:11:53 838

转载 SVM入门(一)八股简介

SVM入门(一)八股简介SVM入门(二三)线性分类器SVM入门(四五六)线性分类器的求解SVM入门(七)为何需要核函数SVM入门(八九)松弛变量SVM入门(十)将SVM用于多类分类(一)SVM的八股简介支持向量机(Support Vector Machine)是Cortes和Vapnik于1995年首先提出的,它在解决小样本、非线性及

2012-01-09 16:06:59 1069

转载 隐马尔科夫模型

隐马尔科夫模型HMM自学介绍崔晓源 翻译我们通常都习惯寻找一个事物在一段时间里的变化规律。在很多领域我们都希望找到这个规律,比如计算机中的指令顺序,句子中的词顺序和语音中的词顺序等等。一个最适用的例子就是天气的预测。首先,本文会介绍声称概率模式的系统,用来预测天气的变化然后,我们会分析这样一个系统,我们希望预测的状态是隐藏在表象之后的,并不是我们观察到的

2012-01-07 11:25:21 4807

转载 Boosting算法简介

一、Boosting算法的发展历史  Boosting算法是一种把若干个分类器整合为一个分类器的方法,在boosting算法产生之前,还出现过两种比较重要的将多个分类器整合为一个分类器的方法,即boostrapping方法和bagging方法。我们先简要介绍一下bootstrapping方法和bagging方法。  1)bootstrapping方法的主要过程  主要步骤:

2012-01-06 10:48:18 17316 2

转载 浮点异常

今天遇到一个有趣的问题,就是浮点数什么时候是无效的,或者说is Not a Number (Nan),坦白说,写了这么久(有10年了吧)也没有留意过这个问题,开始遇到这个问题的时候,最先想到的还是google,baidu,顺便用了下我们公司的有道(www.yodao.com,做个广告),都没有找到完美的答案,相反寻求答案的帖子到随处都是,看来还是有很多人碰到过这个问题,经过一番测试,给出一个比较完

2012-01-05 15:53:01 8632

转载 Histograms of Oriented Gradients (HOG)理解和源码

HOG descriptors 是应用在计算机视觉和图像处理领域,用于目标检测的特征描述器。这项技术是用来计算局部图像梯度的方向信息的统计值。这种方法跟边缘方向直方图(edge orientation histograms)、尺度不变特征变换(scale-invariant feature transform descriptors) 以及形状上下文方法( shape contexts)有很多相似

2011-12-27 11:47:19 9592

牛顿迭代法

非线性方程(或方程组)问题可以描述为求 x 使得f(x) = 0。在求解非线性方程的方法中,牛顿迭代法是求非线性方程(非线性方程组)数值解的一种重要的方法。牛顿是微积分创立者之一,微积分理论本质上是立足于对世界的这种认识:很多物理规律在微观上是线性的。近几百年来,这种局部线性化方法取得了辉煌成功,大到行星轨道计算,小到机械部件设计。牛顿迭代法正是将局部线性化的方法用于求解方程。

2012-01-04

Histograms of Oriented Gradients for Human Detection

Histograms of Oriented Gradients for Human Detection,HOG,梯度方向直方图

2011-12-27

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除