从医学文献的表格中提取患者数据

如何提取患者的BMI、体重和数量

临床试验的文献

  • MEDLINE 30种语言5600种杂志包含27,000,000+份文献
  • MEDLINE 包含近80万临床试验文献
  • 科研人员如何面对数量呈指数级增长的文献!

借力数据挖掘?

  • 大规模文本处理的挖掘技术
  • 当下大多数挖掘技术着重在纯文本,表格、图形被忽略

医学文档中的表格

  • PMC数据库中72%的文章都有表格,3.1个表格/每个文章
  • NLM的DailyMed数据库中药品说明书,4.1个表格/每份说明书
  • 表格通常与临床试验设计和结论相关

表格数据挖掘的挑战

  • 内容庞杂

  • 版式多样

  • 数据类型多样

  • 容易误解的可视化表达方式

  • 缺少标记好的训练数据

  • 如何从XML、TXT、PDF、JPG中自动化提取

案例

  • 从临床试验文献的表格中提取患者数量、患者BMI和体重数据
  • 多层次挖掘方法处理表格中的信息
    • 实现大规模半自动化提取
    • 表格中数据再加工整理

我们所选用的方法

  • 基于规则的
    • 针对收集的表格人工分析,整理出规则
  • 三步法
    • 表格检测
    • 功能性分析
    • 信息抽取/语义分析

方法概述

处理流程

表格-Latest

  • 描述信息
    • 表名/标题
    • 脚注/footer/legend
  • 导航栏
    • row header/stub
    • super-row/sub-row-header
    • column header
  • 表格数据

表格-Hurst

  • (i) the stub that contains the row- and subheaders;
  • (ii) the boxhead that contains the column headers (excluding the stub head);
  • (iii) the stub head that contains the header for the stub
  • (iv) the body that contains the actual data of the table

表格类型-List

  • List列表形式的表格

表格类型-Matrix

  • Matrix矩阵形式的表格

表格类型-Super-row

  • Super-row形式的表格

表格类型-multi-tables

表格模型

表格检测 &&Physical Layout Analysis

  • 目标:区分哪些区域是表格 哪些不是(是文本text、图片image、图表chart)
  • Non-DL
    • contiguous lines 1
    • contiguous text blocks 2
    • distant supervision 3

表格检测 &&Physical Layout Analysis 续

  • 目标:区分哪些区域是表格 哪些不是(是文本text、图片image、图表chart)

  • DL

    • 决策树、SVM、启发式(Unsupervised vs supervised)
    • DIA 、region sementation( pixel based or texture based segmentation 4) 、treat pdf page as image

表格功能性分析 && logical layout analysis

  • 目标:区分哪些单元格是表名、标题、表头、行和列、单元格网格结构、单元格间的关系 重构表格逻辑结构
  • 确定表格类型-List、Matrix、super-row、multi-table
  • DL
    • 决策树、CRF
    • 需要标记好的训练数据
  • 启发式(版面+领域知识)
    • word clustering 1
    • partitioning the projection histograms 2 && X-Y cut 3
    • 针对表格类型的规则

表格功能性分析 && logical layout analysis续

  • 目标:区分哪些单元格是表名、标题、表头、行和列、单元格网格结构、单元格间的关系 重构表格逻辑结构
  • 表头识别
    • 数字
    • 重复
    • 字母
    • 其他(数据类型、字体大小、文本对齐方式、分割线、子表头等)
  • Table Identification Guidelines 4

表格语义分析

  • 目标:区分单元格中数据的概念、属性、以及相互之间的关系
  • 不同层次
    • 表格业务类型区分(化验单、发票等)
    • 单元格取值类型 (such as number, currency, percentage, named entity, and non-numeric words)
    • keywords list
    • domain specific ontology and lexicons 1

信息抽取

  • 从表格中提取感兴趣的变量、变量值
  • 模板

抽取患者数量

  • 启发式方法
  • 检索标题、表头、单元格
  • 针对标题
    • n = %d
    • %d Adj*(patients|participants|subjects|individuals)
  • 针对表头
    • n = %d
    • can be partial,needs adding up
  • 针对单元格
    • stub contains defined word or phrase
    • can be partial,needs adding up

抽取BMI数据

  • 根据关键词列表(BMI,body mass index)和黑名单(change,increase)
  • stub、表头中存在关键词意味着存在数据的可能性
  • 取值范围为14-40

抽取患者体重

  • 根据关键词列表()和黑名单()
  • stub、表头中存在关键词意味着存在数据的可能性
  • 存在于黑名单中的词则不是
  • 取值范围不管用
    • 有人可以是40-150公斤
    • lbs/英磅:80-130lbs
    • 婴儿:1500-5000g

结果

  • 语料中包括1273份文档,3573个表格
  • 每个表格平均80个单元格
  • 功能性、结构处理的评估
    • 每种表格随机选择100个
  • 信息抽取的评估
    • 患者数量
      • 758 contained data
      • 50份随机文档
    • BMI和体重
      • 113份文档包含此类信息

功能性分析的结果

信息抽取的结果

讨论

  • Better scoped values,such as BMI can be modelled-better performance
  • 白名单、黑名单定义要尽可能的完整
  • 呈现格式和方法的多样性
  • 易产生误解的样式
  • 整体结果还很不错

总结

  • 利用大规模表格数据挖掘从临床试验采集人群信息
  • 根据版面对表格进行分类
  • 仅以患者数量、BMI、体重为例进行了演示
  • 成果显著