spaCy - 簡介



在本章中,我們將瞭解 spaCy 的功能、擴充套件和視覺化工具。此外,還提供了功能比較,幫助讀者分析 spaCy 提供的功能與自然語言工具包 (NLTK) 和 coreNLP 的對比。這裡,NLP 指的是自然語言處理。

什麼是 spaCy?

spaCy 由軟體開發人員Matthew HonnibalInes Montani 開發,是一個用於高階 NLP 的開源軟體庫。它使用PythonCython(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
廣告

© . All rights reserved.