Python和Cython中的工业级自然语言处理(NLP)
项目描述
spaCy: 工业级NLP
spaCy是一个用于Python和Cython的高级自然语言处理库。它基于最新的研究,并且从一开始就被设计用于实际产品。
spaCy附带预训练管道和向量,目前支持60多种语言的分词。它具有最先进的速度,用于标记、解析、命名实体识别、文本分类等功能,并具有与预训练的BERT等转换器进行多任务学习的功能,以及一个生产就绪的训练系统、易于打包、部署和工作流程管理的模型。spaCy是商业开源软件,在MIT许可证下发布。
💫 版本 3.0 (nightly) 现已发布! 在此查看发布说明。
📖 文档
文档 | |
---|---|
spaCy 101 | 新接触 spaCy?这里是你需要了解的一切! |
使用指南 | 如何使用 spaCy 及其功能。 |
3.0 新功能 | 新功能、向后不兼容性和迁移指南。 |
项目模板 | 可克隆、修改和运行的端到端工作流程。 |
API 参考 | spaCy API 的详细参考。 |
模型 | 下载 spaCy 的统计语言模型。 |
宇宙 | 库、扩展、演示、书籍和课程。 |
变更日志 | 变更和版本历史。 |
贡献 | 如何为 spaCy 项目和代码库做出贡献。 |
💬 哪里可以提问
spaCy 项目由 @honnibal、@ines、@svlandeg 和 @adrianeboyd 维护。请理解我们无法通过电子邮件提供个人支持。我们也认为,如果公开分享帮助,那么它更有价值,这样更多的人可以从中受益。
类型 | 平台 |
---|---|
🚨 错误报告 | GitHub 问题跟踪器 |
🎁 功能请求和想法 | GitHub 讨论区 |
👩💻 使用问题 | GitHub 讨论区 · Stack Overflow |
🗯 一般讨论 | GitHub 讨论区 |
功能
- 支持 60+ 种语言
- 训练管道
- 与预训练的 transformers(如 BERT)的多任务学习
- 预训练的 词向量
- 最先进的速度
- 生产就绪的训练系统
- 基于语言学的 分词
- 用于命名实体识别、词性标注、依存句法分析、句子分割、文本分类、词形还原、形态学分析、实体链接等组件
- 易于通过 自定义组件 和属性进行扩展
- 支持 PyTorch、TensorFlow 和其他框架中的自定义模型
- 内置语法和 NER 的 可视化工具
- 易于 模型打包、部署和工作流程管理
- 稳健、经过严格评估的准确性
📖 更多详细信息,请参阅事实、数据和基准。
安装 spaCy
有关详细安装说明,请参阅文档。
- 操作系统:macOS / OS X · Linux · Windows(Cygwin、MinGW、Visual Studio)
- Python 版本:Python 3.6+(仅 64 位)
- 包管理器:pip · conda(通过
conda-forge
)
pip
使用 pip,spaCy 版本作为源包和二进制轮(自 v2.0.13
开始)可用。在安装 spaCy 及其依赖项之前,请确保您的 pip
、setuptools
和 wheel
已更新。
pip install -U pip setuptools wheel
pip install spacy
要为 spaCy v2.2+ 安装额外的数据表,用于词形还原和规范化,您可以运行 pip install spacy[lookups]
或单独安装 spacy-lookups-data
。此查找包用于为 v2.2+ 创建带有词形还原数据的空白模型,以及为 v2.3+ 提供规范化数据,并在没有预训练模型且不由第三方库提供支持的语种中进行词形还原。
当使用 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
命令安装模型,或者通过将pip指向路径或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 from path or URL
pip install /Users/you/en_core_web_sm-2.2.0.tar.gz
pip install https://github.com/explosion/spacy-models/releases/download/en_core_web_sm-2.2.0/en_core_web_sm-2.2.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、OS X和Windows上的注意事项以获取详细信息。
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 .
使用额外组件安装
pip install .[lookups,cuda102]
安装开发所需的所有依赖项
pip install -r requirements.txt
与通过pip的常规安装相比,requirements.txt还安装了开发者依赖项,如Cython。有关更多详细信息和说明,请参阅从源代码编译spaCy的文档和快速入门小部件以获取适合你的平台和Python版本的正确命令。
Ubuntu
通过apt-get
安装系统级依赖项
sudo apt-get install build-essential python-dev git
macOS / OS X
安装最新版本的XCode,包括所谓的“命令行工具”。macOS和OS X预先安装了Python和git。
Windows
安装与编译Python解释器所用的版本匹配的Visual C++ Build Tools或Visual Studio Express。
运行测试
spaCy附带了一个广泛的测试套件。为了运行测试,你通常会想要克隆存储库并从源代码构建spaCy。这将还安装所需的开发依赖项和由requirements.txt
定义的测试实用程序。
或者,你可以在安装的spacy
包内部运行pytest
测试。别忘了通过spaCy的requirements.txt
安装测试实用程序。
pip install -r requirements.txt
python -m pytest --pyargs spacy
有关更多详细信息和示例,请参阅文档。
项目详情
spacy-nightly-3.0.0rc5.tar.gz 的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | bfe85c9fe05ce17b5db34c8386576c3fa41d232931dc8b9b1802104951ad518e |
|
MD5 | 1bfb1e031655456789c7c227a0358b9c |
|
BLAKE2b-256 | cefed91eff412a6122ea73d218fb56272c826431dbf52ae8341d7d5660c99c24 |
哈希值 用于 spacy_nightly-3.0.0rc5-cp39-cp39-win_amd64.whl
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 92492d159ce11b5000475c0ea699e5297971e99f9723027b3e0bc12f446a8c37 |
|
MD5 | 61cb2ac9939fcb1a6af9b68d524dc2d7 |
|
BLAKE2b-256 | a123a52d35f35f7902f69120b208f4b07007e908e0c6ec22397961407255a204 |
哈希值 用于 spacy_nightly-3.0.0rc5-cp39-cp39-manylinux2014_x86_64.whl
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 63c3e5598e0c2a97bb4b47943a7ee4207302758bafc3e82e30d0714da5be73a6 |
|
MD5 | 1bf818d3f080aaa74527421ad1c59c6e |
|
BLAKE2b-256 | be47ea73b2ef714835b39e41cbe3f5394df39b19006a004034ac637192d07fbf |
哈希值 用于 spacy_nightly-3.0.0rc5-cp39-cp39-macosx_10_9_x86_64.whl
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 0683140372fc53c271e916cdc4b02ae049356ff65ac3a408be1772a563bb7fcd |
|
MD5 | 8598b91caf3ce2bb5ffb0845fa2ac2f2 |
|
BLAKE2b-256 | 5cf820cab5d2386f8863c0555731a43ed45a263c9f3f3eaa29b19c78cb210bee |
哈希值 用于 spacy_nightly-3.0.0rc5-cp38-cp38-win_amd64.whl
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 2fa3bcfd00ae9548de91b8032f32b86f0adc77f6a1cde49cec51431645e97e9f |
|
MD5 | 52538a4e4425c5e61820e2bc95223914 |
|
BLAKE2b-256 | f2fe69997a3896565ee81059ef2b386bd1b7181da3739858301514888025ad9b |
哈希值 用于 spacy_nightly-3.0.0rc5-cp38-cp38-manylinux2014_x86_64.whl
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 6d36bcdf61dace5577b42c139bc106fae113bc9980d1375fd52540bf097610b9 |
|
MD5 | ec8c714e24990bdc9f4843b8ee161cd6 |
|
BLAKE2b-256 | f73f90cac63ee8e42309aa2d14e28ae475f406d36165dd26c71fa37de8aca175 |
哈希值 用于 spacy_nightly-3.0.0rc5-cp38-cp38-macosx_10_9_x86_64.whl
算法 | 哈希摘要 | |
---|---|---|
SHA256 | bd4d0cf0ecbcdb8c74cb55d370f9b042f264d24c296fe33c30731249df049de5 |
|
MD5 | c739316b8bbf8ca7460c59593683a7c5 |
|
BLAKE2b-256 | 1ce7dcfb835709e214f6bb1255ee6a008f8badae666a6719a65e8088cdda990c |
哈希值 用于 spacy_nightly-3.0.0rc5-cp37-cp37m-win_amd64.whl
算法 | 哈希摘要 | |
---|---|---|
SHA256 | b857e0cd954bd8ff4206edfcffdabba7c81ac9baa9b326512f62fcf17cda446f |
|
MD5 | 10f0a980ad81003f801d8d41a488b0c4 |
|
BLAKE2b-256 | 3872ab1da290687ff4bc09752f2c0b4f705cbcf1a1ab0de81af5189b30f56df6 |
哈希值 用于 spacy_nightly-3.0.0rc5-cp37-cp37m-manylinux2014_x86_64.whl
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 4daddef56ba26935d6d9b0a1a4485ee9dacb6951d3bb5c03635f60fcf75f27e5 |
|
MD5 | f0c8f2f577bf597bcab6290f71254d7a |
|
BLAKE2b-256 | cbdb471e80de2478a37a33c6432b8ac441088f2183e2aaca2ed7058ed39491c8 |
哈希值 用于 spacy_nightly-3.0.0rc5-cp37-cp37m-macosx_10_9_x86_64.whl
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 39714d04f433556d6c76c4a8c0cf7dbca67348b0fd14bc2194aa8155a473542b |
|
MD5 | 06b829c0c6a11d439d8e27551e861f5c |
|
BLAKE2b-256 | bcd92c4c7935df04b8e3b201c4492ffd709316d2bae9292e62f23a7cb2898e67 |
哈希值 用于 spacy_nightly-3.0.0rc5-cp36-cp36m-win_amd64.whl
算法 | 哈希摘要 | |
---|---|---|
SHA256 | e3dd749f6a02dd2b9b15dbb92655a4373824d659e79d38424ce0569935dd78b7 |
|
MD5 | 9c6f641aeb9a066c27ccbde508df9037 |
|
BLAKE2b-256 | d7275b08f0abe7e86c03c59c0e59bfc36adf3005dfe78a492de9ce24c0d9f043 |
哈希值 用于 spacy_nightly-3.0.0rc5-cp36-cp36m-manylinux2014_x86_64.whl
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 94ef9ac6031c02565bcdd32ffe064bdc909e70dffc4bf634cee072eb65f22431 |
|
MD5 | 7d58dc1c8e4b7047211d198278c7c32d |
|
BLAKE2b-256 | 48d363f003904fcac813ae622a54298a0e6179263a6a349d5843f481e3cf1d9b |
哈希值 用于 spacy_nightly-3.0.0rc5-cp36-cp36m-macosx_10_9_x86_64.whl
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 3c95370e72bc6001561ce486aaf190620deea97a2e45fed986b11db4a65fb4ad |
|
MD5 | b7c66805966bd22307a9a92d6ad6dc17 |
|
BLAKE2b-256 | 8c0b200fff0ad21b6969e42db142837365e9001e2aada7bed8b53a015538e2b1 |