基于用户协同过滤算法的智慧健康管理系统设计与实现
2023-10-25朱奕臣薛浩磊王红洋蒋潇涵郝承奇
朱奕臣,薛浩磊,王红洋,刘 博,蒋潇涵,郝承奇
(河南科技大学 软件学院,河南 洛阳 471003)
0 引言
随着时代的进步和科技的发展,医疗事业得到了飞速的发展与进步。由于国内医疗资源分配严重不平衡,造成了用户看病难和问诊效率低下等问题。本文提出的智慧健康管理系统能够较好地改善以上问题。本系统作为人工智能与医学的结合体,可以及时、精准推送与用户相关的医疗信息和服务,同时也会为用户提供有关医护知识方面的帮助,从而满足用户的不同需求。
1 智慧健康管理系统设计概述
1.1 系统介绍
本文介绍的智慧健康管理系统,通过微信小程序的方式采集用户需求,及时提供精准的就医信息。用户通过小程序可以了解最新医疗资讯以及查询医生、药品、医院等相关信息。本系统使医疗管理智能化、信息化,对提高用户生活的医疗需求起到了巨大的帮助。本系统主要分为3大部分,分别是小程序客户端、后台服务端以及数据库端。
1.2 系统结构介绍
该系统的结构如图1所示。
图1 智慧健康管理系统结构
1.3 数据库设计
数据库是一个长期存储在计算机内的、有组织的、可共享的、统一管理的大量数据的集合,还具有占用内存小、移植性强、操作简单等优点[1]。本系统通过数据库对各类信息进行整理汇集可以帮助开发者去分析数据。
本系统所使用的数据库由medicine、doctors等8个表组成,其中药品信息库(medicine)和医生信息库(doctors)详细设计如表1—2所示。
表1 药品信息库
表2 医生信息库
2 主要功能设计
2.1 用户管理模块设计
系统用户分为管理员和普通用户,管理员登录时无需验证,而普通用户登录需验证账户是否存在,若不存在,则需要注册账户。管理员与普通用户权限不同,管理员登录系统后,可在系统服务器端修改系统信息,普通用户仅能对已有的信息进行浏览和选择。
2.2 管理员管理模块
管理员管理模块主要用于管理员对系统信息的管理,其主要功能包含医院信息管理、医生信息管理、药品信息管理和用户信息管理。
2.3 地图导航模块
通过调用腾讯地图WebService API提供的一系列服务接口,使用getApiKey、coord2label、ipLocation等方法实现腾讯地图服务接入来实现定位功能[2]。关键代码如下:
Wxml:
2.4 名医推荐模块
名医推荐模块主要用于为用户提供医生信息,其主要依据科室种类进行分类,方便用户依据不同问题寻找医生解决。其主要功能有预约医生、医生信息查询等。
2.5 医疗资讯模块
医疗资讯模块主要为用户提供日常生活中常见问题的解决方法。其主要内容包括流感预防、健康百科以及肠胃保护等。
2.6 个人中心模块
个人中心模块主要用于存储用户信息,其中包括用户的登录信息、浏览记录、购物车清单和收藏列表。用户还可以提交关于小程序的意见反馈。
3 关键技术设计
3.1 模糊查询
模糊查询是目前计算机查找信息用得最多的一种搜索工具,其主要用于与“数据”相关的栏目。用户通过模糊查询可快速查找到想要的信息,通常是用关键字模糊查找。所谓关键字就是登记信息中所包含的字符,如:查询医生名称“吴柳榕”,关键字可为“吴”“柳”“榕”。再如:查询药品名称“短肽型肠内营养剂”,关键字可为“短肽型”“肠内”“营养剂”等。所谓“模糊查询”,就是利用部分参数查找到相关数据的方式。比如按姓名查询,仅指定姓名的某个部分,如姓或名字中的某个字或它们的组合,都可以找出与之相关的数据。主要用来在已知信息少的情况下尽可能地找出所需要的数据。在编程中主要用到:变量、宏替换运算(函数)&、包涵运算$[3]。
3.2 协同过滤算法
协同过滤是推荐系统中最经典和最常用的算法,其核心思想是:用户不断地和网站互动,利用用户的历史行为数据,使用户的推荐列表能够不断过滤掉其不感兴趣的物品,从而越来越满足用户需求。本系统主要采用的是基于用户的协同过滤。基于用户的协同过滤的基本思想是两个相似的用户可能对同样的东西感兴趣。首先找到和目标用户相似的最近邻居,然后根据最近邻居的行为来预测目标用户的行为,从而为目标用户推荐更加符合其兴趣的项目[4]。
在此以3个用户(编号1、编号2、编号3)为例,编号1对于A、B两个事物感兴趣,编号2对A、C两个事物感兴趣,编号3对B、D两个事物感兴趣,且编号1和编号2存在相同的兴趣A,那么我们可以认为编号1和编号2存在相同的兴趣且兴趣相似度较高,可以将事物C推荐给编号1(编号1和编号3的关系同理)。相同地,如果所收集到的兴趣事物越多,重合度越高,则推荐会更加精准[5]。代码实现如图2所示。
图2 算法代码实现过程
3.2.1 实现过程
(1)找到与用户有着相似度的用户集合。
(2)挑选出这两个集合之间的不同点。
(3)进行评分预测。
笔者在这里是采用了杰卡德系数来计算相似度。杰卡德相似度是比较有限集合相似性的有效指标之一。两个集合M和N的杰卡德相似度定义为M 与N的交集元素在M与N的并集中所占的比例[6]。定义如下:
(1)
3.2.2 评测指标
以本文所用算法来分析,衡量一个算法的准确度,通常是由准确率和召回率来度量,如图3所示。
图3 推荐算法流程
由于笔者在设计时为用户提供的不是单一的信息,此时需要考虑实验中存在的误差。因此,笔者在这里选取准确率和召回率的加权平均值作为评判此次实验的标准。
3.3 系统交互设计
在交互设计方面,登录页布局简洁,方便用户直接登录。页面内容浅显易懂。独立图标能方便用户快速寻找相关信息。
4 结语
健康与人民的生活息息相关。微信小程序能够给各个行业带来颠覆式的改变,大大提高了人们工作、生活的便利和便捷,也使得人们对生活体验有了更高的要求。更快捷地获取相关信息以及提高就医的便利性等需求与医疗资源分布不均的矛盾是当前社会的主要问题之一。本文论述的基于用户协同过滤算法的智慧健康管理系统,不仅可以帮助患者精准、及时地获取所需信息,还可以缓解医患关系,减轻医院就诊压力,大大地满足了人们不断增长的健康需求。