Spacy 简明教程

spaCy - Container Lexeme Class

在本章中,spaCy 中的 Lexeme 类进行了详细说明。

Lexeme Class

Lexeme 类是词汇中的一个条目。它没有字符串上下文。与一个单词标记相反,它是一种单词类型。这就是它没有 POS(词性)标记、依存关系分析或词干的原因。

Attributes

下表解释了它的参数 −

NAME

TYPE

DESCRIPTION

vocab

Vocab

它表示词条的词汇。

text

unicode

表示逐字文本内容的 Unicode 属性。

orth

int

它是一个表示逐字文本内容 ID 的整型属性。

orth_

unicode

它与 Lexeme.text 相同的 Unicode 逐字文本内容。此文本内容主要用于与其他属性保持一致。

rank

int

它表示词条词法类型的顺序 ID,用于索引表。

flags

int

它表示词条二进制标记的容器。

norm

int

此属性表示词条的范数。

norm_

unicode

此属性表示词条的范数。

lower

int

如同该名称所暗示的那样,这是该单词的小写形式。

lower_

unicode

它也是该单词的小写形式。

shape

int

为了显示正字法特征,此属性用于转换单词的字符串。

shape_

unicode

为了显示正字法特征,此属性用于转换单词的字符串。

prefix

int

这是一个从单词开头开始的长度 N 子串的哈希值。默认值为 N=1。

prefix_

unicode

这是一个从单词开头开始的长度 N 子串。默认值为 N=1。

suffix

int

这是一个从单词结尾开始的长度 N 子串的哈希值。默认值为 N=3。

suffix_

unicode

这是一个从单词结尾开始的长度 N 子串。默认值为 N=3。

is_alpha

bool

该属性表示词素是否包含字母字符?它等效于 lexeme.text.isalpha()。

is_ascii

bool

该属性表示词素是否包含 ASCII 字符?它等效于 all(ord(c) < 128 for c in lexeme.text)。

is_digit

Bool

该属性表示词素是否包含数字?它等效于 lexeme.text.isdigit()。

is_lower

Bool

该属性表示词素是小写还是非小写?它等效于 lexeme.text.islower()。

is_upper

Bool

该属性表示词素是大写还是非大写?它等效于 lexeme.text.isupper()。

is_title

bool

该属性表示词素标题还是非标题?它等效于 lexeme.text.istitle()。

is_punct

bool

该属性表示词素是否为标点符号?

is_left_punct

bool

该属性表示词素是左标点符号(例如 '(')?

is_right_punct

bool

该属性表示词素是右标点符号(例如 ')')?

is_space

bool

该属性表示词素是否包含空白字符?它等效于 lexeme.text.isspace()。

is_bracket

bool

该属性表示词素是否为括号?

is_quote

bool

该属性表示词素是否为引号?

is_currency

bool

在 2.0.8 版本中引入,此属性表示词素是否为货币符号?

like_url

bool

此属性表示词素是否类似于 URL?

like_num

bool

此属性表示词素是否表示数字?

like_email

bool

此属性表示词素是否类似于电子邮件地址?

is_oov

bool

此属性表示词素是否具有词向量?

is_stop

bool

此属性表示词素是否属于“停用词表”?

Lang

Int

此属性表示父文档词汇的语言。

lang_

unicode

此属性表示父文档词汇的语言。

Prob

float

它是词素词型的平滑对数概率估计。

cluster

int

它表示布朗簇 ID。

Sentiment

float

它表示一个标量值,表示词素的正负性。

Methods

以下是 Lexeme 类中使用的方法 −

Sr.No.

Methods & Description

1

Lexeme._ init _ 构造 Lexeme 对象。

2

Lexeme.set_flag 更改布尔标记的值。

3

Lexeme.check_flag 检查布尔标记的值。

4

Lexeme.similarity 计算语义相似度估计。

Lexeme._ init _

这是 Lexeme 类最有用的方法之一。顾名思义,用于构造 Lexeme 对象。

Arguments

下表解释了它的参数 −

NAME

TYPE

DESCRIPTION

Vocab

Vocab

此参数表示父词表。

Orth

int

它是词素的 orth id。

Example

下面给出了 Lexeme._ init _ 方法的示例 −

import spacy
nlp_model = spacy.load("en_core_web_sm")
doc = nlp_model("The website is Tutorialspoint.com.")
lexeme = doc[3]
lexeme.text

Output

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

'Tutorialspoint.com'

Lexeme.set_flag

此方法用于更改布尔标记的值。

Arguments

下表解释了它的参数 −

NAME

TYPE

DESCRIPTION

flag_id

Int

它表示要设置的标志的属性 ID。

value

bool

它是标志的新值。

Example

以下提供 Lexeme.set_flag 方法的一个示例:

import spacy
nlp_model = spacy.load("en_core_web_sm")
New_FLAG = nlp_model.vocab.add_flag(lambda text: False)
nlp_model.vocab["Tutorialspoint.com"].set_flag(New_FLAG, True)
New_FLAG

Output

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

25

Lexeme.check_flag

此方法用于检查布尔标志的值。

Argument

下表解释了它的参数:

NAME

TYPE

DESCRIPTION

flag_id

Int

它表示要检查的标志的属性 ID。

Example 1

以下提供 Lexeme.check_flag 方法的一个示例:

import spacy
nlp_model = spacy.load("en_core_web_sm")
library = lambda text: text in ["Website", "Tutorialspoint.com"]
my_library = nlp_model.vocab.add_flag(library)
nlp_model.vocab["Tutorialspoint.com"].check_flag(my_library)

Output

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

True

Example 2

以下提供 Lexeme.check_flag 方法的另一示例:

nlp_model.vocab["Hello"].check_flag(my_library)

Output

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

False

Lexeme.similarity

此方法用于计算语义相似度估计值。默认情况下,对向量使用余弦定理。

Argument

下表解释了它的参数:

NAME

TYPE

DESCRIPTION

Other

-

它是将执行比较的对象。默认情况下,它将接受 Doc、Span、Token 和 Lexeme 对象。

Example

以下提供 Lexeme.similarity 方法的一个示例:

import spacy
nlp_model = spacy.load("en_core_web_sm")
apple = nlp.vocab["apple"]
orange = nlp.vocab["orange"]
apple_orange = apple.similarity(orange)
orange_apple = orange.similarity(apple)
apple_orange == orange_apple

Output

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

True

Properties

以下是 Lexeme 类的属性。

Sr.No.

Property & Description

1

Lexeme.vector 它将返回一个一维数组,表示词素的语义。

2

Lexeme.vector_norm 它表示词素的向量表示的 L2 范数。

Lexeme.vector

此 Lexeme 属性表示实值含义。它将返回一个一维数组,表示词素的语义。

Example

以下提供 Lexeme.vector 属性的一个示例:

import spacy
nlp_model = spacy.load("en_core_web_sm")
apple = nlp_model.vocab["apple"]
apple.vector.dtype

Output

您将看到以下输出 −

dtype('float32')

Lexeme.vector_norm

此 token 属性表示词素的向量表示的 L2 范数。

Example

以下提供 Lexeme.vector_norm 属性的一个示例:

import spacy
nlp_model = spacy.load("en_core_web_sm")
apple = nlp.vocab["apple"]
pasta = nlp.vocab["pasta"]
apple.vector_norm != pasta.vector_norm

Output

您将看到以下输出 −

True