您好,欢迎来到华佗小知识。
搜索
您的当前位置:首页基于知识库的礼品推荐系统的设计与实现

基于知识库的礼品推荐系统的设计与实现

来源:华佗小知识


硕士研究生学位论文

题目:基于知识库的礼品推荐系统的设计与实现

学 号: 085707 姓 名: 路卫杰 专 业: 计算机科学与技术 导 师: 孟祥武 学 院: 计算机学院

年 月 日

北京邮电大学硕士研究生毕业论文 声明

独创性(或创新性)声明

本人声明所呈交的论文是本人在导师指导下进行的研究工作及取得的研究成果。尽我所知,除了文中特别加以标注和致谢中所罗列的内容以外,论文中不包含其他人已经发表或撰写过的研究成果,也不包含为获得北京邮电大学或其他教育机构的学位或证书而使用过的材料。与我一同工作的同志对本研究所做的任何贡献均已在论文中作了明确的说明并表示了谢意。

申请学位论文与资料若有不实之处,本人承担一切相关责任。

本人签名: 日期:

关于论文使用授权的说明

学位论文作者完全了解北京邮电大学有关保留和使用学位论文的规定,即:研究生在校攻读学位期间论文工作的知识产权单位属北京邮电大学。学校有权保留并向国家有关部门或机构送交论文的复印件和磁盘,允许学位论文被查阅和借阅;学校可以公布学位论文的全部或部分内容,可以允许采用影印、缩印或其它复制手段保存、汇编学位论文。(保密的学位论文在解密后遵守此规定)

非保密论文注释:本学位论文不属于保密范围,适用本授权书。

本人签名: 日期:

导师签名: 日期:

II

北京邮电大学硕士研究生毕业论文 中文摘要

基于知识库推理的礼品推荐系统的设计与实现

摘 要

当今,个性化推荐系统已经在很多领域得到了应用,如网络商品推荐、音乐推荐、影视推荐等。推荐技术包括协同过滤、内容过滤、知识发现等,但是这些推荐技术并没有考虑推荐领域的知识对推荐结果的影响,或者推荐结果没有通过与用户的交互过程中得到完善和改进。

鉴于以上问题,本文针对礼品推荐领域提出了基于知识库的推荐方法。首先在调研了礼品信息和礼品赠送知识后构建礼品知识库,然后礼品专家通过人工方式对礼品知识库进行初始化,最后系统根据礼品的基本信息计算出礼品综合相似度对礼品知识库进一步完善。本文采用AJAX等技术设计并实现具有良好用户体验的知识库推荐用户接口,采用全文检索引擎工具包Lucene对礼品信息构建索引并根据用户的日志设计个性化的礼品搜索功能。

本文第一章介绍了推荐系统的研究背景和国内外的研究现状以及本文的研究路线方法和研究内容。第二章介绍了主要的推荐算法和本系统所涉及的关键技术。第三章描述了系统的需求分析,包括任务概述、需求规定以及运行环境的规定。第四章阐述了系统设计,包括系统整体功能设计和系统整体架构设计。第五章详细描述了系统实现中的关键问题和解决方案。第六章对系统进行功能测试和性能测试。第七章是工作总结和进一步的展望。

关键词:礼品推荐 知识库 相似度 个性化 搜索

III

北京邮电大学硕士研究生毕业论文 英文摘要

Knowledge-based Gifts Recommendation System Design and

Implementation

ABSTRACT

Personalized 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 isn't 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 user's 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

IV

北京邮电大学硕士研究生毕业论文 目录

目录

V

北京邮电大学研究生毕业论文

第一章 绪论

1.1 研究背景

随着互联网和电子商务的迅速发展,人类己步入网络信息时代。随着信息技术特别是网络技术的发展,信息系统的规模越来越大,数量越来越多,信息获取的工具和方法越来丰富,在更方便的为用户提供越来越多信息和服务的同时,其结构和内容越来越复杂,在海量信息中,用户及时、准确地获得所需要的信息也更加困难[1]。海量信息的同时呈现,一方面使用户很难从中发现自己感兴趣的部分, 另一方面也使得大量少人问津的信息成为网络中的“暗信息”,无法被一般用户获取[2]。面对网络信息量呈指数增长,如何从这浩瀚的海洋中取得所需要的、真正有用的信息,已成为广大网络用户共同面临的问题。首先,由于很难准确描述出需要的信息的特征,用户常常会面对大量的信息而束手无策,迷失在大量的信息空间中;其次,信息系统单纯依靠提供的检索方式,往往不能满足用户描述检索条件的需求,找不到描述信息需求的方式。另外,用户每次获取信息,都要输入大量、烦琐的检索条件,而信息系统不能通过服务历史和服务过程掌握用户需求,信息系统不能产生对用户持久的吸引力。

在这种背景下个性化智能推荐服务(Personalized Recommender Services)应运而生并迅速发展起来,它通过与用户交互过程中获取的信息推测用户的兴趣偏好,并根据用户的兴趣偏好推荐符合用户兴趣偏好的信息。个性化智能推荐服务不仅可以帮助用户找到所需信息,而且通过个性化智能推荐服务,可以有效保留用户,提高信息系统的吸引力和用户的忠诚度[3]。

1.2 研究现状

1.2.1 国外研究现状

在推荐用户模型方面,常用的用户建模技术有向量空间模型[4]、用户评价矩阵[5],以及机器学习技术[6]。在推荐算法方面,协同过滤是应用最广泛的个性化推荐技术。协同过滤首先计算用户之间的相似度,然后将相似度最高的用户作为

1

北京邮电大学研究生毕业论文

最近邻居,最后通过最近邻居用户产生推荐结果。

Kuo R J, Liao J L和 Tu C提出了一个利用神经网络和遗传K-means 算法通过分析用户在电子商务网站的浏览路径来获取用户偏好的方法。各种挖掘技术如关联规则挖掘、聚类挖掘等被应用于Web 日志的分析中,以提高推荐系统的精度[7]。

Amazon.com推荐系统是由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]。

2

北京邮电大学研究生毕业论文

Gift Ideas(www.gifts.com)是一个专业的个性化礼品推荐网站,网站的礼品知识库非常专业,推荐页面用户体验性非常好。网站从收礼人信息,送礼场合,个性化定制,礼品分类等多方面向用户进行礼品推荐。

1.2.2 国内研究现状

复旦大学的邓爱林等针对用户评分数据极端稀疏情况下传统相似性度量方法的不足,提出了一种基于项目评分预测的协同过滤推荐算法,根据项目之间的相似性初步预测用户对未评分项目的评分,在此基础上,采用一种新颖的相似性度量方法计算目标用户的最近邻居 [13]。

浙江大学的孙小华针对协同过滤在无法得到项目的内容信息和用户个人信息的情况下,在数据稀疏和冷启动情况下提高预测准确性方面采用了属于特征递增型的Pear After_SVD方法和属于转换型的LCM STI方法。针对新用户和新项目的冷启动问题采用了基于统计的众数法阻及信息熵法来解决[14]。

清华大学的邢春晓和高凤荣等人针对传统协同过滤算法不能及时反映用户兴趣变化的问题,提出了两种改进度量:基于时间的数据权重和基于资源相似度的数据权重,在此基础上将它们有机结合,将这两种权重引入基于资源的协作过滤算法的生成推荐过程中,通过实验证明改进后的算法比传统协作过滤算法在推荐准确度上有明显提高[15]。

北京航空航天大学的张光卫等人针对传统相似度度量方法存在的不足,利用云模型在定性知识表示以及定性、定量知识转换时的桥梁作用,提出一种在知识层面比较用户相似度的方法,克服了传统基于向量的相似度比较方法严格匹配对象属性的不足。以该方法为核心,在全面分析传统方法的基础上,提出一种新的协同过滤推荐算法。实验结果表明,算法在用户评分数据极端稀疏的情况下,仍能取得较理想的推荐质量 [16]。

国内推荐系统的应用现状如下:

