农产品社交电商推荐系统的设计

2020-07-04 02:13贾德润南阮红丽李文源陈东升高华玲
电脑知识与技术 2020年13期
关键词:社交电商推荐系统农产品

贾德润南 阮红丽 李文源 陈东升 高华玲

摘要:近年来,社交电商的发展带动了农产品销售,为众多农货提供了一种可行的电子商务销售渠道。该文采用GooSe发布的开源工具Flutter开发一款农产品电商平台,这个平台融合了电商、社交和资讯功能,并利用基于内容和基于矩阵分解的混合推荐算法优化农产品商品页面和新闻资讯页面。该系统完成了单元测试、小部件测试和集成测试,实现了购物车、农产品浏览、农产品搜索、农产品推荐、农产品管理、订单管理等多种功能,为农产品社交电商平台的设计提供了思路。

关键词:农产品;推荐系统;Flutter;社交电商

中图分类号:TP311 文献标识码:A

文章编号:1009-3044(2020)13-0299-02

随着电子商务行业的快速发展,辐射范围逐步扩大到广大的农村地区。农产品市场具有巨大的市场潜能,但是由于农民文化水平较低,电子产品利用率较低,加之农村运输条件的限制,使得农产品的电子商品发展较为缓慢。近年来,一些社交电商的出现,点亮了农产品销售的曙光,拼多多、快手、抖音、微信等社交媒体的普及性,降低了普通农户参与电商的难度。所以社交电商可以成为农产品销售的突破口。本系统设计的社交电商平台,将社交媒体与电商系统相结合,并利用推荐技术优化系统的性能,为用户提供充分的农产品宣传推广渠道,助推农户发挥自身的社交能力,网站官方在农产品市场的推荐模块助力营销,进一步加强了用户选购农货的参考依据,更强调社交和购物之间的关联,促进农产品市场的活跃度。推荐系统的加入源于农产品电子商务系统的商品良莠不齐,过多的商品也产生了“信息过载”的问题,这将导致用户无法顺利地找到自己所需要的商品。农产品电子商务推荐系统则可以从纷繁复杂的信息中找到农产品需求者感兴趣的商品并将其推荐给他们,帮助他们顺利地完成购买过程。

1开发环境及相关技术分析

系统前端的开发环境为Android Studio集成开发环境,后端采用Visual Studio Code轻量级的开发环境,前后端均采用Flutter技术开发,后端数据库采用MySql数据库管理,利用py-thon爬虫获取新闻资讯数据。在系统的设计与开发过程中综合运用了Flutter技术、dart语言和混合推荐技术等。

Flutter是Google提供的新一代跨平台方案,是一款开源、免费的移动uI框架,可以给开发者提供简单、高效的方式来构建和部署跨平台、高性能移动应用。随着Google在GooSe 102019开发者大会上宣布Flutter支持Web平台,就标志着Flut-ter已经全面持所有平台。Flutter作为新兴的混合开发解决方案,它提供了更完善的文档和更高效的运行方式,开发者不必再把大量精力放到不同平台的展示上,更好地完成自己的业务,从企业管理者角度看,也大大降低了开发成本。

2系统功能结构设计

农产品社交电商推荐系统属于垂直领域的电商和社交系统的结合的移动端平台,平台的整体设计中还要包含商品推荐模块。系统分为前端和后端功能,设计采用前后端分离,前端功能主要模块包括会员中心、购物车管理、农货浏览、农货圈子(包括加入圈子、发帖、回复、收藏功能)、农产品的搜索,农产品的推荐模块、新闻资讯模块(包括资讯获取的爬虫)。后端的功能包括用户管理、商品管理、订单管理、帖子管理和系统参数管理。

系统将用户分为三个类别,游客、注册用户和管理员,不同类别的用户操作权限有所区别。首先,管理员用户的权限最高,代表网站官方进行一些操作,可以管理农货的类目,上架的农货管理,圈子中的全部帖子管理,全体用户的管理和系统参数的管理。

匿名用户,也就是游客的权限最小,只能够浏览农货、搜索农货、查看新闻资讯、查看社交圈子的帖子。

注册用户除了可以完成游客的查看功能,还可以进行购物车及订单管理、发布商品管理、个人用户管理和个人发帖管理。注册用户,还区分是否实名认证,未实名认证则不能发布商品和发表帖子。

