随笔分类 - 搜索引擎
摘要:1、IKAnalyzerIKAnalyzer是一个开源的,基于java语言开发的轻量级的中文分词工具包。从2006年12月推出1.0版开始,IKAnalyzer已经推出 了3个大版本。最初,它是以开源项目Luence为应用主体的,结合词典分词和文法分析算法的中文分词组件。新版本的IKAnalyzer...
阅读全文
摘要:布隆过滤器 (Bloom Filter)是由Burton Howard Bloom于1970年提出,它是一种space efficient的概率型数据结构,用于判断一个元素是否在集合中。在垃圾邮件过滤的黑白名单方法、爬虫(Crawler)的网址判重模块中等等经常被用到。哈希表也能用于判断元素是否在集...
阅读全文
摘要:信息指纹:通过提取一个信息的特征,通常是一组词或者一组词+权重,然后根据这组词调用特别的算法例如MD5算法,将之转化为一组代码,这组代码就是标识这段信息的指纹;在抓取阶段,蜘蛛程序为了避免重复抓取,会建立起一张hash表,将抓取的链接存储,我们先来假定直接存储网址,互联网上有5000亿个网页,假定要...
阅读全文
摘要:推荐算法1. 基于内容的推荐基于内容的信息推荐方法的理论依据主要来自于信息检索和信息过滤,所谓的基于内容的推荐方法就是根据用户过去的浏览记录来向用户推荐用户没有接触过的推荐项。主要是从两个方法来描述基于内容的推荐方法:启发式的方法和基于模型的方法。启发式的方法就是用户凭借经验来定义相关的计算公式,然后再根据公式的计算结果和实际的结果进行验证,然后再不断修改公式以达到最终目的。而对于模型的方法就是根据以往的数据作为数据集,然后根据这个数据集来学习出一个模型。一般的推荐系统中运用到的启发式的方法就是使用tf-idf的方法来计算,跟还有tf-idf的方法计算出这个文档中出现权重比较高的关键字作为描述
阅读全文
摘要:转载:http://blog.csdn.net/hguisu/article/details/8013489HITS算法是链接分析中非常基础且重要的算法,目前已被Teoma搜索引擎(www.teoma.com)作为链接分析算法在实际中使用。Hub页面(枢纽页面)和Authority页面(权威页面)是HITS算法最基本的两个定义。所谓“Authority”页面,是指与某个领域或者某个话题相关的高质量网页,比如搜索引擎领域,Google和百度首页即该领域的高质量网页,比如视频领域,优酷和土豆首页即该领域的高质量网页。所谓“Hub”页面,指的是包含了很多指向高质量“Authority”页面链接的网页
阅读全文
摘要:参考:http://blog.codinglabs.org/articles/intro-to-pagerank.html当然,实际上现在的搜索引擎都是有分词机制的,例如如果以“张洋的博客”为关键词,搜索引擎会自动将其分解为“张洋 的 博客”三个词,而“的”作为停止词(Stop Word)会被过滤掉...
阅读全文
摘要:第一步,计算词频。考虑到文章有长短之分,为了便于不同文章的比较,进行"词频"标准化。或者第二步,计算逆文档频率。这时,需要一个语料库(corpus),用来模拟语言的使用环境。如果一个词越常见,那么分母就越大,逆文档频率就越小越接近0。分母之所以要加1,是为了避免分母为0(即所有文档都不包含该词)。log表示对得到的值取对数。第三步,计算TF-IDF。可以看到,TF-IDF与一个词在文档中的出现次数成正比,与该词在整个语言中的出现次数成反比。所以,自动提取关键词的算法就很清楚了,就是计算出文档的每个词的TF-IDF值,然后按降序排列,取排在最前面的几个词。计算文章相似度算法:
阅读全文
摘要:1. 相关性:主题相关和用户相关2.相关性是二元相关还是多元相关信息检索模型早期信息检索模型是布尔模型和向量空间模型,现在是概率模型;布尔检索通过在检索中加入AND、OR、NOT,临近运算操作符和通配符也常用于布尔查询中。该应用主要是论文查询,缺点是主要依赖与用户的查询行为。没有复杂的排序过程。向量空间模型,这个模型简单直观、实现的框架便于进行词项额加权、排序和相关反馈工作。Di=(di1,di2.....din).期中di表示第j个词项的权值,一个包含n个文档的数据集词项的权值是通过简单的计算词项在文档中出现的次数来获得。基于这种标识,文档可以通过计算标识文档和查询之间的距离来排序、使用相似
阅读全文
摘要:///全角空格为12288,半角空格为32///其他字符半角(33-126)与全角(65281-65374)的对应关系是:均相差65248/// A 什么是全角和半角?(1)全角--指一个字符占用两个标准字符位置。汉字字符和规定了全角的英文字符及国标GB2312-80中的图形符号和特殊字符都是全角字符。一般的系统命令是不用全角字符的,只是在作文字处理时才会使用全角字符。(2)半角--指一字符占用一个标准的字符位置。通常的英文字母、数字键、符号键都是半角的,半角的显示内码都是一个字节。在系统内部,以上三种字符是作为基本代码处理的,所以用户输入命令和参数时一般都使用半角。B 全角与半角各在什么..
阅读全文
摘要:转载:http://www.kankanews.com/ICkengine/archives/4944.shtml这里面要注意一下,IK本身有一个文件叫IKAnalyzer.cfg.xml这个文件可以自己配置词典,词典有两种分别是ext_dict及ext_stopwords,其中ext_dict主要定义了一些关键字,这些关键字不会被分词分开,ext_stopwords主要配置停止词,什么是停止词呢?比如“的”,“得”,“我”这些没有具体意义但是又出现特别多的词就不应该作为关键字词出现,所以在分词的时候要把这些词过滤掉首先Dictionary类会加载所有词典,成map结果,以isEnd()标志结
阅读全文
摘要:1.确定搜索的内容2.网络信息爬去 2.1 抓取网页(网络浏览器和网络爬虫) 2.2 多线程,从一个种子集合开始 2.3 robots.txt允许访问的文件,礼貌策略,访问时间限制 2.4 时新性,评估每一个页面的变化比率 2.5 垂直搜索,面向主题的信息采集,主题爬虫,判断一个网页和某个主题相关, 2.6 深层网络,(私人站点,表单结果,脚本页面(比较复杂,需要模拟js运行)) 2.7 网站地图(robots.txt含有一个对网站地图的引用,可以告诉爬虫爬取网页的相关信息,例如时薪,重要,主题 2.8 分布式网络爬虫,使用多个URL队列,使用散列函数,将URL分配给多个信息采...
阅读全文
摘要:转载:http://www.yshjava.cn/post/415.html现在有越来越多的人热衷于做网络爬虫(网络蜘蛛),也有越来越多的地方需要网络爬虫,比如搜索引擎、资讯采集、舆情监测等等,诸如此类。网络爬虫涉及到的 技术(算法/策略)广而复杂,如网页获取、网页跟踪、网页分析、网页搜索、网页评级和结构/非结构化数据抽取以及后期更细粒度的数据挖掘等方方面面,对于 新手来说,不是一朝一夕便能完全掌握且熟练应用的,对于作者来说,更无法在一篇文章内就将其说清楚。因此在本篇文章中,我们仅将视线聚焦在网络爬虫的最基 础技术——网页抓取方面。现在有越来越多的人热衷于做 网络爬虫(网络蜘蛛),也有越来越多
阅读全文
摘要:转载:http://hi.baidu.com/lszhuhaichao分词原理建立索引和查询的过程中,都是以基本的语素项为单位的。基本的语素项就是通过分词得到。这个过程决定了索引单元金额最终的匹配过程。分词在文本索引的建立过程和用户提交检索过程中都存在。利用相同的分词器,把短语或者句子切分成相同的结果,才能保证检索过程顺利进行。1、英文分词的原理基本的处理流程是:输入文本、词汇分割、词汇过滤(去除停留词)、词干提取(形态还原)、大写转为小写、结果输出。2、中文分词原理中文分词比较复杂,并没有英文分词那么简单。这主要是因为中文的词与词之间并不像英文中那样用空格来隔开。主要的方法有三种:基于词典匹
阅读全文