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