共用方式為


快速入門:自訂具名實體辨識

本指南提供使用自訂命名實體識別(NER)搭配 Microsoft Foundry 或 REST API 的逐步指導說明。 NER 可讓您偵測非結構化文字中的實體並對其進行分類,例如人員、地點、組織和數字。 透過自訂 NER,您可以訓練模型來識別特定於您業務的實體,並根據需求的變化進行調整。

若要開始使用,會提供 範例貸款合約 作為資料集,以建置自訂 NER 模型並擷取下列重要實體:

  • 合約的日期
  • 借款人的姓名、地址、城市和州
  • 貸方的名稱、地址、城市和州
  • 貸款和利息金額

附註

  • 如果你已經在 Foundry 工具中使用了 Azure 語言或多服務資源——無論是單獨使用還是透過 Language Studio 使用——你都可以繼續在 Microsoft Foundry 入口網站中使用這些現有的語言資源。 欲了解更多資訊,請參閱 Foundry 入口網站中的「如何使用 Foundry 工具」。

先決條件

  • Azure 訂用帳戶。 如果您沒有帳戶,您可以 免費建立一個

  • 必要權限。 請確定建立帳戶和項目的人員已獲指派為訂用帳戶層級的 Azure AI 帳戶擁有者角色。 或者,在訂用帳戶範圍擁有 [參與者] 或 [認知服務參與者] 角色也符合這項需求。 如需詳細資訊,請參閱角色型訪問控制(RBAC)。

  • 一個帶有儲存帳號的語言資源。 在 選擇附加功能 頁面,選擇 自訂文字分類、自訂命名實體識別、自訂情感分析及健康自訂文本分析 ,將所需儲存帳號連結至此資源:

    Foundry 中選擇附加功能選項的截圖。

附註

  • 您需要在資源群組中指派擁有者角色,才能建立語言資源。
  • 如果您將連線現有的儲存體帳戶,則應該已為其指派擁有者角色。
  • 一旦連結到 Azure 語言資源,不要把儲存帳號移到其他資源群組或訂閱。
  • 在 Foundry 中創建的鑄造廠專案。 欲了解更多資訊, 請參閱「建立鑄造廠專案」。

  • 上傳至儲存容器的自訂 NER 資料集。 自訂具名實體辨識 (NER) 資料集是用來訓練自訂 NER 模型的標記文字文件集合。 您可以下載本快速入門的 範例資料集 。 來源語言為英文。

步驟 1:設定所需的角色、權限和設定

讓我們從配置您的資源開始。

啟用自訂具名實體辨識功能

請確定已在 Azure 入口網站中啟用自訂文字分類/自訂具名實體辨識功能。

  1. Azure 入口網站中導覽你的語言資源。
  2. 從左側功能表的 [資源管理] 區段下,選取 [功能]。
  3. 請確定已啟用 自訂文字分類/自訂具名實體辨識 功能。
  4. 如果您未指派您的儲存體帳戶,請選取並連線您的儲存體帳戶。
  5. 選取 ,然後套用

為您的語言資源新增必要角色

  1. Azure 入口網站的語言資源頁面,選擇左側窗格的存取控制(IAM)。
  2. 選擇 新增新增角色分配,並在你的語言資源中新增 認知服務語言擁有者 或認知 服務貢獻 者角色分配。
  3. 在 [存取權指派對象為] 內,選取 [使用者、群組或服務主體]
  4. 選取 [選取成員]
  5. 選取 您的使用者名稱。 您可以在 [選取] 欄位中搜尋使用者名稱。 對所有角色重複此步驟。
  6. 針對需要存取此資源的所有使用者帳戶重複這些步驟。

新增儲存體帳戶的必要角色

  1. 移至 Azure 入口網站 中的儲存體帳戶頁面。
  2. 在左窗格中選取 [存取控制 (IAM)]
  3. 選取 [新增]新增角色指派,然後選擇儲存體帳戶上的儲存體 Blob 資料參與者角色。
  4. [指派存取權] 中,選取 [受控識別]。
  5. 選取 [選取成員]
  6. 選取您的訂用帳戶,並 選取 [語言] 作為受控識別。 您可以在 選取 欄位中搜尋您的語言資源。

新增必要的使用者角色

重要事項

如果您略過此步驟,當您嘗試連線到自訂專案時,您會收到 403 錯誤。 即使您是儲存體帳戶的擁有者,您目前的使用者必須仍擁有此角色,才能存取儲存體帳戶 Blob 資料。

  1. 移至 Azure 入口網站 中的儲存體帳戶頁面。
  2. 在左窗格中選取 [存取控制 (IAM)]
  3. 選取 [新增]新增角色指派,然後選擇儲存體帳戶上的儲存體 Blob 資料參與者角色。
  4. 在 [存取權指派對象為] 內,選取 [使用者、群組或服務主體]
  5. 選取 [選取成員]
  6. 選取您的使用者。 您可以在 [選取] 欄位中搜尋使用者名稱。

