基于知识库的礼品推荐系统的设计与实现硕士研究生学位论文.doc_第1页
基于知识库的礼品推荐系统的设计与实现硕士研究生学位论文.doc_第2页
基于知识库的礼品推荐系统的设计与实现硕士研究生学位论文.doc_第3页
基于知识库的礼品推荐系统的设计与实现硕士研究生学位论文.doc_第4页
基于知识库的礼品推荐系统的设计与实现硕士研究生学位论文.doc_第5页
已阅读5页,还剩49页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

硕士研究生学位论文 题目:基于知识库的礼品推荐系统的设计与实现学 号: 085707 姓 名: 路卫杰 专 业: 计算机科学与技术导 师: 孟祥武 学 院: 计算机学院 年 月 日北京邮电大学硕士研究生毕业论文 声明独创性(或创新性)声明本人声明所呈交的论文是本人在导师指导下进行的研究工作及取得的研究成果。尽我所知,除了文中特别加以标注和致谢中所罗列的内容以外,论文中不包含其他人已经发表或撰写过的研究成果,也不包含为获得北京邮电大学或其他教育机构的学位或证书而使用过的材料。与我一同工作的同志对本研究所做的任何贡献均已在论文中作了明确的说明并表示了谢意。申请学位论文与资料若有不实之处,本人承担一切相关责任。本人签名: 日期: 关于论文使用授权的说明学位论文作者完全了解北京邮电大学有关保留和使用学位论文的规定,即:研究生在校攻读学位期间论文工作的知识产权单位属北京邮电大学。学校有权保留并向国家有关部门或机构送交论文的复印件和磁盘,允许学位论文被查阅和借阅;学校可以公布学位论文的全部或部分内容,可以允许采用影印、缩印或其它复制手段保存、汇编学位论文。(保密的学位论文在解密后遵守此规定)非保密论文注释:本学位论文不属于保密范围,适用本授权书。本人签名: 日期: 导师签名: 日期: 49北京邮电大学硕士研究生毕业论文 中文摘要基于知识库推理的礼品推荐系统的设计与实现摘 要当今,个性化推荐系统已经在很多领域得到了应用,如网络商品推荐、音乐推荐、影视推荐等。推荐技术包括协同过滤、内容过滤、知识发现等,但是这些推荐技术并没有考虑推荐领域的知识对推荐结果的影响,或者推荐结果没有通过与用户的交互过程中得到完善和改进。鉴于以上问题,本文针对礼品推荐领域提出了基于知识库的推荐方法。首先在调研了礼品信息和礼品赠送知识后构建礼品知识库,然后礼品专家通过人工方式对礼品知识库进行初始化,最后系统根据礼品的基本信息计算出礼品综合相似度对礼品知识库进一步完善。本文采用AJAX等技术设计并实现具有良好用户体验的知识库推荐用户接口,采用全文检索引擎工具包Lucene对礼品信息构建索引并根据用户的日志设计个性化的礼品搜索功能。 本文第一章介绍了推荐系统的研究背景和国内外的研究现状以及本文的研究路线方法和研究内容。第二章介绍了主要的推荐算法和本系统所涉及的关键技术。第三章描述了系统的需求分析,包括任务概述、需求规定以及运行环境的规定。第四章阐述了系统设计,包括系统整体功能设计和系统整体架构设计。第五章详细描述了系统实现中的关键问题和解决方案。第六章对系统进行功能测试和性能测试。第七章是工作总结和进一步的展望。 关键词:礼品推荐 知识库 相似度 个性化 搜索北京邮电大学硕士研究生毕业论文 英文摘要Knowledge-basedGiftsRecommendation SystemDesign and ImplementationABSTRACTPersonalized recommendation system has been widely used in many fields, such as network products recommendation, music recommendation, movie recommendation, etc. Recommendation techniques include collaborative filtering, content filtering, knowledge discovery, etc. However, these recommendations do not consider the influences that the knowledges in recommended areas to the results, or the recommended results isnt perfected or improved through the process of interaction with users. In view of the above problems, this paper proposed a recommendation method based on knowledge base for gift recommendation. First, knowledge base for gift is built after a series of researches, then initialized by gift specialists manually, and finally ajusted according to similarity which is calculated on the basic information of gifts. AJAX technique is introduced to achieve the user interface in order to supply good user experience,and Lucene, the full-text search engine toolkit is also used to construct index for the gifts information and design personalized search function in accordance with the users log. In Chapter 1, the background of recommendation system, the significance of the study, and the methods and contents of the study is introduced. In Chapter 2, we describe the main algorithms and key technologies that involved. Requirements analysis, includes overview of the work, the demand of requirement and environment is described in Chapter 3. The main content in Chapter 4 is the system design, which is divided into two parts, the function part and the construction part. Chapter 5 is the detailed description of the key problems and solutions in the process of system construction. In Chapter 6, functional testing and performance testing of the system is operated. The last Chapter is a summary of our work and further prospects.KEY WORDS:gifts recommendation, knowledge base,similarity, personalized,search北京邮电大学硕士研究生毕业论文 目录目录北京邮电大学研究生毕业论文 第一章 绪论1.1 研究背景随着互联网和电子商务的迅速发展,人类己步入网络信息时代。随着信息技术特别是网络技术的发展,信息系统的规模越来越大,数量越来越多,信息获取的工具和方法越来丰富,在更方便的为用户提供越来越多信息和服务的同时,其结构和内容越来越复杂,在海量信息中,用户及时、准确地获得所需要的信息也更加困难1。海量信息的同时呈现,一方面使用户很难从中发现自己感兴趣的部分, 另一方面也使得大量少人问津的信息成为网络中的“暗信息”,无法被一般用户获取2。面对网络信息量呈指数增长,如何从这浩瀚的海洋中取得所需要的、真正有用的信息,已成为广大网络用户共同面临的问题。首先,由于很难准确描述出需要的信息的特征,用户常常会面对大量的信息而束手无策,迷失在大量的信息空间中;其次,信息系统单纯依靠提供的检索方式,往往不能满足用户描述检索条件的需求,找不到描述信息需求的方式。另外,用户每次获取信息,都要输入大量、烦琐的检索条件,而信息系统不能通过服务历史和服务过程掌握用户需求,信息系统不能产生对用户持久的吸引力。在这种背景下个性化智能推荐服务(Personalized Recommender Services)应运而生并迅速发展起来,它通过与用户交互过程中获取的信息推测用户的兴趣偏好,并根据用户的兴趣偏好推荐符合用户兴趣偏好的信息。个性化智能推荐服务不仅可以帮助用户找到所需信息,而且通过个性化智能推荐服务,可以有效保留用户,提高信息系统的吸引力和用户的忠诚度3。1.2 研究现状1.2.1 国外研究现状在推荐用户模型方面,常用的用户建模技术有向量空间模型4、用户评价矩阵5,以及机器学习技术6。在推荐算法方面,协同过滤是应用最广泛的个性化推荐技术。协同过滤首先计算用户之间的相似度,然后将相似度最高的用户作为最近邻居,最后通过最近邻居用户产生推荐结果。Kuo R J, Liao J L和 Tu C提出了一个利用神经网络和遗传K-means 算法通过分析用户在电子商务网站的浏览路径来获取用户偏好的方法。各种挖掘技术如关联规则挖掘、聚类挖掘等被应用于Web 日志的分析中,以提高推荐系统的精度7。A推荐系统是由Gery Linden,Brent Smith和Jeremy York主导开发的集研究与应用于一体的推荐系统,采用项目-项目协同过滤算法,根据用户己购买和己评分项目寻找相似项目,将相似度高的项目列入到推荐列表中。通过比较相似项目表与每个用户已购买和己评分的项目,系统整合比较结果将关联度最高和最畅销的项目推荐给用户。根据用户己购买和己评分项目寻找相似项目的计算较快,它只依赖于用户已购买和已评分的项目数量,采用在线方式进行。因此,即使是面对大规模数据集也有较快的运行速度8。由于基于项目协同过滤推荐算法高度的关联性,推荐质量也比较高9。MovieLens是由美国明尼苏达大学计算机科学与工程系开发的研究型自动协同过滤推荐系统,用于推荐电影。MovieLens 是一个基于Web 的推荐,系统通过浏览器方式进行用户评分数据收集与推荐结果显示,用户使用更方便。用户对网站提供的电影进行评分,用户可在 not seen和0.5-5.0共11个选项中进行选择,网站根据每个用户的评分计算并分析用户的偏好,并据此向用户进行电影推荐。MovieLens采用了基于用户的协同过滤和关联规则相结合的技术,计算用户的相似度并根据相似度分析用户的“邻居”,这些“邻居”是具有相似兴趣爱好的“邻居区”,“邻居”们对电影的评分数据被用来为目标用户生成个性化推荐项目10。该系统既是一个个性化推荐研究的实验平台,也是向人们推荐感兴趣电影的应用系统,其不定期推出的用户评分数据为世界各国推荐领域研究人员提供了原始的实验数据11。Ringo是由MIT 媒体实验室开发的研究型协同过滤推荐系统,用于提供音乐推荐服务。Ringo 系统可以向用户推荐他们喜欢的音乐,预测用户不喜欢的音乐,也可以预测用户对特定音乐的评分。FAB:Stanford 大学数字图书馆项目组开发的基于内容过滤和协同过滤的推荐系统,用于推荐Web 页面。其特点是综合了基于内容过滤的推荐和协同过滤推荐的优点,同时支持两种类型的推荐服务。Google News是一个为新闻领域开发的个性化资讯平台。该平台采用基于MinHash聚类的协同过滤、统计隐含语义标引(Probabilistic Latent Semantic Indexing,PLSI)和访问计数三种方法来产生推荐,使用一个线性模型将不同算法产生的推荐结合起来 12。Gift Ideas()是一个专业的个性化礼品推荐网站,网站的礼品知识库非常专业,推荐页面用户体验性非常好。网站从收礼人信息,送礼场合,个性化定制,礼品分类等多方面向用户进行礼品推荐。1.2.2 国内研究现状复旦大学的邓爱林等针对用户评分数据极端稀疏情况下传统相似性度量方法的不足,提出了一种基于项目评分预测的协同过滤推荐算法,根据项目之间的相似性初步预测用户对未评分项目的评分,在此基础上,采用一种新颖的相似性度量方法计算目标用户的最近邻居 13。浙江大学的孙小华针对协同过滤在无法得到项目的内容信息和用户个人信息的情况下,在数据稀疏和冷启动情况下提高预测准确性方面采用了属于特征递增型的Pear After_SVD方法和属于转换型的LCM STI方法。针对新用户和新项目的冷启动问题采用了基于统计的众数法阻及信息熵法来解决14。清华大学的邢春晓和高凤荣等人针对传统协同过滤算法不能及时反映用户兴趣变化的问题,提出了两种改进度量:基于时间的数据权重和基于资源相似度的数据权重,在此基础上将它们有机结合,将这两种权重引入基于资源的协作过滤算法的生成推荐过程中,通过实验证明改进后的算法比传统协作过滤算法在推荐准确度上有明显提高15。北京航空航天大学的张光卫等人针对传统相似度度量方法存在的不足,利用云模型在定性知识表示以及定性、定量知识转换时的桥梁作用,提出一种在知识层面比较用户相似度的方法,克服了传统基于向量的相似度比较方法严格匹配对象属性的不足。以该方法为核心,在全面分析传统方法的基础上,提出一种新的协同过滤推荐算法。实验结果表明,算法在用户评分数据极端稀疏的情况下,仍能取得较理想的推荐质量 16。国内推荐系统的应用现状如下:豆瓣网(/)是一个以图书,影视和音乐数字产品推荐为目的的网站。注册用户可以对所喜欢的数字产品进行1-5分的评分,豆瓣后台通过一定的推荐算法向用户进行推荐,同时,用户可以对数字产品进行评论,并可以参考其他用户的评论作为推荐依据。最后用户还可以加入豆瓣的兴趣小组,这样同兴趣小组成员的推荐更加精准,更加符合用户的兴趣。淘宝礼物(/)是淘宝网推出的个性化礼物推荐平台,依托于淘宝巨大的消费平台。淘宝礼物将收礼人细分为男人,女人,青少年,儿童和婴儿五种类型,并且每种类型的人都有若干种送礼主题。另外还有送礼场景包括生日送礼,婴儿诞生,乔迁新居,爱意表达等。最后推荐个性化礼物。1.3 研究意义电子商务网站是推荐系统应用最广泛的地方。根据电子商务网站的运营特征中国的电子商务网站可分为三类:平台性质的电子商务网站,以淘宝为典型代表,不存在仓储、物流等服务,仅仅提供一个平台让更多的人在其中开店;服务型的电子商务网站,以当当、京东商城为典型代表,有自己的仓储、物流等;品牌型电子商务网站,销售自己品牌旗下产品,一般为企业官网建立的电子商务网站,例如凡客诚品。2010年电子商务在中国发展如火如荼。根据国内著名互联网分析机构艾瑞咨询调查显示,淘宝网占据国内电子商务80%以上的市场份额。2009年淘宝网销售额达到了2000亿人民币,预计2010年淘宝网销售额将翻一番达到4000亿人民币。由此可计算出2010年中国的电子商务总销售额将达到5000亿人民币。当当网已经形成以图书、化妆品、家居、母婴等为主的核心品类,并于美国东部时间12月8日在美国纽约证券交易所正式挂牌上市。京东商城增长速度每年都在300%以上,成了互联网和零售业的又一个奇迹制造者。凡客诚品2010年销售的衣服达到了4000万件。由上面的数据可以说明电子商务已经在中国开始全面发展,随着电子商务的发展,电子商务网站的用户和销售的商品急剧增加,如何为每个用户提供个性化的推荐服务成为电子商务发展的重要问题。礼品作为电子商务网站中的特殊商品最具个性化的需求。每个送礼人都希望送出一份个性化的礼品,每个收礼人都希望收到一份适合自己的礼品。因此,基于知识库的礼品推荐系统的研究具有很高的经济价值和社会价值。基于知识库的礼品推荐系统有其优点也有其缺点。优点是可以全面形象地描述用户的送礼需求,通过礼品知识库进行推理向用户推荐准确的个性化的礼品。缺点是礼品知识库需要礼品专家进行人工初始化,而且礼品知识库容易受到礼品专家喜好的影响。1.4 本文工作1.4.1 研究路线和方法本文从淘宝网上抓取数千礼品信息,然后采用正则表达式进行文本提取,将提取的文本信息保存到数据库形成礼品库。同时调研礼品领域知识,如礼品分类,送礼节日场合等知识并根据这些知识构建礼品知识库。然后对其中一部分礼品的知识库进行人工初始化,并结合根据礼品基本信息计算出的礼品综合相似度对礼品知识库进行完善。设计良好用户体验的推荐交互界面准确全面地表达用户的需求,从节日场合,收礼人兴趣爱好和收礼人描述向用户进行推荐。最后根据用户对推荐礼品的反馈信息对知识库进一步调整和完善。本文在搜索技术上采用开源的全文搜索引擎Lucene对礼品基本信息构建索引,同时结合用户的浏览日志分析用户偏好为用户的礼品搜索提供个性化的礼品推荐。1.4.2 主要研究内容本文的主要研究内容为推荐系统在礼品推荐领域的应用研究,本文采用了知识库推荐的方法,并结合礼品个性化搜索,最后根据知识库的特点设计具有良好用户体验的推荐交互界面更好地描述用户的需求向用户提供个性化的礼品推荐服务。1.4.3 研究任务本文的研究任务有如下三个方面:礼品知识库的构建:调研具有中国文化特色的礼品赠送知识,并根据这些知识构建礼品知识库。 礼品知识库的初始化和完善:用礼品专家的礼品知识对礼品知识库进行初始化,然后采用一定的算法对礼品知识库进行完善。礼品个性化搜索的设计:构建礼品索引,并结合用户浏览日志向用户提供个性化的礼品搜索。推荐交互界面的设计:根据知识库设计具有良好用户体验的推荐交互界面准确全面地描述用户的需求。第二章 个性化推荐算法及系统实现关键技术介绍2.1 协同过滤(Collaborative Filtering-CF) 协同过滤(Collaborative Filtering-CF)技术是基于一组兴趣相同的用户进行推荐。协同过滤基于这样的假设:为用户找到他真正感兴趣的内容的好方法是,首先找到与他兴趣相似的用户,然后将这些用户感兴趣的内容推荐给此用户。协同过滤技术可以分为两类:基于用户的协同过滤和基于项目的协同过滤17。1. 基于用户的协同过滤推荐(CF - U) 基于用户的协同过滤推荐技术是目前推荐算法实际应用中最为成功的个性化推荐技术,在商业推荐系统中得到广泛应用。算法的基本思想是将具有相同爱好的用户感兴趣的项目推荐给目标用户。首先利用用户的历史记录如搜索记录、浏览记录、评分评价等对用户特征进行分析和建模。然后计算用户之间的相似度并将相似度最高的用户最为最近邻居18。最后向用户推荐其最近邻居频繁购买的商品。2. 基于产品的协同过滤推荐(CF - I) 基于产品的协同过滤技术也是应用比较广泛和成功的推荐技术,它与基于用户的协同过滤推荐的不同是它计算的是产品之间的相似度,向用户推荐的是于用户已经购买的商品相似度最高的商品。3. 协同过滤的优缺点优点:协同过滤的最大优势就在于,系统与目标产品在网络上的呈现形式完全独立, 只需要用户产品交易数据, 比较简便易行。缺点:第一,协同过滤方法过于依赖于历史交易数据,会导致“产品冷启动”和“用户冷启动”问题,即无法对新产品与新用户进行推荐。第二,协同过滤方法存在计算规模问题,而如果降低计算复杂度又会降低推荐质量。第三, 协同过滤方法只利用用户- 产品交易关系,并未考虑用户多偏好和产品多属性的问题19。2.2 内容过滤(Content - Based Filtering-CBF)为了应对协同过滤的稀疏性问题出现了内容过滤。内容过滤允许系统发掘用户的个性化特征而不需要将其与其他用户进行匹配,待推荐的产品也只是基于产品本身的特征信息。其本质上是一个学习系统。内容过滤分为两种:基于新产品和基于新用户的内容过滤20。1. 基于新产品的内容过滤新产品进入系统后,系统将新产品与产品特征数据库进行匹配,然后提取新产品的特征。再把用户数据库中的用户偏好类别与产品特征进行相似度匹配,从而生成推荐列表, 最后根据用户反馈进行修正学习。2. 基于新用户的内容过滤新用户进入后,系统提取用户个性化特征 ,提取的方法一般有三种,一是问问题,二是通过注册信息获得,三是通过用户行为进行提取。然后将用户与系统用户特征数据库进行匹配,归到一个用户类别中,再根据这个类别进行推荐,最后再进行修正学习。3. 内容过滤的优缺点优点:正如内容过滤出现的原因内容过滤对推荐结果的解释更换在一定程度上解决了协同过滤方法中的用户多偏好和产品内容多样的问题,可以让用户提供一定的初始化信息,辅助系统做出更好的推荐。缺点:第一,产品提供商可能会有意更改产品特征误导系统以获取推荐机会。第二,商品属性提取困难。很难定义商品属性和用户特征的类别,那么也就很难做出精确的匹配。而且这些属性特征成千上万,随着系统的不断学习,数据库规模还会不断扩大,对系统的性能也会有很大的影响。第三,精确度问题,有试验表明内容过滤推荐可能不如协同过滤更为精确。2.3 知识发现( Knowledge Discovery in Data-base - KDD)知识发现是从数据库中提取隐含的、先前未知的、潜在有用的知识或信息模式的决策支持方法。知识发现需要提取发现用户和产品的特征,所采用的方法是分类、聚类、关联规则等数据挖掘方法。知识发现将用户请求视作一个查询 ,然后基于用户需求和偏好进行推荐。这个方法需要了解产品用户之间的关系和特征。这些知识的获取有赖于知识库的建立,使得数据挖掘的方法得到了巨大的应用21。1. 数据挖掘技术的应用数据挖掘就是从大量的、不完全的、有噪声的、模糊的、随机的实际应用数据中, 提取隐含在其中的但又是潜在有用的信息和知识的过程22。随着信息技术的高速发展,人们积累的数据量急剧增长,动辄以TB计,如何从海量的数据中提取有用的知识成为当务之急。数据挖掘就是为顺应这种需要应运而生发展起来的数据处理技术。数据挖掘是知识发现的关键步骤。电子商务推荐系统中的数据挖掘主要包括关联规则挖掘和分类挖掘两类 ,因此基于数据挖掘的知识发现方法又分为关联规则推荐和分类挖掘推荐两种。关联规则推荐方法是先根据销售数据发现不同商品在销售过程中的相关性,然后基于生成的关联规则模型和用户的购买行为产生推荐结果;分类挖掘推荐方法是通过聚类、Bayesia网络、神经网络等多种机器学习方法产生分类挖掘模型,再根据用户输入信息和产品的特征信息,预测是否向用户推荐该产品23。2. 知识发现的优缺点优点:知识发现可以利用电子商务网站的交易数据、日志数据等信息提高推荐系统的推荐质量和推荐效率。缺点:一种知识发现的算法只能适应某一领域的数据,而更换领域后知识发现的算法就不太适用了,因此需要重新定义规则或算法。2.4 系统实现关键技术介绍2.4.1正则表达式正则表达式(Regular Expression)在计算机科学中,是指一个用来描述或者匹配一系列符合某个句法规则的字符串的单个字符串。在很多文本编辑器或其他工具里,正则表达式通常被用来检索和替换那些符合某个模式的文本内容。许多程序设计语言都支持利用正则表达式进行字符串操作24。一个正则表达式通常被称为一个模式 (pattern) 25,就是用某种模式去匹配一类字符串的一个公式,由普通字符(例如字符 a 到 z)以及特殊字符(称为元字符)组成,用来描述或者匹配一系列符合某个句法规则的字符串。简单的说,正则表达式就是用一个“字符串”来描述一个特征,然后去验证另一个“字符串”是否符合这个特征。比如表达式“ab+” 描述的特征是“一个a和任意个b ”,那么ab,abb,abbbbbbbbbb 都符合这个特征。正则表达式可以用来:(1)验证字符串是否符合指定特征,比如验证是否是合法的邮件地址。(2)用来查找字符串,从一个长的文本中查找符合指定特征的字符串,比查找固定字符串更加灵活方便。(3)用来替换,比普通的替换更强大。JAVA对正则表达式提供了强大的支持26,本系统正是借助于JAVA中对正则表达式的强力支持来实现在JAVA源文件中对类之间依赖关系的扫描。在JAVA中使用正则表达式匹配字符串的典型调用语句是Pattern p = Ppile(a*b);Matcher m = p.matcher(aaaaab);boolean b = m.matches();Java.util.regex.Pattern是正则表达式的编译表示形式,指定为字符串的正则表达式必须首先被编译为此类的实例。然后,可将得到的模式用于创建java.util.regex.Matcher对象, 依照正则表达式,该对象可以与任意字符序列匹配。执行匹配所涉及的所有状态都驻留在匹配器中,所以多个匹配器可以共享同一模式。最后可通过Matcher.matches()方法验证字符序列与所编译的正则表达式是否相匹配。在JAVA中使用正则表达式查找字符串的典型调用语句是boolean b = Ppile(regEx).matcher(str).find()其中regEx是需要编译的正则表达式,str为需要进行查找的文本或字符串,通过Matcher.matches()方法可以查找文本或字符串str中是否存在符合正则表达式规则regEx的字符串27。2.4.2 LuceneLucene 是一个apache软件基金会jakarta项目组的一个子项目28,Lucene是用Java 写的全文检索引擎工具包,可以方便地嵌入到各种应用中实现针对应用的全文索引/ 检索功能,Lucene 有两个主要的服务,索引和检索,两者任务是相互独立的。这使得开发人员可以根据需要对它们进行扩展。Lucene 提供了丰富的API ,可以与存储在索引中的信息方便的交互29。需要说明的是它并不是一个完整的全文检索应用,而是为应用程序提供索引和搜索功能。即若想让Lucene 真正起作用,还需在其基础上做一些必要的二次开发30。Lucene的目的是为软件开发人员提供一个简单易用的工具包,以方便的在目标系统中实现全文检索的功能,或者是以此为基础建立起完整的全文检索引擎。Lucene的原作者是Doug Cutting,他是一位资深全文索引/检索专家,曾经是V-Twin搜索引擎的主要开发者,后在Excite担任高级系统架构设计师,目前从事于一些Internet底层架构的研究。早先发布在作者自己的/,后来发布在SourceForge,2001年年底成为apache软件基金会jakarta的一个子项目:/lucene/。作为一个开放源代码项目,Lucene从问世之后,引发了开放源代码社群的巨大反响,程序员们不仅使用它构建具体的全文检索应用,而且将之集成到各种系统软件中去,以及构建Web应用,甚至某些商业软件也采用了Lucene作为其内部全文检索子系统的核心。apache软件基金会的网站使用了Lucene作为全文检索的引擎,IBM的开源软件eclipse的2.1版本中也采用了Lucene作为帮助子系统的全文索引引擎,相应的IBM的商业软件Web Sphere中也采用了Lucene。Lucene以其开放源代码的特性、优异的索引结构、良好的系统架构获得了越来越多的应用。Lucene作为一个全文检索引擎,其具有如下突出的优点:(1)索引文件格式独立于应用平台。Lucene定义了一套以8位字节为基础的索引文件格式,使得兼容系统或者不同平台的应用能够共享建立的索引文件。(2)在传统全文检索引擎的倒排索引的基础上,实现了分块索引,能够针对新的文件建立小文件索引,提升索引速度。然后通过与原有索引的合并,达到优化的目的。(3)优秀的面向对象的系统架构,使得对于Lucene扩展的学习难度降低,方便扩充新功能。(4)设计了独立于语言和文件格式的文本分析接口,索引器通过接受Token流完成索引文件的创立,用户扩展新的语言和文件格式,只需要实现文本分析的接口。(5)已经默认实现了一套强大的查询引擎,用户无需自己编写代码即使系统可获得强大的查询能力,Lucene的查询实现中默认实现了布尔操作、模糊查询(Fuzzy Search11)、分组查询等等31。面对已经存在的商业全文检索引擎,Lucene也具有相当的优势。首先,它的开发源代码发行方式(遵守Apache Software License),在此基础上程序员不仅仅可以充分的利用Lucene所提供的强大功能,而且可以深入细致的学习到全文检索引擎制作技术和面相对象编程的实践,进而在此基础上根据应用的实际情况编写出更好的更适合当前应用的全文检索引擎。在这一点上,商业软件的灵活性远远不及Lucene。其次,Lucene秉承了开放源代码一贯的架构优良的优势,设计了一个合理而极具扩充能力的面向对象架构,程序员可以在Lucene的基础上扩充各种功能,比如扩充中文处理能力,从文本扩充到HTML、PDF等等文本格式的处理,编写这些扩展的功能不仅仅不复杂,而且由于Lucene恰当合理的对系统设备做了程序上的抽象,扩展的功能也能轻易的达到跨平台的能力32。最后,转移到apache软件基金会后,借助于apache软件基金会的网络平台,程序员可以方便的和开发者、其它程序员交流,促成资源的共享,甚至直接获得已经编写完备的扩充功能。最后,虽然Lucene使用Java语言写成,但是开放源代码社区的程序员正在不懈的将之使用各种传统语言实现(例如.net framework),在遵守Lucene索引文件格式的基础上,使得Lucene能够运行在各种各样的平台上,系统管理员可以根据当前的平台适合的语言来合理的选择。2.4.3 AJAXAJAX的全称是Asynchronous JavaScript XML(即异步JavaScript和XML)。AJAX是一种Web应用程序开发的手段,它采用客户端脚本与Web服务器交换数据。所以,不必采用会中断交互的完整页面刷新,就可以动态地更新Web页面。使用Ajax,可以创建更加丰富、更加动态的Web应用程序用户界面,其即时性与可用性甚至能够接近本机桌面应用程序。这使得Web应用的交互性得到了前所未有的提高,大大增强了应用的实用性和实时性。AJAX是几项技术的全新方式的集合,所用到的核心技术是:1) 运用XHTML和CSS实现基于各种标准的展示。2) 运用文档对象模型(Document Object Model)实现动态显示和交互。3) 运用XML实现数据交换和操作。4) 运用XMLHttpRequest实现异步数据检索。5) JavaScript将所有这些方法绑定到一起。使用AJAX的关键在于对浏览器端的JavaScript、DHTML和与服务器异步通信的组合33。AJAX的核心是JavaScript对象XMLHttpRequest。该对象在Internet Explorer 5中首次引入,它是一种支持异步请求的技术。简而言之,XMLHttpRequest使用户可以使用JavaScript向服务器提出请求并处理响应,而不阻塞用户34。借助于AJAX,可以在用户单击按钮时,使用JavaScript和DHTML立即更新UI,并向服务器发出异步请求,以执行更新或查询数据库。当请求返回时,就可以使用JavaScript和CSS来相应地更新UI,而不是刷新整个页面。最重要的是,用户甚至不知道浏览器正在与服务器通信:Web站点看起来是即时响应的35。2.5 小结 本章主要介绍了比较流行的三种个性化推荐算法:协同过滤、内容过滤和知识发现,并对三种推荐算法的优缺点进行了分析。然后介绍了本系统实现过程中所利用的关键技术:正则表达式,Lucene和AJAX技术。第三章 个性化礼品推荐系统需求分析3.1 任务概述3.1.1 实现目标该系统要实现如下四个目标:1. 礼品知识库的构建礼品推荐有其特殊的领域知识,比如送礼人的个人信息,收礼者的个人信息,送礼人与收礼人的关系,送礼的节日场合等,这些因素决定适宜推荐的礼品。本系统要调研礼品赠送知识并据此构建礼品知识库。2. 礼品知识库的初始化和完善利用礼品专家的知识对知识库进行部分初始化。然后通过一定的算法计算礼品相似度,根据礼品的相似度对礼品知识库进行完善。3. 礼品知识库推荐系统要提供一个良好的知识库推荐接口,此接口能够准确描述用户的需求,并使用户获得准确的礼品推荐和良好的用户体验。4. 用户浏览推荐用户浏览某一礼品的详细信息时,系统要向用户推荐与此礼品最相关的若干礼品。5. 礼品个性化搜索系统要能够根据用户日志提供个性化的礼品搜索功能。3.1.2 系统设计意图 该系统设计的意图是要将符合中国文化的礼品知识借助数据库进行知识库建模,通过礼品专家对知识库进行初始化,然后计算礼品的综合相似度对知识库进一步完善,同时,系统要提供个性化的礼品搜索功能。最后,设计良好的用户交互推荐接口提升用户的体验准确表达用户的需求进而向用户推荐礼品,在用户获得系统的推荐的同时,系统要根据用户的反馈信息进行学习从而提高系统的推荐准确度。3.1.3 假定和约束为了保证推荐的准确性和客观性,本系统的假定和约束如下:1) 从淘宝网上抓取的40类共3000个礼品在一定时间内不会下架,即用户得到礼品推荐后可以从网上买到该礼品。2) 所有礼品的分类准确,且商家对礼品的描述不含欺诈信息。3.2 需求规定3.2.1 系统功能的需求规定1) 基于节日场合的推荐基于送礼节日场合推荐通过用户选择送礼的节日或场合来获得系统的礼品推荐。图3-1基于节日场合推荐用例图如上图所示,基于节日场合推荐的用例图,用户根据自己的需求选择送礼节日或场合,系统调用节日场合推理向用户进行礼品推荐。由于送礼的节日和场合不同,赠送的礼品会有所不同。如情人节送花和巧克力合适,中秋节送月饼合适,孩子满月送毛绒玩具,小衣服等合适,朋友生日送毛绒熊合适。本系统将把礼品赠送节日场合分类如下。送礼的节日有:春节,元宵节,情人节,妇女节,母亲节,儿童节,端午节,父亲节,七夕节,中秋节,教师节,感恩节,圣诞节,元旦等。送礼的场合有:恋爱,约会,结婚,周年,生日,孩子满月,乔迁新居,升学,毕业,退休,升职,探病,慰问,感谢等。2) 基于收礼对象的推荐基于收礼对象推荐是通过用户选择收礼者的身份,如性别,年龄,兴趣爱好来获得系统的推荐礼品。图3-2基于收礼对象推荐用例图如上图所示,基于收礼对象推荐的用例图,用户选择收礼人的年龄或性别获得系统收礼对象推荐,然后用户再选择收礼人的兴趣爱好获得系统兴趣爱好推荐。收礼者的身份不同,赠送的礼品也会有所不同。如,赠送男人宜送领带,钱包,商务包等;赠送女人宜送口红,厨房用品等;赠送孩童宜送文具,卡通玩具等。表3-1收礼人基本信息划分类别备注老人表示60岁以上的老人男人年龄介于25到60岁的所有男人女人年龄介于25到60岁的所有女人青年年龄介于17到24岁的青年人少年年龄介于4到16岁的少年儿童婴儿年龄介于0到3周岁的婴儿根据收礼者的兴趣爱好赠送的礼物也有所不同,如喜欢时尚的女人应赠送化妆品,衣服等;喜欢运动的男人可赠送运动装备等礼品。表3-2收礼人兴趣爱好划分类别兴趣划分老人运动,旅游,书画,音乐,阅读,棋牌,居家,烹饪,营养品男人运动,旅游,探险,宅男,音乐,书画,影视,阅读,交际,游戏女人时尚,购物,美容,运动,旅游,居家,烹饪,宅女,音乐,舞蹈,书画,影视,阅读,交际,探险青年运动,购物,时尚,影视,阅读,交际,音乐,舞蹈,书画,游戏少年运动,动画,阅读,舞蹈,书画,游戏,玩具婴儿玩耍,睡觉,洗澡,营养品3) 基于收礼人描述的推荐当用户对收礼人的个人信息无法完整的描述时可以通过基于收礼人描述的方法来获得礼品推荐。图3-3基于收礼人描述推荐用例图如上图所示,基于收礼人描述的推荐用例图将收礼人根据年龄和性别分为男人、老年男性、女人、老年女性、男青年、女青年、男孩儿、女孩儿,用户选择收礼人年龄和性别分类。每种人根据其特点对其类型进行划分,并对该类型的收礼人从图片、服饰特点、周末活动、性格特征、兴趣爱好和个人偶像来进行描述,用户根据这些特征描述来选择收礼人并获得系统的推荐。表3-3收礼人特征类型划分类型特征描述分类男人阳光男人、宅男、合格爸爸、成功男人、探险男、休闲男、艺术男、思考男、书画男、贵族男老年男性悠闲老人、思考老人、慈祥爷爷、运动老人、威严爷爷女人标准妈妈、成功女性、悠闲女、全职太太、时尚女、宅女、交际女、文艺女、探险女、阳光女人老年女性时尚奶奶、美食奶奶、思考奶奶、慈祥奶奶、运动奶奶男青年阳光男孩、艺术BOY、时尚男孩、阅读达人、游戏狂人、影视FANS女青年购物狂、阳光女孩、影视发烧友、探险女孩、文学女孩、时尚丽人男孩儿玩耍少年、运动少年、卡通FANS女孩儿阳光女孩儿、书画女孩儿、舞蹈天使、运动女孩儿4) 礼品知识库构建礼品知识库推荐需要一个完善的礼品知识库进行推理。调研礼品领域的知识并据此构建礼品知识库,将礼品知识库以数据库的形式来保存。礼品知识库初始化包括两步:一是人工初始化;二是系统完善。图3-4礼品知识库人工初始化用例图如上图所示,人工初始化用例图。人工初始化是通过礼品专家对每个礼品选择其适合赠送的节日场合,收礼对象的性别、年龄、兴趣、与送礼人的关系,并将这些信息以合理的方式保存起来。图3-5礼品知识库完善用例图如上图所示,礼品知识库完善用例图。由于礼品数量众多,所以通过礼品专家进行初始化只能初始化一部分礼品,其它的礼品就要根据礼品的基本信息计算礼品的综合相似度,然后根据礼品的综合相似度对礼品知识库进行完善。6) 个性化搜索系统根据用户的搜索日志分析用户的偏好。当用户输入搜索关键字时系统结合分析出的用户搜索偏好向用户返回个性化的搜索结果。例如,如果用户多次用价格排序,说明礼品价格对用户的购买行为影响较大,则系统搜索的时候优先以价格排序。如果用户多次用信用排序,说明商家信用对用户的决策影响较大,则系统搜索的时候优先以信用排序。3.2.2 系统性能的需求规定l 精度要求本系统要求用户根据自己的需求选择节日场合,收礼人信息,搜索关键字等信息。礼品的相似度保留到小数点后4位。l 时间特性要求本系统不仅需要处理大量的知识库数据,还要保证礼品推荐的实时性,因此从用户选择需求并发送请求后500ms内要返回用户的推荐结果,从用户输入搜索关键字并发送请求后200ms内要返回用户的搜索结果。l 输入输出要求输入1:用户的需求。如选择节日场合,选择收礼人的信息等输出1:满足用户需求的礼品信息推荐列表,包括礼品图片,礼品名称,礼品URL等,每页显示40个礼品,超过40个礼品进行分页显示。输入2:用户的搜索关键字。输出2:匹配搜索关键字和用户个性化需求的礼品信息搜索列表,包括礼品图片,礼品名称,礼品URL等,每页显示40个礼品,超过40个礼品进行分页显示。输入3:用户选择点击礼品列表中的某个礼品。输出3:该礼品的详细信息,包括礼品图片,礼品名称,礼品商家,礼品价格等。此外,要返回与该礼品基本信息相似的三个礼品和用户浏览相似的三个礼品。l 数据管理能力要求所有礼品信息均从淘宝网上抓取,礼品信息要随时进行更新。礼品知识库经过人工初始化后,再通过相似度进行完善,要剔除礼品知识库中的噪声并不断完善礼品知识库。l 故障处理要求如果大量用户同时频繁访问数据库,导致数据库服务器瘫痪,需要进一步优化数据库缓存机制和索引。针对数据库故障导致数据丢失,要定时对数据库数据进行备份。l 其他性能要求1) 保证系统的可扩展性系统采用流行框架,代码和页面分离,业务逻辑和数据库操作分离,便于以后的数据库更换和系统维护升级。2) 保证系统的可移植性系统所有代码采用Java语言编写,保证了系统的可移植性。3.3运行环境规定3.3.1 设备支持运行本系统的硬件设备建议满足以下条件:1. 处理

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论