使用一組範例語句的批次測試

重要

LUIS 將於 2025 年 10 月 1 日淘汰,而自 2023 年 4 月 1 日開始,您將無法建立新的 LUIS 資源。 建議您移轉 LUIS 應用程式交談語言理解,以便從持續提供的產品支援和多語言功能中受益。

批次測試會驗證您使用中的定型版本來測量其預測正確性。 批次測試可協助您在使用中版本中檢視每個意圖和實體的正確性。 檢閱批次測試結果,以採取適當動作來提高正確性,例如,如果您的應用程式經常無法識別正確的意圖或標示語句內的實體,可在意圖中新增更多範例語句。

批次測試的群組資料

重點是用於批次測試的語句,必須是 LUIS 中所沒有的。 如果您有語句的資料集,請將這些語句分為三組:新增到意圖的範例語句、從發佈的端點接收到的語句,以及在定型之後用來對 LUIS 進行批次測試的語句。

您使用的批次 JSON 檔案應包括語句,並標示最上層的機器學習實體,包括開始和結束位置。 語句不應為應用程式中既有範例的一部分。 其應為您想要正向預測意圖和實體的語句。

您可以依意圖和 (或) 實體來區分測試,或將所有測試 (最多 1000 個語句) 放在相同的檔案中。

匯入批次的常見錯誤

如果您將批次檔上傳至 LUIS 時發生錯誤,請檢查下列常見問題:

  • 批次檔中的語句超過 1,000 個
  • 沒有實體屬性的語句 JSON 物件。 屬性可以是空陣列。
  • 在多個實體中標示的文字
  • 實體標籤以空格開始或結束。

修正批次錯誤

如果批次測試有錯誤,您可以將更多語句加入到意圖,及/或對於更多語句標示實體,幫助 LUIS 區別不同的意圖。 如果您加入並標示語句,但是測試批次仍然出現預測錯誤,請考慮加入具有特定領域詞彙的片語清單功能,幫助 LUIS 加速學習。

使用 LUIS 入口網站進行批次測試

匯入範例應用程式並加以定型

匯入接收比薩訂單 (例如 1 pepperoni pizza on thin crust) 的應用程式。

  1. 下載並儲存應用程式的 JSON 檔案

  2. 登入 LUIS 入口網站,然後選取您的 [訂用帳戶] 和 [撰寫資源],以查看指派給該撰寫資源的應用程式。

  3. 選取 [New app] \(新增應用程式\) 旁邊的箭號,然後按一下 [Import as JSON] \(匯入為 JSON\),以將 JSON 匯入新的應用程式。 將應用程式命名 Pizza app

  4. 選取導覽區右上角的 [定型],為應用程式定型。

批次測試中的角色

警告

批次測試中不支援實體角色。

批次測試檔案

範例 JSON 包含一個語句,且具有加上標籤的實體,用以說明測試檔案的結構。 在您自己的測試中,您應該會有許多標示了正確意圖和機器學習實體的語句。

  1. 在文字編輯器中建立 pizza-with-machine-learned-entity-test.json,或下載此項目

  2. 在 JSON 格式的批次檔中,新增具有您想要在測試中預測之意圖的語句。

    [
        {
            "text": "I want to pick up 1 cheese pizza",
            "intent": "ModifyOrder",
            "entities": [
                {
                    "entity": "Order",
                    "startPos": 18,
                    "endPos": 31
                },
                {
                    "entity": "ToppingList",
                    "startPos": 20,
                    "endPos": 25
                }
            ]
        }
    ]
    