重要事項

如果您有防火牆、虛擬網路或私人端點,請務必在 Azure 入口網站的 [網路] 索引標籤下選取受信任服務清單上的 [允許 Azure 服務] 存取此儲存體帳戶

允許 Foundry 啟用 Azure 服務的截圖。

步驟 2:將資料集上傳至儲存容器

接下來,讓我們新增一個容器,並將資料集檔案直接上傳到儲存容器的根目錄。 這些文件可用來訓練您的模型。

  1. 將容器新增至與您的語言資源相關聯的儲存體帳戶。 如需詳細資訊, 請參閱建立容器

  2. 從 GitHub 下載樣本資料集。 提供的範例資料集包含 20 個貸款合約:

    • 每個合約皆包含兩方:貸方和借方。
    • 您提取以下相關信息:雙方、協議日期、貸款金額和利率。
  3. 開啟 .zip 檔案,然後擷取包含文件的資料夾。

  4. 前往鑄造廠。

  5. 如果您尚未登入,入口網站會提示您使用您的 Azure 認證來執行此動作。

  6. 登入後,請進入您現有的 Foundry 專案,進行此快速入門。

  7. 從左側導覽功能表中選取 管理中心

  8. 管理中心 功能表的 Hub 區段中選取已連線的資源

  9. 接下來,選擇為您設定為連線資源的工作區 Blob 儲存體。

  10. 在工作空間的 Blob 儲存體中,選擇 View in Azure portal

  11. 在 Blob 儲存體的 [AzurePortal] 頁面上,從頂端功能表中選取 [上傳]。 接下來,選擇您之前下載的 .txt.json 文件。 最後,選取 [上傳] 按鈕,將檔案新增至您的容器。

    螢幕擷取畫面顯示將檔案上傳至儲存體帳戶的按鈕。

現在所需的 Azure 資源已在 Azure 入口網站中配置並配置好,讓我們利用這些資源在 Foundry 中建立一個微調的自訂命名實體識別(NER)模型。

步驟 3:連結你的語言資源

接著我們建立與你的語言資源的連結,讓 Foundry 能安全存取。 此連線提供安全的身分管理和身份驗證,以及對資料的受控和隔離存取。

  1. 返回 鑄造廠

  2. 存取您現有的 Foundry 專案,快速入門。

  3. 從左側導覽功能表中選取 管理中心

  4. 管理中心 功能表的 Hub 區段中選取已連線的資源

  5. 在主視窗中,選取 [+ 新增連線 ] 按鈕。

  6. 「新增外部資產連線」視窗選擇語言

  7. 選取 [ 新增連線],然後選取 [關閉]。

    Foundry 連線視窗的截圖。

步驟 4:微調您的自訂 NER 模型

現在,我們已準備好建立自訂 NER 微調模型。

  1. 管理中心 功能表的 [專案] 區段中,選取 [移至專案]。

  2. 概觀功能表中,選取微調。

  3. 從主視窗中,選取 [AI 服務微調] 索引標籤,然後選取 [+ 微調] 按鈕。

  4. [建立服務微調] 視窗中,選擇 [自訂具名實體辨識] 索引標籤,然後選取 [下一步]。

    Foundry 微調選擇圖塊的截圖。

  5. 建立服務微調工作 視窗中,完成欄位,如下所示:

    • 互聯服務。 你的語言資源名稱預設已經出現在這個欄位裡。 如果沒有,請從下拉式選單中新增它。

    • 名稱. 為您的微調任務專案給予名稱。

    • 語言。 英文設定為預設值,且已顯示在欄位中。

    • 描述。 您可以選擇性地提供說明,或將此欄位留空。

    • Blob 存放區容器。 從 步驟 2 中選取工作區 Blob 儲存體容器,然後選擇 [ 連線 ] 按鈕。

  6. 最後,選取 [建立] 按鈕。 建立作業可能需要幾分鐘的時間才能完成。

步驟 5:訓練您的模型

