当前位置:文档之家› 个性化搜索引擎的设计与实现

个性化搜索引擎的设计与实现

个性化搜索引擎的设计与实现
个性化搜索引擎的设计与实现

I

本科毕业论文

中国·武汉 二○一○ 年 三 月

题 目 个性化搜索引擎的设计与实现 姓 名

学 号

专 业 计算机科学与技术 指导教师

职 称

讲师

华中农业大学毕业论文(设计)

华中农业大学本科毕业论文

个性化搜索引擎的设计与实现

Design and Implementation of Personal Search Engine

学生姓名:

学生学号:

学生专业:

指导教师:

华中农业大学理学院

二○一○年三月

II

华中农业大学毕业论文(设计)

目录

摘要............................................................................................................................................................................. IV 关键词 .......................................................................................................................................................................... IV ABSTRACT ..................................................................................................................................................................V KEY WORDS ...............................................................................................................................................................V 1 前言 .. (1)

1.1研究背景 (1)

1.2个性化搜索引擎的意义 (1)

1.3个性化搜索引擎主要的研究问题 (1)

2 搜索引擎概述 (2)

2.1个性化搜索引擎 (2)

2.2搜索引擎工作原理 (2)

2.3个性化搜索引擎系统模型 (3)

2.4未来搜索引擎的发展趋势 (4)

3 个性化搜索引擎相关技术 (5)

3.1信息抽取技术 (5)

3.2L UCENE检索工具包 (5)

3.3中文分词技术 (6)

3.4自动聚类技术 (6)

3.5用户行为分析 (7)

4 个性化搜索引擎的总体设计 (7)

4.1系统需求分析及总体设计 (7)

4.2系统功能及架构设计 (8)

4.3系统流程设计 (8)

4.4系统数据库设计 (12)

5 个性化搜索引擎的具体实现 (13)

5.1模块设计 (13)

5.2用户界面模块 (14)

5.3搜索模块 (16)

5.4搜索结果优化模块 (19)

5.5系统运行结果及示例 (21)

6 总结 (22)

参考文献: (22)

致谢 (23)

III

华中农业大学毕业论文(设计)个性化搜索引擎的设计与实现

摘要

随着Internet技术的迅速发展,网络提供给人们的信息量越来越大。搜索引擎作为人们在WWW 上查找、获取信息的重要手段之一,在各个领域都已得到了广泛的应用。为了给用户提供个性化的查询服务,个性化搜索引擎孕育而生。经过众多研究者的不懈努力,个性化搜索引擎技术已取得了一些进展。本文针对目前搜索引擎存在的不足以及当前用户个性化查询的要求,在深入研究搜索引擎及相关技术的基础上,设计了一个基于用户兴趣挖掘的个性化搜索引擎模型。本文的主要工作是:(1)个性化模型的研究与实现本文深入分析了个性化搜索的特点,研究了搜索引擎及相关技术,设计了一个基于用户兴趣挖掘的个性化模型。该模型从用户的历史访问页面中提取用户的兴趣特征,将兴趣相同的页面进行归类,并将用户兴趣按类管理;本文构建了用户兴趣树来动态地存储用户兴趣,并通过短期兴趣和长期兴趣相结合的方式来描述用户兴趣特征;为了及时地反映用户的兴趣变化,本文采用了基于遗忘机制的兴趣更新算法。

(2)个性化搜索引擎(除个性化模型外)其他模块的研究与实现本文还研究了与个性化搜索引擎相关的其他模块,包括:中文分词、查询扩展、网络蜘蛛、索引建立与更新以及结果排序。在综合考虑了技术的实现难度和用户个性化查询要求的基础上,本文给出了以上各模块的实现算法。

(3)通过实验证明了本文设计的个性化搜索引擎的有效性。实验内容包括两方面:个性化模型的建立和个性化的搜索。

关键词

个性化模型,用户兴趣挖掘,用户兴趣树

IV

华中农业大学毕业论文(设计)Design and Implementation of Personal Search Engine

Abstract

With the rapid development of Internet technology,the network can providepeople more and more information.Search engine has been widely used in manyfields,which is treated as a tool that people can get information on World Wide Web.In order to provide personalized search service for users,personalized search enginecomes forth.Because of many researchers contribution,people have made greatprogress in personalized searc h engine.This paper points out the shortage of currentsearch engine and user’s requirements of personalized search,does some research onsearch engine and its technology,and designs a personalized search engine model thatis based on user’s interests mining.The main tasks of the paper are as follows:

Firstly,this paper researches and implements the personal model.This paper analyzes the characters of personalized search,researches the searchengine and its technology,and designs a model that is based on user’s interests mining.The model gets user’s interests from the pages that he has visited before,classifies thepages according to the same interest,and manages the user’s interests according to theinterest types.As to the storage of user’s interests,this paper consults the ODP catalogstructure,establishes user interest tree to store the user’s interests,and uses the shortinterest and long interest to describe the user’s interest characters.In order to reflectuser’s interests changing in time,this paper updates u ser’s interests using thealgorithm based on forgetting mechanism.

Secondly,this paper researches and implements other modules of personalizedsearch engine besides the personal model.The modules include Chinese segmenting,search extending,network spider,index establishment and update and result ranking.This paper takes the implementing difficulty of related technology and user’srequirements of personalized search into account,and brings forward the algorithmso f the modules above.

At last,experiments are conducted to verity the efficacy of the personalizedsearch engine designed above.The contents of the experiment include two parts:the establishment of personal model and the personalized search.

Key words

personal model;user’s interests mining;userinterest tree。

V

华中农业大学毕业论文(设计)

1 前言

1.1 研究背景

随着internet 的迅速发展,如何在浩瀚的网络信息资源中查询自己想要的信息变得越来越重要。为此,出现了专门提供网络搜索服务的网站,比如Google、Baidu、Yahoo、搜狐、北大天网等。然而随着网络信息的更新与扩充,传统的单一搜索引擎存在着覆盖率有限,查准率低,用户相关性差的缺点,使得为解决上述不足的元搜索引擎开始成为研究的热点。

元搜索引擎是指在统一的用户接口与信息反馈下,通过调用多个独立的搜索引擎享有多个资源库为用户提供信息服务的系统。早期的元搜索引擎,虽然大大增加了传统搜索引擎的覆盖率,但在某些方面仍旧和传统的搜索引擎一样,对每个用户的检索要求都给出相同的检索结果,并没有考虑用户个性化的需求对检索予以重组、过滤。如何能够更有效、更准确地找到自己感兴趣的信息,滤除与自己的需求无关的信息,真正做到“各取所需”,成为基于Internet的网络信息检索的热点问题。随着用户行为分析、自动聚类、事例推理、互动学习等技术的引入,搜索引擎开始走向个性化、智能化、专业化。

1.2 个性化搜索引擎的意义

根据第24次中国互联网发展状况统计报告,截至2009年6月底,中国网民规模达到3.38亿人,搜索引擎的应用是用户获取信息的主要渠道之一,使用率达到73.2%(美国达到92%)[1],并有上升的趋势。

搜索引擎的发展经历了目录海量搜索、海量搜索、剔出垃圾网页、专业、定向、高准确性和匹配性等几个阶段,但搜索引擎的框架结构和基本技术并没有实质性的突破。而搜索引擎缺乏个性化的局限性却日益突出,具体表现在[2]:

(l)网络信息覆盖面广,形式各异,而传统搜索引擎对所有用户提供相同的界面和服务,并且检索的结果成千上万、良芳不齐,用户为找到真正感兴趣的信息,往往要耗费大量的时间和精力。

(2)人们由于年龄、性别、职业、爱好等不同,各自感兴趣的领域也随之不同,各自对词义的理解也不尽相同,不同的用户对同一检索请求得到的检索结果常常有不同的评价。

(3)用户在不同时期或阶段对同一检索请求,所得到的仍是完全相同的检索结果,对用户不具有自适应能力。

(4)用户使用搜索引擎时带有一定的目的性,但由于领域知识的不足和搜索引擎的查询接口的局限性而无法明确表达自己的搜索意图

1.3 个性化搜索引擎主要的研究问题

本课题通过学习用户满意度反馈信息,挖掘用户隐藏兴趣,开发并实现了一个基于用户反馈的个性化搜索引擎系统,并提出在此搜索引擎中引入自动聚类技术的改进方案,提高搜索效率。

本文的主要研究内容:

(l)搜索引擎源数据的获取

即如何获取独立搜索引擎返回的搜索结果。

(2)设计一套合理的学习用户反馈信息的方法

即通过学习用户反馈信息,把隐藏在用户操作之下的信息,如:用户的兴趣爱好,用户的搜索倾向等进行归纳总结,借助学习算法,生成用户兴趣模式。

(3)基于用户反馈的个性化搜索引擎系统的实现

即设计并实现一个基于用户反馈的个性化搜索引擎系统。此系统的最大特点是:引入评分制度获取用户反馈信息,学习用户反馈,挖掘用户兴趣,依据用户兴趣优化搜索结果,优先返回特定用户感兴趣的网页内容并向用户推荐其他用户的兴趣模式,使搜索结果“面向用户”,具有特定性和针对

1

华中农业大学毕业论文(设计)

性,提高检索效率。

