跳转到主要内容

Python中的工业级自然语言处理(NLP)

项目描述

spaCy:工业级NLP

spaCy是一个用于Python和Cython的**高级自然语言处理**库。它基于最新的研究成果,从一开始就被设计用于实际产品中。

spaCy包含预训练管道,目前支持70多种语言的分词和训练。它具有最先进的速度和**神经网络模型**,用于词性标注、句法分析、**命名实体识别**、**文本分类**等,以及与预训练的**transformers**(如BERT)的多任务学习,同时还具备一个现成的**训练系统**,以及易于模型打包、部署和工作流程管理的功能。spaCy是商业开源软件,在MIT许可协议下发布。

💫 **版本3.7现已发布!** 查看发布说明。

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

📖 文档

文档
⭐️ **spaCy 101** spaCy新手?这里是你需要知道的一切!
📚 **使用指南** 如何使用spaCy及其功能。
🚀 **v3.0新功能** 新功能、向后不兼容性和迁移指南。
🪐 **项目模板** 你可以克隆、修改和运行的端到端工作流程。
🎛 **API参考** spaCy API的详细参考。
⏩ **GPU处理** 使用spaCy与CUDA兼容的GPU处理。
📦 **模型** 下载spaCy的训练管道。
🦙 **大型语言模型** 将LLMs集成到spaCy管道中。
🌌 **宇宙** 来自spaCy生态系统的插件、扩展、演示和书籍。
⚙️ **spaCy VS Code扩展** 用于处理spaCy配置文件的额外工具和功能。
👩‍🏫 **在线课程** 在这门免费且互动的在线课程中学习spaCy。
📰 **博客** 阅读来自Explosion的关于spaCy和Prodigy的最新开发、发布、演讲等内容。
📺 **视频** 我们的YouTube频道,包括视频教程、演讲等。
🛠 **变更日志** 更改和版本历史。
💝 **贡献** 如何为spaCy项目和代码库做出贡献。
👕 **周边产品** 通过独特的定制设计周边产品支持我们和我们的工作!
Tailored Solutions 由spaCy核心开发团队提供的定制NLP咨询、实施和战略建议。流程化、现成、可预测且易于维护。给我们发邮件或填写我们的5分钟问卷,我们将与您取得联系!了解更多 →

💬 哪里可以提问

spaCy项目由spaCy团队维护。请理解我们无法通过电子邮件提供个别支持。我们还认为,如果公开分享,帮助将更有价值,这样更多的人可以从中受益。

类型 平台
🚨 错误报告 GitHub问题跟踪器
🎁 功能请求和想法 GitHub讨论
👩‍💻 使用问题 GitHub讨论 · Stack Overflow
🗯 一般讨论 GitHub讨论

功能

  • 支持70多种语言
  • 针对不同语言和任务预训练的管道
  • 与预训练的BERT等Transformer进行多任务学习
  • 支持预训练的词向量和嵌入
  • 业界领先的速度
  • 现成的训练系统
  • 基于语言学的**标记化
  • 用于命名实体识别、词性标注、依存句法分析、句子切分、文本分类、词元还原、形态学分析、实体链接等组件
  • 易于使用**自定义组件**和属性进行扩展
  • 支持在PyTorch、TensorFlow和其他框架中的自定义模型
  • 语法和NER的内置**可视化工具**
  • 易于**模型打包**、部署和工作流程管理
  • 强大、严格评估的准确性

📖 有关详细信息,请参阅事实、数据和基准

⏳ 安装spaCy

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

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

pip

使用pip,spaCy发布版作为源代码包和二进制轮提供。在您安装spaCy及其依赖项之前,请确保您的pipsetuptoolswheel都是最新的。

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

您还可以通过conda通过conda-forge通道安装spaCy。有关包括构建配方和配置的食谱包,请参阅此存储库

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 来手动安装模型。

文档
可用管道 详细的管道描述、准确度数据和基准。
模型文档 详细的使用和安装说明。
训练 如何在您的数据上训练自己的管道。
# 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 发行版(包括头文件)、编译器、pipvirtualenvgit 的开发环境。编译器部分可能最复杂。如何操作取决于您的系统。

