Python语言在护理研究领域的应用现状与展望

2023-08-11 00:35苑秋辰麻盛淼沈晨杨浩杰梁涛
中国护理管理 2023年5期
关键词:研究者领域文本

苑秋辰 麻盛淼 沈晨 杨浩杰 梁涛

目前,医学护理领域常用的数据统计分析软件有SAS、SPSS、Excel、NVivo等,脚本语言有R语言等[1-2],其广泛应用为研究者带来了便利,一定程度上推动了护理领域的持续发展。但随着护理研究的逐渐深入,各工具自身的局限性和短板也逐渐凸显,如R语言的运行速度较慢且内存管理效率低[3],SPSS软件缺少的主成分分析功能会在一定程度上影响研究者的分析过程等[4],因此需要功能更加完备的工具满足研究需求。Python语言是一种高级通用脚本编程语言[5],近年来,随着编程语言的不断迭代更新,Python语言已被广泛应用于计算机科学领域。国内外研究已初步证实,Python语言在广义估计方程和混合线性模型中的结果可信[6],且在机器学习算法中对于不同数据集和平台的最佳测试精度、分类精度和参数调优结果上均显著优于R语言、SPSS和SAS[7]。在数据密集型的科学范式下,护理研究者也开始认识到Python语言的价值并已利用Python进行数据采集和分析[8-9]、构建机器学习模型[10]等,初步拓宽和深入了护理领域的发展。本文旨在综述Python语言在护理研究领域中的应用现状,并提出未来的应用展望,以期为护理领域未来的研究提供参考,推动护理领域的进一步发展。

1 Python语言概述

1.1 Python语言的起源和发展

1989年12月,荷兰数学和计算机科学研究学会的Guido在原有ABC语言的基础上设计了一个更简洁、易拓展、可移植的脚本编程语言,即可按需编辑的语言,并将之命名为“Python”,其最早的可用版本于1991年正式发行,具备能完成一定功能的代码集合(以下统称库)[5,11]。2000年10月,Python 2.0版本发布,自此Python语言进入了更多开发者的视野[11]。2008年12月,Python 3.0版本发布,该版本的解释器内部完全采用面向对象的方式实现,在语法层面做了很多重大改进,自此数万个标准库开始了版本升级过程[11]。2016年,Python的所有库均已在Python 3.x版本下演进和发展,Python语言版本升级过程至此结束[11]。2017年,Python语言因其简洁、开源、易拓展等特性广受开发者青睐,流行程度在所有编程语言中排名第一[12]。

1.2 Python语言的特点和功能

语法简洁、生态丰富和多语言集成是Python语言的三大特点[11]。“优雅”“明确”“简单”的设计哲学使其接近自然语言,因而更具可读性且更易于学习,使学者能更专注于解决问题本身,减少花费在实现代码细节上的时间;Python语言提供了数百个内置类和函数以及世界范围内的程序员通过开源社区编写的十余万个第三方库,生态十分丰富;作为解释型语言,Python程序的执行速度较C或C++等编译型语言慢,但开发者可以将其他编程语言代码封装后以Python语言方式使用,提升Python语言程序的执行速度。此外,Python语言同时支持“面向对象”和“面向过程”的设计模式也是其一大特性,使其更易于维护和拓展,节省大量开发时间。Python语言凭借其丰富的库能实现诸多功能,包括网络爬虫、数据分析、文本处理、用户图形界面、机器学习、网络编程、游戏开发、数据可视化等[11,13]。

2 Python语言在护理研究领域的应用现状

Python语言的使用者可利用其采集相关领域的互联网或工作场景中的数据,并对采集到的数据进行筛选、清洗等预处理工作,进而展开数据统计分析,还可以使用其网络编程等功能搭建相关信息平台等。基于这样的功能,使用Python的护理研究者也在这几个方面进行了应用与探索,在提升护理研究和干预效率的同时,节省了护理人力资源和时间成本。

2.1 网络爬虫