Foundry 的微調工作流程截圖。

  1. Getting Started (開始使用 ) 功能表中,選擇 Manage data (管理資料)。 在 [ 新增定型和測試的資料 ] 視窗中,您會看到先前上傳至 Azure Blob 儲存體容器的範例資料。
  2. 接下來,從 [開始使用] 功能表中,選取 [訓練模型]
  3. 選擇 [+ 訓練模型] 按鈕。 當 [訓練新模型] 視窗出現時,請輸入新模型的名稱,並保留預設值。 選取下一步按鈕。
  4. [ 定型新模型 ] 視窗中,保留預設值 [ 自動從定型資料分割測試集 ] 啟用,並將建議的百分比設定為定型資料的 80%,測試資料的建議百分比設定為 20%。
  5. 檢閱您的模型設定,然後 選取 建立 按鈕
  6. 定型模型之後,您可以從 [入門] 功能表中選取 [評估模型]。 您可以從 「評估您的模型」 視窗中選取您的模型,並在必要時進行改進。

步驟 6:部署您的模型

訓練模型後,您通常可檢閱其評估詳細資料。 在這個快速入門階段,你可以直接部署模型,並在 Azure 語言遊玩場中測試,或呼叫 預測 API。 不過,如果您願意,您可以花點時間從左側功能表中選取 [評估您的模型],並探索模型的深入遙測。 請完成以下步驟,在 Foundry 中部署您的模型。

  1. 從左側功能表中選取 [部署模型]

  2. 接下來,從 [部署您的模型] 視窗中選取 [➕部署訓練模型]

    Foundry 中部署你的模型視窗的截圖。

  3. 確定已選取 [建立新的部署] 按鈕。

  4. 完成 [部署已訓練模型] 視窗欄位:

    • 部署名稱。 為您的模型命名。
    • 指派模型。 從下拉式功能表中選取您的訓練模型。
    • 區域。 從下拉式功能表中選取區域。
  5. 最後,選取 [建立] 按鈕。 部署模型可能需要幾分鐘的時間。

  6. 成功部署之後,您可以在 [部署您的模型] 頁面上檢視模型的部署狀態。 顯示的到期日會指出已部署模型變得無法用於預測工作的日期。 此日期通常是部署訓練設定後的 18 個月。

    Foundry 中部署你的模型狀態視窗的截圖。

步驟七:嘗試 Azure 語言遊樂場

語言遊樂場提供沙箱,可在將微調模型部署至生產環境之前測試和設定,而不需要撰寫程式碼。

  1. 從頂端功能表列中,選取 [在 Playground 中試用]。
  2. 在 Azure 語言遊樂場視窗中,選擇 自訂命名實體識別 圖塊。
  3. [組態 ] 區段中,從下拉式功能表中選取您的 專案名稱部署名稱
  4. 輸入實體,然後選取 執行
  5. 您可以在 「詳細資料」 視窗中評估結果。

沒錯,恭喜!

在此快速入門中,您已建立微調的自訂 NER 模型、將其部署到 Foundry,並在 Azure Language 遊樂場測試您的模型。

清除資源

如果你不再需要你的專案,可以從 Foundry 刪除它。

  1. 前往 Foundry 首頁。 除非您已經完成此步驟且目前的會話仍然有效,否則請登入以開始驗證過程。
  2. 「繼續用 Foundry 建構」中選擇你想刪除的專案。
  3. 選取 [管理中心]
  4. 選取 [刪除專案]。

若要刪除中心及其所有專案:

  1. 導覽至「概觀」標籤中的「中樞」區段。

  2. 在右側,選取 [ 刪除中樞]。

  3. 鏈接會開啟 Azure 入口網站,讓您在那裡刪除集線器。

先決條件

在 Foundry Tools 資源與 Azure 儲存帳戶中建立新的 Azure 語言

在使用自訂命名實體識別(NER)之前,你需要建立一個語言資源,這會提供你建立專案並開始訓練模型所需的憑證。 您也需要 Azure 儲存體帳戶,您可以在其中上傳用於建置模型的資料集。

重要事項

為了快速開始,我們建議建立一個新的語言資源。 請依照本文提供的步驟,建立 Azure 語言資源,同時建立及/或連接儲存帳號。 同時創建兩者比稍後再做更容易。

如果您有想要使用的預先存在的資源,您必須將它連線到儲存體帳戶。 請參閱建立專案以取得資訊。

