- 博客(103)
- 资源 (35)
- 收藏
- 关注

原创 博客迁移说明
本博客部分文章迁移至我的个人网站,新站点http://www.dianacody.com,网站将持续关注Search Engine, Machine Learning, NLP相关领域。欢迎访问。
2015-01-19 22:10:20
1364
原创 Python爬虫/文本处理/科学计算/机器学习——工具包总结
曾经因为NLTK的缘故开始学习Python,之后渐渐成为我工作中的第一辅助脚本语言,虽然开发语言是C/C++,但平时的很多文本数据处理任务都交给了Python。离开腾讯创业后,第一个作品课程图谱也是选择了Python系的Flask框架,渐渐的将自己的绝大部分工作交给了Python。这些年来,接触和使用了很多Python工具包,特别是在文本处理,科学计算,机器学习和数据挖掘领域,有很多很多优秀的Py
2015-02-24 18:28:04
3365
原创 【机器学习】机器学习中的数据清洗与特征处理
一、综述 如上图所示是一个经典的机器学习问题框架图。数据清洗和特征挖掘的工作是在灰色框中框出的部分,即“数据清洗=>特征,标注数据生成=>模型学习=>模型应用”中的前两个步骤。 灰色框中蓝色箭头对应的是离线处理部分。主要工作是从原始数据,如文本、图像或者应用数据中清洗出特征数据和标注数据。 对清洗出的特征和标注数据进行处理,例如样本采样,样本
2015-02-23 13:58:28
2976
原创 【推荐系统】互联网商用推荐系统算法实践与框架总结
推荐系统并不是新鲜的事物,在很久之前就存在,但是推荐系统真正进入人们的视野,并且作为一个重要的模块存在于各个互联网公司,还是近几年的事情。 随着互联网的深入发展,越来越多的信息在互联网上传播,产生了严重的信息过载。如果不采用一定的手段,用户很难从如此多的信息流中找到对自己有价值的信息。 解决信息过载有几种手段:一种是搜索,当用户有了明确的信息需求意图后,将意图转换为几个简短的词或者短语的组合(即query),然后将这些词或短语组合提交到相应的搜索引擎,再由搜索引擎在海量的信息
2015-02-23 12:49:12
2697
原创 【NLP】中文分词:原理及分词算法
一、中文分词 词是最小的能够独立活动的有意义的语言成分,英文单词之间是以空格作为自然分界符的,而汉语是以字为基本的书写单位,词语之间没有明显的区分标记,因此,中文词语分析是中文信息处理的基础与关键。 Lucene中对中文的处理是基于自动切分的单字切分,或者二元切分。除此之外,还有最大切分(包括向前、向后、以及前后相结合)、最少切分、全切分等等。二、 中文分词
2014-11-09 15:28:41
12294
原创 【机器学习】EM最大期望算法
EM, ExpectationMaximization Algorithm, 期望最大化算法。一种迭代算法,用于含有隐变量(hidden variable)的概率参数模型的最大似然估计或极大后验概率估计,其概率模型依赖于无法观测的隐变量。 经常用在ML与计算机视觉的数据聚类领域。 EM应用:GMM混合高斯模型、聚类、HMM隐马尔科夫模型等。 一、Jese
2014-11-09 13:56:25
2281
原创 【机器学习】主题模型(二):pLSA和LDA
一、pLSA(概率潜在语义分析) pLSA: -------有过拟合问题,就是求D, Z, W pLSA由LSA发展过来,而早期LSA的实现主要是通过SVD分解。pLSA的模型图如下:
2014-11-04 14:47:21
4074
原创 【机器学习】主题模型(一):条件概率、矩阵分解
两篇文档是否相关往往不只决定于字面上的词语重复,还取决于文字背后的语义关联。对语义关联的挖掘,可以让搜索更加智能化。主题模型是对文字隐含主题进行建模的方法,其克服传统信息检索中文档相似度计算方法的缺点,并且能够在海量互联网数据中自动寻找出文字间的语义主题。关键词:主题模型技术领域:搜索技术、自然语言处理******************************************
2014-11-04 09:24:50
6920
原创 【机器学习】推荐系统、SVD分解降维
推荐系统:1.基于内容的实现:KNN等2.基于协同滤波(CF)实现:SVD→ pLSA(从LSA发展而来,由SVD实现)、LDA、GDBT SVD算是比较老的方法,后期演进的主题模型主要是pLSA和LDA。pLSA主要基于EM最大期望算法,而LDA主要基于Gibbs抽样算法,这个在下一篇文章《主题模型》里会详细介绍。 一、推荐系统 推荐系统实
2014-11-04 09:18:59
6430
原创 【机器学习】关联规则挖掘(二):频繁模式树FP-growth
Apriori算法的一个主要瓶颈在于,为了获得较长的频繁模式,需要生成大量的候选短频繁模式。FP-Growth算法是针对这个瓶颈提出来的全新的一种算法模式。目前,在数据挖掘领域,Apriori和FP-Growth算法的引用次数均位列三甲。 FP的全称是Frequent Pattern,在算法中使用了一种称为频繁模式树(Frequent Pattern Tree)的数据结构。FP-
2014-11-04 09:12:39
3324
原创 【机器学习】关联规则分析(一):Apriori
一、Apriori原理 Apriori是关联分析中较早的一种方法,主要用来挖掘那些频繁项集合,其思想是:1.如果一个项目集合不是频繁集合,那么任何包含它的项目(超集)也一定不是频繁集。2.如果一个项目集合是频繁集合,那么它的任何非空子集(子集)也是频繁集合。 二、关联分析1.发现频繁项集→ 经常出现在一起的样本集合2.发现关联规则→ 暗示两种样本之间可能存
2014-11-03 20:40:04
2654
原创 【机器学习】聚类算法——K均值算法(k-means)
一、聚类1.基于划分的聚类:k-means、k-medoids(每个类别找一个样本来代表)、Clarans 2.基于层次的聚类:(1)自底向上的凝聚方法,比如Agnes (2)自上而下的分裂方法,比如Diana 3.基于密度的聚类:Obsacn、Optics、Birch(CF-Tree)、Cure 4.基于网
2014-11-03 08:49:17
2490
原创 【机器学习】分类器组合——AdaBoost
AdaBoost是一种迭代算法,其核心思想是针对同一个训练集训练不同的分类器(弱分类器),然后把这些弱分类器集合起来,构成一个更强的最终分类器(强分类器)。AdaBoost其实只是boost的一个特例。 一、流程图
2014-11-03 07:58:50
4868
原创 【机器学习】支持向量机SVM
一、步骤1.找最大分类间隔2.定目标函数3.计算α值(不断调整训练)与ω值4.SMO可以优化算法5.核函数对高维数据处理 二、SVM要学会如何使用libsvm以及一些参数的调节经验,另外需要理清楚svm算法的一些思路:1.svm中最优分类面是对所有样本的几何裕量最大,即
2014-11-02 21:07:41
2801
原创 【机器学习】分类算法——Logistic回归
一、LR分类器(Logistic Regression Classifier) 在分类情形下,经过学习后的LR分类器是一组权值w0,w1, …, wn,当测试样本的数据输入时,这组权值与测试数据按照线性加和得到x = w0+w1x1+w2x2+… wnxn,这里x1,x2, …xn是样本的n个特征。 之后按照sigmoid函数的形式求出f(x) = 1/(1+
2014-11-02 15:33:21
4687
原创 【机器学习】文本分类——朴素贝叶斯Bayes
朴素贝叶斯主要用于文本分类。文本分类常见三大算法:KNN、朴素贝叶斯、支持向量机SVM。一、贝叶斯定理 贝叶斯公式思想:利用已知值来估计未知概率。已知某条件概率,如何得到两个事件交换后的概率,也就是已知P(A|B)的情况下如何求得P(B|A)。条件概率:P(A|B)表示事件B已经发生的前提下,事件A发生的概率,叫做事件B发生下事件A的条件概率。基本求解公式:
2014-11-02 09:45:13
2861
原创 【机器学习】随机森林RF
随机森林(RF, RandomForest)包含多个决策树的分类器,并且其输出的类别是由个别树输出的类别的众数而定。通过自助法(boot-strap)重采样技术,不断生成训练样本和测试样本,由训练样本生成多个分类树组成的随机森林,测试数据的分类结果按分类树投票多少形成的分数而定。 随机森林以随机的方式建立一个森林,森林里有很多决策树,且每棵树之间无关联,当有一个新样本进入后,让森
2014-11-02 08:20:15
3619
原创 【机器学习】迭代决策树GBRT(渐进梯度回归树)
一、决策树模型组合 单决策树C4.5由于功能太简单,并且非常容易出现过拟合的现象,于是引申出了许多变种决策树,就是将单决策树进行模型组合,形成多决策树,比较典型的就是迭代决策树GBRT和随机森林RF。在最近几年的paper上,如iccv这种重量级会议,iccv09年的里面有不少文章都是与Boosting和随机森林相关的。模型组合+决策树相关算法有两种比较基本的形式:随机森林RF与GBD
2014-11-01 23:29:53
5303
原创 【机器学习】决策树C4.5、ID3
一、算法流程 step1:计算信息熵 step2: 划分数据集 step3: 创建决策树 step4: 利用决策树分类 二、信息熵Entropy、信息增益Gain重点:选择一个属性进行分支。注意信息熵计算公式。决策树作为典型的分类算法,基本思路是不断选取产生信息增益最大的属性来划分样例集和,
2014-11-01 21:50:29
2279
原创 【机器学习】k近邻算法(kNN)
一、写在前面 本系列是对之前机器学习笔记的一个总结,这里只针对最基础的经典机器学习算法,对其本身的要点进行笔记总结,具体到算法的详细过程可以参见其他参考资料和书籍,这里顺便推荐一下Machine Learning in Action一书和Ng的公开课,当然仅有这些是远远不够的,更深入的研究分析可以参见其他国外的论文及站点,此处不再一一列举。 机器学习更多的是建模
2014-11-01 16:56:18
3077
原创 linux创建守护进程
一、概述 linux开启进程都是与终端绑定的,终端一关,进程也关,如果想独立不受干扰,必须将此进程变为守护进程(在后台运行,不以终端方式与用户交互)。守护进程能够突破这种限制,它从被执行开始运转,直到整个系统关闭时才退出。如果想让某个进程不因为用户或终端或其他地变化而受到影响,那么就必须把这个进程变成一个守护进程。 二、守护进程特性 守护进程最重要的
2014-10-12 12:27:40
2523
原创 打包python文件为exe文件(PyInstaller工具使用方法)
最近做的新浪微博爬虫程序,打算打包成.exe软件以方便使用,网上找到一个很好的打包工具pyinstaller,这里记录一下打包的方法。一、下载pyinstaller我使用的版本为PyInstaller-2.1,支持python版本2.3-2.7,点击这里下载。二、安装pyinstaller下载完成后,解压即可。我的解压目录为D:\Python27\PyInstaller-2
2014-10-03 23:46:33
10709
原创 【网络爬虫】【python】网络爬虫(五):scrapy爬虫初探——爬取网页及选择器
在上一篇文章的末尾,我们创建了一个scrapy框架的爬虫项目test,现在来运行下一个简单的爬虫,看看scrapy爬取的过程是怎样的。一、爬虫类编写(spider.py)vdsv
2014-10-03 09:57:01
3348
原创 【网络爬虫】【python】网络爬虫(四):scrapy爬虫框架(架构、win/linux安装、文件结构)
scrapy框架的学习,目前个人觉得比较详尽的资料主要有两个:1.官方教程文档、scrapy的github wiki;2.一个很好的scrapy中文文档:http://scrapy-chs.readthedocs.org/zh_CN/0.24/index.html; 剩下的就是网上其他的一些demo。 一、scrapy框架结构 还是先上个图吧,这
2014-10-02 23:37:39
4143
原创 【网络爬虫】【python】网络爬虫(三):模拟登录——伪装浏览器登录爬取过程
一、关于抓包分析和debug Log信息 模拟登录访问需要设置request header信息,,而python抓包可以直接使用urllib2把debug Log打开,数据包的内容可以打印出来,这样都可以不用抓包了,直接可以看到request header里的内容。
2014-10-02 23:16:45
10247
1
原创 【网络爬虫】【python】网络爬虫(二):网易微博爬虫软件开发实例(附软件源码)
对于urllib2的学习,这里先推荐一个教程《IronPython In Action》,上面有很多简明例子,并且也有很详尽的原理解释:http://www.voidspace.org.uk/python/articles/urllib2.shtml 最基本的爬虫,主要就是两个函数的使用urllib2.urlopen()和re.compile()。一、网页抓取简单例子
2014-10-02 23:03:41
3568
原创 【网络爬虫】【python】网络爬虫(一):python爬虫概述
python爬虫的实现方式:1.简单点的urllib2+regex,足够了,可以实现最基本的网页下载功能。实现思路就是前面java版爬虫差不多,把网页拉回来,再正则regex解析信息……总结起来,两个函数:urllibw.urlopen()和re.compile()。其实对于正则解析html网页,python同样有和jsoup类似的工具包——BeautifulSoup,用好了同样比正则省事多了
2014-10-02 00:23:33
3042
原创 【网络爬虫】【java】微博爬虫(五):防止爬虫被墙的几个技巧(总结篇)
爬虫的目的就是大规模地、长时间地获取数据,跟我们正常浏览器获取数据相比,虽然机理相差不大,但总是一个IP去爬网站,大规模集中对服务器访问,时间一长就有可能被拒绝。关于爬虫长时间爬取数据,可能会要求验证码,即便是多个账号轮流爬取仍然会出现要求输入验证码的情况。技巧一:设置下载等待时间/下载频率大规模集中访问对服务器的影响较大,爬虫可以短时间增大服务器负载。这里需要注意的是:设定下载等
2014-10-01 12:53:32
9879
原创 【网络爬虫】【java】微博爬虫(四):数据处理——jsoup工具解析html、dom4j读写xml
之前提到过,对于简单的网页结构解析,可以直接通过观察法、手工写正则解析,可以做出来,比如网易微博。但是对于结构稍微复杂点的,比如新浪微博,如果还用正则,用眼睛一个个去找,未免太麻烦了。 本文介绍两个工具包:解析html, xml的jsoup,和读写xml的dom4j。 工具包jsoup是解析html、xml的利器,利用jsoup可以快速读取html等规范文档格式
2014-10-01 08:53:16
6415
原创 【网络爬虫】【java】微博爬虫(三):庖丁解牛——HTML结构分析与正则切分
在上一篇文章中已经通过请求的url地址把html页面爬取下来了,这里分别以网易微博的html和新浪微博的html为例来分析如何提取微博数据。一、网易微博解析 相比新浪微博的html结构,网易微博的比较容易明显地看出来,也容易找到微博数据。查看其html结构不是网页里右键→“查看网页源代码”,那里的微博正文是以html标签形式显示的,而程序实际请求返回得到的html的微博正文是
2014-10-01 08:49:30
2937
原创 【网络爬虫】【java】微博爬虫(二):如何抓取HTML页面及HttpClient使用
一、写在前面上篇文章以网易微博爬虫为例,给出了一个很简单的微博爬虫的爬取过程,大概说明了网络爬虫其实也就这么回事,或许初次看到这个例子觉得有些复杂,不过没有关系,上篇文章给的例子只是让大家对爬虫过程有所了解。接下来的系列里,将一步一步地剖析每个过程。爬虫总体流程在上篇文章已经说得很清楚了,没有看过的朋友可以去看下:http://blog.youkuaiyun.com/dianacody/article
2014-09-30 14:11:49
11722
转载 做一名开源社区的扫地僧——从Bug report到Google Summer of Code(GSoC):从200个bug到5000美金
今年的软件自由日(SFD),我在广州Linux用户组的线下活动上做了一个分享,主题叫做《做一名开源社区的扫地僧(上)》。我把演讲的内容重新整理扩充, 写出了文字版, 希望可以跟更多朋友分享。金庸笔下有一个传奇人物,人称扫地僧,身世隐秘,武功绝顶。小说中的扫地僧一出现就是个高手,没人知道高手怎么炼成的。这种"扫地僧",实在可望不可及。 然而,还有另一种扫地僧,人人都可以效仿,人人都可以做到,
2014-09-30 00:09:05
3590
转载 搭建一个免费的,无限流量的Blog----github Pages和Jekyll入门
喜欢写Blog的人,会经历三个阶段。 第一阶段,刚接触Blog,觉得很新鲜,试着选择一个免费空间来写。 第二阶段,发现免费空间限制太多,就自己购买域名和空间,搭建独立博客。 第三阶段,觉得独立博客的管理太麻烦,最好在保留控制权的前提下,让别人来管,自己只负责写文章。大多数Blog作者,都停留在第一和第二阶段,因为第三阶段不太容易到达:你很难找到俯首听命、愿意为你管
2014-09-29 23:21:42
1132
原创 【HBase】HBase笔记:HBase的Region机制
HBase 的机制里包含了许多优秀的算法,如 Region 定位、Region 分配、Region Server的上线和下线、Master 的上线和下线。在谈到这些之前,先把 HBase 的基本架构里的一些概念列在这里。一、HBase组成1.Client:利用 RPC 机制与 HMaster 和HRegionServer通信;2.Zookeeper: 协调,避免 HMaster 单点问
2014-09-24 22:18:51
5263
原创 【Hive】Hive笔记:Hive调优总结——数据倾斜,join表连接优化
数据倾斜即为数据在节点上分布不均,是常见的优化过程中常见的需要解决的问题。常见的Hive调优的方法:列剪裁、Map Join操作、 Group By操作、合并小文件。 一、表现1.任务进度长度为99%,在任务监控页面中发现只有几个 reduce 子任务未完成; 2.单一 reduce 记录与平均记录数差异过大(大于3倍),最长时长>>平均时长; 3.
2014-09-24 00:57:37
9690
转载 【Hadoop】MapReduce笔记(四):MapReduce优化策略总结
Cloudera 提供给客户的服务内容之一就是调整和优化MapReduce job执行性能。MapReduce和HDFS组成一个复杂的分布式系统,并且它们运行着各式各样用户的代码,这样导致没有一个快速有效的规则来实现优化代码性能的目的。在我看来,调整cluster或job的运行更像一个医生对待病人一样,找出关键的“症状”,对于不同的症状有不同的诊断和处理方式。 在医学领域,没有
2014-09-24 00:25:08
2053
原创 【Hadoop】MapReduce笔记(三):MapReduce的Shuffle和Sort阶段详解
整体的Shuffle过程包含以下几个部分:Map端Shuffle、Sort阶段、Reduce端Shuffle。即是说:Shuffle过程横跨 map 和 reduce 两端,中间包含 sort 阶段,就是数据从 map task 输出到reduce task输入的这段过程。-----------------------------------------------------------
2014-09-23 20:08:10
9100
5
原创 【Hadoop】MapReduce笔记(二):MapReduce容错,任务失败处理
典型问题:Hadoop如何判断一个任务失败?失败了怎么做?分析:实际情况下,用户代码存在软件错误、进程崩溃、机器故障等都会导致失败。Hadoop判断的失败有不同级别类型,针对不同级别的失败有不同的处理对策,这就是MapReduce的容错机制。下面是几个不同级别失败的分类:一、任务失败分为3种情况:Task失败、子进程JVM退出、超时检测被关闭。1.任务失败。最常见的是Map或Red
2014-09-23 12:30:03
3849
原创 【Hadoop】MapReduce笔记(一):MapReduce作业运行过程、任务执行
一、MR作业运行过程JobClient的runJob()方法:新建JobClient实例,并调用其submitJob()方法。提交作业后,runJob()每秒轮询作业进度,如果发现上次上报后信息有改动,则把进度报告输出到控制台。作业完成,成功则显示作业计数器;失败则输出错误到控制台。 (一)JobClient的submitJob()的作业提交过程:1. 向JobTracker请求一
2014-09-23 09:49:22
3737
SublimeText安装包
2015-11-17
pyinstaller-2.1.zip
2014-10-03
mysqldb-python-1.2.3
2014-09-11
mahout-core-0.9.jar
2014-09-04
mahout 0.7
2014-09-04
java反编译工具jad
2014-08-15
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人