571
社区成员




伴随着互联网的快速发展,大量的信息在用户面前呈现,爆炸的信息量,使得全部浏览一遍都变成一件困难的事,更不必说寻找到自己感兴趣的信息。面对信息的大规模增长,用户无法及时获得他们所需的部分信息,反而使得信息的利用减少。由于时间有限,新闻传播的用户不可能阅读所有可用的文章。因此,用户更喜欢能够有选择地提供文章的新闻服务。这种选择通常是由编辑手工完成的,在电视新闻节目和报纸等陈旧的媒体上向所有用户提供共同的一组选定的报道。然而,系统可以在用户选择互联网上将提供给他们的文章之前,通过使用用户id和cookie中的信息等来识别用户,并为个人用户提供个性化的文章。为了解决信息过载的问题,个性化推荐系统随之产生。
个性化推荐系统是解决信息超载问题的一个比较有效的方法,根据用户的浏览记录、个人喜好等,计算用户可能感兴趣的信息,向用户推荐可能感兴趣或有价值的项目。它能够推荐以前没有被评价过的信息,并且能够适应用户之间的个体差异。
个性化推荐的应用在电子商务领域已经得到非常普遍的应用,比如amazon平台总是能够精确的对用户潜在的可能购买的商品进行推荐,google和百度等公司也早已在广告业务中使用了精准投放的策略来提高广告的收益。因此,个性化推荐己经不再是商业上的营销口号了,而是切实能为商家带来利益同时为用户提供便利的技术。
本系统的用户之一为在互联网上浏览新闻的用户,通过对用户需求的调研分析,得出用例图如下:
本系统的另外一类用户为系统的管理员,用例图如下:
结合推荐系统的实际需求,将系统分为四大功能模块。
a) 网络爬虫模块
网络爬虫模块主要是通过爬虫技术对市场上的新闻网站进行数据爬取,并将爬取的数据输入数据处理模块中。
b) 数据处理模块
数据处理模块在接收网络爬虫模块和用户方面发送来的数据后,将会对数据进行数据清洗和分析,处理后的结果将会存储在数据库中。
c) 推荐系统模块
推荐系统模块在已有数据的基础上构建推荐算法,基于数据进行分析,根据推荐算法得出对目标用户的推荐结果,并向用户推送。
d) 用户前台模块
用户前台模块提供前端界面以供用户浏览新闻,同时搜集用户的行为并发送给数据处理模块,为推荐模块产生数据。
a) 系统响应时间
为了给用户提供良好的使用体验,系统的响应时间应该不高于500ms。
b) 可扩展性
本系统各个模块需要满足高内聚、低耦合,易于在原系统架构上扩展和使用新的推荐算法以便提升推荐系统的推荐效果。
c) 易用性
系统应该为用户提供用户手册以及良好的UI界面。
系统概要设计图如下:
工具类别 | 详细信息 |
---|---|
操作系统 | Windows 10,Ubuntu 20.04 |
数据库 | MySQL, Redis |
开发语言 | JAVA,Python |
JDK | JDK 1.8 |
Python版本 | Python 3.9 |
开发平台 | IntelliJ IDEA, PyCharm |
代码管理工具 | Git |
本系统总体上采用MVC架构,其架构图如下:
本系统中采用的其中一种设计模式为适配器模式,从爬虫模块获取来的新闻并不符合推荐系统的要求,故应用了对象的适配器模式,使得耦合性降低,其UML类图如下:
作者:596
请问有源码吗