從 Azure 入口網站建立新的資源

  1. 登入 Azure 入口網站 ,建立新的 Foundry Tools Azure 語言資源。

  2. 在出現的視窗中,從自訂功能選取 [自訂文字分類和自訂具名實體辨識]。 選取畫面底部的 [繼續建立您的資源]

    螢幕擷取畫面顯示 Azure 入口網站中的自訂文字分類自訂具名實體辨識。

  3. 使用下列詳細資料建立語言資源。

    名稱 描述
    訂用帳戶 您的 Azure 訂用帳戶。
    資源群組 一個包含你資源的資源群組。 您可以使用現有群組或建立新的群組。
    區域 語言資源的區域。 例如,「美國西部2號公路」。
    名稱 您的資源名稱。
    定價層 語言資源的定價層。 您可使用免費 (F0) 層來試用服務。

    附註

    如果你收到訊息說「你的登入帳號不是所選儲存帳號資源群組的擁有者」,那麼你的帳號必須在資源群組中被指派擁有者角色,才能建立語言資源。 請連絡您的 Azure 訂閱擁有者以取得協助。

  4. 在 [自訂文字分類和自訂具名實體辨識] 區段中,選取現有的儲存體帳戶,或選取 [新的儲存體帳戶]。 這些數值是幫助你入門的,不一定是你想在生產環境中使用的 儲存帳號數 值。 為了避免建置專案延遲,請連接與語言資源相同區域的儲存帳號。

    儲存體帳戶值 建議值
    儲存體帳戶名稱 任何名稱
    記憶體帳戶類型 標準本地冗餘儲存(LRS)
  5. 請確定已核取負責任 AI 通知。 選取頁面底部的 [檢閱 + 建立] 按鈕,然後選取 [建立]

將範例資料上傳至 Blob 容器

建立 Azure 儲存帳號並連接到你的語言資源後,你需要將範例資料集的文件上傳到容器的根目錄。 這些文件可用來訓練您的模型。

  1. 從 GitHub 下載樣本資料集

  2. 開啟 .zip 檔案,然後擷取包含文件的資料夾。

  3. Azure 入口網站中,瀏覽至您建立的儲存體帳戶,然後加以選取。

  4. 在儲存體帳戶中,從左側功能表選取位於 [資料儲存體] 下方的 [容器]。 在出現的畫面上,選取 [+ 容器]。 為容器指定名稱 example-data,並保留預設的公用存取層級

    螢幕擷取畫面顯示儲存體帳戶的主要頁面。

  5. 容器建立完成後,選擇它。 然後選取 [上傳] 按鈕,以選取您稍早下載的 .txt.json 檔案。

    螢幕擷取畫面顯示將檔案上傳至儲存體帳戶的按鈕。

提供的範例資料集包含 20 個貸款合約。 每個合約皆包含兩方:貸方和借方。 您可以使用所提供的範例檔案來擷取雙方相關資訊、合約日期、貸款金額及利率。

取得您的資源金鑰和端點

  1. 前往您位於 Azure 入口網站的資源概觀頁面

  2. 在左側功能表中,選取 [金鑰和端點]。 端點和金鑰用於 API 請求。

    顯示 Azure 入口網站中金鑰和端點頁面的螢幕擷取畫面

建立自訂 NER 專案

設定好資源和儲存體帳戶之後,請建立新的自訂 NER 專案。 專案是一個工作區域,用於根據您的資料建置自訂 ML 模型。 你的專案會被你和其他有權限使用 Azure 語言資源的人存取。

使用您在上一個步驟中從樣本資料下載的標記檔案,並將其新增至下列要求的本文。

觸發匯入專案作業

使用下列 URL、標頭和 JSON 本文來提交 POST 要求,以匯入標籤檔案。 請確定您的標籤檔案遵循接受的格式

如果具有相同名稱的專案已經存在,則會取代該專案的資料。

{Endpoint}/language/authoring/analyze-text/projects/{projectName}/:import?api-version={API-VERSION}
預留位置 範例
{ENDPOINT} 用於驗證 API 要求的端點。 https://<your-custom-subdomain>.cognitiveservices.azure.com
{PROJECT-NAME} 您專案的名稱。 此值區分大小寫。 myProject
{API-VERSION} 您要呼叫的 API 版本。 此處參考的值適用於發行的最新版本。 欲了解更多資訊, 請參閱模型生命週期 2022-05-01

headers

使用下列標頭來驗證您的要求。

Key
Ocp-Apim-Subscription-Key 資源的金鑰。 用於驗證 API 要求。

body

在您的要求中使用下列 JSON。 以您自己的值取代預留位置值。

