CoreSeek
摘要:【CoreSeek】 CoreSeek有两个核心模块Indexer和Search。 Indexer:负责从MySQL拉取数据源,把数据源分词,建立索引。 Search:搜索模块。 CoreSeek工作流程如下: 1)Indexer模块从MySQL中拉取数据。 2)Indexer模块用经过中文分词后的
阅读全文
SearchEngine Note
摘要:【SearchEngine Note】 1、查全率。 2、查准率。 3、查全率与查准率的关系。 4、四大系统。 5、权威性网页反向链接多。网页的平均出席为25.7,即平均每一个网页含有25.7个指向其它网页的链接。 6、链接欢迎度。反射链接。 7、链接重要度。.com、斜线(slash)。 8、链接
阅读全文
中文自动分词算法
摘要:【中文自动分词算法】 当在搜索引擎中搜索“软件使用技巧”时,搜索引擎通常会帮你找出同时含有”软件“、”使用“、”技巧“的网页。一个好的新闻网站通常会有“相关文件推荐”的功能,这也要依赖于自动分词的算法。要想让计算机准确切分并不容易,例如某网站报道北京大学生,而相关文章里列出的全是北京大学的新闻。这...
阅读全文
index structure
摘要:1. wordlist 0) 0, 1byte 1) token-id(delta), 8byte 2) doclist-offset(delta), 8byte 3) doc_count, 4byte 4) hit_count, 4byte 1)-4)为一组数据,重复出现,每1024(wordlist_checkpoint)组出现一个checkpoint checkpoint: 5) 0, 8byte : indicate checkpoint 6) doclist中对应数据长度, 8byte last: WordlistC...
阅读全文
語法制导翻译器
摘要:[文法定义] 用于描述程序设计语言語法的表示方法称为"文法"。 [词法单元和终结符号] [語法分析的任务]
阅读全文
编译器
摘要:[编译器] 编译器分为2个部分: 分析部分(analysis)和综合部分(synthesis). [词法分析] Token的第一个分量指明词素类型, 第二个分量指明符号中对应的条目(可以是ID)内含本Token相关信。假设一个源程序包含如下的赋值語句, 那么词法分析流程将会是如下. ...
阅读全文
句法处理
摘要:[英語語法概要] 句法处理的目标是判定句子的各种结构性成分, 比如怎样将一个句子分解成短语, 将短语再分解为子短语, 直到分解到词为止, 从而得到句子的实际结构。这些结构性关系对判断. [語法及其分析] 一个句子的語法结构如何计算? 为了解决这个问题, 必须考虑2个问题, 一是语言的語法, 二是句法分析技术。接下来要討論語法的定义方法, 以及句法分析技术。当构造句子的树结构时, 你必须知道在英語中哪些结构是合法的。产生式规则集合就是要表示哪些树结构是合法的。下面是一组产生式规则: 根据产生式规则, 我们以实现一个简单的句子成器:从开符S开始, 随机地选取一些产生式规则进行应用,...
阅读全文
NLP初步
摘要:[NLP初步] NLP是Natural Lanuage Process的缩写。搜索引擎可以通过关词匹配和完成很多的任务, 比如话题搜索(搜索包含律师, 法院, 控告等词的文档), 但是搜索引擎无法理解"给我找出所有有关在1986年到1990年之间尝试过但最终失败且金额超过100W美金的项目报告文档"这样的查询。为了完成这样的查询, 必须通过NLP技术从文档中提取出有效的信息。另外, 有些机器翻译基于模式匹配, 将一个语言的单词序列关联到另一个语言的单词序列, 要完成翻译, 就要找到与输入語句匹配的最佳模式集合。某些情况下, 这种技术可以产生合理的結果, 有时也会产生错误。另
阅读全文
参数化索引及域索引
摘要:【参数化索引及域索引】 考虑查询“ 寻找由WilliamShakespeare于1601年撰写、其中包含短语alaspoorYorick的文 档” 。和通常一样,查询的处理过程需要进行倒排记录表的合并操作,但是不同的是,这里在处 理上述查询时还会涉及到参数化索引(parametric index)上的合并操作。 (每每一个可搜索的参数分别制作一份倒排索引) 域(zone)和字段很相似,只是它的内容可以是任意的自由文本。字段通常的取值可能性 相对较小,而域可以由任意的、数目无限制的文本构成。 参数化索引及域索引的意思是把参数、域直接加入词典,如下: 但更普遍的方法是把信息记录在文档属...
阅读全文
索引压缩
摘要:【索引压缩】 信息检索系统中的两个主要数据结构:词典及倒排索引。下面将介绍对这两个数据结构的各种压缩技术,这些技术对于构建高效的 IR 系统非常关键。进行压缩的一个优点显而易见:它能够节省磁盘空间。要达到 1∶4 的压缩比是非常容易的,也就是说可以降低 75%的索引存储开销。 索引压缩还有两个隐含的优点。第一是能增加高速缓存(caching)技术的利用率。在搜索 系统中,词典中某些条目及其索引往往比其他条目及其索引的使用更频繁。例如,如果将一个频 繁使用的查询词项 t 的倒排记录表放到高速缓存中,那么对仅由 t 构成的查询进行应答所需要的 计算完全可以在内存中完成。如果采用压缩技术,那么高..
阅读全文
拼写校正
摘要:[拼写校正] 对于大多数拼写校正 (spelling correction)算法而言,存在以下两个基本的原则。 (1) 对于一个拼写错误的查询,在其可能的正确拼写中,选择距离“最近” 的一个。这就要求在查询之间有距离或者邻近度的概念。 (2) 当两个正确拼写查询邻近度相等(或相近)时,选择更常见的那个。例如,grunt 和 grant都是查询 grnt 的可能的正确拼写。算法将会从它们之中选择更常见的那个作为最后的拼写结果。最简单的情况下, "更常见”可以通过统计各词项在文档集中出现的次数来获得。因此,如果grunt 在文档集中比 grant 出现得更多,则选择 grunt 作为校正
阅读全文
词典(词汇表)
摘要:[词典搜索的数据结构] 本篇描述的倒排索引对普通倒排索引中的词典部分再进行了一层索引,通过本章的倒排索引结构可以找到词项,然后通过普通倒排索引最终定位到文档。词汇表的查找操作往往采用一种称为词典(dictionary)的经典数据结构,并且主要有两大类解决方案:哈希表方式和搜索树方式。在数据结构相关的文献中,词汇表中的每个条目(这里是词项)常常称为关键字或键(key)。 哈希表方式已在某些搜索引擎中用于词典查找。这种方式下,每个词项通过哈希函数映射成一个整数,映射函数的目标空间需要足够大,以减少哈希结果冲突的可能性。当然,这种方式很难避免冲突的发生,此时需要精心维护一个辅助结构来解决冲突问题..
阅读全文
主题敏感词PageRank
摘要:【主题敏感词PageRank】 PageRank忽略了主题相关性,导致结果的相关性和主题性降低,对于不同的用户,甚至有很大的差别。例如,当搜索“苹果”时,一个数码爱好者可能是想要看 iphone 的信息,一个果农可能是想看苹果的价格走势和种植技巧,而一个小朋友可能在找苹果的简笔画。理想情况下,应该为每个用户维护一套专用向量,但面对海量用户这种方法显然不可行。所以搜索引擎一般会选择一种称为主题敏感PageRank(Topic-Sensitive PageRank)的折中方案。主题敏感PageRank的做法是预定义几个话题类别,例如体育、娱乐、科技等等,为每个话题单独维护一个向量,然后想办法关联.
阅读全文
PageRank
摘要:【PageRank】 PageRank,即网页排名,又称网页级别、Google左侧排名或佩奇排名。 在PageRank提出之前,已经有研究者提出利用网页的入链数量来进行链接分析计算,这种入链方法假设一个网页的入链越多,则该网页越重要。早期的很多搜索引擎也采纳了入链数量作为链接分析方法,对于搜索引擎效果提升也有较明显的效果。 PageRank除了考虑到入链数量的影响,还参考了网页质量因素,两者相结合获得了更好的网页重要性评价标准。对于某个互联网网页A来说,该网页PageRank的计算基于以下两个基本假设:数量假设:在Web图模型中,如果一个页面节点接收到的其他网页指向的入链数量越多,那么这..
阅读全文
Website蝴蝶结构
摘要:【Website蝴蝶结构】 网页的其正向链接连结在一起表现为一种蝴蝶结结构。 1、蝴蝶结中部(SCC, Strongly Connected Componnet) 这种网页彼此相连。 2、蝴蝶结左部(IN) 导航页居多,通过这类网页,可以正向链接到SCC。 3、蝴蝶结右部(OUT) 权威性网页,因为大多数SCC都链接向了这些站点。 4、蝴蝶结的须脚(Tendrils) 无论采用何种方法都只能遍历有限的网页。 所以,scrawler尽量选择IN部分的网页,另外可以看出,正向链接远大于反向链接的网页,就是权威网页。【Website直径】 从网页A链接到网页...
阅读全文
Information Retrieval II
摘要:【Information Retrieval II】 搜索引擎分类: 1、目录式搜索引擎。 2、全文搜索引擎。 3、元搜索引擎(Meta-Search Engine)。 搜索引擎的4个阶段:下载(crawl) -> 分析(segment & pagerank)-> 索引(indexing)-> 查询(retrieval)。 crawler,也就是传说中的爬虫,或者蜘蛛。 下载、分析、索引被称为“离线部分”(offline part),也叫做在线系统;查询部分被称为“在线部分“(online part),也叫做离线系统。在线系统需要毫秒级的访问速度,而离线系统无时间..
阅读全文
BloomFilter
摘要:[BloomFilter] Hash函数可将一个元素映射成一个位数组中一个点,为了降低碰撞率可采用多个hash函数将元素映射成多个点。这样一来,只要看看几个位点是0或1 就可以判断某个元素是否存在于集合当中。这就是Bloom filter的基本思想,不仅可大大缩减内存空间,查找速度非常快。 参考:http://www.cnblogs.com/heaad/archive/2011/01/02/1924195.html
阅读全文
构建索引
摘要:【IR系统的基本性能】 1、访问内存数据比访问磁盘数据快得多,只需要几个时钟周期(大概 5 × 10−9 s)便可以访问内存中的一个字节,与此形成鲜明对照的是,从磁盘传输一个字节所需要的时间则长 得多(大概 2 × 10−8 s)。因此,我们会尽可能地把数据放在内存中,特别是那些访问频繁的数据。这种将频繁访问的磁盘数据放入内存的技术称为缓存技术(caching)。 2、进行磁盘读写时,磁头移到数据所在的磁道需要一段时间,该时间称为寻道时间,对典型的磁盘来说平均在 5 ms 左右。寻道期间并不进行数据的传输。于是,为使数据传输率最大,连续读取的数据块也应该在磁盘上连续存放。举
阅读全文
词条归一化
摘要:【词条归一化】 词条归一化(token normalization)就是将看起来不完全一致的多个词条归纳成一个等价类, 以便在它们之间进行匹配的过程。最常规的做法是隐式地建立等价类 2,每类可以用其中的 某个元素来命名。比如,在文档和查询中,都把词条anti-discriminatory 和 antidiscriminatory映射 成词项antidiscriminatory, 这样对两个词中的任一个进行搜索,都会返回包含其中任一词的文档。 一种建立等价类的方法是维护多个非归一化词条之间的关联关系。该方法可以进一步扩 展成同义词词表的手工构建,比如将car 和 automobile归成同义..
阅读全文
词条化
摘要:【总览】 构建倒排索引的几个主要步骤: (1) 收集待建索引的文档; (2) 对这些文档中的文本进行词条化; (3) 对第 2 步产生的词条进行语言学预处理,得到词项; (4) 根据词项对所有文档建立索引。 所谓词条化(tokenization)指的是将原始的字符流转换成一个个词条(token)的过程。而语言学预处理的主要目的在于建立词条的等价类,其中每个等价类对应一个词项,这些词项最终用于建立文档的索引。构建索引的过程主要在第 1 章和第 4 章介绍,本章暂不详述。本章最后讨论倒排记录【词条化】 定义好文档单位之后,词条化是将给定的字符序列拆分成一系列子序列的过程,其中每个...
阅读全文