使用意圖可信度分數改善 Lex V2 的意圖選擇 - Amazon Lex

本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。

使用意圖可信度分數改善 Lex V2 的意圖選擇

當使用者說出表達用語時,Amazon Lex V2 會使用自然語言理解 (NLU) 來了解使用者的請求並傳回適當的意圖。根據預設,Amazon Lex V2 會傳回機器人定義的最可能意圖。

在某些情況下,Amazon Lex V2 可能很難判斷最可能的意圖。例如,使用者可能會說出含糊不清的表達用語,或者可能有兩個相似的意圖。為了協助判斷適當的意圖,您可以在解釋清單中結合您的網域知識與 NLU 可信度分數。可信度分數是 Amazon Lex V2 提供的評分,顯示意圖是正確意圖的可信度。

若要判斷解釋中兩個意圖之間的差異,您可以比較其可信度分數。例如,如果一個意圖的可信度分數為 0.95,而另一個意圖的可信度分數為 0.65,則第一個意圖可能是正確的。不過,如果一個意圖的分數為 0.75,另一個意圖的分數為 0.72,則兩個意圖之間存在模棱兩可的情況,您可能可以在應用程式中使用網域知識來區分。

您也可以使用可信度分數來建立測試應用程式,以判斷意圖表達用語的變更是否會影響機器人的行為。例如,您可以使用一組表達用語取得機器人意圖的可信度分數,然後使用新的表達用語更新意圖。然後,您可以檢查可信度分數,以查看是否有所改善。

Amazon Lex V2 傳回的可信度分數是比較值。您不應依賴它們做為絕對分數。這些值可能會根據 Amazon Lex V2 的改進而變更。

Amazon Lex V2 會傳回最可能的意圖和最多 4 個替代意圖,以及其在每個回應中interpretations結構中的相關分數。下列 JSON 程式碼顯示 RecognizeText 操作回應中的interpretations結構:

"interpretations": [ { "intent": { "confirmationState": "string", "name": "string", "slots": { "string" : { "value": { "interpretedValue": "string", "originalValue": "string", "resolvedValues": [ "string" ] } } }, "state": "string" }, "nluConfidence": number } ]

AMAZON.FallbackIntent

在兩種情況下,Amazon Lex V2 會傳回AMAZON.FallbackIntent為最高意圖:

  1. 如果所有可能意圖的可信度分數低於可信度閾值。您可以使用預設閾值,也可以設定自己的閾值。如果您已AMAZON.KendraSearchIntent設定 ,Amazon Lex V2 也會在此情況下傳回它。

  2. 如果 的解釋可信度AMAZON.FallbackIntent高於所有其他意圖的解釋可信度。

請注意,Amazon Lex V2 不會顯示 的可信度分數AMAZON.FallbackIntent

設定和變更可信度閾值

可信度閾值必須是介於 0.00 和 1.00 之間的數字。您可以透過下列方式設定機器人中每種語言的閾值:

使用 Amazon Lex V2 主控台

  • 若要在使用新增語言將語言新增至機器人時設定閾值,您可以在可信度分數閾值面板中插入所需的值。

  • 若要更新閾值,您可以在語言詳細資訊面板中,為機器人選取語言編輯。然後在可信度分數閾值面板中插入所需的值。

使用 API 操作

  • 若要設定閾值,請設定 CreateBotLocale 操作的 nluIntentConfidenceThreshold 參數。

  • 若要更新可信度閾值,請設定 UpdateBotLocale 操作的 nluIntentConfidenceThreshold 參數。

工作階段管理

若要變更 Amazon Lex V2 在與使用者對話時使用的意圖,您可以使用對話方塊程式碼勾點 Lambda 函數的回應,也可以在自訂應用程式中使用工作階段管理 APIs。

搭配 Lex V2 機器人使用 Lambda 函數

當您使用 Lambda 函數時,Amazon Lex V2 會使用包含函數輸入的 JSON 結構來呼叫它。JSON 結構包含稱為 的欄位currentIntent,其中包含 Amazon Lex V2 識別為使用者表達用語最可能意圖的意圖。JSON 結構也包含 alternativeIntents 欄位,其中包含最多四個額外的意圖,可滿足使用者的意圖。每個意圖都包含一個名為 的欄位nluIntentConfidenceScore,其中包含 Amazon Lex V2 指派給意圖的可信度分數。

若要使用替代意圖,請在 中指定它,ConfirmIntent或在 Lambda 函數中指定ElicitSlot對話方塊動作。

如需詳細資訊,請參閱將 AWS Lambda 函數整合到您的機器人

搭配 Lex V2 機器人使用工作階段管理 API

若要使用與目前意圖不同的意圖,請使用 PutSession 操作。例如,如果您決定第一個替代方案優於 Amazon Lex V2 選擇的意圖,您可以使用 PutSession操作來變更意圖,以便使用者與之互動的下一個意圖是您選取的意圖。

如需詳細資訊,請參閱了解 Amazon Lex V2 機器人工作階段