【保姆级教程】UMLS工具——MetaMap安装及使用

专家词典

https://lhncbc.nlm.nih.gov/LSG/Projects/lexicon/current/web/index.html

SPECIALIST 词典是一个大型的生物医学通用英语句法 词典,旨在提供 SPECIALIST 自然语言处理系统 (NLP) 所需的词汇信息,其中包括 MetaMap 和词汇工具等。它旨在成为包含许多生物医学术语的通用英语词典。涵盖范围包括来自各种来源的常用英语单词和生物医学词汇。这每个词汇项目(单词或术语)的词典条目记录了 SPECIALIST NLP 系统所需的句法、形态(词形变化和派生)和正字法(拼写变体)信息。

词汇工具

词汇工具是一套用于检索词汇变体 的基本核心 NLP 工具。SPECIALIST词汇工具利用 SPECIALIST 词汇表数据为 NLP 基本功能提供全面的工具集和 Java API,包括检索句法类别、屈折变化、拼写变化、缩写、首字母缩略词、派生变化、同义词、反义词、规范化、Unicode 到 ASCII 的转换、标记化和停用词删除。此工具集提供超过 64 个 流程组件和 37 个 选项

https://lhncbc.nlm.nih.gov/LSG/Projects/lvg/current/web/index.html

MetaMap(包含了词汇工具)

把生物医学文本与UMLS超级词表 中的概念匹配起来的程序,MetaMap 将文本(可以是文档、查询)映射(匹配)为来自 UMLS 元叙词的概念。文本通过一系列模块并分解 为包括句子、短语、词汇元素和标记的组件。根据结果短语生成变体,并根据它们的短语检索评估 来自 UMLS 元叙词的候选概念。由此产生的概念以最好地覆盖文本的方式组织,称为最终映射。

MetaMap下载(需要UMLS许可)

https://lhncbc.nlm.nih.gov/ii/tools/MetaMap/run-locally/MainDownload.html

MetaMap 2009 Usage

https://lhncbc.nlm.nih.gov/ii/tools/MetaMap/Docs/MM09_Usage.html

//输入输出文件可以不指定,默认标准输入输出。如果指定的化,必须位于最后两个参数
./bin/metamap [选项] [输入文件] [输出文件]

