spaCy - 词汇单元类 (Container Lexeme Class)



本章详细解释了 spaCy 中的词汇单元类。

词汇单元类 (Lexeme Class)

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

属性

下表解释了它的参数:

名称 (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 它代表一个标量值,表示词汇单元的积极性或消极性。

方法

以下是词汇单元类中使用的方法:

序号 (Sr.No.) 方法和描述 (Methods & Description)
1

Lexeme._ _init_ _

构造 Lexeme 对象。

2

Lexeme.set_flag

更改布尔标志的值。

3

Lexeme.check_flag

检查布尔标志的值。

4

Lexeme.similarity

计算语义相似度估计。

Lexeme._ _init_ _

这是词汇单元类最常用的方法之一。顾名思义,它用于构造一个 **词汇单元 (Lexeme)** 对象。

参数

下表解释了它的参数:

名称 (NAME) 类型 (TYPE) 描述 (DESCRIPTION)
Vocab Vocab 此参数表示父词汇表。
Orth int 它是词汇单元的正字法 ID。

示例

下面给出了 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

输出

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

'Tutorialspoint.com'

Lexeme.set_flag

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

参数

下表解释了它的参数:

名称 (NAME) 类型 (TYPE) 描述 (DESCRIPTION)
flag_id Int 它表示要设置的标志的属性 ID。
value bool 它是标志的新值。

示例

下面给出了 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

输出

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

25

Lexeme.check_flag

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

参数

下表解释了它的参数:

名称 (NAME) 类型 (TYPE) 描述 (DESCRIPTION)
flag_id Int 它表示要检查的标志的属性 ID。

示例 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)

输出

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

True

示例 2

下面是 Lexeme.check_flag 方法的另一个示例:

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

输出

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

False

Lexeme.similarity

此方法用于计算语义相似度估计。默认情况下,它是向量上的余弦相似度。

参数

下表解释了它的参数:

名称 (NAME) 类型 (TYPE) 描述 (DESCRIPTION)
其他 (Other) - 这是将进行比较的对象。默认情况下,它将接受 Doc、Span、Token 和 Lexeme 对象。

示例

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

输出

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

True

属性

以下是词汇单元类的属性。

序号 (Sr.No.) 属性和描述 (Property & Description)
1

Lexeme.vector

它将返回一个一维数组,表示词汇单元的语义。

2

Lexeme.vector_norm

它表示词汇单元向量表示的 L2 范数。

Lexeme.vector

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

示例

下面给出了 Lexeme.vector 属性的一个示例:

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

输出

您将看到以下输出:

dtype('float32')

Lexeme.vector_norm

此词元属性表示词汇单元向量表示的 L2 范数。

示例

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

输出

您将看到以下输出:

True
广告