第一范文网 - 专业文章范例文档资料分享平台

基于内容的电子图书推荐系统_B10040101毕设论文

来源:用户分享 时间:2025/5/23 21:11:19 本文由loading 分享 下载这篇文档手机版
说明:文章内容仅供预览,部分内容可能不全,需要完整文档或者需要复制内容,请下载word后使用。下载word有问题请添加微信号:xxxxxxx或QQ:xxxxxx 处理(尽可能给您提供完整文档),感谢您的支持与谅解。

南京邮电大学2014届本科生毕业设计(论文)

表2.1 主要推荐算法对比 推荐方法 基于内容推荐 优点 推荐写过直观,容易解释; 不需要领域知识; 协同过滤推荐 缺点 复杂属性不好处理;新用户问题; 难以挖掘新兴趣; 发现新兴趣;不需要领域知识; 稀疏问题;新用户问题; 推荐个性化、自动化程度高; 可扩展性问题; 能处理复杂的非结构化对象; 基于规则推荐 能发现新兴趣; 不需要领域知识; 规则抽取难,耗时; 产品名统一性问题; 个性化程度低; 基于效用推荐 无冷启动和稀疏问题; 对用户偏好变化敏感; 能考虑非产品特征; 用户必须输入效用函数; 推荐是静态的,灵活性差; 属性重叠问题; 基于知识推荐 能把用户需求映射到产品上; 知识难获得; 能考虑非产品属性; 推荐是静态的;

2.2基于内容的推荐算法

根据基于内容推荐原理,生成推荐的过程主要分为三步:1.提取特征信息。为项目提取出来一些特征向量来表示该项目。2.用户配置文件生成。由用户过去喜欢项目的特征,来推算用户的喜好特征。3.产生推荐。计算出用户配置文件和项目特征向量间的相似度,推荐相似度大的项目。

一.特征向量的提取

在获取信息时,最常用的方法就是TF—IDF方法。该方法是找到出现次数最多的词。但如果一个词在所有的文章中出现次数的都比较多,那么这个词很大程度上不能反映这篇文章的内容;而某个词比较少见,但是在这篇文章中出现多次,那么它就很大程度上可以反映这篇文章的内容,即我们所需要的关键词。我们需要加一个调整系数,较常见词赋予较小的权重,较少见的词赋予较大的权重。这个权重叫做“逆文档频率”(IDF)。知道了“词频”(TF)和“逆文档频率”(IDF)以后,将这两个值相乘,就得到了一个词的TF-IDF值。某个词对文章的重要性越高,它的TF-IDF值就越大。实现如下:

设有N 个文本文件, 关键词ki 在ni 个文件中出现, 设f ij 为关键词k i 在文件d j 中出现的次数, 那么ki 在d j 中的词频T Fij 定义为:

TFij?fijmaxzfzj (2.1)

其中分母的最大值可以通过计算dj 中所有关键词k z 的频率得到。在许多文件中同

- 7 -

南京邮电大学2014届本科生毕业设计(论文)

时出现的关键词对于表示文件的特性, 区分文件的关联性是没有贡献的. 因此T Fij 与这个关键词在文件中出现数的逆( ID Fi ) 一起使用, ID Fi 的定义为:

IDFi?logN (2.2) ni那么, 一个文件dj 可以表示为向量d j = ( w1 j ,w2 j , ?, wkj ) , 其中

wij?fijmaxzfzjlogN (2.3) ni

二.用户配置文件的建立

在学习用户喜好的配置文件时,也有多种方法。 1.最近邻方法(k-Nearest Neighbor,简称kNN)。对于一个新的item,最近邻方法首先找用户u已经评判过并与此新item最相似的k个item,然后依据用户u对这k个item的喜好程度来判断其对此新item的喜好程度。 2.Rocchio算法。 Rocchio算法是信息检索中处理相关反馈(Relevance Feedback)的一个著名算法。该算法获得用户u的profilewu的方法为: 1wu???|Ir|???wj?Ir1wj?????|Inr|?wk?Inr??w?k (2.4) 其中wj表示item j的属性,Ir与Inr分别表示已知的用户u喜欢与不喜欢的item集合;而?与?为正负反馈的权重,它们的值由系统给定。在获得wu后,对于某个 给定的item j,我们可以使用wu与wj的相似度来代表用户u对j的喜好程度。Rocchio算法的一个好处是wu可以根据用户的反馈实时更新,其更新代价很小。 3. 决策树算法(Decision Tree,简称DT)。当item的属性较少而且是结构化属性的时候,决策树可以产生简单直观、容易让人理解的结果。而且可以把决策树的决策过程展示给用户u,告诉他为什么这些item会被推荐。

4. 线性分类算法(Linear Classifer,简称LC)。以学习用户u的分类模型为例。

wj表示item j的属性向量,那么LC尝试在wj空间中找平面cu?wj,使得此平面

????????尽量分开用户u喜欢与不喜欢的item。其中的cu就是我们要学习的参数了。最常用的学习cu的方法就是梯度下降法了,其更新过程如下:

?(t?1)??cu:?cu??(cu?wj?yuj)wj (2.5)

- 8 -

?(t)?(t)??5. 朴素贝叶斯算法(Naive Bayes,简称NB) 现在计算配置文件问题中包括

南京邮电大学2014届本科生毕业设计(论文)

两个类别:用户u喜欢的item,以及他不喜欢的item。在给定一个item的类别后,其各个属性的取值概率互相独立。我们可以利用用户u的历史喜好数据训练NB,之后再用训练好的NB对给定的item做分类。

