

本文属于机器翻译版本。若本译文内容与英语原文存在差异，则一律以英文原文为准。

# 自定义槽位类型
<a name="custom-slot-types"></a>

对于每个目的，您都可以指定参数来指示目的要完成用户请求所需的信息。这些参数，或者说槽，都有一个类型。*槽位类型*是指 Amazon Lex V2 用于训练机器学习模型以识别槽位值的值列表。例如，您可以定义一个名为 `Genres` 的槽位类型，其值为“comedy”（喜剧）、“adventure”（探险剧）、“documentary”（纪录片）等。您可以定义槽位类型值的同义词。例如，可以为“comedy”值定义同义词“funny”和“humorous”。

![创建自定义槽位类型。](http://docs.aws.amazon.com/zh_cn/lexv2/latest/dg/images/slots/custom-slot-type.png)


或者，您可以通过配置槽位类型来扩展槽位值。槽位值将用作训练数据，并且当用户提供的值与槽位值以及这些值的同义词相似时，该模型将槽位解析为用户提供的值。这是默认行为。Amazon Lex V2 为槽位维护一个可能解析值的列表。列表中的每个条目都提供一个*解析值*，Amazon Lex V2 将其识别为槽位的更多可能值。解析值是与槽位值的尽可能匹配。该列表最多包含五个值。

或者，您可以通过配置槽位类型来限制对槽位值的解析。在这种情况下，只有当用户输入的槽位值与该槽位值相同或是该槽位值的同义词时，该模型才会将该槽位值解析为现有的槽位值。例如，如果用户输入“funny”，会解析为槽值“comedy”。

当用户输入的值是槽位类型值的同义词时，模型将返回该槽位类型值作为 `resolvedValues` 列表中的第一个条目。例如，如果用户输入“funny”（滑稽），则模型会在 `originalValue` 字段中填充值“funny”，在 resolvedValues 字段的第一个条目中填充“comedy”（喜剧）。您可以在使用 [CreateSlotType](https://docs.aws.amazon.com/lexv2/latest/APIReference/API_CreateSlotType.html) 操作创建或更新槽位类型时配置 `valueSelectionStrategy`，以便使用解析列表中的第一个值填充槽位值。

 自定义槽位类型支持使用拼写样式进行输入。您可以使用逐字母拼写以及逐单词拼写样式来帮助客户输入字母。有关更多信息，请参阅 [在对话期间使用拼写样式捕获槽位值](spelling-styles.md)。

 如果您使用 Lambda 函数，该函数的输入事件中会包含一个名为 `resolvedValues` 的解析列表。以下示例显示了 Lambda 函数输入的槽位部分：

```
   "slots": {
      "MovieGenre": {
         "value": {
            "originalValue": "funny",
            "interpretedValue": "comedy",
            "resolvedValues": [
               "comedy"
            ]
         }
      }
   }
```

对于每个槽类型，最多可定义 10000 个值和同义词。每个自动程序的槽类型值和同义词的总数最多为 50000。例如，您可以拥有 5 种插槽类型，每种类型包含 5,000 个值和 5,000 个同义词，或者您可以拥有 10 种插槽类型，每种类型包含 2,500 个值和 2,500 个同义词。

自定义槽位类型不应与内置槽位类型同名。例如，不应使用预留关键字“日期”、“数字”或“确认”来命名自定义槽位类型。这些关键字是为内置槽位类型预留的。有关所有内置槽位类型的列表，请参阅[Built-in 插槽类型](built-in-slots.md)。