豆瓣网(http://www.douban.com/)是一个以图书,影视和音乐数字产品推荐为目的的网站。注册用户可以对所喜欢的数字产品进行1-5分的评分,豆瓣后台通过一定的推荐算法向用户进行推荐,同时,用户可以对数字产品进行评论,并可以参考其他用户的评论作为推荐依据。最后用户还可以加入豆瓣的兴趣小组,这样同兴趣小组成员的推荐更加精准,更加符合用户的兴趣。

淘宝礼物(http://gift.taobao.com/)是淘宝网推出的个性化礼物推荐平台,依托于淘宝巨大的消费平台。淘宝礼物将收礼人细分为男人,女人,青少年,儿童和婴儿五种类型,并且每种类型的人都有若干种送礼主题。另外还有送礼场景包括生日送礼,婴儿诞生,乔迁新居,爱意表达等。最后推荐个性化礼物。

3

北京邮电大学研究生毕业论文

1.3 研究意义

电子商务网站是推荐系统应用最广泛的地方。根据电子商务网站的运营特征中国的电子商务网站可分为三类:平台性质的电子商务网站,以淘宝为典型代表,不存在仓储、物流等服务,仅仅提供一个平台让更多的人在其中开店;服务型的电子商务网站,以当当、京东商城为典型代表,有自己的仓储、物流等;品牌型电子商务网站,销售自己品牌旗下产品,一般为企业官网建立的电子商务网站,例如凡客诚品。

2010年电子商务在中国发展如火如荼。根据国内著名互联网分析机构艾瑞咨询调查显示,淘宝网占据国内电子商务80%以上的市场份额。2009年淘宝网销售额达到了2000亿人民币,预计2010年淘宝网销售额将翻一番达到4000亿人民币。由此可计算出2010年中国的电子商务总销售额将达到5000亿人民币。当当网已经形成以图书、化妆品、家居、母婴等为主的核心品类,并于美国东部时间12月8日在美国纽约证券交易所正式挂牌上市。京东商城增长速度每年都在300%以上,成了互联网和零售业的又一个奇迹制造者。凡客诚品2010年销售的衣服达到了4000万件。

由上面的数据可以说明电子商务已经在中国开始全面发展,随着电子商务的发展,电子商务网站的用户和销售的商品急剧增加,如何为每个用户提供个性化的推荐服务成为电子商务发展的重要问题。礼品作为电子商务网站中的特殊商品最具个性化的需求。每个送礼人都希望送出一份个性化的礼品,每个收礼人都希望收到一份适合自己的礼品。因此,基于知识库的礼品推荐系统的研究具有很高的经济价值和社会价值。

基于知识库的礼品推荐系统有其优点也有其缺点。优点是可以全面形象地描述用户的送礼需求,通过礼品知识库进行推理向用户推荐准确的个性化的礼品。缺点是礼品知识库需要礼品专家进行人工初始化,而且礼品知识库容易受到礼品专家喜好的影响。

1.4 本文工作

1.4.1 研究路线和方法

本文从淘宝网上抓取数千礼品信息,然后采用正则表达式进行文本提取,将提取的文本信息保存到数据库形成礼品库。同时调研礼品领域知识,如礼品分类,送礼节日场合等知识并根据这些知识构建礼品知识库。然后对其中一部分礼品的

4

北京邮电大学研究生毕业论文

知识库进行人工初始化,并结合根据礼品基本信息计算出的礼品综合相似度对礼品知识库进行完善。设计良好用户体验的推荐交互界面准确全面地表达用户的需求,从节日场合,收礼人兴趣爱好和收礼人描述向用户进行推荐。最后根据用户对推荐礼品的反馈信息对知识库进一步调整和完善。

本文在搜索技术上采用开源的全文搜索引擎Lucene对礼品基本信息构建索引,同时结合用户的浏览日志分析用户偏好为用户的礼品搜索提供个性化的礼品推荐。

1.4.2 主要研究内容

本文的主要研究内容为推荐系统在礼品推荐领域的应用研究,本文采用了知识库推荐的方法,并结合礼品个性化搜索,最后根据知识库的特点设计具有良好用户体验的推荐交互界面更好地描述用户的需求向用户提供个性化的礼品推荐服务。

1.4.3 研究任务

本文的研究任务有如下三个方面:

礼品知识库的构建:调研具有中国文化特色的礼品赠送知识,并根据这些知识构建礼品知识库。

礼品知识库的初始化和完善:用礼品专家的礼品知识对礼品知识库进行初始化,然后采用一定的算法对礼品知识库进行完善。

礼品个性化搜索的设计:构建礼品索引,并结合用户浏览日志向用户提供个性化的礼品搜索。

推荐交互界面的设计:根据知识库设计具有良好用户体验的推荐交互界面准确全面地描述用户的需求。

第二章 个性化推荐算法及系统实现关键技术介绍

5

北京邮电大学研究生毕业论文

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. 基于新产品的内容过滤

新产品进入系统后,系统将新产品与产品特征数据库进行匹配,然后提取新

6

北京邮电大学研究生毕业论文

产品的特征。再把用户数据库中的用户偏好类别与产品特征进行相似度匹配,从而生成推荐列表, 最后根据用户反馈进行修正学习。

2. 基于新用户的内容过滤

新用户进入后,系统提取用户个性化特征 ,提取的方法一般有三种,一是问问题,二是通过注册信息获得,三是通过用户行为进行提取。然后将用户与系统用户特征数据库进行匹配,归到一个用户类别中,再根据这个类别进行推荐,最后再进行修正学习。

3. 内容过滤的优缺点

优点:正如内容过滤出现的原因内容过滤对推荐结果的解释更换在一定程度上解决了协同过滤方法中的用户多偏好和产品内容多样的问题,可以让用户提供一定的初始化信息,辅助系统做出更好的推荐。

缺点:第一,产品提供商可能会有意更改产品特征误导系统以获取推荐机会。第二,商品属性提取困难。很难定义商品属性和用户特征的类别,那么也就很难做出精确的匹配。而且这些属性特征成千上万,随着系统的不断学习,数据库规模还会不断扩大,对系统的性能也会有很大的影响。第三,精确度问题,有试验表明内容过滤推荐可能不如协同过滤更为精确。

2.3 知识发现( Knowledge Discovery in Data-base - KDD)

知识发现是从数据库中提取隐含的、先前未知的、潜在有用的知识或信息模式的决策支持方法。知识发现需要提取发现用户和产品的特征,所采用的方法是分类、聚类、关联规则等数据挖掘方法。知识发现将用户请求视作一个查询 ,然后基于用户需求和偏好进行推荐。这个方法需要了解产品用户之间的关系和特征。这些知识的获取有赖于知识库的建立,使得数据挖掘的方法得到了巨大的应用[21]。

1. 数据挖掘技术的应用

数据挖掘就是从大量的、不完全的、有噪声的、模糊的、随机的实际应用数据中, 提取隐含在其中的但又是潜在有用的信息和知识的过程[22]。随着信息技术的高速发展,人们积累的数据量急剧增长,动辄以TB计,如何从海量的数据中提取有用的知识成为当务之急。数据挖掘就是为顺应这种需要应运而生发展起来的数据处理技术。数据挖掘是知识发现的关键步骤。

电子商务推荐系统中的数据挖掘主要包括关联规则挖掘和分类挖掘两类 ,因此基于数据挖掘的知识发现方法又分为关联规则推荐和分类挖掘推荐两种。关联规则推荐方法是先根据销售数据发现不同商品在销售过程中的相关性,然后基

7

北京邮电大学研究生毕业论文

于生成的关联规则模型和用户的购买行为产生推荐结果;分类挖掘推荐方法是通过聚类、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 = Pattern.compile(\"a*b\"); Matcher m = p.matcher(\"aaaaab\"); boolean b = m.matches();

Java.util.regex.Pattern是正则表达式的编译表示形式,指定为字符串的正则表达式必须首先被编译为此类的实例。然后,可将得到的模式用于创建java.util.regex.Matcher对象, 依照正则表达式,该对象可以与任意字符序列匹配。

8

北京邮电大学研究生毕业论文

执行匹配所涉及的所有状态都驻留在匹配器中,所以多个匹配器可以共享同一模式。最后可通过Matcher.matches()方法验证字符序列与所编译的正则表达式是否相匹配。

在JAVA中使用正则表达式查找字符串的典型调用语句是 boolean b = Pattern.compile(regEx).matcher(str).find()

其中regEx是需要编译的正则表达式,str为需要进行查找的文本或字符串,通过Matcher.matches()方法可以查找文本或字符串str中是否存在符合正则表达式规则regEx的字符串[27]。

2.4.2 Lucene

Lucene 是一个apache软件基金会jakarta项目组的一个子项目[28],Lucene是用Java 写的全文检索引擎工具包,可以方便地嵌入到各种应用中实现针对应用的全文索引/ 检索功能,Lucene 有两个主要的服务,索引和检索,两者任务是相互的。这使得开发人员可以根据需要对它们进行扩展。Lucene 提供了丰富的API ,可以与存储在索引中的信息方便的交互[29]。需要说明的是它并不是一个完整的全文检索应用,而是为应用程序提供索引和搜索功能。即若想让Lucene 真正起作用,还需在其基础上做一些必要的二次开发[30]。Lucene的目的是为软件开发人员提供一个简单易用的工具包,以方便的在目标系统中实现全文检索的功能,或者是以此为基础建立起完整的全文检索引擎。

Lucene的原作者是Doug Cutting,他是一位资深全文索引/检索专家,曾经是V-Twin搜索引擎的主要开发者,后在Excite担任高级系统架构设计师,目前从事于一些Internet底层架构的研究。早先发布在作者自己的http://www.lucene.com/,后来发布在SourceForge,2001年年底成为apache软件基金会jakarta的一个子项目:http://jakarta.apache.org/lucene/。

作为一个开放源代码项目,Lucene从问世之后,引发了开放源代码社群的巨大反响,程序员们不仅使用它构建具体的全文检索应用,而且将之集成到各种系统软件中去,以及构建Web应用,甚至某些商业软件也采用了Lucene作为其内部全文检索子系统的核心。apache软件基金会的网站使用了Lucene作为全文检索的引擎,IBM的开源软件eclipse的2.1版本中也采用了Lucene作为帮助子系统的全文索引引擎,相应的IBM的商业软件Web Sphere中也采用了Lucene。Lucene以其开放源代码的特性、优异的索引结构、良好的系统架构获得了越来越多的应用。

Lucene作为一个全文检索引擎,其具有如下突出的优点:

(1)索引文件格式于应用平台。Lucene定义了一套以8位字节为基础的索引文件格式,使得兼容系统或者不同平台的应用能够共享建立的索引文件。

9

北京邮电大学研究生毕业论文

(2)在传统全文检索引擎的倒排索引的基础上,实现了分块索引,能够针对新的文件建立小文件索引,提升索引速度。然后通过与原有索引的合并,达到优化的目的。

(3)优秀的面向对象的系统架构,使得对于Lucene扩展的学习难度降低,方便扩充新功能。

(4)设计了于语言和文件格式的文本分析接口,索引器通过接受Token流完成索引文件的创立,用户扩展新的语言和文件格式,只需要实现文本分析的接口。

(5)已经默认实现了一套强大的查询引擎,用户无需自己编写代码即使系统可获得强大的查询能力,Lucene的查询实现中默认实现了布尔操作、模糊查询(Fuzzy Search[11])、分组查询等等[31]。

面对已经存在的商业全文检索引擎,Lucene也具有相当的优势。首先,它的开发源代码发行方式(遵守Apache Software License),在此基础上程序员不仅仅可以充分的利用Lucene所提供的强大功能,而且可以深入细致的学习到全文检索引擎制作技术和面相对象编程的实践,进而在此基础上根据应用的实际情况编写出更好的更适合当前应用的全文检索引擎。在这一点上,商业软件的灵活性远远不及Lucene。其次,Lucene秉承了开放源代码一贯的架构优良的优势,设计了一个合理而极具扩充能力的面向对象架构,程序员可以在Lucene的基础上扩充各种功能,比如扩充中文处理能力,从文本扩充到HTML、PDF等等文本格式的处理,编写这些扩展的功能不仅仅不复杂,而且由于Lucene恰当合理的对系统设备做了程序上的抽象,扩展的功能也能轻易的达到跨平台的能力[32]。最后,转移到apache软件基金会后,借助于apache软件基金会的网络平台,程序员可以方便的和开发者、其它程序员交流,促成资源的共享,甚至直接获得已经编写完备的扩充功能。最后,虽然Lucene使用Java语言写成,但是开放源代码社区的程序员正在不懈的将之使用各种传统语言实现(例如.net framework),在遵守Lucene索引文件格式的基础上,使得Lucene能够运行在各种各样的平台上,系统管理员可以根据当前的平台适合的语言来合理的选择。

2.4.3 AJAX

AJAX的全称是Asynchronous JavaScript XML(即异步JavaScript和XML)。AJAX是一种Web应用程序开发的手段,它采用客户端脚本与Web服务器交换数据。所以,不必采用会中断交互的完整页面刷新,就可以动态地更新Web页面。使用Ajax,可以创建更加丰富、更加动态的Web应用程序用户界面,其即时性与可用性甚至能够接近本机桌面应用程序。这使得Web应用的交互性得到了前所未有的提高,大大增强了应用的实用性和实时性。

10

北京邮电大学研究生毕业论文

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 实现目标

该系统要实现如下四个目标:

11

北京邮电大学研究生毕业论文

1. 礼品知识库的构建

礼品推荐有其特殊的领域知识,比如送礼人的个人信息,收礼者的个人信息,送礼人与收礼人的关系,送礼的节日场合等,这些因素决定适宜推荐的礼品。本系统要调研礼品赠送知识并据此构建礼品知识库。 2. 礼品知识库的初始化和完善

利用礼品专家的知识对知识库进行部分初始化。然后通过一定的算法计算礼 品相似度,根据礼品的相似度对礼品知识库进行完善。 3. 礼品知识库推荐

系统要提供一个良好的知识库推荐接口,此接口能够准确描述用户的需求, 并使用户获得准确的礼品推荐和良好的用户体验。 4. 用户浏览推荐

用户浏览某一礼品的详细信息时,系统要向用户推荐与此礼品最相关的若干 礼品。

5. 礼品个性化搜索

系统要能够根据用户日志提供个性化的礼品搜索功能。

3.1.2 系统设计意图

该系统设计的意图是要将符合中国文化的礼品知识借助数据库进行知识库建模,通过礼品专家对知识库进行初始化,然后计算礼品的综合相似度对知识库进一步完善,同时,系统要提供个性化的礼品搜索功能。最后,设计良好的用户交互推荐接口提升用户的体验准确表达用户的需求进而向用户推荐礼品,在用户获得系统的推荐的同时,系统要根据用户的反馈信息进行学习从而提高系统的推荐准确度。

3.1.3 假定和约束

为了保证推荐的准确性和客观性,本系统的假定和约束如下:

1) 从淘宝网上抓取的40类共3000个礼品在一定时间内不会下架,即用户得到礼品推荐后可以从网上买到该礼品。

2) 所有礼品的分类准确,且商家对礼品的描述不含欺诈信息。

3.2 需求规定

12

北京邮电大学研究生毕业论文

3.2.1 系统功能的需求规定

1) 基于节日场合的推荐

