spaCy: 工业级别的自然语言处理
spaCy 是一个用于 Python 和 Cython 中高级自然语言处理的库。它基于最新的研究成果,从一开始就设计用于实际产品中。
spaCy 附带预训练的管道,目前支持70 多种语言的分词和训练。它具有最先进的速度和神经网络模型,可以进行标注、解析、命名实体识别、文本分类等多任务学习,还可以与像 BERT 这样的预训练转换器一起使用,并且提供了一个面向生产环境的训练系统,以及易于使用的模型打包、部署和工作流程管理。spaCy 是商用开源软件,根据 MIT 许可证发布。
💫 3.7 版现已推出! 在这里查看发布说明。
📖 文档
文档 | |
---|---|
⭐️ spaCy 101 | spaCy 入门?这里有你需要了解的一切! |
📚 [使用指南] | 如何使用 spaCy 及其功能。 |
🚀 [v3.0 中的新功能] | 新功能、向后不兼容性和迁移指南。 |
🪐 [项目模板] | 您可以克隆、修改和运行的端到端工作流程。 |
🎛 [API 参考] | spaCy API 的详细参考。 |
⏩ [GPU 处理] | 使用支持 CUDA 的 GPU 处理 spaCy。 |
📦 [模型] | 下载 spaCy 的训练管道。 |
🦙 [大型语言模型] | 将 LLM 集成到 spaCy 管道中。 |
🌌 [宇宙] | spaCy 生态系统中的插件、扩展、演示和书籍。 |
⚙️ [spaCy VS Code 扩展] | 用于处理 spaCy 配置文件的额外工具和功能。 |
👩🏫 [在线课程] | 在这个免费且互动的在线课程中学习 spaCy。 |
📰 [博客] | 阅读有关 Explosion 的当前 spaCy 和 Prodigy 开发、发布、演讲等内容。 |
📺 [视频] | 我们的 YouTube 频道提供视频教程、演讲等内容。 |
🛠 [更新日志] | 更改和版本历史记录。 |
💝 [贡献] | 如何为 spaCy 项目和代码库做贡献。 |
👕 [周边商品] | 通过独特的、定制设计的周边商品支持我们和我们的工作! |
spaCy 核心开发团队提供的定制 NLP 咨询、实施和战略建议。简化、面向生产、可预测和可维护。给我们发送电子邮件或填写我们的 5 分钟问卷,我们将与您联系!了解更多 → |
💬 在哪里提问
spaCy 项目由 spaCy 团队维护。 请理解我们无法通过电子邮件提供个人支持。我们还相信,公开共享帮助更有价值,这样更多的人可以受益。
类型 | 平台 |
---|---|
🚨 Bug 报告 | [GitHub 问题追踪] |
🎁 功能请求和想法 | [GitHub 讨论] |
👩💻 使用问题 | [GitHub 讨论] · Stack Overflow |
🗯 一般讨论 | [GitHub 讨论] |
功能
- 支持70 多种语言
- 不同语言和任务的训练管道
- 使用像 BERT 这样的预训练转换器进行多任务
使用 pip,spaCy 发布的版本可以作为源代码包和二进制轮文件使用。在安装 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
你也可以通过 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
命令安装,或者手动通过路径或 URL 指定给 pip。
# 下载与 spaCy 安装版本最佳匹配的特定模型
python -m spacy download en_core_web_sm
# pip 安装 .tar.gz 压缩包或 .whl 文件,通过路径或 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++ 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