摘要:一)分词1)正向/逆向最大匹配算法典型:IKAnalyzer采用的是正向迭代最细粒度切分算法IKAnalyzer源码简单分析:http://www.cnblogs.com/huangfox/p/3282003.html2)字典树(trieTree)trieTree实现http://www.cnblogs.com/huangfox/archive/2012/04/27/2474185.html中文分词遇到的问题:a)标准trieTree节点采用数组存储指针,如果是英文a-z用26长度的数组表示,但是中文不能用这种存储方式,节点数组长度等于中文字数。(内存撑不住!)b)如何节点内部查询?采用数组进
阅读全文
随笔分类 - 3-信息检索理论
摘要:在数据分析和数据挖掘的过程中,我们经常需要知道个体间差异的大小,进而评价个体的相似性和类别。最常见的是数据分析中的相关分析,数据挖掘中的分类和聚类算法,如K最近邻(KNN)和K均值(K-Means)。当然衡量个体差异的方法有很多,最近查阅了相关的资料,这里整理罗列下。 为了方便下面的解释和举例,先设定我们要比较X个体和Y个体间的差异,它们都包含了N个维的特征,即X=(x1, x2, x3, … xn),Y=(y1, y2, y3, … yn)。下面来看看主要可以用哪些方法来衡量两者的差异,主要分为距离度量和相似度度量。距离度量 距离度量(Distance)用于衡量个体在空间上存在的距离,距..
阅读全文
摘要:一)单词-文档矩阵通常检索的场景是:给定几个关键词,找出包含关键词的文档。怎么快速找到包含某个关键词的文档就成为搜索的关键。这里我们借助单词-文档矩阵模型,通过这个模型我们可以很方便知道某篇文档包含哪些单词,某个单词被哪些文档所包含。搜索引擎的索引其实就是实现单词-文档矩阵的具体数据结构,具体可以包括:倒排索引、签名文件、后缀树等。常见的当然就是倒排索引了,lucene也是基于倒排索引实现的。二)倒排索引1.倒排索引的组成倒排索引通常有词汇表和记录表组成。词汇表:文档集合中所包含的不同单词的集合。记录表:对于词汇表中的每一个单词,包含这个单词的文档编号构成的一个列表(有可能还会保存些其他信息,
阅读全文