基于送礼节日场合推荐通过用户选择送礼的节日或场合来获得系统的礼品推荐。

选择节日<><><><>获得节日推荐获得场合推荐用户<><>选择场合 图3-1基于节日场合推荐用例图

如上图所示,基于节日场合推荐的用例图,用户根据自己的需求选择送礼节日或场合,系统调用节日场合推理向用户进行礼品推荐。

由于送礼的节日和场合不同,赠送的礼品会有所不同。如情人节送花和巧克力合适,中秋节送月饼合适,孩子满月送毛绒玩具,小衣服等合适,朋友生日送毛绒熊合适。本系统将把礼品赠送节日场合分类如下。

送礼的节日有:春节,元宵节,情人节,妇女节,母亲节,儿童节,端午节,父亲节,七夕节,中秋节,教师节,感恩节,圣诞节,元旦等。

送礼的场合有:恋爱,约会,结婚,周年,生日,孩子满月,乔迁新居,升学,毕业,退休,升职,探病,慰问,感谢等。

2) 基于收礼对象的推荐

基于收礼对象推荐是通过用户选择收礼者的身份,如性别,年龄,兴趣爱好来获得系统的推荐礼品。

13

北京邮电大学研究生毕业论文

选择收礼人性别年龄<><>获得收礼对象推荐<><>选择收礼人兴趣爱好<><>用户<>获得兴趣爱好推荐

图3-2基于收礼对象推荐用例图

如上图所示,基于收礼对象推荐的用例图,用户选择收礼人的年龄或性别获得系统收礼对象推荐,然后用户再选择收礼人的兴趣爱好获得系统兴趣爱好推荐。

收礼者的身份不同,赠送的礼品也会有所不同。如,赠送男人宜送领带,钱包,商务包等;赠送女人宜送口红,厨房用品等;赠送孩童宜送文具,卡通玩具等。

类别 老人 男人 女人 青年 少年 婴儿 表3-1收礼人基本信息划分 备注 表示60岁以上的老人 年龄介于25到60岁的所有男人 年龄介于25到60岁的所有女人 年龄介于17到24岁的青年人 年龄介于4到16岁的少年儿童 年龄介于0到3周岁的婴儿 根据收礼者的兴趣爱好赠送的礼物也有所不同,如喜欢时尚的女人应赠送化妆品,衣服等;喜欢运动的男人可赠送运动装备等礼品。

表3-2收礼人兴趣爱好划分 类别 兴趣划分 老人 运动,旅游,书画,音乐,阅读,棋牌,居家,烹饪,营养品 男人 运动,旅游,探险,宅男,音乐,书画,影视,阅读,交际,游戏 女人 时尚,购物,美容,运动,旅游,居家,烹饪,宅女,音乐,舞蹈,书画,影视,阅读,交际,探险 14

北京邮电大学研究生毕业论文

青年 少年 婴儿

运动,购物,时尚,影视,阅读,交际,音乐,舞蹈,书画,游戏 运动,动画,阅读,舞蹈,书画,游戏,玩具 玩耍,睡觉,洗澡,营养品 3) 基于收礼人描述的推荐

当用户对收礼人的个人信息无法完整的描述时可以通过基于收礼人描述的方法来获得礼品推荐。

选择收礼人性别年龄<><><>选择收礼人描述<>用户<>获得推荐

图3-3基于收礼人描述推荐用例图

如上图所示,基于收礼人描述的推荐用例图将收礼人根据年龄和性别分为男人、老年男性、女人、老年女性、男青年、女青年、男孩儿、女孩儿,用户选择收礼人年龄和性别分类。每种人根据其特点对其类型进行划分,并对该类型的收礼人从图片、服饰特点、周末活动、性格特征、兴趣爱好和个人偶像来进行描述,用户根据这些特征描述来选择收礼人并获得系统的推荐。

表3-3收礼人特征类型划分 类型 特征描述分类 男人 阳光男人、宅男、合格爸爸、成功男人、探险男、休闲男、艺术男、思考男、书画男、贵族男 老年男性 悠闲老人、思考老人、慈祥爷爷、运动老人、威严爷爷 女人 标准妈妈、成功女性、悠闲女、全职太太、时尚女、宅女、交际女、文艺女、探险女、阳光女人 老年女性 时尚奶奶、美食奶奶、思考奶奶、慈祥奶奶、运动奶奶 男青年 阳光男孩、艺术BOY、时尚男孩、阅读达人、游戏狂人、影视FANS 女青年 购物狂、阳光女孩、影视发烧友、探险女孩、文学女孩、时尚丽人 男孩儿 玩耍少年、运动少年、卡通FANS 女孩儿 阳光女孩儿、书画女孩儿、舞蹈天使、运动女孩儿 15

北京邮电大学研究生毕业论文

4) 礼品知识库构建

礼品知识库推荐需要一个完善的礼品知识库进行推理。调研礼品领域的知识并据此构建礼品知识库,将礼品知识库以数据库的形式来保存。

礼品知识库初始化包括两步:一是人工初始化;二是系统完善。

<>选择适宜赠送的节日场合<>保存节日场合知识库<><>礼品专家选择适宜赠送的收礼对象保存收礼对象知识库

图3-4礼品知识库人工初始化用例图

