- spaCy 教程
- spaCy - 首頁
- spaCy - 簡介
- spaCy - 入門
- spaCy - 模型和語言
- spaCy - 架構
- spaCy - 命令列助手
- spaCy - 頂級函式
- spaCy - 視覺化函式
- spaCy - 實用函式
- spaCy - 相容性函式
- spaCy - 容器
- Doc 類上下文管理器和屬性
- spaCy - 容器 Token 類
- spaCy - Token 屬性
- spaCy - 容器 Span 類
- spaCy - Span 類屬性
- spaCy - 容器 Lexeme 類
- 訓練神經網路模型
- 更新神經網路模型
- spaCy 有用資源
- spaCy - 快速指南
- spaCy - 有用資源
- spaCy - 討論
spaCy - 視覺化函式
視覺化函式主要用於在瀏覽器或筆記本中視覺化依賴關係以及命名實體。從 spacy 2.0 版本開始,有兩個流行的視覺化工具,即displaCy 和displaCyENT。
它們都是 spacy 內建視覺化套件的一部分。透過使用此視覺化套件(即 displaCy),我們可以視覺化文字中的依賴關係解析器或命名實體。
displaCy()
在這裡,我們將學習有關 displayCy 依賴關係視覺化工具和 displayCy 實體視覺化工具的資訊。
視覺化依賴關係解析
displaCy 依賴關係視覺化工具 (dep) 將顯示 POS(詞性)標籤和句法依賴關係。
示例
下面給出了使用 displaCy() 依賴關係視覺化工具視覺化依賴關係解析的示例:
import spacy
from spacy import displacy
nlp = spacy.load("en_core_web_sm")
doc = nlp("This is Tutorialspoint.com.")
displacy.serve(doc, style="dep")
輸出
這將產生以下輸出:
我們還可以指定一個設定字典來自定義佈局。它將在引數option下(稍後我們將詳細討論)。
帶選項的示例如下所示:
import spacy
from spacy import displacy
nlp = spacy.load("en_core_web_sm")
doc = nlp("This is Tutorialspoint.com.")
options = {"compact": True, "bg": "#09a3d5",
"color": "red", "font": "Source Sans Pro"}
displacy.serve(doc, style="dep", options=options)
輸出
以下是輸出:
視覺化命名實體
displaCy 實體視覺化工具 (ent) 將突出顯示文字中的命名實體及其標籤。
示例
下面給出了使用 displaCy 實體視覺化工具視覺化命名實體的示例:
import spacy
from spacy import displacy
text = "When Sebastian Thrun started working on self-driving cars at Google in
2007, few people outside of the company took him seriously. But Google is
starting from behind. The company made a late push into hardware, and Apple's
Siri has clear leads in consumer adoption."
nlp = spacy.load("en_core_web_sm")
doc = nlp(text)
displacy.serve(doc, style="ent")
輸出
輸出如下所示:
我們還可以指定一個設定字典來自定義佈局。它將在引數option下(稍後我們將詳細討論)。
帶選項的示例如下所示:
import spacy
from spacy import displacy
text = "When Sebastian Thrun started working on self-driving cars at Google in
2007, few people outside of the company took him seriously. But Google is
starting from behind. The company made a late push into hardware, and Apple's
Siri has clear leads in consumer adoption."
nlp = spacy.load("en_core_web_sm")
doc = nlp(text)
colors = {"ORG": "linear-gradient(90deg, #aa9cfc, #fc9ce7)"}
options = {"ents": ["ORG"], "colors": colors}
displacy.serve(doc, style="ent", options=options)
輸出
輸出如下所示:
displaCy() 方法
從 2.0 版本開始,displaCy() 函式有兩個方法,即 serve 和 render。讓我們詳細討論一下。下面給出了一個表格,其中包含這些方法及其各自的描述。
| 序號 | 方法及描述 |
|---|---|
| 1 | displayCy.serve 它將提供依賴關係解析樹。 |
| 2 | displayCy.render 它將呈現依賴關係解析樹。 |
displaCy.serve
此方法將提供依賴關係解析樹/命名實體視覺化,以便在 Web 瀏覽器中檢視。它將執行一個簡單的 Web 瀏覽器。
引數
下表解釋了其引數:
| 名稱 | 型別 | 描述 | 預設值 |
|---|---|---|---|
| Docs | list, doc, Span | 它表示要視覺化的文件。 | |
| Style | Unicode | 我們有兩個視覺化樣式,即“dep”或“ent”。 | 預設值為“dep”。 |
| Page | bool | 它將渲染標記為完整的 HTML 頁面。 | 預設值為 true。 |
| minify | bool | 此引數將縮小 HTML 標記。 | 預設值為 false。 |
| options | dict | 它表示視覺化工具特定的選項。例如,顏色。 | {} |
| manual | bool | 此引數不會解析 Doc,而是期望一個 dict 或 dict 列表。 | 預設值為 false。 |
| Port | int | 它是提供視覺化的埠號。 | 5000 |
| Host | unicode | 它是提供視覺化的主機號。 | '0.0.0.0' |
示例
下面給出了displayCy.serve 方法的示例:
import spacy
from spacy import displacy
nlp = spacy.load("en_core_web_sm")
doc1 = nlp("This is Tutorialspoint.com")
displacy.serve(doc1, style="dep")
輸出
這將產生以下輸出:
displaCy.render
此 displaCy 方法將呈現依賴關係解析樹或命名實體視覺化。
引數
下表解釋了其引數:
| 名稱 | 型別 | 描述 | 預設值 |
|---|---|---|---|
| Docs | list, doc, Span | 它表示要視覺化的文件。 | |
| Style | Unicode | 我們有兩個視覺化樣式,即“dep”或“ent”。 | 預設值為“dep”。 |
| Page | Bool | 它將渲染標記為完整的 HTML 頁面。 | 預設值為 false。 |
| minify | Bool | 此引數將縮小 HTML 標記。 | 預設值為 false。 |
| options | Dict | 它表示視覺化工具特定的選項。例如,顏色。 | {} |
| manual | Bool | 此引數不會解析 Doc,而是期望一個 dict 或 dict 列表。 | 預設值為 false。 |
| jupyter | Bool | 要返回準備在筆記本中呈現的標記,此引數將顯式啟用或停用 Jupyter 模式。如果我們不提供此引數,它將自動檢測。 | None |
示例
下面給出了displaCy.render 方法的示例:
import spacy
from spacy import displacy
nlp = spacy.load("en_core_web_sm")
doc = nlp("This is Tutorialspoint.")
html = displacy.render(doc, style="dep")
輸出
視覺化工具選項
dispaCy() 函式的option引數允許我們為每個視覺化工具(依賴關係和命名實體視覺化工具)指定其他設定。
依賴關係視覺化工具選項
下表解釋了依賴關係視覺化工具選項:
| 名稱 | 型別 | 描述 | 預設值 |
|---|---|---|---|
| fine_grained | bool | 如果要使用細粒度的詞性標籤 (Token.tag_) 而不是粗粒度的標籤 (Token.pos_),則將此引數的值設定為 True。 | 預設值為 False。 |
| add_lemma | bool | 此引數在 2.2.4 版本中引入,它在標記文字下方單獨一行列印詞形。 | 預設值為 False。 |
| collapse_punct | bool | 它將標點符號附加到標記。 | 預設值為 True。 |
| collapse_phrases | bool | 此引數將名詞短語合併為一個標記。 | 預設值為 False。 |
| compact | bool | 如果將此引數設為 true,則將獲得使用佔用空間較小的方形箭頭表示的“緊湊模式”。 | 預設值為 False。 |
| color | unicode | 顧名思義,此引數用於文字顏色(十六進位制、RGB 或顏色名稱)。 | '#000000' |
| bg | unicode | 顧名思義,此引數用於背景顏色(十六進位制、RGB 或顏色名稱)。 | '#ffffff' |
| font | unicode | 它用於字型名稱。 | 預設值為“Arial”。 |
| offset_x | int | 此引數用於調整 SVG 左側的間距(以 px 為單位)。 | 此引數的預設值為 50。 |
| arrow_stroke | int | 此引數用於調整箭頭路徑的寬度(以 px 為單位)。 | 此引數的預設值為 2。 |
| arrow_width | int | 此引數用於調整箭頭頭的寬度(以 px 為單位)。 | 此引數的預設值為 10/8(緊湊)。 |
| arrow_spacing | int | 此引數用於調整箭頭之間的間距(以 px 為單位),以避免重疊。 | 此引數的預設值為 20/12(緊湊)。 |
| word_spacing | int | 此引數用於調整單詞和弧線之間的垂直間距(以 px 為單位)。 | 此引數的預設值為 45。 |
| distance | int | 此引數用於調整單詞之間的距離(以 px 為單位)。 | 此引數的預設值為 175/150(緊湊)。 |
命名實體視覺化工具選項
下表解釋了命名實體視覺化工具選項:
| 名稱 | 型別 | 描述 | 預設值 |
|---|---|---|---|
| ents | list | 它表示要突出顯示的實體型別。對於所有型別,請設定為 None。 | 預設值為 None。 |
| colors | Dict | 顧名思義,它用於顏色覆蓋。大寫的實體型別必須對映到顏色名稱。 | {} |