LangExtract:AI将临床笔记转化为结构化数据

Towardsdatascience

在庞大而复杂的医疗保健世界中,很大一部分关键患者数据仍然埋藏在非结构化文本中——主要是临床笔记。这些文档通常冗长,充满缩写、不一致之处和医学术语,对数据提取和分析构成了巨大挑战。重要的细节,如药物名称、剂量,尤其是不良药物反应(ADRs),经常在文本洪流中丢失,使得快速检测和响应变得困难。为了应对这一挑战,谷歌的开发人员推出了LangExtract,这是一个新的开源项目,旨在通过利用大型语言模型(LLMs)的强大功能,将杂乱的非结构化文本转化为清晰的结构化数据。虽然它起源于谷歌开发人员,但需要注意的是,LangExtract并非谷歌官方支持的产品。

及时检测不良药物反应对于患者安全和更广泛的药物警戒领域至关重要。ADR是指药物使用引起的任何有害的、非预期的后果,范围从轻微的副作用(如恶心)到需要立即就医的严重后果。快速识别这些反应至关重要,但在临床笔记中,ADRs通常与患者的病史、实验室结果和其他上下文信息交织在一起,使得手动提取成为一项费力且容易出错的过程。尽管LLMs在ADR检测方面是一个活跃的研究领域,但最近的研究表明它们可以有效地标记潜在问题,但对于明确的提取尚未达到可靠的精确度。这使得ADR提取成为LangExtract的绝佳压力测试,评估其在众多其他医疗实体中精确定位特定不良反应的能力。

LangExtract按照一个直接的三步工作流程操作。用户首先通过清晰、描述性的提示定义他们的提取任务,明确他们希望提取的确切信息。接下来,他们提供几个高质量的示例,称为“少样本示例”,这些示例用于指导模型生成所需格式和详细程度的输出。最后,用户提交他们的输入文本,选择他们偏好的LLM(可以是专有的基于API的模型,也可以是通过Ollama等平台的本地模型),然后让LangExtract处理数据。生成的结构化数据随后可以进行审查、可视化,或直接集成到下游分析管道中。该工具的通用性超出了临床笔记的范围,其示例涵盖了从文学文本中的实体提取到放射学报告的结构化。

为了展示其在临床环境中的能力,LangExtract使用谷歌的Gemini 2.5 Flash模型进行了ADR识别测试。提取任务明确定义:提取药物、剂量、不良反应以及采取的任何措施,如果提及,还包括反应的严重程度作为属性。至关重要的是,提示指示模型使用原始笔记中的精确文本跨度,避免任何意译,并按实体出现的顺序返回。提供了一个指导示例,说明了如何结构化一份详细说明“布洛芬400毫克”导致“轻微胃痛”和患者“停药”的笔记。当提供来自ADE Corpus v2数据集的真实临床句子时,LangExtract成功识别了不良药物反应,而没有将其与患者的既往病症混淆——这是此类任务中的常见障碍。

现实世界的临床笔记通常比简单的句子长得多。LangExtract通过提供特定参数来提高性能,以适应这些扩展文本。extraction_passes 允许对文本进行多次扫描,以提高召回率并捕获更细微的细节。max_workers 有助于并行处理,从而更快地处理大型文档,而 max_char_buffer 将文本分成更小、更易于管理的块,帮助模型即使在非常长的输入下也能保持准确性。此外,LangExtract提供了通过Ollama使用本地LLM的灵活性,这对于处理不能离开安全内部环境的隐私敏感临床数据的组织来说是一个显著优势。

总而言之,LangExtract为将非结构化临床笔记转化为可操作的结构化数据提供了一个有前景的解决方案,为信息检索系统和元数据提取应用程序节省了大量的预处理工作。其在ADR实验中的表现令人鼓舞,准确识别了药物、剂量和反应。然而,提取输出的质量直接受到所提供少样本示例质量的影响,这突出表明人类专业知识在整个过程中仍然是至关重要的一部分。尽管初步结果是积极的,但临床数据的高风险性质需要LangExtract在更广泛和更严格的数据集上进行更广泛的测试,然后才能广泛用于生产。