网络爬虫是指通过编程实现程序模拟人操作浏览器,从网站中获取数据和信息[14],研究者可使用Python网络爬虫技术采集互联网中与护理领域相关的政策信息,了解不同专题的政策和热点内容。韩国学者Yoon等[15]用Python语言实现了网络爬虫,收集了互联网中与“护士”相关的关键词,比较了互联网中新型冠状病毒感染疫情前和疫情期间护士相关的关键词变化趋势,发现中心性最高的关键词从“护士”“剖腹产”变为“急重症”“防护服”等,进而呼吁护理人员应多关注和学习互联网中的信息,尝试发现问题并予以改进。Kim等[16]使用Python网络爬虫技术采集韩国护士协会新闻、日报和推特网中有关“综合护理服务”的信息,为相关政策的制定提供了参考。除政策信息外,研究者还可以采集社交媒体平台中海量的大众评论内容并展开分析。我国学者李朝阳等[17]用Python采集百度贴吧“同妻吧”中的72 680条帖子,为社区对同性恋人群的健康教育及同妻人群的心理护理干预提供了参考。成全等[9]使用Python采集2018年妈妈网论坛中“怀孕妈妈”板块中的3 109条帖子,为对孕妇实施精准健康教育提供了建议。以上研究均为网络文本信息的采集,研究者还可通过Python网络爬虫技术采集网络中护理相关的图片、音频和视频等资料供学习和研究使用。

2.2 数据预处理

数据预处理是指研究者根据专业知识,结合研究目的,剔除样本中无实义的字符或特征重复的数据等,经过对数据进行理解、识别和规范后形成可靠的数据集,为后续的统计分析做准备的过程,研究证实数据预处理效果会影响算法的预测性能[18]。在文献计量学中,研究者可使用Python删除文献数据关键词中对研究无意义的词,或将多个文献数据库中不同格式的文献记录通过Python语言整合为同一格式,便于导入统计分析软件[19],拓宽了数据来源范围,更加全面地探索护理领域各专题的研究热点和发展趋势。除文本数据外,面对大量、冗杂的临床护理量性数据,研究者可以使用Python语言按需制定预处理规则,节约大量人工重复操作的时间,如武俊伟等[20]使用Python对超过20万例患者的ICU数据进行清洗,去除体温<30 ℃、心率和呼吸为0的无效测量值,为ICU急性呼吸窘迫综合征患者数据的进一步分析提供了支持。

2.3 机器学习

Python语言作为人工智能技术的主要依托语言,拥有丰富、强大的机器学习相关的第三方库[11],在护理领域已得到了初步应用。

2.3.1 量性数据构建预测模型

对于临床量性数据,研究者可根据患者在特定时期内的疾病发展结果或健康状况的发生风险,使用Python语言构建机器学习预测模型,为患者日后生活方式或护理干预方法提供决策支持。国外学者Padhy等[21]选用收集的数据和糖尿病数据库中的数据,使用Python语言构建糖尿病早期预测模型,发现随机森林模型的准确性达98.4%,且在灵敏度、特异性、精度和F测量方面优于Logistic回归等其他分类器。国内学者武俊伟等[20]使用Python的sklearn库分别构建Logistic回归、随机森林模型和Light GBM模型,使用该库中的校准曲线比较各分类器的校准效果,发现6~96 h时间窗口比6~24 h和6~48 h对预测急性呼吸窘迫综合征病程是否会加重的准确率及AUC均高,同时在该窗口期内随机森林模型的诊断性能最接近真实概率且远优于Logistic回归,进而构建了ICU急性呼吸窘迫综合征早期预测的最优模型。以上研究可见,传统的多元回归和Logistic回归将逐渐被预测效能更优的随机森林等机器学习模型所替代,因此研究者可借助Python语言丰富的机器学习建模和评价的第三方库,展开对多个的研究变量的统计分析,建立更加科学、实用的预测模型[22],以解决复杂场景中的护理问题。

2.3.2 文本数据构建主题模型

对于文本数据,研究者在分析时多采用主题分类的方式挖掘文本的潜在信息。文本主题分类是借助机器学习的自然语言处理技术分析文本包含的态度、情绪和认知得分的过程,以隐含狄利克雷分布(Latent Dirichlet Allocation,LDA)算法最为常见[23]。黄仁东等[24]采用Python的Snow NLP库和PyLDAvis库对微博“网约护士”词条下的评论进行LDA情感分析和文本分类,发现公众对网约护士政策的总体态度持弱积极性,文本分类结果为“人身安全”“医疗事故责任”“服务模式”和“服务内容”,进而为网约护士相关护理政策的制定提供了参考。Guo等[19]基于推特网评论内容探索新型冠状病毒感染患者的经历和感受,采用Python构建LDA模型,挖掘出“认识到新型冠状病毒感染病情严重性”“有新型冠状病毒感染症状”“分享新型冠状病毒感染的经历”这3个主题,为改善新型冠状病毒感染患者的护理提供了建议。Liu等[25]使用Python构建LDA主题模型,从1 584篇电子烟相关的新闻内容中提取出26个健康传播相关的主题,为健康管理和健康教育方式提供了参考。研究者可使用Python语言构建LDA主题模型,对互联网和社交媒体平台中的大众观点进行文本主题分类,以大众视角为相关政策的制定提供参考。

