首页 > 其他分享 >【医学实体识别】从糖尿病论文和临床指南中,做关键信息分类

【医学实体识别】从糖尿病论文和临床指南中,做关键信息分类

时间:2024-03-25 16:31:25浏览次数:27  
标签:指南 治疗 BiLSTM 模型 实体 糖尿病 CRF 识别

从糖尿病论文和临床指南中,做关键信息分类

 


实体识别

比赛:https://tianchi.aliyun.com/competition/entrance/231687/information

如果你有一本关于糖尿病治疗的厚重书籍,而你只想快速找到有关“胰岛素治疗”的部分。

没有目录或索引,这将是一项耗时且乏味的工作。

这就是命名实体识别技术的用武之地,它可以帮助你快速定位到书中提及“胰岛素治疗”的所有部分,就像是自动生成了一个非常详细的目录。

在糖尿病论文和临床指南的实际应用中,这项技术可以帮助识别并标注出各种重要信息,比如:

  • 疾病名称(如2型糖尿病)
  • 症状(如血糖波动)
  • 治疗方法(如口服药物、胰岛素注射)
  • 药物名称(如二甲双胍)
  • 研究结果(如药物有效性数据)

通过这种方式,医生和研究人员可以更有效地获取信息,不仅节省时间,还可以帮助他们更好地理解疾病和治疗方法,从而提高病人的治疗效果。

举个例子,假设我们有一篇关于2型糖尿病治疗的学术论文,论文中包含了以下句子:

“在一项关于2型糖尿病的随机对照试验中,研究人员发现,与安慰剂相比,服用二甲双胍的患者在血糖控制方面表现得更好。”

在这句话中,命名实体识别(NER)的任务是识别并分类句子中的关键信息。具体来说:

  1. 疾病实体:“2型糖尿病”被识别为一个疾病名称。
  2. 药物实体:“二甲双胍”被识别为药物名称。
  3. 处理或干预措施:“服用二甲双胍”和“安慰剂”作为两种不同的治疗方法。
  4. 研究方法实体:“随机对照试验”是一种研究设计类型,也是一个重要的实体。

进行命名实体识别后,系统可以自动提取这些信息,将它们标注为以下实体类型:

  • 疾病和症状:2型糖尿病
  • 药物名称:二甲双胍
  • 治疗方法:服用二甲双胍、安慰剂
  • 研究方法:随机对照试验

 


输入输出

输入:一段糖尿病相关的文本

输出:每个实体和对应的类别

在这里插入图片描述
 


疾病实体
  1. 疾病名称 (Disease): 如I型糖尿病
  2. 病因 (Reason): 疾病的成因,例如胰岛素抵抗
  3. 临床表现 (Symptom): 症状和体征,如头晕、便血
  4. 检查方法 (Test): 用于诊断的实验室或影像学检查,如血脂检测
  5. 检查指标值 (Test_Value): 具体数值,如甘油三酯>11.3 mmol/L

 


治疗实体
  1. 药品名称 (Drug): 如胰岛素
  2. 用药频率 (Frequency): 用药次数,如一天两次
  3. 用药剂量 (Amount): 例如500mg/天
  4. 用药方法 (Method): 如口服,静脉注射
  5. 非药治疗 (Treatment): 非药物性治疗,如按摩、针灸
  6. 手术 (Operation): 如代谢手术
  7. 不良反应 (SideEff): 用药后的不良反应

 


常规实体
  1. 部位 (Anatomy): 解剖部位和生物组织,如胰岛细胞
  2. 程度 (Level): 病情严重程度或治疗效果,如病情轻微
  3. 持续时间 (Duration): 症状或用药的持续时间,如头晕持续了一周

 


算法设计

NER是自然语言处理领域的一个核心任务,目标是识别文本中的实体,如人名、地名、组织名等,并将其归类为预定的类别(上述的疾病实体、治疗实体、常规实体)。
 


BiLSTM-CRF 论文

论文:https://arxiv.org/pdf/1508.01991.pdf

解读:Bi-LSTM-CRF:其结合了 BI-LSTM 的上下文捕获能力和 CRF 的标签关系建模

BI-LSTM-CRF模型的独特优势在于它结合了双向LSTM的能力来捕获长距离的双向上下文依赖性,并通过CRF层来精确地建模标签之间的约束关系,从而在复杂的序列标注任务中提供了显著的性能提升。

