Python中的工业级自然语言处理(NLP)
项目描述
spaCy:工业级NLP
spaCy是一个用于Python和Cython的**高级自然语言处理**库。它基于最新的研究成果,从一开始就被设计用于实际产品中。
spaCy包含预训练管道,目前支持70多种语言的分词和训练。它具有最先进的速度和**神经网络模型**,用于词性标注、句法分析、**命名实体识别**、**文本分类**等,以及与预训练的**transformers**(如BERT)的多任务学习,同时还具备一个现成的**训练系统**,以及易于模型打包、部署和工作流程管理的功能。spaCy是商业开源软件,在MIT许可协议下发布。
💫 **版本3.7现已发布!** 查看发布说明。
📖 文档
文档 | |
---|---|
⭐️ **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项目和代码库做出贡献。 |
👕 **周边产品** | 通过独特的定制设计周边产品支持我们和我们的工作! |
由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及其依赖项之前,请确保您的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
您还可以通过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 发行版(包括头文件)、编译器、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
# 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
项目详情
下载文件
下载适合您平台的文件。如果您不确定选择哪个,请了解有关安装包的更多信息。
源分布
构建分布
spacy-3.8.2.tar.gz 的哈希
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 4b37ebd25ada4059b0dc9e0893e70dde5df83485329a068ef04580e70892a65d |
|
MD5 | 679c873be5dba1f23f857b04f98e69d5 |
|
BLAKE2b-256 | 0753536941af8fbb5cb10a778f0dbd2a17b0f13e7ebfc11e67b154be60508fdf |
spacy-3.8.2-cp312-cp312-win_amd64.whl 的哈希
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 04546c5f5ed607387d4e9ecf57614e90c5784866a10a3c6dbe5b06e9b18a2f29 |
|
MD5 | 4257fd8f4586f4ff26b4ed35f1b3823b |
|
BLAKE2b-256 | aaad833e22a92c221e0871509b7c1463efbc6f33a93a0c396744f217e5c0b265 |
spacy-3.8.2-cp312-cp312-musllinux_1_2_x86_64.whl 的哈希
算法 | 哈希摘要 | |
---|---|---|
SHA256 | be962a8188fb20d6c2065e1e865d1799ebbf544c1af67ab8c75cb279bf5448c7 |
|
MD5 | c708b6b0673277ccce050948f5a3282f |
|
BLAKE2b-256 | ceb42abb75e44b92950789b51493b605bf5822a57d6b21991d9ba4cbf48ba2d7 |
spacy-3.8.2-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl 的哈希
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 33e992a11de9b727c61288541945c0ffc37ed998aca76bfd557937c2c195d7d4 |
|
MD5 | e6730fff07b233c4938dc111a38c27ba |
|
BLAKE2b-256 | 98b812abefe9d8830797dcea4c822e503eede1128e44ef0fef6fdd80a8a1eb47 |
spacy-3.8.2-cp312-cp312-macosx_11_0_arm64.whl 的哈希
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 09faa873cf23d5136b1c1ce6378054a885f650fda96e1655a3ab49e2e7fdd15b |
|
MD5 | 16144a160f22fe7ae5439b18a57a83c1 |
|
BLAKE2b-256 | 19e6ae2c4b1b898dc48fd9c221a0d2458e4fc3d337f3ece183e4ebe945dd1c1f |
哈希值 for spacy-3.8.2-cp312-cp312-macosx_10_9_x86_64.whl
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 0ce56f3c46dd4cebb5aaa3a40966e813b7fc6a540d547788a7d00cca10cd60a9 |
|
MD5 | 884b409fab4bbb1030aa1b3b35716bfa |
|
BLAKE2b-256 | 366e3eb3d39029571ed096fcf95f097be496670dad2b457ae0e1bbc1ee0c49d0 |
哈希值 for spacy-3.8.2-cp311-cp311-musllinux_1_2_x86_64.whl
算法 | 哈希摘要 | |
---|---|---|
SHA256 | e3c3e67f786f1410d08420ffcaba0f80dc58387ab6172dcdac1a73353d3a85c7 |
|
MD5 | 9492a089dd4d6fe7ee5f4e37732fc6d1 |
|
BLAKE2b-256 | c342c5601c31cdf64e2c09d56210c4b97325fdc890acd17094444f082b042ddc |
哈希值 for spacy-3.8.2-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 05d8a4cbfdb90049053564790a0d12fa790c9471580cb6a1f8bdc2b6e74703dd |
|
MD5 | 96a38c131b72386bcd63f0544b240adf |
|
BLAKE2b-256 | ee4a9d5b4e982ace094a44bc53bde40af525d3ad1d61f2fc631690d7a011963b |
哈希值 for spacy-3.8.2-cp311-cp311-macosx_11_0_arm64.whl
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 455f845b88ed795d7e595070ee84b65b3ea382357811e09fc744789a20b7b5f7 |
|
MD5 | b26fc9fb4022df400b6a7d54227e150f |
|
BLAKE2b-256 | e418c72f0aed98b99219556c13b2a7b8f013a8e992699845076fd89a82a5808f |
哈希值 for spacy-3.8.2-cp311-cp311-macosx_10_9_x86_64.whl
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 7e5d48918028cff6d69d9915dad64f0e32ebd5f1e4f1fa81a2e17e56a6f61e05 |
|
MD5 | c3734d65312d5de6e72e3b4ddc1539d5 |
|
BLAKE2b-256 | d0bb132811a8d7fb814ce693bb6317650d2c25b57bb1789d151f330207c5213f |
哈希值 for spacy-3.8.2-cp310-cp310-musllinux_1_2_x86_64.whl
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 6a0d0d39baa1cb9f5bb82874cbe1067bf494f76277a383f1f7b29f7a855d41a9 |
|
MD5 | 16f9f8d973b98c42f9c897f4712f43b9 |
|
BLAKE2b-256 | 2bc4890f8ebf861878fdb8bf08998e0e30bf30c32e9daa4f3b7062f4117c9efc |
哈希值 for spacy-3.8.2-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 536a8ba17359540de502285934bf357805d978128d7bd5e84ba53d28b32a0ffb |
|
MD5 | ba8e8f13d12156e6e5138d9a4f93aeab |
|
BLAKE2b-256 | 8e13143fce10ae7a8c4d083f00d7a69b46057db47d252072359ecfc2c458f71b |
哈希值 for spacy-3.8.2-cp310-cp310-macosx_11_0_arm64.whl
算法 | 哈希摘要 | |
---|---|---|
SHA256 | d432e78fe2a7424aba9a741db07ce58487d3b74fae4e20a779142828e61bc402 |
|
MD5 | ae41e5656658be8ba83a22c7f624c78d |
|
BLAKE2b-256 | 7b1063bcc4a9d3d902a66d7d6bd410fc9596403780de769973ea450e62606c67 |
哈希值 for spacy-3.8.2-cp310-cp310-macosx_10_9_x86_64.whl
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 795e74493036dda0a576093b797a4fdc1aaa83d66f6c9af0e5b6b1c640dc2222 |
|
MD5 | 1f22da8b231c1a71d5c19348ed6c4e6c |
|
BLAKE2b-256 | edcb85fb9ce87e0d37a7f532dc60c1be98ce320326bdd4a0222756b4262d2bb0 |
哈希值 for spacy-3.8.2-cp39-cp39-musllinux_1_2_x86_64.whl
算法 | 哈希摘要 | |
---|---|---|
SHA256 | be3aa3e7d456627acbcb7f585156ee463c01d006a07aeb20b43a8543a02cd047 |
|
MD5 | a194ce1d52f30e161db9624e92b33fcc |
|
BLAKE2b-256 | 12a32f1cf9c87e5887cd5be9f21324abb3166a3a3ae5e3d7b15a38cb8950a148 |
散列值 用于 spacy-3.8.2-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
算法 | 哈希摘要 | |
---|---|---|
SHA256 | ca20e2d9b4aeaedd7068d6419762d66cfad82bc8b1e63e36714601686d67f163 |
|
MD5 | 7e21ad1880887f7d9a3acf93543daeda |
|
BLAKE2b-256 | 9c14ea91402b6e1942c72213c0024a71057e7044eae51ed3c0466c3412648e41 |