自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

原创 MapReduce思想的学习

MapReduce作为一个十多年的方法论,掌握过程不难,但我们需要知道MapReduce是一种什么样的方法论。这篇博客也许有一些大家从来没见过的内容。

2019-05-13 14:59:46 410

原创 webmagic 源码学习(2)

      webmagic的爬虫基本架构,其设计可以让人只需要实现PageProcessor中的process方法,完成列表页、详情页相应逻辑即可。而很多网站也许就只有简单的这两种页面的逻辑,webmagic还提供了更简单的表达两个页面解析逻辑的使用方法:一:注解;二: 正则组合。    注解    注解是Java里面用得多但写的不多的,我本人也没有概念,趁此机会学习一下Java注解。这篇博文讲...

2018-04-03 15:55:01 650

原创 webmagic源码学习(1)

      如今获取互联网信息是一种很普遍的需要,用任何语言实现一个由HTTP发起请求获取数据功能都很容易,但要完整地处理可能面对的其他问题就有点麻烦了。因为爬虫涉及的点不少,因此阅读一个开源爬虫能借鉴一些优秀的设计理念,有学习价值。大名鼎鼎的scrapy,只需要编写页面处理的逻辑。我选了个模仿它写的Java系的爬虫学习:webmagic。      架构上webmagic采取了scrapy架构:...

2018-02-24 18:23:15 537

原创 win10安装TensorFlow+keras

跟风玩深度学习,最简单的keras下手看看先。用anaconda开环境安装TensorFlow的CPU和GPU版本,用pip install 安装keras其他的lib,下载whl本地安装更好。

2018-01-21 22:14:20 1068

原创 notepad++ 64位安装json插件JStool

64bit的 notepad++不支持plugin manager了,只能手动安装插件json格式化工具:JSToolhttp://www.softpedia.com/get/Office-tools/Text-editors/Junwen-JSMin.shtml, 下载x64 unicode版本   dll放进plugin目录里就搞定了

2017-09-02 20:14:44 8508 4

原创 [搬运]台湾大学机器学习课程 by 李宏毅

台湾大学电机系李宏毅老师讲的机器学习课程,含有deep learning相关内容,深入浅出,建议选择性学习。

2017-04-03 09:43:25 27419

原创 用elasticsearch和kibana 进行简单的实时数据报表分析

elasticsearch+kibana能帮助你轻松完成一个实时日志报表的功能。es需要制定自己的template, kibana要注意时区问题。

2016-01-26 15:31:21 21716 1

原创 一种简单的计算item相似度算法

计算item之间相似度是个有意义的工作,比如词的相似度就有很多应用场景。

2015-04-05 18:42:35 4888 4

原创 Solr应用之电商商品搜索备忘

把以前做电商商品搜索的经验总结一下,

2014-10-16 16:15:18 4029 1

原创 倒排链上的查询剪枝技术学习总结

背景我最近对海量高维数据检索产生了兴趣,

2014-10-13 19:37:56 3941

原创 对GraphChi的Parallel Sliding Window的理解与随想

GraphChi设计成可以在个人计算机上高效进行大规模计算的框架,其中在模型不能一次性读入内存的时候,用到了PSW算法,核心是用连续读写来代替的随机读写。在我自己写单机算法时候也考虑过模型如果内存装不下问题,当时正好看到graphchi的PPT,也就想明白是怎么做到的,虽然我没有完整读完PSW的资料,但我发现我前端时间在做feluca设计的数据划分方式其实和PSW本质一样的,所以我感觉自己也算理解

2014-10-08 16:45:04 3010

原创 一个简易的数据挖掘计算平台项目: feluca

业余数据挖掘项目feluca想法的完整记录

2014-06-30 12:03:55 3472 1

原创 利用Solr完成向量乘以矩阵功能:以协同过滤算法ItemCF为例

很多应用的计算最终都转化为矩阵相乘来完成,例如推荐算法中的协同过滤就可以套上去。协同过滤(collaborative filtering)是推荐系统中一类广泛使用的方法,协同过滤中两种比较出名的方法item-based CF、user-based CF。itemCF方法更简单,推荐理由也更温和,将是本文介绍的实践内容。

2014-06-01 13:05:54 3642

原创 配置Solr中文分词器IK以及ansj,支持动态修改用户词库。

