Spacy 简明教程
spaCy - Introduction
在本章中,我们将了解与 spaCy 相关的功能、扩展和可视化工具。此外,还提供了功能比较,帮助读者分析 spaCy 相较于自然语言工具包 (NLTK) 和 coreNLP 所提供的功能。此处,NLP 表示自然语言处理。
What is spaCy?
spaCy 由软件开发人员 Matthew Honnibal 和 Ines Montani 开发,是一个用于高级 NLP 的开源软件库。它用 Python 和 Cython (Python 的 C 扩展,主要设计用于为 Python 语言程序提供类似 C 的性能)编写。
spaCy 是一个相对较新的框架,但它是最强大、最先进的库之一,用于实现 NLP。
Features
spaCy 的部分特性使其颇受欢迎,如下所述:
Fast ——spaCy 经过专门设计,尽可能快。
Accuracy ——spaCy 实现的标注依存关系分析器,使其成为同类中最精确的框架之一(达到最佳可用框架的 1% 以内)。
Batteries included ——spaCy 中包含的配套工具如下:
-
Index preserving tokenization.
-
“Alpha 分词”支持 50 多种语言。
-
Part-of-speech tagging.
-
Pre-trained word vectors.
-
内置简单漂亮的名实体和语法可视化器。
-
Text classification.
Extensile ——你可以轻松地将 spaCy 与其他现有工具一起使用,如 TensorFlow、Gensim、scikit-Learn 等。
Deep learning integration ——它具有 Thinc(一个深度学习框架),专为 NLP 任务而设计。
Extensions and visualisers
spaCy 随附的部分易用扩展和可视化工具是免费的开源库,如下所列:
Thinc ——它是针对中央处理器 (CPU) 使用进行优化的机器学习 (ML) 库。它还设计用于具有文本输入和 NLP 任务的深度学习。
sense2vec ——这个库用于计算单词相似度。它基于 Word2vec。
displaCy ——它是一个开源依存关系分析树可视化器。它用 JavaScript、CSS(层叠样式表)和 SVG(可缩放矢量图形)构建。
displaCy ENT ——它是 spaCy 附带的内置命名实体可视化器。它用 JavaScript 和 CSS 构建。它允许用户在浏览器中查看其模型的预测。
Feature Comparison
下表展示了 spaCy、NLTK 和 CoreNLP 所提供的功能比较:
Features |
spaCy |
NLTK |
CoreNLP |
Python API |
Yes |
Yes |
No |
Easy installation |
Yes |
Yes |
Yes |
Multi-language Support |
Yes |
Yes |
Yes |
Integrated word vectors |
Yes |
No |
No |
Tokenization |
Yes |
Yes |
Yes |
Part-of-speech tagging |
Yes |
Yes |
Yes |
Sentence segmentation |
Yes |
Yes |
Yes |
Dependency parsing |
Yes |
No |
Yes |
Entity Recognition |
Yes |
Yes |
Yes |
Entity linking |
Yes |
No |
No |
Coreference Resolution |
No |
No |
Yes |