

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

# 工作原理
<a name="how-it-works"></a>

Amazon Comprehend 使用预先训练的模型来收集有关一个或一组文档的**见解**。该模型在大量文本上持续训练，因此您无需提供训练数据。

您可以使用 Amazon Comprehend 构建自己的**自定义模型**，用于自定义分类和自定义实体识别。您可以使用 [飞轮](flywheels.md) 来帮助管理自定义模型。

Amazon Comprehend 使用内置模型提供**主题建模**。主题建模检查文档语料库，并根据文档中的相似关键字组织文档。

Amazon Comprehend 提供同步和异步**文档处理模式**。使用同步模式处理一个文档或一批最多 25 个文档。使用异步任务来处理大量文档。

Amazon Comprehend AWS KMS与 () AWS Key Management Service 合作，为您的数据提供增强的加密。有关更多信息，请参阅 [Amazon Comprehend 中的 KMS 加密](kms-in-comprehend.md)。



**Topics**
+ [见解](concepts-insights.md)
+ [Amazon Comprehend 自定义](concepts-custom.md)
+ [主题建模](topic-modeling.md)
+ [文档处理模式](concepts-processing-modes.md)

# 见解
<a name="concepts-insights"></a>

Amazon Comprehend 可以分析一个或一组文档，以收集有关它的见解。Amazon Comprehend 对文档的一些见解包括：
+ [实体](how-entities.md)：Amazon Comprehend 会返回文档中标识的实体（例如人员、地点和地点）的列表。
+ [Events](how-events.md)：Amazon Comprehend 可检测特定类型的事件和相关详细信息。
+ [关键短语](how-key-phrases.md)：Amazon Comprehend 提取文档中出现的关键短语。例如，关于篮球比赛的文档可能会返回球队的名称、场地名称和最终比分。
+ [个人身份信息（PII）](pii.md)：Amazon Comprehend 分析文档以检测可识别个人身份的个人数据，例如地址、银行账号或电话号码。
+ [主要语言](how-languages.md)：Amazon Comprehend 可识别文档中的主要语言。Amazon Comprehend 可识别 100 种语言。
+ [情绪](how-sentiment.md)：Amazon Comprehend 可确定文档的主导情绪。情绪可以被评为积极、中性、消极、或混合。
+ [目标情绪](how-targeted-sentiment.md)：Amazon Comprehend 可确定文档中提及的特定实体的情绪。每次提及的情绪可以是积极、中性、消极、或混合。
+ [语法分析](how-syntax.md)：Amazon Comprehend 可解析文档中的每个单词并确定该单词的词性。例如，在“西雅图它今天在下雨”这句话中，“它”被标识为代词，“下雨”被标识为动词，“西雅图”被标识为专有名词。

# 实体
<a name="how-entities"></a>

*实体*是对现实世界对象（例如人物、地点和商业物品）的唯一名称的文本引用，也是对日期和数量等度量的精确引用。

例如，在“约翰在 2012 年搬到知更鸟巷 1313 号”的文本中，“约翰”可能被识别为 `PERSON`，“知更鸟巷 1313 号”可能被识别为 `LOCATION`，“2012”可能被识别为 `DATE`。

每个实体还有一个分数，用于表示 Amazon Comprehend 对正确检测到实体类型的置信度。您可以筛选出分数较低的实体，以降低使用错误检测的风险。

下表列出了实体类型。


| Type | 说明 | 
| --- | --- | 
|  COMMERCIAL\$1ITEM  | 品牌产品 | 
|  DATE  | 完整的日期（例如，2017 年 11 月 25 日）、日（星期二）、月（5 月）或时间（上午 8:30） | 
|  EVENT  | 事件，例如节日、音乐会、选举等。 | 
|  LOCATION  | 特定位置，例如国家、城市、湖泊、建筑物等。 | 
|  组织  | 大型组织，例如政府、公司、宗教、运动队等。 | 
|  OTHER  | 不属于任何其他实体类别的实体 | 
|  个人  | 个人、群体、昵称、虚构人物 | 
|  数量  | 量化的金额，例如货币、百分比、数字、字节等。 | 
|  TITLE  | 任何创作或创作作品的正式名称，例如电影、书籍、歌曲等。 | 

检测实体操作可以使用 Amazon Comprehend 支持的任何一种主要语言来执行。这只包括预定义（非自定义）实体检测。所有文件都必须使用同一种语言。

