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

输出

示例

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>

语言

这是一个文本处理管道,我们需要每个进程加载一次并将实例传递给应用程序。当我们调用方法 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>