经常看到不少人问solr的IK分词如何配置,如何实现中文动态词库添加这类问题,中文分词看来还是solr使用的一个容易卡住的地方。其实solr自带中文分词smartcn,它是个ictclas智能分词的java版。如果想体验一下smartcn的效果是比较简单的,配上对应的tokenizerFactory就可以了,但smartcn不支持动态增加词库。我们都知道一般词库都是单例,想动态修改词库要么保证

2013-11-01 16:16:15 8589 3

原创 hadoop,hbase,hive 安装snappy压缩

最近又安装了一次hadoop系列,以前装过几次,但总也是磕磕碰碰的,本来想这次安装一步到位,可惜以前记录不够详细,中间还是过程还是有些遗漏,这次把过程详细记录起来。hadoop-1.1.2,  hbase-0.95-hadoop1, hive-0.10 + snappy压缩。中间遇到不少坑,记录下来;由于这次目标是三件套一步到位,因此配置的时候是一块配置了,三台ubuntu机器分别为zmhad

2013-05-12 18:59:32 4410 2

原创 自动补全(智能提示)原理与实现

自动补全,英文叫autocomplete,好像也叫智能提示,就是用户在输入框敲一个字符会弹出下拉列表提示候选词给用户,方便用户输入,提升用户体验。            网上多是JS如何实现,用ajax请求拿到数据就可以了,这里分享一下后台实现的一些思路。如果对性能和效果要求不高的话,可以直接在数据库中用like的方式去匹配候选词集合;或者在一个检索系统上也可以通过查询前缀

2013-04-17 21:46:52 13507 6

原创 搜索词纠错(拼写检查)、相关搜索的原理与实现

相关搜索是检索功能的一个扩展,用来告诉用户自己输入查询词的情况。如果输入错了,可能会纠错提示用户:“想找的是不是”     。另外还会在显著位置提供与输入查询词相关的其他查询词,例如百度结果页下面的提示,     而对于电商网站这两个功能会合在一起,下面分别说说我对这两个任务的理解。一、纠错功能,英文叫做spellcheck,在英文上做纠错比较直接,就是看单词的

2013-04-05 12:58:12 13337

原创 java远程调试、监控虚拟机

在开发环境写好并测试过的服务程序,部署到服务器去,结果未必理想,一是数据源可能必须在服务器上获取,二是可能会出现开发机没见过的问题,所以有必要知道一些远程调试和分析的方法;最近查阅了一些资料,现在就把过程记录一下。一、 在eclipse中远程调试1.1 在你的 JAVA启动命令后加入-server -Xdebug -Xrunjdwp:transport=dt_socket,serv

2013-03-22 17:01:17 2828

原创 solr学习笔记(二):进阶

这次讲讲solr4.0最新的云,其中solrj那段引用了其他人的结论,以后可能还会调整一下内容。到1月23号已经更新了4.1,solrcloud改变不少,尤其是修复了一些bug, 4月最新版是4.3,也是增加了很多内容1. solrcloud    jetty启动: wiki有教程;        实验遇到的问题:1. 在windows上不同jetty带起的solr实例注册

2013-01-15 16:41:02 4916

原创 solr学习笔记(一):入门

Solr是一个比较成熟和热门的搜索引擎解决方案,之前的博客也提到过。最近在学习搜索开发也查阅过solr的资料,相对elasticsearch来说资料更全,案例更多也更让人放心,我现在还没发做很细致的比较,但个人认为中小型搜索用solr可能会更合适,毕竟更成熟可靠一些。     介绍Solr的资料也有不少,比如书籍就有 Solr.3.Enterprise.Search.Server和Apache

2012-12-30 21:22:57 4222

原创 kaggle competition 之 Titanic: Machine Learning from Disaster

Kaggle是一个数据科学竞赛平台(making data science a sport),在上面,很多机构会发布研究问题和数据集提供大家解决,有些会有报酬。第一次看到这个网站就觉得它会火,在信息爆炸时代,通过挖掘历史数据来对业务提供更有效的服务已经是大势所趋。而kaggle上的题目都是偏向数据挖掘类的,这相比ACM或者projecteuler这种纯算法的题要更有专业和更开放;一个题一般都会有一

2012-10-23 11:59:26 3619 3

原创 elasticsearch学习入门

