MedCATTrainer是一个用于构建、改进和定制生物医学领域文本命名实体识别与链接(NER+L)模型(MedCAT)的界面。
MedCATTrainer在EMNLP/IJCNLP 2019会议上发布:论文链接
MedCATTrainer是一个基于Docker Compose打包的Django应用。
快速安装脚本会下载docker-compose文件、默认环境变量并运行它们。
$ git clone [***]
$ cd MedCATtrainer $ docker-compose up
如果您使用的是MedCAT v0.x模型,并希望使用该训练器,请使用以下docker-compose文件: 此文件引用了仍与MedCAT v0.x及以下版本兼容的最新训练器构建镜像。
$ docker-compose -f docker-compose-mc0x.yml up
如果构建失败并显示错误代码137,说明运行Docker守护进程的虚拟机内存不足。请在Docker守护进程设置的CLI或相关Docker GUI中增加容器的分配内存。
Mac系统:[***]
Windows系统:[***]
初始安装时,会设置示例管理员用户、示例数据集、概念数据库、词汇表和项目。下一部分将提供更多详细信息。
| 参数 | 描述 |
|---|---|
| MEDCAT_CONFIG_FILE | MedCAT配置文件,详见此处 |
| BEHIND_RP | 如果在反向代理后运行MedCATTrainer,设为1,否则默认0(即False) |
| MCTRAINER_PORT | 训练器应用运行的端口 |
设置这些变量后,重新运行docker-compose文件。如果已运行容器,需要先停止容器。
用户名:admin
密码:admin


创建后,选择新用户,勾选“Staff Status”( staff状态)或“Superuser Status”(超级用户状态),以允许用户访问管理员应用。
通过步骤2导航至默认管理员用户,选择该用户并执行删除操作,移除默认admin用户。

为便于演示和当前模型的常规测试,主屏幕的“Demo”(演示)选项卡提供了简化版的注释器。

该界面与真实项目的注释屏幕类似(详见此处),但无需特定数据集、过滤器设置和其他项目配置。此视图不允许对识别的概念进行“注释”(或添加新概念),但允许用户通过交互方式了解现有MedCAT模型的注释能力。