购物车模块的主要功能包括将商品添加到购物车、浏览购物车中的商品信息、浏览购物车中的商品信息、修改购物车中的商品数量、删除购物车中的商品以及清空购物车等嘲。

3关键模块之新闻资讯模块

新闻资讯模块是利用python语言爬取中国农网的新闻(http://www.farmer.com.cn),添加到MySql数据库中。爬虫设计利用BeaufiMl Soup 4对新闻页面进行解析,获取新闻的标题、标签、来源、编辑、作者、发布时间和新闻内容信息,存储在MySql数据库中。爬虫设计为增量爬取,按照时间结点每天定时爬取一次,追加到数据库中。

新闻资讯的展示页面中按照时间顺序和基于内容的推荐算法计算排序展示。这里面的内容就是新闻的标签,将新闻内容用python的jieba库进行分词,利用TF-IDF逆文档频率抽取标签,与爬取到的标签字段合并,得到更加准确全面的标签,计算这些标签的余弦相似度,并进行加权求和,最后在根据新闻的时间加人衰减系数,时间越久远的衰减系数越大,最后的推荐结果将后移。

4关键模块之农货推荐模块

推荐系统广泛地应用于各类型的电商平台、阅读网站、社交媒体网站、电影推荐网站等。本系统采用基于内容的推荐与基于矩阵分解的混合推荐算法,收集用户的人口信息和互动行为信息,包括用户的所属地区、用户收藏的商品、用户是否发布商品、用户加入购物车的商品、用户发布帖子的圈子、用户访问新闻资讯的类别等。协同过滤算法基于用户的隐语义信息构建用户、物品矩阵,利用交替最小二乘算法ALS训练,降低us-er-Item矩阵的维度,将User-Item矩阵分解成两个低维矩阵,提取出用户和物品的隐含信息,召回用户喜欢的物品,再利用逻辑回归算法LR进行排序,推荐给用户Top-N的物品。但新用户没有这些隐含行为信息时,推荐算法会非常不准确,这就是推荐系统的冷启动问题,这时利用基于内容的方式进行推荐,根据用户的属性特征和访问商品的类目、加人圈子的类型和访问资讯的类别进行推荐,能够很好地解决冷启动问题。基于内容和基于矩阵分解的混合推荐基本结构如图1所示。

5单元测试、小部件测试与集成测试

应用的功能越多,手动测试的难度就越大。一套完整的自动化测试确保在发布App之前正确执行,同时保留系统的功能和错误修复速度。Flutter有很多种自动化测试方法。

单元测试用来测试单一功能、方法或类。在应用系统开发过程中,测试某个逻辑单元在各种不同条件下是否符合我们的预期。测试首先导入flutter_test,dart包,main方法中创建一个test方法来测试某个类的某个方法功能是否正确,在test方法中添加一个expect方法的断言。在终端运行flutter test命令运行测试文件,获得测试结果。

小部件测试使用flutter_test包里面的testWidgets方法进行小部件的显示和交互行为的测试,小部件的显示,即测试文本小部件,在测试文件中写入想要测试的断言,小部件上的文本数量是否满足测试条件。小部件交互行为(点击或者拖拽行为)测试,首先按照文本或者类型查找到要测试的小部件,tes-ter.tap方法点击小部件,tester.pump方法重建小部件之后使用expect断言判断小部件变化的值是否符合预期。

集成测试是测试的整体应用中的某一个功能。Flutter应用中的集成测试一般由两个文件组成,一个文件是使用enable-FlutterDricerExtension方法创建一个可以监测的应用,将它部署到真实设备或者设备模拟器上,在用另外一个测试文件操控这个应用,模拟用户的操作行为,进行集成测试。

6结论

农产品社交电商推荐系統将社交与电子商务相结合,降低传统电商平台的操作难度,农户可以仅使用社交圈子进行商品推广即可获得农产品的销量。系统利用推荐算法有针对性地对用户进行个性化推荐,大大提高农产品的平台营销能力,挖掘潜在的用户群体。社交电商已成为未来农产品电子商务的发力方向,具有较高的实用价值和应用前景。

猜你喜欢
社交电商推荐系统农产品
农产品网店遭“打假”敲诈 价值19.9元农产品竟被敲诈千元
打通农产品出村“最先一公里”
分享经济时代下社交电商的创新型发展
基于用户偏好的信任网络随机游走推荐模型