这几年,搜索的开发门槛越来越低,每个语言都有开源的检索工具包,而且功能越来越全,完整的解决方案也越来越多、越来越好用,比如lucene上就有solr, elasticsearch, sensei等。它们对于绝大部分的需求应该说都覆盖了,解放了直接在检索工具包上的开发工作量,让人可以更多关注业务上的开发。个人比较看好elasticsearch(简称ES),ES的使用非常简单,让人感觉更多地在使用

2012-10-09 20:04:08 13730 3

原创 一个数据挖掘算法的项目:dami

(更新于2012/11/15)关注和学习数据挖掘不少年,现在数据挖掘算法已经非常多了,比较出名的基本都能找到实现好的。掌握一个算法原理十分重要,但我觉得实现一遍算法对于算法的如何适用数据才是最有帮助的。一些挖掘工具遇到大量点的数据集就吃不消,可能是对内存不珍惜,可能是对计算不节俭等等。感觉到写出一个能在海量规模下实用的算法应该还是有意义,能锻炼技术。最近业余时间多一些,也就开始想把之前工作之余写过

2012-07-03 17:36:31 4601 2

原创 频繁项集挖掘之apriori和fp-growth

Apriori和fp-growth是频繁项集(frequent itemset mining)挖掘中的两个经典算法,虽然都是十几年前的,但是理解这两个算法对数据挖掘和学习算法都有很大好处。在理解这两个算法之前,应该先了解频繁项集挖掘是做什么用的。频繁项集挖掘是关联规则挖掘中的首要的子任务。关联规则挖掘是要找出一个数据集上,满足一定条件的项集。这些项的集合能构成 形如蕴含式"A=>B"这样的

2012-05-30 09:39:14 15569 3

原创 基于评分数据的推荐算法实现:slopeone和矩阵分解

近几年推荐算法研究得比较火热,得益于netflix的百万大奖。推荐算法有多种分法,有人喜欢分成基于内容和基于用户行为的,而主流的文献还是从算法分得多:即neighborhood-based和基于factorization的。 neighbor-based方法比较早,主流的user-base和item-base,其思想都是猜测用户会喜欢和他口味一致的东西。矩阵分解直接把预测问题转换成一个估计对评分矩

2012-01-05 20:43:24 9340 43

原创 随机交换(swap randomization)的python实现

随机交换内容可以看这:http://blog.csdn.net/lgnlgn/article/details/5936945其实是直接翻译作者perl源码过来的... 作者perl源码在这:http://www.cs.helsinki.fi/hiit_bru/software/swaps/ 作者用的是self loop的实现方式。不懂perl不过还是勉强看懂过程,python源

2011-11-12 21:23:23 1787

翻译 人类概念学习的复杂度 complexity of human concept learning

人类概念学习的复杂度 complexity of human concept learning, 化简布尔概念的布尔复杂度。化简是一种压缩,数据挖掘同样是一种压缩~

2011-08-02 13:35:30 1567 2

原创 基于随机游走的社团划分算法hadoop MR实现

继上篇介绍的算法和单机实现。这篇介绍一下mapreduce实现。其实python的实现已经用的mapreduce的思路了,改成在真实分布式环境并不难,我在hadoop平台上简单的实现了这个算法。 Map端完成边的propagation效应,即input(fromId, toId) -> output(toId,labelinfo)。每轮计算需要上一轮节点的Label结果,一次性读到

2011-07-07 13:39:12 4039 4

原创 基于随机游走的社团划分算法label progation 的python实现

其实这个算法也可以作为聚类算法来用,计算出两两样本之间的相似度,作为这个算法里边的权重,可以去掉值很低的,然后进行聚类。我们假设一个图有m个节点n条边,label propagation的复杂度是O(kn) (不确定)k是迭代次数。在一般情况下,n2 因此是个和图规模线性关系的算法。如果聚类最后一步采用这种方法,那么计算两两相似度得到图结构,需要O(m2)应该是主要开销。

2011-06-22 19:16:00 5967 9

原创 二进制串模糊搜索的Java实现(续)

上一篇具体讲了怎么做的,后来又一直在想如何提高.  因为不太明白如何提高效率,我又做了一些无谓的尝试,比如把同前缀的写到一个小文件里,例如8K,如果数据量小,多个前缀的数据都写在一块里,猜想从路径直接定位到文件会快很多。结果尝试了一下,结果和原来的方法一样的结果甚至更慢…. 我们可以知道每一块其实只要找到前缀一致的那批long,这可以转变为一个key-value查找

