互联网+智慧医疗:基于Python打造公益智慧医院项目之智能问答系统

2023-09-24 17:18:16 浏览数 (2)

智慧医疗英文简称WIT120,是最近兴起的专有医疗名词,通过打造健康档案区域医疗信息平台,利用最先进的物联网技术,实现患者与医务人员、医疗机构、医疗设备之间的互动,逐步达到信息化。 随着计算机科学技术的飞速发展,现已有非常多的 AI 方法手段应用于医疗服务行业,进而让患者享受安全、便利、优质的诊疗服务! 本文将从大数据 Python爬虫技术出发,运用Python语言打造便捷、高效的智能问诊服务平台;本平台基于日常聊天库、医学知识库等,运用对话交互技术,解决患者医疗、健康类咨询需求。比如医院科室位置、就医流程、健康建议、药物使用、疾病知识等;其咨询效率要比医院的咨询台人工回复更强,即不用耗费医生精力即可为患者提供关于医疗和健康的信息服务。

1 项目简介

1.1 项目概述

本项目是继智慧医院项目之智能分诊系统之后的又一全新打造的系统:智能问答系统。本系统主要是基于Python语言打造的,旨在让患者轻松、便捷地了解其病情、就诊医院等信息,以及减轻人工回复压力,高效地解决了问诊难、问诊贵等问题,打造 一系列公益智慧医院系统是为了实现“人人健康,健康人人”的项目初衷。

具体而言,本项目实现过程主要用到了Python爬虫基础以及天行数据网站提供的问答大数据库,利用网上现成资源最后达到的效果是实现患者与机器人医生之间的咨询问答,减轻了人工问答的人力耗费以及节省了患者咨询医生的费用。

总之,本项目产品是一个比较便捷高效的智能问诊系统;接下来将详细阐述项目产品的创造过程。

1.2 前期准备

因为本项目系统用到了网上的现成资源,所以需要找到目标网址,并运用Python爬虫技术获取目标请求接口等信息。

在这里,我找到的是一个名为天行数据的网站,接下来的操作都是基于它来实现的

其中的应用接口千千万,具体而言,用到了其中的图灵机器人接口

根据网站内接口信息等介绍, 一步一步进而实现我们的问答系统。

智能问答系统的打造用到python语言及部分第三方库

在这里:

Python环境:3.8.2

python编译器:JetBrains PyCharm 2018.1.2 x64

第三方库及模块:requests库

2 项目分析

2.1 代码详解

导入用到的模块及第三方库

代码语言:javascript复制
import requests

接下来要注意网站内接口的用例提示

把核心部分摘抄出来

  • 请求示例:http://api.tianapi.com/txapi/tuling/index?key=APIKEY&question=你好

请求示例已经给出,修改地方仅为 APIKEY 以及后面的“你好”这类的输入信息部分

在代码的具体体现中,“你好”等信息可以通过 input() 由用户输入

APIKEY 对应的是个人账户申请时的控制台中的 APIKEY 值

这一部分清楚之后,就开始撸代码了

代码语言:javascript复制
# 获取接口地址
url = 'http://api.tianapi.com/txapi/tuling/index?key=这里填你账户的APIKET值&question=你好'
# 请求
resp = requests.get(url)

之后因为要通过用户输入值获得类似“你好”等字符值,这里就可以改进一下(在之后的代码中将用户输入值传给了mag)

所以在代码中将“你好”改为mag传入的值

代码语言:javascript复制
url = 'http://api.tianapi.com/txapi/tuling/index?key=这里填你账户的APIKET值&question=你好'

改进为

url = 'http://api.tianapi.com/txapi/tuling/index?key=这里填你账户的APIKET值&question=' mag

加上用户输入,核心代码如下:

代码语言:javascript复制
def send_mag(mag):
    # 获取接口地址
    url = 'http://api.tianapi.com/txapi/tuling/index?key=这里填你账户的APIKET值&question=' mag
    # 请求
    resp = requests.get(url)
    # 返回 json 格式
    return resp

# 实现单次问答
def main():
    mag = input("患者咨询:")
    resp = send_mag(mag)
    print(resp)

main()

根据运行结果我们看出返回值是 <Response 200>,也就是说,我们要改为得到其结果的json()格式

代码语言:javascript复制
修改

return resp

为

return resp.json()

根据运行结果我们发现,得到的数据是键值对形式

也就是说,我们要得到键值对中的关键信息,即{'code': 200, 'msg': 'success', 'newslist': {'reply': '你好,你好。', 'code': 100000}}中的'newslist': {'reply': '你好,你好。', 'code': 100000}中的“你好,你好。”

继续撸代码

代码语言:javascript复制
    if resp['code'] == 200:
        reply = resp['newslist'][0]['reply']
        print("机器人医生:",reply)

这时就达到了我们想要的结果,可以先小庆祝一下

但随即我们发现了一个问题:就是每次对话只能进行一次,如果想让持续对话怎么做呢?

很简单,将上述核心代码放入一个名为 chat() 的函数中,重新修改 main() 函数中内容,仅添加下两句即可实现:

代码语言:javascript复制
    while True:
        chat()

此事一下看看是不是我们预期的效果:

OK!测试成功啦!这也意味着我们打造的第一代公益智慧医院项目之智能问答系统测试成功!

2.2 总观代码

代码语言:javascript复制
import requests

def send_mag(mag):
    # 获取接口地址
    url = 'http://api.tianapi.com/txapi/tuling/index?key=这个位置填你账户控制台中的APIKEY值&question=' mag
    # 请求
    resp = requests.get(url)
    # 返回 json 格式
    return resp.json()

# 实现单次问答
def chat():
    mag = input("患者咨询:")
    resp = send_mag(mag)
    if resp['code'] == 200:
        reply = resp['newslist'][0]['reply']
        print("机器人医生:",reply)

# 实现连续问答(永不停歇)
def main():
    print("机器人医生:您好!请问有什么需要帮您?")
    while True:
        chat()

main()

2.3 项目运行结果

常规医疗问题咨询

心理问题开导咨询

它还可以是你的日常聊天对象喔

3 总结展望

以上是简单实现了第一代公益智慧医院项目之智能问答系统,当然漏洞还是有很多的:比如医疗数据库还不够强大、人机交互语言交流信息也有待改进等等。虽然漏洞很多,但是本文体现了设计这一项目系统的设计过程思路,从这一层面讲,也是项目系统改进的前提条件。不管怎样,总之,在大数据背景下,人类的生活越来越数字化、信息化、现代化。

随着计算机科学技术的发展,在不久的将来医疗行业将融入更多人工智慧、传感技术等高科技,使医疗服务走向真正意义的智能化,推动医疗事业的繁荣发展。在中国新医改的大背景下,智慧医疗正在走进寻常百姓的生活。

以上就是“互联网 智慧医疗”在医疗服务值智能问答方面的项目系统实现的全部内容。

版权声明:本专栏全部为CSDN博主「IT_change」的原创文章,遵循 CC 4.0 BY-SA 版权协议。

代码语言:txt复制
               **转载请附上原文出处链接及本声明。**

感谢阅读 ! 感谢支持 ! 感谢关注 !

希望本文能对读者学习和理解“互联网 ”技术有所帮助,并请读者批评指正!

2020年5月底于山西大同

END

0 人点赞