(4)个性化搜索引擎系统中引入自动聚类即如何将学习用户反馈信息、信息检索与数据挖掘中的自动聚类技术相结合,通过对用户和搜索结果的聚类处理,使用户能更加快捷的找到所需网页。

2 搜索引擎概述

2.1 个性化搜索引擎

个性化搜索引擎指的是搜索引擎根据用户搜索的历史记录,来返回更适合这个用户的搜索结果。这些搜索历史记录包括用户所搜索的关键词,在搜索结果中的点击情况,在各个网站的访问情况,书签情况等。搜索引擎掌握了这些用户资料后进行分析,在用户搜索新的关键词时,能返回更有针对性的搜索结果,从而提高用户体验。而搜索引擎[3],它就是以一定的技术和策略在互联网中搜集、发现信息,并对信息进行理解、提取和处理,为用户提供Web搜索的服务.

搜索引擎有各种不同的分类方法。按照信息内容划分,搜索引擎可分为综合型搜索引擎、专业型搜索引擎和特殊型搜索引擎;按照搜索工具的数量划分,搜索引擎可分为独立搜索引擎、元搜索引擎和集成搜索引擎;按照信息的组织方式划分,搜索引擎可分为目录式搜索引擎、全文搜索引擎和混合型搜索引擎。

以下是按信息的组织方式划分的三类搜索引擎:

(l)目录式搜索引擎[5],或称按主题查询型搜索引擎,是将信息分门别类,按照传统的分类方式分为各级目录。它的特点是质量和匹配精度较高,不足之处是搜索范围较小,查全率较低。

(2)全文搜索引擎[5],或称按关键字查询型搜索引擎,对各网站的每个页面中的每个词进行搜索。它的特点是信息量很大,查全率较高。不足的是它提供的信息太多,反而降低了查准率。

(3)混合型搜索引擎[5]是针对全文和目录搜索引擎的缺点而设计的。使用户在分类目录中浏览,保证了一定的查准率,又可以使用户进行全文检索,查找特定资源。

2.2 搜索引擎工作原理

如图2.1所示,一个完整的搜索引擎系统一般由网络爬虫、索引器、检索器和用户接口四个部分组成,不同搜索引擎具体的模块可能会有不同,但都是建立在这四个基本模块的基础之上。

(l)网络爬虫[4](WebCrawler)