输入每个句子,分析得出结果。(我原本输入的一个个单词,但MetaMap将它自动认成一个句子。

1.具体安装教程-官网安装教程

官网上的安装教程:https://lhncbc.nlm.nih.gov/ii/tools/MetaMap/documentation/Installation.html

工具:MetaMap https://lhncbc.nlm.nih.gov/ii/tools/MetaMap.html

文档:安装
MetaMap 安装:

如果您在 Windows XP 或 Windows 7 上安装 MetaMap,请使用MetaMap Windows 安装说明。

1.1 MetaMap Windows 安装说明。

https://lhncbc.nlm.nih.gov/ii/tools/MetaMap/Docs/README_win32.html

先决条件

要使用 MetaMap 的发行版,需要满足以下条件:

至少 12 GB 的可用磁盘空间。

使用 WinZip 或 tar 来提取分发包

安装了 Java 6 或更新的 JRE 或 SDK,稍后安装 MetaMap 时您需要知道 Java 的安装位置。

根据以下教程安装java,这里选的是java17 https://blog.csdn.net/huanzi833/article/details/139889738?ops_request_misc=%257B%2522request%255Fid%2522%253A%25223A0FEBC2-FE3B-45BE-926B-455EF5189BDF%2522%252C%2522scm%2522%253A%252220140713.130102334..%2522%257D&request_id=3A0FEBC2-FE3B-45BE-926B-455EF5189BDF&biz_id=0&utm_medium=distribute.pc_search_result.none-task-blog-2~all~top_click~default-6-139889738-null-null.142^v100^pc_search_result_base4&utm_term=java%E5%AE%89%E8%A3%85&spm=1018.2226.3001.4187

下载

发行版可在 MetaMap 主下载页面 URL:MainDownload.html上获取

选择下载页面上提供的最新版本的MetaMap的下载链接。

【重点内容】

MetaMap 软件的最新版本包含 2020AA 数据集。如果您正在寻找与 MetaMap 软件下载配套的其他数据集或最新版本的数据集,请访问我们的其他数据集页面

目前,每个完整下载都包含 MetaMap 的二进制版本,并且我们分别包含了每年的严格数据模型。每年的宽松数据模型单独提供。

有关安装 MetaMap 的信息, 请参阅MetaMap 安装指南。

注意:希望使用 Java API 的用户也 需要下载MetaMap Java API版本。

这里要有JAVA API的话要下载完整版本。

下面给出两个参考,下载2020版本

元地图2020

每个分发文件包含 MetaMap 2020 二进制文件、MedPost/SKR POS Tagger 服务器、WSD 服务器和 2020AA USAbase 严格数据模型。

注意:以下发行版不包含 Java API;如果您需要 Java API,则 除了主版本之外,还必须下载Java API 2020 版本 。此外,MetaMap 2020 需要 GLIBC 2.17 或更高版本才能运行。

元地图 2018

每个分发文件包含 MetaMap 2018 二进制文件、MedPost/SKR POS Tagger 服务器、WSD 服务器和 2016AB USAbase 严格数据模型。

注意:以下发行版不包含 Java API;如果您需要 Java API,则 除了主版本之外,还必须下载Java API 2018 版本 。此外,MetaMap 2018 需要 GLIBC 2.14 或更高版本才能运行。

看看2020发行说明(有哪些更新)

1.MetaMap历来需要ASCII输入,因为它的UMLS数据始终是纯ASCII。但是,我们在MetaMap的2020AA UMLS数据中包含了UTF-8字符串,MetaMap20将相应地接受UTF-8输入。有关更多信息,请参阅未格式化英文文本常见问题解答。我们还为所有非ASCII UMLS字符串添加了ASCII等价物,以潜在地提高召回率。例如,在2020AA MRCONSO. RRF文件中,以下CUI(以及许多其他CUI)仅包含UTF-8英文字符串:

1398762|Gl´enard

C1505197|Ricrid`ene

C1530290|H¨amatopan

C3825987|M^aeni´aere's disease

2.MetaMap以前的所有版本都抛出了一个致命错误,并在无法处理输入文件中的某些文本的罕见情况下中止。我们添加了一种graceful-degradation机制,通过向stderr打印警告来处理某些以前致命的错误,跳过其余的有问题的话语,并静默地进行下一个话语。不会为话语的其余部分生成输出,但另一方面 MetaMap 也不会中止。此更改对于 MetaMap 调用处理包含多个引用的输入文件特别有用。

3 对用户定义的首字母缩略词 / 缩写的小改动用户定义的首字母缩略词 / 缩写词(UDA)在 MetaMap 2011 发行说明的第 9 节中引入,并在临床文本常见问题解答中进行了描述。

以前,在 UDA 文件(如 "x|y")中的一行中,两个字符串中较短的被视为首字母缩略词 / 缩写(AA),较长的被视为扩展或替换 ------ 无论它们在行中的顺序如何。从 MetaMap20 开始,第一个字符串是 AA,第二个是扩展或替换 ------ 不管两个字符串的相对长度如何。这种变化允许用户告诉 MetaMap 用任何其他字符串替换任何字符串,而不管它们的相对长度。UDA 机制的这种 "标签外" 使用类似于阻止不需要的 UMLS 概念常见问题解答中描述的策略。

这里发现没有win10版本,包括比较往前的工具,也只有win7或者winxp。使用 WSL 在 Windows 上安装 MetaMap,在 Windows 10 上设置 WSL,记住以下前提条件:

至少 12 GB 的可用磁盘空间。

使用 WinZip 或 tar 来提取分发包

安装了 Java 6 或更新的 JRE 或 SDK,稍后安装 MetaMap 时您需要知道 Java 的安装位置。

复制代码
 

1.2 使用 WSL 在 Windows 上安装 MetaMap

目录

1.在 WSL 中安装 Linux MetaMap 2020

在 Windows Subsystem for Linux (WSL) 中安装 Linux 版本 MetaMap 的指南。
1.1.在 Windows 10 上设置 WSL
从管理员启用的 PowerShell 实例中运行以下命令:

example 复制代码
dism.exe /online /enable-feature /featurename:Microsoft-Windows-Subsystem-Linux /all /norestart
dism.exe /online /enable-feature /featurename:VirtualMachinePlatform /all /norestart

然后重新启动系统以使更改生效。
1.2.安装 WSL Ubuntu 应用程序
使用 Microsoft 商店下载并启动"Ubuntu 20.04 LTS"应用程序。

在 Ubuntu 窗口的提示符下,输入 WSL Ubuntu 实例的用户名和密码。

您可以随时通过在"user@DESKTOP-xxxx: $"提示符下输入 exit 来停止实例。您可以使用开始菜单中的"Ubuntu"图标启动新的 Ubuntu Linux 实例。
1.3.在 Ubuntu 实例中安装 Java
Java 运行时环境 (JRE) 是运行 MetaMap 使用的标记服务器所必需的。使用以下命令在 Ubuntu Window 中安装 JRE:

example 复制代码
sudo apt-get install default-jre

该命令将提示您输入首次启动 Ubuntu 实例时提供的密码。提供密码后将安装 JRE。
1.4.下载MetaMap
从 MetaMap 下载页面 ( Main Download ) 将主 MetaMap 发行版下载到您的下载文件夹。

从 Ubuntu 窗口移至您想要工作的区域并从下载目录中提取 MetaMap。WSL将 C: 驱动器映射到 Ubuntu 窗口中的"/mnt/c"。也就是要到d盘,cd /mnt/d,接着ls就可以看到更多文件夹了,他本质上在操作你的电脑。

第一句跳转到电脑上存放了安装包的文件夹,

第二句解压下载的文件,如果和自己的文件名不一样,要替换,路径也要替换。在解压前先检查解压软件是否安装了。tar --version,如果有安装会显示b

example 复制代码
$ cd /mnt/c/Users/username/workdir
$ tar xvfj /mnt/c/Users/username/Downloads/public_mm_linux_main_2020.tar.bz2

解压时报错如下·:

kaka@DESKTOP-LMID4L2:/mnt/d/MetaMap/public_main_2020v2$ tar xvfj public_mm_linux_main_2020.tar.bz2
tar (child): bzip2: Cannot exec: No such file or directory
tar (child): Error is not recoverable: exiting now
tar: Child returned status 2
tar: Error is not recoverable: exiting now

这个错误提示表明系统中缺少用于解压 .bz2 文件格式的 bzip2 工具。

要解决这个问题,可以按照以下步骤在 Ubuntu 24.04 LTS 中安装 bzip2

  1. 打开终端。

  2. 运行以下命令更新软件包列表:

    sudo apt update
    
    sudo apt install bzip2
    

安装完成后,再次尝试运行 tar xvfj public_mm_linux_main_2020.tar.bz2 命令,应该就可以成功解压文件了。

一定要先解压main文件,再解压java的api文件

  • 环境下载
    • 首先从官网下载MetaMap和JavaApi的环境
    • MetaMap Java API (提前下载好)
      • 这里我选择是2020v2版本,支持utf-8编码,和MetaMap2020匹配
        看是否需要JAVA API
  • 安装过程
    • 项目解压

      • 将下载的压缩文件放在同一个目录下,然后解压缩
      • 需要注意的是两个文件解压缩后得到的文件都是public_mm文件夹,为了区分,可以新建一个public_main_2020v2的文件夹,将main解压到这个文件夹内
      • shell
        • mkdir public_main_2020v2
        • tar -jxvf public_mm_linux_main_2020v2.tar.bz2 ./public_main_2020v2
        • tar -jxvf public_mm_javaapi_2020v2.tar.bz2
    • 然后分别跳转到两个解压文件的bin目录执行如下命令 :

      • 在执行过程中,会需要用户输入basedir和jdk(jre)路径,所以首先就需要确定两个文件的路径
        • JDK
          • which java
            return : /usr/local/jre1.8/bin/java
            • 这里我用whereis java才在微软商店里下载的Ubantu中显示了安装java的位置,返回位置为 /usr/bin/java
          • export JAVA_HOME=/usr/local/jre1.8
            • 我的改为 export JAVA_HOME=/usr/bin
          • export PATH=/public_mm/bin:$PATH
      • 执行 ./install.sh
        • basedir:设置为public_main_2018v2的绝对路径 !
        • jdk设置为默认即可,直接回车
        • 如果提示找不到文件,则基本是basedir配置出错,可以检查javaapi对应的install.sh中的basedir是否修改为public_main_2018v2对应的目录
        • 执行结果如图

      kaka@DESKTOP-LMID4L2:/mnt/d/MetaMap/public_main_2020v2/public_mm$ ./bin/install.sh
      glib minimun required version: 2.12
      Enter basedir of installation [/mnt/d/MetaMap/public_main_2020v2/public_mm]

      Basedir is set to /mnt/d/MetaMap/public_main_2020v2/public_mm.

      The WSD Server requires Sun's Java Runtime Environment (JRE);
      Sun's Java Developer Kit (JDK) will work as well. if the
      command: "which" java returns /usr/local/jre1.4.2/bin/java, then the
      JRE resides in /usr/local/jre1.4.2/.

      Where does your distribution of Sun's JRE reside?
      Enter home path of JRE (JDK) [/usr]:

      Using /usr for JAVA_HOME.

      /mnt/d/MetaMap/public_main_2020v2/public_mm/WSD_Server/config/disambServer.cfg generated
      /mnt/d/MetaMap/public_main_2020v2/public_mm/WSD_Server/config/log4j.properties generated
      Created directory /mnt/d/MetaMap/public_main_2020v2/public_mm/WSD_Server/log
      Created directory /mnt/d/MetaMap/public_main_2020v2/public_mm/Tagger_server/log
      Setting up bin directory scripts:
      chmod: changing permissions of '/mnt/d/MetaMap/public_main_2020v2/public_mm/bin/SKRenv.20': Operation not permitted
      /mnt/d/MetaMap/public_main_2020v2/public_mm/bin/SKRenv.20 generated.
      chmod: changing permissions of '/mnt/d/MetaMap/public_main_2020v2/public_mm/bin/SKRrun.20': Operation not permitted
      /mnt/d/MetaMap/public_main_2020v2/public_mm/bin/SKRrun.20 generated.
      chmod: changing permissions of '/mnt/d/MetaMap/public_main_2020v2/public_mm/bin/metamap': Operation not permitted
      /mnt/d/MetaMap/public_main_2020v2/public_mm/bin/metamap generated.
      chmod: changing permissions of '/mnt/d/MetaMap/public_main_2020v2/public_mm/bin/metamap20': Operation not permitted
      /mnt/d/MetaMap/public_main_2020v2/public_mm/bin/metamap20 generated.
      chmod: changing permissions of '/mnt/d/MetaMap/public_main_2020v2/public_mm/bin/metamap2020.TEMPLATE': Operation not permitted
      /mnt/d/MetaMap/public_main_2020v2/public_mm/bin/metamap2020.TEMPLATE generated.
      chmod: changing permissions of '/mnt/d/MetaMap/public_main_2020v2/public_mm/bin/skrmedpostctl': Operation not permitted
      /mnt/d/MetaMap/public_main_2020v2/public_mm/bin/skrmedpostctl generated.
      chmod: changing permissions of '/mnt/d/MetaMap/public_main_2020v2/public_mm/bin/uninstall.sh': Operation not permitted
      /mnt/d/MetaMap/public_main_2020v2/public_mm/bin/uninstall.sh generated.
      chmod: changing permissions of '/mnt/d/MetaMap/public_main_2020v2/public_mm/bin/wsdserverctl': Operation not permitted
      /mnt/d/MetaMap/public_main_2020v2/public_mm/bin/wsdserverctl generated.
      Setting up test suite:
      chmod: changing permissions of '/mnt/d/MetaMap/public_main_2020v2/public_mm/TestSuite/runTest.sh': Operation not permitted
      /mnt/d/MetaMap/public_main_2020v2/public_mm/TestSuite/runTest.sh generated.
      chmod: changing permissions of '/mnt/d/MetaMap/public_main_2020v2/public_mm/TestSuite/runTest_2009.sh': Operation not permitted
      /mnt/d/MetaMap/public_main_2020v2/public_mm/TestSuite/runTest_2009.sh generated.
      chmod: changing permissions of '/mnt/d/MetaMap/public_main_2020v2/public_mm/TestSuite/runTest_2010.sh': Operation not permitted
      /mnt/d/MetaMap/public_main_2020v2/public_mm/TestSuite/runTest_2010.sh generated.
      chmod: changing permissions of '/mnt/d/MetaMap/public_main_2020v2/public_mm/TestSuite/runTest_2011.bat': Operation not permitted
      /mnt/d/MetaMap/public_main_2020v2/public_mm/TestSuite/runTest_2011.bat generated.
      chmod: changing permissions of '/mnt/d/MetaMap/public_main_2020v2/public_mm/TestSuite/runTest_2011.sh': Operation not permitted
      /mnt/d/MetaMap/public_main_2020v2/public_mm/TestSuite/runTest_2011.sh generated.
      chmod: changing permissions of '/mnt/d/MetaMap/public_main_2020v2/public_mm/TestSuite/runTest_2012.sh': Operation not permitted
      /mnt/d/MetaMap/public_main_2020v2/public_mm/TestSuite/runTest_2012.sh generated.
      chmod: changing permissions of '/mnt/d/MetaMap/public_main_2020v2/public_mm/TestSuite/runTest_2013.sh': Operation not permitted
      /mnt/d/MetaMap/public_main_2020v2/public_mm/TestSuite/runTest_2013.sh generated.
      chmod: changing permissions of '/mnt/d/MetaMap/public_main_2020v2/public_mm/TestSuite/runTest_2014.sh': Operation not permitted
      /mnt/d/MetaMap/public_main_2020v2/public_mm/TestSuite/runTest_2014.sh generated.
      Checking for required datafiles
      Checking for optional datafiles (WSD)

      Public MetaMap Install complete.

      Public MetaMap Install Settings:

      Public MetaMap basedir: /mnt/d/MetaMap/public_main_2020v2/public_mm
      Public MetaMap Program Dir: /mnt/d/MetaMap/public_main_2020v2/public_mm/bin
      Java Home dir: /usr

      kaka@DESKTOP-LMID4L2:/mnt/d/MetaMap/public_main_2020v2/public_mm$

启动 MetaMap

MetaMap 需要启动两个服务器,即词性标注器和词义消歧 (WSD) 服务器。它们可以按如下方式启动和停止:

启动 MetaMap 服务器

运行 MetaMap 之前需要先启动 Tagger 和 WSD 服务器。启动后两个服务器都会自动在后台运行。

1. SKR/Medpost 词性标注服务器

复制代码
% ./bin/skrmedpostctl start

2. 词义消歧(WSD)服务器(可选)

复制代码
% ./bin/wsdserverctl start

停止服务器

您可以通过调用带有停止参数的 相应脚本来停止每个服务器:

1. SKR/Medpost 词性标注服务器

复制代码
% ./bin/skrmedpostctl stop

2. 词义消歧(WSD)服务器(可选)

复制代码
% ./bin/wsdserverctl stop

确定服务器是否正在运行

您可以通过以下命令确定服务器是否正在运行:

复制代码
%ps ax | grep java

输出应如下所示:

复制代码
16105 pts/0    Sl     0:00 /usr/local/jdk1.6.0_01/bin/java -Xmx2g -Dserver.config...
16158 pts/0    R+     0:00 grep java
21914 pts/0    Sl     0:02 /usr/bin/gij -Djava.version=1.4.2 -Djava.home=/usr/lib/...
%

调用 MetaMap

如果启动 WSD 和 Tagger 服务器没有错误,则可以按如下方式运行 MetaMap:

复制代码
% ./bin/metamap{version}

#-- 如果您使用的是 MetaMap 的预发布版本,请使用以下命令:

#-- ^<< #-- % ./bin/metamap{version} -L 11 -Z 10 #-- ^>>

MetaMap 有大量的选项,已在其他地方解释 。2

数据文件生成器

对于希望在 MetaMap 中使用自己的数据集的用户,现在可以使用数据文件生成器套件。请访问 MetaMap 网站 ( MetaMap /) 了解更多信息。

问题

如果您有问题,请发送电子邮件至 metamap@nlm.nih.gov

使用 MetaMap

有关运行 MetaMap 及其众多选项的更多信息,请参阅以下参考资料:

  1. Linux 版 MetaMap 自述文件,http://metamap.nlm.nih.gov/MM09_Readme.shtml
  2. MetaMap 2009 使用,http://metamap.nlm.nih.gov/MM09_Usage.shtml
  3. 生物医学文本到 UMLS 元词库的有效映射:MetaMap 程序,2001 年,
  4. MetaMap:将文本映射到 UMLS 元词库,2006 年 7 月,http://skr.nlm.nih.gov/papers/references/metamap06.pdf
  5. MetaMap 选项和示例,2006 年 9 月,http://skr.nlm.nih.gov/papers/references/MetaMap_Examples_06.pdf

具体使用方法

MetaMap Versions

1.通过网站,交互式使用

UMLS Metathesaurus Browser

2.通过查看文档中心,调用参数直接在本地执行

Using MetaMap - MetaMap

【java的api我后期要用的时候再继续更新,之前怎么操作都不成功】

有关其余安装说明, 请参阅 MetaMap 安装指南(https://metamap.nlm.nih.gov/Installation.shtml )。

注意:启动标记器服务器 bin/(使用命令:bin/skrmedpostctl start)时,Windows 将提示您进行网络访问。您必须允许访问才能运行需要标记器服务器运行的 MetaMap。

此外,这些说明也适用于其他 WSL Linux 应用程序,但仅测试了 Debian 和 Ubuntu 应用程序。

参见:

创建时间:2021-12-07 星期二 11:30

接下来看提取之后,剩余的其它安装说明:

相关推荐
AI算法-图哥2 分钟前
pytorch量化训练
人工智能·pytorch·深度学习·文生图·模型压缩·量化
大山同学4 分钟前
DPGO:异步和并行分布式位姿图优化 2020 RA-L best paper
人工智能·分布式·语言模型·去中心化·slam·感知定位
机器学习之心5 分钟前
时序预测 | 改进图卷积+informer时间序列预测,pytorch架构
人工智能·pytorch·python·时间序列预测·informer·改进图卷积
天飓32 分钟前
基于OpenCV的自制Python访客识别程序
人工智能·python·opencv
檀越剑指大厂34 分钟前
开源AI大模型工作流神器Flowise本地部署与远程访问
人工智能·开源
声网37 分钟前
「人眼视觉不再是视频消费的唯一形式」丨智能编解码和 AI 视频生成专场回顾@RTE2024
人工智能·音视频
newxtc1 小时前
【AiPPT-注册/登录安全分析报告-无验证方式导致安全隐患】
人工智能·安全·ai写作·极验·行为验证
技术仔QAQ1 小时前
【tokenization分词】WordPiece, Byte-Pair Encoding(BPE), Byte-level BPE(BBPE)的原理和代码
人工智能·python·gpt·语言模型·自然语言处理·开源·nlp
陌上阳光1 小时前
动手学深度学习70 BERT微调
人工智能·深度学习·bert
正义的彬彬侠2 小时前
sklearn.datasets中make_classification函数
人工智能·python·机器学习·分类·sklearn