spaCy - 容器词素类

本章详细介绍了 spaCy 中的词素类。

词素类

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

属性

下表解释了其参数 −

NAME TYPE DESCRIPTION
vocab Vocab 表示词素的词汇表。
text unicode 表示逐字文本内容的Unicode属性。
orth int 表示逐字文本内容的ID的整数类型属性。
orth_ unicode 是Unicode的逐字文本内容,与Lexeme.text相同。此文本内容主要是为了与其他属性保持一致。
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 它表示一个标量值,表示情绪的积极性或消极性。 lexeme。

方法

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

Sr.No. 方法 &描述
1

Lexeme._ _init_ _

构造一个 Lexeme 对象。

2

Lexeme.set_flag

更改布尔标志的值。

3

Lexeme.check_flag

检查布尔标志的值。

4

Lexeme.similarity

计算语义相似度估计。

Lexeme._ _init_ _

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

参数

下表解释了其参数 −

NAME TYPE DESCRIPTION
Vocab Vocab 此参数表示父词汇表。
Orth int 它是词素的正向 id。

示例

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

import spacy
nlp_model = spacy.load("en_core_web_sm")
doc = nlp_model("该网站是 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

属性

以下是 Lexeme 类的属性。

Sr.No. 属性 &描述
1

Lexeme.vector

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

2

Lexeme.vector_norm

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

Lexeme.vector

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

示例

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

此 token 属性表示词素向量表示的 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