当前位置:文档之家› 信息检索实验报告

信息检索实验报告

信息检索课程结业报告姓学信息检索与web搜索应用背景及概念信息检索(Information Retrieval)是指信息按一定的方式组织起来,并根据信息用户的需要找出有关的信息的过程和技术。

狭义的信息检索就是信息检索过程的后半部分,即从信息集合中找出所需要的信息的过程,也就是我们常说的信息查寻(Information Search 或Information Seek)。

信息检索起源于图书馆的参考咨询和文摘索引工作,从19世纪下半叶首先开始发展,至20世纪40年代,索引和检索成已为图书馆独立的工具和用户服务项目。

随着1946年世界上第一台电子计算机问世,计算机技术逐步走进信息检索领域,并与信息检索理论紧密结合起来;脱机批量情报检索系统、联机实时情报检索系统。

信息检索有广义和狭义的之分。

广义的信息检索全称为“信息存储与检索”,是指将信息按一定的方式组织和存储起来,并根据用户的需要找出有关信息的过程。

狭义的信息检索为“信息存储与检索”的后半部分,通常称为“信息查找”或“信息搜索”,是指从信息集合中找出用户所需要的有关信息的过程。

狭义的信息检索包括3个方面的含义:了解用户的信息需求、信息检索的技术或方法、满足信息用户的需求。

搜索引擎(Search Engine,简称SE)是实现如下功能的一个系统:收集、整理和组织信息并为用户提供查询服务。

面向WEB的SE是其中最典型的代表。

三大特点:事先下载,事先组织,实时检索。

垂直搜索引擎:垂直搜索引擎为2006年后逐步兴起的一类搜索引擎。

不同于通用的网页搜索引擎,垂直搜索专注于特定的搜索领域和搜索需求(例如:机票搜索、旅游搜索、生活搜索、小说搜索、视频搜索等等),在其特定的搜索领域有更好的用户体验。

相比通用搜索动辄数千台检索服务器,垂直搜索需要的硬件成本低、用户需求特定、查询的方式多样。

Web检索的历史:1989年,伯纳斯·李在日内瓦欧洲离子物理研究所(CERN)开发计算机远程控制时首次提出了Web概念,并在1990年圣诞节前推出了第一个浏览器。

接下来的几年中,他设计出HTTP、URL和HTML的规范,使网络能够为普通大众所应用。

Ted Nelson 在1965年提出了超文本的概念.超文本传输协议(HTTP,HyperText Transfer Protocol)是互联网上应用最为广泛的一种网络传输协议,超文本标注语言(HTML)。

1993, 早期的 web robots (spiders) 用于收集 URL: Wanderer、ALIWEB (Archie-Like Index of the WEB)、WWW Worm (indexed URL’s and titles for regex search)。

1994, Stanford 博士生 David Filo and Jerry Yang 开发手工划分主题层次的雅虎网站。

1994年初,WebCrawler是互联网上第一个支持搜索文件全部文字的全文搜索引擎,在它之前,用户只能通过URL和摘要搜索,摘要一般来自人工评论或程序自动取正文的前100个字。

Lycos(Carnegie Mellon University Center for Machine Translation Announces Lycos )是搜索引擎史上又一个重要的进步。

除了相关性排序外,Lycos还提供了前缀匹配和字符相近限制,Lycos第一个在搜索结果中使用了网页自动摘要,而最大的优势还是它远胜过其它搜索引擎的数据量。

DEC的AltaVista 是一个迟到者,1995年12月才登场亮相. AltaVista是第一个支持自然语言搜索的搜索引擎,AltaVista是第一个实现高级搜索语法的搜索引擎(如AND, OR, NOT等) 。

1995年博士生Larry Page开始学习搜索引擎设计,于1997年9月15日注册了的域名,1997年底,开始提供Demo。

1999年2月,Google完成了从Alpha版到Beta版的蜕变。

Google公司则把1998年9月27日认作自己的生日。

Google在Pagerank、动态摘要、网页快照、多文档格式支持、地图股票词典寻人等集成搜索、多语言支持、用户界面等功能上的革新,象Altavista一样,再一次永远改变了搜索引擎的定义。

主要的进步在于应用链接分析根据权威性对部分结果排序。

北大天网是国家“九五”重点科技攻关项目“中文编码和分布式中英文信息发现”的研究成果,由北大计算机系网络与分布式系统研究室开发,于1997年10月29日正式在CERNET上提供服务。

2000年1月,超链分析专利发明人、前Infoseek资深工程师李彦宏与好友徐勇(加州伯克利分校博士)在北京中关村创立了百度(Baidu)公司2001年8月发布搜索引擎Beta版(此前Baidu只为其它门户网站搜狐新浪Tom等提供搜索引擎)。

2001年10月22日正式发布Baidu搜索引擎。

Baidu虽然只提供中文搜索,但目前收录中文网页超过9000万,可能是最大的的中文数据库。