网络爬虫,又称网络机器人,它不停的从网络上下载文档并抽取出新的链接,循环的实现对万维网的遍历。它在一个完整的运行周期内(比如半个月可以下载超过千万的网页,并将这些文档保存在本地文本数据库,最后由索引器负责完成页面内容的全文索引。

(2)索引器(Indexer)

索引器对收集回来的网页进行分析,提取相关网页信息(包括网页所在uRL、编码类型、页面内容包含的关键词、关键词位置、生成时间、大小、与其它网页的链接关系等),根据一定的相关度算法进行大量复杂计算,得到每一个网页(针对页面内容)及超链中每一个关键词的相关度(或重要性),

2

华中农业大学毕业论文(设计)

然后用这些相关信息建立网页索引数据库。

(3)查询器[4](Seareher)

从使用者角度来看,查询算法是决定一个搜索引擎检索质量最重要的因素。搜索引擎的查询器就是利用索引数据库提供的各类基本数据库,如页面全文索引库、HTML标签库、超链接分析库、查询历史库等多个数据源,实现对用户输入关键字的准确、快速的匹配。

(4)用户接口[4](User)

用户接口提供一系列的查询选项以满足不同的查询要求。一般的搜索引擎系统都支持布尔表达式操作、搜索域名范围限制、查询网页的语种,甚至可以选择文档的类别。合理的设置查询选项可以大大的减少搜索结果中的无效内容,提高查询效率。

元搜索引擎[6]将现有的多个搜索引擎看成一个整体,为用户提供一个统一的查询界面,用户的查询请求由元搜索引擎根据知识库中的信息,转换为多个搜索引擎所能识别的格式,然后分别发送给调用的各独立搜索引擎,由这些搜索引擎完成实际的信息检索,最后元搜索引擎再把各搜索引擎返回的结果收集起来,进行比较分析,剔除冗余信息,以一定的格式返回给用户元搜索引擎是指在统一的用户查询接口与信息反馈形式下,共享多个搜索引擎的资源库为用户提供信息服务的系统。图2.2为元搜索引擎体系结构图[7]:

元搜索引擎系统各模块分别介绍如下:

(1)用户接口模块[7]该模块负责接收用户的查询请求并显示查询结果。

(2)调度模块[7] 其决定主要的搜索策略,根据用户的输入必须决定查询哪一个成员搜索引擎,以及按照不同成员搜索引擎的要求修改用户输入的查询请求。调度模块为元搜索引擎系统

(3)结果处理模块[7]元搜索引擎的结果处理模块从成员搜索引擎中获取网页结果,并根据返回网页的不同格式提取元搜索引擎需要的内容,并对结果进行去重、合并、输出处理等。

2.3 个性化搜索引擎系统模型

随着网络信息爆炸似的增长,人们通过搜索引擎检索到的信息不是太少,而是太多了,且大多数都是与查询请求无关的信息。传统搜索引擎及一般的元搜索引擎系统已经越来越不能满足人们的需求,因而个性化技术日益成为检索领域研究的热点问题。

个性化搜索引擎将个性化信息服务的概念引入到搜索引擎中,使其能够更好的适应于网络信息的发展。个性化搜索引擎的目的在于能够根据用户的背景、兴趣爱好、研究方向、检索目的等,向用户提供相应的需求信息。个性化Web元搜索引擎系统模型如图2.3[3]所示:

3

华中农业大学毕业论文(设计)

其中个性化搜索引擎中各模块功能如下:

(1)用户接口[3]

该模块为用户提供可视化的查询输入和结果输出界面。在查询输入界面中用户可输入一系列关键词、一系列布尔操作符;在输出界面中,搜索引擎将检索结果展现为一个线性的文档列表。

(2)用户描述文件库[3]

该库根据一定的用户兴趣模型,存放用户兴趣知识。好的用户兴趣模型不仅要求客观、全面表达用户兴趣知识,而且还要具备良好的后期兴趣评估可操作性。

(3)查询分析器[3]

根据用户兴趣库知识对用户查询请求进行概念、语义分析,并在此基础上对查询输入进行扩展形成新的更长、更准确的查询,这样可以帮助搜索引擎弄清用户确切所指。

(4)Web处理接口[3]

Web处理接口通过并行的方式调用多个搜索引擎,把所有的结果集中到一起。

(5)结果预处理[3]

对来自不同搜索引擎的结果进行整合,如剔除重复、统一格式、检验链接有效性和分类等。

(6)查询过滤器[3]

对返回的结果进行个性化处理,比如根据用户兴趣权值等重要性尺度重新进行相关度排序,并将结果提交给用户。此模块是信息过滤系统的核心部分。

2.4 未来搜索引擎的发展趋势

当前的万维网检索结果几乎都是以列表形式表现,查询质量良荞不齐、组织结构也不合理,但是由于该项技术高效、成熟的特点,在未来的一段时间内,这项技术还将在搜索领域占据绝对重要的位置。为了进一步改善检索质量,未来的搜索引擎应该在以下几方面有所突破[10]: .个性化

在输入方面,使用自然语言输入,更加方便用户的使用,更易于用户与搜索引擎的交互,更能贴近地表达用户的查询需求,从而有利于提高查询的精度。在返回结果方面,应该充分发挥预处理和搜索结果集成方面的能力,考虑人的性别、年龄、地域等方面的差别给出个性的搜索结果。

.智能化

一方面,元搜索引擎通过不断学习来掌握用户的喜好,通过对用户搜索习惯和兴趣的挖掘,达到自动选择合适的成员搜索引擎的目的,从而进行搜索。另一方面,可对用户其它方式的输入查询如声音、图像、视频等,实现智能的查询转换功能,从而得到预想的结果。

.专业化

专业化元搜索引擎是个很好的概念,不但网络资源可以比普通元搜索引擎挖得更深更多,搜索

4

华中农业大学毕业论文(设计)负担还小得多,应该是很符合网络发展方向的。

3 个性化搜索引擎相关技术

3.1 信息抽取技术

信息抽取技术[11],简称IE技术,是通过抽取、过滤无关信息,使文本信息以用户关心的形式得以再组织,实现高效重组。信息抽取原来的目标是从自然语言文档中找到特定的信息,是自然语言处理领域特别的一个子领域。信息抽取利用语言学的知识,主要是词语知识和篇章结构的知识,从文中抽取出特定的内容,从而避免对全文进行深入的理解。信息抽取主要有两大方法:一是知识工程方法,二是自动训练方法。知识工程方法主要靠手工编制规则使系统能处理特定知识领域的信息抽取问题。这种方法要求编制规则的知识工程师对该知识领域有深入的了解。自动训练方法[11]不一定需要如此专业的知识工程师。系统主要通过学习己经标记好的语料库获取规则。任何对该知识领域比较熟悉的人都可以根据事先约定的规范标记语料库。经训练后的系统能处理没有见过的新文本。这种方法要比知识工程方法快,但需要足够数量的训练数据,才能保证其处理质量。

IE技术所要抽取的文本可分为:自由式文本、结构化文本和半结构化文本。自由式文本[11]:信息抽取最初的目的是开发实用系统,从自由文本中析取有限的主要信息。需要经过的处理步骤包括:句法分析、语义标注、专有对象的识别(如人物、公司)和抽取规则。结构化文本[11]:此种文本是一种数据库里的文本信息,或者是根据事先规定的严格格式生成的文本。从这样的文本中抽取信息是非常容易的,准确度也高,通过描述其格式即可达到目的。半结构化文本[11]这是一种界于自由文本和结构化文本之间的数据,通常缺少语法,也没有严格的格式,对于半结构化文本不能使用传统的IE技巧,而用来处理结构化文本的简单的规则处理方法也不能奏效。

3.2 Lucene检索工具包

Lucene是一个高性能的,可扩展的全文索引工具包,是一个纯Java实现的成熟、自由、开源的软件项目。它不是一个完整的全文索引应用,而是一个用Java写的全文索引工具包。它可以方便的嵌入到各种应用中实现针对应用的全文索引和检索功能。

Lucene的系统结构与源代码结构:

Lucene由于具有开放源代码、功能强大、可以跨平台使用等各种优点,近年来在世界各地被广泛使用。Lucene的系统结构图[5]如下:

由图3.1可以看到,Lucene的系统由基础结构封装、索引核心、接口三大部分组成,其中直接操作索引文件的索引核心又是系统的重点。是一个完全使用JZSE实现的全文检索引擎工具包。

5

华中农业大学毕业论文(设计)3.3 中文分词技术

英文是由空格和标点符号隔开的单词组成的,每一个单词都有意义。因此对于英文文档的处理,标准分析模块可以先将每个字母转换成小写后暂存在缓存中,遇到一个空格或标点符号后返回以前的所有字母,然后与停止词表对比,发现有停止词,立即忽略掉这个词。如果不是停止词则可存入倒排索引文件中。但中文句子没有空格作为分隔,所以这种分词方法对于中文来说是不适用的[12]。从20世纪70年代开始,我国一直有大量学者致力于中文自动分词的研究,至今己获得许多可喜的成果,一些分词标引和检索技术已投入使用[12]。但是,分词技术作为中文信息检索的瓶颈,仍然具有很多有待克服的问题,如专有名词以及复合词的切分、同形异义字的区分等。目前最常用的中文分词技术主要分为字表法、二分法和词库分词三大类:

.字表法(单汉字切分方法)

字表法[12]是对每个单字的出现位置进行索引,并依据单字的位置信息进行检索的方法。由于汉语是由独立的汉字组成的,因而可以和处理英文单词一样处理每一个汉字,这样可以避开分词歧义等难点问题。

.二分法(二元切分方法)

二分分词法[12]是对单汉字索引法的一种演进,这种方法是将每两个字进行一次切分。例如对词组“中华人民共和国”进行二分法切分,则结果如下:中华/华人/人民/民共/共和/和国这种切分方法完全不考虑词义、语境,机械地对语句进行处理。按这种分词方式建立起来的索引会存有大量的无实际意义或无检索意义的垃圾词汇,因此,它也不是一种最好的分词方法。

. 词库分词

词库分词[13]是将能表达一定意义的词作为基本检索单位,并根据词的出现位置进行索引和检索的中文分词方法。词库分词包括最大匹配法、最佳匹配法等,这类算法分词的正确性很大程度上取决于所建立的词库。通常的做法是先构造一个最小完备词库,然后在其基础上进行扩展,建立一个较完全的词库。

3.4 自动聚类技术

聚类,就是将一个数据单位的集合分割成几个称为簇或类别的子集,每个类中的数据都有相似性。聚类分析依据的原则是使同一聚簇中的对象具有尽可能大的相似性,而不同聚簇中的对象具有尽可能大的相异性。聚类分析称为无监督学习。无监督学习不依靠事先确定的数据类别及标有数据类别的学习训练样本集合,需要由聚类学习算法自动计算,不需要人工干预。聚类技术通过比较数据的相似性和差异性,能发现数据的内在特征及分布规律,从而获得对数据更深刻的认识和理解。

目前,聚类分析的方法主要有五类:划分聚类方法、层次聚类方法、度聚类方法、基于网格聚类方法和基于模型聚类方法。

(l)划分方法[15]:首先创建k个划分,k为要创建的对象划分个数;然后利用一个循环定位技术通过将对象从一个划分移到另一个划分来帮助改善划分质量。

(2)层次方法日[15]:创建一个层次以分解给定的数据集。该方法可以分为自上而下(分解)和自下而上(合并)两种操作方式。为弥补分解与合并的不足,层次合并经常要与其它聚类方法相结合,如循环定位。

(3)基于密度方法[15]:根据密度完成对象的聚类。它根据对象周围的密度不断增长聚类。

(4)基于网格方法[l5]:首先将对象空间划分为有限个单元以构成网格结构,然后利用网格结构完成聚类。STING(Statistical Information Grid)就是一个利用网格单元保存的统计信息进行基于网格聚类的方法。

(5)基于模型方法[15]:它假设每个聚类的模型并发现适合相应模型的数据。典型的基于模型方法包括:统计方法COBWEB:是一个常用的且简单的增量式概念聚类方法。它们都不适合对大数据库进行聚类处理。

6

华中农业大学毕业论文(设计)

3.5 用户行为分析

用户既是搜索引擎的直接使用者,也是服务质量好坏的最终评判者。对用户使用搜索引擎行为的调查是搜索引擎优化尤为需要的,而搜索引擎为用户找寻信息提供了指南。但搜索引擎给网络用户带来巨大便捷的同时也暴露出了不少问题,若要及时地解决这些问题,对搜索引擎进行优化,那么则需要大量的用户信息。尤其要关注用户在使用搜索引擎时满意和不满意的方面,并通过相关的软件技术对用户使用搜索引擎的行为进行跟踪,制定出优化搜索引擎的措施。

下面是通过用户行为分析反映出的一般特征:

(l)用户浏览的选择性[15]

用户每次搜索时,搜索引擎都会返回成百上千个查询结果如果用户点击一个查询结果,就可认为用户视此查询结果质量较高;被用户点击浏览的页面无疑就是用户认为质量较高的页面。

(2)用户浏览的局部性[15]

北大天网搜索引擎的统计数据显示,用户点击的URL相当集中。大部分用户点击都落在前面几页,像第一页的用户点击率占总点击的47%,而前面5页的点击率占总点击的75%以上。不到总量1/3的页面的点击次数占到总点击次数的2/3[14.15]。这表明用户点击URL具有很强的局部性。

(3)用户点击率[15]

由于网页存在的时间越长,累计下来的访问次数可能越多,故网页被访问的次数不能很好地反映一个网页内容的质量。所以,应使用网页的用户点击率来反映页面的质量。用户点击率是页面被访问次数/页面被搜索次数。虽然每次用户点击都是在某查询项下的点击,但研究结果表明,在大部分的查询项下,URL的点击频率和在所有查询项URL的点击频率基本一致。因此,在计算用户点击率时就不必考虑该点击次数是在什么项目下的点击次数。

4 个性化搜索引擎的总体设计

4.1 系统需求分析及总体设计

本课题以传统搜索引擎和元搜索引擎为背景,在搜索引擎技术中融入用户反馈信息的采集,首先开发一个基于用户反馈的个性化搜索引擎系统。该系统能个性化的完成用户的搜索行为:通过学习用户满意度反馈,生成用户兴趣模式优化搜索结果,优先返回用户感兴趣的网页内容并向用户推荐其他用户的兴趣模式。总体来说此系统的设计至少应一该满足以下几点功能要求: .用户注册登陆

.用户提交搜索请求,得到搜索返回结果

.根据用户提交的反馈信息,生成特定用户兴趣模式,优化搜索结果,优先返回用户感兴趣的网页内容并向用户推荐其他用户的兴趣模式,提高检索效率

Java EE技术是近几年来研究与应用的热点,Java EE平台最大的改变是对Web服务的全面支持。浏览器端向用户提供友好的访问操作界面,服务器端完成搜索引擎系统的业务逻辑,接收浏览器端的输入,处理浏览器端的搜索请求,并将搜索返回结果输出给浏览器端。本文在设计过程中,服务器端采用Java EE 系统架构。采用这种方式,可保证开发的企业应用可以部署到任何一个Java EE

的应用服务器上。服务器端使用Windows Server2003操作系统、jdk-1.5.0_13、Apache Tomcat5.5.25。数据库系统负责存储系统逻辑处理所需的数据,本系统中使用MY SQL数据库。作为一款开源软件,MYSQL适应于所有平台。同时,它还具有使用简便、管理方便、运行速度快等优点,完全满足本系统的开发应用。在集成开发环境(IDE)方面,本系统采用开源的Eclipse。Eclipse是IBM提出的下一代IDE开发环境,它目标不仅仅是成为专门开发Java程序的IDE环境,根据Eclipse的体系结构,通过开发插件,它还能扩展到任何语言的开发,甚至能成为图片绘制的工具。

个性化搜索引擎系统开发过程中需解决的关键问题如下:

(l)基于用户反馈的个性化搜索引擎系统的实现,其中包括四个关键问题

7

华中农业大学毕业论文(设计)

.如何获得搜索引擎源数据

.获取用户满意度反馈信息的方式

.基于用户满意度反馈信息,生成用户兴趣模式的学习算法

.基于用户兴趣模式的搜索结果优化算法

(2)基于用户反馈的个性化搜索引擎系统中引入自动聚类技术的改进方案用户聚类的简单设计思想搜索结果聚类的设计思想

4.2 系统功能及架构设计

本课题通过学习用户满意度反馈,挖掘隐形信息,生成用户兴趣模式,对搜索引擎返回的搜索结果进行加工处理,开发出实用的基于用户反馈的个性化搜索引擎系统,并在此基础上提出引入自动聚类的改进方案,从而使用户能享受高效的个性化查询,提高用户的搜索效率。

本系统的主要功能包括:友好的系统界面使得用户可以方便的实现注册、登陆、检索、评价等。完成用户的搜索请求本系统能根据用户输入的搜索关键词,及时返回搜索结果。学习用户反馈信息,向用户返回针对性的搜索结果,开发出基于用户反馈的个性化搜索引擎,用户对本搜索引擎的返回结果进行满意度评价后,系统会对用户的满意度反馈信息进行学习分析,提高检索效率。

本文将系统结构模型划分为三层,分别是表示层、业务逻辑层和数据持久层。利用三层模式,可以保证用户访问不直接接触后台应用以及数据资源,而是通过访问中间层,来获取后台的数据资源,这样即可以保证后台数据的安全性,又可以保证处理的一致性。下面是本课题的系统结构图:

基于语义Web搜索引擎的系统框架:搜索引擎工作的基本思想是:使用Robot来遍历Web,将Web 上分布的信息下载到本地文档库;然后对档内容进行自动分析并建立索引,添加到倒排索引库:对于用户提出的检索请求,搜索引擎通过检查索引库找出匹配的文档,返回用户。而基于语义Web的搜索引擎所有的工作都是建立在语义Web基础之上的,特别是在建立索引和检索过程中。

4.3 系统流程设计

本系统接收来自浏览器端的用户搜索请求,调用相应的业务方法,访问数据持久层的数据资源,

8

华中农业大学毕业论文(设计)

并将所需要的数据返回浏览器端,即响应用户的请求。同时,本搜索引擎系统的最大特点就是,根据用户提交的满意度反馈信息,调用相应的业务方法生成用户兴趣优化搜索结果,优先返回用户感兴趣的网页内容。本系统实现过程中,主要由四个步骤组成:(1)用户注册、登陆;(2)用户提交搜索关键词,实现搜索得到返回结果;(3)根据用户对搜索结果的满意度反馈信息,生成用户兴趣规则;(4)根据用户兴趣规则优化搜索结果,及时将用户感兴趣的网页返回给用户。以下是这四个步骤的流程图: (l)用户注册、登陆

以一下是用户注册、登陆的流程图。访问本搜索引擎的用户可以以访客,已注册用户身份来完成搜索功能,并且本系统调用MDS加密技术,对已注册用户的密码进行加密,保证了用户信息的安全性。

(2)用户搜索

以下是用户搜索的流程图。用户提交关键词后,系统实现搜索功能,得到返回的搜索结果并且这些搜索结果会依据用户兴趣规则及用户反馈信息(用户满意度评价)及时优化处理,争取达到优先返回用户感兴趣的网页内容的效果。

9

华中农业大学毕业论文(设计)

(3)生成用户兴趣规则

以下是根据用户满意度反馈信息生成用户兴趣规则的流程图。通过本文自定义的一套学习用户反馈信息的方法,生成特定用户对特定搜索关键词的兴趣规则。

10

华中农业大学毕业论文(设计)

图4.4生成用户兴趣规则流程图

(4)优化搜索结果

以下是依据用户兴趣规则对待返回的搜索结果进行优化的流程图。通过计算待返回的搜索结果与用户兴趣规则的相似度,对返回结果降序排序,优先返回用户感兴趣的网页内容。

11

华中农业大学毕业论文(设计)

图4.5优化搜索结果流程图

4.4 系统数据库设计

本课题开发一个基于用户反馈的个性化搜索引擎系统,服务器端主要设计了如下几个数据库表: user_info 用户基本信息表:用来存储已注册用户的基本信息。

search_record 搜索记录表:用来存储历史搜索记录。

storerecord 搜索结果存储表:用来存储返回的搜索结果。

rule_record 用户兴趣规则表:用来存储生成的用户兴趣规则。

user_rule 用户与规则关联表:用来关联特定用户与特定兴趣规则。

rule_result 搜索结果分值表:用来存储搜索结果与用户兴趣规则的相似度。

表4.1用户基本信息表

12

华中农业大学毕业论文(设计)

表4.4用户兴趣规则表

表4.5用户与规则关联表

5 个性化搜索引擎的具体实现

5.1 模块设计

基于上一章的功能分析和总体设计,本搜索引擎系统可分为四个模块来实现。它们分别是:用户界面模块、搜索模块、学习用户反馈模块、搜索结果优化处理模块。下面是本系统的功能模块图:

13

华中农业大学毕业论文(设计)

(l)用户界面模块:用户与搜索引擎系统交互的界面。用户界面的主要功能有:用户注册、登陆、提交搜索关键词、显示搜索结果、提交反馈信息等。

(2)搜索模块:根据用户输入的搜索关键词,获得搜索结果并经过相关预处理后存入搜索结果数据库。

(3)学习用户反馈模块:根据用户提交的满意度反馈信息,挖掘隐藏信息,结合学习算法,生成用户兴趣规则并存入用户兴趣规则数据库。

(4)搜索结果优化模块:根据用户的兴趣规则,计算搜索结果与用户兴趣规则的相似度,将待返回搜索结果按相似度降序排列,优先返回用户感兴趣的网页内容。下面分章节详细阐述这四个模块的实现方法及核心代码:

5.2 用户界面模块

所有来访用户均可通过本搜索引擎系统完成搜索功能。其中,未注册用户以访客身份登陆实现搜索,新用户可填写注册信息实现注册,已注册用户通过提交正确的用户名和密码登陆后可进行搜索。用户登陆后再搜索的益处在于,可以有针对性的采集用户的反馈信息—主要是用户的满意度评价信息,有助于生成用户兴趣规则,优化搜索结果,从而优先向用户返回其感兴趣的网页内容。也就是说,对于不同用户输入相同搜索关键词时,本搜索引擎可以根据用户的兴趣模式向特定用户返回有针对性的搜索结果。同时,本系统在实现过程中,调用MDS加密技术,对用户密码进行加密,保证了用户信息的安全性。下面是用户界面模块的几个组成部分:

14

华中农业大学毕业论文(设计)

由上图可知,用户界面模块主要由:用户注册界面、用户登陆界面、搜索提交界面、搜索结果返回界面组成。下面给出了用户注册、用户登陆功能的核心代码;而搜索提交与搜索结果返回界面的相关功能代码将在后续相应章节中给出。

(l)用户注册功能核心代码

Datedate=newDate():TimestamPregtime=newTimestamP(date.getTime());

if(request.getParameter(“Submit”)!=null){

if(request.getParameter”uid”)!=null){

uid=newString(request.getParalneter(“uid”).getBytes(“iso-8859-1”),”gb2312”);} if(request.getParameter(“email”)!=null){

email=newString(request.getParameter(“email”).getBytes(“iso-8859-l”),” gb2312”);

if(request.getParameter(“Password”)!”null){

Password=newString(request.getParameter(“Password”).getBytes(“iso-8859-l”),” gb2312”):

if(request.getParameter(“mobile”)!=null){mobile=new

String(request.getParameter(“mobile”).getBytes(“iso-8859-l”),”gb2312”):}

striP=newString(request.getRemoteAddr().getBytes(“iso-8859-l”),” gb2312”):

MDSEneodestrMDS=newMDSEncode():

UserlnfBeanuinfobean=newUserlnfBean();

if(!uinfobean.ifexist--userlgid(uid)){

Userlnfuinfo=newUserInf():

uinfo.setuserlgid(uid); uinfo.setemail(email); uinfo.setname(uid);

uinfo.setPassword(strMD5.getMD5ofStr(Password)):

uinfo.setlogintime(regtime);uinfo·setregtime(regtime);uinfo·setmobile(mobile):

uinfo.setloginip(strip);uinfo.setmemo(“”):

uinfobean.add--userinfo(uinfo):

}else{

Uid=“注册未成功。对不起,该用户名已经注册了,请重新取名注册!”;}

}

(2)用户登陆功能核心代码:

if(request.getParameter(“Submi”)!=null){

if(request.getParameter(“uid”)!=null){

uid=newString(request.getParameter”uid”).getBytes(“iso-8859-l”),”gh2312”):} if(request.getParameter(“Password”)!null){

Password=newStril1g(request.getParameter”Password”).getBytes(“iso-8859-l”),”gb2312”):}

MDSEneedestrMDS=newMDSEneode();

UserlnfBeanuinfobean=newUserlnfBean();

Userlnfuinfo=newUserInf();

uinfo=uinfobean.getUserinfoby--lgid(uid):

15

相关主题
文本预览
相关文档 最新文档