自訂 spaCy 模型

使用 spaCy 的自然語言處理

Azadeh Mobasher

Principal data scientist

為什麼要訓練 spaCy 模型?

  • 對一般 NLP 情境很有幫助
  • 但訓練時可能「沒有」看過「特定領域」的資料,例如:
    • Twitter 資料
    • 醫療資料

醫療領域 NER 範例

使用 spaCy 的自然語言處理

為什麼要訓練 spaCy 模型?

 

  • 在「特定領域」可得到更好的結果
  • 進行「領域專屬文字分類」不可或缺

 

開始訓練前,先問自己:

  • spaCy 模型在我們的資料上表現是否足夠?
  • 我們的領域是否包含 spaCy 模型中缺少的多個標籤?
使用 spaCy 的自然語言處理

模型在我們資料上的表現

  • spaCy 模型在我們的資料上表現是否足夠?
  • Oxford Street 沒被正確標為 GPE
import spacy
nlp = spacy.load("en_core_web_sm")

text = "The car was navigating to the Oxford Street."
doc = nlp(text)
print([(ent.text, ent.label_) for ent in doc.ents])
[('the Oxford Street', 'ORG')]
使用 spaCy 的自然語言處理

spaCy 模型的輸出標籤

  • 我們的領域是否包含 spaCy 模型中沒有的許多標籤?

一般 vs. 醫療領域的 NER 範例

使用 spaCy 的自然語言處理

spaCy 模型的輸出標籤

 

若需要自訂模型訓練,步驟如下:

  • 收集領域專屬資料
  • 標註資料
  • 決定更新現有模型或從零開始訓練
使用 spaCy 的自然語言處理

一起來練習吧!

使用 spaCy 的自然語言處理

Preparing Video For Download...