Web搜索引擎系统组成:Web数据采集系统网页预处理系统索引检索系统检索结果排序系统Web检索所在现阶段的挑战:数据的分布性:文档散落在数以百万计的不同服务器上,没有预先定义的拓扑结构相连。

不稳定的数据高比例:许多文档迅速地添加或删除 (e.g. dead links).大规模:网络数据量的指数增长,由此引发了一系列难以处理的规模问题。

无结构和冗余信息:每个HTML页面没有统一的结构, 许多网络数据是重复的,将近 30% 的重复网页.数据的质量: 许多内容没有经过编辑处理,数据可能是错误的,无效的。

错误来源有录入错误,语法错误,OCR错误等。

异构数据:多媒体数据(images, video, VRML), 语言,字符集等.Web检索的基本过程:网页爬行下来预处理:网页去重,正文提取,分词等建立索引接受用户请求,检索词串的处理,查询重构找到满足要求的列表根据连接和文本中的词进行排序输出信息采集:信息采集是指为出版的生产在信息资源方面做准备的工作,包括对信息的收集和处理。

它是选题策划的直接基础和重要依据。

信息采集工作最后一个步骤的延伸,成选题策划的开端。

信息采集系统:信息采集系统以网络信息挖掘引擎为基础构建而成,它可以在最短的时间内,帮您把最新的信息从不同的Internet站点上采集下来,并在进行分类和统一格式后,第一时间之内把信息及时发布到自己的站点上去。

从而提高信息及时性和节省或减少工作量。

网络爬虫,是一种自动获取网页内容的程序,是搜索引擎的重要组成部分,因此搜索引擎优化很大程度上就是针对爬虫而做出的优化。

倒排索引:倒排索引源于实际应用中需要根据属性的值来查找记录。

这种索引表中的每一项都包括一个属性值和具有该属性值的各记录的地址。

由于不是由记录来确定属性值,而是由属性值来确定记录的位置,因而称为倒排索引(inverted index)。

带有倒排索引的文件我们称为倒排索引文件,简称倒排文件(inverted file)。

倒排文件(倒排索引),索引对象是文档或者文档集合中的单词等,用来存储这些单词在一个文档或者一组文档中的存储位置,是对文档或者文档集合的一种最常用的索引机制。

建立倒排索引目的:对文档或文档集合建立索引,以加快检索速度倒排文档(或倒排索引)是一种最常用的索引机制倒排文档的索引对象是文档或文档集合中的单词等。

例如,有些书往往在最后提供的索引(单词—页码列表对),就可以看成是一种倒排索引倒排索引的组成:倒排文档一般由两部分组成:词汇表(vocabulary)和记录表(posting list)词汇表是文本或文本集合中所包含的所有不同单词的集合。

对于词汇表中的每一个单词,其在文本中出现的位置或者其出现的文本编号构成一个列表,所有这些列表的集合就称为记录表。

相关工具1ltp-Java版分词工具1.1文件_irlas.dll, _wsd.dll : 分词工具所需要的动态链接库,放在java工程的根目录下。

nlptools.jar : jar文件。

resource : 分词所需要的资源,需放在放在java工程的根目录下。

1.2 使用方法下面将列出在实验过程中可能使用到的类:1)edu.hit.irlab.nlp.splitsentences.SplitSentences将中文文本按照有分割意义的标点符号(如句号)分开,以句子的序列方式返回。

输入为中文文本,输出为中文句子的序列。

例如:SplitSentences sentenceSplit = new SplitSentences();List<String> sentences = sentenceSplit.getSentences(text);sentences是对text分句之后的句子集合。

2)edu.hit.irlab.nlp.irlas.IRLAS分词以及词性标注,使用方法如下:irlas = new IRLAS();irlas.loadResource(); //调用分词方法前必须先加载资源Vector<String> words = new Vector<String>(); //用来存储分词结果Vector<String> posTags = new Vector<String>(); //用来存储词性标注结果,标点符号的词性是“wp”。

irlas.wordSegment(sentence, words, posTags); //调用分词以及词性标注方法使用该文件可以将文件里的文本自动变成一个一个关键词,并且统计出此关键词出自哪个文档,建立哈希表进行存储,再存储在txt文件中。

2DownloadURL类edu.hit.irlab.util.web.DownloadURL类封装在nlptools中,包含一些常见的web操作,如下载网页、判断编码格式等。

请特别注意:Google的检索结果在本程序发送的FF的head的情况下,没有编码信息。

所以在爬Google的检索结果的时候请务必手动指定使用UTF-8编码。

表格 1 DownloadURL类的方法介绍下面是一个下载“”网页的例子://模拟IE8,以gb2312的编码格式下载“”的内容。

String content = DownloadURL.downURL(“”,“gb2312”, "IE8.0") ;正文提取算法:将网页源代码中的HTML格式信息删除,每行仅保留文本内容,即文本行。

接下来,正文内容块的抽取可以被看成一个优化问题,即计算行b和e,用于最大化低于行b和高于行e的非文本字符数,以及在行b和行e之间的行文本字符数,相应的就是最大化对应的目标函数,如公式所示。

相关主题