{
    "projectFileVersion": "{API-VERSION}",
    "stringIndexType": "Utf16CodeUnit",
    "metadata": {
        "projectName": "{PROJECT-NAME}",
        "projectKind": "CustomEntityRecognition",
        "description": "Trying out custom NER",
        "language": "{LANGUAGE-CODE}",
        "multilingual": true,
        "storageInputContainerName": "{CONTAINER-NAME}",
        "settings": {}
    },
    "assets": {
    "projectKind": "CustomEntityRecognition",
        "entities": [
            {
                "category": "Entity1"
            },
            {
                "category": "Entity2"
            }
        ],
        "documents": [
            {
                "location": "{DOCUMENT-NAME}",
                "language": "{LANGUAGE-CODE}",
                "dataset": "{DATASET}",
                "entities": [
                    {
                        "regionOffset": 0,
                        "regionLength": 500,
                        "labels": [
                            {
                                "category": "Entity1",
                                "offset": 25,
                                "length": 10
                            },
                            {
                                "category": "Entity2",
                                "offset": 120,
                                "length": 8
                            }
                        ]
                    }
                ]
            },
            {
                "location": "{DOCUMENT-NAME}",
                "language": "{LANGUAGE-CODE}",
                "dataset": "{DATASET}",
                "entities": [
                    {
                        "regionOffset": 0,
                        "regionLength": 100,
                        "labels": [
                            {
                                "category": "Entity2",
                                "offset": 20,
                                "length": 5
                            }
                        ]
                    }
                ]
            }
        ]
    }
}
Key 預留位置 範例
api-version {API-VERSION} 您要呼叫的 API 版本。 此處所使用的版本必須是 URL 中的相同 API 版本。 深入了解其他可用的 API 版本 2022-03-01-preview
projectName {PROJECT-NAME} 您專案的名稱。 此值區分大小寫。 myProject
projectKind CustomEntityRecognition 您的專案種類。 CustomEntityRecognition
language {LANGUAGE-CODE} 字串,指定專案中所用文件的語言代碼。 如果您的專案是多語言專案,請選擇大多數文件的 語言代碼 en-us
multilingual true 布林值,可讓您在資料集中具有多種語言的文件,而且當部署模型時,您可以使用任何支援的語言 (不一定包含在定型文件中) 查詢模型。 如需多語系支援的相關資訊,請參閱語言支援 true
storageInputContainerName {CONTAINER-NAME} 包含您上傳文件的 Azure 儲存體容器名稱。 myContainer
entities 陣列,包含您在專案中擁有並從文件中擷取的所有實體類型。
documents 陣列,其中包含專案中的所有文件,以及每個文件內標記的實體清單。 []
location {DOCUMENT-NAME} 文件在儲存體容器中的位置。 doc1.txt
dataset {DATASET} 此檔案在定型前分割時要移至的測試集。 如需詳細資訊, 請參閱如何定型模型。 此欄位的可能值為 TrainTest Train

傳送 API 請求後,您會收到回應 202 ,指出任務已正確提交。 在回應標頭中,擷取 operation-location 值。 以下是格式的範例:

{ENDPOINT}/language/authoring/analyze-text/projects/{PROJECT-NAME}/import/jobs/{JOB-ID}?api-version={API-VERSION}

{JOB-ID} 用來識別您的要求,因為此為非同步作業。 您可以使用此 URL 來取得匯入工作狀態。

此要求的可能錯誤案例:

  • 選取的資源沒有儲存體帳戶的適當權限
  • 指定的 storageInputContainerName 不存在。
  • 使用了無效的語言代碼,或語言代碼類型不是字串。
  • multilingual 值是字串,而不是布林值。

取得匯入作業狀態

使用下列 GET 要求來取得專案的匯入狀態。 以您自己的值取代預留位置值。

要求 URL

{ENDPOINT}/language/authoring/analyze-text/projects/{PROJECT-NAME}/import/jobs/{JOB-ID}?api-version={API-VERSION}
預留位置 範例
{ENDPOINT} 用於驗證 API 要求的端點。 https://<your-custom-subdomain>.cognitiveservices.azure.com
{PROJECT-NAME} 您專案的名稱。 此值區分大小寫。 myProject
{JOB-ID} 用來尋找模型定型狀態的識別碼。 此值是在上一個步驟中收到的 location 標頭值。 xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxxx
{API-VERSION} 您要呼叫的 API 版本。 所引用的值為最新版本。 欲了解更多資訊, 請參閱模型生命週期 2022-05-01

headers

使用下列標頭來驗證您的要求。

Key
Ocp-Apim-Subscription-Key 資源的金鑰。 用於驗證 API 要求。

定型模型

一般而言,建立專案之後,您就會開始為連線到專案的容器中具有的文件加入標記。 在本快速入門中,您匯入了範例標記的資料集,並使用範例 JSON 標籤檔案初始化您的專案。

開始定型作業

匯入專案之後,您可以開始訓練模型。

使用下列 URL、標頭和 JSON 本文來提交 POST 要求,以提交定型作業。 以您自己的值取代預留位置值。

