Files
2026-07-13 10:29:15 +00:00

23 KiB
Raw Permalink Blame History

Note

本文档由 WeHub 基于上游 README 翻译整理,属于社区翻译,非官方中文文档。
English · 原始项目 · 上游 README
原作者、版权与许可证归属以原始项目及本仓库 LICENSE 文件为准。

spaCy:工业级 NLP

spaCy 是一个用于 Python 和 Cython 的**高级自然语言处理(Natural Language Processing**库。它基于最前沿的研究成果,从诞生之初就面向真实产品场景而设计。

spaCy 提供预训练流水线(pretrained pipelines,目前支持 70+ 种语言的词元化(tokenization)与训练。它在词性标注、句法分析、命名实体识别(named entity recognition文本分类(text classification等任务上具备顶尖速度与神经网络模型,支持基于 BERT 等预训练 Transformer 的多任务学习,还提供生产就绪的训练系统(training system,以及便捷的模型打包、部署与工作流管理。spaCy 是商业开源软件,采用 MIT 许可证(MIT license.

💫 3.8 版本现已发布! 在此查看发行说明。

tests Current Release Version pypi Version conda Version Python wheels Code style: black
PyPi downloads Conda downloads

📖 文档

文档
spaCy 101 初次接触 spaCy?这里有你需要了解的一切!
📚 Usage Guides 如何使用 spaCy 及其功能。
🚀 New in v3.0 新功能、向后不兼容变更与迁移指南。
🪐 Project Templates 可克隆、修改并运行的端到端工作流。
🎛 API Reference spaCy API 的详细参考文档。
GPU Processing 在兼容 CUDA 的 GPU 上运行 spaCy。
📦 Models 下载 spaCy 的训练流水线。
🦙 Large Language Models 将大语言模型(LLM)集成到 spaCy 流水线中。
🌌 Universe spaCy 生态中的插件、扩展、演示与书籍。
⚙️ spaCy VS Code Extension 用于处理 spaCy 配置文件的额外工具与功能。
👩‍🏫 Online Course 在这门免费互动在线课程中学习 spaCy。
📰 Blog 阅读 Explosion 关于 spaCy 与 Prodigy 的最新开发动态、版本发布、演讲等内容。
📺 Videos 我们的 YouTube 频道,提供视频教程、演讲等内容。
🔴 Live Stream 与 Matt 一起直播开发 spaCy,畅聊 NLP。
🛠 Changelog 变更与版本历史。
💝 Contribute 如何为 spaCy 项目与代码库做贡献。
👕 Swag 购买独特定制周边,支持我们及我们的工作!
定制解决方案 由 spaCy 核心开发团队提供的定制 NLP 咨询、实施与战略建议。精简、生产就绪、可预测且易于维护。给我们发邮件或填写 5 分钟问卷,我们会尽快与您联系!了解更多 →

💬 在哪里提问

spaCy 项目由 spaCy 团队. 维护。请注意,我们无法通过电子邮件提供一对一支持。 我们也认为,公开分享的帮助更有价值,这样更多人可以从中受益。

类型 平台
🚨 缺陷报告 GitHub Issue Tracker
🎁 功能请求与想法 GitHub Discussions · Live Stream
👩‍💻 使用问题 GitHub Discussions · Stack Overflow
🗯 一般讨论 GitHub Discussions · Live Stream

特性

  • 支持 70+ 种语言
  • 适用于不同语言和任务的 训练流水线(pipeline
  • 多任务学习,使用 BERT 等预训练 transformer
  • 支持预训练 词向量(word vectors 和嵌入(embeddings
  • 业界领先的运行速度
  • 可用于生产的 训练系统
  • 基于语言学动机的 分词(tokenization
  • 命名 实体识别(NER、词性标注、依存句法分析、句子分割、文本分类、词形还原、形态学分析、实体链接等组件
  • 可通过 自定义组件 和属性轻松扩展
  • 支持在 PyTorchTensorFlow 及其他框架中使用自定义模型
  • 内置句法和 NER 的 可视化工具(visualizer
  • 便捷的 模型打包、部署与工作流管理
  • 稳健、经过严格评估的准确度

📖 更多详情请参阅 事实、数据与基准测试.

安装 spaCy

详细安装说明请参阅 文档.

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

pip

使用 pip 时,spaCy 发布包提供源码包和二进制 wheel 包。 在安装 spaCy 及其依赖之前,请确保你的 pipsetuptoolswheel 已是最新版本。

pip install -U pip setuptools wheel
pip install spacy

要安装用于词形还原和规范化的额外数据表,可以 运行 pip install spacy[lookups],或单独安装 spacy-lookups-data。 lookups 包用于创建带有词形还原数据的空白模型,以及在尚未提供预训练模型、且不依赖第三方库的语言中进行词形还原。

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

python -m venv .env
source .env/bin/activate
pip install -U pip setuptools wheel
pip install spacy

conda

你也可以通过 conda-forge 频道从 conda 安装 spaCy。有关包含构建配方和配置的 feedstock,请参阅 此仓库.

conda install -c conda-forge spacy

更新 spaCy

spaCy 的某些更新可能需要下载新的统计模型。如果你运行的是 spaCy v2.0 或更高版本,可以使用 validate 命令检查已安装模型是否兼容;若不兼容,会输出如何更新它们的详细信息:

pip install -U spacy
python -m spacy validate

如果你训练了自己的模型,请注意训练时与运行时的输入必须一致。更新 spaCy 后,我们建议使用新版本 重新训练你的模型

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

📦 下载模型包

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

文档
[可用流水线] 详细的流水线说明、准确度数据与基准测试。
[模型文档] 详细的使用与安装说明。
[训练] 如何在自己的数据上训练自定义流水线。
# 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() ,并传入模型名称或模型数据目录的路径。

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

你也可以通过模型的完整名称直接 import,然后无参调用其 load() 方法。

import spacy
import en_core_web_sm

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

📖 更多信息和示例,请参阅 模型文档.

⚒ 从源码编译

安装 spaCy 的另一种方式是克隆其 GitHub 仓库,并从源码构建。 如果你想修改代码库,这通常是常用的方式。 你需要确保已具备开发环境,包括带头文件的 Python 发行版、编译器、 pip, virtualenvgit 已安装。编译器部分最为棘手,具体做法取决于你的系统。

平台
Ubuntu 通过 apt-get 安装系统级依赖:sudo apt-get install build-essential python-dev git
Mac 安装最新版 XCode,,其中包含所谓的「Command Line Tools」。macOS 和 OS X 预装了 Python 和 git。
Windows 安装与你的 Python 解释器编译所用版本相匹配的 Visual C++ Build ToolsVisual Studio Express

如需更多详情和操作说明,请参阅 从源码编译 spaCy 以及 快速入门 widget,以获取适用于你的平台与 Python 版本的正确命令。

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 .

安装 extras 扩展:

pip install --no-build-isolation --editable .[lookups,cuda102]

🚦 运行测试

spaCy 附带完善的测试套件。要运行测试,你通常需要克隆仓库并从源码构建 spaCy。这也会安装 requirements.txt 中定义的必要开发依赖与测试工具。

或者,你也可以在已安装的 spacy 包内对测试运行 pytest。别忘了通过 spaCy 的 requirements.txt 安装测试工具:

pip install -r requirements.txt
python -m pytest --pyargs spacy