基于微信平台的孕幼健康问题设计与实现

2022-03-16 07:16程远航赵纹静杜英魁
物联网技术 2022年3期
关键词:个性化服务器自动

程远航,赵纹静,杜英魁,李 娟

(1.沈阳大学 信息工程学院,辽宁 沈阳 110044;2.沈阳大学 体育学院,辽宁 沈阳 110044)

0 引 言

现如今,我国疫情局势已逐渐平稳,但全球疫情尚未结束,仍不能忽视境外输入性风险,孕产妇和婴幼儿依然是疫情形势下需要保护的重点人群。对于孕产妇和婴幼儿,为降低感染风险,没有特殊情况应避免出门;但是作为新手父母,从备孕到孩子出生以及成长阶段,因为缺乏经验即使出现小问题也会用“放大镜”去看待,仍习惯到医院咨询医生,医生也会遇到很多重复性的问题,工作效率较低。另外,在疫情期间,去医院咨询医生也会增加孕产妇和婴幼儿的感染风险。因此有必要为新手父母提供一个关于孕幼健康知识的移动学习平台,该移动学习平台不仅可以随时解决用户问题,节约用户时间,而且还能向用户宣传孕幼健康知识,提高自我保护意识。

随着科技互联网的不断发展,社交软件大范围兴起,微信在2012年被应用至今,越来越受到人们的欢迎,已经成为人们生活中重要的社交媒体。本文从孕幼健康角度出发,充分利用微信平台的交互性、信息传递性等特点进行研究,建立了一个关于孕幼健康问题的移动学习平台。系统合理利用微信平台资源,为用户提供答疑模块,快速高效解决用户问题。由于用户在海量数据中寻找自己想要的内容总会遇到一些困难,使得用户不能在有限的碎片化时间有效地寻找自己喜欢的内容。为了解决此问题,本文采用个性化推荐方法,使用户通过一种全新的模式来获得信息。根据用户的隐式和显式行为信息,经过数据挖掘分析获取用户的兴趣偏好,匹配与用户兴趣相似的内容;将协同过滤推荐算法与基于内容的推荐算法进行组合,使用户由被动的信息浏览者转变为主动的参与者,不仅帮助用户推荐一直偏好的内容,而且挖掘用户潜在的兴趣,提高推荐的准确率。

1 总体设计方案

本文设计基于微信平台开发的关于孕幼健康问题的移动学习系统,面向孕幼家庭为用户提供学习帮助和问题解答。本设计的重点是实现自动答疑和向用户推荐个性化内容。微信的主要功能是为用户提供消息传输和共享的服务,在系统中利用Python开发微信公众号,开发模式选用B/S架构模式,将Django框架作为系统的开发框架,用MySQL数据库存储用户行为数据和回答用户的问题库。

系统的自动答疑模块能够满足用户自助咨询的要求,开发者会根据用户的问题不断更新问题库,逐渐满足用户要求。自动答疑功能体现用户主动与微信平台互动,实现用户与微信平台的即时交互,使用户随时随地都能够进行学习,提高学习的便捷性;微信平台的个性化推荐体现微信平台主动与用户互动,通过采用混合推荐算法,提高内容推荐的精确度。

选取阿里云服务器作为系统的运行环境,负责系统正常运行。服务器为系统提供远程访问,实现自动答疑模块的高效运转;服务器提供不间断的互联网,满足个性化推荐和定时在线推送功能。服务器搭建主要是申请服务器账号、服务器配置、命令行手动搭建,微信平台开发支持80端口,使用Nginx部署协调,以提高用户访问速度和服务器的性能。

微信公众号开发以Django框架为开发架构,它是在Web开发中最流行的框架,有路由映射、数据处理、模板编程、服务发布的功能。Django框架采用MVT(Model,Template, View)设计模式,微信公众号相当于浏览器。MVT设计模式如图1所示。将应用程序分成三个部分,拥有自助式的后台管理,功能强大。在Model数据存储层,处理与数据相关的操作,在系统中主要是与MySQL进行数据交互。通过ORM对象关系映射,将MySQL数据库的数据映射到对象,不需要写MySQL语句,只通过Python语言即可得到数据表。在Template模板层,为用户提供语法框架,用户可以自行设计页面结构渲染页面,本文以图文结合的形式呈现给用户。View业务逻辑层是连接Model和Template层的桥梁,编辑Python程序处理具体的业务逻辑,把要推送给用户的推荐列表以字典的形式传送到Template进行渲染,将HttpResponse内容定时通过微信公众号推荐给用户。