{ENDPOINT}/language/authoring/analyze-text/projects/{PROJECT-NAME}/:train?api-version={API-VERSION}
預留位置 範例
{ENDPOINT} 用於驗證 API 要求的端點。 https://<your-custom-subdomain>.cognitiveservices.azure.com
{PROJECT-NAME} 您專案的名稱。 此值區分大小寫。 myProject
{API-VERSION} 您要呼叫的 API 版本。 所引用的值為最新版本。 欲了解更多資訊, 請參閱模型生命週期 2022-05-01

headers

使用下列標頭來驗證您的要求。

Key
Ocp-Apim-Subscription-Key 資源的金鑰。 用於驗證 API 要求。

請求主體

在您的要求本文中使用下列 JSON。 訓練完成之後,該模型會被指定為 {MODEL-NAME}。 只有成功的培訓工作才能產生模型。

{
    "modelLabel": "{MODEL-NAME}",
    "trainingConfigVersion": "{CONFIG-VERSION}",
    "evaluationOptions": {
        "kind": "percentage",
        "trainingSplitPercentage": 80,
        "testingSplitPercentage": 20
    }
}
Key 預留位置 範例
modelLabel {MODEL-NAME} 在成功訓練之後指派給模型的模型名稱。 myModel
trainingConfigVersion {CONFIG-VERSION} 這是用來訓練模型的 模型版本 2022-05-01
evaluationOptions 將您的資料分割到定型集和測試集的選項。 {}
種類 percentage 分割方法。 可能的值為 percentagemanual。 如需詳細資訊, 請參閱如何定型模型 percentage
trainingSplitPercentage 80 要包含在定型集中的標記資料百分比。 建議的值為 80 80
testingSplitPercentage 20 要包含在測試集中的標記資料百分比。 建議的值為 20 20

附註

只有在 trainingSplitPercentage 設定為 testingSplitPercentage 且這兩個百分比的總和應該等於 100 時,才需要 Kindpercentage

傳送 API 請求後,您會收到回應 202 ,指出任務已正確提交。 在回應標頭中,擷取 location 的值,格式如下:

{ENDPOINT}/language/authoring/analyze-text/projects/{PROJECT-NAME}/train/jobs/{JOB-ID}?api-version={API-VERSION}

{JOB-ID} 用來識別您的要求,因為此為非同步作業。 您可以使用此 URL 來取得定型狀態。

取得定型作業狀態

此範例資料集的定型可能需要 10 到 30 分鐘的時間。 您可以使用下列請求持續查詢訓練工作的狀態,直到成功完成為止。

使用下列 GET 要求來取得模型定型程序的狀態。 以您自己的值取代預留位置值。

要求 URL

{ENDPOINT}/language/authoring/analyze-text/projects/{PROJECT-NAME}/train/jobs/{JOB-ID}?api-version={API-VERSION}
預留位置 範例
{ENDPOINT} 用於驗證 API 要求的端點。 https://<your-custom-subdomain>.cognitiveservices.azure.com
{PROJECT-NAME} 您專案的名稱。 此值區分大小寫。 myProject
{JOB-ID} 用來尋找模型定型狀態的識別碼。 此值是在上一個步驟中收到的 location 標頭值。 xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxxx
{API-VERSION} 您要呼叫的 API 版本。 所引用的值為最新版本。 欲了解更多資訊, 請參閱模型生命週期 2022-05-01

headers

使用下列標頭來驗證您的要求。

Key
Ocp-Apim-Subscription-Key 資源的金鑰。 用於驗證 API 要求。

回應本文

一旦你發送請求,就會收到以下回覆。

{
  "result": {
    "modelLabel": "{MODEL-NAME}",
    "trainingConfigVersion": "{CONFIG-VERSION}",
    "estimatedEndDateTime": "2022-04-18T15:47:58.8190649Z",
    "trainingStatus": {
      "percentComplete": 3,
      "startDateTime": "2022-04-18T15:45:06.8190649Z",
      "status": "running"
    },
    "evaluationStatus": {
      "percentComplete": 0,
      "status": "notStarted"
    }
  },
  "jobId": "{JOB-ID}",
  "createdDateTime": "2022-04-18T15:44:44Z",
  "lastUpdatedDateTime": "2022-04-18T15:45:48Z",
  "expirationDateTime": "2022-04-25T15:44:44Z",
  "status": "running"
}

部署模型

一般來說,在定型模型之後,您可以檢閱其評估詳細資料,並視需要加以改善。 在本快速入門中,您只需部署模型,並使其可供您在 Language Studio 中試用,也可以呼叫 預測 API

開始部署作業

使用下列 URL、標頭和 JSON 本文來提交 PUT 要求,以提交部署作業。 以您自己的值取代預留位置值。

