- 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 的功能、擴充套件和視覺化工具。此外,還提供了功能比較,幫助讀者分析 spaCy 提供的功能與自然語言工具包 (NLTK) 和 coreNLP 的對比。這裡,NLP 指的是自然語言處理。
什麼是 spaCy?
spaCy 由軟體開發人員Matthew Honnibal 和Ines Montani 開發,是一個用於高階 NLP 的開源軟體庫。它使用Python 和Cython(Python 的 C 擴充套件,主要旨在為 Python 語言程式提供類似 C 的效能)編寫。
spaCy 是一個相對較新的框架,但也是功能最強大和最先進的庫之一,用於實現 NLP。
特性
下面解釋了 spaCy 一些使其流行的功能 −
快速 − spaCy 特別設計為儘可能快。
準確性 − spaCy 對其標記依賴關係解析器的實現使其成為同類中最準確的框架之一(在最佳可用框架的 1% 以內)。
內建功能 − spaCy 內建的功能如下 −
索引保留分詞。
“Alpha 分詞”支援 50 多種語言。
詞性標註。
預訓練詞向量。
內建簡單美觀的命名實體和句法視覺化工具。
文字分類。
可擴充套件性 − 可以輕鬆地將 spaCy 與其他現有工具(如 TensorFlow、Gensim、scikit-Learn 等)一起使用。
深度學習整合 − 它具有 Thinc——一個專為 NLP 任務設計的深度學習框架。
擴充套件和視覺化工具
下面列出了一些 spaCy 附帶的易於使用的擴充套件和視覺化工具,它們是免費的開源庫 −
Thinc − 它是一個針對中央處理器 (CPU) 使用最佳化的機器學習 (ML) 庫。它也專為文字輸入和 NLP 任務的深度學習而設計。
sense2vec − 此庫用於計算詞語相似度。它基於 Word2vec。
displaCy − 它是一個開源的依賴關係解析樹視覺化工具。它使用 JavaScript、CSS(層疊樣式表)和 SVG(可縮放向量圖形)構建。
displaCy ENT − 它是 spaCy 附帶的內建命名實體視覺化工具。它使用 JavaScript 和 CSS 構建。它允許使用者在瀏覽器中檢查其模型的預測。
功能比較
下表顯示了 spaCy、NLTK 和 CoreNLP 提供的功能的比較 −
| 特性 | spaCy | NLTK | CoreNLP |
|---|---|---|---|
| Python API | 是 | 是 | 否 |
| 易於安裝 | 是 | 是 | 是 |
| 多語言支援 | 是 | 是 | 是 |
| 整合詞向量 | 是 | 否 | 否 |
| 分詞 | 是 | 是 | 是 |
| 詞性標註 | 是 | 是 | 是 |
| 句子分割 | 是 | 是 | 是 |
| 依賴關係解析 | 是 | 否 | 是 |
| 實體識別 | 是 | 是 | 是 |
| 實體連結 | 是 | 否 | 否 |
| 共指消解 | 否 | 否 | 是 |
基準測試
spaCy 擁有世界上最快的句法解析器,並且具有最高的準確性(在最佳可用解析器的 1% 以內)。
下表顯示了 spaCy 的基準測試 −
| 系統 | 年份 | 語言 | 準確率 |
|---|---|---|---|
| spaCy v2.x | 2017 | Python 和 Cython | 92.6 |
| spaCy v1.x | 2015 | Python 和 Cython | 91.8 |
| ClearNLP | 2015 | Java | 91.7 |
| CoreNLP | 2015 | Java | 89.6 |
| MATE | 2015 | Java | 92.5 |
| Turbo | 2015 | C++ | 92.4 |