图1 MVT设计模式示意图

2 微信自动答疑功能设计

本系统主要以微信公众平台为载体为用户提供自助咨询、内容推送服务。首先需要进行一系列的准备工作,为用户提供便捷;然后在官方网站创建并注册公众账号,进行信息配置,为给用户带来惊喜和新颖,采用开发者模式,可以获取高级接口权限;最后搭建平台框架为后续开发做准备。公众号开发者模式在身份认证过程中可以先通过测试号完成开发,使用接口调试工具在线调试某些接口。本移动学习系统使用测试号完成。

用户只须登录微信、关注公众号后输入内容,微信服务器将用户请求传达到云服务器,程序部署在云服务器中实现24 h微信自动答疑;云服务器解析用户消息,与数据库中存储的问题库进行匹配,将最接近的答案通过微信服务器转发给用户,微信服务器在用户和云服务器间相当于一个转发服务器。自动答疑结构如图2所示。自动答疑功能实现用户自助咨询,返回用户最佳答案。当系统在遇到无法识别的问题时,会先建议用户重新输入,同时开发者会对此类用户问题进行更新,不断完善问题库,满足用户需求。

图2 自动答疑结构

3 个性化推荐技术

个性化推荐是针对不同的用户给予不同的内容推荐,实现精准投放。为了获取用户信息,微信公众号识别关注公众号的用户是通过唯一的OpenID。OpenID以微信用户的一个联系人形式存在,为用户个性化推荐提供了保障;同时,此OpenID也是获取用户信息的唯一渠道。开发者模式具有使用高级接口的权限,可以通过调用关注者的列表接口获取关注者的用户信息,为个性化推荐做好数据准备。

基于微信平台的孕幼健康移动学习系统中的个性化推荐功能是由热点推荐、协同过滤推荐算法和基于内容的推荐算法组合而成的,面对新用户没有任何历史记录,将排名靠前的热点新闻内容推荐给用户,获取到用户的一定信息后将后两者推荐算法进行特征组合。对两种单一算法产生的推荐结果集分别进行降序排列,再对得到的结果进行权重分配,筛选最相似的内容并组成最新推荐列表推荐给用户。个性化推荐结构如图3所示。

图3 个性化推荐结构

3.1 协同过滤推荐算法

个性化推荐技术首先将基于用户的协同过滤推荐作为系统的主推荐算法,实现用户的个性化内容推荐服务。该算法的优势是可以挖掘用户的潜在兴趣,增强用户粘性。算法步骤可以分为两大步:(1)寻找与用户兴趣相似的邻居用户集合;(2)将邻居用户看过的而目标用户未曾看过的内容进行推荐。该算法的数据集是对用户的行为信息进行数据处理后得到的用户对项目的评分数据集。邻居集合是通过数据集计算用户间的相似度得到的,余弦相似度公式如式(1)所示。()、()分别是用户、用户感兴趣的内容集合,利用余弦相似度公式计算出两用户间的兴趣相似度,将结果降序排列得到邻居集合,在邻居集合中筛选邻居用户看过而当前用户未曾看过的内容,即为推荐内容。

在计算相似度过程中可能会遇到用户1与用户2、3、4、5的相似度相同,不能准确找到最相似的邻居用户的情况,此时改进相似度的计算方法,加入惩罚因子来消除用公式(1)计算用户兴趣相似度的不足,从而提高计算结果的准确率,为目标用户找到最相似的用户集合。公式(2)为改进的余弦相似度公式。

3.2 基于内容的推荐算法

个性化推荐技术中另一种推荐算法是基于内容的推荐算法,基本原理是根据用户已经看过的内容进行分析,得到用户的兴趣偏好模型,从而将与用户兴趣模型相似的内容推荐给用户。该算法的优势是不需要其他用户的数据,没有冷启动问题,只要能够提取到用户看过的历史内容就可以进行推荐。算法步骤主要分为以下三步:

