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 分钟填写问卷,我们将与您联系!了解更多 → |
📖 更多详情,请参阅事实、数据和基准。
有关详细的安装说明,请参阅文档。
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
。lookups 包用于创建包含词形还原数据的空白模型,以及在尚未预训练模型且未使用第三方库的语言中进行词形还原。
使用 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 手动安装。
文档 | |
---|---|
[可用流程] | 详细的流程描述、准确率数据和基准测试。 |
[模型文档] | 详细的使用和安装说明。 |
[训练] | 如何基于您的数据训练您自己的流程。 |
[可用管道]:https://spacy.io/models
[模型文档]:https://spacy.io/usage/models
[训练]:https://spacy.io/usage/training
# 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、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++ 构建工具 或 Visual Studio Express。 |
有关更多详细信息和说明,请参阅从源代码编译 spaCy 和快速入门小部件 的文档,以获取适合您的平台和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 .
要安装附加组件:
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