医疗保健中的 NLP:实体链接
一、说明
HEalthcare和生命科学行业产生大量数据,这些数据是由合规性和监管要求,记录保存,研究论文等驱动的。但随着数据量的增加,搜索用于研究目的的必要文件和文章以及数据结构成为一个更加复杂和耗时的过程。例如,如今,生物医学搜索引擎包含超过40万篇文章,这些文章代表了大量有用的医疗保健信息。但是手动处理如此大量的数据是一条无法通行的路径,而自然语言处理(NLP)等工具有助于从文本数据中提取信息。
NLP 工具是 AI 的一个分支,包括语音识别、文本分析、翻译和其他与语言相关的目标等应用程序。NLP 提供了通过阅读和理解数据,然后将其转换为可理解的结构化数据,从半结构化/非结构化临床和新兴数据中提取有价值的见解的能力。NLP背后的想法是更好地将人类与计算机的处理能力联系起来,以增强护理并加快治疗的交付并加速研究。
在自由文本中识别医学术语是NLP任务的第一步,因为自动索引生物医学文献并从临床笔记文本中提取患者的问题列表。在生物医学文献中可以找到许多医学术语:疾病名称(结核病,神经胶质瘤,糖尿病),症状(急性头痛,发烧,腹痛),治疗(化疗,药物治疗),诊断测试(活检,光学相干断层扫描,心电图),化学物质,解剖结构等。除了检测文本中的医学术语外,每个术语都应与医学编码标准相关联:疾病和相关健康问题的国际统计分类(ICD-11),统一医学语言系统(UMLS),当前程序术语(CPT)和许多其他术语。特别是,要成功利用生物医学记录中包含的大量知识,拥有自动索引技术至关重要。NLP 领域的一个概念称为实体链接,它有助于解决此任务。
二、用于概念检测的实体链接
在医疗保健领域,准确的实体链接对于正确理解生物医学背景至关重要。在处理生物医学概念时,人们可能会偶然发现许多问题:许多不同的实体可以有非常相似的提及,实体可以通过各种拼写形式在文本中提及,缩写形式的实体可能不会以独特的方式扩展。面对这些挑战,实体链接 (EL) 中的故障将导致对上下文信息的错误解释。在医疗保健领域,此类错误可能会导致医疗相关决策的风险。
EL在医疗保健领域的另一个特点是公开可用的生物医学EL数据集的可用性非常有限。至少,它使构建和训练 EL 模型的过程复杂化;假设推理数据量很大,这样的EL模型可能不够普遍。但是,在最坏的情况下,某些类别的生物医学实体可能没有在公开可用的数据集中注册,这导致为给定类别的实体手动构建此类训练集。
这就是为什么生物医学文本上的EL在许多方面与其他领域的文本不同。因此,解决这些具有挑战性的任务需要复杂的方法。
三、数据和方法
3.1 词汇表和符号
实体 — 命名的单词或短语(疾病、基因、药物等的名称)。通常,实体是从知识库中提取的。
知识库——实体字典;通常包括规范名称、定义、同义词等。
提及(实体) — 文本中实体的名称。此外,上下文(周围)信息可以被视为提及。
实体链接 — 将文本中对实体的提及映射到其在知识库中的标识。
3.2 模型概述
作为EL模型,我们考虑Siamese神经网络,它旨在学习实体提及和相应概念之间的相似性。
我们构建以下模型(参见图 1)。神经网络的两个分支相应地对应于提及输入和实体输入。每个分支将整个文本映射到密集的向量(从一侧提及上述实体和句子的文本,从另一侧引用知识库的实体级信息)。在训练过程中,模型学习增加从正确链接的对提及+实体中提取的向量之间的余弦相似性,并降低错误配对向量之间的余弦相似性。在推理阶段,每个输入提及都映射到向量空间中,并假定最近的实体向量是相应实体的向量。

