spaCy 是一个用 Python 和 Cython 编写的高级自然语言处理库。它基于最新的研究成果构建,并且从设计之初就旨在用于真实产品中。
spaCy 提供预训练管道,目前支持 70 多种语言的分词和训练。它具有业界领先的速度,以及用于词性标注、句法分析、命名实体识别、文本分类等任务的神经网络模型;支持使用 BERT 等预训练Transformer进行多任务学习;同时提供生产就绪的训练系统、便捷的模型打包、部署和工作流管理。spaCy 是商业开源软件,基于 MIT 许可证发布。
💫 版本 3.7 现已发布!
点击此处查看发布说明。
| 文档 | |
|---|---|
| ⭐️ spaCy 101 | 初次接触 spaCy?这是你需要了解的一切! |
| 📚 使用指南 | 如何使用 spaCy 及其功能。 |
| 🚀 [v3.0 新特性] | 新功能、向后不兼容的变更和迁移指南。 |
| 🪐 项目模板 | 可供克隆、修改和运行的端到端工作流。 |
| 🎛 API 参考 | spaCy API 的详细参考文档。 |
| ⏩ GPU 处理 | 在支持 CUDA 的 GPU 上使用 spaCy 进行处理。 |
| 📦 模型 | 下载 spaCy 的预训练管道。 |
| 🦙 大语言模型 | 将 LLM 集成到 spaCy 管道中。 |
| 🌌 Universe | 来自 spaCy 生态系统的插件、扩展、演示和书籍。 |
| ⚙️ spaCy VS Code 扩展 | 用于处理 spaCy 配置文件的附加工具和功能。 |
| 👩🏫 在线课程 | 通过这个免费交互式在线课程学习 spaCy。 |
| 📰 博客 | 阅读来自 Explosion 的关于 spaCy 和 Prodigy 的最新开发进展、版本发布、演讲等信息。 |
| 📺 视频 | 我们的 YouTube 频道,包含视频教程、演讲等。 |
| 🛠 更新日志 | 变更记录和版本历史。 |
| 💝 贡献指南 | 如何为 spaCy 项目和代码库做出贡献。 |
| 👕 周边商品 | 通过独特、定制设计的周边商品支持我们和我们的工作! |
| 由 spaCy 核心开发团队提供的定制 NLP 咨询、实施和战略建议。流程化、生产就绪、可预测且可维护。给我们发邮件或填写我们的 5 分钟问卷,我们会与您联系! 了解更多 → |
spaCy 项目由 spaCy 团队维护。请注意,我们无法通过电子邮件提供个人支持。我们也相信,公开分享的帮助更有价值,能让更多人受益。
| 类型 | 平台 |
|---|---|
| 🚨 错误报告 | GitHub Issue Tracker |
| 🎁 功能请求与想法 | GitHub Discussions |
| 👩💻 使用问题 | GitHub Discussions · Stack Overflow |
| 🗯 一般讨论 | GitHub Discussions |
📖 更多详情,请参阅事实、数据和基准测试。
详细的安装说明,请参阅文档。
conda-forge)通过 pip,spaCy 发布版以源码包和二进制 wheel 包的形式提供。在安装 spaCy 及其依赖项之前,请确保你的 pip、setuptools 和 wheel 是最新版本。
pip install -U pip setuptools wheel
pip install spacy
要安装用于词形还原和规范化的附加数据表,可以运行 pip install spacy[lookups] 或单独安装 spacy-lookups-data。查找包对于创建带有词形还原数据的空白模型,以及为那些尚未提供预训练模型且不依赖第三方库的语言进行词形还原是必需的。
使用 pip 时,通常建议在虚拟环境中安装包,以避免修改系统状态:
python -m venv .env
source .env/bin/activate
pip install -U pip setuptools wheel
pip install spacy
你也可以通过 conda-forge 频道从 conda 安装 spaCy。有关包含构建配方和配置的 feedstock,请查看此仓库。
conda install -c conda-forge 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 来手动安装。
| 文档 | |
|---|---|
| 可用管道 | 详细的管道描述、准确率数据和基准测试。 |
| 模型文档 | 详细的使用和安装说明。 |
| 训练 | 如何在自己的数据上训练自己的管道。 |
# 下载与你的 spaCy 安装最匹配的特定模型版本
python -m spacy download en_core_web_sm
# 从路径或 URL 安装 .tar.gz 归档文件或 .whl 文件
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、virtualenv 和 git。编译器部分是最棘手的,具体操作取决于你的系统。
| 平台 | |
|---|---|
| Ubuntu | 通过 apt-get 安装系统级依赖:sudo apt-get install build-essential python-dev git。 |
| Mac | 安装最新版本的 XCode,包括所谓的“命令行工具”。macOS 和 OS X 预装了 Python 和 git。 |
| Windows | 安装与编译你的 Python 解释器所用版本匹配的 Visual C++ Build Tools 或 Visual Studio Express。 |
更多详细信息和说明,请参阅关于从源码编译 spaCy 的文档,以及快速入门小工具以获取适合你平台和 Python 版本的正确命令。
git clone https://github.com/explosion/spaCy
cd spaCy
python -m venv .env
source .env/bin/activate
# 确保使用最新的 pip
python -m pip install -U pip setuptools wheel
pip install -r requirements.txt
pip install --no-build-isolation --editable .
要安装额外功能:
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