回顧上一個篇章「 【自然語言處理NLP】初探強大的工具庫spaCy, 讓機器讀懂我們的語言 」我們初步學習 spaCy 這套工具,在尾端進行NER時我們也發現到現有的NER模型並沒有辦法滿足我們的需求, 導致有一些實體未被識別出來, 因此這次的任務就是設法進行訓練, 讓我們想要被識別的實體可以被進行識別。 這個篇章主要在示範如何利用 spaCy 進行訓練,過程中也由於 🔥 ChatGP T的出現,讓我們可以藉由它來快速產生例句,順利進行訓練,但並非真正要準確做到滿分的NER,因此過程中將以「最簡短的例句」及「CPU」訓練方式完成。 安裝相關套件及下載模型 以下幾個步驟我們先將該準備的模型及語句準備好, 再進行調優與訓練。 # 安裝spacy % pip install spacy # 下載Transfromer技術的中文語言模型 !p ython - m spacy download zh_core_web_trf 載入模型並解析 import spacy # 載入模型 nlp_zh = spacy . load ( 'zh_core_web_trf' ) # 對中文語句進行解析 doc = nlp_zh ( '台灣是一個位於亞洲東部的島嶼國家。' ) NER實體識別 我們可以看到實體僅被識別出「台灣」、「亞洲」, 但我們更希望「東部」跟「國家」也可以被識別出來, 那麼可以怎麼做呢? from spacy import displacy # 台灣是一個位於亞洲東部的島嶼國家。 displacy . render ( doc , style = "ent" , jupyter = True ) 圖片來源 設計訓練資料 假設: 其中「亞洲東部」我們期望實體為「LOC」, 而「國家」為「ORG」。 小技巧 利用 🔥 ChatGPT 幫我們列出「東部國家」的一些例句, 如何給予提示(Prompt),就讓大家創意發揮囉,例如: 請幫我列出5句關於「亞洲東部國家的一些特色」。 將這些例句藉由「 spacynerannotate 」這套工具幫我快速人工標出實體並轉換成 spaCy 訓練NER的格式, 雖然有點不太好用, 但為了快速Demo我們就將就點使用吧,另