如上图所示,人工初始化用例图。人工初始化是通过礼品专家对每个礼品选择其适合赠送的节日场合,收礼对象的性别、年龄、兴趣、与送礼人的关系,并将这些信息以合理的方式保存起来。

计算礼品类别相似度<><>计算礼品商家相似度<>计算礼品综合相似度<>完善礼品知识库计算礼品价格相似度 图3-5礼品知识库完善用例图

如上图所示,礼品知识库完善用例图。由于礼品数量众多,所以通过礼品专家进行初始化只能初始化一部分礼品,其它的礼品就要根据礼品的基本信息计算礼品的综合相似度,然后根据礼品的综合相似度对礼品知识库进行完善。

16

北京邮电大学研究生毕业论文

6) 个性化搜索

系统根据用户的搜索日志分析用户的偏好。当用户输入搜索关键字时系统结合分析出的用户搜索偏好向用户返回个性化的搜索结果。例如,如果用户多次用价格排序,说明礼品价格对用户的购买行为影响较大,则系统搜索的时候优先以价格排序。如果用户多次用信用排序,说明商家信用对用户的决策影响较大,则系统搜索的时候优先以信用排序。

3.2.2 系统性能的需求规定

 精度要求

本系统要求用户根据自己的需求选择节日场合,收礼人信息,搜索关键字等信息。礼品的相似度保留到小数点后4位。  时间特性要求

本系统不仅需要处理大量的知识库数据,还要保证礼品推荐的实时性,因此从用户选择需求并发送请求后500ms内要返回用户的推荐结果,从用户输入搜索关键字并发送请求后200ms内要返回用户的搜索结果。  输入输出要求

输入1:用户的需求。如选择节日场合,选择收礼人的信息等

输出1:满足用户需求的礼品信息推荐列表,包括礼品图片,礼品名称,礼

品URL等,每页显示40个礼品,超过40个礼品进行分页显示。

输入2:用户的搜索关键字。

输出2:匹配搜索关键字和用户个性化需求的礼品信息搜索列表,包括礼品

图片,礼品名称,礼品URL等,每页显示40个礼品,超过40个礼品进行分页显示。

输入3:用户选择点击礼品列表中的某个礼品。

输出3:该礼品的详细信息,包括礼品图片,礼品名称,礼品商家,礼品价

格等。此外,要返回与该礼品基本信息相似的三个礼品和用户浏览相似的三个礼品。

 数据管理能力要求

所有礼品信息均从淘宝网上抓取,礼品信息要随时进行更新。

礼品知识库经过人工初始化后,再通过相似度进行完善,要剔除礼品知识库中的噪声并不断完善礼品知识库。  故障处理要求

如果大量用户同时频繁访问数据库,导致数据库服务器瘫痪,需要进一步优

17

北京邮电大学研究生毕业论文

化数据库缓存机制和索引。

针对数据库故障导致数据丢失,要定时对数据库数据进行备份。  其他性能要求 1) 保证系统的可扩展性

系统采用流行框架,代码和页面分离,业务逻辑和数据库操作分离,便于以后的数据库更换和系统维护升级。 2) 保证系统的可移植性

系统所有代码采用Java语言编写,保证了系统的可移植性。

3.3运行环境规定

3.3.1 设备支持

运行本系统的硬件设备建议满足以下条件: 1. 处理器为奔三及以上 2. 内存容量大于等于512M

3.3.2 软件系统支持

操作系统:Windows ,Linux 数据库:Oracle 10g

JDK版本:JDK 5.0及以上版本 搜索开源包:Lucene 2.4

3.4 小结

本章主要介绍个性化礼品推荐系统的需求分析,说明了本推荐系统最终要实现的功能目标和设计意图以及实现这些功能目标对数据和用户做的一些约束与,详细描述了系统对功能的需求规定和对性能的需求规定,最后声明了系统的性能要求及运行环境要求。

18

北京邮电大学研究生毕业论文

第四章 礼品推荐系统设计

4.1 系统整体功能设计

4.1.1 系统模块设计

 系统整体模块图,如图4-1所示:

礼品推荐系统知识库构建模块推荐推理模块个性化搜索模块用户交互模块知识库初始化知识库完善节日场合推理收礼对象推理收礼人描述推理相似度推理索引构建礼品搜索用户注册登录用户需求获取推荐结果产生19

北京邮电大学研究生毕业论文

图4-1系统整体模块图

 系统整体模块结构图描述 1) 知识库构建模块

通过调研礼品赠送知识设计知识库,并让礼品专家初始化礼品库,然后通过一定的算法对知识库进行完善。完善的知识库为推荐推理模块提供了推理和数据支持。

2) 推荐推理模块

推荐推理模块包括节日场合推理,收礼对象推理,收礼人描述推理和相似度推理四种推理方式。这四种推理方式分别接受用户交互模块传来的参数,经过推理计算后将结果返回到用户交互模块。 3) 个性化搜索模块

个性化搜索模块首先对礼品信息构建索引。礼品搜索接受用户交互模块传来的搜索关键字,然后结合用户的搜索日志分析用户的偏好,最后将搜索的结果返回给用户交互模块。 4) 用户交互模块

用户交互模块包括用户注册登录,用户需求获取和推荐结果产生。用户交互模块直接与用户交互获得用户的需求并将用户的需求量化成参数传给推荐推理模块,最后将推荐推理模块返回的推荐结果展示给用户。

4.1.2 系统功能设计

 系统推荐功能模块图,如图4-2所示:

礼品推荐系统节日场合推荐收礼对象推荐收礼人描述推荐图4-2系统推荐功能模块图

个性化搜索礼品浏览推荐

 系统推荐功能模块描述

20

北京邮电大学研究生毕业论文

1) 节日场合推荐

用户选择要送礼物的节日(如:中秋节,圣诞节,情人节等)或场合(如:约会,生日,乔迁新居等),系统向用户推荐适合该节日或场合的礼品。 2) 收礼对象推荐

用户选择收礼人的类别(如:老年人,中年人,男青年,女青年等),系统向用户推荐适合该年龄段的礼品。同时,用户也可以选择每个年龄段的的兴趣爱好(如:老年人的兴趣爱好有书画,运动,旅游等),系统向用户推荐符合该年龄兴趣爱好的礼品。 3) 收礼人描述推荐

系统根据收礼人的年龄,性别,爱好,职业等信息进行分类,并对每一类别从服饰特征,周末活动,个人偶像等方面进行描述,用户根据对收礼人的了解与描述进行匹配然后选择,最后系统向用户进行礼品推荐。 4) 个性化搜索

用户输入搜索礼品的关键字,系统先对关键字进行分词处理,然后通过分析用户的搜索日志记录分析用户的搜索偏好,最后结合用户的搜索偏好进行搜索并返回用户搜索的结果。 5) 礼品浏览推荐

用户浏览某个礼品的详细信息时,系统同时向用户推荐与此礼品基本信息最相似的礼品和浏览过此礼品的用户浏览其它礼品次数中最多的礼品。

4.2 系统整体架构设计

21

北京邮电大学研究生毕业论文

4.2.1 系统架构设计

知识库模型进一步完善知识库推荐用户交互互联网初始化Spider礼品专家礼品知识库礼品库文本提取构建索引计算相似度礼品相似度用户日志索引礼品搜索用户网页抓取子系统知识库与搜索子系统推荐子系统

图4-3系统整体架构设计图

如上图所示,系统整体架构设计图。系统共包括三个子系统:网页抓取子系统、知识库与搜索子系统和推荐子系统。

(1) 网页抓取子系统

从淘宝网上抓取礼品信息,包括礼品名称,图片,URL,价格,商家等信息。由于只抓取礼品信息,所以传统的爬虫已不太适用。通过调研将礼品分为类40小类,对这40小类的礼品从淘宝网上进行数据抓取,同时利用正则表达式对礼品信息进行抽取,最后将礼品信息保存到数据库中形成礼品库。

(2) 知识库与搜索子系统

调研礼品赠送知识并构建知识库模型,礼品专家对礼品知识库进行初始化。由于人工初始化的礼品数量有限,因此借助自动化程序计算礼品的相似度对其它礼品进行初始化,最后形成完善的礼品知识库。利用Lucene全文检索引擎工具包将礼品库中的礼品信息建立索引,与用户日志一起为礼品搜索提供个性化的搜索数据。

(3) 推荐子系统

推荐子系统包括知识库推荐,礼品搜索和用户交互。礼品推荐要准确清晰地表达用户的需求,因此需要设计具有良好交互性的推荐界面从不同方面描述用户的需求,推荐模块根据从用户交互模块采集的用户需求查询礼品知识库,最终向用户返回推荐结果。用户输入搜索关键字,系统结合用户日志分析用户的搜索偏好最后向用户提供个性化的搜索服务。

22

北京邮电大学研究生毕业论文

4.2.2 系统包结构设计

图5-4 系统包组织结构图

如上图所示,系统包组织结构图。系统包结构设计描述如下:  edu.bupt.page包

存放系统页面分页的类。  edu.bupt.service包

存放系统推荐的业务逻辑。包括推荐推理逻辑,礼品搜索逻辑等。  edu.bupt.struts.action包

存放业务流程的控制逻辑。控制逻辑主要接受系统推荐页面出来的请求参 数,然后调用系统业务逻辑层,业务逻辑层调用系统数据访问层并最终返回数据,控制逻辑将这些数据返回到系统推荐页面。  edu.bupt.form包

存放系统的表单。这些表单存放从系统推荐页面传来的参数。  edu.bupt.vo包

