- 博客(173)
- 问答 (4)
- 收藏
- 关注
原创 批量删除github项目-Java实现
项目源起 之前在github上了放了很多项目,但是大部分都是因为学习一项工具或者新技术时用示例代码创建的,意义不大,于是决定先把这部分项目导入到私有的gitlab里,然后在github里删除这部分项目;问题来了,github里删除一个项目比较繁琐,删除大量项目更是耗时耗力,于是写了一个项目用于批量删除github里的项目
2017-06-18 19:11:54 3040 1
原创 Spark中使用HanLP分词
1.将HanLP的data(包含词典和模型)放到hdfs上,然后在项目配置文件hanlp.properties中配置root的路径,比如: root=hdfs://localhost:9000/tmp/2.实现com.hankcs.hanlp.corpus.io.IIOAdapter接口: public static class HadoopFileIoAdapter implements
2017-06-08 18:09:53 4482 3
原创 从误用TreeSet到思考Java有序集合对相等和顺序比较一致性的要求
一、 发现问题 有这样一个任务:对一堆学生按照成绩进行排序。为了能够快速的获得有序结合,我选择了TreeSet这个有序数据结构来帮我完成这个任务。有两点让我认为TreeSet能够帮我快速获得有序的学生集合: (1)TreeSet基于红黑树实现,而红黑树是一个平衡二叉树,也就说,它的排序时间复杂度是nlognnlogn; (2)在插入的初期lognlogn较小。
2017-05-14 17:28:38 1788
原创 HttpClient4.3.6源码阅读 RequestConfig.Builder(Builder模式实践)
Builder(org.apache.http.client.config.RequestConfig.Builder) 是RequestConfig(org.apache.http.client.config.RequestConfig) 的内部类,专门用于创建RequestConfig。我经常这样创建RequestConfig: RequestConfig requestCon
2017-01-15 10:18:38 4601
原创 集束搜索学习资料
Beam Search(集束搜索/束搜索) Beam Search Algorithm (Draft by Andrew Jungwirth)
2016-11-25 12:45:29 1193
原创 python使用opencv读取图片失败
>>> import cv2>>> img = cv2.imread('D:\test\8.png',cv2.IMREAD_COLOR)>>> cv2.imshow('origin',img)OpenCV Error: Assertion failed (size.width>0 && size.height>0) in cv::imshow, file ..\..\..\..\opencv\
2016-11-12 23:52:08 20327 9
原创 weka 3.6.13-SNAPSHOT 过滤器StringToWordVector参数含义解释
IDFTransform: 值为true时,把文档中单词出现的次数val(或者TFTransform转化后的值)转化为 val∗Math.log(doc_total_num/doc_num_contain_this_word)val*Math.log( doc\_total\_num/doc\_num\_contain\_this\_word )
2016-10-16 17:20:36 2055
原创 降维——PCA(主成分分析)
降维技术使得我们可以用低维向量表示高维向量。PCA是降维技术的一种,它的思想是,把一个高维向量投影到低维子空间中,子空间基的选择原则是尽量使得投影前不同的向量在投影后依旧不同。接下来,我们就具体介绍PCA的工作原理。
2016-09-15 00:25:16 2969
原创 线性回归——最小二乘求解
线性回归 线性回归用于数值预测,它的主要思想是利用预定的权值将属性进行线性组合来表示类别: y=w0+w1x1+w2x2+...+wnxny = w_0 + w_1x_1 + w_2x_2 + ... + w_nx_n
2016-09-11 14:47:04 3138
原创 zookeeper学习资料
Zookeeper与paxos算法 ZooKeeper 安装部署及hello world 分布式理论之一:Paxos算法的通俗理解
2016-09-08 22:12:58 785
原创 层次聚类——自底向上方法
直观认识 假设数据集D={a,b,c,d,e}D=\{a, b, c, d, e\}, 在D上运行自底向上的层次聚类算法的过程如下图所示:
2016-09-04 22:51:44 6797 1
原创 划分聚类——Kmeans算法
划分聚类 聚类是针对一堆没有类别属性的对象的,它把这一大堆对象分成一些小堆,并保证小堆内的对象之间彼此相似,小堆之间的对象彼此不同。划分聚类是聚类的一种,由它生成的小堆,小堆间没有一样的元素,大堆小堆之间关系和大集合与它的的分割一样。
2016-09-04 21:07:45 1986
原创 序列模式挖掘——GSP算法
序列模式挖掘的基本概念 项目全集I、项集X和事务集合T的概念和文章关联规则挖掘——Apriori算法 中定义的一致。一个序列(Sequence)是一个有序的项集列表,这个有序通常是指时间有序。
2016-09-01 20:29:31 8401
原创 关联规则挖掘——Apriori算法
前言 大二的时候,一个老师为了勾起我们对数据挖掘的兴趣,老是问我们这个问题:你们知道超市为什么要把啤酒跟尿布放在一起吗?但是从来没告诉我们答案。现在,很多人都听过这个问题,觉得很平常,但是那时的我真觉得挺神奇的。直到后来,了解了关联规则挖掘,学习了关联规则挖掘的代表性算法Apriori,才终于知道了答案。关联规则挖掘,就是找出那些经常同时出现的事物,比如啤酒和尿布。
2016-08-31 00:26:42 3536 1
原创 KNN(K-最近邻)
算法介绍 KNN分类算法应该是最容易理解的机器学习算法了。它是惰性学习法的一种,它并不从训练数据集中得到一个分类模型,而是简单的存储这些训练数据,当一个待分类数据X到来时,它计算X和训练数据集中所有数据的距离,然后选择离X最近的k个数据,这k个数据称为X的k最近邻,并把这k个数据中出现次数最多的类别赋给X。
2016-08-29 00:07:53 1108
原创 决策树
基础 熵 如果X是一个离散型随机变量,取值空间为R,其概率分布为p(x)=P(X=x),x∈Rp(x) = P(X = x), x \in R。那么,X的熵定义为: H(X)=−∑x∈Rp(x)log2p(x)H(X) = - \sum_{x \in R}p(x)log_2p(x)
2016-08-27 00:00:12 1127
原创 朴素贝叶斯文本分类
基础知识 1.多项式定理 (x1+x2+...+xr)n=∑(n1,...,nr):n1+...+nr=n(nn1,n2...nr)xn11xn22...xnrr(x_1 + x_2 + ... + x_r)^n = \sum_{(n_1,...,n_r):n_1+...+n_r=n}(_{n_1,n_2...n_r}^n)x_1^{n_1}x_2^{n_2}...x_r^{n_r}
2016-08-24 22:29:24 1107 2
原创 基于图的评级算法——HITS
基本思想 HITS是Hypertext Induced Topic Search的缩写,它不仅给图中节点打上权威性(也就是PageRank算法中的重要性)分值,也打上中心性分值。中心性分值由该节点指向的节点决定,包括该节点指向了多少节点以及这些节点的重要性;权威性分值由指向该节点的节点决定,包括节点的数量以及这些节点的中心性
2016-08-20 16:37:58 1691
原创 基于图的评级算法基础——马尔可夫链
本文只介绍离散时间的马尔可夫链,但这对于理解接下来要讲的PageRank算法、HITS算法和TextRank算法足够了。
2016-08-18 23:22:46 1560
原创 简单的线程池实现 Java
线程池用有限的线程执行无限的任务。我很好奇,这是如何实现的?在看了一些博文和简单的阅读了一下JDK线程池的源代码后,终于明白,原来就是:首先,创建固定数量的线程,然后,这些线程执行提交的Runnable的run方法。基于这个理解,我实现了一个极简的线程池:
2016-06-23 22:55:31 1147
原创 策略模式
策略模式定义了算法族,这些算法被分别封装起来,让它们之间可以相互替换,此模式让算法的变化独立于使用算法的客户。 这是《深入浅出设计模式》对策略模式的定义,这个定义说得很准确,但是书中的示例却举得不好,让我对策略模式的理解总是“一会儿感觉理解了,一会儿感觉没有理解”。直到看了《Effective Java》第二版第21条,用函数对象表示策略,才终于只是处于“感觉理解了”的状态了。根据自己的理解,写了
2016-06-18 14:01:33 2442
原创 windows用Eclipse hadoop 插件 hadoop DFS Locations Error:Call
问题: windows用Eclipse hadoop插件,hadoop DFS Locations报错: Error:Call /:9000 failed on connection exception:java.netConnectExcetion: Connection refused:no further infomation解决方案: linux中某个端口拒绝远程主机连接原因及解决方法
2016-06-11 14:07:42 1997
原创 weka Trying to add database driver (JDBC): jdbc.idbDriver - Error, not in CLASSPATH?
问题: 在eclipse中运行weka(版本:3.6.13-SNAPSHOT),老是报如下错误: Trying to add database driver (JDBC): jdbc.idbDriver - Error, not in CLASSPATH?错误原因是,缺少数据库驱动。解决方法: 如果实验不涉及数据库,这对我其实没什么影响,可是看着不太舒服,所以还是想把它解决了。
2016-06-04 22:12:37 1899
原创 利用管道化连接下载网页 Java
HTTP连接的建立需要时间。如果我们要从一台服务器上获取4个文件,获取每个文件都要重新建立连接来获取数据,这势必会降低文件下载效率,因为有一部分时间花费在建立连接上了,而不是真正在传输有用数据,如图a所示: 如果我们能建立一个连接,传输完所有四个文件,再关闭连接,必然会增加文件下载效率,因为节省了多次建立连接的开销,持久连接就是这样的连接,它的工作方式如图b所示: 简单的持久连接有个问题...
2016-05-10 21:25:54 1313
原创 为何从ThreadLocal中获得的对象是线程安全的? Java7 Java8
本文为标题所提问题提供一个思路清晰的答案,让你很容易从宏观上理解ThreadLocal是如何工作的。从另一个方面来说,文中会忽略一些细节,如果想更多的了解细节,可以继续阅读文末提供的链接中的博文,或者在本文的基础上直接去读源码。接下来进入正题。
2016-04-29 20:36:21 5310
原创 Diffie-Hellman 密钥交换算法
在文章 安全之初——加解密、签名和证书理解 中说了,密钥交换是对称加密的一大问题,并给出了利用非对称加密传输密钥的解决方案。其实,我们还有另一种解决方案,那就是本文的Diffie-Hellman 密钥交换算法。
2016-04-24 16:24:30 7487
原创 LeetCode102 Binary Tree Level Order Traversal Java
题目: Given a binary tree, return the level order traversal of its nodes’ values. (ie, from left to right, level by level).
2016-04-23 14:20:55 3813
原创 LeetCode144 Binary Tree Preorder Traversal(迭代实现) Java
题目: Given a binary tree, return the preorder traversal of its nodes’ values.For example: Given binary tree {1,#,2,3}, 1 \ 2 / 3return [1,2,3].Note: Recursive solution is trivial...
2016-04-23 13:14:19 2417
原创 LeetCode208 Implement Trie (Prefix Tree) Java
题目: Implement a trie with insert, search, and startsWith methods.Note: You may assume that all inputs are consist of lowercase letters a-z. 分析: 对于一棵存储字单词的前缀树,是这样的:树的根结点是空的,其它非叶子节点中存储着一个字符,叶子节点是一个哨兵...
2016-04-22 21:59:48 926
原创 LeetCode94 Binary Tree Inorder Traversal(迭代实现) Java
题目: Given a binary tree, return the inorder traversal of its nodes’ values.For example: Given binary tree {1,#,2,3}, 1 \ 2 / 3return [1,3,2]. 分析: 中根遍历二叉树...
2016-04-22 21:05:06 1067
原创 LeetCode145 Binary Tree Postorder Traversal(迭代实现) Java
题目: Given a binary tree, return the postorder traversal of its nodes’ values.For example: Given binary tree {1,#,2,3}, 1 \ 2 / 3return [3,2,1].
2016-04-21 18:57:23 1177
原创 LeetCode341 Flatten Nested List Iterator(迭代器模式实践) Java
题目: Given a nested list of integers, implement an iterator to flatten it.Each element is either an integer, or a list – whose elements may also be integers or other lists.Example 1: Given the list [[
2016-04-20 20:00:17 5610
原创 LeetCode335 Self Crossing Java
题目 You are given an array x of n positive numbers. You start at point (0,0) and moves x[0] metres to the north, then x[1] metres to the west, x[2] metres to the south, x[3] metres to the east ...
2016-04-17 12:32:05 778
原创 SQL 从查询结果里查询
有orders表: 我想要从从表中查出每天电动车和手机各自的销售总额。这个需求还是蛮简单的,只需要根据createtime和product group by就行了。下面是我写的SQL语句:SELECT DATE_FORMAT( createtime, "%Y-%m-%d" ) cr, product, SUM(price) total FROM orders GROUP BY ...
2016-04-16 01:06:49 8581 3
原创 中文分词学习资料
中文分词算法 之 基于词典的正向最大匹配算法 中文分词算法 之 基于词典的逆向最大匹配算法 中文分词算法 之 基于词典的正向最小匹配算法 中文分词算法 之 基于词典的逆向最小匹配算法 一种利用ngram模型来消除歧义的中文分词方法 中文分词算法 之 基于词典的全切分算法Itenyh版-用HMM做中文分词一:序 Itenyh版-用HMM做中文分词二:模型准备
2016-04-11 23:48:54 1021
原创 分布函数
分布函数的定义是这样: 设X是一个随机变量,x是任意实数,函数 称为X的分布函数。有时也记为X~F(x)。 我们看出,“分布函数”这个名字和它的定义没有半毛钱关系,顾名不能思义。我们再看看分布函数的英文,Cumulant Distribution Function,直译过来是,累加分布函数。我想说,分布函数的英文名字让我一下子明白了它的真谛。
2016-04-02 00:22:14 1074
空空如也
request.getRemoteAddr()获得的ip与实际本地ip不一致
2016-06-21
导入sun.security.tools.KeyTool;报错,提示不能找不到
2016-01-04
Spark没报错,但是停在某一个地方不动了
2015-08-24
TA创建的收藏夹 TA关注的收藏夹
TA关注的人