- 1、本文档共20页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
2012届本科毕业设计 项目名称:基于用户兴趣模型的个性化新闻推荐系统 使用技术:Struts+Spring+Hibernate+Ajax等 设计人员: 专业:计算机科学与技术(软件工程方向) 班级:2008级2班 指导老师: 基于用户兴趣模型的个性化新闻推荐系统 2012-05-26 毕业设计项目 答 辩 人:杨勇智 指导教师:蒲国林 主要内容 项目的背景 研究的目的 项目背景 当下信息大量增加,人们通过互联网获取信息也更加普遍。但是人们通过搜索或者浏览网站,获取到的很多信息是自己不感兴趣的。通过这种方式用户获取感兴趣的信息是非常低效的。 个性化服务主要是针对不同用户提供不同的服务,用户的个性化服务又建立在用户的特征信息之上,即用户兴趣模型。通过个性化服务可以过滤用户不感兴趣的新闻,增强用户体验。本系统通过良好的新闻自动分类,结合用户的行为和习惯,建立高效用户的兴趣模型,以实现对用户进行个性化新闻推荐。同时本系统使用当前流行的J2EE轻量级框架SSHA(Struts + Spring + Hibernate + AJAX)对系统进行开发。 研究目的 国内外对用户兴趣模型、个性化推荐的研究虽然以有很多,但是对于个性化推荐的服务的准确只有个别的系统能够满足用户的需求,尤其是国内对于个性化推荐的研究比较少。因此本系统针对用户的兴趣建模,以用户的兴趣模型为基础对信息和服务进行相应的类别划分,最后通过对用户的兴趣模型分析提供给用户个性化的推荐。 同时使用当前流行SSHA(Struts+Spring+Hibernate+Ajax)框架技术来对本系统进行综合性的设计和实现。目的在于能让基于用户兴趣模型的个性化推荐信息更加高效,准确。对于用户而言能够获得自己感兴趣的信息和服务,才能获得良好的用户体验,以使资源能得到很好的传播。 用户交互层 记录用户行为 用户反馈 兴趣发现 模型建立 推荐信息 模型更新 兴趣模型层 新闻分类 提取关键词 分词 资源 语义处理层 开发工具 MyEclipse 6.5,MySql,JDK,Dreamwaver,Photoshop SHHA Struts-1.3.10,Spring,Hibernate3,Jquery-1.4.1 扩展程序 中科院分词程序: ICTCLAS ,网页分析工具:HTMLParser 利用中科院的开源项目: ICTCLAS。能够准确的分出中文词汇并表明词性 。 本系统利用该程序进行网页内容特征词汇的提取,提取结果如下: 分词之后根据统计算法统计出该次在该文章中的比例,即为该词汇的权重 中文分词 网页抓取 本系统的新闻主要是抓取新浪的新闻,抓取主要通过HTMLParser编写网页爬虫,然后通过获取所有链接,然后过滤链接,得所有当天新闻。再通过HTMLParser对获得的新闻进行保存到本地,存入当天的文件夹。 由于抓取网页是一个非人工操作的工作,因此在本系统中使用后台自定义线程,让该线程每5分钟抓取一次网页。这样便可省去人工操作。 该功能后台运行截图: 新闻自动分类 在对新闻进行分词以后,提取新闻的特征值。通过过滤出关键词,以这些关键词来建立信息的特征项。 本文中信息的特征集合表示形式: D(Ti,Wi)={T1,W1,T2,W2…Tn,Wn} 其中DTi,Wi表示文档D特征集合,Ti表示文章的特征项,Wi表示特征项的权值。 这些特征项集合通过程序来判断文章属于的分类。本文的分类算法主要采用改进的互信息法: CHI(Tk,Ci)=P(Tk,Ci)|log(P(Tk,Ci)/P(Tk)*P(Ci))| 其中P(Tk,Ci)代表特征项Tk在Ci 中出现的概率,P(Tk)表示特征项Tk在所有类别中出现的概率,P(Ci)表示Ci类在所有类别中的概率。通过此中算法如果CHI越大,那么说明D(Ti,Wi)属于该Ci类。 新闻自动分类 public ListArticle getArticles(){ ListArticle artList = new ArrayListArticle(); ReadFolderUtil readFolderUtil = new ReadFolderUtil(); ListFile files = readFolderUtil.readTodayFolder(); HTMLParserUtil hUtil = new HTMLParserUtil(); for(int i=0;ifiles.size();i++){ File file = files.get(i); Article article = new A
文档评论(0)