在本系统中,我采用统计用户曾经操作过的图书的关键字,进行词频统计,统计出来的结果取前10个词来建立用户的配置文件。

三.相似度算法

最后一步的推荐产生,如果上一步配置文件中使用的是分类模型,那么我们只要把模型预测的用户最可能感兴趣的n个item作为推荐返回给用户即可。而如果配置文件中使用的直接学习用户属性的方法(如Rocchio算法),那么只要把与用户属性最相关的n个item作为推荐返回给用户即可。如果需要计算相似度,常用的相似度的计算方法有欧氏距离,夹角余弦,汉明距离,杰卡德距离和杰卡德相似系数等。根据文献资料调研得知,在推荐系统中计算相似性一般采用余弦距离或者杰卡德系数。下面介绍两种计算方法。 1.余弦夹角

在二维空间中向量A(x1,y1)与向量B(x2,y2)的夹角余弦公式为:

cos??x1x2?y1y2x1?y122x2?y222 (2.6)

类似的,对于两个n维样本点a(x11,x12,…,x1n)和b(x21,x22,…,x2n),可以使用类似于夹角余弦的概念来衡量它们间的相似程度。即:

ncos???xk?11kx2k?xk?1n21k?xk?1n (2.7)

22k夹角余弦取值范围为[-1,1]。夹角余弦越大表示两个向量的夹角越小,夹角余弦越小表示两向量的夹角越大。当两个向量的方向重合时夹角余弦取最大值1,当两个向量的方向完全相反夹角余弦取最小值-1。

2.杰卡德相似系数

杰卡德相似系数是衡量两个集合的相似度一种指标。两个集合A和B的交集元素在A,B的并集中所占的比例,称为两个集合的杰卡德相似系数,用符号J(A,B)表示。

J(A,B)?|A?B| (2.8)

|A?B|A与样本B是两个n维

将杰卡德相似系数用在衡量样本的相似度上时,样本

向量,而且所有维度的取值都是0或1。例如:A(0111)和B(1011)。我们将样本看成是一个集合,1表示集合包含该元素,0表示集合不包含该元素。p :样本A与

- 9 -

南京邮电大学2014届本科生毕业设计(论文)

B都是1的维度的个数;q :样本A是1,样本B是0的维度的个数;r :样本A是0,样本B是1的维度的个数;s :样本A与B都是0的维度的个数。那么样本A与B的杰卡德相似系数可以表示为:

J(A,B)?p (2.9)

p?q?r分母之所以不加s的原因在于对于杰卡德相似算法来说,它处理的都是非对称二元变量。非对称的意思是指状态的两个输出不是同等重要的,杰卡德相似度算法没有考虑向量中潜在数值的大小,而是简单的处理为0和1,不过,做了这样的处理之后,杰卡德方法的计算效率肯定是比较高的,毕竟只需要做集合操作。并且本系统对图书的内容进行分解出来的关键词很多,如果在计算相似度时采用余弦计算,那么对关键词降维是很困难的,采用杰卡德算法避免了这一麻烦。

2.3实现使用的环境工具及技术

一.开发环境

本次实现所用到的开发环境为MyEclipse 8.5,MySql数据库,tomcat。 1.MyEclipse8.5

MyEclipse(MyEclipse Enterprise Workbench ,简称MyEclipse)企业级工作平台,利用它我们可以在数据库和J2EE的开发、发布,以及应用程序服务器的整合方面极大的提高工作效率。MyEclipse的功能非常强大,支持也十分广泛,尤其是对各种开源产品的支持十分不错。它是功能丰富的J2EE集成开发环境,包括了完备的编码、调试、测试和发布功能,完整支持HTML,Struts,JSF,CSS,Javascript,,SQL,Hibernate。同时支持AJAX,Hibernate,JSF,Struts,Spring, EJB3,JSP,JDBC,JavaServlet和数据库链接工具等多项功能。

2.MySql数据库

MySql是一个快速、多线程、多用户的SQL数据库服务器。其优点有: (1)MySql的核心程序采用完全的多线程编程。线程是轻量级的进程,它可以灵活地为用户提供服务,而不过多的系统资源。用多线程和C语言实现的MySql能很容易充分利用CPU。

(2)MySql可运行在不同的操作系统下。

(3)MySql有一个非常灵活而且安全的权限和口令系统。当客户与MySql服务器连接时,他们之间所有的口令传送被加密,而且MySql支持主机认证。 (4)MySql拥有一个非常快速而且稳定的基于线程的内存分配系统,可以持续使用面不必担心其稳定性。事实上,MySql的稳定性足以应付一个超大规模的数据库。

3.Tomcat

Tomcat 服务器是一个免费的开放源代码的Web 应用服务器,属于轻量级应

- 10 -

基于内容的电子图书推荐系统_B10040101毕设论文.doc 将本文的Word文档下载到电脑,方便复制、编辑、收藏和打印
本文链接:https://www.diyifanwen.net/c5yf4m9d14p6trx1166bi_4.html(转载请注明文章来源)
热门推荐
Copyright © 2012-2023 第一范文网 版权所有 免责声明 | 联系我们
声明 :本网站尊重并保护知识产权,根据《信息网络传播权保护条例》,如果我们转载的作品侵犯了您的权利,请在一个月内通知我们,我们会及时删除。
客服QQ:xxxxxx 邮箱:xxxxxx@qq.com
渝ICP备2023013149号
Top