2011-06-18 15:49:00 1259

原创 二进制串模糊搜索的Java实现

这个问题其实是从之前博客(http://blog.csdn.net/lgnlgn/archive/2010/11/14/6008498.aspx)介绍的爬虫去重的论文中的一个内容,问题是这样描述的:给定N个f位的指纹集合C,对一个输入指纹f’,如何找出C中与f’汉明距离小于k的所有指纹?具体地,论文里N=80亿,f=64,K=3。 64位取3的汉明距离可能性一共有C(64,3)  >

2011-06-04 21:37:00 2074 7

原创 smartcn优化方案

smartcn,基于HMM模型的一套智能分词器,是ictclas的java简化版,原理网上已经能找到,也可以看我前面写的http://blog.csdn.net/lgnlgn/archive/2010/06/13/5669855.aspx smartcn 通过计算能提高分词精度(比如 和服 的问题),这也会导致一个语义连贯的短语可能在不同的上下文产生不同的切分结果,因此用来做搜索引擎的

2011-03-26 16:25:00 1785

原创 PCA学习笔记

 常常看到论文的标题里带有矩阵分解的方法,最常见的有四个PCA, SVD, LDA和NMF。之前看论文内容一看到矩阵公式基本就不看,水平有限,短期内啃也啃不动。看来该学的还是绕不出去,只能慢慢补上了… 很早就听说主成分分析这个名词了,看到一个人写的博文,写得通俗易懂,一看就能明白http://pinkyjie.com/2010/08/31/covariance/http:/...

2011-03-19 00:52:00 1643 3

翻译 simhash用来进行海量文本近似去重的mapreduce版本

simhash用来进行海量文本近似去重的mapreduce版本

2011-03-03 20:53:00 3866

原创 数据挖掘 graph mining 之 ranking 介绍

近年来,图挖掘graph mining渐渐热了起来。这里的图是图论里说的那个图,也就是点集合和边集合构成的一种数据结构。图挖掘中几个比较重要的方向有:1.     community detection2.     frequent subgraph mining 3.     ranking  ranking中最出名的就是google的pagerank, pa

2011-01-29 12:19:00 8852 2

原创 simhash进行文本查重

有1亿个不重复的64位的01字符串,任意给出一个64位的01字符串f,如何快速从中找出与f汉明距离小于3的字符串? 大规模网页的近似查重主要翻译自WWW07的Detecting Near-Duplicates for Web Crawling WWW上存在大量内容近似相同的网页,对搜索引擎而言,去除近似相同的网页可以提高检索效率、降低存储开销。当爬虫在抓取网页时必须

2010-11-14 16:47:00 15802 17

翻译 随机交换检验数据挖掘结果-assessing data mining result via swap randomization

这是一篇我比较推崇的文章.06年获得KDD的best paper runner up。近年来数据挖掘在理论上突破很少,这可以算一篇。长久以来,数据挖掘一直关注方法,很少有研究数据集潜在本质的,如何从数据集表现形式去挖掘数据之间更深刻的联系,这篇论文最大亮点就是提出了一种度量数据挖掘方法(尤其是无监督的的方法)在数据集上效果的新思路。   这篇文章随机交换的思想非常简单,除了第四章有难度,其

2010-10-12 22:41:00 1844 1

原创 lucene smartcn原理

Smartcn分词器是ictclas简化功能的java版Smartcn分词三步:1)原子切分;2)找出原子之间所有可能的组词方案;3)N-最短路径中文词语粗分三步。例如:“他说的确实在理”这句话。1)原子切分的目的是完成单个汉字的切分。经过原子切分后变成“始##始/他/说/的/确/实/在/理/末##末”。2)然后根据“词库字典coredict”找出所有原子之间所有可能的组词

2010-06-13 20:23:00 9163

原创 ICTCLAS30做的lucene.net分词接口

随便搞搞搜索引擎技术,刚开始分词而已,综合考察了几个比较有名的分词方法,决定还是用中科院的分词程序。其中C#有个开源的,且网上已经有用SharpICTCLAS为lucene.net写的分词接口了,不过想试试用好一点的分词程序的效果,所以选了2009共享版的。本人编程技术还是非常菜的,如有不对请大家指出。 分词接口的代码我是综合这两篇博客:http://ythzjk.javaeye.co

2009-07-24 15:39:00 2736 4

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