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 范数。 |