- spaCy 教程
- spaCy - 首页
- spaCy - 简介
- spaCy - 快速入门
- spaCy - 模型和语言
- spaCy - 架构
- spaCy - 命令行工具
- spaCy - 顶级函数
- spaCy - 可视化函数
- spaCy - 实用函数
- spaCy - 兼容性函数
- spaCy - 容器
- Doc 类上下文管理器和属性
- spaCy - 词元容器类 (Container Token Class)
- spaCy - 词元属性
- spaCy - Span 容器类 (Container Span Class)
- spaCy - Span 类属性
- spaCy - 词汇单元类 (Container Lexeme Class)
- 训练神经网络模型
- 更新神经网络模型
- spaCy 有用资源
- spaCy - 快速指南
- spaCy - 有用资源
- spaCy - 讨论
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