本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
若要使用實體清單訓練模型,您提供兩項資訊:實體名稱清單及其對應的自訂實體類型,以及預期實體出現的未標註文件集合。
當您提供實體清單時,Amazon Comprehend 會使用智慧型演算法來偵測文件中實體的出現情況,做為訓練自訂實體識別器模型的基礎。
針對實體清單,請在實體清單中提供每個實體類型的至少 25 個實體比對。
自訂實體辨識的實體清單需要逗號分隔值 (CSV) 檔案,其中包含下列資料欄:
-
文字 — 輸入範例的文字,與隨附文件 corpus 完全相同。
-
Type - 客戶定義的實體類型。實體類型必須是大寫、底線分隔字串,例如 MANAGER 或 SENIOR_MANAGER。每個模型最多可訓練 25 種實體類型。
檔案documents.txt
包含四行:
Jo Brown is an engineer in the high tech industry. John Doe has been a engineer for 14 years. Emilio Johnson is a judge on the Washington Supreme Court. Our latest new employee, Jane Smith, has been a manager in the industry for 4 years.
具有實體清單的 CSV 檔案具有以下幾行:
Text, Type Jo Brown, ENGINEER John Doe, ENGINEER Jane Smith, MANAGER
注意
在實體清單中,Emilio Johnson 的項目不存在,因為它不包含 ENGINEER 或 MANAGER 實體。
建立資料檔案
請務必將實體清單放在正確設定的 CSV 檔案中,這樣您實體清單檔案發生問題的機率就很小。若要手動設定 CSV 檔案,下列項目必須是 true:
-
必須明確指定 UTF-8 編碼,即使它在大多數情況下用作預設值。
-
它必須包含資料欄名稱:
Type
和Text
。
我們強烈建議以程式設計方式產生 CSV 輸入檔案,以避免潛在問題。
下列範例使用 Python 為上述註釋產生 CSV:
import csv
with open("./entitylist/entitylist.csv", "w", encoding="utf-8") as csv_file:
csv_writer = csv.writer(csv_file)
csv_writer.writerow(["Text", "Type"])
csv_writer.writerow(["Jo Brown", " ENGINEER"])
csv_writer.writerow(["John Doe", " ENGINEER"])
csv_writer.writerow(["Jane Smith", " MANAGER"])
最佳實務
使用實體清單時,需要考慮一些事項,才能獲得最佳結果,包括:
-
清單中實體的順序不會影響模型訓練。
-
使用實體清單項目,這些項目涵蓋 80%-100% 的文件未註釋 corpus 中所提及的正面實體範例。
-
移除常用單字和片語,避免符合文件組合中非實體的實體範例。即使是少數不正確的相符項目,也會大幅影響結果模型的準確性。例如,實體清單中類似 的單字將導致大量的相符項目,這些相符項目不太可能是您正在尋找的實體,因此將顯著影響您的準確性。
-
輸入資料不應包含重複項目。存在重複的樣本可能會導致測試集污染,因此對訓練程序、模型指標和行為產生負面影響。
-
盡可能提供類似實際使用案例的文件。請勿使用玩具資料或生產系統的合成資料。輸入資料應盡可能多樣化,以避免過度擬合,並有助於基礎模型在實際範例上更全面化。
-
實體清單區分大小寫,目前不支援規則運算式。不過,經過訓練的模型通常仍然可以辨識實體,即使實體與實體清單中提供的外殼不相符。
-
如果您有實體是另一個實體的子字串 (例如「史密斯」和「Jane Smith」),請在實體清單中提供兩者。
其他建議請參閱 改善自訂實體辨識器效能