2.3.3 深度学习提取图像特征

深度学习作为机器学习的一个重要分支,可以提取数据的关键特征,更加快速精确地识别出患者图像信息[26]。王巧真等[27]使用Python的深度学习框架PyTorch对患者卧床姿态的图像数据进行识别和分类,发现了对患者异常姿态图像轮廓特征进行提取的高效算法,实现了远程监护场景下卧床患者异常姿态的自动识别报警功能。除远程监控系统外,基于Python语言的程序还可以嵌入硬件设备,识别和分析患者相关数据。Liu等[28]在养老服务机器人的系统中嵌入Python的OpenCV库,对患者面部图像数据进行识别和分类,为机器人精准导航提供了技术支持,使老人能按时、安全服药,保障患者安全,促进患者康复。研究者可以借助Python语言的深度学习功能挖掘文本、图像、视频、音频等不同类型患者数据的分类效果,更加精确地识别患者行为,帮助护士及时准确发现患者异常行为,便于制定后续护理计划。

2.4 统计分析

对于文本数据,研究者常采用统计高频词的方法来发现某一研究领域不同时期的研究热点和发展趋势。开发者可使用Python的count()、len()等内置函数和collections等第三方库统计任意类型数据的出现频次,或使用Numpy、Pandas等库计算数据的中心性等评价指标,还 可 联 合SPSS、CiteSpace、VOSviewer、Gephi等软件对文本数据进行统计分析[29-30]。国外学者Kim等[30]使用Python语言将关键词的出现频次等指标分别排序,探索医疗环境中护士接受跨专业教育的趋势和特点,发现“跨专业”“教育”“学生”“护理”和“健康”出现次数最多,为护理学科跨专业的教育方式和课程选择提供方向。Kim[31]使用Python进行文本网络分析以挖掘其护理创业教育项目的文本数据,统计出词频最高的关键词有“商业”“护理”“照护”“医疗保健”和“服务”,计算出中心性最高的关键词有“使命”“愿景”和“团队”,提出管理部门应提供护理创业支持以发展有竞争力的护理服务并扩大护理专业的知识范围。国内学者王啸宇等[32]利用Python语言对49个城市的长期护理保险政策中的高频词进行统计,为长期护理保险的制度设计提供了思路。

2.5 网络编程

护理人员可以借助Python语言的网络编程功能开发在线交互平台,实现医护患的远程交互,及时为临床护理干预和护理决策提供支持。叶晓露等[33]应用Python语言结合JavaScript进行后端制作,探讨基于无标识运动捕捉技术的在线康复程序在乳腺癌术后居家患者中的应用效果,有效增加了患者早期居家康复锻炼的依从性,有利于术后居家患者的快速康复。贾会英等[34]使用Python网络编程框架结合临床护理路径算法,利用1 084名慢性病共病患者的疾病数据创建了在线网络平台,交互式地探索和解释了慢性病共病患者疾病管理问题,并以可视化的方式完善了慢性病共病患者护理决策的共享,为临床医护人员和患者提供了极佳的慢性病共病患者管理指导。

2.6 自主开发整合多功能的第三方库

除Python语言既有的第三方库之外,研究者还可以按实际需求通过其开源社区自主编写第三方库,为数据处理的过程提供便利,精简研究范式。英国剑桥大学、美国麻省理工学院和美国瑞辉公司的研究团队[35]联合编写了一个用于可穿戴设备传感器数据预处理的Python库“SciKit Digital Health”,通过多种算法对患者步态、坐到站、身体活动和睡眠的临床特征数据进行采集、预处理和分析。除患者临床数据外,波兰、葡萄牙和中国学者的研究团队[36]为了更好地评估患者的医疗保健服务体验,联合开发了基于Python语言的“文本自动查询算法”(Algorithmic Rules for Automatic Queries of Texts),发现该算法的文本分类效果显著优于人工分类,且适用于分析不同领域中大量人类叙述性语言的数据,同时能有效、低成本地分析患者对于卫生服务的体验并评估其满意度。以上研究者根据不同需求自主编写Python语言第三方库,将数据采集、数据预处理和数据分析等功能按需连接在一起,简化了研究者数据处理的步骤,构建了新的数据分析模式,并以Python语言免费开源的特点广为研究者所用,借助Python语言创新了大数据时代下医疗护理领域的研究工具,值得国内医疗护理领域的学者借鉴。

