摘要:
版权说明: 本文由 LeftNotEasy 原创,联系方式wheeleast@gmail.com 本文可以被任意的转载,请保留完整的文章(含版权说明)。如果商用,请联系原作者。 发布于http://leftno... 阅读全文
摘要:
我们的异常处理类的features如何写一个异常处理类是一个不太容易的事情,最近刚好接触了一些不错的代码,看到了一些技巧,这里和大家分享一下。一个相对完善的异常处理类(以及附加的一些东西)应该能够处理下面的一些功能:1) 能够方便的定义异常类的继承树2) 能够方便的throw、catch,也就是在代码中捕获、处理代码的部分应该更短3) 能够获取异常出现的源文件的名字、方法的名字、行号4) 能够获取... 阅读全文
摘要:
本文由LeftNotEasy原创,可以转载,但请保留出处和此行,如果有商业用途,请联系作者 wheeleast@gmail.com 一. 简单的说贝叶斯定理: 贝叶斯定理用数学的方法来解释生活中大家都知道的常识 形式最简单的定理往往是最好的定理,比如说中心极限定理,这样的定理往往会成为某一个领域的理论基础。机器学习的各种算法中使用的方法,最常见的就是贝叶斯定理。 贝叶斯定理的发现过程我没有找... 阅读全文
摘要:
关于程序设计,掐指算来也写了快有十年的程序了,之前很长的一段时间都是以算法类的竞赛为主,对于程序结构的设计,总是胡乱写写,能跑通就算ok了。来公司后, 接触了一些大一点的项目的设计,设计的重要性就凸现出来了。 为了更好的设计(不能说到完美,但是至少不要把自己和用户弄晕),我写点自己的一些感悟(有自己思考的,也有和公司的前辈讨论得到的),不能说本系列是一篇指导性的文章,权当是抛砖引玉,希望能够大家不... 阅读全文
摘要:
数学之美番外篇:平凡而又神奇的贝叶斯方法 Tags: 数学, 机器学习与人工智能, 计算机科学 save it69 savedtags: 贝叶斯mathbayesianalgorithm数学science教程bayesprogramming刘未鹏 概率论只不过是把常识用数学公式表达了出来。 ——拉普拉斯 记得读本科的时候,最喜欢到城里的计算机书店... 阅读全文
摘要:
Lucene有一个问题一直困扰着我, 就是如何在索引文件的时候节省空间, 合理的分配不大也不小的空间有助于在提高搜索速度的同时也能够监测内存的使用情况, 在内存使用到达某个阈值的时候可以触发合并的操作 之前在写一个小程序, 来实现类似于Lucene索引文件的时候, 我是用c++写的, 没有使用内存池, 需要的时候就找操作... 阅读全文
摘要:
TermsHashPerField 类一、类功能概述:负责词项的索引过程,每个字段有相应的一个TermsHashPerField;当索引某字段词项时,使用对应TermsHashPerField的add()函数完成(一个)词项索引过程,并将索引内容(词项字符串/指针信息/位置信息等)存储于内存缓冲中二、类成员说明:2.1 final int streamCount;如果需要记录词频和位置,此值为2(... 阅读全文
摘要:
写在前面的一些废话: 对于Lucene 3.0.0的线程模型我非常的感兴趣, 因为对于多线程我也是最近才接触, 别看我接触程序都快十年了, 有几个地方我一直非常的遗憾 : 没有写过网络相关的代码, 没有写过多线程程序, 没有写过数据库相关的内容, 没有写过Linux相关的程序. 可能各位会觉得非常... 阅读全文
摘要:
如果你看的Lucene相关的书是很老版本的, 比如说2.4或者更早, 那么对于这个版本中的Analyzer可能就不那么容易接受了, 我也是看的<lucene分析与应用>这本书, 比较古老的版本. 今天读了一下源代码, 大概说说心得, 我从SimpleAnalyzer说起. ... 阅读全文
摘要:
以前版本的Lucene是用TokenStream.next()来遍历TokenStream的内容, 目前的版本稍微修改了一下, 使用下面的的一段程序可以遍历TokenStream的内容 private static void displayTokenStream(TokenStream ts) throws IOException { TermAttribut... 阅读全文
摘要:
一. 我本来的程序 其实我本来的程序挺简单, 完全修改自Demo里面的SearchFiles和IndexFiles. 唯一不同的是引用了SmartCN的分词器. 我把修改那一点的代码贴出来. IndexhChinese.java: Date start = new Date();... 阅读全文
摘要:
之前我谈到了把Term加入到Posting表中的过程, 接下来我将大致说说把Posting表写入到文件中的过程. 这些内容我看得不算仔细, 之后有时间可以详细的扩展一下, 先留个脚印在这儿 :-D 之前的准备: 这六步就是写入前的前期准备工作,... 阅读全文
摘要:
一. TermHashPerField.add()方法 这一章继续上面的内容, 上一章谈到TermHashPerField.add()方法就是把一个Term加入到posting表的过程, 那么下面我将从算法的角度来分析这个add()方法: final char[] tokenText = termAtt.termBuffer();; final int to... 阅读全文
摘要:
一. consumer的来源 接着上一小节的内容, 还是从这一段程序(位于DocumentWriter.updateDocument(Document, Analyzer, Term) 中继续. try { // This call is not synchronized and does all the // work final DocWriter pe... 阅读全文
摘要:
这一小结的内容我将大概讲讲IndexFiles的一个过程. 为了方便查看, 还是把IndexFile.java的源代码放在前面. 1: public class IndexFiles { 2: 3: private IndexFiles() {} 4: 5: static final File INDEX_DIR = new File("index"); 6: 7: /** Index all t... 阅读全文
摘要:
从lucene.apache.org上面下载最新版本的Lucene源代码(目前是3.0.0), IDE我选择的Eclipse, 我也不太懂java, 不过非常想能够看看Lucene的底层的运作机制和一些技巧. 下载的包需要是后缀有src的, 我主要想看看源代码的内容, 所以就没有下载编译好的二进制包 从Eclipse的F... 阅读全文
摘要:
http://lucene.apache.org/java/3_0_0/index.html lucene的官方文档 里面有: FAQ:有不少很有价值的内容 Scoring:Lucene非常有意思的打分系统 File Formats: 文件结构是怎样的, 比如说FNM是怎样的... 阅读全文
摘要:
本文中的一些观点可能存在错误, 欢迎大家指正, 或者有更好的方法也欢迎交流. c++的单元测试方法一向很多, 比如cxxunit, googletest等等, 不过不知道是不是我的人品不太好, googletest我使用的时候一直出现了无法解析的外部符号, 就算是按照别人给出的方法(编译方式\MTd, 也找遍了网络) 还... 阅读全文
摘要:
在Effective C++中提到:让自己熟悉TR1与Boost库, 重复造轮子是一件不太划算的事情. 本来还计划把一些内容自己写写, 想了想还是算了, 时间应该用来做一些更需要自己写的事情. 使用Boost之前当然是配置它, 在VS2008下的配置方法如下: 首先去 http:/... 阅读全文
摘要:
想到又开始可以写代码了,觉得激动不已啊,哈哈。不过或许到了公司上班就没有这个想法了,对于写代码我倒是从来不觉得讨厌,可能是我真的挺适合干这一行吧。这次使用Lucene比上次重写3D引擎的时候可不那么一样了,希望能够做出更严谨的程序,比如说对于异常的处理等等,上次整个程序中就没有一句try..catch..这几天大概的翻了下《Lucene的分析与应用》书本身写得挺烂的,全部是从Lucene的源代码中... 阅读全文