互联网信息检索系统的研究与实现本科毕业论文(编辑修改稿)内容摘要:

技术显示分类结构,用户可以只浏览自己感兴趣的类别。 d)进行站点类聚或内容类聚,减少信息的总量。 e)让用户对返回结果进行选择,进行二次查询是一种非常有效的手段。 (4) 实现交叉语言的检索 搜索引擎对多种语言的数据库进行交叉语言信息检索,返回能够回 5 答用户问题的所有语言的文档。 若配上机器翻译,就可使返回结果以用户熟悉的语言显示。 虽然该技术日前还处于初步研究阶段,其难点在于语言之间在表达方式和语义对应上的不确定性,但也是一种发展方向。 (5) 提供对自然语言检索的支持 为了提高搜索引擎对用户检索提问的理解,就必须有一个好的检索提问语言,为了克服关键词检索和目录查询的缺点,现在已经出现了自然语言智能答询。 如 Google 有专用于回答问题的 Google Answer,微软有 AnswerBot 等。 用户可以输入简单的疑问句,比如“ how can kill virus of puter?”。 搜索引擎在对提问进行结构和内容 的分析之后,或直接给出提问的答案,或引导用户从几个可选择的问题中进行再选择。 自然语言的优势在于,一是使网络交流更加人性化,二是使查询变得更加方便、直接、有效。 就以上面的例子来讲,如果用关键词查询,多半人会用“ virus”这个词来检索,结果中必然会包括各类病毒的介绍、病毒是怎样产生的等等许多无效信息,而用“ how can kill virus of puter?”,搜索引擎会将怎样杀病毒的信息提供给用户,提高了检索效率。 (6) 多媒体数据搜索 网络资源丰富多彩,具有很多类型的信息,用户需要的信息也不完全是网页的形式,从用户的角度来看,必然要求搜索引擎能够覆盖更多的网络资源。 现在有很多搜索引擎已经提供了网页、新闻、图片、音乐等资源搜索,当然范围还可以更广,再如可以搜索视频、音频等。 (7) 专业化搜索 主题搜索引擎是为了专门收录某一行业、某一学科、某一主题和某一地区的信息而建立,非常实用,如有商务查询、企业查询、人名查询、电子邮件地址查询和招聘信息查询等。 (8) 桌面型搜索 用户不用打开浏览器,而是直接通过只要通过它就能完全实现搜索过程,更甚者它可以同时搜索本地、局域网和互联网上的信息。 它完全越过传统的 搜索模式,越过浏览器,真正实现让搜索无处不在。 搜索引擎脱离浏览器是一个发展趋势, Google、 Yahoo 等己经推出桌面型搜索软件,而微软在 2020 年也同样有了自己的桌面搜索软件。 此外还有一些其它值得注意的技术发展,如元搜索引擎,移动代理和 XML 技术,语音检索技术等。 随着技术的不断发展进步,搜索引擎 6 将会在信息检索中发挥更大的作用。 研究目的和研究内容 互联网的快速发展,对搜索引擎提出了更高的要求。 巨大的使用需求推动了搜索引擎技术的发展,各种新技术纷纷应用到搜索引擎中。 搜索引擎是这些技术的基础和平 台,它决定着这些技术的开发和应用。 但一般的研究机构不可能拥有和商业搜索引擎一样规模的计算机资源,因此需要一种对资源要求低、体系开放的搜索引擎来作为各种新技术的平台。 本文在深入分析网页获取、索引生成、级别系统、索引检索等搜索引擎核心技术的基础上,设计并实现互联网信息检索系统。 该系统在微软 .NET 平台进行开发,使用 C进行代码的编写。 采用多线程进行网页数据采集并写入数据库;通过使用 、中文分词、无用词汇删除、词典等技术建立索引数据; Cache 技术的使用提高了用户访问效率 .开放的体系结构使搜索 引擎成为相关技术可靠和灵活的平台。 文章内容安排 本文主要研究了搜索引擎实现中所涉及到的相关技术,最终实现一个基于 .NET 平台下的互联网信息检索系统。 具体内容安排如下: 第二章:介绍了搜索引擎总体结构,各组成部分实现功能及关键技术,相关算法,并对 Google 的体系结构进行分析; 第三章:剖析开源的全文检索引擎 ,分析其组织架构,索引数据格式等,对源码分析,二次开发应用; 第四章:设计实现一个基于微软 .NET 平台的互联网信息检索系统,借助 相关技术进行实现,在本文 论述的理论思想基础上,最终实现设计目标; 第五章:介绍互联网信息检索系统的具体实现,核心技术的解决方法。 第六章:对互联网信息检索系统进行测试,总结整个论文的完成情况,对研究工作进行总结和展望。 7 2 搜索引擎技术 搜索引擎体系结构 典型的搜索引擎结构一般由以下三个模块组成:信息采集模块(Crawler),索引模块 (Indexer),查询模块 (Searcher)。 搜索引擎典型体系结构如图 21 所示。 图 21 搜索引擎体系结构图 (1) Crawler 从 Web 中采集网页数据; (2) Indexer 对 Crawler 采集数据进行分析生成索引; (3) Searcher 接受查询请求,通过一定的检索算法获取查询结果,排序后返回给用户。 Crawler 日志分析器 控制器 原始数据库 索引数据库 Indexer Searcher 用户接口 用户 日志数据库 8 Crawler Crawler 负责页面信息的采集,它的工作实现基于以下设想:既然所有网页都可能链接到其他网站,那么从一个网站开始,跟踪所有网页上的所有链接,就有可能检索整个互联网。 Crawler 工作原理如图 22 所示。 图 Crawler 工作原理图 Crawler 首先从待访问 URL 队列中获取 URL,根据 URL 从 Web 中抓取网页数据;然后对网页进行分析,从中提取出所有的 URL 链接,并把它们加入到待访问 URL 队列中,同时将已访问 URL 移至已访问URL 队列中。 不断重复上面的过程,所有采集到的网页保存到页面存储中进行下一步处理。 Crawler 利用 HTTP 协议读取 Web 页面并沿着 HTML 文档中的超链接自动获取 WWW 资源。 可以将 WWW 作为一个有向图来处理,将每一个页面看作图中的一个节点,将页面中的超链接看做图中的有向边。 因此可以采取有向图的遍历算 法 (深度优先或者广度优先算法 )来对WWW 进行遍历。 由于 Web 信息具有的分布性,非结构化,不稳定性等特点, Crawler存在以下的关键问题: (1) 多线程抓取时的任务调度问题 搜索引擎会产生多个 Crawler 同时对网页进行抓取,这里需要一个 WWW 网页存储 初始化 抓取网页 获取 URL 提取 URL 待访问的 URL 已访问的 URL 9 好的分布式算法,使得既不重复抓取网页,又不漏掉重要的站点。 (2) 网页评估 在抓取网页时存在一定的取舍,一般只会抓 20%左右的网页。 评估算法中典型的油 Google 发明的 PgaeRank。 (3) 更新策略 每经过一段时间, Crawler 对以抓取的数据经行更新,保证索引 网页是最新的。 (4) 压缩算法 网页抓取后,通过一定的压缩机制保存到本地,从而减少存储容量,同时也减少各服务器之间的网络通信开销。 Indexer 搜索引擎在完成用户查询请求时,并不是即时检索 互联网 上的数据,搜索的数据实际是预先采集的网页数据。 要实现对采集页面的快速访问,必须通过某种索引机制来完成。 页面数据可以用一系列关键词来表示,从检索目的来说,这些关键词描述了页面的内容。 只要找到页面,便可以找到其中的关键词。 反过来,如果按关键词建立到页面的索引,便可以根据关键词快速地检索到相关页面。 具 体地,关键词被存储在索引文件 (index file)中,对于每个关键词,都有一个指针链表,该表中的每一个指针指向与关键词相关的某个页面,所有指针链表构成置入文件 (posting file)。 这种倒排文件的方法几乎被当前所有的商用 IR 系统所采用。 Indexer 负责对 Crawler 采集的数据生成索引数据,基本结构如图 23所示。 图 23 Indexer 索引数据结构图 Indexer 首先从页面存储器中获取页面数据,对其进行分析,通过词典识别网页中的词, 通过停用词 (stop words)表删除其中的停用词,生页面数据 服 务 器 中间数据 索引数据 10 成检索词序列,并最后生成索引数据。 Indexer 中存在的问题: (1) 索引存储 一般来讲,数据量和索引量的比例接近 1:1。 索引的存储一般采用分布式策略,检索的数据分布在不同的服务器上。 Google 存储索引的服务器大概有 1000 多台。 (2) 索引更新 页面数据更新时,索引数据必须相应的更新。 更新策略一般采用增量索引方式。 (3) 索引压缩 索引也存在数据压缩的问题。 索引压缩是通过对具体索引格式的研究实现压缩。 (4) 网页相似性支持 索引的结构还必 须为网页相似性分析提供支持。 (5) 多语言,多格式支持 网页数据具有多种编码格式,通过 Unicode,索引支持多种编码查询。 同时索引还必须有对 Word, Excel 等文件格式进行分析的功能。 Searcher Searcher 是直接与用户进行交互的模块,在接口上有多种实现方式,常见的主要是 Web 方式,另外还可以通过无线接入方式 (如手机 )进行查询。 Searcher 基本结构如图 24 所示。 图 24 Searcher 基本结构图 Searcher 通过某种接口方式,接收用户查询,对查询进行分词Searcher 索引数据 页面数据 用户接口 11 (stemming)处理,获取查询关键字。 通过 Indexer 获取与查询关键字匹配的网页数据,经过排序后返回给用户。 Searcher 中存在的问题: (1) 检索结果的排序 由于搜索引擎返回结果非常多,检索结果是否按用户预期的顺序排列是评价搜索引擎的重要指标之一。 一些新的尝试,比如对用户偏好的分析技术都可以运用到这里,对不同的用户采用不同的排序策略。 (2) 排序结果排重 排重可以提高结果数据的质量。 检索结果的数量给排重带来资源上的开销及速度上的影响。 搜索引 擎需要在其中作出权衡。 (3) 检索结果的相似性分析 主要用在类似网页功能中,需要在索引结构中提供支持。 (4) 检索的速度 主要依赖索引结构的设计。 同时在体系结构上还有很多技术可以用来提升速度。 如: Cache,负载均衡等。 搜索引擎的性能指标 我们可以将 Web 信息的搜索看作一个信息检索问题,即在由 web网页组成的文档库中检索出与用户查询相关的文档。 所以我们可以用衡量传统信息检索系统的性能参数一召回率 (recall)和精度 (pricision)衡量一个搜索引擎的性能。 召回率是检索出的相关文档数和 文档库中所有的相关文档数的比率,衡量的是检索系统 (搜索引擎 )的查全率;精度度是检索出的相关文档数与检索出的文档总数的比率,衡量的是检索系统 (搜索引擎 )的查准率。 对于一个检索系统来讲,召回率和精度不可能两全其美,召回率高时,精度低,精度高时,召回率低。 对于搜索引擎系统来讲,因为没有一个搜索引擎系统能够搜集到所有的 Web 网页,所以召回率很难计算。 目前的搜索引擎系统都非常关心精度。 影响一个搜索引擎系统性能和精度有很多因素,最主要的是信息检索模型,包括文档和查询的表示方法、评价文档和用户查询相关性的匹配策略、查询 结果的排序方法和用户进行相关度反馈的机制。 12 提高搜索引擎精度的关键是研究最优的页面优先度算法,提供具有较高用户相关度的网页页面优先度排序。 研究搜索引擎的页面优先度算法,需要从客观和主观两方面进行研究。 客观上,从网页页面本身的信息和链接情况分析,提高信息量大、链接度高的网页页面的优先度排序。 主观上,从互联网用户使用搜索引擎的行为模式分析,提高用户点击率高和浏览时间长的网页页面的优先度排序。 中文分词算法 众所周知,英文是以词为单位的,词和词之间是靠空格隔开,而中文是以字为单位,句子中所有的字连起来才 能描述一个意思。 例如,英文句子“ I am a student” ,用中文则为:“我是一个学生”。 计算机可以很简单通过空格知道 student 是一个单词,但是不能很容易明白“学”、“生”两个字合起来才表示一个词。 把中文的汉字序列切分成有意义的词,就是中文分词,有些人也称为切词。 基于字符串匹配的分词方法 这种方法又叫做机械分词方法,它是按照一定的策略将待分析的汉字串与一个“充分大的”机器词典中的词条进行匹配,若在词典中找到某个字符串,则匹配成功 (识别出一个词 )。 按照扫描方向的不同,串匹配分词方法可以 分为正向匹配和逆向匹配;按照不同长度优先匹配的情况,可以分为最大 (最长 )匹配和最小 (最短 )匹配;按照是否与词性标注过程相结合,又可以分为单纯分词方法和分词与标注相结合的一体化方法。 常用的几种机械分词方法如下: (1) 正向最大匹配法 (由左到右的方向 ) 首先将待拆分的字符串从左向右进行分词,然后将分词与机器字典中的词条进行匹配,若在词典中找到某个字符串,则匹配成功。 实现流程如图 25 所示。 13。
阅读剩余 0%
本站所有文章资讯、展示的图片素材等内容均为注册用户上传(部分报媒/平媒内容转载自网络合作媒体),仅供学习参考。 用户通过本站上传、发布的任何内容的知识产权归属用户或原始著作权人所有。如有侵犯您的版权,请联系我们反馈本站将在三个工作日内改正。