存放系统的数据访问逻辑。  org.json包

存放系统的AJAX交互数据封装类。

4.2.3 系统类结构说明

 edu.bupt.page包

edn.bupt.page包中的类的描述如表5-1。

表5-1 edu.bupt.page包类结构清单 类名 Page PageUtil 描述 页面的参数类,记录页面的基本信息 页面对象生成类,用于生成Page对象 23

北京邮电大学研究生毕业论文

Result

 edu.bupt.service包

页面返回结果封装类 edn.bupt.service包中的类的描述如表5-2。

表5-2 edu.bupt.service包类结构清单 类名 BehaviorService GiftInfoService GiftSimilarityService OccationService PersonalService RecipientService SimilarityService

 edu.bupt.struts.action包

edn.bupt.struts.action包中的类的描述如表5-3。

表5-3 edu.bupt.struts.action包类结构清单

类名 BehaviorAction GiftInfoAction GiftSimilarityAction OccationAction PersonalAction RecipientAction SimilarityAction SearchAction UserAction

 edu.bupt.vo包

edn.bupt.vo包中的类的描述如表5-4。清单中只列出了POJO对象,每个POJO

24

描述 用户行为记录业务逻辑类,用于记录用户的行为 查看礼品详细信息业务逻辑类,用户查看礼品的详细信息 礼品相似度推荐业务逻辑类,用户礼品相似度推荐的业务逻辑实现 节日场合推荐业务逻辑类,节日场合推荐的业务逻辑实现 收礼人描述推荐业务逻辑类,收礼人描述推荐的业务逻辑实现 收礼人信息推荐业务逻辑类,收礼人信息推荐的业务逻辑实现 礼品关联度推荐业务逻辑类,礼品关联度推荐的业务逻辑实现 描述 用户行为记录控制类 查看礼品详细信息控制类 礼品相似度推荐控制类 节日场合推荐控制类 收礼人描述推荐控制类 收礼人信息推荐控制类 礼品关联度推荐控制类 礼品搜索控制类 用户注册登录控制类,用于处理用户的注册和登录 北京邮电大学研究生毕业论文

对象都有一个对应的DAO对象,DAO对象不再赘述。

表5-4 edu.bupt.vo包类结构清单 类名 Age Business Classes Clickgift Gifts GiftSimilarity Interest Occation OccationGift Recipients RecipientGift Relation Similarity Users

 org.json包

由于org.json是第三方开源的包,故在此不再描述。

年龄表对应的POJO类 商家表对应的POJO类 礼品类别表对应的POJO类 用户行为表对应的POJO类 礼品表对应的POJO类 礼品相似度表对应的POJO类 兴趣爱好表对应的POJO类 节日场合表对应的POJO类 节日场合礼品表对应的POJO类 收礼人信息表对应的POJO类 收礼对象礼品表对应的POJO类 关系表对应的POJO类 礼品关联度表对应的POJO类 用户表对应的POJO表 描述 4.3小结

本章主要从系统整体功能和系统整体架构两方面对系统设计进行了阐述。 系统整体功能描述了系统整体模块图和系统推荐模块图。系统整体模块图从系统整体方面对系统的功能模块进行划分和描述。系统推荐模块图主要从推荐功能对系统的模块进行了划分和描述。

系统整体架构描述了系统整体架构设计图,系统整体架构设计图从系统架构和流程对系统进行了描述。

25

北京邮电大学研究生毕业论文

第五章 系统实现

5.1系统实现的关键问题及解决方案

5.1.1 礼品信息抓取

本系统采用Java和正则表达式从淘宝网上抓取礼品信息,包括礼品图片,礼品名称,礼品分类,礼品URL,礼品所卖商家,礼品价格等信息。礼品信息的抓取按照如下步骤进行。

1) 调研礼品分类

由于礼品在分类方面没有一致的划分,通过调研国内若干知名的礼品网站的分类,总结了8个一级分类和40个二级分类。并将这些分类放到设计好的数据库分类表中。

2) 记录每个分类在淘宝上的搜索URL

利用淘宝的搜索系统搜索礼品的二级分类后的URL,并将URL和其相应的二级分类放到数据库表中。

3) 对淘宝页面的HTML进行分析,设计正则表达式进行抽取

由于淘宝的搜索结果的页面布局是相同的,设计正则表达式对页面的内容进行抽取。

4) 设计程序进行全自动化礼品信息抓取

设计Java程序,通过顺序读取URL,并利用正则表达式抽取每个URL页面中的礼品信息,并将抽取的礼品信息进行结构化存储到数据库表中。

到此,已经将结构化的礼品信息存储到了数据库中。

5.1.2 礼品知识库的设计

礼品推荐有四个方面的决定因素:节日场合,送礼人,收礼人和收礼人与送礼人的关系。节日场合指的是送礼的节日和场合,如中秋节,情人节,结婚,乔迁新居等。送礼人指的是送礼人的个人信息,如年龄,性别等。收礼人指的是收礼人的个人信息,如年龄,性别,兴趣爱好等。收礼人与送礼人关系指的是收礼人与送礼人的关系,如朋友,恋人,同事等。 (1) 节日场合

26

北京邮电大学研究生毕业论文

节日场合表包括节日场合名称和节日场合日期。礼物赠送的节日场合具有地域文化特点。

(2) 收礼人/送礼人

收礼人/送礼人个人信息包括年龄,性别和兴趣爱好。由于年龄只有两种情况,所以年龄不再新建表。针对年龄和兴趣爱好新建表。通过调研将年龄段分为五个阶段:0-3岁为婴儿;4-16岁为少年儿童;17-24岁为青年人;25-60岁为中年人;60岁以上为老年人。

通过调研将兴趣划分为:运动,旅游,书画,音乐,阅读,棋牌,居家,烹饪,营养品,探险,宅,影视,交际,游戏,时尚,购物,美容,舞蹈等。 (3)礼品知识库构建

根据上述知识设计数据库表。

关系表PK 礼品表PK IDNAMEPICTURECLASSIDFLAGLPICTUREWPICTUREVALUE收礼人类型表PK FK1FK3FK2IDGENDERIDAGEIDRELATIONIDINTERESTIDPK IDNAME兴趣爱好表PK IDNAME年龄表IDVALUENAME节日场合表PK IDNAMETIME节日场合礼品表PKFK2FK1 IDOCCATIONIDGIFTIDVALUE收礼对象礼品表PKFK2FK1 IDRECIPIENTIDGIFTIDVALUE

图5-1 礼品知识库ER图

如上图所示,礼品知识库ER图。每个表的定义如下: 关系表:表示收礼人与送礼人的关系。

表5-1 关系表(relation) 字段名称 ID 字段类型 NUMBER(20) 字段长度 20 可否为空 否 备注 自增ID,主键 27

北京邮电大学研究生毕业论文

NAME

VARCHAR2(30) 30 否 关系名称 兴趣爱好表:表示收礼人的兴趣爱好。

表5-2 兴趣爱好表(interest)

字段名称 ID NAME

年龄表:表示收礼人的年龄段。

表5-3 年龄表(age) 字段名称 ID VALUE NAME

节日场合表:表示赠送礼品的节日场合。

表5-4 节日场合表(occation)

字段名称 ID NAME TIME

礼品表:表示礼品信息。

表5-5 礼品表(gifts) 字段名称 ID 字段类型 NUMBER(20) 字段长度 20 28

字段类型 NUMBER(20) VARCHAR2(30) 字段长度 20 30 可否为空 否 否 备注 自增ID,主键 兴趣名称 字段类型 NUMBER(20) VARCHAR2(20) VARCHAR2(10) 字段长度 20 20 10 可否为空 否 否 否 备注 自增ID,主键 年龄段区间 年龄段名称 字段类型 NUMBER(20) VARCHAR2(30) DATE 字段长度 20 30 可否为空 否 否 否 备注 自增ID,主键 节日场合名称 节日场合时间 可否为空 否 备注 自增ID,主键 北京邮电大学研究生毕业论文

NAME PICTURE CLASSID VARCHAR2(200) VARCHAR2(200) NUMBER(20) 200 200 20 否 否 否 礼品名称 礼品图片地址 礼品所属类别ID,外键依赖礼品类别表的ID NUM FLAG NUMBER(12) NUMBER(1) 12 1 是 否 礼品数目 是否处理标志,0表示未处理,1表示已处理 LPICTURE WPICTURE VARCHAR2(200) VARCHAR2(200) 200 200 否 否 礼品大图片地址 礼品图片网络地址

收礼人类型表:根据收礼人的性别,年龄,兴趣爱好以及与送礼人的关系将收礼人分成的不同的类型。

表5-6 收礼人类型表(recipients) 字段名称 ID GENDERID AGEID 字段类型 NUMBER(20) VARCHAR(4) NUMBER(20) 字段长度 20 4 20 可否为空 否 是 是 备注 自增ID,主键 收礼人性别 收礼人年龄段ID,外键依赖年龄表的ID RELATIONID NUMBER(20) 20 是 收礼人与送礼人关系ID,外键依赖关系表的ID INTERESTID NUMBER(20) 20 是 收礼人兴趣爱好ID,外键依赖兴29

北京邮电大学研究生毕业论文

趣爱好表的ID

节日场合礼品表:表示适合某节日场合的礼品。

表5-7 场合礼品表(occationgift)

字段名称 ID OCCATIONID 字段类型 NUMBER(20) NUMBER(20) 字段长度 20 20 可否为空 否 否 备注 自增ID,主键 节日场合表ID,外键依赖节日场合表的ID VALUE