{Endpoint}/language/authoring/analyze-text/projects/{projectName}/deployments/{deploymentName}?api-version={API-VERSION}
預留位置 範例
{ENDPOINT} 用於驗證 API 要求的端點。 https://<your-custom-subdomain>.cognitiveservices.azure.com
{PROJECT-NAME} 您專案的名稱。 此值區分大小寫。 myProject
{DEPLOYMENT-NAME} 您部署的名稱。 此值區分大小寫。 staging
{API-VERSION} 您要呼叫的 API 版本。 所引用的值為最新版本。 欲了解更多資訊, 請參閱模型生命週期 2022-05-01

headers

使用下列標頭來驗證您的要求。

Key
Ocp-Apim-Subscription-Key 資源的金鑰。 用於驗證 API 要求。

請求主體

在要求的主體中使用下列 JSON。 使用您要指派給部署的模型名稱。

{
  "trainedModelLabel": "{MODEL-NAME}"
}
Key 預留位置 範例
trainedModelLabel {MODEL-NAME} 指派給部署的模型名稱。 您只能指派成功定型的模型。 此值區分大小寫。 myModel

傳送 API 請求後,您會收到回應 202 ,指出任務已正確提交。 在回應標頭中,擷取 operation-location 的值,格式如下:

{ENDPOINT}/language/authoring/analyze-text/projects/{PROJECT-NAME}/deployments/{DEPLOYMENT-NAME}/jobs/{JOB-ID}?api-version={API-VERSION}

{JOB-ID} 用來識別您的要求,因為此為非同步作業。 您可以使用此 URL 來取得部署狀態。

取得部署作業狀態

使用下列 GET 要求來查詢部署作業的狀態。 您可以使用您在上一個步驟中收到的 URL,或以您自己的值取代下列預留位置值。

{ENDPOINT}/language/authoring/analyze-text/projects/{PROJECT-NAME}/deployments/{DEPLOYMENT-NAME}/jobs/{JOB-ID}?api-version={API-VERSION}
預留位置 範例
{ENDPOINT} 用於驗證 API 要求的端點。 https://<your-custom-subdomain>.cognitiveservices.azure.com
{PROJECT-NAME} 您專案的名稱。 此值區分大小寫。 myProject
{DEPLOYMENT-NAME} 您部署的名稱。 此值區分大小寫。 staging
{JOB-ID} 用來尋找模型定型狀態的識別碼。 它就在你在上一步收到的 location 標題值中。 xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxxx
{API-VERSION} 您要呼叫的 API 版本。 所引用的值為最新版本。 欲了解更多資訊, 請參閱模型生命週期 2022-05-01

headers

使用下列標頭來驗證您的要求。

Key
Ocp-Apim-Subscription-Key 資源的金鑰。 用於驗證 API 要求。

回應本文

一旦你發送請求,就會收到以下回覆。 持續輪詢此端點,直到狀態參數變更為「成功」為止。 您應該會收到 200 代碼,指出要求是否成功。

{
    "jobId":"{JOB-ID}",
    "createdDateTime":"{CREATED-TIME}",
    "lastUpdatedDateTime":"{UPDATED-TIME}",
    "expirationDateTime":"{EXPIRATION-TIME}",
    "status":"running"
}

擷取自訂實體

部署模型之後,您可以透過預測 API 開始使用該模型來擷取實體。 在先前下載的範例資料集中,您可以找到一些可在此步驟中使用的測試文件。

提交自訂 NER 工作

使用此 POST 要求來啟動文字分類工作。

{ENDPOINT}/language/analyze-text/jobs?api-version={API-VERSION}
預留位置 範例
{ENDPOINT} 用於驗證 API 要求的端點。 https://<your-custom-subdomain>.cognitiveservices.azure.com
{API-VERSION} 您要呼叫的 API 版本。 所引用的值為最新版本。 欲了解更多資訊, 請參閱模型生命週期 2022-05-01

headers

Key
Ocp-Apim-Subscription-Key 可讓您存取此 API 的金鑰。

body

