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

news2024/9/30 8:14:40

专家词典

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

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

 

  1. 词汇工具

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

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

cd87780fd7e34fd4ace68ddb6f98bdd9.png

4358c433c9ef4ab1aea4c9f7f913bc67.png

  1. 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 或更高版本才能运行。

  • MetaMap 2020 Linux 版本 (64 位 - Bzip2 Tar - 1.72 GB), [sha1sum], [md5sum]
    • MetaMap 2020 发行说明 (PDF)

元地图 2018

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

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

  • MetaMap 2018 Linux 版本 (64 位 - Bzip2 Tar - 2.69 GB), [sha1sum] , [md5sum]
  • MetaMap 2018 Mac OS/X 版本 (Bzip2 Tar - 1.49 GB)、 [sha1sum]、 [md5sum]
  • MetaMap 2018 发行说明 (PDF)

看看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
    • 1.1. 在 Windows 10 上设置 WSL
    • 1.2. 安装 WSL Ubuntu 应用程序
    • 1.3. 在 Ubuntu 实例中安装 Java
    • 1.4. 下载MetaMap

1.在 WSL 中安装 Linux MetaMap 2020

在 Windows Subsystem for Linux (WSL) 中安装 Linux 版本 MetaMap 的指南。

1.1.在 Windows 10 上设置 WSL

从管理员启用的 PowerShell 实例中运行以下命令:

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:

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

$ 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 应用程序。

参见:

  • 如何在 Windows 10 上安装 Windows Subsystem for Linux (WSL) How to install WSL2 on Windows 10 and Windows 11 | Windows Central
  • 如何在 Windows 10 中启用 Windows Subsystem for Linux How to Enable Windows Subsystem for Linux in Windows 10 - Itechguides
  • 适用于 Windows 10 的 Windows Subsystem for Linux 安装指南(内部人员可跳过简化安装) https://docs.microsoft.com/en-us/windows/wsl/install-win10

作者:威利·罗杰斯

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

 

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

 

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2179140.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

docker快速安装ELK

一、创建elk目录 创建/elk/elasticsearch/data/目录 mkdir -p /usr/local/share/elk/elasticsearch/data/ 创建/elk/logstash/pipeline/目录 mkdir -p /usr/local/share/elk/logstash/pipeline/ 创建/elk/kibana/conf/目录 mkdir -p /usr/local/share/elk/kibana/conf/ 二、创建…

软考论文《论大数据处理架构及其应用》精选试读

论文真题 模型驱动架构设计是一种用于应用系统开发的软件设计方法&#xff0c;以模型构造、模型转换和精化为核心&#xff0c;提供了一套软件设计的指导规范。在模型驱动架构环境下&#xff0c;通过创建出机器可读和高度抽象的模型实现对不同问题域的描述&#xff0c;这些模型…

算法:按既定顺序创建目标数组

力扣1389 提示&#xff1a; 1 < nums.length, index.length < 100nums.length index.length0 < nums[i] < 1000 < index[i] < i 题解&#xff1a; class Solution {public int[] createTargetArray(int[] nums, int[] index) {int[] target new int[num…

The legacy JS API is deprecated and will be removed in Dart Sass 2.0

The legacy JS API is deprecated and will be removed in Dart Sass 2.0 更新了sass版本后&#xff0c;启动项目控制台一直在报错&#xff0c;影响开发效率&#xff0c;强迫症表示忍受不了。 字面意思是&#xff1a;Sass在2.0版本将会移除legacy JS API&#xff0c;所以现在使…

Python | Leetcode Python题解之第446题等差数列划分II-子序列

题目&#xff1a; 题解&#xff1a; class Solution:def numberOfArithmeticSlices(self, nums: List[int]) -> int:ans 0f [defaultdict(int) for _ in nums]for i, x in enumerate(nums):for j in range(i):d x - nums[j]cnt f[j][d]ans cntf[i][d] cnt 1return a…

Vue发送邮件攻略:从搭建到实现详细步骤?

vue发送邮件功能实现方法&#xff1f;Vue前端如何实现发送邮件&#xff1f; 随着应用功能的不断扩展&#xff0c;用户交互的复杂性也在增加。其中&#xff0c;发送邮件功能是许多Web应用中不可或缺的一部分。AokSend将详细介绍如何使用Vue.js实现发送邮件功能。 Vue发送邮件&…

fastadmin搜索刷新列表,怎么限制用户频繁点击?

文章目录 fastadmin搜索刷新列表&#xff0c;怎么限制用户频繁点击&#xff1f;解决方案fastadmin事件方法实现完结 fastadmin搜索刷新列表&#xff0c;怎么限制用户频繁点击&#xff1f; fastadmin目前有个很致命的问题&#xff0c;就是用户可以频繁的点击搜索等按钮&#xf…

基于SPRINTBOOT+VUE文献资料检索系统

