

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

# 使用意圖可信度分數改善 Lex V2 的意圖選擇
<a name="using-intent-confidence-scores"></a>

當使用者說出表達用語時，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](https://docs.aws.amazon.com/lexv2/latest/APIReference/API_runtime_RecognizeText.html) 操作回應中的`interpretations`結構：

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

## AMAZON.FallbackIntent
<a name="nluconfidence-fallbackintent"></a>

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

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

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

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

## 設定和變更可信度閾值
<a name="nluconfidence-threshold"></a>

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

**使用 Amazon Lex V2 主控台**
+  若要在使用新增語言將**語言**新增至機器人時設定閾值，您可以在**可信度分數閾值**面板中插入所需的值。
+  若要更新閾值，您可以在**語言詳細資訊**面板中，為機器人選取語言**編輯**。然後在**可信度分數閾值**面板中插入所需的值。

**使用 API 操作**
+  若要設定閾值，請設定 [CreateBotLocale](https://docs.aws.amazon.com/lexv2/latest/APIReference/API_CreateBotLocale.html) 操作的 `nluIntentConfidenceThreshold` 參數。
+  若要更新可信度閾值，請設定 [UpdateBotLocale](https://docs.aws.amazon.com/lexv2/latest/APIReference/API_UpdateBotLocale.html) 操作的 `nluIntentConfidenceThreshold` 參數。

## 工作階段管理
<a name="confidence-scores-session-management"></a>

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

### 搭配 Lex V2 機器人使用 Lambda 函數
<a name="session-management-lambda"></a>

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

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

如需詳細資訊，請參閱[將 AWS Lambda函數整合到您的 Amazon Lex V2 機器人](lambda.md)。

### 搭配 Lex V2 機器人使用工作階段管理 API
<a name="session-management-API"></a>

若要使用與目前意圖不同的意圖，請使用 [PutSession](https://docs.aws.amazon.com/lexv2/latest/APIReference/API_runtime_PutSession.html) 操作。例如，如果您決定第一個替代方案優於 Amazon Lex V2 選擇的意圖，您可以使用 `PutSession`操作來變更意圖，以便使用者與之互動的下一個意圖是您選取的意圖。

如需詳細資訊，請參閱[了解 Amazon Lex V2 機器人工作階段](managing-sessions.md)。