算法
jollyjumper
一点记录
展开
-
Boilerplate Detection Using Shallow Text Features论文小笔记
网页正文抽取是个很重要的东西,可以减少索引大小,让搜索结果更准确,数据挖掘也更准确.昨天晚上在网上看到这个东西:http://code.google.com/p/boilerpipe/很高兴,用于抽取网页上的正文,它还有一个gae的页面:http://boilerpipe-web.appspot.com,测了一下准确率,召回率都还没蛮高的.最关键的一点是:几年前在一家小公司我也做过原创 2014-01-24 23:39:15 · 1840 阅读 · 0 评论 -
KMP算法
自己实现了下kmp算法,感觉失败的地方要反复比较,这个比较浪费:public class KMP { public static int[] calcNextArray(char[] target) { int[] next = new int[target.length]; next[1] = 0; for (int i = 2; i原创 2017-09-30 19:59:27 · 348 阅读 · 1 评论 -
Skip Lists: A Probabilistic Alternative to Balanced Trees
原文:http://people.csail.mit.edu/shanir/publications/OPODIS2006-BA.pdf最近不断听说常用跳表实现内存索引(leveldb/redis/hbase), 研究了这篇1990的论文,跳表一种比平衡树和伸展树空间更节约、更易于实现且非常高效的数据结构。原来认识到的只是静态跳表,动态跳表则是每次随机确定一个level,概率上非常高效原创 2017-09-26 22:45:59 · 848 阅读 · 0 评论 -
DAT的实现
手痒,自己实现了一下,UT已经通过。在lucene4基础上实现,加上接口不到300行代码。package com.dp.junhao.jhsegmenter;import gnu.trove.iterator.TByteIterator;import gnu.trove.list.array.TByteArrayList;import gnu.trove.procedure.TBytePr原创 2017-08-11 22:48:42 · 820 阅读 · 0 评论 -
Lock-Free Data Structures with Hazard Pointers笔记
Andrei Alexandrescu神文,地址在这里:http://collaboration.cmc.ec.gc.ca/science/rpn/biblio/ddj/Website/articles/CUJ/2004/0412/0412alexandrescu/0412alexandrescu.html接上一篇文章,使用引用计数实现WRRM map最后却会变成Write-Rarely-Re原创 2016-12-16 23:57:54 · 605 阅读 · 0 评论 -
二项堆
很有意思的一个数据结构,原文在这里:http://www.cnblogs.com/xuqiang/archive/2011/06/01/2065549.html一个二项堆是由一组二项树组成的,二项树是一种递归定义:1.二项树B(0)仅仅包含一个节点2.B(k)是由两颗B(k-1)二项树组成二项树B(k)具有如下性质:1.B(k)有2^k个节点2.树的高度是k3.转载 2016-06-04 21:37:08 · 413 阅读 · 0 评论 -
伸展树 splay tree
伸展树因为实现简单,均摊性能好,使用空间少,在竞赛中广为使用。转自:http://blog.csdn.net/changtao381/article/details/8936765另一篇介绍性的文章是杨思雨 - 伸展树的基本操作与应用http://www.docin.com/p-63165342.html类别:二叉排序树空间效率:O(转载 2016-05-15 21:16:17 · 753 阅读 · 0 评论 -
kdtree
kd树类似于geo hash,只不过是对点进行二分,用于范围查询和knn(k-nearest neighbors)查询。实现如下:KDTree.java:import java.util.Collections;import java.util.LinkedList;import java.util.List;import java.util.Stack;原创 2016-01-26 18:37:06 · 1645 阅读 · 0 评论 -
线性规划
http://zh.wikipedia.org/wiki/%E7%BA%BF%E6%80%A7%E8%A7%84%E5%88%92今天看支持向量机导论第一章时看到线性规划的对偶问题,其实还是一个线性规划,在想这样难道求解会更快?看起来不需要对偶就可以求解,一般适用单纯形法(以前算法导论看过又忘了),只有在顶点非常多时才使用内点法。整数规划为NP难问题。转载 2015-05-16 17:34:19 · 1032 阅读 · 0 评论 -
文件广播的实现
商户搜索索引高达22G(压缩之后10G),而replication有17台,尽管现在索引机出口带宽高达2Gb/s,下载还要花费15~20分钟。用广播/组播方式可以节省出口,以及公用网络带宽, 早在两年前就有做广播工具的想法(当时是ipad会议系统,需要把文件分发到每台ipad上,ipad最多有700-800台,无线网络较差),憋了一段时间设计、整理思路、实现、调试,终于出结果了,感觉蛮有收原创 2015-01-09 23:09:30 · 1425 阅读 · 0 评论 -
条件随机场(CRF)的一篇不错ppt
http://wenku.baidu.com/link?url=7LBbXiKPWAPnqYexmBOhz4iCUSny6Ayg3M53Ls0IiVKdqLq-9YPNAiW3WKJ5UgihjWKmm4yTpahIIeu75BB_mM_Q1QicaLIGrOiwHUO8ktu一直好奇条件随机场,dan转载 2014-06-22 13:08:45 · 42456 阅读 · 0 评论 -
关于中文分词
目前全量索引17G,不到1300万document花费大约25分钟的时间(Lucene 4.0),吞吐量远远低于lucene nightly build宣称的170G/h的量。换用StandardAnalyzer,有34%的提高,比较下使用的KAnalyzer,mmseg4j1.9.2-snapshot,standardanalyzer,性能分别在1.7M/s,10M/s,20M/s这样量级。所以原创 2014-06-21 23:19:57 · 2213 阅读 · 0 评论 -
转一篇不错的介绍Lucene4 FST的文章
http://download.csdn.net/download/guanxinquan/7380591http://blog.sina.com.cn/s/blog_616e189f0101fxxq.html原创 2014-05-24 21:17:20 · 3198 阅读 · 0 评论 -
KD树
在地图上画一条线,找出沿线一定宽度的POI点,现在的做法时线上取若干点,用kd树保存,查询一个点是否在沿线时,找到kd树中离改点最近的点,判断距离到改点是否小于指定距离,虽然不是很完美(点要取得足够多才能避免落掉一些点),也不失为解决方法。kd树(k dimension tree)实际上是决策树,每次找区分度最大(方差最大)的一条轴线进行二分,二分至叶子节点只包含一个点,查找最邻近点时先找到叶原创 2014-04-19 18:11:27 · 4639 阅读 · 1 评论 -
Google Dense Hashmap和Sparse HashMap
google code上有个著名的hash map类库,今天看了一下文档,聊做记录:sparse hashmap: 空间高效dense hashmap:时间高效sparse hashmap使用的数组(sparsetable),按M分为一组,每组用数组存储数据(虽然链表速度更快,但空间多),bits做查找。M越大内存overhead越小,在323位机器上是2bits,64位机器上是2.5原创 2014-04-13 23:30:44 · 13564 阅读 · 0 评论 -
An Efficient Digital Search Algorithm by Using a Double-Array Structure笔记
双数组trie树实现的第一篇论文,日本人JUN-ICHI AOE 1989年撰写的.大概看完,简单记录下,可能有不准确的地方.trie树有静态和动态两种,静态的直接就是一个DFA,没什么好说的,使用内存什么都比较确定而且最少.动态的可以支持删除和插入,双数组做法就是一种实现.为了保证字典中所有词都不是其他词的前缀,在每个词后面加上#标识.双数组是指base和check这两个数组,bas原创 2014-01-20 19:15:47 · 1646 阅读 · 0 评论 -
决策树(Decision Tree)模型笔记
以前看集体智慧编程时觉得决策树模型没什么大不了的,看得不仔细.昨天知道网页正文抽取(full-text extraction)中对boilerplate和content块的判断就是使用该模型,终于有点直观了,复习一下吧.集体智慧编程中以预测用户是否选择付费,付费是basic还是premium的分类问题为例讲解.决策树每一步分支都采用贪心策略,熵(entropy)或基尼不纯度(gini im原创 2014-01-25 17:12:58 · 7168 阅读 · 0 评论 -
EFANNA : An Extremely Fast Approximate Nearest Neighbor Search Algorithm Based on kNN Graph
读完论文,留念一下。论文详细得显啰嗦,按照描述,是个性能很好、灵活性较好的Graph-based ANN算法。http://xueshu.baidu.com/s?wd=paperuri%3A%28139d7c9161631b6a9ded855a116282df%29&filter=sc_long_sign&tn=SE_xueshusource_2kduw22v&sc_vurl=http%3原创 2017-10-20 00:07:04 · 1421 阅读 · 0 评论