- 博客(109)
- 资源 (3)
- 收藏
- 关注
原创 HMM学习笔记(1)
以下文章参考了下面两个博客:http://blog.youkuaiyun.com/likelet/article/details/7056068http://www.52nlp.cn/category/hidden-markov-modelHMM的推导我们还是以《隐马尔可夫模型(HMM)简介》中的例子来说,状态集合在状态转移矩阵及混淆矩阵中的每一个概率都
2012-12-22 15:31:37
980
转载 隐马尔可夫模型(HMM)简介
以下转自:http://xiaofeng1982.blog.163.com/blog/static/315724582009824103618623/隐马尔可夫模型(HMM)简介请各位读者深吸一口气……呼…… 开始……(一)阿黄是大家敬爱的警官,他性格开朗,身体强壮,是大家心目中健康的典范。但是,近一个月来阿黄的身体状况出现异常:情绪失控的状况时有发
2012-12-17 21:50:23
1190
原创 《python标准库》学习笔记2
1.处理文件内建的open/file函数用于创建,打开和编辑文件,而os模块提供了重命名和删除文件所需的函数import osdef replace(file,search_for,replace_with): back = os.path.splitext(file)[0]+'.bak' print(back) temp = os.path.splite
2012-12-17 15:00:31
959
原创 《python标准库》学习笔记1(__builtin__模块)
__builtin__模块这个模块包含Python中使用的内建函数,一般不用手动导入这个模块,Python会帮你做好一切。下面将一一介绍这个模块所常有的函数。 1. 加载和重载模块:import语句是用来导入外部模块的(也可使用from -- import)其实import是靠调用内建函数__import__来工作的。例如 import spam 其实就是相当于执行下面一行
2012-12-16 20:26:49
3743
转载 Lucene的分词器Analyzer
以下转自:http://forfuture1978.iteye.com/blog/6855141、抽象类Analyzer其主要包含两个接口,用于生成TokenStream:· TokenStream tokenStream(String fieldName, Reader reader);· TokenStream reusableTokenStream(String fieldN
2012-12-15 15:46:53
911
转载 Lucene的查询对象(1)
以下转自:http://forfuture1978.iteye.com/blog/669444Lucene除了支持查询语法以外,还可以自己构造查询对象进行搜索。从上一节的Lucene的语法一章可以知道,能与查询语句对应的查询对象有:BooleanQuery,FuzzyQuery,MatchAllDocsQuery,MultiTermQuery,MultiPhraseQuery,Phrase
2012-12-15 14:29:47
780
转载 Lucene搜索过程解析(8)
以下转自:http://forfuture1978.iteye.com/blog/6328722.4、搜索查询对象 2.4.4、收集文档结果集合及计算打分在函数IndexSearcher.search(Weight, Filter, int) 中,有如下代码:TopScoreDocCollector collector = TopScoreDocCollector.cre
2012-12-14 15:02:06
440
转载 Lucene搜索过程解析(7)
以下转自:http://forfuture1978.iteye.com/blog/6328692.4、搜索查询对象2.4.3.2、并集DisjunctionSumScorer(A OR B)DisjunctionSumScorer中有成员变量List subScorers,是一个Scorer的链表,每一项代表一个倒排表,DisjunctionSumScorer就是对这些倒排表取并集,然
2012-12-14 14:24:00
461
转载 Lucene搜索过程解析(6)
以下转自:http://forfuture1978.iteye.com/blog/6328592.4、搜索查询对象 2.4.3、进行倒排表合并在得到了Scorer对象树以及SumScorer对象树后,便是倒排表的合并以及打分计算的过程。合并倒排表在此节中进行分析,而Scorer对象树来进行打分的计算则在下一节分析。BooleanScorer2.score(Collector
2012-12-14 10:22:09
474
转载 Lucene搜索过程解析(5)
以下转自:http://forfuture1978.iteye.com/blog/6328402.4、搜索查询对象 2.4.2、创建Scorer及SumScorer对象树当创建完Weight对象树的时候,调用IndexSearcher.search(Weight, Filter, int),代码如下://(a)创建文档号收集器TopScoreDocCollector col
2012-12-14 09:38:00
525
转载 Lucene搜索过程解析(4)
以下转自:http://forfuture1978.iteye.com/blog/6328292.4、搜索查询对象 2.4.1.2、创建Weight对象树BooleanQuery.createWeight(Searcher) 最终返回return new BooleanWeight(searcher),BooleanWeight构造函数的具体实现如下:public Boolea
2012-12-13 15:49:11
394
转载 Lucene搜索过程解析(3)
2.3、QueryParser解析查询语句生成查询对象代码为:QueryParser parser = new QueryParser(Version.LUCENE_CURRENT, "contents", new StandardAnalyzer(Version.LUCENE_CURRENT));Query query = parser.parse("+(+apple* -boy)
2012-12-13 14:53:50
505
转载 影响Lucene对文档打分的四种方式
本文转自:http://forfuture1978.iteye.com/blog/591804在索引阶段设置Document Boost和Field Boost,存储在(.nrm)文件中。如果希望某些文档和某些域比其他的域更重要,如果此文档和此域包含所要查询的词则应该得分较高,则可以在索引阶段设定文档的boost和域的boost值。这些值是在索引阶段就写入索引文件的,存储在标准化因子(
2012-12-12 10:03:22
1260
转载 Lucene搜索过程解析
本文转自:http://forfuture1978.iteye.com/blog/632815一、Lucene搜索过程总论搜索的过程总的来说就是将词典及倒排表信息从索引中读出来,根据用户输入的查询语句合并倒排表,得到结果文档集并对文档进行打分的过程。其可用如下图示:总共包括以下几个过程:1 IndexReader打开索引文件,读取并打开指向索引文件的流。2 用户输入查询
2012-12-11 16:49:57
525
转载 Lucene段合并(merge)过程分析
本文转自:http://forfuture1978.iteye.com/blog/609197一、段合并过程总论IndexWriter中与段合并有关的成员变量有:· HashSet mergingSegments = new HashSet(); //保存正在合并的段,以防止合并期间再次选中被合并。· MergePolicy mergePolicy = new LogByteSiz
2012-12-11 14:23:18
1016
转载 Lucene的索引文件格式(二)
本文转自:http://forfuture1978.iteye.com/blog/546841四、具体格式4.2. 反向信息反向信息是索引文件的核心,也即反向索引。反向索引包括两部分,左面是词典(Term Dictionary),右面是倒排表(Posting List)。在Lucene中,这两部分是分文件存储的,词典是存储在tii,tis中的,倒排表又包括两部分,一部分是文
2012-12-10 10:04:05
530
转载 Lucene的索引文件格式
这是我学习lucene的笔记,完全参考《lucene原理与代码分析》,作者的博客地址:http://blog.youkuaiyun.com/forfuture1978之前也是尝试着看了的,但是发现一深入源码我就懵了,犯了只见树木不见森林的错误。如何有效阅读源代码,蔡学镛的经验:1) 先阅读架构文档 2) 根据架构,将源码文件以模块(或上下层级)分类 3) 从最独立(依赖性最小)的模块代码读起
2012-12-06 18:14:00
763
转载 细说Lucene打分公式
之前有一篇讲解Lucene的打分的,但是那个讲的太浅显了,偶然在网上看到一篇讲的很详细,转载过来,希望对自己有帮助。此文章转自:http://javenstudio.org/blog/lucene-similarity-howto如何给文档评分Similarity类负责给文档评分。文档评分类Similarityorg.apache.lucene.search.Similarit
2012-12-05 08:47:52
778
原创 机器学习之PCA
Principal components analysis的中心思想就是找到那些比较相近的特征用一个特征来代替它们,从而达到降维的目的。Andrew Ng在Lecture中举了一个这样的例子,有一个数据集。在进行PCA之前,我们先要对数据进行如下预处理:上图中投影点具有较大的方差,而下图中投影点具有较小的方差,被认为是噪声。我们将选择一个单位长度的u是的
2012-12-03 20:56:51
813
原创 支持向量机笔记(五) regularization and SMO
到目前为止,SVM为描述为在低维,或者映射到高维后线性可分,然而对于有一些outliers的情况,我们所得到的超平面就不一定是最好的,就像下图中的一样,这个outliers明显影响了超平面的划分:为了让这个算法,对outliers变得不那么敏感,我们对优化问题加入了regularization:和之前的结果比较,发现唯一的不同是alpha多了一个上限C,这样一个可以容忍ou
2012-11-26 11:16:54
974
原创 支持向量机笔记(四) Kernel
最后的最后多说一句关于上面的特征映射到维的特征空间,其实如果给的那个例子用它来算应该是10维,而作者写出了13维,多的那三维是作者把,这对于最后的结果没有影响,因为我们可以认为上面作者没有合并同类项,如果写成10维,那就是合并同类项之后的结果。
2012-11-26 09:43:27
588
原创 支持向量机笔记(三) optimal margin classifiers
上一讲主要是关于优化的问题,这一讲就正式开始SVM之旅了,首先看下图:至此,如果我们找到alpha,为了进行预测,我们只需要就算x和对应的训练样本的内积就可以了,而前面已经证明了那些不是支持向量对应的alpha是0,所以我们真正需要计算的是那些支持向量的内积。到目前为止SVM还只能处理线性的情况,在下一讲通过kernel的讲解后就可以推广到非线性的情况了。
2012-11-23 15:37:26
1068
原创 支持向量机笔记(二) Lagrange duality
拉格朗日对偶因为下一讲要用到这方面的知识,所以先在这里学习下,它其实就是我们本科阶段所学的拉格朗日乘数法:以上来自百度百科。只不过在这里我们是多维的。首先我们的优化问题如下:
2012-11-22 20:47:15
3626
原创 支持向量机笔记(一) functional and geometric margins
最近在看机器学习,感觉有点朦胧,于是写下这些知识点,在自己忘记的时候能够翻出来看看。我是以stanford的cs229的讲义为蓝本的,上面有些洋文我感觉翻译出来就失去了原有的味道,(主要是我不会翻译)。首先我们可以回顾下logistic regression ,对于给定输入x,需要预测输出,为此我们选择了,其实它的原型就是一个sigmoid function, ,然后通过梯度下降法估计出θ的值
2012-11-22 20:26:53
2435
转载 浅谈协方差矩阵
这段时间一直在看机器学习相关的内容,鉴于对以前所学的东西都忘记了的缘故,在网上找了一篇讲解协方差矩阵的文章,转载过来,以利于自己的学习。以下文章转自:http://lzyzwbn.blog.163.com/blog/static/8421995720118745846728/今天看论文的时候又看到了协方差矩阵这个破东西,以前看模式分类的时候就特困扰,没想到现在还是搞不清楚,索性开始查协方差
2012-11-20 20:59:44
1520
转载 聚类算法 之 Gaussian Mixture Model
以下文章转自:http://blog.pluskid.org/?p=39上一次我们谈到了用 k-means 进行聚类的方法,这次我们来说一下另一个很流行的算法:Gaussian Mixture Model (GMM)。事实上,GMM 和 k-means 很像,不过 GMM 是学习出一些概率密度函数来(所以 GMM 除了用在 clustering 上之外,还经常被用于 density estim
2012-11-20 20:50:37
1269
原创 NumPy for Matlab Users
因为要在Python中用到matlab的有关知识,所以在这里介绍一个新的module-------------numpy,以下内容翻译自:http://www.scipy.org/NumPy_for_Matlab_Users/#head-611af3a5b2d69937e367b9c6626c33658a1c8629IntroductionMATLAB 和 NumPy/SciPy有很多
2012-11-20 11:09:49
1245
转载 聚类算法 之 k-means
本文转自:http://blog.pluskid.org/?p=17 Clustering 中文翻译作“聚类”,简单地说就是把相似的东西分到一组,同 Classification (分类)不同,对于一个 classifier ,通常需要你告诉它“这个东西被分为某某类”这样一些例子,理想情况下,一个 classifier 会从它得到的训练集中进行“学习”,从而具备对未知数据进行分类的能力,这
2012-11-18 10:57:30
1166
原创 《集体智慧编程》之决策树(学习笔记)
原理:决策树提供了一种展示类似在什么条件下会得到什么值这类规则的方法。比如,在贷款申请中,要对申请的风险大小做出判断,图是为了解决这个问题而建立的一棵决策树,从中我们可以看到决策树的基本组成部分:决策节点、分支和叶子。决策树中最上面的节点称为根节点,是整个决策树的开始。本例中根节点是“收入>¥40,000”,对此问题的不同回答产生了“是”和“否”两个分支。(百度百科) 以上图片来自(h
2012-11-13 14:43:21
1381
转载 NMF算法简介及python实现(gradient descent)
原文链接:http://www.albertauyeung.com/mf.php基本原理NMF,非负矩阵分解,它的目标很明确,就是将大矩阵分解成两个小矩阵,使得这两个小矩阵相乘后能够还原到大矩阵。而非负表示分解的矩阵都不包含负值。 从应用的角度来说,矩阵分解能够用于发现两种实体间的潜在特征,一个最常见的应用就是协同过滤中的预测打分值,而从协同过滤的这个角度来说,非负也很容易理解:打分都是正
2012-11-06 10:04:38
4034
原创 贪心算法之Bellman-Ford
前面都是边的权值是正的情况,如果一个图包含负权值的环,那么最短路径可能不存在。而Bellman-Ford算法:从源s∈V到所有v∈V找到所有的最短路径的长度或者检测是否有一个负环路存在。算法如下:算法的前面还是和Dijkstra一样的,只是在后面多了一个检测负权环的for循环,即对所有的边松弛完毕后,开始检测如果d[v]>d[u]+w(u,v)任然存在那么显然有一个负权环代码如下:
2012-10-30 14:49:51
1371
原创 贪心算法之Dijkstra
三角不等式:单源最短路径:对于给定的一个源顶点s∈V,对所有v∈V找出最短路径权重为δ(s,v),如果所有边权重w(u,v)是非负的,则s到所有点的最短路径肯定存在。思想:1. 有一个顶点集合S,从s到他的最短路径是未知的。2. 在每一步,添加从s到v∈V-S的路径是最短的v到S中3. 更新顶点邻接表中到v的距离算法如下:最后结果如下:算法分析如下:
2012-10-30 08:55:01
975
原创 最小生成树算法之prim
输入无向图G=(V,E),它的权重函数是w: E→R输出一个最小生成树T----一棵用最小权重连接所有顶点的树:移去任何属于(u,v)∈T则T被分割成两棵子树T1,T2。还是用剪切和粘贴法来证明如下:从它的性质我们可以知道它符合动态规划的两个性质,所以我们可以用动态规划来设计算法,但是此处还有一个更好的性质:子问题的最优解也是全局最优解证明,同样适用反证法和
2012-10-25 15:44:07
639
原创 动态规划之LCS
最长公共子序列的意思就是两个序列,有公共的部分,公共部分在这两个序列的位置上不一定相等,但序列的逻辑顺序是相等的例如给定两个序列x[1..m]和y[1..n],找出一个(注,这里说的是一个而不是这个,也就是说可能有很多个)最长的公共序列,其中 x: A B C B D A B y: B D C A B A则LCS(x,y) = BCBA .........此处LC
2012-10-25 08:36:31
761
原创 python库学习之re
re库 (以下内容来自Python v3.2.3 documentation)前段时间因为要做实验当误了好长时间,从今天开始继续学习python,后面将学习一系列的库,为了加深映像所以把文档中常用的摘抄如下,希望自己在理解的基础上牢记它们。正则表达式中"\"表示转义字符,如果要匹配一个"\",一般情况下要用"\\\\"作为匹配符,但是用Python’s raw string 只需要写为r"
2012-10-22 14:57:40
565
原创 python学习笔记
Python学习笔记 因为是搞nlp的,而python作为脚本语言对处理语料等方面有着先天的优势,所以近期好好学习了下它,下面是一些我的笔记,比较粗略,主要为了以后好复习。Sys.path环境变量数字,字符串,列表,字典,元组,文件自动跟踪类型,不声明代码Lambda args: expression 生成匿名函数拷贝对象字符串格式化 'a%s parrot'%
2012-09-27 09:43:43
359
原创 lucene学习笔记之Analyzer和Search
为应用程序添加搜索功能Lucene主要的搜索API类目的IndexSearcher所有搜索通过IndexSearcher进行,它们会调用该类中重载的search方法Query(及其子类)Query实例将被传递给IndexSearcher的search方法QueryParser
2012-09-12 15:49:22
686
原创 lucene学习笔记之构建索引
构建索引2.2理解索引过程文本首先从原始数据中提取出来用于创建对应的Document实例,该实例包括多个Field实例,他们都用来保存原始数据信息,随后的分析过程将域文本处理成大量的语汇单元,最后将语汇单元加入到段结构中。2.2.1提取文本和创建文档有关提取文本信息的细节将在第七章结合Tika框架详谈。2.2.2 分析文档在索引操作时,Lucene首先分析文本,将文本数
2012-09-11 14:32:58
535
转载 《深入java虚拟机》学习笔记(第十九章 方法的调用和返回)
19.1 方法调用Java提供了两种基本的方法:实例方法和类(静态)方法。这两种方法的区别在于:1)实例方法在被调用之前,需要一个实例,而类方法不需要。2)实例方法使用动态绑定,而类方法使用静态绑定当Java虚拟机调用一个类方法时,它会基于对象引用的类型(通常在编译时可知)来选择所调用的方法。相反,当虚拟机调用一个实例方法时,它会基于对象实例的类(只能在运行时得知)来选择所调用的方
2012-09-10 14:41:18
655
校园区局域网课程设计论文
2009-12-31
配置局域网中的通信协议
2009-12-24
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人