spaCy - 架构



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

数据结构

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

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

  • Vocab - spaCy 另一个重要的核心数据结构对象是 Vocab。它拥有一个查找表集合,使文档之间可以共享常见信息。

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

对象及其作用

以下是 spaCy 中的对象及其作用和示例:

Span

它是Doc对象的切片,我们在上面讨论过。我们可以使用以下命令从切片创建 Span 对象:

doc[start : end]

示例

下面是一个 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

输出

is my first example.

Token

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

示例

下面是一个 token 的示例:

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

输出

example

Tokenizer

顾名思义,tokenizer 类将文本分割成单词、标点符号等。

示例

此示例将创建一个仅包含英语词汇表的空分词器:

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

输出

<spacy.tokenizer.Tokenizer at 0x26506efc480>

Language

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

它包含以下内容:

  • 共享词汇表

  • 语言数据

  • 从模型包加载的可选模型数据

  • 包含诸如标记器或解析器之类的组件的处理管道。

示例

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

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

输出

运行代码后,您将看到以下输出:

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