Spacy 简明教程

spaCy - Architecture

本章介绍了 spaCy 中的数据结构,并解释了对象及其作用。

Data Structures

spaCy 中的中心数据结构如下: −

  1. Doc − 它是 spaCy 架构中最重要的对象之一,拥有标记序列及其所有注释。

  2. Vocab − spaCy 中心数据结构的另一个重要对象是词库。它拥有一个查找表集合,使常见信息可在文档中获得。

spaCy 的数据结构有助于集中字符串、字向量和词汇属性,通过避免存储数据的多个副本从而节省内存。

Objects and their role

下文解释了 spaCy 中的对象及其作用以及一个示例 −

Span

它是 Doc 对象的切片,我们已在上面讨论过。借助以下命令,我们可以从该切片创建 Span 对象 −

doc[start : end]

Example

下面给出了 span 的示例 −

import spacy
import en_core_web_sm
nlp_example = en_core_web_sm.load()
my_doc = nlp_example("This is my first example.")
span = my_doc[1:6]
span

Output

is my first example.

Token

顾名思义,它表示单个标记,如单词、标点符号、空格、符号等。

Example

下面给出了标记的示例 −

import spacy
import en_core_web_sm
nlp_example = en_core_web_sm.load()
my_doc = nlp_example("This is my first example.")
token = my_doc[4]
token

Output

example

Tokenizer

顾名思义,分词器类将文本细分为单词、标点符号等。

Example

此示例将创建一个仅使用英语词表的空白分词器 −

from spacy.tokenizer import Tokenizer
from spacy.lang.en import English
nlp_lang = English()
blank_tokenizer = Tokenizer(nlp_lang.vocab)
blank_tokenizer

Output

<spacy.tokenizer.Tokenizer at 0x26506efc480>

Language

它是一个文本处理管道,我们每次仅需加载一个进程并将其实例传递给应用程序。当我们调用方法 spacy.load() 时,将创建一个此类。

它包含以下内容 −

  1. Shared vocabulary

  2. Language data

  3. 从模型包加载的可选模型数据

  4. 包含标注器或解析器等组件的处理管道。

Example

此语言示例将初始化英语语言对象

from spacy.vocab import Vocab
from spacy.language import Language
nlp_lang = Language(Vocab())
from spacy.lang.en import English
nlp_lang = English()
nlp_lang

Output

运行代码后,你将看到以下输出 −

<spacy.lang.en.English at 0x26503773cf8>