spaCy基于Python和Cython的高级自然语言处理库

spaCy: 工业强度的 NLP


spaCy 是一个基于 Python 和 Cython 的高级自然语言处理库。它基于最新研究成果构建,从一开始就以实际产品应用为设计目标。

spaCy 配备预训练流程,目前支持70 多种语言的标记化和训练。它拥有一流的速度和神经网络模型,可用于标记、解析、命名实体识别文本分类等,并支持使用 BERT 等预训练Transformer进行多任务学习,同时还拥有一个可用于生产的训练系统,以及便捷的模型打包、部署和工作流管理。spaCy 是一款商业开源软件,遵循MIT 许可证 发布。

💫 3.8 版本现已发布!

点击此处查看发布说明。

📖 文档

文档
⭐️ [spaCy 101] spaCy 新手?这里有你需要知道的一切!
📚 [使用指南] 如何使用 spaCy 及其功能。
🚀 [v3.0 新功能] 新功能、向后不兼容性和迁移指南。
🪐 [项目模板] 您可以克隆、修改和运行的端到端工作流。
🎛 [API 参考] spaCy API 的详细参考。
[GPU 处理] 使用与 CUDA 兼容的 GPU 处理来处理 spaCy。
📦 [模型] 下载 spaCy 的训练流程。
🦙 [大型语言模型] 将 LLM 集成到 spaCy 管道中。
🌌 [Universe] 来自 spaCy 生态系统的插件、扩展、演示和书籍。
⚙️ [spaCy VS Code 扩展] 用于处理 spaCy 配置文件的其他工具和功能。
👩‍🏫 [在线课程] 在这个免费的互动在线课程中学习 spaCy。
📰 [博客] 阅读有关 spaCy 和 Prodigy 的最新开发、发布、演讲以及来自 Explosion 的更多内容。
📺 [视频] 我们的 YouTube 频道提供视频教程、演讲等。
🔴 [直播] 与 Matt 一起参与 spaCy 的开发,每周直播讨论 NLP 话题。
🛠 [变更日志] 变更和版本历史记录。
💝 [贡献] 如何为 spaCy 项目和代码库做出贡献。
👕 [礼品] 使用独特的定制礼品支持我们和我们的工作!
定制解决方案 spaCy 核心开发团队提供定制的 NLP 咨询、实施和战略建议。精简、生产就绪、可预测且易于维护。请发送电子邮件给我们或花 5 分钟填写问卷,我们将与您联系!了解更多 →

功能

  • 支持 70 多种语言
  • 针对不同语言和任务的训练流水线
  • 使用预训练的 Transformer(例如 BERT)进行多任务学习
  • 支持预训练的词向量和嵌入向量
  • 领先的速度
  • 可用于生产的训练系统
  • 基于语言学的分词
  • 用于命名实体识别、词性标注、依存句法分析、句子分割、文本分类、词形还原、形态分析、实体链接等功能的组件
  • 可通过自定义组件和属性轻松扩展
  • 支持 PyTorch、TensorFlow 和其他框架中的自定义模型
  • 内置语法和命名实体识别 (NER) 的可视化工具
  • 轻松的模型打包、部署和工作流管理
  • 稳健可靠,经过严格评估准确性

📖 更多详情,请参阅事实、数据和基准

⏳ 安装 spaCy

