
cogstacksystems/medcat-trainerMedCATTrainer是一个用于构建、改进和定制生物医学领域文本命名实体识别与链接(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是两个不同的概念体系)每个部署仅需执行一次此过程,






manifest unknown 错误
TLS 证书验证失败
DNS 解析超时
410 错误:版本过低
402 错误:流量耗尽
身份认证失败错误
429 限流错误
凭证保存错误
来自真实用户的反馈,见证轩辕镜像的优质服务