图1.暹罗神经网络
然而,这种方法有几个缺点,特别是对于生物医学数据。
3.3 生物医学EL中的问题
在仅存在少数生物医学EL数据集的情况下,准备准确的训练数据集是一项重要任务。例如,考虑疾病概念链接任务,可以从以下数据集收集训练信息:
–NCBI疾病数据集。NCBI疾病语料库的公开发布包含6.9k种疾病提及,这些疾病被映射到0.8k独特的疾病概念(来自MeSH和OMIM本体)。NCBI疾病数据集的内部精度:<90%。
–MedMentions是生物医学论文的语料库,并提及UMLS实体。它包含 4392 个摘要和 34k 个唯一的 UMLS ID。该数据集不仅仅是一组疾病。MedMentions的内部精度为97.3%。通过保留22种UMLS类型,涵盖疾病和生物过程以及具有定义的实体,可以获得一组4805种UMLS类疾病实体。这些疾病几乎在所有摘要中都有标记,涵盖了15.4k独特疾病的8k提及。
–BC5CDR 语料库由 1.5k 篇 PubMed 文章组成,带有注释的化学物质、疾病和化学-疾病相互作用。通过去除化学物质并仅保留疾病,人们可以获得一组1.5k摘要,其中涵盖了3.1k次提及的疾病。这些提及可以映射到1k个独特的MeSH实体中。
正如人们所看到的,收集的摘要总数可以达到7k,而其中的提及/实体数量分别约为30k/5k。这表明我们的训练数据因提及实体而高度多样化。此外,绝大多数训练样本包含冗余信息(摘要中的单词,与疾病没有任何共同之处)。
但是所考虑的模型将单词的索引映射到嵌入中,并且使用具有一些有用信息的非常大的字典来学习这种映射可能不够充分和有效。可以通过以下方式解决此问题:
-使用预先训练的嵌入(生物医学单词的训练嵌入,例如BioWordVec)-过滤字典并仅保留有用的信息(例如单词,这是提及短语的粒子,知识库中的单词)
使用第二种方法,可以将字典的大小压缩 10-100 倍,这将有利于训练和推理加速。
四、质量增强
将带有提及的上下文信息放入模型的提及分支中可能会提高 EL 的质量。某些提及可能仅与提及短语正确链接,上下文可能在链接过程中发挥关键作用。有了这个,模型可以接受,期待提及,引用提及的句子。
由于可以增加提及和相应上下文的开放可能性,因此可以开发这种方法以提高模型的泛化能力。例如,有一对“提及+摘要中的提及句子”和“来自知识库的实体”,可以:
-创建负(非链接)对,使用句子中的随机单词而不是提及;
-通过句子中的向前和/或向后单词扩展提及;
-删除句子的随机部分而不提及部分。
4.1 培训程序
由于任务是度量学习,因此必须训练模型以找到正确的“提及”-“实体”对之间的相似之处和不正确的对之间的相似之处。这样的模型不能只在正对上训练,因为它不会被训练来区分正确和不正确的链接。另一方面,我们不能为每次提及分配所有负实体,因为我们的数据集将通过幂律扩展提及次数,这对于相对较大的训练 EL 数据集来说可能具有挑战性。
因此,要训练EL模型,必须考虑一些采样过程,例如,三重损失,它适用于三重“提及”-“正确的实体”-“不正确的实体”。此外,可以使用特殊的批次内抽样:通过分配给定批次中批次随机实体中的每个提及,链接到其他提及,可以通过负样本扩展一批正对。
一些提升可以通过处理硬性负样本获得,即错误链接的实体,对于给定的提及,它们比相应的实体更相似。
4.2 质量指标
通过将概念名称的真实和预测ID与指定的余弦相似性截止值进行比较,测量每个句子的EL质量。评估概念名称实体链接质量的方法是真阳性(TP),真阴性(TN),假阴性(FN)。例:
-真正的疾病标签(上ID是真的):广泛的认知障碍D003072,如谵妄D003693或ADD010302,以前与高血药水平的SSRIs无关。
-预测疾病(上 ID 为真,下 ID 为预测):广泛的认知障碍D003072D003072,如谵妄 D003693 或 ADD010302D0220454,以前与 SSRIsD001658 的高血水平无关。
-TP:认知障碍D003072D003072 — 当ID_true等于ID_pred时.
-FP:SSRIsD001658 , ADD010302D0220454 — 当ID_pred不等于ID_true时。
–FN:deliriumD003693 — 当ID_true不等于ID_pred时。
作为准确性指标,我们使用了几个指标来更好地衡量模型准确性:
–精度