例如,在一个医疗健康记录的命名实体识别任务中,BI-LSTM-CRF模型能够利用前文提到的症状信息和后文提到的治疗措施来确定某个术语是特定疾病的名称。

同时,CRF层能够确保识别出的实体标签在整个序列中保持一致性,例如不会将疾病的部分名称错误地标记为药物。

这种双向上下文理解与强大的标签序列建模,使得BI-LSTM-CRF在提取和分类文本中的专业术语方面比单纯的LSTM或CRF模型表现更加出色。
 


BiLSTM-CRF 应用

使用BiLSTM联合CRF模型,对单词序列进行实体识别:

这张图展示的是一个用于命名实体识别(Named Entity Recognition, NER)的双向长短时记忆网络(BiLSTM)与条件随机场(CRF)的结合模型。

在自然语言处理中,命名实体识别是识别文本中特定类型(如人名、组织名)的任务。

图的底部是输入层,有一个单词序列(( w_0, w_1, …, w_4 ))。这些单词通过嵌入层转换为向量表示,然后输入到BiLSTM层,BiLSTM可以捕获序列的前向和后向依赖性。

BiLSTM层的输出是每个单词对于不同实体类别的分数(例如B-Person表示一个人名的开始,I-Person表示人名的内部,B-Organization表示组织名的开始,I-Organization表示组织名的内部,O表示不属于任何实体类别)。

这些分数在图中用黄色方框表示。

BiLSTM层之上是CRF层,CRF层能够利用上下文信息来提高预测的准确性。

在图中,每个单词的实体类别被CRF层评估,以得出最终的实体识别结果。

最顶层的红框内,展示了每个单词最可能的实体类别及其置信度分数,例如,0.9表示很高的置信度,该词是一个人名的开始(B-Person)。

 


BiLSTM-CRF VS 大模型

BiLSTM-CRF模型相对于传统的方法有如下优点:

  1. 双向上下文理解:BiLSTM通过考虑前向和后向上下文信息,能更好地理解语言中词汇的双向依赖性,从而提高实体的识别准确性。
  2. 序列标注能力:CRF在BiLSTM的基础上进一步提升了模型的序列标注能力。它不仅考虑了单个标签的分数,还考虑了标签之间的转换概率,这有助于模型学习到更复杂的依赖关系,例如B-标签后通常跟随I-标签。

相比之下,大模型如BERT、GPT-4、RoBERTa等,是基于Transformer架构的预训练语言模型(PLMs)。

这些大模型在处理NER任务时的不同点包括:

  1. 上下文感知:这些大模型经过大规模数据集预训练,对语境有更深的理解,因此在理解复杂的语言结构和隐含意义方面更加出色。
  2. 无需特征工程:传统的模型,如BiLSTM-CRF,可能需要精心设计的特征来识别实体,而PLMs可以直接从原始文本中学习到这些特征。
  3. 迁移学习:预训练模型可以很容易地适应新任务(通过微调),因为它们已经在广泛的语言上下文上接受了预训练。
  4. 计算成本:大模型需要更多的计算资源来进行预训练和微调,而相对较小的模型如BiLSTM-CRF在资源有限的情况下可能更易于部署和使用。

大模型往往在准确性和理解能力上优于传统模型,但也需要更多的计算资源。

然而,BiLSTM-CRF等模型在数据集较小、计算资源有限或需要快速原型开发时仍然非常有用。

 


构建知识图谱

这个过程是为了实现医疗知识图谱项目中的实体识别功能。

在医疗知识图谱中,实体识别是一个关键的步骤,用于从文本中自动识别出有意义的信息,如疾病、症状、治疗方法等实体。

这些实体和它们之间的关系构成了知识图谱的基本元素。

通过对医疗文本进行实体识别,可以抽取和整理出结构化的医学知识,从而支持更高级的医疗应用,比如智能问诊、病例分析等。

在这个过程中,首先选择了一个相对更优质的医疗数据集 ChineseBLUE/cMedQANER 来训练命名实体识别模型。

这是因为高质量的数据集可以提供更准确的训练基础,有利于提高实体识别的准确性。