平台
Ubuntu 通过 apt-get 安装系统级依赖项: sudo apt-get install build-essential python-dev git
Mac 安装最新版本的 XCode,包括所谓的“命令行工具”。macOS 和 OS X 预装了 Python 和 git。
Windows 安装与编译您的 Python 解释器相同的版本的 Visual C++ Build ToolsVisual 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

项目详情


发布历史 发布通知 | RSS 源

下载文件

下载适合您平台的文件。如果您不确定选择哪个,请了解有关安装包的更多信息。

源分布

spacy-3.8.2.tar.gz (1.3 MB 查看哈希值)

上传

构建分布

spacy-3.8.2-cp312-cp312-win_amd64.whl (11.8 MB 查看哈希值)

上传 CPython 3.12 Windows x86-64

spacy-3.8.2-cp312-cp312-musllinux_1_2_x86_64.whl (32.1 MB 查看哈希值)

上传 CPython 3.12 musllinux: musl 1.2+ x86-64

spacy-3.8.2-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (31.8 MB 查看哈希值)

上传 CPython 3.12 manylinux: glibc 2.17+ x86-64

spacy-3.8.2-cp312-cp312-macosx_11_0_arm64.whl (6.0 MB 查看哈希值)

上传时间: CPython 3.12 macOS 11.0+ ARM64

spacy-3.8.2-cp312-cp312-macosx_10_9_x86_64.whl (6.3 MB 查看哈希值)

上传时间: CPython 3.12 macOS 10.9+ x86-64

spacy-3.8.2-cp311-cp311-win_amd64.whl (12.2 MB 查看哈希值)

上传时间: CPython 3.11 Windows x86-64

spacy-3.8.2-cp311-cp311-musllinux_1_2_x86_64.whl (31.1 MB 查看哈希值)

上传时间: CPython 3.11 musllinux: musl 1.2+ x86-64

spacy-3.8.2-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (30.6 MB 查看哈希值)

上传时间: CPython 3.11 manylinux: glibc 2.17+ x86-64

spacy-3.8.2-cp311-cp311-macosx_11_0_arm64.whl (6.3 MB 查看哈希值)

上传时间: CPython 3.11 macOS 11.0+ ARM64

spacy-3.8.2-cp311-cp311-macosx_10_9_x86_64.whl (6.6 MB 查看哈希值)

上传时间: CPython 3.11 macOS 10.9+ x86-64

spacy-3.8.2-cp310-cp310-win_amd64.whl (12.2 MB 查看哈希值)

上传时间: CPython 3.10 Windows x86-64

spacy-3.8.2-cp310-cp310-musllinux_1_2_x86_64.whl (29.9 MB 查看哈希值)

上传时间: CPython 3.10 musllinux: musl 1.2+ x86-64

spacy-3.8.2-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (29.1 MB 查看哈希值)

上传时间: CPython 3.10 manylinux: glibc 2.17+ x86-64

spacy-3.8.2-cp310-cp310-macosx_11_0_arm64.whl (6.3 MB 查看哈希值)

上传于 CPython 3.10 macOS 11.0+ ARM64

spacy-3.8.2-cp310-cp310-macosx_10_9_x86_64.whl (6.6 MB 查看哈希)

上传于 CPython 3.10 macOS 10.9+ x86-64

spacy-3.8.2-cp39-cp39-win_amd64.whl (12.3 MB 查看哈希)

上传于 CPython 3.9 Windows x86-64

spacy-3.8.2-cp39-cp39-musllinux_1_2_x86_64.whl (30.0 MB 查看哈希)

上传于 CPython 3.9 musllinux: musl 1.2+ x86-64

spacy-3.8.2-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (29.4 MB 查看哈希)

上传于 CPython 3.9 manylinux: glibc 2.17+ x86-64

spacy-3.8.2-cp39-cp39-macosx_11_0_arm64.whl (6.3 MB 查看哈希)

上传于 CPython 3.9 macOS 11.0+ ARM64

spacy-3.8.2-cp39-cp39-macosx_10_9_x86_64.whl (6.5 MB 查看哈希)

上传于 CPython 3.9 macOS 10.9+ x86-64

由以下支持

AWS AWS 云计算和安全赞助商 Datadog Datadog 监控 Fastly Fastly CDN Google Google 下载分析 Microsoft Microsoft PSF 赞助商 Pingdom Pingdom 监控 Sentry Sentry 错误日志 StatusPage StatusPage 状态页面