執行批次

  1. 選取頂端導覽列中的 [Test] \(測試\)。

  2. 選取右側面板中的 [Batch testing panel] \(批次測試面板\)

    批次測試連結

  3. 選取 [匯入]。 在出現的對話方塊中,選取 [Choose File] \(選擇檔案\),然後找出具備正確 JSON 格式且包含「不超過 1,000 個」要測試語句的 JSON 檔案。

    若有匯入錯誤,系統會在瀏覽器頂端的紅色通知列中回報。 當匯入發生錯誤時,將不會建立任何資料集。 如需詳細資訊,請參閱常見錯誤

  4. 選擇 pizza-with-machine-learned-entity-test.json 檔案的檔案位置。

  5. 將資料集命名為 pizza test,然後選取 [完成]。

  6. 選取 [執行] 按鈕。

  7. 當批次測試完成之後,您就能看到下列資料行:

    資料行 描述
    State 測試的狀態。 只有在測試完成之後,才會顯示 [See results] \(查看結果)。
    Name 您提供給測試的名稱。
    大小 此批次測試檔案中的測試數目。
    最後執行 上次執行此批次測試檔案的日期。
    上次結果 測試中成功預測的數目。
  8. 若要檢視測試的詳細結果,請選取 [See results] \(查看結果\)。

    提示

    • 選取 [Download] \(下載\) 將會下載您上傳的相同檔案。
    • 如果您看到批次測試失敗,則至少有一個語句意圖不符合預測。

檢閱意圖的批次結果

若要檢閱批次測試結果,請選取 [查看結果]。 測試結果會以圖形顯示對使用中的版本預測測試語句的結果。

批次圖表會顯示四個象限的結果。 圖表的右邊是一個篩選條件。 篩選包含意圖和實體。 當您選取某個圖表區段或圖表內的某一點時,相關聯的語句即會顯示於圖表下方。

將滑鼠停留在圖表上方時,滑鼠滾輪可以放大或縮小圖表中的顯示。 當圖表上有許多點緊密聚集在一起時,這非常有用。

此圖表分成四個象限,其中兩個區段會以紅色顯示。

  1. 在篩選清單中選取 ModifyOrder 意圖。 語句預測為確判為真,這表示語句成功符合其列於批次檔中的正向預測。

    成功符合其正面預測的表達

    篩選器清單中出現綠色核取記號時,也表示各項意圖測試成功。 所有其他意圖都會以 1/1 的正值分數列出,因為已對每個意圖測試語句,而任何意圖的反向測試都不會列於批次測試中。

  2. 選取 [確認] 意圖。 此意圖未列在批次測試中,因此這是批次測試中所列語句的反向測試。

    在批次檔中針對未列出的意圖,成功預測為負面的表達

    反向測試成功,這可以從篩選器和格線中的綠色文字看出。

檢閱實體的批次測試結果

ModifyOrder 實體是具有子實體的機器實體,其顯示最上層實體是否相符,以及如何預測子實體。

  1. 選取篩選清單中的 ModifyOrder 實體,然後選取格線中的圓形。

  2. 實體預測會顯示在圖表下方。 在顯示畫面中,符合預期的預測會顯示為實線,不符合預期的預測則顯示為虛線。

    在批次檔中成功預測的實體父代

篩選圖表結果

若要依特定意圖或實體篩選圖表,請於右側的篩選面板中選取意圖或實體。 資料點及其分佈會根據您的選取範圍在圖表中更新。

視覺化的批次測試結果

圖表結果範例

LUIS 入口網站中的圖表,您可以執行下列動作:

檢視單一點語句資料

在圖表中,將滑鼠暫留於資料點上,以查看其預測的確定性分數。 選取資料點以擷取它在頁面底部語句清單中的相對應語句。

選取的語句

檢視區段資料

在四個區段的圖表中,選取圖表右上角的區段名稱 (例如 False Positive)。 該區段中的所有語句會以清單的形式顯示在圖表下方。

依區段選取的語句

在上面這個影像中,語句 switch on 具有 TurnAllOn 意圖的標記,但接收到 None 意圖的預測。 這代表 TurnAllOn 意圖需要更多範例語句,以取得預期的預測結果。

圖表中兩個以紅色顯示的區段,表示沒有符合預期預測的語句。 這代表它們是 LUIS 需要進行更多定型的語句。

圖表中另外兩個以綠色顯示的區段則有符合預期的預測。

下一步

若測試顯示出您的 LUIS 應用程式無法識別正確的意圖和實體,則您可以透過標示更多語句或新增功能,以提升 LUIS 應用程式的效能。