2025上半年,最新 AI实践都在这!20+ 应用案例,任听一场议题就值回票价 了解详情
写点什么

Amazon Comprehend Medical ,针对医疗保健客户的自然语言处理

  • 2019-10-18
  • 本文字数:2706 字

    阅读完需:约 9 分钟

Amazon Comprehend Medical ,针对医疗保健客户的自然语言处理

作为肠胃科医生和皮肤科医生的后代,在我的成长过程中一直充满了各种晦涩难懂的对话,包含无穷无尽的复杂医学术语:人类解剖学、外科手术、药物名称……以及它们的缩略词。充满求知欲的小孩想知道他的父母是否对这些奇怪的话语感到难以理解,这真的是一段有趣的经历。


因此,非常高兴能发布 Amazon Comprehend Medical,这是 Amazon Comprehend 针对医疗保健客户的延伸。


关于 Amazon Comprehend 的简介


Amazon Comprehend 于去年在 AWS re:Invent 启用。简单来说,该自然语言处理服务针对语言检测、个体分类、情感分析和关键词提取提供了简洁实时 的 API。此外,它还允许您采用名为“主题建模”的无导师学习技术自动编组文本档案。


使用 FINRA、LexisNexis 或 Isentia、Amazon Comprehend 可以理解一般用途的文本。然而,鉴于临床资料非常特殊的属性,医疗保健客户已经要求我们设立专为其特殊需求而定制的 Amazon Comprehend 版本。


隆重推出 Amazon Comprehend Medical


Amazon Comprehend Medical 设于 Amazon Comprehend 顶部,并增加了以下功能:


  • 支持在大量医疗术语词汇中进行个体提取和个体识别:解剖、病情、手术、药物、缩略词等。

  • 在这些类目和子类中精确查找个体提取 API (detect_entities) 。

  • 受保护健康信息提取 API (detect_phi) 可以查找详细联系信息、医疗记录号等。

  • 提醒:Amazon Comprehend Medical 可能无法准确识别所有情况下的受保护健康信息,无法满足 HIPAA 的受保护健康信息去识别化要求。您有责任审阅 Amazon Comprehend Medical 提供的任何输出信息,以确保其满足您的需求。


现在,让我向您展示如何使用这一新服务。首先,我将使用 AWS 控制台,然后会运行一个简单的 Python 示例。


在 AWS 控制台上使用 Amazon Comprehend Medical


打开 AWS 控制台,所有需要做的是粘贴部分文本并点击“分析”按钮。



正在分析文本立即处理文档。个体被提取出来并突出显示:我们看到个人信息为橙色,药物为红色,解剖学信息为紫色,病情为绿色。



准确获得个人识别信息。对于在交流或出版前需要对文档隐去姓名资料的研究者而言,这是非常重要的。而且,“皮疹”和“睡眠障碍”被准确检测为由医生诊断出的病情(‘Dx’ 是“诊断”的速记写法)。也会检测到药物。


然而,Amazon Comprehend Medical 不仅限于简单的医疗术语提取。它还可以理解复杂的关系,如药物剂量或详细的诊断信息。这有一个很好的例子。



如您所见,Amazon Comprehend Medical 可以找出 ‘po‘ 和 ‘qhs‘ 等缩略词:第一个表示药物为口服,第二个则为 ‘quaque hora somni‘(是的,拉丁语)的缩略词,即为睡前。


现在,让我们稍微深入一点,运行一个 Python 示例。


用 AWS SDK 针对 Python 使用 Amazon Comprehend Medical


首先,我们输入 boto3 SDK,创建一个服务客户端。


import boto3comprehend = boto3.client(service_name='comprehendmedical')
复制代码


现在,我们在文本样本中调用 detect_entity API,并打印检测到的个体。


text = "Pt is 40yo mother, software engineer HPI : Sleeping trouble on present dosage of Clonidine.Severe Rash  on face and leg, slightly itchy  Meds : Vyvanse 50 mgs po at breakfast daily, Clonidine 0.2 mgs -- 1 and 1 / 2 tabs po qhs HEENT : Boggy inferior turbinates, No oropharyngeal lesion Lungs : clear Heart : Regular rhythm Skin :  Papular mild erythematous eruption to hairline Follow-up as scheduled"
result = comprehend.detect_entities(Text=text)entities = result['Entities']for entity in entities: print(entity)
复制代码


看一下该药物个体:它有三个嵌套属性(剂量、路径和频率),三个属性增加了至关重要的上下文。


{u'Id': 3,u'Score': 0.9976208806037903,u'BeginOffset': 145, u'EndOffset': 152,u'Category': u'MEDICATION',u'Type': u'BRAND_NAME',u'Text': u'Vyvanse',u'Traits': [],u'Attributes': [  {u'Id': 4,     u'Score': 0.9681360125541687,     u'BeginOffset': 153, u'EndOffset': 159,     u'Type': u'DOSAGE',     u'Text': u'50 mgs',     u'Traits': []     },  {u'Id': 5,     u'Score': 0.99924635887146,     u'BeginOffset': 160, u'EndOffset': 162,     u'Type': u'ROUTE_OR_MODE',     u'Text': u'po',     u'Traits': []     },  {u'Id': 6,     u'Score': 0.9738683700561523,     u'BeginOffset': 163, u'EndOffset': 181,     u'Type': u'FREQUENCY',     u'Text': u'at breakfast daily',     u'Traits': []     }]}
复制代码


还有另一个例子。该病情个体由“否定”识别完成,意味着未检测到病情,即为该患者没有任何口咽病变。