您可以使用以下任何 API 操作来检测文档或一组文档中的实体。
+ [DetectEntities](https://docs.aws.amazon.com/comprehend/latest/APIReference/API_DetectEntities.html)
+  [BatchDetectEntities](https://docs.aws.amazon.com/comprehend/latest/APIReference/API_BatchDetectEntities.html)
+  [StartEntitiesDetectionJob](https://docs.aws.amazon.com/comprehend/latest/APIReference/API_StartEntitiesDetectionJob.html)

这些操作会返回一个 [API 实体](https://docs.aws.amazon.com/comprehend/latest/APIReference/API_Entity.html)对象列表，文档中的每个实体对应一个。`BatchDetectEntities` 操作会返回一个 `Entity` 对象列表，批次中的每个文档对应一个列表。`StartEntitiesDetectionJob` 操作启动一个异步任务，该任务生成一个文件，其中包含任务中每个文档的 `Entity` 对象列表。

以下示例是 `DetectEntities` 操作的响应。

```
{
    "Entities": [
        {
            "Text": "today",
            "Score": 0.97,
            "Type": "DATE",
            "BeginOffset": 14,
            "EndOffset": 19
        },
        {
            "Text": "Seattle",
            "Score": 0.95,
            "Type": "LOCATION",
            "BeginOffset": 23,
            "EndOffset": 30
        }
    ],
    "LanguageCode": "en"
}
```

# Events
<a name="how-events"></a>

**注意**  
自 2026 年 4 月 30 日起，Amazon Comprehend 主题建模、事件检测和即时安全分类功能将不再向新客户提供。如果您想在新账户中使用这些功能，请在此日期之前完成。对于在过去 12 个月内使用过这些功能的账户，无需采取任何行动。有关更多信息，请参阅 [亚马逊 Comprehend 功能可用性变更](comprehend-availability-change.md)。

使用*事件检测*来分析文本文档中特定类型的事件及其相关实体。Amazon Comprehend 支持使用异步分析任务对大型文档集合进行事件检测。有关事件的更多信息，包括事件分析任务示例，请参阅[宣布推出 Amazon Comprehend 事件](https://aws.amazon.com/blogs/machine-learning/announcing-the-launch-of-amazon-comprehend-events/)

## 实体
<a name="how-events-entities"></a>

Amazon Comprehend 从输入文本中提取与检测到的事件相关的实体列表。*实体*可以是现实世界中的对象，例如人物、地点或位置；实体也可以是一个概念，例如测量、日期或数量。实体的每次出现都通过*提及*来标识，提及是在输入文本中对该实体的文本引用。对于每个唯一实体，所有提及都被分组到一个列表中。此列表提供了输入文本中实体出现的每个位置的详细信息。Amazon Comprehend 仅检测与支持的事件类型相关的实体。

与支持的事件类型关联的每个实体都会返回以下相关详细信息：
+ **提及**：输入文本中每次出现相同实体的详细信息。
  + **BeginOffset**: 输入文本中的字符偏移量，用于显示提及的开始位置（第一个字符位于位置 0）。
  + **EndOffset**: 输入文本中的字符偏移量，用于显示提及的结束位置。
  + **分数**：Amazon Comprehend 对实体类型准确性的置信度。
  + **GroupScore**：Amazon Comprehend 对提及的内容与对同一实体的其他提及正确分组的信心程度。
  + **文本**：实体的文本。
  + **类型**：实体的类型。有关支持的所有实体类型，请参阅 [实体类型](#events-entity-types)。

## Events
<a name="how-events-output"></a>

Amazon Comprehend 会返回其在输入文本中检测到的事件（支持的事件类型）列表。每个事件都会返回以下相关详细信息：
+ **类型**：事件的类型。有关支持的所有事件类型，请参阅 [事件类型](#events-types)。
+ **参数**：与检测到的事件相关的参数列表。*参数*由与检测到的事件相关的实体组成。参数的角色描述了这种关系，例如*谁*在*何时**何地*做了*什么*。
  + **EntityIndex**：一个索引值，用于从 Amazon Comprehend 为本次分析返回的实体列表中标识实体。
  + **角色**：参数类型，用于描述该参数的实体与事件的关系。有关支持的所有参数类型，请参阅 [参数类型](#events-argument-types)。
  + **分数**：Amazon Comprehend 对角色检测准确性的置信度。
+ **触发器**：检测到的事件的触发器列表。*触发器*是指示事件发生的单词或短语。
  + **BeginOffset**: 输入文本中的字符偏移量，显示触发器的起始位置（第一个字符位于位置 0）。
  + **EndOffset**: 输入文本中的字符偏移量，用于显示触发器的终止位置。
  + **分数**：Amazon Comprehend 对检测准确性的置信度。
  + **文本**：触发器的文本。
  + **GroupScore**：Amazon Comprehend 对同一事件的触发器与其他触发器正确分组的信心程度。
  + **类型**：该触发器指示的事件类型。

## 检测事件结果格式
<a name="how-events-results"></a>

事件检测任务完成后，Amazon Comprehend 会将分析结果写入启动任务时指定的 Amazon S3 输出位置。

对于每个检测到的事件，输出按以下格式提供详细信息：

```
{
   "Entities": [
     {
       "Mentions": [
         {
           "BeginOffset": number,
           "EndOffset": number,
           "Score": number,
           "GroupScore": number,
           "Text": "string",
           "Type": "string"
         }, ...
       ]    
     }, ...
   ],
   "Events": [
     {
       "Type": "string",
       "Arguments": [
         {                   
           "EntityIndex": number,   
           "Role": "string",
           "Score": number
         }, ...
       ],
       "Triggers": [
         {
           "BeginOffset": number,
           "EndOffset": number,
           "Score": number,
           "Text": "string",
           "GroupScore": number,
           "Type": "string"
         }, ...
       ]
     }, ...
   ]
 }
```

## 实体、事件和参数支持的类型
<a name="events-reference-types"></a>

### 实体类型
<a name="events-entity-types"></a>


| Type | 说明 | 
| --- | --- | 
| DATE | 对日期或时间的任何提及，无论是具体的还是笼统的。 | 
| FACILITY | 建筑物、机场、高速公路、桥梁和其他永久性人造结构和房地产改造。 | 
| LOCATION | 物理位置，例如街道、城市、州、国家、水域或地理坐标。 | 
| 货币价值 | 以美元或其他货币表示的价值。该值可以是具体的，也可以是近似值。 | 
| 组织 | 由既定组织结构定义的公司和其他群体。 | 
| 个人 | 个人或虚构人物的名字或昵称。 | 
| 人物头衔 | 描述一个人的任何头衔，通常是雇佣类别（例如首席执行官）或尊称类别（例如先生）。 | 
| 数量 | 数字或数值以及计量单位。 | 
| 股票代码 | 股票代码，例如AMZN、国际证券识别码 (ISIN)、统一证券识别程序委员会 (CUSIP) 或证券交易所每日官方名单 (SEDOL)。 | 

### 事件类型
<a name="events-types"></a>


| Type | 说明 | 
| --- | --- | 
| 破产 | 涉及无法偿还未偿债务的个人或公司的法律程序。 | 
| 雇用 | 当雇员被雇用、解雇、退休或以其他方式改变就业状态时发生。 | 
| 企业收购 | 当一家公司获得另一家公司的大部分或全部股份或实物资产的所有权，从而获得对该公司的控制权时。 | 
| 一般投资 | 当个人或公司购买有望产生未来收入或升值的资产时发生。 | 
| 公司合并 | 当两家或多家公司联合创建新的法人实体时发生。 | 
| 首次公开募股 | 首次公开募股 (IPO)，以发行新股的方式向公众发售私营公司股票。 | 
| 供股 | 向现有股东提供的按其现有持股比例购买额外股票的权利，称为认购权证。 | 
| 存量发行 | 公司股东发行的证券。 | 
| 储架发行 | 美国证券交易委员会（SEC）的一项条款，允许发行人注册新发行的证券并在一段时间内出售部分发行的证券，而无需重新注册证券或受到处罚。也称为上架登记。 | 
| 公开收购 | 购买公司部分或全部股东股份的要约。 | 
| 股票分割 | 当公司董事会通过向现有股东发行更多股票来增加已发行股票数量时。此事件也适用于反向股票分割。 | 

### 参数类型
<a name="events-argument-types"></a>


**破产的参数类型**  

| 参数类型 | 说明 | 
| --- | --- | 
| 申报者 | 申请破产的个人或公司。 | 
| DATE | 破产的日期或时间。 | 
| 发生地 | 破产发生地（或最近）的地点或设施。 | 


**雇佣的参数类型**  

| Type | 说明 | 
| --- | --- | 
| 雇员 | 公司雇用的人员。 | 
| 雇员头衔 | 雇员的头衔。 | 
| 雇主 | 雇用人员的个人或公司。 | 
| START\$1DATE | 雇佣的开始日期或时间。 | 
| 结束日期 | 雇佣的结束日期或时间。 | 


**企业收购、一般投资的参数类型**  

| Type | 说明 | 
| --- | --- | 
| 金额 | 与交易关联的货币价值。 | 
| 被投资者 | 与投资相关的个人或公司。 | 
| 投资者 | 投资于资产的个人或公司。 | 
| DATE | 收购或投资的日期或时间。 | 
| 发生地 | 收购或投资发生的地点（或最接近的地点）。 | 


**公司合并的参数类型**  

| Type | 说明 | 
| --- | --- | 
| DATE | 合并的日期或时间。 | 
| 新公司 | 合并产生的新法人实体。 | 
| 参与者 | 参与合并的公司。 | 


**首次公开募股、供股、存量发行、储架发行、公开收购的参数类型**  

| Type | 说明 | 
| --- | --- | 
| 到期日期 | 发行的到期日期或时间。 | 
| 投资者 | 投资于资产的个人或公司。 | 
| 被要约人 | 接受发行的个人或公司。 | 
| 发行金额 | 与发行关联的货币价值。 | 
| 发行日期 | 发行的日期或时间。 | 
| 要约人 | 发起发行的个人或公司。 | 
| 发行总价值 | 与发行关联的货币总价值。 | 
| 记录日期 | 发行的记录日期或时间。 | 
| 销售代理 | 为出售该产品提供便利的个人或公司。 | 
| 股票价格 | 与股票关联的货币价值。 | 
| 股票数量 | 与本次发行相关的股票数量。 | 
| 承销商 | 与本次发行承销相关的公司。 | 


**股票分割的参数类型**  

| Type | 说明 | 
| --- | --- | 
| 公司 | 发行股票分割的公司。 | 
| DATE | 股票分割的日期或时间。 | 
| 分割比率 | 股票分割前新增的已发行股票数量与当前已发行股票数量的比率。 | 

# 关键短语
<a name="how-key-phrases"></a>

*关键短语*是一个包含描述特定事物的名词短语的字符串。它通常由名词和区分它的修饰语组成。例如，“天” 是一个名词；“美好的一天”是一个名词短语，包括数词（“一”）和一个形容词（“美好的”）。每个关键短语都包含一个分数，该分数表明 Amazon Comprehend 对该字符串是名词短语的置信度。您可以使用该分数来确定检测是否对您的应用程序具有足够高的置信度。

检测关键短语操作可以使用 Amazon Comprehend 支持的任何一种主要语言来执行。所有文件都必须使用同一种语言。

您可以使用以下任何操作来检测文档或一组文档中的关键短语。
+ [DetectKeyPhrases](https://docs.aws.amazon.com/comprehend/latest/APIReference/API_DetectKeyPhrases.html)
+  [BatchDetectKeyPhrases](https://docs.aws.amazon.com/comprehend/latest/APIReference/API_BatchDetectKeyPhrases.html)
+  [StartKeyPhrasesDetectionJob](https://docs.aws.amazon.com/comprehend/latest/APIReference/API_StartKeyPhrasesDetectionJob.html)

这些操作会返回一个[KeyPhrase](https://docs.aws.amazon.com/comprehend/latest/APIReference/API_KeyPhrase.html)对象列表，文档中每个关键短语对应一个对象。`BatchDetectKeyPhrases` 操作会返回一个 `KeyPhrase` 对象列表，批次中的每个文档对应一个对象。`StartKeyPhrasesDetectionJob` 操作启动一个异步任务，该任务生成一个文件，其中包含任务中每个文档的 `KeyPhrase` 对象列表。

以下示例是 `DetectKeyPhrases` 操作的响应。

```
{
    "LanguageCode": "en",
    "KeyPhrases": [
        {
            "Text": "today",
            "Score": 0.89,
            "BeginOffset": 14,
            "EndOffset": 19
        },
        {
            "Text": "Seattle",
            "Score": 0.91,
            "BeginOffset": 23,
            "EndOffset": 30
        }
    ]
}
```

# 主要语言
<a name="how-languages"></a>

您可以使用 Amazon Comprehend 检查文本以确定主要语言。Amazon Comprehend 使用 RFC 5646 中的标识符识别语言，如果有 2 个字母的 ISO 639-1 标识符，必要时带有区域子标签，则它会使用该标识符。否则，它将使用 ISO 639-2 3 个字母的代码。

有关 RFC 5646 的更多信息，请参阅 *IETF 工具*网站上[用于识别语言的标签](https://tools.ietf.org/html/rfc5646)。

回复中包含一个分数，该分数表明 Amazon Comprehend 对某一特定语言是文档中主要语言的置信度。每个分数都独立于其他分数。分数并不表示某种语言占文档的特定百分比。

如果长文档（例如一本书）包含多种语言，则可以将长文档分成较小的部分，然后对各个部分进行 `DetectDominantLanguage` 操作。然后，您可以汇总结果以确定较长文档中每种语言的百分比。

Amazon Comprehend 语言检测具有以下限制：
+ 它不支持语音语言检测。例如，它不会检测“arigato”为日语或“nihao”为中文。
+ 它可能很难区分近似的语言对，例如印尼语和马来语；或者波斯尼亚语、克罗地亚语和塞尔维亚语。
+ 为获得最佳结果，请提供至少 20 个字符的输入文本。

Amazon Comprehend 检测到以下语言。


| 代码 | 语言 | 
| --- | --- | 
| af | 南非荷兰语 | 
| am | 阿姆哈拉语 | 
| ar | 阿拉伯语 | 
| as | 阿萨姆语 | 
| az | 阿塞拜疆料理 | 
| ba | 巴什基尔语 | 
| be | 白俄罗斯语 | 
| bn | 孟加拉语 | 
| bs | 波斯尼亚语 | 
| bg | 保加利亚语 | 
| ca | 加泰罗尼亚语 | 
| ceb | 宿雾语 | 
| cs | 捷克语 | 
| cv | 楚瓦什语 | 
| cy | 威尔士语 | 
| da | 丹麦料理 | 
| de | 德国料理 | 
| el | 希腊料理 | 
| en | English | 
| eo | 世界语 | 
| et | 爱沙尼亚语 | 
| eu | 巴斯克语 | 
| fa | 波斯语 | 
| fi | 芬兰料理 | 
| fr | 法式料理 | 
| gd | 苏格兰盖尔语 | 
| ga | 爱尔兰语 | 
| gl | 加利西亚语 | 
| gu | 古吉拉特语 | 
| ht | 海地语 | 
| he | 希伯来语 | 
| ha | 豪萨语 | 
| hi | 印地语 | 
| hr | 克罗地亚语 | 
| hu | 匈牙利料理 | 
| hy | 亚美尼亚语 | 
| ilo | 伊洛卡诺语 | 
| id | 印度尼西亚料理 | 
| is | 冰岛语 | 
| it | 意大利料理 | 
| jv | 爪哇语 | 
| ja | 日式料理 | 
| kn | 卡纳达语 | 
| ka | 格鲁吉亚语 | 
| kk | 哈萨克语 | 
| km | 中部高棉语 | 
| ky | 吉尔吉斯语 | 
| ko | 韩式料理 | 
| ku | 库尔德语 | 
| lo | 老挝语 | 
| la | 拉丁语 | 
| lv | 拉脱维亚语 | 
| lt | 立陶宛语 | 
| lb | 卢森堡语 | 
| ml | 马拉雅拉姆语 | 
| mt | 马耳他语 | 
| mr | 马拉地语 | 
| mk | 马其顿语 | 
| mg | 马达加斯加语 | 
| mn | 蒙古语 | 
| ms | 马来语 | 
| my | 缅甸语 | 
| ne | 尼泊尔语 | 
| new | 尼瓦尔语 | 
| nl | 荷兰料理 | 
| no | 挪威料理 | 
| or | 奥里亚语 | 
| om | 奥罗莫语 | 
| pa | 旁遮普语 | 
| pl | 波兰料理 | 
| pt | 葡萄牙料理 | 
| ps | 普什图语 | 
| qu | 盖丘亚语 | 
| ro | 罗马尼亚料理 | 
| ru | 俄罗斯料理 | 
| sa | 梵语 | 
| si | 僧伽罗语 | 
| sk | 斯洛伐克语 | 
| sl | 斯洛文尼亚语 | 
| sd | 信德语 | 
| so | 索马里语 | 
| es | 西班牙料理 | 
| sq | 阿尔巴尼亚语 | 
| sr | 塞尔维亚语 | 
| su | 巽他语 | 
| sw | 斯瓦西里语 | 
| sv | 瑞典料理 | 
| ta | 泰米尔语 | 
| tt | 鞑靼语 | 
| te | 泰卢固语 | 
| tg | 塔吉克语 | 
| tl | 塔加洛语 | 
| th | 泰式料理 | 
| tk | 土库曼语 | 
| tr | 土耳其料理 | 
| ug | 维吾尔族语 | 
| uk | 乌克兰料理 | 
| ur | 乌尔都语 | 
| uz | 乌兹别克斯坦语 | 
| vi | 越南料理 | 
| yi | 意第绪语 | 
| yo | 约鲁巴语 | 
| zh | 中文（简体） | 
| zh-TW | 中文（繁体） | 

您可以使用以下任意操作来检测一个文档或一组文档中的主要语言。
+  [DetectDominantLanguage](https://docs.aws.amazon.com/comprehend/latest/APIReference/API_DetectDominantLanguage.html)
+  [BatchDetectDominantLanguage](https://docs.aws.amazon.com/comprehend/latest/APIReference/API_BatchDetectDominantLanguage.html)
+  [StartDominantLanguageDetectionJob](https://docs.aws.amazon.com/comprehend/latest/APIReference/API_StartDominantLanguageDetectionJob.html)

该`DetectDominantLanguage`操作返回一个[DominantLanguage](https://docs.aws.amazon.com/comprehend/latest/APIReference/API_DominantLanguage.html)对象。`BatchDetectDominantLanguage` 操作会返回一个 `DominantLanguage` 对象列表，批次中的每个文档对应一个对象。`StartDominantLanguageDetectionJob` 操作启动一个异步任务，该任务生成一个包含 `DominantLanguage` 对象列表的文件，每个对象对应任务中的每个文档。

以下示例是 `DetectDominantLanguage` 操作的响应。

```
{
    "Languages": [
        {
            "LanguageCode": "en",
            "Score": 0.9793661236763
        }
    ]
}
```

# 情绪
<a name="how-sentiment"></a>

使用 Amazon Comprehend 来确定 UTF-8 编码的文本文档中内容的情绪。例如，您可以使用情绪分析来确定博客帖子中评论的情绪，以确定您的读者是否喜欢该帖子。

您可以确定对 Amazon Comprehend 支持的任何主要语言的文档的情绪。一项任务中的所有文件必须使用同一种语言。

情绪确定返回以下值：
+ **积极**：文本表达了总体上的积极情绪。
+ **消极**：文本表达了总体上的消极情绪。
+ **混合**：文本既表达了积极情绪，也表达了消极情绪。
+ **中性**：文本不表达积极或消极的情绪。

您可以使用以下任何 API 操作来检测文档或一组文档中的情绪。
+ [DetectSentiment](https://docs.aws.amazon.com/comprehend/latest/APIReference/API_DetectSentiment.html)
+  [BatchDetectSentiment](https://docs.aws.amazon.com/comprehend/latest/APIReference/API_BatchDetectSentiment.html)
+  [StartSentimentDetectionJob](https://docs.aws.amazon.com/comprehend/latest/APIReference/API_StartSentimentDetectionJob.html)

这些运算符返回文本中最可能的情绪以及每种情绪的分数。分数表示正确检测到情绪的可能性。例如，在下面的示例中，文本有 `Positive` 情绪的可能性为95％。文本中带有 `Negative` 情绪的可能性不到1％。您可以使用 `SentimentScore` 来确定检测的准确性是否满足您的应用程序的需求。

该`DetectSentiment`操作返回一个包含检测到的情绪的对象和一个[SentimentScore](https://docs.aws.amazon.com/comprehend/latest/APIReference/API_SentimentScore.html)对象。`BatchDetectSentiment` 操作会返回一个情绪和 `SentimentScore` 对象列表，批次中的每个文档对应一个。`StartSentimentDetectionJob` 操作启动一个异步任务，该任务生成一个包含情绪和 `SentimentScore` 对象列表的文件，任务中的每个文档对应一个。

以下示例是 `DetectSentiment` 操作的响应。

```
{
"SentimentScore": {
        "Mixed": 0.030585512690246105,
        "Positive": 0.94992071056365967,
        "Neutral": 0.0141543131828308,
        "Negative": 0.00893945890665054
    },
    "Sentiment": "POSITIVE",
    "LanguageCode": "en"
}
```

# 目标情绪
<a name="how-targeted-sentiment"></a>

*目标情绪*可让您详细了解与输入文档中特定实体（例如品牌或产品）关联的情绪。

目标情绪和[情绪](how-sentiment.md)之间的区别在于输出数据的粒度级别。情绪分析确定每个输入文档的主导情绪，但不提供用于进一步分析的数据。目标情绪分析确定每个输入文档中特定实体的实体级情绪。您可以分析输出数据以确定获得正面或负面反馈的特定产品和服务。

例如，在一组餐厅评论中，一位顾客提供了以下评论：“炸玉米饼很好吃，工作人员也很友善。” 对该评论的分析得出以下结果：
+ **情绪分析**将确定每条餐厅评论中的总体情绪是积极、消极、中性或混合。在此示例中，总体情绪是积极的。
+ **目标情绪分析**可以确定顾客在评论中提到的对于餐厅实体和属性的情绪。在此示例中，客户对“炸玉米饼”和“员工”给予了积极评价。

目标情绪为每项分析任务提供以下输出：
+ 文档中提及的实体的身份。
+ 每个提及的实体的实体类型分类。
+ 提及的每个实体的情绪和情绪分数。
+ 对应于单个实体的提及组（共同引用组）。

您可以使用[控制台](get-started-console.md)或 [API](using-api-targeted-sentiment.md) 来运行目标情绪分析。控制台和 API 支持针对目标情绪的实时分析和异步分析。

 Amazon Comprehend 支持对英语文档进行目标情绪分析。

有关定向情绪的更多信息（包括教程），请参阅机器学习博客[中的使用 Amazon Comprehend 目标情绪在文本中提取精细情绪](https://aws.amazon.com/blogs/machine-learning/extract-granular-sentiment-in-text-with-amazon-comprehend-targeted-sentiment/)。 AWS 

**Topics**
+ [实体类型](#how-targeted-sentiment-entities)
+ [共同引用组](#how-targeted-sentiment-values)
+ [输出文件组织](#how-targeted-sentiment-output)
+ [使用控制台进行实时分析](#how-targeted-sentiment-console)
+ [目标情绪输出示例](#how-targeted-sentiment-example)

## 实体类型
<a name="how-targeted-sentiment-entities"></a>

目标情绪可识别以下实体类型。如果实体不属于任何其他类别，则它会分配实体类型 OTHER。输出文件中提及的每个实体都包括实体类型，例如 `"Type": "PERSON"`。


**实体类型定义**  

| 实体类型 | 定义 | 
| --- | --- | 
| 个人 | 示例包括个人、群体、昵称、虚构人物和动物名称。 | 
| LOCATION | 地理位置，例如国家、城市、州、地址、地质构造、水体、自然地标和天文位置。 | 
| 组织 | 示例包括政府、公司、运动队和宗教。 | 
| FACILITY | 建筑物、机场、高速公路、桥梁和其他永久性人造结构和房地产改造。 | 
| BRAND | 特定商业项目或产品系列的组织、团体或生产商。 | 
| COMMERCIAL\$1ITEM | 任何非通用可购买或可获得的物品，包括车辆和仅生产一件物品的大型产品。 | 
| MOVIE | 电影或电视节目。实体可以是全名、昵称或副标题。 | 
| MUSIC | 一首歌曲，全部或部分歌曲。此外，还有个人音乐创作的集合，例如专辑或选集。 | 
| BOOK | 一本书，专业出版或自行出版。 | 
| SOFTWARE | 正式发布的软件产品。 | 
| GAME | 一种游戏，例如电子游戏、棋盘游戏、普通游戏或体育运动。 | 
| PERSONAL\$1TITLE | 官方头衔和荣誉，例如校长、博士学位或博士. | 
| EVENT | 示例包括节日、音乐会、选举、战争、会议和宣传活动。 | 
| DATE | 对日期或时间的任何引用，无论是具体的还是一般的，无论是绝对的还是相对的。 | 
| 数量 | 所有测量值及其单位（货币、百分比、数字、字节等）。 | 
| ATTRIBUTE | 实体的一种属性、特征或特性，例如产品的“质量”、手机的“价格”或 CPU 的“速度”。 | 
| OTHER | 不属于任何其他类别的实体。 | 

## 共同引用组
<a name="how-targeted-sentiment-values"></a>

目标情绪标识每个输入文档中的共同引用组。共同引用组是文档中对应于一个现实世界实体的一组提及。

**Example**  
在以下客户评论示例中，“spa”是实体，其实体类型是 `FACILITY`。该实体还有两次作为代词（“it”）被提及。  

![\[目标情绪共同引用组。\]](http://docs.aws.amazon.com/zh_cn/comprehend/latest/dg/images/gs-console-targeted-sentiment4.png)


## 输出文件组织
<a name="how-targeted-sentiment-output"></a>

目标情绪分析任务会创建一个 JSON 文本输出文件。该文件包含每个输入文档的一个 JSON 对象。每个 JSON 对象包含以下字段：
+ **实体**：在文档中找到的实体数组。
+ **文件**：输入文档的文件名。
+ **行**：如果输入文件每行一个文档，则**实体**包含文件中该文档的行号。

**注意**  
如果目标情绪在输入文本中未识别出任何实体，则它将返回一个空数组作为实体结果。

以下示例显示了包含三行输入的输入文件的**实体**。输入格式为**每行一个文档**，因此每行输入都是一个文档。

```
{ "Entities":[
    {entityA},
    {entityB},
    {entityC}
    ],
  "File": "TargetSentimentInputDocs.txt",
  "Line": 0
}
{ "Entities": [
    {entityD},
    {entityE}
  ],
  "File": "TargetSentimentInputDocs.txt",
  "Line": 1
}
{ "Entities": [
    {entityF},
    {entityG}
    ],
  "File": "TargetSentimentInputDocs.txt",
  "Line": 2
}
```



实体数组中的**实体**包括文档中检测到的实体提及的逻辑分组（称为共同引用组）。每个实体的总体结构如下：

```
{"DescriptiveMentionIndex": [0],
  "Mentions": [
     {mentionD},
     {mentionE}
    ]
}
```

实体包含以下字段：
+ **提及**：文档中提及该实体的数组。该数组代表一个共同引用组。有关示例，请参阅 [共同引用组](#how-targeted-sentiment-values)。提及数组中提及的顺序是它们在文档中的位置（偏移量）顺序。每次提及都包括该提及的情绪分数和小组分数。小组分数表示这些提及属于同一实体的置信度。
+ **DescriptiveMentionIndex**— “提及” 数组中的一个或多个索引，该索引为实体组提供最佳名称。例如，一个实体可能有三个提及，其**文本**值为“ABC 酒店”、“ABC 酒店”和“it”。最好的名字是 “ABC Hotel”，其 DescriptiveMentionIndex 值为 [0,1]。

每次提及都包含以下字段
+ **BeginOffset**— 提及开始处的文档文本中的偏移量。
+ **EndOffset**— 文档文本中提及结束处的偏移量。
+ **GroupScore**— 确信该组中提到的所有实体都与同一个实体有关。
+ **文本**：文档中用于标识实体的文本。
+ **类型1**：实体的类型。Amazon Comprehend 支持多种[实体类型](#how-targeted-sentiment-entities)。
+ **分数**：对实体相关性的置信度进行建模。值范围为 0 到 1，其中 1 表示置信度最高。
+ **MentionSentiment**— 包含提及的情绪和情绪分数。
+ **情绪**：提及的情绪。值包括：积极、中性、消极和混合。
+ **SentimentScore**— 为每种可能的情绪提供模型信心。值范围为 0 到 1，其中 1 表示置信度最高。

**情绪**值具有以下含义：
+ **积极**：提及的实体表达积极的情绪。
+ **消极**：提及的实体表示消极的情绪。
+ **混合**：提及的实体既表达了积极情绪，也表达了消极情绪。
+ **中性**：提及的实体不表达积极或消极的情绪。

在以下示例中，一个实体在输入文档中只有一个提及，因此 DescriptiveMentionIndex为零（提及数组中的第一个提及）。被识别的实体是一个名为“I”的人，情绪分数是中性的。

```
{"Entities":[
  {
    "DescriptiveMentionIndex": [0],
    "Mentions": [
      {
       "BeginOffset": 0,
       "EndOffset": 1,
       "Score": 0.999997,
       "GroupScore": 1,
       "Text": "I",
       "Type": "PERSON",
       "MentionSentiment": {
         "Sentiment": "NEUTRAL",
         "SentimentScore": {
           "Mixed": 0,
           "Negative": 0,
           "Neutral": 1,
           "Positive": 0
         }
       }
     }
   ]
  }
 ],
 "File": "Input.txt",
 "Line": 0
}
```

## 使用控制台进行实时分析
<a name="how-targeted-sentiment-console"></a>

您可以使用 Amazon Comprehend 控制台实时运行 [目标情绪](realtime-console-analysis.md#realtime-analysis-console-targeted-sentiment)。使用示例文本或将您自己的文本粘贴到输入文本框中，然后选择**分析**。

在**见解**面板中，控制台显示目标情绪分析的三个视图：
+ **分析的文本**：显示分析的文本并给每个实体加下划线。下划线的颜色表示分析分配给实体的情绪值（积极、中性、消极或混合）。控制台将颜色映射显示在分析文本框的右上角。如果将光标悬停在实体上，控制台会显示一个弹出式面板，其中包含该实体的分析值（实体类型、情绪分数）。
+ **结果**：显示一个表格，其中包含文本中标识的每个实体提及的一行。对于每个实体，该表显示了[实体](#how-targeted-sentiment-entities)和实体分数。该行还包括主要情绪和每个情绪值的分数。如果多次提及同一个实体（称为 [共同引用组](#how-targeted-sentiment-values)），则表格会将这些提及显示为一组与主实体关联的可折叠行。

  如果将鼠标悬停在**结果**表中的实体行上，则控制台会在**分析文本**面板中突出显示提及的实体。
+ **应用程序集成**：显示 API 请求的参数值以及 API 响应中返回的 JSON 对象的结构。有关 JSON 对象中字段的描述，请参阅 [输出文件组织](#how-targeted-sentiment-output)。

### 控制台实时分析示例
<a name="targeted-sentiment-example"></a>

此示例使用以下文本作为输入，这是控制台提供的默认输入文本。

```
Hello Zhang Wei, I am John. Your AnyCompany Financial Services, LLC credit card account 1111-0000-1111-0008 has a minimum payment 
  of $24.53 that is due by July 31st. Based on your autopay settings, we will withdraw your payment on the due date from your 
  bank account number XXXXXX1111 with the routing number XXXXX0000. 
  Customer feedback for Sunshine Spa, 123 Main St, Anywhere. Send comments to Alice at sunspa@mail.com. 
  I enjoyed visiting the spa. It was very comfortable but it was also very expensive. The amenities were ok but the service made 
  the spa a great experience.
```

**分析文本**面板显示了此示例的以下输出。将鼠标悬停在文本 `Zhang Wei` 上方可查看该实体的弹出面板。

![\[目标情绪分析文本。\]](http://docs.aws.amazon.com/zh_cn/comprehend/latest/dg/images/gs-console-targeted-sentiment2.png)


**结果**表提供了有关每个实体的更多详细信息，包括实体得分、主要情绪和每种情绪的分数。

![\[目标情绪结果表。\]](http://docs.aws.amazon.com/zh_cn/comprehend/latest/dg/images/gs-console-targeted-sentiment3.png)


在本示例中，目标情绪分析可以识别出，在输入文本中每次提及**你**都是对人物实体**张伟**的引用。控制台将这些提及显示为一组与主实体关联的可折叠行。

![\[目标情绪结果表。\]](http://docs.aws.amazon.com/zh_cn/comprehend/latest/dg/images/gs-console-targeted-sentiment5.png)


**应用程序集成**面板显示 DetectTargetedSentiment API 生成的 JSON 对象。有关完整示例，请参阅下一节。

## 目标情绪输出示例
<a name="how-targeted-sentiment-example"></a>

以下示例显示了目标情绪分析任务的输出文件。输入文件由三个简单的文档组成：

```
The burger was very flavorful and the burger bun was excellent. However, customer service was slow.
My burger was good, and it was warm. The burger had plenty of toppings.
The burger was cooked perfectly but it was cold. The service was OK.
```

对该输入文件进行目标情绪分析会产生以下输出。

```
  {"Entities":[
    {
      "DescriptiveMentionIndex": [
        0
      ],
      "Mentions": [
        {
          "BeginOffset": 4,
          "EndOffset": 10,
          "Score": 0.999991,
          "GroupScore": 1,
          "Text": "burger",
          "Type": "OTHER",
          "MentionSentiment": {
            "Sentiment": "POSITIVE",
            "SentimentScore": {
              "Mixed": 0,
              "Negative": 0,
              "Neutral": 0,
              "Positive": 1
            }
          }
        }
      ]
    },
    {
      "DescriptiveMentionIndex": [
        0
      ],
      "Mentions": [
        {
          "BeginOffset": 38,
          "EndOffset": 44,
          "Score": 1,
          "GroupScore": 1,
          "Text": "burger",
          "Type": "OTHER",
          "MentionSentiment": {
            "Sentiment": "NEUTRAL",
            "SentimentScore": {
              "Mixed": 0.000005,
              "Negative": 0.000005,
              "Neutral": 0.999591,
              "Positive": 0.000398
            }
          }
        }
      ]
    },
    {
      "DescriptiveMentionIndex": [
        0
      ],
      "Mentions": [
        {
          "BeginOffset": 45,
          "EndOffset": 48,
          "Score": 0.961575,
          "GroupScore": 1,
          "Text": "bun",
          "Type": "OTHER",
          "MentionSentiment": {
            "Sentiment": "POSITIVE",
            "SentimentScore": {
              "Mixed": 0.000327,
              "Negative": 0.000286,
              "Neutral": 0.050269,
              "Positive": 0.949118
            }
          }
        }
      ]
    },
    {
      "DescriptiveMentionIndex": [
        0
      ],
      "Mentions": [
        {
          "BeginOffset": 73,
          "EndOffset": 89,
          "Score": 0.999988,
          "GroupScore": 1,
          "Text": "customer service",
          "Type": "ATTRIBUTE",
          "MentionSentiment": {
            "Sentiment": "NEGATIVE",
            "SentimentScore": {
              "Mixed": 0.000001,
              "Negative": 0.999976,
              "Neutral": 0.000017,
              "Positive": 0.000006
            }
          }
        }
      ]
    }
  ],
  "File": "TargetSentimentInputDocs.txt",
  "Line": 0
}
{
  "Entities": [
    {
      "DescriptiveMentionIndex": [
        0
      ],
      "Mentions": [
        {
          "BeginOffset": 0,
          "EndOffset": 2,
          "Score": 0.99995,
          "GroupScore": 1,
          "Text": "My",
          "Type": "PERSON",
          "MentionSentiment": {
            "Sentiment": "NEUTRAL",
            "SentimentScore": {
              "Mixed": 0,
              "Negative": 0,
              "Neutral": 1,
              "Positive": 0
            }
          }
        }
      ]
    },
    {
      "DescriptiveMentionIndex": [
        0,
        2
      ],
      "Mentions": [
        {
          "BeginOffset": 3,
          "EndOffset": 9,
          "Score": 0.999999,
          "GroupScore": 1,
          "Text": "burger",
          "Type": "OTHER",
          "MentionSentiment": {
            "Sentiment": "POSITIVE",
            "SentimentScore": {
              "Mixed": 0.000002,
              "Negative": 0.000001,
              "Neutral": 0.000003,
              "Positive": 0.999994
            }
          }
        },
        {
          "BeginOffset": 24,
          "EndOffset": 26,
          "Score": 0.999756,
          "GroupScore": 0.999314,
          "Text": "it",
          "Type": "OTHER",
          "MentionSentiment": {
            "Sentiment": "POSITIVE",
            "SentimentScore": {
              "Mixed": 0,
              "Negative": 0.000003,
              "Neutral": 0.000006,
              "Positive": 0.999991
            }
          }
        },
        {
          "BeginOffset": 41,
          "EndOffset": 47,
          "Score": 1,
          "GroupScore": 0.531342,
          "Text": "burger",
          "Type": "OTHER",
          "MentionSentiment": {
            "Sentiment": "POSITIVE",
            "SentimentScore": {
              "Mixed": 0.000215,
              "Negative": 0.000094,
              "Neutral": 0.00008,
              "Positive": 0.999611
            }
          }
        }
      ]
    },
    {
      "DescriptiveMentionIndex": [
        0
      ],
      "Mentions": [
        {
          "BeginOffset": 52,
          "EndOffset": 58,
          "Score": 0.965462,
          "GroupScore": 1,
          "Text": "plenty",
          "Type": "QUANTITY",
          "MentionSentiment": {
            "Sentiment": "NEUTRAL",
            "SentimentScore": {
              "Mixed": 0,
              "Negative": 0,
              "Neutral": 1,
              "Positive": 0
            }
          }
        }
      ]
    },
    {
      "DescriptiveMentionIndex": [
        0
      ],
      "Mentions": [
        {
          "BeginOffset": 62,
          "EndOffset": 70,
          "Score": 0.998353,
          "GroupScore": 1,
          "Text": "toppings",
          "Type": "OTHER",
          "MentionSentiment": {
            "Sentiment": "NEUTRAL",
            "SentimentScore": {
              "Mixed": 0,
              "Negative": 0,
              "Neutral": 0.999964,
              "Positive": 0.000036
            }
          }
        }
      ]
    }
  ],
  "File": "TargetSentimentInputDocs.txt",
  "Line": 1
}
{
  "Entities": [
    {
      "DescriptiveMentionIndex": [
        0
      ],
      "Mentions": [
        {
          "BeginOffset": 4,
          "EndOffset": 10,
          "Score": 1,
          "GroupScore": 1,
          "Text": "burger",
          "Type": "OTHER",
          "MentionSentiment": {
            "Sentiment": "POSITIVE",
            "SentimentScore": {
              "Mixed": 0.001515,
              "Negative": 0.000822,
              "Neutral": 0.000243,
              "Positive": 0.99742
            }
          }
        },
        {
          "BeginOffset": 36,
          "EndOffset": 38,
          "Score": 0.999843,
          "GroupScore": 0.999661,
          "Text": "it",
          "Type": "OTHER",
          "MentionSentiment": {
            "Sentiment": "NEGATIVE",
            "SentimentScore": {
              "Mixed": 0,
              "Negative": 0.999996,
              "Neutral": 0.000004,
              "Positive": 0
            }
          }
        }
      ]
    },
    {
      "DescriptiveMentionIndex": [
        0
      ],
      "Mentions": [
        {
          "BeginOffset": 53,
          "EndOffset": 60,
          "Score": 1,
          "GroupScore": 1,
          "Text": "service",
          "Type": "ATTRIBUTE",
          "MentionSentiment": {
            "Sentiment": "NEUTRAL",
            "SentimentScore": {
              "Mixed": 0.000033,
              "Negative": 0.000089,
              "Neutral": 0.993325,
              "Positive": 0.006553
            }
          }
        }
      ]
    }
  ],
  "File": "TargetSentimentInputDocs.txt",
  "Line": 2
}
  }
```

# 语法分析
<a name="how-syntax"></a>

使用语法分析来解析文档中的单词，并返回文档中每个单词的词性或句法功能。您可以识别文档中的名词、动词、形容词等。使用这些信息可以更深入地了解文档的内容，并了解文档中单词的关系。

例如，您可以在文档中查找名词，然后查找与这些名词相关的动词。在“我的祖母移动了沙发”这样的句子中，您可以看到名词“祖母”和“沙发”，以及动词“移动”。您可以使用这些信息来构建应用程序，用于分析您感兴趣的单词组合文本。

开始分析时，Amazon Comprehend 会解析源文本，找到文本中的各个单词。解析文本后，会为每个单词分配其在源文本中承担的词性。

Amazon Comprehend 可以识别以下词性。


| 令牌 | 词性 | 
| --- | --- | 
| ADJ | 形容词 通常修饰名词的单词。 | 
| ADP | 介词 介词或后置短语的开头。 | 
| ADV | 副词 通常修饰动词的单词。它们还可以修饰形容词和其他副词。 | 
| AUX | 助词 动词短语的动词附带的功能词。 | 
| CCONJ | 并列连词 并列连词将句子中的单词、短语或从句连接起来，而不使它们从属于另一个句子。 | 
| CONJ | 连词 连词连接句子中的单词、短语或从句。 | 
| DET | 限定词 指定特定名词短语的冠词和其他单词。 | 
| INTJ | 感叹词 用作感叹词或感叹语一部分的单词。 | 
| NOUN | 名词 指定人、地点、事物、动物或想法的词语。 | 
| NUM | 数字 表示数字的单词，通常是限定词、形容词或代词。 | 
| O | 其他 无法分配词性类别的单词。 | 
| PART | 助词 与另一个单词或短语关联的功能词，用于传递含义。  | 
| PRON | 代词 代替名词或名词短语的单词。 | 
| PROPN | 专有名词名词，是特定个人、地点或物体的名字。 | 
| PUNCT | 标点符号 用于分隔文本的非字母字符。 | 
| SCONJ | 从属连词 将从属子句与句子连接起来的连词。从属连词的一个示例是“因为”。 | 
| SYM | 符号类似单词的实体，例如美元符号（\$1）或数学符号。 | 
| VERB | 谓词表示事件和行动的词语。 | 

有关词性的更多信息，请参阅*通用依赖项*网站上的[通用POS标签](http://universaldependencies.org/u/pos/)。

这些运算符返回用于标识单词以及该单词在文本中表示的词性的令牌。每个令牌代表源文本中的一个单词。它提供了单词在源文本中的位置、单词在文本中承担的词性、Amazon Comprehend 对正确识别词性的置信度，以及从源文本中解析出来的单词。

以下是语法令牌列表的结构。为文档中的每个单词生成一个语法令牌。

```
{
   "SyntaxTokens": [ 
      { 
         "BeginOffset": number,
         "EndOffset": number,
         "PartOfSpeech": { 
            "Score": number,
            "Tag": "string"
         },
         "Text": "string",
         "TokenId": number
      }
   ]
}
```

每个令牌都提供以下信息：
+ `BeginOffset` 和 `EndOffset`：提供单词在输入文本中的位置。
+ `PartOfSpeech`：提供两条信息，`Tag` 用于标识词性，`Score` 表示 Amazon Comprehend Syntax 对正确识别词性的置信度。
+ `Text`：提供已识别的单词。
+ `TokenId`：提供令牌的标识符。标识符是令牌在令牌列表中的位置。

# Amazon Comprehend 自定义
<a name="concepts-custom"></a>

您可以根据自己的特定要求自定义 Amazon Comprehend，而无需具备构建基于机器学习的 NLP 解决方案所需的技能。使用自动机器学习 (AutoML)，Comprehend 自定义使用您提供的训练数据代表您构建自定义 NLP 模型。

**输入文档处理**：Amazon Comprehend 支持一步完成自定义分类和自定义实体识别的文档处理。例如，您可以将纯文本文档和半结构化文档（例如 PDF 文档、Microsoft Word 文档和图像）混合输入到自定义分析任务中。有关更多信息，请参阅 [文档处理](idp.md)。

**自定义分类**：创建自定义分类模型（分类器），将您的文档整理到您自己的类别中。对于每个分类标签，请提供一组最能代表该标签的文档，并对您的分类器进行训练。经过训练后，分类器可用于任意数量的未加标签的文档集。您可以使用控制台获得无代码体验或安装最新的 AWS SDK。有关更多信息，请参阅 [自定义分类](how-document-classification.md)。

**自定义实体识别**：创建自定义实体识别模型（识别器），该模型可以根据您的特定术语和名词短语分析文本。您可以训练识别器提取诸如保单编号之类的术语或暗示客户升级的短语。要训练模型，您需要提供实体列表和包含这些实体的一组文档。模型一旦经过训练，就可以针对模型提交分析任务以提取其自定义实体。有关更多信息，请参阅 [自定义实体识别](custom-entity-recognition.md)。

# 主题建模
<a name="topic-modeling"></a>

**注意**  
自 2026 年 4 月 30 日起，Amazon Comprehend 主题建模、事件检测和即时安全分类功能将不再向新客户提供。如果您想在新账户中使用这些功能，请在此日期之前完成。对于在过去 12 个月内使用过这些功能的账户，无需采取任何行动。有关更多信息，请参阅 [亚马逊 Comprehend 功能可用性变更](comprehend-availability-change.md)。

您可以使用 Amazon Comprehend 来检查一组文档的内容，以确定共同的主题。例如，您可以向 Amazon Comprehend 提供一组新闻文章，它会确定主题，例如体育、政治或娱乐。文档中的文本不需要注释。

Amazon Comprehend 使用基于[潜在狄利克雷分配](http://www.jmlr.org/papers/volume3/blei03a/blei03a.pdf)的学习模型来确定一组文档中的主题。它检查每个文档以确定单词的上下文和含义。在整个文档集中，通常属于相同上下文的一组单词构成了一个主题。

一个单词与文档中的主题相关联，取决于该主题在文档中的普遍程度以及该主题与该词的相关程度。根据特定文档中的主题分布，可以将同一个单词与不同文档中的不同主题相关联。

例如，一篇主要谈论体育的文章中的“葡萄糖”一词可以分配给“体育”这个主题，而一篇关于“医学”的文章中，同一个词可以分配给“医学”这个主题

每个与主题相关的单词都有权重，表示该单词在多大程度上有助于定义该主题。权重表示在整个文档集中，与主题中的其他单词相比，该单词在主题中出现的次数。

为了获得最准确的结果，您应该向 Amazon Comprehend 提供尽可能多的语料库。要获得最佳效果：
+ 在每个主题建模任务中，您应至少使用 1000 个文档。
+ 每份文档的长度应至少为 3 个句子。
+ 如果文档主要由数字数据组成，则应将其从语料库中删除。

主题建模是一个异步过程。您可以使用操作将文件清单从亚马逊 S3 存储桶提交到 Amazon Comprehend。[StartTopicsDetectionJob](https://docs.aws.amazon.com/comprehend/latest/APIReference/API_StartTopicsDetectionJob.html)响应将发送到 Amazon S3 存储桶。您可以配置输入和输出存储桶。获取您使用该[ListTopicsDetectionJobs](https://docs.aws.amazon.com/comprehend/latest/APIReference/API_ListTopicsDetectionJobs.html)操作提交的主题建模作业的列表，并查看有关使用该[DescribeTopicsDetectionJob](https://docs.aws.amazon.com/comprehend/latest/APIReference/API_DescribeTopicsDetectionJob.html)操作的作业的信息。发送到 Amazon S3 存储桶的内容可能包含客户内容。有关删除敏感数据的更多信息，请参阅[如何清空 S3 存储桶？](https://docs.aws.amazon.com/AmazonS3/latest/userguide/empty-bucket.html)或[如何删除 S3 存储桶？](https://docs.aws.amazon.com/AmazonS3/latest/userguide/delete-bucket.html)。

文档必须是 UTF-8 格式的文本文件。您可以通过两种方式提交文档。下表显示了这些选项。


| Format | 说明 | 
| --- | --- | 
| 每个文件一个文档 | 每个文件包含一个输入文档。这最适合大型文档的集合。 | 
| 每行一个文档 | 输入是单个文件。文件中的每一行都被视为一个文档。这最适合简短的文档，例如社交媒体帖子。 每行必须以换行符 (LF, \$1n)、回车符 (CR, \$1r) 或两者兼有 (CRLF, \$1r\$1n) 结尾。Unicode 行分隔符 (u\$12028) 不能用来结束一行。 | 

有关更多信息，请参阅 [InputDataConfig](https://docs.aws.amazon.com/comprehend/latest/APIReference/API_InputDataConfig.html) 数据类型。

在 Amazon Comprehend 处理您的文档集合后，它会返回一个包含两个文件（`topic-terms.csv` 和 `doc-topics.csv`）的压缩存档。有关输出文件的更多信息，请参阅[OutputDataConfig](https://docs.aws.amazon.com/comprehend/latest/APIReference/API_OutputDataConfig.html)。

第一个输出文件 `topic-terms.csv` 是集合中的主题列表。对于每个主题，默认情况下，该列表按权重排列主题列出根据其的热门术语。例如，如果您向 Amazon Comprehend 提供一组报纸文章，它可能会返回以下内容来描述该集合中的前两个主题：


| Topic | 租期 | 重量 | 
| --- | --- | --- | 
| 000 | 团队 | 0.118533 | 
| 000 | 游戏 | 0.106072 | 
| 000 | player | 0.031625 | 
| 000 | 赛季 | 0.023633 | 
| 000 | play | 0.021118 | 
| 000 | 码 | 0.024454 | 
| 000 | 教练 | 0.016012 | 
| 000 | 游戏 | 0.016191 | 
| 000 | 足球 | 0.015049 | 
| 000 | 四分卫 | 0.014239 | 
| 001 | 杯子 | 0.205236 | 
| 001 | 食物 | 0.040686 | 
| 001 | 分钟 | 0.036062 | 
| 001 | 添加 | 0.029697 | 
| 001 | 汤匙 | 0.028789 | 
| 001 | 油 | 0.021254 | 
| 001 | 胡椒 | 0.022205 | 
| 001 | 茶匙 | 0.020040 | 
| 001 | 葡萄酒 | 0.016588 | 
| 001 | 糖 | 0.015101 | 

权重表示给定主题中单词的概率分布。由于 Amazon Comprehend 仅返回每个主题的前 10 个单词，因此权重之和不会等于 1.0。在极少数情况下，如果主题中的单词少于 10 个，则权重之和将为 1.0。

通过查看单词在所有主题中的出现情况，按其判别力对单词进行排序。通常，这与它们的权重相同，但在某些情况下，例如表格中的“play”和“yard”这两个词，这会导致排序与权重不同。

您可以指定要返回的主题数量。例如，如果您要求 Amazon Comprehend 返回 25 个主题，则它会返回该集合中最突出的 25 个主题。Amazon Comprehend 可以在一个集合中检测多达 100 个主题。根据您对该领域的了解选择主题数量。可能需要一些实验才能得出正确的数字。

第二个文件 `doc-topics.csv` 列出了与主题相关的文档以及与该主题相关的文档比例。如果您指定 `ONE_DOC_PER_FILE`，则由文件名标识文档。如果您指定 `ONE_DOC_PER_LINE`，则由文件名和文件中以 0 为索引的行号来标识文档。例如，对于以每个文件包含一个文档的方式提交的文档集合，Amazon Comprehend 可能会返回以下内容：


| 文档 | Topic | 比例 | 
| --- | --- | --- | 
| 示例文档 1 | 000 | 0.999330137 | 
| 示例文档 2 | 000 | 0.998532187 | 
| 示例文档 3 | 000 | 0.998384574 | 
| ... |   |   | 
| 示例文档 N | 000 | 3.57E-04 | 

[Amazon Comprehend 利用了 MBM 的 *Lemmation List 数据集中的信息，该数据集*根据开放数据库许可 (L) v1. [0](https://github.com/michmech/lemmatization-lists) 在此处提供。ODb](https://opendatacommons.org/licenses/odbl/1-0/)

# 文档处理模式
<a name="concepts-processing-modes"></a>

Amazon Comprehend 支持三种文档处理模式。您选择的模式取决于您需要处理的文档数量以及查看结果所需的立即程度：
+ **单文档同步**：您使用单个文档调用 Amazon Comprehend，并收到同步响应，该响应会立即发送到您的应用程序（或控制台）。
+ **多文档同步**：您使用最多 25 个文档的集合调用 Amazon Comprehend API，然后收到同步响应。
+ **异步批处理**：对于大量文档集合，请将文档放入 Amazon S3 存储桶中，然后启动异步任务（使用控制台或 API 操作）来分析文档。Amazon Comprehend 将分析结果存储在您在请求中指定的 S3 bucket/folder 中。

**Topics**
+ [单个文档处理](#how-single)
+ [多文档同步处理](#how-batch)
+ [异步批处理](#how-async)

## 单个文档处理
<a name="how-single"></a>

单文档操作是将文档分析结果直接返回到应用程序的同步操作。当您创建一次只能处理一个文档的交互式应用程序时，请使用单文档同步操作。

有关同步 API 操作的更多信息，请参阅 [使用内置模型进行实时分析](realtime-console-analysis.md)（适用于控制台）和 [使用 API 进行实时分析](using-api-sync.md)。

## 多文档同步处理
<a name="how-batch"></a>

如果您要处理多个文档，则可以使用 `Batch*` API 操作将多个文档一次发送到 Amazon Comprehend。每次请求中您最多可以发送 25 个文档。Amazon Comprehend 会发回一份响应列表，每个响应对应请求中的每个文档。通过这些操作发出的请求是同步的。您的应用程序调用该操作，然后等待服务的响应。

使用这些`Batch*`操作与 APIs 为请求中的每个文档调用单个文档相同。使用它们 APIs 可以提高应用程序的性能。

每个的输入都 APIs 是一个 JSON 结构，其中包含要处理的文档。对于除 `BatchDetectDominantLanguage` 之外的所有操作，您都必须设置输入语言。只能为每个请求设置一种输入语言。例如，以下是 `BatchDetectEntities` 操作的输入。它包含两个文档，并且是英文的。

```
{
   "LanguageCode": "en",
   "TextList": [
      "I have been living in Seattle for almost 4 years",
      "It is raining today in Seattle"
   ]
}
```

`Batch*` 操作的响应包含两个列表，即 `ResultList` 和 `ErrorList`。`ResultList` 包含成功处理的每个文档的一条记录。请求中每个文档的结果与您在文档上运行单个文档操作时得到的结果相同。根据输入文件中文档的顺序为每个文档的结果分配一个索引。`BatchDetectEntities` 操作的响应是：

```
{
   "ResultList"  : [
      {
         "Index": 0,
         "Entities": [
            {
               "Text": "Seattle", 
               "Score": 0.95, 
               "Type": "LOCATION", 
               "BeginOffset": 22, 
               "EndOffset": 29
            },
            {
               "Text": "almost 4 years", 
               "Score": 0.89, 
               "Type": "QUANTITY", 
               "BeginOffset": 34, 
               "EndOffset": 48
            }
         ]
      },
      {
         "Index": 1,
         "Entities": [
            {
              "Text": "today",
              "Score": 0.87,
              "Type": "DATE",
              "BeginOffset": 14,
              "EndOffset": 19
            },
            {
               "Text": "Seattle",
               "Score": 0.96,
               "Type": "LOCATION",
               "BeginOffset": 23,
               "EndOffset": 30
            }
         ]
      }
   ],
   "ErrorList": []
}
```

当请求中出现错误时，响应中会包含一个 `ErrorList`，用于标识包含错误的文档。文档由其在输入列表中的索引标识。例如，`BatchDetectLanguage` 操作的以下输入包含无法处理的文档：

```
{
   "TextList": [
     "hello friend", 
     "$$$$$$",
     "hola amigo"
   ]       
}
```

来自 Amazon Comprehend 的响应包括一个错误列表，用于标识包含错误的文档：

```
{
    "ResultList": [
        {
          "Index": 0,
          "Languages":[
            {
              "LanguageCode":"en",
              "Score": 0.99
            }
          ]
        },
        {
          "Index": 2
          "Languages":[
            {
              "LanguageCode":"es",
              "Score": 0.82
            }
          ]
        }
    ],
    "ErrorList": [
      {
        "Index": 1,
        "ErrorCode": "InternalServerException",
        "ErrorMessage": "Unexpected Server Error. Please try again."
      }
    ]
}
```

有关同步批处理 API 操作的更多信息，请参阅 [实时批处理 APIs](using-api-sync.md#get-started-batch)。

## 异步批处理
<a name="how-async"></a>

要分析大型文档和大型文档集合，请使用 Amazon Comprehend 异步操作。

要分析文档集合，通常执行以下步骤：

1. 将这些文档存储在 Amazon S3 存储桶中。

1. 启动一个或多个分析任务来分析文档。

1. 监控分析任务的进度。

1. 任务完成后，从 S3 存储桶中检索分析结果。

有关使用异步 API 操作的更多信息，请参阅 [使用控制台运行分析任务](analysis-jobs.md)（控制台）和 [使用 API 执行异步分析任务](api-async.md)。