–召回

–F1 分数

–马修斯相关系数

–ROC-AUC
–K 精度
五、结果和结论
在生成的模型中,我们获得了验证数据集的下一个分数(见图 2)。

图2.不同相似性阈值的不同质量指标图表
我们发现,对一个概念的正确和不正确描述的分离质量最好,相似度约为0.8。也就是说,如果描述和概念向量之间的余弦相似性大于 0.8,那么这个对很可能是正确的。
对于 K 处的精度计算,验证样本中的每个概念都必须选择 K 最接近的描述,并记住正确描述的数量。如果模型是完美的,那么对于每个概念,最接近的(K = 1)描述都是正确的。我们在原始(非乘法)验证样本上进行了此实验。结果,我们得到了以下 K = 5 时的精度值(见表 1)。

表 1.前 5 个描述的精度为 K
K 的精度表明,对于验证样本中的概念,最接近的描述是正确的,准确率为 85%,正确的描述位于前 5 个最接近的概率为 97%。
相关文章:
医疗保健中的 NLP:实体链接
一、说明 HEalthcare和生命科学行业产生大量数据,这些数据是由合规性和监管要求,记录保存,研究论文等驱动的。但随着数据量的增加,搜索用于研究目的的必要文件和文章以及数据结构成为一个更加复杂和耗时的过程。例如,如…...
java编程规范
一、时间格式为什么有大写有小写呢? new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");为了区分月份和分钟,用大写M代表月份,小写m代表分钟 而大写的H代表24小时制,小写h代表12小时制 二、下面的程序判断等值的方式&…...
合宙Air724UG LuatOS-Air script lib API--sim
sim Table of Contents sim sim.getIccid() sim.getImsi() sim.getMcc() sim.getMnc() sim.getStatus() sim.setQueryNumber(flag) sim.getNumber() sim.setId(id, cbFnc) sim.getId() sim 模块功能:查询sim卡状态、iccid、imsi、mcc、mnc sim.getIccid() 获取sim卡…...
【网络基础实战之路】基于三个分公司的内网搭建并连接运营商的实战详解
系列文章传送门: 【网络基础实战之路】设计网络划分的实战详解 【网络基础实战之路】一文弄懂TCP的三次握手与四次断开 【网络基础实战之路】基于MGRE多点协议的实战详解 【网络基础实战之路】基于OSPF协议建立两个MGRE网络的实验详解 PS:本要求基于…...
(Python)Requests+Pytest+Allure接口自动化测试框架从0到1搭建
前言:本文主要介绍在企业使用Python搭建接口自动化测试框架,数据驱动读取excel表里的数据,和数据库方面的交互,包括关系型数据库Mysql和非关系型数据库MongDB,连接数据库,读取数据库中数据,最后…...
实现vuex数据持久化处理
(创作不易,感谢有你,你的支持,就是我前行的最大动力,如果看完对你有帮助,请留下您的足迹) 目录 前言: 方案一 localStorage 介绍 值 示例 JSON.stringify() 介绍 语法 参数 返…...
Vue-系统登录进入首页后禁用浏览器返回键
解决方法 mounted() {history.pushState(null, null, document.URL)window.addEventListener(popstate, this.goBack, false) }, destroyed() {// 清除popstate事件 否则会影响到其他页面window.removeEventListener(popstate, this.goBack, false) }, methods: {goBack() {hi…...
Hadoop理论及实践-HDFS的Namenode及Datanode(参考Hadoop官网)
HDFS有什么特点,被设计做什么 Hadoop分布式文件系统(HDFS)被设计成适合运行在通用硬件(commodity hardware)上的分布式文件系统。有一下几个特点: HDFS是一个高度容错性的系统,具有高容错、高可靠性、高扩展性的特点,适合部…...
第四十九天
●兼容性测试:主要是检查软件在不同的硬件平台、软件平台上是否可以正常的运行。 •兼容测试测什么? Android碎片化严重,每一款游戏/应用在上线之前,都会做一轮覆盖一定机型量的兼容性测试。 在产品面对海量用户之前࿰…...
ArcGIS Pro简介下载安装地址
ArcGIS Pro简介 ArcGIS Pro是一款功能强大的地理信息系统(GIS)软件,由Esri开发。它为用户提供了一种直观、灵活且高效的方式来处理、分析和可视化地理数据。ArcGIS Pro具有现代化的用户界面和工作流程,使用户能够更好地利用地理信…...
MySQL 存储过程、函数、触发器、事件
目录 存储过程 创建存储过程 调用存储过程 查看存储过程 删除存储过程 进阶 变量 if条件判断 传递参数 case结构 while循环 repeat结构 loop语句 leave语句 游标/光标 存储函数 触发器 创建触发器 删除触发器 查看触发器 事件 查看事件调度器是否开启…...
【LeetCode】121. 买卖股票的最佳时机 -
这里写自定义目录标题 2023-8-9 19:25:01 121. 买卖股票的最佳时机 2023-8-9 19:25:01 我也是一次性遍历。 自己感觉是用两个指针来做的。 第一天(x 1) 的时候就已经买入了,假定某y天 比第x天 便宜 或 相等,那么我就应当是第…...
解决Vue+Element-UI 进行From表单校验时出现了英文提示问题
说明:该篇博客是博主一字一码编写的,实属不易,请尊重原创,谢谢大家! 问题描述 在使用form表单时,往往会对表单字段进行校验,字段为必填项时会添加required属性,此时自定义rules规则…...
cpolar内网穿透的安装
群晖6.X安装cpolar内网穿透 文章目录 群晖6.X安装cpolar内网穿透前言1. 下载cpolar的群晖套件1.1 打开群晖套件中心1.2 选择“手动安装”1.3 选择下载cpolar套件位置 2. 打开cpolar的Web-UI界面3. 注册会员 前言 随着硬件设备和软件技术的发展,以及数据量的发福暴涨…...
OPENCV C++(十)gramm矫正+直方图均衡化
两者都是只对单通道使用,对多通道的话 就需要分离通道处理再合并通道 两种方法,第一个要运算次数太多了,第二个只需要查表 伽马矫正函数,这里用第二种方法,且写法有点高级 int gammaCorrection(cv::Mat srcMat, cv::…...
并发——ThreadPoolExecutor 类简单介绍
文章目录 1 ThreadPoolExecutor 类分析2 推荐使用 ThreadPoolExecutor 构造函数创建线程池 线程池实现类 ThreadPoolExecutor 是 Executor 框架最核心的类。 1 ThreadPoolExecutor 类分析 ThreadPoolExecutor 类中提供的四个构造方法。我们来看最长的那个,其余三个…...
SharePoint 审核和监控工具
审核在顺利的 SharePoint 管理中起着重要作用,尤其是在满足法规遵从性和取证要求方面。为避免数据泄露,必须了解谁来自哪个组访问了哪个文档,以及谁创建或删除了网站或网站集。 审核 SharePoint 服务器 SharePoint采用率的提高导致企业在其…...
java+springboot+mysql法律咨询网
项目介绍: 使用javassmmysql开发的法律咨询网,系统包含超级管理员,系统管理员、用户角色,功能如下: 用户:主要是前台功能使用,包括注册、登录;查看法律领域;法律法规&a…...
无涯教程-Perl - getservbyport函数
描述 此功能转换协议PROTO的服务编号PORT,在标量context中返回服务名称,并在列表context中返回名称和相关信息- ($name,$aliases,$port_number,$protocol_name) 该调用基于/etc/services文件返回这些值。 语法 以下是此函数的简单语法- getservbyport PORT, PROTO返回值 …...
iOS开发-JsonModel的学习及使用
IOS JsonModel的学习及使用 当我们从服务端获取到json数据后的时候,我们需要在界面上展示或者保存起来,下面来看下直接通过NSDictionary取出数据的情况。 NSDictionary直接取出数据的诟病。 NSString *name [self.responseObj objectForKey:"nam…...
SpringBoot-17-MyBatis动态SQL标签之常用标签
文章目录 1 代码1.1 实体User.java1.2 接口UserMapper.java1.3 映射UserMapper.xml1.3.1 标签if1.3.2 标签if和where1.3.3 标签choose和when和otherwise1.4 UserController.java2 常用动态SQL标签2.1 标签set2.1.1 UserMapper.java2.1.2 UserMapper.xml2.1.3 UserController.ja…...
(LeetCode 每日一题) 3442. 奇偶频次间的最大差值 I (哈希、字符串)
题目:3442. 奇偶频次间的最大差值 I 思路 :哈希,时间复杂度0(n)。 用哈希表来记录每个字符串中字符的分布情况,哈希表这里用数组即可实现。 C版本: class Solution { public:int maxDifference(string s) {int a[26]…...
论文解读:交大港大上海AI Lab开源论文 | 宇树机器人多姿态起立控制强化学习框架(二)
HoST框架核心实现方法详解 - 论文深度解读(第二部分) 《Learning Humanoid Standing-up Control across Diverse Postures》 系列文章: 论文深度解读 + 算法与代码分析(二) 作者机构: 上海AI Lab, 上海交通大学, 香港大学, 浙江大学, 香港中文大学 论文主题: 人形机器人…...
<6>-MySQL表的增删查改
目录 一,create(创建表) 二,retrieve(查询表) 1,select列 2,where条件 三,update(更新表) 四,delete(删除表…...
日语学习-日语知识点小记-构建基础-JLPT-N4阶段(33):にする
日语学习-日语知识点小记-构建基础-JLPT-N4阶段(33):にする 1、前言(1)情况说明(2)工程师的信仰2、知识点(1) にする1,接续:名词+にする2,接续:疑问词+にする3,(A)は(B)にする。(2)復習:(1)复习句子(2)ために & ように(3)そう(4)にする3、…...
SciencePlots——绘制论文中的图片
文章目录 安装一、风格二、1 资源 安装 # 安装最新版 pip install githttps://github.com/garrettj403/SciencePlots.git# 安装稳定版 pip install SciencePlots一、风格 简单好用的深度学习论文绘图专用工具包–Science Plot 二、 1 资源 论文绘图神器来了:一行…...
《Qt C++ 与 OpenCV:解锁视频播放程序设计的奥秘》
引言:探索视频播放程序设计之旅 在当今数字化时代,多媒体应用已渗透到我们生活的方方面面,从日常的视频娱乐到专业的视频监控、视频会议系统,视频播放程序作为多媒体应用的核心组成部分,扮演着至关重要的角色。无论是在个人电脑、移动设备还是智能电视等平台上,用户都期望…...
【ROS】Nav2源码之nav2_behavior_tree-行为树节点列表
1、行为树节点分类 在 Nav2(Navigation2)的行为树框架中,行为树节点插件按照功能分为 Action(动作节点)、Condition(条件节点)、Control(控制节点) 和 Decorator(装饰节点) 四类。 1.1 动作节点 Action 执行具体的机器人操作或任务,直接与硬件、传感器或外部系统…...
《通信之道——从微积分到 5G》读书总结
第1章 绪 论 1.1 这是一本什么样的书 通信技术,说到底就是数学。 那些最基础、最本质的部分。 1.2 什么是通信 通信 发送方 接收方 承载信息的信号 解调出其中承载的信息 信息在发送方那里被加工成信号(调制) 把信息从信号中抽取出来&am…...
【学习笔记】深入理解Java虚拟机学习笔记——第4章 虚拟机性能监控,故障处理工具
第2章 虚拟机性能监控,故障处理工具 4.1 概述 略 4.2 基础故障处理工具 4.2.1 jps:虚拟机进程状况工具 命令:jps [options] [hostid] 功能:本地虚拟机进程显示进程ID(与ps相同),可同时显示主类&#x…...
