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
廣告