文未可获取一份本项目的java源码和数据库参考。 1 选题背景 随着世界一体化和经济全球化席卷世界,越来越多的高校认识到&#xff0c;利用信息技术的发展来改变对文档、文献的运作方法和管理模式,提高高校的管理效益和生产效益&#xff0c;从而提高高校经济效益&#xff0c;增强…

大模型中的提示学习——情感预测示例项目

提示学习&#xff08;Prompting&#xff09;是一种自然语言处理&#xff08;NLP&#xff09;中的训练技术&#xff0c;它利用预训练的语言模型&#xff08;如BERT、GPT等&#xff09;来解决各种下游任务&#xff0c;如文本分类、命名实体识别、问答等。这种方法的关键思想是通过…

智能红外抄表系统的设计与实现(论文+源码)_kaic

摘 要 随着我国现代社会经济的快速发展&#xff0c;工厂居民用电量剧增。人工抄表&#xff0c;费时费力&#xff0c;效率低下。人工抄表会造成漏抄、误抄、估抄等数据不准确。抄表人员可能与用电户合伙作弊&#xff0c;给资产管理者带来损失。在很多智能仪表的应用中需要现场人…

麦克纳姆轮

一、B站: 一、运动原理 保留前进,平移和自转的车轮方向箭头,把反向变成红色 二、运动公式 如果已知需要的前后、左右、自转量。如何指示每个车轮旋转,用数学的方法表示反转,就是用负数,以平面直角坐标系为参照,向前是正,向后是负,向右是正,向左是负,自转…

云服务架构与华为云架构

目录 1.云服务架构是什么&#xff1f; 1.1 云服务模型 1.2 云部署模型 1.3 云服务架构的组件 1.4 云服务架构模式 1.5 关键设计考虑 1.6 优势 1.7 常见的云服务架构实践 2.华为云架构 2.1 华为云服务模型 2.2 华为云部署模型 2.3 华为云服务架构的核心组件 2.4 华…

【MySQL】视图、用户和权限管理

目录 视图创建视图数据修改影响删除视图视图优点 用户和权限管理查看当前的数据库拥有用户信息创建用户修改密码删除用户权限授权回收权限 视图 视图就是相当于创建一个表&#xff0c;将查询到的结果集给存储起来。像使用复杂的多表查询查询到的结果集就不可以对结果集操作。而…

Go语言中的深拷贝:概念、实现与局限

前不久&#xff0c;在“Gopher部落”知识星球[1]上回答了一个Gopher关于深拷贝(Deep Copy)的问题&#xff0c;让我感觉是时候探讨一下深拷贝技术了。 在日常开发工作中&#xff0c;深拷贝的使用频率相对较低&#xff0c;可能有80%的时间不需要使用深拷贝&#xff0c;只有在特定…

【PHP源码】匿名来信系统H5版本V1.0免费开源

你的匿名来信H5一封你的来信源码/表白祝福短信程序/往来信/传话短信源码支持邮件发信与手机短信发信“你的匿名来信”是最近某音上爆火的一个活动话题&#xff0c;可以通过H5网站&#xff0c;编辑自己想要对某人说的话或者祝福&#xff0c;网站会把您想说的发给您预留的号码&am…

免费语音转文字软件全览:开启高效记录新时代

在当今快节奏的信息时代&#xff0c;高效地处理和记录信息变得至关重要。语音转文字技术的出现&#xff0c;为我们带来了极大的便利&#xff0c;今天&#xff0c;就让我们一同探讨这些语音转文字免费的软件的使用方法。 1.365在线转文字 链接直达&#xff1a;https://www.pdf…

el-table添加fixed后错位问题

1 方案1 return {isShow:false, }mounted() {this.isShowtrue},watch: {$route(newRoute) {this.monitoredRoute newRoute; // 将新的路由信息保存到组件的monitoredRoute属性中// 执行其他操作或调用其他方法},//或$route(newRoute) {this.monitoredRoute newRoute; // 将新…

如何通过视频美颜SDK实现高效的直播美颜API开发?

很多小伙伴疑问短视频和直播平台中的主播美颜工具是如何开发的&#xff0c;今天我们就来探讨一下如何通过视频美颜SDK&#xff0c;高效实现直播美颜API开发&#xff0c;助力开发者快速打造出高质量的直播美颜功能。 一、视频美颜SDK的核心功能 要了解如何高效开发直播美颜API…

Golang | Leetcode Golang题解之第446题等差数列划分II-子序列

题目&#xff1a; 题解&#xff1a; func numberOfArithmeticSlices(nums []int) (ans int) {f : make([]map[int]int, len(nums))for i, x : range nums {f[i] map[int]int{}for j, y : range nums[:i] {d : x - ycnt : f[j][d]ans cntf[i][d] cnt 1}}return }

Linux操作系统如何定时关机?

在日常使用电脑的过程中&#xff0c;一般都会有软件升级、系统杀毒的工作&#xff0c;可能还需要电脑的定时关机、提醒事项功能。对于Linux操作系统&#xff0c;可以使用几种任务计划工具来指定相应的任务计划&#xff0c;使这些需求自动在后台运行。 一、at命令 at命令的作用…