IntelligentGiftRecommendationSystemBasedonUserPersonalityAnalysis
MengliLu,HongLan
SchoolofInformationEngineering,JiangxiUniversityofScienceandTechnology,GanzhouJiangxi
Received:Apr.29th,2020;accepted:May14th,2020;published:May21st,2020
ABSTRACT
Aimingattheproblemthatsomecustomershavedifficultyinchoosinggifts,thispaperadoptsC/Smodearchitecturedesign,andthenusesvoicetotext,jiebawordsegmentationandothertechnologiestodesignandimplementasmartgiftrecommendationsystem.Thefront-endadoptsthecard+waterfallflowlayoutdesign;theback-endadoptsthebackgrounddevelopmentcombinedwithSpringBootandFlask.Thisarticleusesthevoicedescriptionofthegivertotherecipient,writesaproductrecommendationalgorithmbasedontheuser’spersonality,andintelligentlyrecommendsgiftsthatmatchtherecipient.Thesystemprovidesuserswiththefunctionsofqueryingandbrowsinggiftproducts,postingandviewinggiftposts,browsingcollectionsandfollowingDIYgifttutorials,exquisitegiftrecommendationtext,smartrecommendationgifts,friendbirthdayreminders,andalluserinformationviewingfunctions,whichsolvestheproblemsencounteredbyuserswhenchoosinggifts.
Keywords:GiftRecommendation,SpringBootFramework,FlaskFramework,PersonalityAnalysis
基于用户性格分析的智能礼物推荐系统
卢梦丽,兰红
江西理工大学,信息工程学院,江西赣州
收稿日期:2020年4月29日;录用日期:2020年5月14日;发布日期:2020年5月21日
摘要
关键词:礼物推荐,SpringBoot框架,Flask框架,性格分析
ThisworkislicensedundertheCreativeCommonsAttributionInternationalLicense(CCBY4.0).
1.引言
在当前社会中存在由于场景、送礼对象的喜好性格等各方面的因素的不同造成送礼人不能挑选到一份合乎收礼人心意的礼物,甚至有时因为场合不对造成送礼的尴尬和矛盾。目前市场上有一些针对于此问题的软件,但这些软件在功能方面较单一;在礼物推荐方面仅通过输入关键词查找推荐的方式,操作复杂,且搜索到收礼人满意的礼物商品的准确率低。因此开发一款智能、功能全面、推荐礼物与用户匹配准确率高的礼物推荐应用非常必要。
就目前来看,针对礼物推荐的研究很少。吴帅军[1]等人使用基于用户习惯偏好相似度的SlopeOne算法(UPSSlopeOne)、基于协同过滤的个性化推荐开发出“知礼”平台。但在获取用户信息方面,其使用用户答题的方式,获取信息较单一且操作较麻烦。市场上现存的礼物推荐软件例如礼物说,均为分类和关键词搜索的方式进行礼物推荐,匹配到用户满意的礼物的概率低。但电商的发展促进了对商品推荐的研究。焦琛皓[2]采用门控循环神经网络(GRU)模型来对用户购买的商品序列学习,之后又采用基于流行度的负采样来改善模型效果。此外他还使用因子分解机算法与GRU共用相同的输入,并行的生成购买物品概率的预测,最后将FM与RNN结合生成最终推荐结果。常昊和杨盛泉[3]将传统的协同过滤算法和决策树算法进行结合,对结合的算法改进,最终创建协同过滤决策树算法来进行商品推荐,得到的实验结果较传统的算法,准确率得到了提升。但以上研究仍存在三个问题:一用户数据获取较复杂;二礼物与用户的性格等特征的紧密度比普通商品的大,不能采用普通商品的推荐算法;三商品的被推荐者一般不为商品的使用者(即送礼人一般不为收礼人)。
2.总体设计
Figure1.Overallsystemfunctiondiagram
3.SpringBoot和Flask相结合的后台设计
3.1.后台框架设计
3.1.1.基于SpringBoot的后台框架设计
Figure2.SpringBootbackgroundframeworkdesign
3.1.2.基于Flask的个性化功能实现
系统在实现基于用户性格分析的推荐商品功能时引用Python中的库开发较为便捷,因而单独设计了基于Python语言的Flask后台框架。Flask[5]是python语言编写的轻量级web应用框架。相较其他框架,它更为灵活、轻便、安全且容易上手,可以很好地结合MVC模式进行开发。此外,Flask框架拥有强大的插件库可以让用户实现个性化的网站定制,从而开发出功能强大的网站。
Figure3.SystemFlaskbackgroundframeworkdesign
1)小程序端有如下三个作用:
b)将转化成的文本发送到后台。
c)接受和展示商品信息。
2)后台端有如下四个作用:
a)调用jieba分词库对接受到的文本分词。
b)从购物网站上爬取商品信息并存储到数据库中。
c)计算出收礼人对应的消费性格。
d)取出数据库中的商品信息。
3)数据库:以表的形式存储礼物商品信息和商品对应的性格种类信息。
3.2.用户性格分析算法
1)消费者性格
Table1.Consumercharacteranditsexternalperformance
2)大五人格(TheBigFive)
Table2.Personalityfactors,characteristicsofhighscorersandcorrespondingconsumerpersonality
3)SC-LIWC词典
SC-LIWC是一本中文分词词典,用于分析文本的性格。它是由台湾大学的黄金兰等人将LIWC进行转化而产生的。LIWC是Striman和Pennebaker联合设计完成的对英文的文本分析得到作者性格的词典。黄金兰等人说明了SC-LIWC词典中含有的7444个词项[8]的每一项所具有的功能情况。
3.2.2.用户性格计算
将语音传入的收礼人的信息文本的分词集保存,分别找出每一个分词对应SC-LIWC词典中的词功能。通过SC-LIWC词典中词功能与五大类性格对应的关系,得出该分词的每个词对应的关系值。由于每个分词含有多个词功能,为能够整体的表示某一性格,取每个关系值的平均值。
Figure4.Userpersonalitycalculationlogicdiagram
4.1.卡片式布局设计
2)礼物故事以左右滑动卡片展示。
3)我的模块以卡片的形式展示更多的用户信息。
Figure5.Postcard
Figure6.Storycard
Figure7.Mycard
4.2.瀑布流式布局设计
Figure8.Waterfallflowimplementationprocessdiagram
Figure9.Theeffectofwaterfallflow
5.关键技术
5.1.基于同声传译的语音转文本
Step2:在需要使用该插件的小程序app.json文件中编写使用的插件版本、AppID等信息。引入代码如下:
plugins:{
WechatSI:{
version:0.2.2,
provider:wx069ba97219f66d99}}
Step3:在小程序index.js文件中引入,获取全局唯一的语音识别管理器recordRecoManager。获取js代码如下:
letmanager=plugin.getRecordRecognitionManager()
Step4:在小程序index.xml文件中编写视图,xml代码如下:
按下录音,松开结束
5.2.基于jieba库的中文分词
Jieba库是中文分词第三方库,支持三种分词模式即精确模式、全模式和搜索引擎模式,支持繁体分词和自定义词典。本文采用jieba库对获取的收礼人信息文本进行分词,使用Pycharm工具软件编写python程序引用jieba库,具体步骤如下:
1)安装jieba库
在cmd命令行下输入命令:pipinstalljieba;回车。
2)引入jieba库
在python程序中编写:importjieba。
Step1:构建前缀词典:基于统计词典构造前缀词典,统计词典有三列依次是词、词频和词性。
Step2:构建有向无环图:根据前缀词典对输入文本进行切分。对每个字,构建一个以位置为key,相应划分的末尾位置构成的列表为value的映射。
Step3:最大概率路径计算:将所有可能的切分方式构成有向无环图。图中从起点到终点存在多条路径即存在多种分词结果。采用从后往前的方式,利用动态规划算法计算最大概率路径。
5.3.数据获取与存储
5.3.1.视频、图片和文本数据获取与存储
a)用户编辑、拍摄、上传
b)后台管理员上传。系统将用户上传的数据存入数据库,用于后台从数据库中取出显示给用户。
Figure10.jiebawordsegmentationflowchart
1)用户数据获取与存储
Figure11.Userdataacquisitionandaccessprocessdiagram
2)管理员数据获取与存储
5.3.2.商品数据获取与存储
Step1:引用requests库调用get()方法获取要爬取信息的网页的html。
Step2:引用BeautifulSoup库,调用其中的方法解析html,获得数据。
Step3:引用MySQL库,连接数据库,将获取的数据存入数据库中。
Figure12.Diagramoftheprocessofadministratordataacquisitionandaccess
Figure13.Productdataacquisitionandstorageprocessdiagram
6.项目实现
Figure14.Home
Figure15.Collection
Figure16.Tailor-made
7.总结
系统以满足用户挑选礼物的各种需求为开发目的,将运用编写的基于用户性格的礼物推荐算法实现的智能礼物推荐功能作为亮点,并设计开发了通过关键字和分类搜索礼物、查看DIY礼物教程以及查看礼物精美帖子这些功能帮助用户挑选到满意的礼物,此外辅以用户发布礼物帖、好友生日提醒等功能,为用户解决了在礼物挑选面临的难题。