收礼对象礼品表:表示适合某类型收礼人的礼品。

表5-8 收礼对象礼品表(recipientgift)

字段名称 ID GIFTID 字段类型 NUMBER(20) NUMBER(20) 字段长度 20 20 可否为空 否 否 备注 自增ID,主键 礼品ID,外键依赖GIFT表的ID RECIPIENTID NUMBER(20) 20 否 收礼对象身份ID,外键依赖 收礼人类型表的ID VALUE

5.1.3 礼品知识库初始化和完善

NUMBER 38 否 偏好值 NUMBER 38 否 偏好值

礼品知识库是送礼领域的知识库,包括送礼节日场合,收礼人的个人信息(性别,年龄,兴趣爱好,与送礼人的关系等)。通过收集二十人的送礼偏好来初始化礼品知识库。

30

北京邮电大学研究生毕业论文

知识库模型礼品知识库初始化礼品库图5-2 礼品知识库初始化

收礼对象礼品表场合礼品表 如上图所示,礼品知识库初始化数据流程图,选取二十名礼品专家并为每个用户分配一个账号进行登录,为每个用户随机选取若干个礼品,用户根据礼品的图片和介绍并结合自己的送礼知识选择每个礼品适宜赠送的节日场合和收礼人的基本信息。然后系统将用户输入的信息保存到数据库收礼对象礼品表和场合礼品表中。这样由二十名礼品专家初始化的礼品知识就被保存到数据库中。

另外,由人工输入的礼品知识只能初始化部分礼品,其它的礼品的初始化需要计算礼品相似度。

类别计算商家相似度礼品商家相似度价格计算类别相似度礼品类别相似度计算综合相似度礼品综合相似度商家计算价格相似度礼品价格相似度 图5-3礼品综合相似度计算流程图

如上图所示,礼品综合相似度计算流程图。根据礼品的类别、价格和商家分别计算礼品类别相似度、价格相似度和商家相似度,再根据这三个相似度计算礼品综合相似度。  礼品商家相似度计算

定义礼品A和礼品B的商家相似度为S1,如果礼品A与礼品B为同一商家所卖,则A与B的商家相似度S1=1.0,否则S1=0.0。

31

北京邮电大学研究生毕业论文

 礼品类别相似度计算

礼品分为类,每大类分为若干小类,共有40小类。定义礼品A和礼品B的类别相似度为S2,如果礼品A与礼品B为同一小类,则A与B的类别相似度S2 =1.0,否则如果礼品A与礼品B为同一大类,则A与B的类别相似度S2=0.5,否则A与B的类别相似度S2=0.0[36]。  礼品价格相似度计算

对礼品进行价格区间划分,并用价格区间标志P表示。价格<50,P=0;50<=价格<100,P=1;100<=价格<200,P=2;200<=价格<500,P=3;500<=价格,P=4。 定义礼品A和礼品B的类别相似度为S3,礼品A与礼品B的价格相似度计

|P-P|算公式为:S3= AB。(注:PA表示礼品A的价格区间标志,PB表示礼品B的

4价格区间标志)。  礼品综合相似度计算

定义礼品的商家相似度,类别相似度和价格相似度的权值分别为W1,W2,W3,且W1+W2+W3 =1 。根据这三个相似度计算礼品的综合相似度。定义礼品的综合相似度为S,则礼品的综合相似度计算公式为:S = S1 * W1 + S2 * W2 + S3 * W3 (本系统取W1 = W2 = W3)  礼品知识库完善

礼品库取得未初始化的A礼品礼品相似度库取得与A礼品综合相似度最高的B礼品完善的知识库根据礼品B的初始化信息初始化A礼品 图5-4 礼品知识库完善流程图

通过上面四步计算出礼品之间的综合相似度,假设礼品B经过人工进行了初始化,而礼品A未进行初始化,并且B是与A相似度最高的礼品,则A可根据B的知识库初始化信息进行初始化。通过这种方法,所有的礼品都可得到初始化。

32

北京邮电大学研究生毕业论文

5.1.4 礼品关联规则

当用户查看某礼品的详细信息时,系统向用户推荐与此礼品相关的礼品。本系统从礼品相似度和浏览信息关联度两方面向用户推荐相关礼品。

(1) 礼品相似度

用户浏览某礼品返回推荐礼品礼品库查询相似度礼品综合相似度计算综合相似度价格相似度类别相似度商家相似度 图5-5礼品相似度推荐流程图

如上图所示,系统根据礼品价格相似度,类别相似度和商家相似度计算礼品的综合相似度,将计算的礼品综合相似度保存到数据库中。用户浏览某个礼品的详细信息时,系统查询与此礼品综合相似度最高的若干礼品,并将这些礼品推荐给用户。

(2) 礼品关联度推荐

用户浏览某礼品返回推荐礼品礼品库查询关联度礼品浏览关联度计算礼品浏览关联度计算浏览同一礼品的用户用户浏览关联度用户浏览日志

图5-6浏览关联度推荐流程图

如上图所示,系统根据用户浏览日志计算浏览同一礼品的所有用户并计算用

33

北京邮电大学研究生毕业论文

户浏览关联度保存到数据库中,然后根据用户浏览关联度计算礼品浏览关联度并保存到数据库中。浏览关联度礼品表示浏览此礼品的用户也浏览了的哪些礼品。用户浏览某个礼品的详细信息时,系统查询与此礼品浏览关联度最高的若干礼品,并将这些礼品推荐给用户。

5.1.5 礼品个性化搜索

用户搜索用户日志用户偏好分析查询索引礼品知识库礼品索引礼品库构建索引 图5-7礼品搜索流程图

如上图所示,礼品搜索流程图。利用Lucene开源工具包为礼品库构建索引。用户搜索礼品时,系统分析用户的搜索偏好,根据用户搜索偏好和礼品知识库进 行搜索,将最后的搜索结果返回给用户。

5.1.6 推荐反馈

由于礼品知识库不够完善,系统有可能推荐给用户不合适的礼品,此时,系统需要得到用户的反馈信息,系统利用这些反馈信息对系统推荐进行调整。

获得推荐结果推荐反馈模块系统学习模块

图5-8推荐反馈模块图

如上图所示,推荐反馈模块图。系统在用户得到推荐后通过推荐反馈获得用户对推荐结果的反馈信息,反馈信息包括显示反馈信息和隐式反馈信息。显示反馈信息指用户明确指出对推荐结果的满意度,如对推荐结果进行评分。隐式反馈

34

北京邮电大学研究生毕业论文

信息是指系统根据用户的浏览日志推断用户对推荐结果的满意度,如用户查看某礼品的详细信息则可以推断用户对该礼品比较满意。系统使用这些推荐反馈信息进行系统学习并对系统的推荐算法进行调整,如将用户满意度较高的礼品在推荐结果列表的次序提前。

推荐学习获得推荐推荐结果系统学习用户推荐推理模块用户反馈用户反馈信息 图5-9 推荐反馈流程图

如上图所示,系统从推荐结果中向用户进行推荐;系统将用户的反馈信息放到用户反馈信息数据库中;系统利用用户反馈信息进行学习,通过与推荐推理模块的数据交互对推荐推理进行调整,最后修正推荐结果。

5.2 小结

本章主要从具体的几个方面对系统实现进行了描述,包括礼品信息抓取,礼品知识库的设计,礼品知识库初始化和完善,礼品浏览推荐、礼品个性化搜索和推荐反馈。主要介绍了实现过程中遇到的问题和解决方案。

35

北京邮电大学研究生毕业论文

第六章 系统测试

6.1 系统推荐功能测试

6.1.1 节日场合的推荐测试

 期望结果:

推荐的礼品适合所选择的节日场合。

 测试结果如表6-1和表6-2所示:

表6-1 节日推荐功能测试 测试名称 测试环境 输入 节日推荐功能测试 Windows XP,IE 7 点击导航栏节日场合下的母亲节 得到3页礼品推荐,每页显示24个礼品,每个礼品显示图片和名称 第一页前8个礼品分别是: 1. 雅鑫书画★四尺已装裱 爱新觉罗·启新 书法 福寿 福寿国画多功能皇威脚底按摩器 2. 多功能皇威脚底按摩器H-406A/ 脚底理疗仪/脚部按摩器 3. 厂家直销按摩按摩腰枕 超自然 金苹果按摩垫按摩器带红外调速 4. 家禾康 纳米香薰按摩器 解除疲劳 JHK-518N 5. 景德镇瓷器 陶瓷 骨瓷头红描金古代战车大茶盘茶具 居家茶具 6. 田园沙发/路易莎/布艺沙发6001三位沙发●实用廉价 7. heavog海威格腰颈康腰椎间盘突出按摩器腰椎间盘突出理疗仪 8. 全店特价-多人沙发-布艺沙发-休闲沙发-田园沙发-TS001三人位 36

输出 北京邮电大学研究生毕业论文

表6-2 场合推荐功能测试 测试名称 测试环境 输入 场合推荐功能测试 Windows XP,IE 7 点击导航栏节日场合下的生日 得到7页礼品推荐,每页显示24个礼品,每个礼品显示图片和名称 第一页前8个礼品分别是: 1. [鑫和玉器]和田玉籽料青花指环1◆细腻油润◆特价限量销 售/包快递 2. Pandora潘多拉 PA1082潘多拉金色年华琉璃青蛙蛇骨手链 3. 北京海淀鲜花礼品精品实体店/特价高级香水白百合花束 输出 4. 时尚女友礼物 施华洛世奇水晶靓丽手环手镯11-12277金香槟色 5. 【双羊湖笔】湖州 双羊牌 善琏湖笔 毛笔 一号狼毫书画(1.08*4.6) 6. 【流光碎影】pandora jewellry 潘朵拉银饰琉璃珠 PDGB022 7. 战斗机鼠标 飞机鼠标 USB鼠标 光电鼠标 超炫*I0302 8. 【火热促销】第十二代 USB 创意懒人鼠标 手指鼠标 可腿上用 多色  测试结论:

测试结果基本符合期望结果

6.1.2 收礼对象推荐测试

 期望结果:

推荐的礼品适合所选择的收礼对象。

 测试结果如表6-3和表6-4所示:

表6-3 收礼对象推荐测试 测试名称 测试环境 输入 输出 收礼对象推荐功能测试 Windows XP,IE 7 点击导航栏收礼对象中的男人 得到13页礼品推荐,每页显示24个礼品,每个礼品显示图片和名称 37

北京邮电大学研究生毕业论文

第一页前8个礼品分别是: 1. 正品男表 日本进口 双机芯 威得手表 休闲时尚男士手表 运动表 2. 美国US POLO专柜正品真丝男士正装涤丝领带063四折特价|汉祥服饰 3. ballon bleu蓝气球 罗马字母 白面蓝针 时尚男女手表 情侣表 KT23 4. 正品迪士尼手表手拉手米奇手表,蓝色儿童手表,活泼可爱形象卡通表 5. 雅鑫书画★四尺已裱 墨八马 商务礼品字画特价促销纯手绘 6. 美国US POLO专柜正品真丝男士正装蚕丝领带055四折特价|汉祥服饰 7. 欧版!原装正品ROYTEC自动手表盒/自动手表上链盒/摇表器/晃表器 8. 正品.CASIO手表/卡西欧手表 3D镭射色澤繽紛面板 LTP-1294D-6A 表6-4 收礼对象兴趣爱好推荐测试 测试名称 测试环境 输入 收礼对象及兴趣爱好推荐功能测试 Windows XP,IE 7 点击导航栏收礼对象中的男人后再点击左侧导航栏的交际 得到3页礼品推荐,每页显示24个礼品,每个礼品显示图片和名称 第一页前8个礼品分别是: 1. 美国US POLO专柜正品真丝男士正装涤丝领带063四折特价|汉祥服饰 2. 德国精选◆TROIKA 全黑皮质 双层质感名片盒 CDC63/LE 输出 3. 美国US POLO专柜正品真丝男士正装蚕丝领带055四折特价|汉祥服饰 4. 利客来不锈钢免掀盖名片盒 Philippi120004 5. 开业庆典/高档商务礼品/玉石摆件/玉石宝鼎/玉石工艺品/鼎立千秋 6. ◆专卖◆ ◆相信品牌的力量◆景德镇骨瓷精品酒具 7. 专柜正品361度2010最新款-运动休闲男短袖T恤 1909252 38

北京邮电大学研究生毕业论文

黑色 8. 2010新品运动男子李宁全棉莱卡简洁舒适运动休闲长袖T恤9976  测试结论:

测试结果基本符合期望结果

6.1.3 收礼人描述推荐测试

 期望结果:

推荐的礼品适合所选择的收礼人描述类型。

 测试结果如表6-5所示:

表6-5收礼人描述推荐功能测试 测试名称 测试环境 输入 收礼人描述推荐功能测试 Windows XP,IE 7 点击导航栏个性化推荐中的男人,然后点击阳光男人 得到6页礼品推荐,每页显示24个礼品,每个礼品显示图片和名称 第一页前8个礼品分别是: 1. 美国US POLO专柜正品真丝男士正装涤丝领带063四折特价|汉祥服饰 2. 德国精选◆TROIKA 全黑皮质 双层质感名片盒 CDC63/LE 3. 美国US POLO专柜正品真丝男士正装蚕丝领带055四折特价|汉祥服饰 4. 利客来不锈钢免掀盖名片盒 Philippi120004 5. 【LineShow】G8战士/金属工艺品/新奇特创意手工艺术品/生日礼物 6. 经典复古式 蝴蝶造型双挂沙漏 金属工艺品 精美圣诞礼品 3造型 7. 开业庆典/高档商务礼品/玉石摆件/玉石宝鼎/玉石工艺品/鼎立千秋 8. 人气宝贝 圣诞礼品 经典蝴蝶双挂铁架沙漏 金属工艺品

 测试结论:

39

输出 北京邮电大学研究生毕业论文

测试结果基本符合期望结果

5.1.4 礼品浏览推荐测试

 期望结果:

推荐的礼品与浏览的礼品具有最高的相似度  测试结果如表6-6所示:

表6-6 礼品浏览推荐测试 测试名称 测试环境 输入 礼品浏览推荐功能测试 Windows XP,IE 7 点击导航栏节日场合中母亲节,然后点击第一个推荐礼品《雅鑫书画★四尺已装裱 爱新觉罗·启新 书法 福寿 福寿国画》 新页面除了显示该礼品的大图片和详细信息外,还显示: 我们还推荐: 雅鑫书画★六尺已装裱 刘一民山水 商务礼品 字画批发 雅鑫书画★四尺已裱 胡开喜 横塘翠羽(3)商务礼品促销价 雅鑫书画★四尺已裱 祝寿佳品 松鹤延年国画书法客厅装饰画墙贴 你可能也喜欢: 田园沙发/路易莎/布艺沙发6001三位沙发●实用廉价 正品.CASIO手表/卡西欧手表 3D镭射色澤繽紛面板 LTP-1294D-6A 冲冠特价【笔笔筒】透明钥匙扣伸缩笔

 测试结论:

测试结果基本符合期望结果

6.1.5 礼品搜索测试

输出  期望结果:

搜索的结果与搜索关键字匹配。  测试结果如表6-7所示:

表6-7 礼品搜索测试

40

北京邮电大学研究生毕业论文

测试名称 测试环境 输入 礼品搜索功能测试 Windows XP,IE 7 搜索框中输入“生日礼物”,并点击搜索 得到1页礼品推荐,共23个礼品,每个礼品显示图片和名称 第一页前8个礼品分别是: 1. SX-703 7寸数字屏幕 多功能 生日礼物/数码礼品 2. 皇冠店◆Troika-新款米咖啡皮质名片盒[生日礼物] 3. 陶偶,真人卡通软陶公仔,生日礼物,结婚纪念,礼品,【风】 输出 4. 紫晶心心相印款银项链■水晶镶嵌四叶草■女友生日礼物情人节 5. 精致工艺礼品 人物摆件 家居摆设 女孩生日礼物 白衣 6. 生日礼物礼物结婚礼物真人卡通雕像软陶人偶Q版公仔工艺礼品 7. 武汉生日礼物 求婚 鲜花快递 速递33朵 红玫瑰【实物照】缘定 8. 99朵红玫瑰|爱只给你|上海豪华生日礼物|上海求婚鲜花|杨浦

 测试结论:

测试结果基本符合期望结果

6.2 系统性能测试

6.2.1压力测试准备

 压力测试环境 (1) 服务器配置

处理器:奔腾III

内存:1G (2) 操作系统

Windows Server 2003

41

北京邮电大学研究生毕业论文

(3) 数据库

Oracle 10g (4) Web服务器

Tomcat 6.0(注:Tomcat和Oracle安装到同一台服务器上)  压力测试工具

Jmeter 2.4  压力测试样例

并发执行4组http请求,每组执行5次,共同时并发执行20次: 1. 节日推荐

url:http://59..157.133:8085/gifts/occation.do?method=findByOccation&id=5 2. 场合推荐

url:http://59..157.133:8085/gifts/occation.do?method=findByOccation&id=41 3. 收礼对象推荐 url:

http://59..157.133:8085/gifts/recipient.do?method=findByRecipient&ageid=6 4. 个性化推荐 url:

http://59..157.133:8085/gifts/personal.do?method=recommend&gid=1&id=4&type=%E6%88%90%E5%8A%9F%E7%94%B7%E4%BA%BA

6.2.2压力测试结果分析

图6-1 压力测试结果聚合报告

如上图所示,压力测试结果聚合报告。20次请求的平均响应时间为1737ms,平均每秒发送168.66KB字节,平均收到69720.2Byte字节。

42

北京邮电大学研究生毕业论文

图6-2 压力测试结果分析图

如上图所示,压力测试结果分析图。20次并发请求的进入响应时间为2539ms,平均响应时间为1737ms,最大响应时间为4027ms。

6.3 小结

本章主要从功能和性能两方面对系统进行测试。功能测试包括节日场合推荐 测试,收礼对象推荐测试,个性化推荐测试,礼品浏览推荐测试和礼品搜索测试。 经测试,系统推荐功能符合测试的预期目标。性能测试对系统的性能进行压力测 试,经过测试,系统的性能达到了预期目标。

43

北京邮电大学研究生毕业论文

第七章 结束语

7.1 工作总结

本文将知识库引入礼品推荐系统中,调研礼品赠送知识并据此构建礼品知识库,通过礼品专家的知识对礼品知识库进行初始化,然后计算礼品的综合相似度对礼品知识库进行完善,同时根据用户的日志记录分析用户的搜索偏好设计并实现个性化的礼品搜索功能。最后设计具有良好用户体验的推荐交互界面,从节日场合推荐、收礼对象推荐和收礼人描述推荐三个方向向用户提供礼品推荐功能。

本文将知识库引入推荐系统的做法在国内比较新颖,目前国内只有当当网较早设计并实现了礼品推荐频道,而淘宝网也是刚刚推出了礼品推荐频道。