有关详细的安装说明,请参阅文档

  • 操作系统:macOS / OS X · Linux · Windows(Cygwin、MinGW、Visual Studio)
  • Python 版本:Python >=3.7,<3.13(仅限 64 位)
  • 软件包管理器pip · conda(通过 conda-forge

pip

使用 pip,spaCy 版本以源码包和二进制 wheel 的形式提供。在安装 spaCy 及其依赖项之前,请确保您的 pipsetuptoolswheel 是最新版本。

bash 复制代码
pip install -U pip setuptools wheel
pip install spacy

要安装用于词形还原和规范化的其他数据表,您可以单独运行 pip install spacy[lookups] 或安装spacy-lookups-data。lookups 包用于创建包含词形还原数据的空白模型,以及在尚未预训练模型且未使用第三方库的语言中进行词形还原。

使用 pip 时,通常建议在虚拟环境中安装软件包,以避免修改系统状态:

bash 复制代码
python -m venv .env
source .env/bin/activate
pip install -U pip setuptools wheel
pip install spacy

conda

您也可以通过 conda-forge 频道从 conda 安装 spaCy。有关包含构建配方和配置的 feedstock,请查看此代码库

bash 复制代码
conda install -c conda-forge spacy

更新 spaCy

spaCy 的某些更新可能需要下载新的统计模型。如果您正在运行 spaCy v2.0 或更高版本,您可以使用 validate 命令检查您安装的模型是否兼容;如果不兼容,请打印更新方法的详细信息:

bash 复制代码
pip install -U spacy
python -m spacy validate

如果您已经训练了自己的模型,请记住,训练和运行时的输入必须匹配。更新 spaCy 后,我们建议您使用新版本重新训练您的模型

📖 有关从 spaCy 2.x 升级到 spaCy 3.x 的详细信息,请参阅迁移指南

📦 下载模型包

spaCy 的训练流程可以作为 Python 包 安装。这意味着
它们就像任何其他模块一样,是您应用程序的组件。模型
可以使用 spaCy 的 download
命令进行安装,也可以通过将 pip 指向路径或 URL 手动安装。

文档
[可用流程] 详细的流程描述、准确率数据和基准测试。
[模型文档] 详细的使用和安装说明。
[训练] 如何基于您的数据训练您自己的流程。

[可用管道]:https://spacy.io/models
[模型文档]:https://spacy.io/usage/models
[训练]:https://spacy.io/usage/training

bash 复制代码
# Download best-matching version of specific model for your spaCy installation
python -m spacy download en_core_web_sm

# pip install .tar.gz archive or .whl from path or URL
pip install /Users/you/en_core_web_sm-3.0.0.tar.gz
pip install /Users/you/en_core_web_sm-3.0.0-py3-none-any.whl
pip install https://github.com/explosion/spacy-models/releases/download/en_core_web_sm-3.0.0/en_core_web_sm-3.0.0.tar.gz

加载和使用模型

要加载模型,请使用 spacy.load()并传入模型名称或模型数据目录路径。

python 复制代码
import spacy
nlp = spacy.load("en_core_web_sm")
doc = nlp("This is a sentence.")

您也可以直接通过模型全名 import 一个模型,然后调用其load() 方法(无需参数)。

python 复制代码
import spacy
import en_core_web_sm

nlp = en_core_web_sm.load()
doc = nlp("This is a sentence.")

📖 更多信息和示例,请查看模型文档

⚒ 从源代码编译

安装 spaCy 的另一种方法是克隆其GitHub 仓库 并从源代码构建。如果您想更改代码库,这是常用的方法。您需要确保您的开发环境包含一个 Python 发行版,其中包含头文件、编译器、pipvirtualenvgit。编译器部分是最棘手的。如何执行取决于您的系统。

平台
Ubuntu 通过 apt-get 安装系统级依赖项:sudo apt-get install build-essential python-dev git
Mac 安装最新版本的 XCode,包括所谓的“命令行工具”。macOS 和 OS X 预装了 Python 和 git。
Windows 安装与编译 Python 解释器时使用的版本匹配的 Visual C++ 构建工具Visual Studio Express

有关更多详细信息和说明,请参阅从源代码编译 spaCy快速入门小部件 的文档,以获取适合您的平台和Python 版本的正确命令。

bash 复制代码
git clone https://github.com/explosion/spaCy
cd spaCy

python -m venv .env
source .env/bin/activate

# make sure you are using the latest pip
python -m pip install -U pip setuptools wheel

pip install -r requirements.txt
pip install --no-build-isolation --editable .

要安装附加组件:

bash 复制代码
pip install --no-build-isolation --editable .[lookups,cuda102]

🚦 运行测试

spaCy 附带一个全面的测试套件。为了运行这些测试,你通常需要克隆代码库并从源代码构建 spaCy。这还会安装所需的开发依赖项和测试实用程序,这些依赖项和实用程序定义在requirements.txt中。

或者,你可以在已安装的spacy 包中运行 pytest 来测试。别忘了通过 spaCy 的
requirements.txt 安装测试实用程序:

bash 复制代码
pip install -r requirements.txt
python -m pytest --pyargs spacy

关于项目

spaCy 是一个基于 Python 和 Cython 的高级自然语言处理库。目前支持 70 多种语言的标记化和训练,它拥有用于标记、解析、命名实体识别、文本分类等任务的先进速度和神经网络模型。
MIT
Python
32,634
4596
567
2014-07-03
2025-05-28

增长趋势 - stars