论文部分内容阅读
推荐系统被认为是解决互联网信息爆炸问题最有效的方法之一。在电子商务领域,推荐系统得到了广泛使用,像Amazon, Ebay,阿里巴巴等电商巨头都使用推荐系统为用户推荐产品,并显著提高了企业利润。但是在资讯信息领域,用户还处于海量信息的泥潭中,尽管有很多优秀的垂直的网站帮助用户梳理信息,比如36kr为用户整理创业类信息,csdn提供了创作、分享博客的平台,但它们所涉及的领域往往很局限,远远不能满足用户阅读多样化的个性需求。为了汇集海量优质资讯信息,满足用户阅读的个性化需求,我们开发了个性化资讯推荐引擎。作为自主创业项目,我们的目标是自动帮用户筛选推荐感兴趣的优质新闻、博客和文档等。一般用户会有多个兴趣点,通过个性化资讯推荐引擎,就可以直接看到兴趣多样化的资讯列表,无需去多个站点找寻,节约了时间;同时推荐系统可以不断学习用户行为日志,使推荐内容更符合用户兴趣。目前系统已经完成第一版本的开发工作,搭建起了推荐系统的基础框架,Web服务框架,并设计了数据库等。基础框架涉及爬虫子系统,抽取子系统和个性化推荐子系统。爬虫子系统使用Java开发,负责从各个优质的网站中爬取源信息,并基于hash和simhash算法设计了去重规则;抽取子系统使用Python语言开发,对第三方开源软件BeautifulSoup和Readability做了优化调整实现不同站点的通用抽取,另外对特定站点实现基于模板的信息抽取,提高了抽取精确度;个性化推荐使用了新颖的基于tag的推荐方法,并组合协同过滤的推荐结果,使推荐列表更精准。另外,使用SSH框架开发Web服务模块,为用户提供基本的交互,比如对文章的行为反馈、登陆注册和添加兴趣标签等操作。本文按照软件开发的流程,首先介绍了系统的开发背景、发展现状以及开发中用到了相关技术;接着对需求分析、概要设计、详细设计和系统实现分别进行了详细描述,需求分析介绍了总体需求,确定了系统各部分的功能需求,并从效率、可靠性、易用性三个方面讨论了非功能性需求,概要设计对系统整体框架和模块划分进行了详细介绍,详细设计涉及到爬虫子系统、抽取子系统、个性化推荐子系统、Web服务子系统、资讯检索子系统和用户管理子系统,分别展开详细设计,系统实现主要从代码实现角度,介绍了开发过程中遇到的问题以及解决方法。本论文中开发的系统已实际在线测试服务了近半年的的时间,在没有推广的情况下,第一月注册用户超过了700人,日访问的pv峰值达到1500多,平均达到100多。通过用户反馈,推荐系统着实解决了用户阅读领域信息难找的问题,提高了用户的学习效率。