人工智慧與自然語言處理工具開發廠商Explosion,釋出了自然語言處理函式庫spaCy 2.2,新版本設計更精簡乾淨易於開發使用,並且為訓練、評估和序列化都加入新的模型套件與功能,改善除錯和錯誤處理,也大幅度地降低磁碟占用容量。

spaCy是一個Python的進階自然語言處理函式庫,不只採用最新的人工智慧研究,也講求可用來開發產品的實際可用性,spaCy內建預訓練的統計模型和單詞向量,以及支援超過50種語言的標記化(Tokenization),還含有可應用在標記、解析和命名實體(Entity)辨識的卷積神經網路,並可與深度學習技術整合。spaCy是一個商業開源軟體以MIT授權釋出。

在新版中,增加了新模型以及資料增強(Data Augmentation)系統。spaCy 2.2內建重新訓練的統計模型,不只修正錯誤,也改進對小寫字母的處理效能,官方提到,跟其他統計模型遇到的問題一樣,spaCy的模型也會對訓練資料以及使用者資料產生敏感差異,而目前他們遇到的情形是大小寫與形式的問題。

由於用於訓練的資料都是經過良好編輯的文字,因此在遇到大小寫與標點不一致的文字,則會出現正確率下降的問題,為此官方開發了新的資料增強系統,並在spaCy 2.2這個版本添加新的單詞替換系統,讓開發者可於訓練模型的過程,在每一遍訓練資料集的句子隨機子集抽換字詞,以解決資料所產生敏感差異。

官方也更新了CLI工具,以改進訓練和資料開發流程的各種可用性,特別是在文字分類。新版CLI除了改善錯誤訊息、更新文件,同時也讓評估指標更詳細,像是在預設情況下,評估現在按實體類型以及文字類別提供精確的統計。新加入的debug-data命令,可以用來驗證訓練和開發資料,以獲得有用的統計資料,或發現無效的實體注釋、循環相依項目和低資料的標籤,官方提到,與其開始訓練一段時間後才發現錯誤,不如先在訓練前檢查資料,可以更節省時間。

由於spaCy支援越來越多語言,因此磁碟占用的容量也越來越多,特別是加入可查詢的詞形還原表格,這個表格儲存成Python檔案,並在部分情況會變得非常龐大,現在官方把查詢表轉換成gzip JSON格式,並移到獨立的套件中,只在需要的時候安裝,根據系統的不同,spaCy安裝縮小5到10倍。

spaCy 2.2新的DocBin類別可以更加有效率的序列化Doc集合,更快地把一組Doc物件序列化或是反序列化,並自動處理許多細節,在開發者搭配多重處理函式庫Dask使用時會特別方便。spaCy以前用於字詞配對的的PhraseMatcher演算法,可以輕鬆擴展到大型查詢集,但這個演算法在較少的查詢時,表現反而不一定很快,而這造成不直覺的效能特徵,spaCy 2.2使用了新的trie演算法,這個演算法是基於標記而非字詞,因此配對速度很快,少量查詢速度快20倍,即使處理一萬個查詢速度也快上5倍。


Advertisement

更多 iThome相關內容