本文在第一章简明地阐述了基于知识库的礼品推荐系统的研究背景、研究现状、研究意义以及本文工作要实现的目标、路线和任务,第二章简要介绍了三种主流的推荐技术和本系统设计实现所涉及到关键技术,第三章介绍了基于知识库的礼品推荐系统的需求分析和所需要实现的功能以及运行环境规定,第四章主要介绍了系统的整体功能设计和整体架构设计,在第五章中描述了系统实现中的一些关键问题及解决方案,第七章对系统做了功能测试和性能,并对结果进行分析。

通过这次完整的从理论的调研到系统的设计、实现、测试的过程中,不仅让我学习了如何将理论的推荐算法应用到系统开发中,更重要的是学习了系统研究及系统设计的方法以及在软件工程中进行系统开发的方法和流程。

7.2 下一步的工作展望

1) 下一步系统研究展望

本文中礼品推荐系统的知识库设计仍然不够完善,需要在以后的研究中丰富其理论指导和实际应用,在该设计完成的系统中也有一些没有解决的问题仍然有待下一步进行进一步完善:

1.礼品专家在初始化礼品库和自动化程序对知识库进行完善的时候不免引入“噪声”,如何发现并剔除这些“噪声”是一个需要解决的问题。 2.礼品推荐系统知识库在运行的过程中与用户的交互如何通过自我学习来进

44

北京邮电大学研究生毕业论文

行自我完善也是一个需要解决的问题。 2) 下一步系统应用展望

本推荐系统可以有如下实际应用方式。 1. 作为一个的网站进行运营

作为网站运营就需要对系统进行比较大的完善。如完善礼品抓取程序,使其可以抓取所有电子商务网站上的礼品信息。 2. 作为某个电子商务网站的礼品频道

作为某个电子商务网站的礼品频道需要完善数据库使其符合该电子

商务网站的数据库格式。

参考文献

[1]李勇,苏新宁等,企业知识发现中的个性化Web推荐服务研究,情报学报,第22卷第3期 ,2003.6,348-353.

[2]刘建国,周涛,汪秉宏,个性化推荐系统的研究进展,自然科学进展,第19卷第1期,2009.1,1-13.

[3]邓秀勤,姜莲花,电子商务推荐系统研究,辽东学院学报,第7卷第4期,2005.4,38-42. [4] Balabanovic M, Shoham Y. Fab. Content-based, Collaborative Recommendation [J]. Communication of the ACM, 1997, 40 (3): 66-72.

[5] Konstan A, Miller B, et al. GroupLens: Applying Collaborative Filtering to USENET News

45

北京邮电大学研究生毕业论文

[J].

Communication of the ACM, 1997, 40 (3): 77-87.

[6] Lewis D D, Yang Y, et al. RCV1: A New Benchmark Collection for Text Categorization Research [J]. Journal Machine Learning Research, 2004, 5 (12): 361-397.

[7] Kuo R J, Liao J L, Tu C. Integration of ART2 Neural Network and Genetic k-Means Algorithm for Analyzing

Web Browsing Paths in Electronic Commerce [J]. Decision Support Systems, 2005, 40: 355-374. [8]Juha Lein,Kari-Jauko Raiha.Case amazon:ratings and reviews as part of reeommendations. Proeeedings of the ACM conference on Recommender systems, 2007:137一140

[9]陈华,李仁发,刘钰峰,练琪,个性化搜索引擎推荐算法研究,计算机应用研究,第27卷第1期 ,2010.1,48-53.

[10]张剑,郭燕慧,钟义信,基于特征项的个性化推荐服务模型,中国人工智能学会第10届全国学术年会论文集,中国人工智能学,2003,1101-1105.

[11]Bradley N.Miller,IStvan Albert,Shyong K.Lam,Joseph A. Konstan,John Riedl.MovieLens UnPlugged:exPerienees with an oeeasionally connected recommender system. Proceedings of the 8th internationational conference on Intelligent user interfaces,2003:263-266.

[12]Abhinandan Das, Mayur Datar, Ashutosh Garg, Shyam Rajaram. Google News

Personalization:Sealable Online Collaborative Filtering.Proeeedings of the 16th international conference on World Wide Web, 2007:271-280

[13]邓爱林,朱扬勇,施伯乐,基于项目评分预测的协同过滤推荐算法,软件学报,第14卷第9期,2003, 1621-1628.

[14] 孙小华. 协同过滤的稀疏性与冷启动问题 [D]. 浙江: 浙江大学, 2005.

[15]邢春晓,高凤荣,战思南,周立柱,适应用户兴趣变化的协同过滤推荐算法,计算机研究与发展,第44卷第2期 ,2007,276-301.

[16]张光卫,李德毅,,康建初,陈桂生,基于云模型的协同过滤推荐算法,软件学报 第18卷第10期,2007.10,2403-2411.

[17]王均波,协同过滤推荐算法及其改进研究,硕士学位论文,重庆:重庆大学,2010 [18]张巍,刘鲁,葛健,一种基于粗集的协同过滤算法 [J],小型微型计算机系统, 2005, 26 (11): 1971-1974.

[19]朱岩,林泽楠,电子商务中的个性化推荐方法评述,软科学研究成果与动态,2009年第2期,183-192.

[20]王艳, 景韶光,李雪耀,于军,基于分类方法的内容过滤推荐技术,情报杂志,2005年 08期 .

46

北京邮电大学研究生毕业论文

[21]江婕,李建民,曾勃炜,基于模式推荐的个性化搜索引擎研究,计算机与现代化,2010年第5期,127-134.

[22]化柏林,数据挖掘与知识发现关系探析,情报理论与实践 ,2008年第4期,507-510. [23]王少华,数据挖掘中关联规则算法的研究,硕士学位论文, 保定,华北电力大学,2007. [24](美)霍斯特曼(Horstmann C.S.),(美)科奈尔 (Cornell G.) 著,叶乃文 译,Java核心技术卷I,第七版,机械工业出版社,2006.5.

[25]阎宏,Java与模式,电子工业出版社,2002,525-527.

[26](美)Bruce Eckel著,陈昊鹏译,JAVA编程思想,第四版,机械工业出版社,2007.6. [27]结城浩,设计模式:JAVA语言中的应用,中国铁道出版社,2005.6.

[28]林碧英,赵锐,陈良臣,基于Lucene 的全文检索引擎研究与应用[J ],计算机技术与发展,2007 ,17 (5) :186 - 190.

[29]索红光,孙鑫,基于Lucene 的中文全文检索系统的研究与设计[J ] ,计算机工程与设计,2008 ,29 (19) :5083 - 5086.

[30]李永春,丁华福 ,Lucene 的全文检索的研究与应用,计算机技术与发展,第20卷(第2期) ,2010.2,12-15.

[31 ]朱学昊,王儒敬,余锋林,基于Lucene 的站内搜索设计与实现[J ] ,计算机应用与软件,2008 ,25 (10) :6 - 8.

[32]郎小伟,王申康,基于Lucene 的全文检索系统研究与开发[J ] ,计算机工程,2006 ,32 (4) :95 - 99.

[33]陆海品,刘万军,于Ajax的Web应用技术的研究与实现L[J],学技术与「程2007,(03). [34]施伟伟,张蓓,服Ajax—Web 2.0入门与项目实践,北京:人民邮电出版社,2008.5. [35]夏慧军,魏雪辉,深入浅出Ajax,北京:电子工业出版社,2007.4,20一50.

[36] (加) Jiawei Han ,Micheline Kamber著,数据挖掘概念与技术.,范明 ,孟小峰 译,机械工业出版社,2001.

致 谢

首先衷心感谢我的导师孟祥武教授,他严谨的治学态度、勤勉的敬业精神以及严于律己、宽以待人的高尚品质,让我在学习期间受益匪浅。在我论文的写作过程中,孟老师严格把关,悉心指导;在遇到困难的时候,孟老师以其广博的学识和敏锐的洞察力帮助我找到问题的关键。我取得的每一点进步都受益于孟老师的睿智和博学。在此,谨向尊敬的孟老师致以最诚挚的感谢。

感谢实验室的师兄黄永生,王闯,史延翠等,与你们的探讨和交流使我得到

47

北京邮电大学研究生毕业论文

很多启发,今天的成绩与你们当年的悉心指导和帮助是分不开的。尤其感谢黄永生师兄,在我做毕业设计的过程中给予了极大的启示和帮助。

感谢我的同学杜耕,朱修伟,张建成,蔡振宇,王洪明,刘亚栋,曹晓娜,苏瑞。感谢他们在生活和学习上给予我的关怀和帮助,和大家共度过的三年研究生生活永远让我怀念。

感谢我的父母家人对我在生活和学习上给予的支持,他们无微不至的关怀和鼓励是我前进的动力,为我努力地学习和深造提供了巨大的精神支持。 最后,感谢所有参加论文评审和答辩的老师在百忙之中抽出宝贵的时间给予审阅和指导。

48

北京邮电大学研究生毕业论文

攻读学位期间发表的学术论文目录

[1] 路卫杰. 礼品推荐系统知识库的研究. 中国科技论文在线,2010,12.

49

因篇幅问题不能全部显示,请点此查看更多更全内容

Copyright © 2019- huatuo0.cn 版权所有 湘ICP备2023017654号-2

违法及侵权请联系:TEL:199 18 7713 E-MAIL:2724546146@qq.com

本站由北京市万商天勤律师事务所王兴未律师提供法律服务