此处显示示例临床文本,文本片段以蓝色高亮。点击任何注释可在3中显示链接的概念数据库详情。
从2中选择的概念的链接概念详情。
通过管理员页面,已配置的超级用户可以创建、编辑和删除注释项目。
注释项目用于检查、验证和改进MedCAT识别的概念。
!主菜单列表
!添加项目注释实体按钮
| 参数 | 描述 |
|---|---|
| Name | 项目名称,显示在登录页面 |
| Description | 项目描述,显示在登录页面,例如“示例项目” |
| Members | 有权访问此项目的用户列表,点击“+”可创建新用户 |
| Dataset | 要注释的文档集。数据集表格 schema 如下所述 |
| Validated Documents | 忽略此列表。即将发布的高级管理员用户指南将说明此列表的用途 |
| Cuis | (可选)逗号分隔的概念唯一标识符(CUI)列表,用于仅显示此项目中的特定概念 |
| CUI File | (可选)JSON格式的CUI列表。如果项目需要基于CDB自省收集的大量CUI列表进行设置,此文件非常有用。将与上述“Cuis”列表合并 |
| Concept DB | MedCAT概念数据库。应为通过medcat.cdb.CDB.save_dict('name_of_cdb.dat')函数生成的文件。点击此处的“+”图标可打开上传CDB文件的对话框 |
| vocab | MedCAT词汇表。应为通过medcat.cdb.utils.Vocab.save_dict('name_of_vocab.dat')函数生成的文件。点击此处的“+”图标可打开上传词汇表文件的对话框 |
| cdb_search_filter | 用于在文档添加注释过程中查找概念的CDB ID列表 |
| Require Entity Validation | (默认:True)勾选此选项后,界面中MedCAT生成的注释将显示为灰色,表示未经验证。文档提交前需用户标记所有灰色注释。未勾选时,所有注释默认标记为“有效” |
| Train Model On Submit | (默认:True)勾选此选项后,每次文档提交都会使用该文档中标记和添加的注释训练配置的MedCAT实例。未勾选时,MedCAT模型不会在提交之间训练 |
| Add New Entities | (默认:False)勾选此选项后,允许用户向现有MedCAT CDB添加全新概念。未勾选时,此功能不可用 |
| Restrict Concept Lookup | (默认:False)勾选此选项后,概念查找(添加注释/选择替代概念)将仅包含上述过滤器中列出的CUI(来自CUI列表或上传的CUI文件) |
| Terminate Available | (默认:True)勾选此选项后,将显示终止注释概念的选项 |
| Irrelevant Available | (默认:False)勾选此选项后,将显示标记注释概念为“无关”的选项 |
| Tasks | 选择概念标记为正确后显示的“元注释”任务 |
数据集可上传CSV或XLSX格式文件。示例:
| name | text |
|---|---|
| Doc 1 | 示例文档文本 |
| Doc 2 | 更多示例文本 |
name列可选,若上传时未提供,将为每个文档自动生成名称。示例数据集位于docs/example_data/*.csv。
点击“Save”(保存)存储新项目。


注意:示例概念数据库和词汇表可在MedCAT github免费获取。注意:UMLS和SNOMED-CT是许可产品,因此目前仅提供这些较小的训练概念/词汇数据库。
关于从各自源数据创建UMLS/SNOMED-CT CDB的更多文档将很快发布。
重要注意:任务允许创建元注释及其关联的注释者可用值集。例如,“元注释”可以是“时间性”,值可以是“过去”、“现在”、“未来”。
注意:当前不支持Firefox和IE浏览器。请使用Chrome或Safari。
注释界面最初可分为5个部分。

项目中待完成的文档列表。当前选中的文档左侧边框以蓝色高亮。已提交的文档标记有!tick_mark。
选中文档的文本,其中配置的MedCAT模型识别的每个概念都高亮显示。高亮文本片段指示注释状态:
MedCAT可能会遗漏缩略语、缩写词或概念拼写错误的文本片段。可通过直接高亮文本片段、右键点击、选择“Add Term”(添加术语)、搜索概念(通过ID或名称)并选择添加术语来添加缺失的注释:
->
-> 
选择:

在文档中出现的概念列表之间导航:
一个概念只能标记一种状态。状态会被记录,但仅在提交文档且项目配置了“Train Model On Submit”(提交时训练模型)时才会发送给MedCAT进行训练。
所有概念都经过审核并标记状态后,提交按钮才会启用。点击提交将显示包含注释摘要的确认对话框。确认提交后,所有新注释将发送到MedCATTrainer中间层,并重新训练MedCAT模型。之后将选择下一个文档,并使用新训练的MedCAT模型进行注释。
显示当前审核文档的名称和项目中剩余待注释文档的数量,操作按钮包括:
:当前注释摘要。提交注释确认前会显示类似视图。
:帮助对话框,显示文档和概念导航、概念注释及提交的快捷键。
:重置文档。如果错误添加或提交了注释,重置文档将清除所有先前的注释及其状态。列出当前选中概念的详情。
| 概念详情 | 描述 |
|---|---|
| Annotated Text | 链接到概念的文本片段 |
| Name | MedCAT CDB中的链接概念名称 |
| Term ID | 概念所属的高层组ID。根据CDB是否包含TUI,可能显示“N/A”(不适用) |
| Concept ID | MedCAT CDB中链接概念的唯一标识符 |
| Accuracy | MedCAT为该文本片段链接概念的准确度。如果CDB中该名称唯一标识该概念,文本片段的准确度为1.0 |
| Description | MedCAT关联的概念描述。SNOMED-CT不提供概念描述,仅提供替代名称,而UMLS提供描述 |
MedCAT还能够学***覆盖在基础概念注释层之上的项目和上下文特定注释。
元注释的示例用例包括训练模型预测:
MedCATTrainer可通过管理员应用配置,以支持收集这些元注释。目前尚未集成概念识别的主动学***组件。
要创建新的元注释任务并附加到现有项目:





概念选择器用于:


可用概念列表通过MedCAT CDB填充并建立索引,以支持快速的预输入式搜索。
SNOMED-CT/UMLS构建的数据库可能包含数千甚至数百万个概念,因此此过程以异步任务执行,确保管理员页面和应用仍可正常使用。
每个概念体系(如SNOMED-CT、UMLS是两个不同的概念体系)每个部署仅需执行一次此过程,
来自真实用户的反馈,见证轩辕镜像的优质服务
免费版仅支持 Docker Hub 加速,不承诺可用性和速度;专业版支持更多镜像源,保证可用性和稳定速度,提供优先客服响应。
免费版仅支持 docker.io;专业版支持 docker.io、gcr.io、ghcr.io、registry.k8s.io、nvcr.io、quay.io、mcr.microsoft.com、docker.elastic.co 等。
当返回 402 Payment Required 错误时,表示流量已耗尽,需要充值流量包以恢复服务。
通常由 Docker 版本过低导致,需要升级到 20.x 或更高版本以支持 V2 协议。
先检查 Docker 版本,版本过低则升级;版本正常则验证镜像信息是否正确。
使用 docker tag 命令为镜像打上新标签,去掉域名前缀,使镜像名称更简洁。
探索更多轩辕镜像的使用方法,找到最适合您系统的配置方式
通过 Docker 登录认证访问私有仓库
在 Linux 系统配置镜像加速服务
在 Docker Desktop 配置镜像加速
Docker Compose 项目配置加速
Kubernetes 集群配置 Containerd
在宝塔面板一键配置镜像加速
Synology 群晖 NAS 配置加速
飞牛 fnOS 系统配置镜像加速
极空间 NAS 系统配置加速服务
爱快 iKuai 路由系统配置加速
绿联 NAS 系统配置镜像加速
QNAP 威联通 NAS 配置加速
Podman 容器引擎配置加速
HPC 科学计算容器配置加速
ghcr、Quay、nvcr 等镜像仓库
无需登录使用专属域名加速
需要其他帮助?请查看我们的 常见问题 或 官方QQ群: 13763429