(1)中文分词算法构建:采用jieba分词提取内容特征。

(2)词向量转化:将文本转换成维空间向量,这样转换的词向量能够很好地配合推荐系统工作。

(3)计算兴趣值:根据计算出的关键词向量,运用TF-IDF算法,计算用户看过的内容与新内容之间的相似度。

4 实验与分析

4.1 实验准备

本文所有的实验和算法都是通过Pycharm实现,实验运行通过阿里云服务器完成。为了更好地对本文所提出的算法进行实验对比和分析,本文用到的实验数据是ml-1m数据集,描述了电影推荐服务的五星级和自由文本标记活动,该数据集是推荐算法中常用的数据集,包含6 040个用户对3 952部电影的1 000 209条评分数据。

4.2 评估指标

为了评估改进的推荐算法的准确度,本部分主要选择准确率、召回率、F1指标作为评价标准,将本文混合推荐算法与传统协同过滤推荐算法进行对比分析。推荐算法为用户推荐可能感兴趣的前个项目,()表示为用户推荐的项目集合,()表示用户在测试集上的行为列表集合,公式如下:

(3)综合评价指标

F1值是综合以上两指标的评估指标,用来反映整体的指标,又称为是Precision和Recall加权调和平均值。F1值越大,推荐算法的精确度越高,推荐的质量也会越高。公式如下:

4.3 结果分析

为了确保实验结果准确性,将数据集随机分成20%数据是测试集、80%数据是训练集两部分;为了避免该推荐模型产生随机性,所有的实验均执行100次取平均值作为测试结果。根据本文提出的混合推荐算法,将邻居用户数分别设置为10到100,步长为10,根据邻居数的变化评价指标相对应的变化,在=90时,效果最好。

从图4中可以看出,混合推荐算法(CF-CB)相比传统协同过滤推荐算法(CF)在Precision、Recall和F1方面都有明显的提高,从而验证了采用混合推荐算法的正确性,提高了系统推荐精度。

图4 CF与CF-CB的评价指标比较

5 系统实现

5.1 微信自动答疑功能的实现

在微信平台的自动答疑部分,实现用户自助查询,不需要去医院或者寻求别人的帮助。通过手机微信公众平台,将用户问题的答案回馈给用户。用户可以发送关键词,字数越多越贴近答案,自动答疑功能大大节约用户搜索的时间,提高知识共享的效率。如果遇到无法识别的问题时,开发者会定期根据用户咨询不断更新问题库;随着用户咨询数量的增多,系统会定期进行去重,系统一切为用户服务。用户自动答疑结果如图5所示。

图5 微信自动答疑功能实现结果

5.2 微信内容推送功能的实现

内容推送功能的实现是通过采用个性化推荐算法主动帮助用户寻找感兴趣的内容并推送给用户,减少用户在海量内容中寻找所需要内容的苦恼,也提高了系统推荐的精度,将合适的内容在合适的时间用合适的方式推荐给合适的人,极力满足用户需求。内容推送界面如图6所示。

图6 内容推送功能实现结果

6 结 语

在当今的社会化网络中,用户经常在多媒体平台进行知识学习、经验交流、购物娱乐,多媒体平台成为大众进行友好互动交流的社会化网络环境。本文以微信平台为载体,设计了关于孕幼健康问题的移动学习系统,实现用户自助查询需求,定时向用户推送合适的内容。操作简单、结果新颖,用户只需要具备网络环境,在微信公众号输入内容即可收到系统的响应。采用个性化推荐算法是解决用户信息过载问题的有效工具,将多种推荐算法进行有效组合,以弥补单一推荐算法的不足,同时发挥各自的优势,以取得更好的推荐结果,帮助用户节约信息检索的时间,给用户带来较好的体验。

猜你喜欢
个性化服务器自动
自动捕盗机
通信控制服务器(CCS)维护终端的设计与实现
新闻的个性化写作
基于STM32的自动喂养机控制系统
中国服务器市场份额出炉
上汽大通:C2B个性化定制未来
得形忘意的服务器标准
关于自动驾驶
计算机网络安全服务器入侵与防御
Stefan Greiner:我们为什么需要自动驾驶?