{
  "displayName": "Extracting entities",
  "analysisInput": {
    "documents": [
      {
        "id": "1",
        "language": "{LANGUAGE-CODE}",
        "text": "Text1"
      },
      {
        "id": "2",
        "language": "{LANGUAGE-CODE}",
        "text": "Text2"
      }
    ]
  },
  "tasks": [
     {
      "kind": "CustomEntityRecognition",
      "taskName": "Entity Recognition",
      "parameters": {
        "projectName": "{PROJECT-NAME}",
        "deploymentName": "{DEPLOYMENT-NAME}"
      }
    }
  ]
}
Key 預留位置 範例
displayName {JOB-NAME} 您的工作名稱。 MyJobName
documents [{},{}] 要對其執行工作的文件清單。 [{},{}]
id {DOC-ID} 文件名稱或識別碼。 doc1
language {LANGUAGE-CODE} 字串,指定文件的語言代碼。 若未指定此金鑰,服務將假設專案建立時所選專案的預設語言。 如需支援的語言代碼清單,請參閱語言支援 en-us
text {DOC-TEXT} 對其執行工作的文件工作。 Lorem ipsum dolor sit amet
tasks 我們需要執行的工作清單。 []
taskName CustomEntityRecognition 工作名稱 CustomEntityRecognition
parameters 要傳遞至工作的參數清單。
project-name {PROJECT-NAME} 您專案的名稱。 此值區分大小寫。 myProject
deployment-name {DEPLOYMENT-NAME} 您部署的名稱。 此值區分大小寫。 prod

回應

您會收到一份 202 回覆,表示您的任務已成功提交。 在回應標頭中,擷取 operation-locationoperation-location 的格式如下所示:

{ENDPOINT}/language/analyze-text/jobs/{JOB-ID}?api-version={API-VERSION}

您可以使用此 URL 來查詢工作完成狀態,並在工作完成時取得結果。

取得工作結果

使用下列 GET 要求來查詢自訂實體辨識工作的狀態/結果。

{ENDPOINT}/language/analyze-text/jobs/{JOB-ID}?api-version={API-VERSION}
預留位置 範例
{ENDPOINT} 用於驗證 API 要求的端點。 https://<your-custom-subdomain>.cognitiveservices.azure.com
{API-VERSION} 您要呼叫的 API 版本。 所引用的值為最新版本。 欲了解更多資訊, 請參閱模型生命週期 2022-05-01

headers

Key
Ocp-Apim-Subscription-Key 可讓您存取此 API 的金鑰。

回應本文

回應將會是具有下列參數的 JSON 文件

{
  "createdDateTime": "2021-05-19T14:32:25.578Z",
  "displayName": "MyJobName",
  "expirationDateTime": "2021-05-19T14:32:25.578Z",
  "jobId": "xxxx-xxxx-xxxxx-xxxxx",
  "lastUpdateDateTime": "2021-05-19T14:32:25.578Z",
  "status": "succeeded",
  "tasks": {
    "completed": 1,
    "failed": 0,
    "inProgress": 0,
    "total": 1,
    "items": [
      {
        "kind": "EntityRecognitionLROResults",
        "taskName": "Recognize Entities",
        "lastUpdateDateTime": "2020-10-01T15:01:03Z",
        "status": "succeeded",
        "results": {
          "documents": [
            {
              "entities": [
                {
                  "category": "Event",
                  "confidenceScore": 0.61,
                  "length": 4,
                  "offset": 18,
                  "text": "trip"
                },
                {
                  "category": "Location",
                  "confidenceScore": 0.82,
                  "length": 7,
                  "offset": 26,
                  "subcategory": "GPE",
                  "text": "Seattle"
                },
                {
                  "category": "DateTime",
                  "confidenceScore": 0.8,
                  "length": 9,
                  "offset": 34,
                  "subcategory": "DateRange",
                  "text": "last week"
                }
              ],
              "id": "1",
              "warnings": []
            }
          ],
          "errors": [],
          "modelVersion": "2020-04-01"
        }
      }
    ]
  }
}

清除資源

當您不再需要專案時,可以使用下列 DELETE 要求將其刪除。 以您自己的值取代預留位置值。

{Endpoint}/language/authoring/analyze-text/projects/{projectName}?api-version={API-VERSION}
預留位置 範例
{ENDPOINT} 用於驗證 API 要求的端點。 https://<your-custom-subdomain>.cognitiveservices.azure.com
{PROJECT-NAME} 您專案的名稱。 此值區分大小寫。 myProject
{API-VERSION} 您要呼叫的 API 版本。 所引用的值為最新版本。 欲了解更多資訊, 請參閱模型生命週期 2022-05-01

headers

使用下列標頭來驗證您的要求。

Key
Ocp-Apim-Subscription-Key 資源的金鑰。 用於驗證 API 要求。

一旦你發送 API 請求,就會收到 202 一個表示成功的回應,這表示你的專案會被刪除。 成功呼叫的結果是用於檢查作業狀態的 Operation-Location 標頭。

建立實體擷取模型之後,您可以使用 執行時期 API 來擷取實體

當您建立自己的自訂 NER 專案時,請使用我們的操作說明文章,更詳細地了解標記、訓練和使用模型的詳細過程。