{u'Category': u'MEDICAL_CONDITION',u'Id': 16,u'Score': 0.9825472235679626,u'BeginOffset': 266, u'EndOffset': 286,u'Type': u'DX_NAME',u'Text': u'oropharyngeal lesion',u'Traits': [    {u'Score': 0.9701067209243774, u'Name': u'NEGATION'},    {u'Score': 0.9053299427032471, u'Name': u'SIGN'}]}
复制代码


我向为您展示的最后一个功能是用 detect_phi API 提取个人信息。


result = comprehend.detect_phi(Text=text) entities = result['Entities'] for entity in entities: print(entity)
复制代码


在该文本中出现了几条个人信息,我们精确提取出了这几条个人信息。


{u'Category': u'PERSONAL_IDENTIFIABLE_INFORMATION',u'BeginOffset': 6, u'EndOffset': 10, u'Text': u'40yo',u'Traits': [],u'Score': 0.997914731502533,u'Type': u'AGE', u'Id': 0}
{u'Category': u'PERSONAL_IDENTIFIABLE_INFORMATION',u'BeginOffset': 19, u'EndOffset': 36, u'Text': u'software engineer',u'Traits': [],u'Score': 0.8865673542022705,u'Type': u'PROFESSION', u'Id': 1}
复制代码


如您所见,Amazon Comprehend 可帮助您提取复杂的信息和关系,同时操作起来特别简单。


再次提醒,请记得 Amazon Comprehend Medical 并非专业医疗设备、诊断或治疗的替代品。您肯定要仔细审阅它提供的任何信息,并在作出决定前根据经验进行判断。


现已推出


我希望这篇博文提供了丰富的有用信息。您现在就可以开始用 Amazon Comprehend Medical 在以下地区开发应用程序:美国东部(弗吉尼亚北部)、美国中部(俄亥俄)、美国西部(俄勒冈)和欧洲(爱尔兰)。


此外,该服务属于 AWS 免费套餐范畴:注册后三个月,前 25000 份(或 250 万字)文本免费。


为什么不在最近的处方或医学考试中试一试,并让我们了解您的想法呢?


— Julien;


本文转载自 AWS 技术博客。


原文链接:


https://amazonaws-china.com/cn/blogs/china/amazon-comprehend-medical-natural-language-processing-for-healthcare-customers/


2019-10-18 12:31851
用户头像

发布了 1901 篇内容, 共 144.4 次阅读, 收获喜欢 81 次。

关注

评论

发布
暂无评论
发现更多内容

万恶的NPE如何避免,几种你必须知道的方案!!!

不才陈某

后端

Java是不是慢半拍?

X.F

Java 架构 编程语言

GcExcel:比 Apache POI 速度更快、性能更高

葡萄城技术团队

Apache POI GCExcel

『PyTorch』使用指定GPU的方法

kraken0

人工智能 学习 图像识别

Docker 搭建 Postgres + pgAdmin 环境

姜雨生

Docker DevOps postgres

深入理解ContextClassLoader

Skye

深入理解JVM ContextClassLoader

Hive底层执行引擎的深度剖析(免费)

奈学教育

大数据 hive

撸一串趣图,给晚上加班打个鸡血

码农神说

程序员 加班 段子

原创 | 使用JUnit、AssertJ和Mockito编写单元测试和实践TDD (十五)编写测试-断言\假设\使测试失效

编程道与术

Java 编程 TDD 单元测试 JUnit

奈学大数据开发工程师分享787个技术,快来收割

奈学教育

大数据

游戏夜读 | 什么是黑色一分钟?

game1night

收藏!如何有效实施devops?

禅道项目管理

DevOps 运维 持续集成 开发 自动化测试

redis持久化RDB与AOF

wjchenge

redis

SpringBatch系列入门之Tasklet

稻草鸟人

spring SpringBatch 批处理

学习没进步?也许反馈有问题

KAMI

学习 认知提升

霸榜18年,作者连续20年获得微软MVP,这本SQL书凭什么成为畅销经典

图灵社区

数据库 SQL语法 sql查询

CEO或业务负责人应该具备的数据分析能力

花生

工具 数据 CEO

CI/CD - Python Django 项目在 Jenkins 上的实践

meta-algorithmX

Python django TDD CI/CD

面试题:教你如何吃透RocketMQ

奈学教育

架构 RocketMQ 架构设计

运维日志里隐藏的安全危机,你知道怎么挖吗?听听专家怎么说

secisland

态势感知 关联分析 SOC

手机是21世纪最成功的毒品

Neco.W

学习 提升效率 工作

安全做到首位 统信UOS后激勃发

统小信uos

网络安全 操作系统

【译】业务转型是什么?

涛哥 数字产品和业务架构

业务中台 数字化转型

我们是活着,而不是活过

小天同学

个人感想 生活,随想 随笔杂谈 日常思考

深入理解JVM内存管理 - 方法区

Skye

深入理解JVM 方法区 老年代

美国黑客曝出政府惊天内幕,看区块链如何解决!

CECBC

CECBC 区块链技术 民生 不可篡改 信息公开

ARTS-week one

Jokky💫

ARTS 打卡计划

Vue生成AST算法的解析

djknight

Java Vue AST

原创 | 使用JUnit、AssertJ和Mockito编写单元测试和实践TDD (十四)编写测试-显示名

编程道与术

Java 编程 TDD 单元测试 JUnit

Vim使用总结

JDoe

vim

产品周刊 | 第 17 期(20200531)

八味阁

产品 设计 产品经理 产品设计 产品推荐

Amazon Comprehend Medical ,针对医疗保健客户的自然语言处理_语言 & 开发_亚马逊云科技 (Amazon Web Services)_InfoQ精选文章