3 Python语言在护理研究领域的应用展望

3.1 Python语言功能在护理研究领域的应用有待继续开拓

Python语言除常用功能外,其丰富的生态和第三方库同样值得护理人员大力挖掘。对于护理研究者,未来可借助Python语言探讨不同统计学方法所用公式的准确性和可信度,尝试使用科学计算库、数据处理库等高效数据分析框架开发适用于不同护理研究方法的统计分析软件,还可以使用Porter Stemmer库进行词形归并和词根提取,尝试编写和构建护理领域专门的语料库[37],并以其免费开源的特点供广大护理研究者学习和使用;对于临床护士,未来可尝试使用Python语言开发不同专科疾病的护理干预软件,如使用游戏开发库、多媒体信息处理库、图形界面库、网络编程库等[38]设计教学游戏或进一步优化护理信息平台,进而探索其在患者健康教育或临床护理教学中的应用效果;对于护理管理者和护理教育者,未来可关注护理教师的授课安排、实习和规培护士轮转科室顺序等工作,借助Python语言的相关库设计日历和日程安排,进一步优化排班表,探索更加合理的护理人员排班与作息制度[39]。

3.2 医工交叉发展趋势需要“护理+Python”的人才储备

医工交叉是指将工程学或信息学的技术和工具应用在医疗卫生领域中,在此发展趋势下,大数据和人工智能等新技术在一定程度上推动了护理领域的发展进程[40],但同时也对护理人员提出了更高的要求。Python是人工智能技术的主要依托语言,拥有易学、易拓展、免费、开源、功能丰富等特性[11],无疑将成为护理人员迈入工程学或信息学领域的最佳选择,因此建议培养具备一定Python编程能力的护理人才,以医工交叉的跨学科视角加速护理领域的发展。尽管Python语言已在计算机科学等领域得到了广泛应用,但其在护理领域的应用尚处于起步阶段,因此鼓励护理人员通过各种途径学习Python语言,自由、主动地探索和创新Python语言在护理领域中的应用前景,突破现有工具的局限,拓宽护理研究方法的广度和深度,在国家政策的引领下让更多护理人员通过技术赋能提升护理学科的发展实力。

3.3 Python语言在护理研究领域应用的规范性和伦理考量值得关注

护理人员借助Python语言拓宽了研究视野,在大数据时代更加全面地挖掘了互联网和社交媒体平台中与护理领域相关主题的热点和趋势,通过创新的工具和视角一定程度上提升了护理研究的质量,但对于Python语言不同功能的实际应用还需要进一步规范。以Python网络爬虫技术为例,使用者须在不侵害网站利益和不违反用户协议的前提下,合理合规地采集网络数据,避免信息商用、恶意攻击网站等不良行为[41]。此外,数据伦理问题已成为当今数据科学领域的热门话题,因此护理研究者须对患者数据的使用格外敏感[42],如何在Python语言“开源”的使用过程中保护患者隐私,应是任何相关研究的首要考虑因素。鉴于此,管理者未来需要针对不同护理研究场景制定更加全面的服务条款以规范研究者对Python语言的使用,在伦理可行的基础上,借助Python语言推动护理领域发展的同时体现“以患者为中心”的护理理念。

4 小结

Python语言的网络爬虫、数据预处理、机器学习、统计分析和网络编程等功能在护理研究领域得到了初步应用,护理人员可结合实际需求选择Python语言相应的功能展开研究。随着信息化时代的不断发展和大众健康需求的持续增加,Python语言突显其在护理研究领域中应用的巨大潜力之余,也存在一定的挑战,未来研究者可深入挖掘其在护理领域中可能发挥的价值,以创新的视角和工具更好地推动护理领域的发展。

猜你喜欢
研究者领域文本
高等教育中的学生成为研究者及其启示
在808DA上文本显示的改善
领域·对峙
研究者称,经CRISPR技术编辑过的双胞胎已出生。科学将如何回应?
基于doc2vec和TF-IDF的相似文本识别
研究者调查数据统计
文本之中·文本之外·文本之上——童话故事《坐井观天》的教学隐喻
医生注定是研究者
新常态下推动多层次多领域依法治理初探
如何快速走进文本