接下来,通过修改配置文件、数据处理脚本等步骤,适配新的数据集格式和内容,以确保模型能够有效地学习到从文本中识别医疗实体的能力。

实体识别模型训练完成后,将模型封装成一个包,方便在知识图谱项目的其他部分调用。

例如,当处理用户的医疗咨询问题时,可以利用这个实体识别模型来分析问题文本,识别出里面提到的医疗实体,然后根据这些实体和知识图谱中的信息进行匹配,找到最合适的答案或建议给用户。

标签:指南,治疗,BiLSTM,模型,实体,糖尿病,CRF,识别
From: https://blog.csdn.net/qq_41739364/article/details/137001671

相关文章

  • 3款免费甘特图制作工具的比较和选择指南
    ##GanntProjectGanttProjecthttps://www.ganttproject.biz/是一款项目管理和调度应用,适用于Windows、macOS和Linux。该应用提供任务层次结构和依存关系、里程碑、基准行、Gantt图表(带生成PERT图表的选项)、资源负荷图表、任务成本计算和导出到PDFsHTML或PNG文件......
  • Stable Diffusion下载安装,保姆级教程指南!
    一、了解StableDiffusion1、StableDiffusion(简称SD)是一种图像生成模型,主要用于生成以文本生成图像,图片生成图片,图片修复等,由慕尼黑路德维希马克西米利安大学CompVis小组和Runway的研究人员提出,由初创公司StabilityAI资助和塑造。2、由于源代码是开源发布在网上的,所以......
  • RSS Fever API 服务搭建避坑指南(FreshRSS + Fluent Reader, 2024年最新可用教程)
    1.适用人群需要通过RSS主动获取来自订阅源的信息,并且希望在多个设备上实现订阅源共享;拥有一台云服务器,并安装了Linux系统;能够访问谷歌。注意,这不是一篇非常详细的教程,对于教程中涉及的程序(如FreshRSS),官方和用户分别提供了充足的配置资料和经验分享,我会避免直接搬运它......
  • C#避坑指南-浮点数与整数计算的比较
    浮点数与整数计算的比较在软件开发过程中,我们经常需要进行数值计算来解决各种问题。然而,整数和浮点数在计算过程中存在一些差异,特别是在涉及除法和精度方面。本篇博客将通过一个具体的例子来比较整数和浮点数计算的区别,并说明为什么在某些情况下,应该使用浮点数进行计算以获得更......
  • 容器镜像加速指南:探索 Kubernetes 缓存最佳实践
    介绍将容器化应用程序部署到Kubernetes集群时,由于从registry中提取必要的容器镜像需要时间,因此可能会出现延迟。在应用程序需要横向扩展或处理高速实时数据的情况下,这种延迟尤其容易造成问题。幸运的是,有几种工具和策略可以改善Kubernetes中容器镜像的可用性和缓存。在本篇......
  • CNN实现手写数字识别
    全部代码如下:importtorchimporttorch.nnasnnimporttorch.optimasoptimimporttorch.nn.functionalasFfromtorchvisionimportdatasets,transforms#超参数batch_size=64epochs=10learning_rate=0.01momentum=0.5log_interval=10#准备数据t......
  • [AIGC] 使用Spring Boot进行单元测试:一份指南
    在现代软件开发过程中,确认你的应用正确运行是至关重要的一步。SpringBoot提供了一组实用工具和注解来辅助你在测试你的应用时,使得这个过程变得简单。下面就来分享一下如何在SpringBoot中进行单元测试。文章目录为什么需要单元测试SpringBoot单元测试的基本步骤示......
  • 识别线程
    线程标识类型是std::thread::id,可以通过两种方式进行检索。第一种,可以通过调用std::thread对象的成员函数get_id()来直接获取。如果std::thread对象没有与任何执行线程相关联,get_id()将返回std::thread::type默认构造值,这个值表示“没有线程”。第二种,当前......
  • 人脸识别学习
    基于人脸识别及反作弊技术的在线评测系统如何使用摄像头Python调用摄像头Python调用摄像头是通过调用摄像头设备来实现的。具体来说,可以使用Python的OpenCV库来打开摄像头设备,并使用摄像头进行图像捕捉和处理。Python调用摄像头示例代码importcv2#打开摄像头设备#0表......
  • chroma使用指南官方文档&翻译
    ......