

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

# カスタム分類
<a name="how-document-classification"></a>

カスタム分類 を使用すると、自分で決めたカテゴリ (クラス) に文書を整理できます。カスタム分類は 2 ステップの処理です。まず、対象となるクラスを認識するようにカスタム分類モデル (分類子とも呼ばれる) を調教します。次に、そのモデルを使用して任意の数の文書セットを分類します。

たとえば、サポートリクエストの内容を分類して、リクエストを適切なサポートチームに送ることができます。また、顧客から受け取ったメールを分類して、顧客の要求の種類に基づいて案内できます。Amazon Comprehend と Amazon Transcribe を組み合わせて音声をテキストに変換し、サポート電話からのリクエストを分類できます。

1 文書に対してカスタム分類を同期的に (リアルタイム) 実行することも、非同期ジョブを開始して一連の文書を分類することもできます。アカウントには複数のカスタム分類子があり、それぞれが別データを使用して調教できます。カスタム分類では、プレーンテキスト、PDF、Word、画像など、種々の入力文書がサポートされます。

分類ジョブを送信するときは、分析する必要のある文書の種類に基づいて、使用する分類モデルを選択します。たとえば、プレーンテキスト文書を分析する場合、プレーンテキスト文書で調教したモデルを使用すると最も正確な結果が得られます。半構造化文書 (PDF、Word、画像、Amazon Textract 出力、スキャンファイルなど) を分析するには、ネイティブ文書で調教したモデルを使用すると最も正確な結果が得られます。

**Topics**
+ [分類子調教データの作成](prep-classifier-data.md)
+ [調教分類モデル](training-classifier-model.md)
+ [リアルタイム分析の実行](running-class-sync.md)
+ [非同期ジョブの実行](running-classifiers.md)

# 分類子調教データの作成
<a name="prep-classifier-data"></a>

カスタム分類では、マルチクラスモードまたはマルチラベルモードでモデルを調教します。マルチクラスモードでは、各文書に 1 つのクラスが関連付けられます。マルチラベルモードでは、1 つ以上のクラスが各文書に関連付けられます。入力ファイル形式はモードごとに異なるため、調教データを作成する前に使用するモードを選択してください。

**注記**  
Amazon Comprehend コンソールでは、マルチクラスモードをシングルラベルモードと呼んでいます。

カスタム分類は、プレーンテキストの文書で調教するモデルと、ネイティブ文書 (PDF、Word、画像など) で調教するモデルをサポートします。分類子モデルとそれらがサポートする文書タイプの詳細については、「[調教分類モデル](training-classifier-model.md)」を参照してください。

カスタム分類子モデルの調教データを作成するには: 

1. この分類子に分析させたいクラスを特定します。使用するモード (マルチクラスまたはマルチラベル) を決定します。

1. モデルがプレーンテキスト文書の分析用か、半構造化文書の分析用かに応じて、分類子モデルのタイプを決定します。

1. 各クラスの文書例を集めます。最小調教要件については、「[ドキュメント分類の一般的なクォータ](guidelines-and-limits.md#limits-class-general)」を参照してください。

1. プレーンテキストモデルの場合は、使用する調教ファイル形式 (CSV ファイルまたは拡張マニフェストファイル) を選択します。ネイティブ文書モデルを調教するには、必ず CSV ファイルを使用します。

**Topics**
+ [分類子調教ファイルの形式](prep-class-data-format.md)
+ [マルチクラスモード](prep-classifier-data-multi-class.md)
+ [マルチラベルモード](prep-classifier-data-multi-label.md)

# 分類子調教ファイルの形式
<a name="prep-class-data-format"></a>

プレーンテキストモデルの場合、分類子トレーニングデータを CSV ファイルとして、または SageMaker AI Ground Truth を使用して作成した拡張マニフェストファイルとして指定できます。CSV ファイルまたは拡張マニフェストファイルには、各調教文書のテキストとそれに関連するラベルが含まれます。

ネイティブ文書モデルの場合は、分類子調教データを CSV ファイルとして提供します。CSV ファイルには、各調教文書のテキストとそれに関連するラベルが含まれます。調教文書は、調教グジョブの Amazon S3 入力フォルダに含めます。

## CSV ファイル
<a name="prep-data-csv"></a>

ラベル付き調教データを UTF-8 でエンコードされたテキストとして CSV ファイルで提供します。ヘッダー行を含めないでください。ファイルにヘッダー行を追加すると、ランタイムエラーが発生する可能性があります。

CSV ファイルの各行の最初の列には 1 つ以上のクラスラベルが含まれます。クラスラベルは、有効な UTF-8 文字列であれば何でもかまいません。意味が重複しない明確なクラス名を使用することをお勧めします。名前には空白を含めることができ、複数の単語をアンダースコアまたはハイフンでつなげてもかまいません。

行内の値を区切るカンマの前後にスペース文字を入れないでください。

CSV ファイルの正確な内容は、分類子モードと調教データのタイプによって異なります。詳細については、「[マルチクラスモード](prep-classifier-data-multi-class.md)」と「[マルチラベルモード](prep-classifier-data-multi-label.md)」のセクションを参照してください。

## 拡張マニフェストファイル
<a name="prep-data-annotations"></a>

拡張マニフェストファイルは、SageMaker AI Ground Truth を使用して作成するラベル付きデータセットです。Ground Truth は、自分または自分の雇用する従業員が、機械学習モデルの調教データセットを構築するのに役立つデータラベル付けサービスです。

Ground Truth とそれが生成する出力の詳細については、「Amazon [SageMaker AI デベロッパーガイド」の「SageMaker AI Ground Truth を使用してデータにラベル](https://docs.aws.amazon.com/sagemaker/latest/dg/sms.html)を付ける」を参照してください。 *Amazon SageMaker *

拡張マニフェストファイルは JSON 行形式になります。これらのファイルでは、各行は調教文書と関連ラベルを含む完全な JSON オブジェクトです。各行の正確な内容は、分類子モードによって異なります。詳細については、「[マルチクラスモード](prep-classifier-data-multi-class.md)」と「[マルチラベルモード](prep-classifier-data-multi-label.md)」のセクションを参照してください。

調教データを Amazon Comprehend に提供するときは、1 つ以上のラベル属性名を指定します。指定する属性名の数は、拡張マニフェストファイルが単一のラベリングジョブの出力であるか、チェーンラベリングジョブの出力であるかによって異なります。

ファイルが 1 つのラベル付けジョブの出力である場合は、Ground Truth ジョブの単一ラベル属性名を指定します。

ファイルがチェーンラベリングジョブの出力である場合は、チェーン内の 1 つ以上のジョブに対するラベル属性名を指定します。各ラベル属性名には、それぞれ 1 つのジョブのアノテーションが含まれます。チェーンラベリングジョブの拡張マニフェストファイルには、これらの属性のうち最大 5 つを指定できます。

連鎖ラベル付けジョブの詳細、およびそれらが生成する出力の例については、[「Amazon SageMaker AI デベロッパーガイド」の「連鎖ラベル付けジョブ](https://docs.aws.amazon.com/sagemaker/latest/dg/sms-reusing-data.html)」を参照してください。 Amazon SageMaker 

# マルチクラスモード
<a name="prep-classifier-data-multi-class"></a>

マルチクラス分類では、各文書に 1 つのクラスが割り当てられます。個々のクラスは相互に排他的です。たとえば、映画をコメディーかサイエンスフィクションに分類できますが、両方には分類できません。

**注記**  
Amazon Comprehend コンソールでは、マルチクラスモードをシングルラベルモードと呼んでいます。

**Topics**
+ [プレーンテキストモデル](#prep-multi-class-plaintext)
+ [ネイティブ文書モデル](#prep-multi-class-structured)

## プレーンテキストモデル
<a name="prep-multi-class-plaintext"></a>

プレーンテキストモデルをトレーニングするには、ラベル付きトレーニングデータを CSV ファイルまたは SageMaker AI Ground Truth の拡張マニフェストファイルとして提供できます。

### CSV ファイル
<a name="prep-multi-class-plaintext-csv"></a>

調教分類子用 CSV ファイルの使用に関する一般的な情報は、「[CSV ファイル](prep-class-data-format.md#prep-data-csv)」を参照してください。

調教データを 2 列の CSV ファイルとして提供します。各行の最初の列にはクラスラベルの値が入ります。2 列目には、そのクラスのサンプルテキスト文書が含まれています。各行は\$1n または\$1r\$1n で終えなければなりません。

3 つの文書を含んだ CSV ファイルの例を以下に示します。

```
CLASS,Text of document 1
CLASS,Text of document 2
CLASS,Text of document 3
```

次の例は、電子メールメッセージがスパムかどうかを検出するようにカスタム分類子を調教する CSV ファイルの 1 行を示しています。

```
SPAM,"Paulo, your $1000 award is waiting for you! Claim it while you still can at http://example.com."
```

### 拡張マニフェストファイル
<a name="prep-multi-class-plaintext-manifest"></a>

調教分類子用拡張マニフェストファイルの使用に関する一般的な情報は、「[拡張マニフェストファイル](prep-class-data-format.md#prep-data-annotations)」を参照してください。

プレーンテキスト文書の場合、拡張マニフェストファイルの各行は、調教文書、単一のクラス名、Ground Truth からのその他のメタデータを含んだ完全な JSON オブジェクトです。次の例は、スパムメールメッセージを認識するようにカスタム分類子を調教する拡張マニフェストファイルです。

```
{"source":"Document 1 text", "MultiClassJob":0, "MultiClassJob-metadata":{"confidence":0.62, "job-name":"labeling-job/multiclassjob", "class-name":"not_spam", "human-annotated":"yes", "creation-date":"2020-05-21T17:36:45.814354", "type":"groundtruth/text-classification"}}
{"source":"Document 2 text", "MultiClassJob":1, "MultiClassJob-metadata":{"confidence":0.81, "job-name":"labeling-job/multiclassjob", "class-name":"spam", "human-annotated":"yes", "creation-date":"2020-05-21T17:37:51.970530", "type":"groundtruth/text-classification"}}
{"source":"Document 3 text", "MultiClassJob":1, "MultiClassJob-metadata":{"confidence":0.81, "job-name":"labeling-job/multiclassjob", "class-name":"spam", "human-annotated":"yes", "creation-date":"2020-05-21T17:37:51.970566", "type":"groundtruth/text-classification"}}
```

 次の例は、拡張マニフェストファイル内の 1 つの JSON オブジェクトを、読みやすくフォーマットして示しています。

```
{
   "source": "Paulo, your $1000 award is waiting for you! Claim it while you still can at http://example.com.",
   "MultiClassJob": 0,
   "MultiClassJob-metadata": {
       "confidence": 0.98,
       "job-name": "labeling-job/multiclassjob",
       "class-name": "spam",
       "human-annotated": "yes",
       "creation-date": "2020-05-21T17:36:45.814354",
       "type": "groundtruth/text-classification"
   }
}
```

この例では、`source` 属性は調教文書のテキストを示し、`MultiClassJob` 属性は分類リストからクラスのインデックスを割り当てます。`job-name` 属性は、Ground Truth でラベル付けジョブ用に定義した名前です。

 Amazon Comprehend で分類子調教ジョブを開始するときは、同じラベリングジョブ名を指定します。

## ネイティブ文書モデル
<a name="prep-multi-class-structured"></a>

ネイティブ文書モデルは、ネイティブ文書 (PDF、DOCX、画像など) を使用して調教するモデルです。調教データを CSV ファイルとして提供します。

### CSV ファイル
<a name="prep-multi-class-structured-csv"></a>

調教分類子用 CSV ファイルの使用に関する一般的な情報は、「[CSV ファイル](prep-class-data-format.md#prep-data-csv)」を参照してください。

調教データを 3 列の CSV ファイルとして提供します。各行の最初の列にはクラスラベルの値が入ります。2 列目には、そのクラスのサンプル文書が入ります。3 列目にはページ番号が入ります。サンプル文書が画像の場合、ページ番号は省略可能です。

3 つの入力文書を示す CSV ファイルの例を以下に示します。

```
CLASS,input-doc-1.pdf,3
CLASS,input-doc-2.docx,1
CLASS,input-doc-3.png
```

次の例は、電子メールメッセージがスパムかどうかを検出するようにカスタム分類子を調教する CSV ファイルの 1 行を示しています。PDF ファイルの 2 ページ目には、スパムの例が含まれています。

```
SPAM,email-content-3.pdf,2
```

# マルチラベルモード
<a name="prep-classifier-data-multi-label"></a>

マルチラベルモードでは、個々のクラスは相互に排他的ではない異種カテゴリを表します。マルチクラス分類では、各文書に 1 つまたは複数のクラスが割り当てられます。たとえば、ある映画をドキュメンタリーとして分類し、別の映画をサイエンスフィクション、アクション、コメディーとして分類できます。

調教用に、マルチラベルモードでは最大 100 のユニークなクラスを含む最大 100 万件のサンプルがサポートされます。

**Topics**
+ [プレーンテキストモデル](#prep-multi-label-plaintext)
+ [ネイティブ文書モデル](#prep-multi-label-structured)

## プレーンテキストモデル
<a name="prep-multi-label-plaintext"></a>

プレーンテキストモデルをトレーニングするには、ラベル付きトレーニングデータを CSV ファイルまたは SageMaker AI Ground Truth の拡張マニフェストファイルとして提供できます。

### CSV ファイル
<a name="prep-multi-label-plaintext-csv"></a>

調教分類子用 CSV ファイルの使用に関する一般的な情報は、「[CSV ファイル](prep-class-data-format.md#prep-data-csv)」を参照してください。

調教データを 2 列の CSV ファイルとして提供します。各行の最初の列にはクラスラベルの値が含まれ、2 番目の列にはこれらのクラスのサンプルテキスト文書が含まれます。1 列目に複数のクラスを入力するには、各クラスの間に区切り文字 (\$1 など) を使用します。

```
CLASS,Text of document 1
CLASS,Text of document 2
CLASS|CLASS|CLASS,Text of document 3
```

次の例は、映画の抄録に含まれるジャンルを検出するようにカスタム分類子を調教する CSV ファイルの 1 行を示しています。

```
COMEDY|MYSTERY|SCIENCE_FICTION|TEEN,"A band of misfit teens become unlikely detectives when they discover troubling clues about their high school English teacher. Could the strange Mrs. Doe be an alien from outer space?"
```

クラス名の間のデフォルトの区切り文字はパイプ (\$1) です。ただし、別の文字を区切り文字として使用できます。区切り文字はクラス名のすべての文字と区別する必要があります。たとえば、クラスが CLASS\$11、CLASS\$12、CLASS\$13 の場合、アンダースコア (**\$1**) はクラス名の一部です。そのため、クラス名を区切る区切り文字として、アンダースコアは使用しないでください。

### 拡張マニフェストファイル
<a name="prep-multi-label-plaintext-manifest"></a>

調教分類子用拡張マニフェストファイルの使用に関する一般的な情報は、「[拡張マニフェストファイル](prep-class-data-format.md#prep-data-annotations)」を参照してください。

プレーンテキスト文書の場合、拡張マニフェストファイルの各行は完全な JSON オブジェクトです。これには、調教文書、クラス名、Ground Truthのその他のメタデータが含まれています。次の例は、映画の抄録内のジャンルを検出するようにカスタム分類子を調教する拡張マニフェストファイルです。

```
{"source":"Document 1 text", "MultiLabelJob":[0,4], "MultiLabelJob-metadata":{"job-name":"labeling-job/multilabeljob", "class-map":{"0":"action", "4":"drama"}, "human-annotated":"yes", "creation-date":"2020-05-21T19:02:21.521882", "confidence-map":{"0":0.66}, "type":"groundtruth/text-classification-multilabel"}}
{"source":"Document 2 text", "MultiLabelJob":[3,6], "MultiLabelJob-metadata":{"job-name":"labeling-job/multilabeljob", "class-map":{"3":"comedy", "6":"horror"}, "human-annotated":"yes", "creation-date":"2020-05-21T19:00:01.291202", "confidence-map":{"1":0.61,"0":0.61}, "type":"groundtruth/text-classification-multilabel"}}
{"source":"Document 3 text", "MultiLabelJob":[1], "MultiLabelJob-metadata":{"job-name":"labeling-job/multilabeljob", "class-map":{"1":"action"}, "human-annotated":"yes", "creation-date":"2020-05-21T18:58:51.662050", "confidence-map":{"1":0.68}, "type":"groundtruth/text-classification-multilabel"}}
```

 次の例は、拡張マニフェストファイル内の 1 つの JSON オブジェクトを、読みやすくフォーマットして示しています。

```
{
      "source": "A band of misfit teens become unlikely detectives when 
                   they discover troubling clues about their high school English teacher. 
                     Could the strange Mrs. Doe be an alien from outer space?",
      "MultiLabelJob": [
          3,
          8,
          10,
          11
      ],
      "MultiLabelJob-metadata": {
          "job-name": "labeling-job/multilabeljob",
          "class-map": {
              "3": "comedy",
              "8": "mystery",
              "10": "science_fiction",
              "11": "teen"
          },
          "human-annotated": "yes",
          "creation-date": "2020-05-21T19:00:01.291202",
          "confidence-map": {
              "3": 0.95,
              "8": 0.77,
              "10": 0.83,
              "11": 0.92
          },
          "type": "groundtruth/text-classification-multilabel"
      }
  }
```

この例では、`source` 属性は調教文書のテキストを示し、`MultiLabelJob` 属性は分類リストから複数のクラスのインデックスを割り当てます。`MultiLabelJob` メタデータのジョブ名は、Ground Truth でラベル付けジョブ用に定義した名前です。

## ネイティブ文書モデル
<a name="prep-multi-label-structured"></a>

ネイティブ文書モデルは、ネイティブ文書 (PDF、DOCX、画像ファイルなど) を使用して調教するモデルです。ラベル付きの調教データを CSV ファイルとして提供します。

### CSV ファイル
<a name="prep-multi-label-structured-csv"></a>

調教分類子用 CSV ファイルの使用に関する一般的な情報は、「[CSV ファイル](prep-class-data-format.md#prep-data-csv)」を参照してください。

調教データを 3 列の CSV ファイルとして提供します。各行の最初の列にはクラスラベルの値が入ります。2 列目には、そのクラスのサンプル文書が入ります。3 列目にはページ番号が入ります。サンプル文書が画像の場合、ページ番号は省略可能です。

1 列目に複数のクラスを入力するには、各クラスの間に区切り文字 (\$1 など) を使用します。

```
CLASS,input-doc-1.pdf,3
CLASS,input-doc-2.docx,1
CLASS|CLASS|CLASS,input-doc-3.png,2
```

次の例は、映画の抄録に含まれるジャンルを検出するようにカスタム分類子を調教する CSV ファイルの 1 行を示しています。PDF ファイルの 2 ページ目には、コメディー/ティーン向け映画の例が含まれています。

```
COMEDY|TEEN,movie-summary-1.pdf,2
```

クラス名の間のデフォルトの区切り文字はパイプ (\$1) です。ただし、別の文字を区切り文字として使用できます。区切り文字はクラス名のすべての文字と区別する必要があります。たとえば、クラスが CLASS\$11、CLASS\$12、CLASS\$13 の場合、アンダースコア (**\$1**) はクラス名の一部です。そのため、クラス名を区切る区切り文字として、アンダースコアは使用しないでください。

# 調教分類モデル
<a name="training-classifier-model"></a>

カスタム分類用にモデルを調教するには、カテゴリを定義し、カスタムモデルを調教するためのサンプル文書を指定します。モデルをマルチクラスモードまたはマルチラベルモードで調教します。マルチクラスモードでは、各文書に 1 つのクラスが関連付けられます。マルチラベルモードでは、1 つ以上のクラスが各文書に関連付けられます。

カスタム分類では、プレーンテキストモデルとネイティブ文書モデルの 2 種類の分類モデルがサポートされます。プレーンテキストモデルでは、テキストコンテンツに基づいて文書を分類します。ネイティブ文書モデルも、テキストコンテンツに基づいて文書を分類できます。ネイティブ文書モデルでは、文書のレイアウトなどからの付加的なシグナルも使用できます。ネイティブ文書モデルをネイティブ文書で調教し、モデルにレイアウト情報を学習させます。

プレーンテキストモデルには以下の特性があります。
+ UTF-8 でエンコードされたテキスト文書を使用してモデルを調教します。
+ 英語、スペイン語、ドイツ語、イタリア語、フランス語、ポルトガル語のいずれかの言語の文書を使用してモデルを調教できます。
+ 特定の分類子の調教文書は、どれも同じ言語を使用する必要があります。
+ 調教文書はプレーンテキストなので、テキスト抽出に追加料金はかかりません。

ネイティブ文書モデルには以下の特性があります。
+ 以下の文書タイプを含む半構造化文書を使用してモデルを調教します。
  + デジタル文書とスキャンした PDF 文書。
  + Word 文書 (.docx)
  + 画像：JPG ファイル、PNG ファイル、単一ページの TIFF ファイル。
  + API 出力 JSON ファイルをテキスト抽出します。
+ 英語の文書を使用してモデルを調教します。
+ 調教文書にスキャンした文書ファイルが含まれている場合は、テキスト抽出に追加料金がかかります。詳細については、[Amazon Comprehend の料金](https://aws.amazon.com/comprehend/pricing)ページを参照してください。

どちらのタイプのモデルを使用しても、サポートされているどの文書タイプでも分類できます。ただし、最も正確な結果を得るには、プレーンテキストモデルを使用してプレーンテキスト文書、ネイティブ文書モデルを使用して半構造化文書を分類するようお勧めします。

**Topics**
+ [カスタム分類子の調教 (コンソール)](create-custom-classifier-console.md)
+ [カスタム分類子の調教 (API)](train-custom-classifier-api.md)
+ [調教データのテスト](testing-the-model.md)
+ [分類子の調教出力](train-classifier-output.md)
+ [カスタム分類子メトリクス](cer-doc-class.md)

# カスタム分類子の調教 (コンソール)
<a name="create-custom-classifier-console"></a>

コンソールを使用してカスタム分類子を作成して調教し、そのカスタム分類子を使用して文書を分析できます。

カスタム分類子を調教するには、一連の調教文書が必要です。これらの文書には、文書分類子に認識させたいカテゴリのラベルを付けます。調教文書の作成については、「[分類子調教データの作成](prep-classifier-data.md)」を参照してください。



**文書分類モデルを作成して調教するには**

1. にサインイン AWS マネジメントコンソール し、[https://console.aws.amazon.com/comprehend/](https://console.aws.amazon.com/comprehend/) で Amazon Comprehend コンソールを開きます。

1. 左側のメニューから [**カスタマイズ**] を選択し、[**カスタム分類**] を選択します。

1. [**モデルの作成**] を選択します。

1. [**モデルの設定**] に分類子のモデル名を入力します。この名前は、自分のアカウント内と現在のリージョンで一意でなければなりません。

   (オプション) バージョン名を入力します。この名前は、自分のアカウント内と現在のリージョンで一意でなければなりません。

1. 調教文書の言語を選択します。分類子がサポートする言語については、「[調教分類モデル](training-classifier-model.md)」を参照してください。

1. (オプション) Amazon Comprehend が調教ジョブを処理している間にストレージボリューム内のデータを暗号化する場合は、[**分類子の暗号化**]を選択します。次に、自分の現在のアカウントに関連付けられた KMS キーを使用するか、別のアカウントの KMS キーを使用するかを選択します。
   + 現在のアカウントに関連付けられているキーを使用している場合は、**KMS** キー ID のキー ID を選択します。
   + 別のアカウントに関連付けられているキーを使用している場合は、**KMS** キー ARN の下にキー ID の ARN を入力します。
**注記**  
KMS キーの作成と使用や関連する暗号化の詳細については、[AWS Key Management Service (AWS KMS)](https://docs.aws.amazon.com/kms/latest/developerguide/overview.html) を参照してください。

1. 「**データ仕様**」で、使用する [**調教モデルタイプ**] を選択します。
   + **プレーンテキスト文書：**このオプションを選択すると、プレーンテキストモデルが作成されます。プレーンテキスト文書を使用してモデルを調教します。
   + **ネイティブ文書：**ネイティブ文書モデルを作成するには、このオプションを選択します。ネイティブ文書 (PDF、Word、画像) を使用してモデルを調教します。

1. 調教データの [**データ形式**] を選択します。データ形式の詳細については、「[分類子調教ファイルの形式](prep-class-data-format.md)」を参照してください。
   + **CSV ファイル：**調教データが CSV ファイル形式を使用している場合は、このオプションを選択してください。
   + **拡張マニフェスト：**Ground Truth を使用して調教データ用の拡張マニフェストファイルを作成した場合は、このオプションを選択してください。この形式は、調教モデルタイプとして [**プレーンテキスト文書**] を選択した場合に使用できます。

1. 使用する [**分類子モード**] を選択します。
   + **シングルラベルモード：**文書に割り当てるカテゴリが相互に排他的であり、各文書に 1 つのラベルを割り当てるように分類子を学習させる場合は、このモードを選択します。Amazon Comprehend API では、シングルラベルモードはマルチクラスモードと呼ばれています。
   + **マルチラベルモード：**1 つの文書に複数のカテゴリを同時に適用でき、各文書に 1 つまたは複数のラベルを割り当てるように分類子を調教する場合は、このモードを選択します。

1. **マルチラベルモード**を選択すると、**ラベルの区切り文字**を選択できます。調教文書に複数のクラスがある場合は、この区切り文字を使用してラベルを区切ります。デフォルトの区切り文字はパイプ文字です。

1. (オプション) データ形式として**拡張マニフェスト**を選択した場合、最大 5 つの拡張マニフェストファイルを入力できます。各拡張マニフェストファイルには、調教データセットまたはテストデータセットが含まれます。少なくとも 1 つの調教データセットを指定する必要があります。テストデータセットは任意です。次の手順に従って、拡張マニフェストファイルを設定します。

   1. 「**調教とテストデータセット**」で、「**入力場所**」パネルを展開します。

   1. [**データセットタイプ**] で [**調教データ**] または [**テストデータ**] を選択します。

   1. **SageMaker AI Ground Truth 拡張マニフェストファイル S3 の場所**については、マニフェストファイルを含む Amazon S3 バケットの場所を入力するか、**Browse S3** を選択して移動します。調教ジョブのアクセス許可に使用する IAM ロールには、S3 バケットに対する読み取り許可が必要です。

   1. [**属性名**] に、注釈を含む属性の名前を入力します。ファイルに複数のチェーンラベリングジョブのアノテーションが含まれている場合は、ジョブごとに属性を追加します。

   1. 別の入力場所を追加するには、[**入力場所を追加**] を選択し、次の場所を設定します。

1. (オプション) データ形式として **CSV ファイル**を選択した場合は、次の手順に従って調教データセットとオプションのテストデータセットを設定します。

   1. [**調教データセット**] で、調教データの CSV ファイルを含む Amazon S3 バケットの場所を入力するか、[**S3 を参照**] を選択してその場所に移動します。調教ジョブのアクセス許可に使用する IAM ロールには、S3 バケットに対する読み取り許可が必要です。

      (オプション) 調教モデルタイプとして**ネイティブ文書**を選択した場合は、調教サンプルファイルの入った Amazon S3 フォルダの URL も指定します。

   1. [**テストデータセット**] で、調教済みモデルをテストするための追加データを Amazon Comprehend に提供するかどうかを選択します。
      + **Autosplit**: Autosplit は調教データの 10% を自動的に選択し、テストデータとして使用するために確保します。
      + (オプション) **顧客提供**: Amazon S3 のテストデータの CSV ファイルの URL を入力します。Amazon S3 内のその場所に移動して **[フォルダを選択]** を選択することもできます。

        (オプション) 調教モデルタイプとして**ネイティブ文書**を選択した場合は、テストファイルの入った Amazon S3 フォルダの URL も指定します。

1. (オプション) **文書読み取りモードでは**、デフォルトのテキスト抽出アクションをオーバーライドできます。このオプションはスキャンされた文書のテキスト抽出に適用されるため、プレーンテキストモデルには必要ありません。詳細については、「[テキスト抽出オプションの設定](idp-set-textract-options.md)」を参照してください。

1. (プレーンテキストモデルの場合はオプション) [**出力データ**] には、混同行列などの調教出力データを保存する Amazon S3 バケットの場所を入力します。詳細については、「[混同行列](train-classifier-output.md#conf-matrix)」を参照してください。

   (オプション) 調教ジョブの出力結果を暗号化する場合は、[**暗号化**] を選択します。次に、現在のアカウントに関連付けられた KMS キーを使用するか、別のアカウントの KMS キーを使用するかを選択します。
   + 現在のアカウントに関連付けられているキーを使用している場合は、**KMS キー ID** のキーエイリアスを選択します。
   + 別のアカウントに関連付けられているキーを使用している場合は、**KMS キー ID** の下にキーエイリアス の ARN または ID を入力します。

1. **IAM ロールには**、[**既存の IAM ロールを選択**] を選択し、調教文書を含む S3 バケットの読み取り権限を持つ既存の IAM ロールを選択します。ロールには、`comprehend.amazonaws.com`で始まる信頼ポリシーが必要です。

   このような権限を持つ IAM ロールがまだない場合は、[**IAM ロールの作成**] を選択して作成してください。このロールを付与するアクセス権限を選択し、アカウント内の IAM ロールと区別できるように名前のサフィックスを選択します。
**注記**  
暗号化された入力文書の場合、使用する IAM ロールにも権限が必要です。`kms:Decrypt`詳細については、「[KMS 暗号化を使用するために必要なアクセス許可](security_iam_id-based-policy-examples.md#auth-kms-permissions)」を参照してください。

1. (オプション) **VPC** から Amazon Comprehend にリソースを起動するには、VPC の下に VPC ID を入力するか、ドロップダウンリストから ID を選択します。

   1. [**サブネット**] でサブネットを選択します。最初のサブネットを選択すると、追加のサブネットを選択できます。

   1. セキュリティグループを指定した場合は、[**セキュリティグループ**] で、使用するセキュリティグループを選択します。最初のセキュリティグループを選択すると、追加のセキュリティグループを選択できます。
**注記**  
分類ジョブで VPC を使用する場合、[作成] と [開始] 操作に使用する `DataAccessRole` には、入力文書と出力バケットへの VPC アクセス権限が必要です。

1. (オプション) カスタム分類子にタグを追加するには、[**タグ**] にキーと値のペアを入力します。**[タグを追加]** を選択します。分類子を作成する前にこのペアを削除するには、[**タグを削除**] を選択します。詳細については、「[リソースのタグ付け](tagging.md)」を参照してください。

1. **[作成]** を選択します。

コンソールに「**分類子**」ページが表示されます。新しい分類子が表で表示され、そのステータス `Submitted` が表示されます。分類子が調教文書の処理を開始すると、ステータスが `Training` に変わります。分類子が使用できるようになると、ステータスが `Trained` または `Trained with warnings` に変わります。ステータスが `TRAINED_WITH_WARNINGS` の場合、[分類子の調教出力](train-classifier-output.md) のスキップしたファイルのフォルダを確認してください。

Amazon Comprehend の作成中または調教中にエラーが発生した場合、ステータスは `In error` に変わります。表中の分類子ジョブを選択すると、エラーメッセージを含む分類子に関する詳細情報を取得できます。

![\[カスタム分類子リスト。\]](http://docs.aws.amazon.com/ja_jp/comprehend/latest/dg/images/class-list.png)


# カスタム分類子の調教 (API)
<a name="train-custom-classifier-api"></a>

カスタム分類子を作成して調教するには、[CreateDocumentClassifier](https://docs.aws.amazon.com/comprehend/latest/APIReference/API_CreateDocumentClassifier.html) 演算機能を使用します。

[DescribeDocumentClassifier](https://docs.aws.amazon.com/comprehend/latest/APIReference/API_DescribeDocumentClassifier.html) 演算機能を使用して、リクエストの進行状況を監視できます。`Status` フィールドが `TRAINED` に移行すると、分類子を使用して文書を分類できます。ステータスが `TRAINED_WITH_WARNINGS` の場合、演算 `CreateDocumentClassifier` でスキップした [分類子の調教出力](train-classifier-output.md) の中のファイルフォルダを確認してください。

**Topics**
+ [を使用したカスタム分類のトレーニング AWS Command Line Interface](#get-started-api-customclass-cli)
+ [AWS SDK for Java または SDK for Python の使用](#get-started-api-customclass-java)

## を使用したカスタム分類のトレーニング AWS Command Line Interface
<a name="get-started-api-customclass-cli"></a>

以下の例は、演算機能 `CreateDocumentClassifier`、演算機能 `DescribeDocumentClassificationJob`、その他のカスタム分類子 API を AWS CLIで使用する方法を示しています。

例は、Unix、Linux、macOS 用にフォーマットされています。Windows の場合は、各行末のバックスラッシュ (\$1) Unix 連結文字をキャレット (^) に置き換えてください。

演算機能 `create-document-classifier` を使用してプレーンテキストのカスタム分類子を作成します。

```
aws comprehend create-document-classifier \
     --region region \
     --document-classifier-name testDelete \
     --language-code en \
     --input-data-config S3Uri=s3://S3Bucket/docclass/file name \
     --data-access-role-arn arn:aws:iam::account number:role/testFlywheelDataAccess
```

ネイティブカスタム分類子を作成するには、`create-document-classifier` リクエストに以下の追加パラメータを指定します。

1. DocumentType: 値を SEMI\$1STRUCTURED\$1DOCUMENT に設定します。

1. 文書：調教文書 (およびオプションでテスト文書) を保管する S3 の場所。

1. OutputDataConfig: 出力文書の S3 ロケーション (およびオプションの KMS キー) を指定します。

1. DocumentReaderConfig: テキスト抽出設定用のオプションフィールド。

```
aws comprehend create-document-classifier \
     --region region \
     --document-classifier-name testDelete \
     --language-code en \
     --input-data-config 
          S3Uri=s3://S3Bucket/docclass/file name \
           DocumentType \
             Documents  \
     --output-data-config S3Uri=s3://S3Bucket/docclass/file name \
     --data-access-role-arn arn:aws:iam::account number:role/testFlywheelDataAccess
```

演算機能 `DescribeDocumentClassifier` を使用して、文書分類子 ARN を含んだカスタム分類子に関する情報を取得します。

```
aws comprehend describe-document-classifier \
     --region region \
     --document-classifier-arn arn:aws:comprehend:region:account number:document-classifier/file name
```

演算機能 `DeleteDocumentClassifier` を使用してカスタム分類子を削除します。

```
aws comprehend delete-document-classifier \
     --region region \
     --document-classifier-arn arn:aws:comprehend:region:account number:document-classifier/testDelete
```

演算機能 `ListDocumentClassifiers` を使用して、アカウント内のすべてのカスタム分類子を一覧表示します。

```
aws comprehend list-document-classifiers
     --region region
```

## AWS SDK for Java または SDK for Python の使用
<a name="get-started-api-customclass-java"></a>

カスタム分類子を作成して調教する方法の SDK の例については、「[AWS SDK または CLI `CreateDocumentClassifier`で を使用する](example_comprehend_CreateDocumentClassifier_section.md)」を参照してください。

# 調教データのテスト
<a name="testing-the-model"></a>

モデルを調教した後、Amazon Comprehend はカスタム分類子モデルをテストします。テストデータセットを指定しないと、Amazon Comprehend は調教データの 90% を使用してモデルを調教します。調教データの 10% はテスト用に確保されます。テストデータセットを与える場合、テストデータには調教データセット内の固有のラベルごとに少なくとも 1 つの例が含まれている必要があります。

モデルをテストすると、モデルの精度推定に使用できる指標が得られます。コンソールの**分類子の詳細**ページの**分類子パフォーマンス**セクションに指標が表示されます。また、[DescribeDocumentClassifier](https://docs.aws.amazon.com/comprehend/latest/APIReference/API_DescribeDocumentClassifier.html) 演算機能によって `Metrics` フィールドにも返されます。

次の調教データ例では、 DOCUMENTARY、DOCUMENTARY、SCIENCE\$1FICTION、DOCUMENTARY、ROMANTIC\$1COMEDY の 5 つのラベルがあります。DOCUMENTARY、SCIENCE\$1FICTION、ROMANTIC\$1COMEDY の 3 つの固有クラスがあります。


| 列 1 | 列 2 | 
| --- | --- | 
| DOCUMENTARY | 文書テキスト 1 | 
| DOCUMENTARY | 文書テキスト 2 | 
| SCIENCE\$1FICTION | 文書テキスト 3 | 
| DOCUMENTARY | 文書テキスト 4 | 
| ROMANTIC\$1COMEDY | 文書テキスト 5 | 

自動分割（Amazon Comprehend が調教データの 10% をテスト用に確保）では、調教データに含まれている特定のラベルが限られていると、テストデータセットにはそのラベルの例が全くないという結果になり得ます。たとえば、調教データセットに DOCUMENTARY クラスのインスタンスが 1000 個、SCIENCE\$1FICTION のインスタンスが 900 個、ROMANTIC\$1COMEDY クラスのインスタンスが 1 つしかない場合、テストデータセットには 100 個のドキュメンタリーインスタンスと 90 個の SCIENCE\$1FICTION インスタンスが含まれていても、ROMANTIC\$1COMEDY インスタンスはゼロになる可能性があります。

モデルの調教が終わると、調教指標で得られる情報から、モデルがニーズに十分合っているかどうかを判断できます。

# 分類子の調教出力
<a name="train-classifier-output"></a>

Amazon Comprehend がカスタム分類子モデル調教を完了すると、[CreateDocumentClassifier](https://docs.aws.amazon.com/comprehend/latest/APIReference/API_CreateDocumentClassifier.html) API リクエストまたは同等のコンソールリクエストで指定された Amazon S3 出力場所に出力ファイルが作成されます。

Amazon Comprehend では、プレーンテキストモデルまたはネイティブ文書モデルを調教すると、混同行列が生成されます。ネイティブ文書モデルを調教すると、追加の出力ファイルが作成されることがあります。

**Topics**
+ [混同行列](#conf-matrix)
+ [ネイティブ文書モデルの追加出力](#train-class-output-native)

## 混同行列
<a name="conf-matrix"></a>

カスタム分類子モデルを調教すると、Amazon Comprehend はモデルが調教でどの程度うまく機能したかを示す指標を提示した混同行列を生成します。この行列には、モデルが予測したラベルの行列と、実際の文書ラベルとの比較が表示されます。Amazon Comprehend は調教データの一部を使用して混同行列を生成します。

混同行列は、どのクラスがより多くのデータを使用してモデルのパフォーマンスを改善できるかを示します。正しい予測の割合が高いクラスは、行列の対角線上の結果の数値が最大になります。対角線上の数値が小さい場合、そのクラスの予測の正解率は低くなります。このクラスにさらに調教例を追加して、モデルを再調教できます。たとえば、ラベル A のサンプルの 40% がラベル D に分類される場合、ラベル A とラベル D のサンプルを増やすと分類子のパフォーマンスが向上します。

Amazon Comprehend が分類子モデルを作成すると、S3 出力場所の `confusion_matrix.json` ファイル内で混同行列が使用できるようになります。

混同行列の形式は、分類子をマルチクラスモードとマルチラベルモードのどちらで調教したかによって異なります。

**Topics**
+ [マルチクラスモードの混同行列](#m-c-matrix)
+ [マルチラベルモードの混同行列](#m-l-matrix)

### マルチクラスモードの混同行列
<a name="m-c-matrix"></a>

マルチクラスモードでは、個々のクラスは相互に排他的であるため、分類によって各文書に 1 つのラベルが割り当てられます。たとえば、動物は犬でも猫でもかまいませんが、両方を同時にはできません。

マルチクラス調教分類子の混同行列の例を考えてみましょう。

```
  A B X Y <-(predicted label)
A 1 2 0 4
B 0 3 0 1
X 0 0 1 0
Y 1 1 1 1
^
|
(actual label)
```

この場合、モデルの予測は以下のとおりです。
+ 1 つの「A」ラベルが正確に予測され、2 つの「A」ラベルが「B」ラベルとして誤って予測され、4 つの「A」ラベルが「Y」ラベルとして誤って予測されました。
+ 3 つの「B」ラベルが正確に予測され、1 つの「B」ラベルが「Y」ラベルとして誤って予測されました。
+ 1 つの「X」が正確に予測されました。
+ 1 つの「Y」ラベルが正確に予測され、1 つは「A」ラベルとして誤って予測され、もう 1 つは「B」ラベルとして誤って予測され、もう 1 つは「X」ラベルとして誤って予測されました。

行列内の対角線 (A:A、B:B、X:X、Y:Y) は、正確な予測を示しています。予測誤差は対角線の外側の値です。この場合、行列に以下の誤予測率が表示されます。
+ A ラベル: 86%
+ B ラベル:25%
+ X ラベル:0%
+ Y ラベル: 75%

分類子は、混同行列を JSON 形式のファイルとして返します。次の JSON ファイルは、前の例の行列を示しています。

```
{
 "type": "multi_class",
 "confusion_matrix": [
 [1, 2, 0,4],
 [0, 3, 0, 1],
 [0, 0, 1, 0],
 [1, 1, 1, 1]],
 "labels": ["A", "B", "X", "Y"],
 "all_labels": ["A", "B", "X", "Y"]
}
```

### マルチラベルモードの混同行列
<a name="m-l-matrix"></a>

マルチラベルモードでは、各文書に 1 つまたは複数のクラスが割り当てられます。マルチクラス調教分類子の混同行列の例を考えてみましょう。

この例では、`Comedy`、`Action`、`Drama` の 3 つのラベルが考えられます。マルチラベル混同行列は、ラベルごとに 1 つの 2x2 行列を生成します。

```
Comedy                   Action                   Drama 
     No Yes                   No Yes                   No Yes   <-(predicted label)                                      
 No  2   1                No  1   1                No  3   0                                                         
Yes  0   2               Yes  2   1               Yes  1   1   
 ^                        ^                        ^
 |                        |                        |
 |-----------(was this label actually used)--------|
```

この場合、モデルは `Comedy` ラベルに対して以下を返しました。
+ `Comedy` ラベルの存在が正確に予測された 2 つの例。真陽性 (TP)。
+ `Comedy` ラベルの不在が正確に予測された 2 つの例。真陰性 (TN)。
+ `Comedy` ラベルの存在が誤って予測された例がゼロ。偽陽性 (FP)。
+ `Comedy` ラベルの不在が誤って予測された 1 つの例。偽陰性 (FN)。

マルチクラス混同行列と同様、各行列の対角線には正確な予測値が表示されます。

この場合、モデルは 80% の確率で `Comedy` ラベルを正確に予測し (TP と TN)、20% の確立で予測を誤りました (FP と FN)。



分類子は、混同行列を JSON 形式のファイルとして返します。次の JSON ファイルは、前の例の行列を示しています。

```
{
"type": "multi_label",
"confusion_matrix": [
 [[2, 1],        
 [0, 2]],
 [[1, 1],        
 [2, 1]],      
 [[3, 0],        
 [1, 1]]
], 
"labels": ["Comedy", "Action", "Drama"]
"all_labels": ["Comedy", "Action", "Drama"]
}
```

## ネイティブ文書モデルの追加出力
<a name="train-class-output-native"></a>

Amazon Comprehend では、ネイティブ文書モデルを調教すると、追加の出力ファイルが作成されることがあります。

### Amazon Textract 出力
<a name="textract-output"></a>

Amazon Comprehend が Amazon Textract API を呼び出して調教文書のテキストを抽出した場合、Amazon Textract の出力ファイルを S3 の出力場所に保存します。以下のディレクトリ構造を使用します。
+ **調教文書:** 

  `amazon-textract-output/train/<file_name>/<page_num>/textract_output.json` 
+ **テスト文書:** 

  `amazon-textract-output/test/<file_name>/<page_num>/textract_output.json`

API リクエストでテスト文書を指定した場合、Amazon Comprehend はテストフォルダにデータを入力します。

### 文書注釈の失敗
<a name="failed-files-output"></a>

 注釈が失敗すると、Amazon Comprehend は Amazon S3 の出力場所 (**skipped\$1documents/** フォルダ) に次のファイルを作成します。
+ failed\$1annotations\$1train.jsonl

  調教データで注釈が失敗しても、ファイルは存在します。
+ failed\$1annotations\$1test.jsonl

  リクエストにテストデータが含まれていて、そのテストデータ内の注釈が失敗しても、ファイルは存在します。

注釈が失敗したファイルは、以下の形式の JSONL ファイルになります。

```
{
     "File": "String", "Page": Number, "ErrorCode": "...", "ErrorMessage": "..."}
    {"File": "String", "Page": Number, "ErrorCode": "...", "ErrorMessage": "..."
  }
```

# カスタム分類子メトリクス
<a name="cer-doc-class"></a>

Amazon Comprehend には、カスタム分類子のパフォーマンスを推定するのに役立つメトリクスが用意されています。Amazon Comprehend は、分類子調教ジョブのテストデータを使用してメトリクスを計算します。メトリクスは調教中のモデルのパフォーマンスを正確に表しているため、類似データを分類する際のモデルのパフォーマンスに近い値になります。

[DescribeDocumentClassifier](https://docs.aws.amazon.com/comprehend/latest/APIReference/API_DescribeDocumentClassifier.html) などの API 演算機能を使用して、カスタム分類子のメトリクスを取得します。

**注記**  
[基礎となるプレシジョン、リコール、F1 スコアのメトリクスについて詳しくは、「メトリクス:精度、再現率、FScore](https://scikit-learn.org/stable/modules/generated/sklearn.metrics.precision_recall_fscore_support.html)」を参照してください。これらのメトリクスはクラスレベルで定義されます。Amazon Comprehend は、以下で説明するように、**マクロ**平均化によりこれらのメトリクスをテストセット P、R、F1 に結合します。

**Topics**
+ [メトリクス](#cer-doc-class-metrics)
+ [カスタム分類子のパフォーマンス向上](#improving-metrics-doc)

## メトリクス
<a name="cer-doc-class-metrics"></a>

Amazon Comprehend は以下のメトリクスをサポートしています。

**Topics**
+ [正解率](#class-accuracy-metric)
+ [精度 (マクロ精度)](#class-macroprecision-metric)
+ [リコール (マクロリコール)](#class-macrorecall-metric)
+ [F1 スコア (マクロ F1 スコア)](#class-macrof1score-metric)
+ [ハミングロス](#class-hammingloss-metric)
+ [マイクロ精度](#class-microprecision-metric)
+ [マイクロリコール](#class-microrecall-metric)
+ [マイクロ F1 スコア](#class-microf1score-metric)

分類子のメトリクスを表示するには、コンソールの**分類子の詳細**ページを開きます。

![\[カスタム分類子メトリクス\]](http://docs.aws.amazon.com/ja_jp/comprehend/latest/dg/images/classifierperformance.png)


### 正解率
<a name="class-accuracy-metric"></a>

精度は、テストデータに含まれるラベルのうち、モデルが正確に予測したラベルの割合を示します。精度を計算するには、テスト文書内の正確に予測されたラベル数を、テスト文書内のラベルの総数で割ります。

例


| 実際のラベル | 予測ラベル | 正確/不正確 | 
| --- | --- | --- | 
|  1  |  1  |  正確  | 
|  0  |  1  |  不正確  | 
|  2  |  3  |  不正確  | 
|  3  |  3  |  正確  | 
|  2  |  2  |  正確  | 
|  1  |  1  |  正確  | 
|  3  |  3  | 正確 | 

精度は、正確な予測数を全体のテストサンプル数で割った値 = 5/7 = 0.714、つまり 71.4% です。

### 精度 (マクロ精度)
<a name="class-macroprecision-metric"></a>

精度は、テストデータにおける分類結果の有用性の尺度です。正確に分類された文書の数を、そのクラスの分類総数で割ったものとして定義されます。精度が高いということは、分類子が無関係な結果よりもかなり関連性の高い結果を返したということです。

`Precision`この指標はマクロ精度とも呼ばれます。

次の例は、テストセットの精度結果を示しています。


| ラベル | サンプルサイズ | ラベル精度 | 
| --- | --- | --- | 
|  Label\$11  |  400  |  0.75  | 
|  Label\$12  |  300  |  0.80  | 
|  Label\$13  |  30000  |  0.90  | 
|  Label\$14  |  20  |  0.50  | 
|  Label\$15  |  10  |  0.40  | 

したがって、モデルの精度 (マクロ精度) 指標は次のようになります。

```
Macro Precision = (0.75 + 0.80 + 0.90 + 0.50 + 0.40)/5 = 0.67
```

### リコール (マクロリコール)
<a name="class-macrorecall-metric"></a>

これは、テキストに含まれる正しいカテゴリのうち、モデルが予測できる正しいカテゴリの割合を示します。この指標は、使用可能なすべてのラベルのリコールスコアを平均して算出されます。リコールは、分類子の結果がテストデータにどの程度完全であるかを示す尺度です。

リコール率が高いということは、分類子が関連する結果のほとんどを返したことを意味します。

`Recall` 指標はマクロリコールとも呼ばれます。

次の例は、テストセットのリコール結果を示しています。


| ラベル | サンプルサイズ | ラベルリコール | 
| --- | --- | --- | 
|  Label\$11  |  400  |  0.70  | 
|  Label\$12  |  300  |  0.70  | 
|  Label\$13  |  30000  |  0.98  | 
|  Label\$14  |  20  |  0.80  | 
|  Label\$15  |  10  |  0.10  | 

したがって、モデルのリコール (マクロリコール) 指標は次のようになります。

```
Macro Recall = (0.70 + 0.70 + 0.98 + 0.80 + 0.10)/5 = 0.656
```

### F1 スコア (マクロ F1 スコア)
<a name="class-macrof1score-metric"></a>

F1 スコアは `Precision` と `Recall` の値から算出されます。分類子全体の精度を測定します。最高スコアは 1 で、最低スコアは 0 です。

Amazon Comprehend はマクロ F1 スコアを計算します。これはラベルの F1 スコアの加重されていない平均です。次のテストセットを例に取ります。


| ラベル | サンプルサイズ | ラベル F1 スコア | 
| --- | --- | --- | 
|  Label\$11  |  400  |  0.724  | 
|  Label\$12  |  300  |  0.824  | 
|  Label\$13  |  30000  |  0.94  | 
|  Label\$14  |  20  |  0.62  | 
|  Label\$15  |  10  |  0.16  | 

モデルの F1 スコア (マクロ F1 スコア) は次のように計算されます。

```
Macro F1 Score = (0.724 + 0.824 + 0.94 + 0.62 + 0.16)/5 = 0.6536
```

### ハミングロス
<a name="class-hammingloss-metric"></a>

予測違いのラベルの割合。ラベル総数に対する不正確なラベルの割合とも見なされます。0 に近いほど良いスコアです。

### マイクロ精度
<a name="class-microprecision-metric"></a>

オリジナル：

精度指標と似ていますが、マイクロ精度はすべての精度スコアを足した総合スコアに基づく点が異なります。

### マイクロリコール
<a name="class-microrecall-metric"></a>

リコール指標と似ていますが、マイクロリコールはすべてのリコールスコアを足した総合スコアに基づく点が異なります。

### マイクロ F1 スコア
<a name="class-microf1score-metric"></a>

Micro F1 スコアは、マイクロ精度指標とマイクロリコール指標を組み合わせたものです。

## カスタム分類子のパフォーマンス向上
<a name="improving-metrics-doc"></a>

指標から分類ジョブ中にカスタム分類子がどのように機能するかについての洞察が得られます。指標が低い場合、分類モデルは使用事例に合わない可能性があります。分類子パフォーマンスを改善するには、幾つか方法があります。

1. 調教データには、カテゴリを明確に分ける具体的な例を指定してください。たとえば、カテゴリを表すために固有の単語や文を使用する文書を用意します。

1. 調教データで、表示頻度が低いラベルについては、さらにデータを追加します。

1. カテゴリ内の偏りを減らすようにしてください。文書の数がデータ内の最大ラベルに最小ラベルの 10 倍以上ある場合は、最小ラベルの文書数を増やしてみてください。表現率の高いクラスと低いクラスのスキュー比を最大で 10:1 に減らしてください。また、表現数の多いクラスから入力文書を削除してみることもできます。

# リアルタイム分析の実行
<a name="running-class-sync"></a>

カスタム分類子を調教した後で、リアルタイム分析を使用して文書を分類できます。リアルタイム分析では、1 つの文書を入力として受け取り、結果を同期的に返します。カスタム分類では、さまざまな文書タイプをリアルタイム分析の入力として受け入れます。詳細については、「[リアルタイムカスタム分析用の入力](idp-inputs-sync.md)」を参照してください。

画像ファイルまたはスキャンした PDF ドキュメントを分析する予定がある場合は、IAM ポリシーで 2 つの Amazon Textract API メソッド (DetectDocumentText と AnalyzeDocument) を使用するアクセス権限を付与する必要があります。Amazon Comprehend は、テキスト抽出中にこれらのメソッドを呼び出します。ポリシーの例については「[ドキュメント分析アクションを実行するために必要なアクセス許可](security_iam_id-based-policy-examples.md#security-iam-based-policy-perform-cmp-actions)」を参照してください。

カスタム分類モデルを使用してリアルタイム分析を実行するには、エンドポイントを作成する必要があります。

**Topics**
+ [カスタム分類のリアルタイム分析 (コンソール)](custom-sync.md)
+ [カスタム分類のリアルタイム分析 (API)](class-sync-api.md)
+ [リアルタイム分析の出力](outputs-class-sync.md)

# カスタム分類のリアルタイム分析 (コンソール)
<a name="custom-sync"></a>

Amazon Comprehend コンソールを使用して、カスタム分類モデルを使用したリアルタイム分析を実行できます。

リアルタイム分析を実行するエンドポイントを作成します。エンドポイントには、リアルタイム推論にカスタムモデルを使用できるようにする管理対象リソースが含まれます。

エンドポイントのスループットのプロビジョニングとそれに関連するコストについては、「[Amazon Comprehend エンドポイントの使用法](using-endpoints.md)」を参照してください。

**Topics**
+ [カスタム分類用のエンドポイントの作成](#create-endpoint)
+ [リアルタイムカスタム分類の実行](#cc-real-time-analysis)

## カスタム分類用のエンドポイントの作成
<a name="create-endpoint"></a>

**エンドポイントを作成するには (コンソール)**

1. にサインイン AWS マネジメントコンソール し、[https://console.aws.amazon.com/comprehend/](https://console.aws.amazon.com/comprehend/) で Amazon Comprehend コンソールを開きます。

1. 左側のメニューから [**エンドポイント**] を選択し、[**エンドポイントの作成**] ボタンを選択します。「**エンドポイントの作成**」画面が開きます。

1. エンドポイントに名前を付けます。名前は、自分のアカウント内と現在のリージョンで一意でなければなりません。

1. 新しいエンドポイントをアタッチするカスタムモデルを選択します。ドロップダウンから、モデル名で検索できます。
**注記**  
エンドポイントをモデルにアタッチする前に、モデルを作成する必要があります。まだモデルがない場合は、「[調教分類モデル](training-classifier-model.md)」を参照してください。

1. (オプション) エンドポイントにタグを追加するには、[**タグ**] にキーと値のペアを入力し、[**タグを追加**] を選択します。エンドポイントを作成する前にこのペアを削除するには、[**タグを削除**] を選択します

1. エンドポイントに割り当てる推論単位 (IU) の数を入力します。各単位は、1 秒あたり最大 2 つの文書に対して 100 文字/秒のスループットを表します。最大スループットの詳細については、 「[Amazon Comprehend エンドポイントの使用法](using-endpoints.md)」を参照してください。

1. (オプション) 新しいエンドポイントを作成する場合は、IU Estimator を使用することもできます。スループットや 1 秒あたりの分析文字数によっては、必要な推論単位がわかりにくい場合があります。このオプションの手順は、リクエストする IU の数を決定するのに役立ちます。

1. **購入概要**から、時間単位、日単位、月単位の推定エンドポイントコストを確認します。

1. 起動から削除までの間、エンドポイントの料金が発生することを了解している場合は、このチェックボックスを選択してください。

1. [**エンドポイントの作成**] を選択します。

## リアルタイムカスタム分類の実行
<a name="cc-real-time-analysis"></a>

エンドポイントを作成したなら、カスタムモデルを使用してリアルタイム分析を実行できます。コンソールからリアルタイム分析を実行するには、2 つの方法があります。以下に示すように、テキストを入力するか、ファイルをアップロードできます。

**カスタムモデル (コンソール) を使用してリアルタイム分析を実行するには**

1. にサインイン AWS マネジメントコンソール し、[https://console.aws.amazon.com/comprehend/](https://console.aws.amazon.com/comprehend/) で Amazon Comprehend コンソールを開きます。

1. 左側のメニューで、[**リアルタイム分析**] を選択します。

1. [**入力タイプ**] で、[**分析タイプ**] に [**カスタム**] を選択します。

1. [**カスタムモデルタイプ**] で [**カスタム分類**] を選択します。

1. [**エンドポイント**] で、使用するエンドポイントを選択します。このエンドポイントは特定のカスタムモデルにリンクしています。

1. 分析用の入力データを指定するには、テキストを入力するか、ファイルをアップロードします。
   + テキストを入力するには

     1. **入力テキスト**を選択します。

     1. 分析するテキストを入力します。
   + ファイルをアップロードするには

     1. [**ファイルをアップロード**] を選択し、アップロードするファイル名を入力します。

     1. (オプション) **高度な読み取りアクション**では、デフォルトのテキスト抽出アクションをオーバーライドできます。詳細については、「[テキスト抽出オプションの設定](idp-set-textract-options.md)」を参照してください。

   最良の結果を得るには、入力タイプを分類子モデルのタイプと一致させてください。ネイティブ文書をプレーンテキストモデルに送信したり、プレーンテキストをネイティブ文書モデルに送信したりすると、コンソールに警告が表示されます。詳細については、「[調教分類モデル](training-classifier-model.md)」を参照してください。

1. [**分析**] を選択します。Amazon Comprehend は、カスタムモデルを使用して入力データを分析します。Amazon Comprehend には、検出されたクラスと各クラスの信頼性評価が表示されます。

# カスタム分類のリアルタイム分析 (API)
<a name="class-sync-api"></a>

Amazon Comprehend API を使用して、カスタム分類モデルでリアルタイム分析を実行できます。まずリアルタイム分析を実行するエンドポイントを作成します。エンドポイントを作成したら、リアルタイム分類を実行します。

このセクションの例では、UNIX、Linux、macOS 用のコマンド形式を使用しています。Windows の場合は、各行末のバックスラッシュ (\$1) Unix 連結文字をキャレット (^) に置き換えてください。

エンドポイントのスループットのプロビジョニングとそれに関連するコストについては、「[Amazon Comprehend エンドポイントの使用法](using-endpoints.md)」を参照してください。

**Topics**
+ [カスタム分類用のエンドポイントの作成](#create-endpoint-api)
+ [リアルタイムカスタム分類の実行](#cc-real-time-analysis-api)

## カスタム分類用のエンドポイントの作成
<a name="create-endpoint-api"></a>

次の例は、 AWS CLIを使用した [CreateEndpoint](https://docs.aws.amazon.com/comprehend/latest/APIReference/API_CreateEndpoint.html) API 演算機能を示しています。

```
aws comprehend create-endpoint \
    --desired-inference-units number of inference units \
    --endpoint-name endpoint name \
    --model-arn arn:aws:comprehend:region:account-id:model/example \
    --tags Key=My1stTag,Value=Value1
```

Amazon Comprehend は次のように応答します。

```
{
   "EndpointArn": "Arn"
}
```

## リアルタイムカスタム分類の実行
<a name="cc-real-time-analysis-api"></a>

カスタム分類モデル用のエンドポイントを作成したなら、そのエンドポイントを使用して [ClassifyDocument](https://docs.aws.amazon.com/comprehend/latest/APIReference/API_ClassifyDocument.html) API 演算を実行します。`text` または `bytes` パラメータを使用してテキストを提供できます。その他の種類の入力には、`bytes` パラメータを利用します。

画像ファイルや PDF ファイルの場合は、`DocumentReaderConfig` パラメーターを使用してデフォルトのテキスト抽出アクションをオーバーライドできます。詳細については、「[テキスト抽出オプションの設定](idp-set-textract-options.md)」を参照してください。

最良の結果を得るには、入力タイプを分類子モデルのタイプと一致させてください。ネイティブ文書をプレーンテキストモデルに送信したり、プレーンテキストファイルをネイティブ文書モデルに送信したりすると、API 応答に警告が含まれます。詳細については、「[調教分類モデル](training-classifier-model.md)」を参照してください。

### の使用 AWS Command Line Interface
<a name="cc-real-time-analysis-api-cli"></a>

以下の例は、classify-document CLI コマンドの使用方法を示しています。

#### を使用してテキストを分類する AWS CLI
<a name="cc-real-time-analysis-api-run-cli1"></a>

次の例では、テキストブロックに対してリアルタイム分類を実行します。

```
aws comprehend classify-document \
     --endpoint-arn arn:aws:comprehend:region:account-id:endpoint/endpoint name \
     --text 'From the Tuesday, April 16th, 1912 edition of The Guardian newspaper: The maiden voyage of the White Star liner Titanic, 
     the largest ship ever launched ended in disaster. The Titanic started her trip from Southampton for New York on Wednesday. Late 
     on Sunday night she struck an iceberg off the Grand Banks of Newfoundland. By wireless telegraphy she sent out signals of distress, 
     and several liners were near enough to catch and respond to the call.'
```

Amazon Comprehend は次のように応答します。

```
{
    "Classes": [ 
       { 
          "Name": "string",
          "Score": 0.9793661236763
       }
    ]
 }
```

#### を使用して半構造化ドキュメントを分類する AWS CLI
<a name="cc-real-time-analysis-api-run-cli2"></a>

PDF、Word、画像ファイルのカスタム分類を分析するには、`bytes` パラメーターに入力ファイルを指定して `classify-document` コマンドを実行します。

次の例では、画像を入力ファイルとして使用します。`fileb` オプションを使用して画像ファイルのバイトを Base-64 でエンコードします。詳細については、「 AWS Command Line Interface ユーザーガイド」の[「バイナリラージオブジェクト](https://docs.aws.amazon.com/cli/latest/userguide/cli-usage-parameters-types.html#parameter-type-blob)」を参照してください。

この例では、テキスト抽出オプションを設定するために `config.json` という名前の JSON ファイルも渡しています。

```
$ aws comprehend classify-document \
> --endpoint-arn arn \
> --language-code en \
> --bytes fileb://image1.jpg   \
> --document-reader-config file://config.json
```

**config.json** ファイルには次のコンテンツが含まれます。

```
 {
    "DocumentReadMode": "FORCE_DOCUMENT_READ_ACTION",
    "DocumentReadAction": "TEXTRACT_DETECT_DOCUMENT_TEXT"    
 }
```

Amazon Comprehend は次のように応答します。

```
{
    "Classes": [ 
       { 
          "Name": "string",
          "Score": 0.9793661236763
       }
    ]
 }
```

詳細については、「Amazon Comprehend API リファレンス」の「[ClassifyDocument](https://docs.aws.amazon.com/comprehend/latest/APIReference/API_ClassifyDocument.html)」を参照してください。

# リアルタイム分析の出力
<a name="outputs-class-sync"></a>

## テキスト入力の出力
<a name="outputs-class-sync-text"></a>

テキスト入力の場合、出力には分類子分析によって特定されたクラスまたはラベルのリストが含まれます。次の例は、2 つのクラスを持つリストを示しています。

```
"Classes": [
  {
     "Name": "abc",
     "Score": 0.2757999897003174,
     "Page": 1
  },
  {
    "Name": "xyz",
    "Score": 0.2721000015735626,
    "Page": 1
  }
]
```

## 半構造化入力の出力
<a name="outputs-class-sync-other"></a>

半構造化入力ドキュメントまたはテキストファイルの場合、出力には以下の追加フィールドが含まれる場合があります。
+ DocumentMetadata – ドキュメントに関する抽出情報。メタデータには、ドキュメント内のページのリストと、各ページから抽出された文字数が含まれます。リクエストに `Byte` パラメータがあると、このフィールドが応答に含まれます。
+ DocumentType — 入力ドキュメントの各ページのドキュメントタイプ。リクエストに `Byte` パラメータがあると、このフィールドが応答に含まれます。
+ エラー — 入力文書の処理中にシステムが検出したページレベルのエラー。エラーが検出されなかった場合、このフィールドは空です。
+ 警告 — 入力文書の処理中に警告が検出されました。入力文書タイプと指定したエンドポイントに関連付けられているモデルタイプが一致しない場合、応答には警告が含まれます。システムが警告を生成しなかった場合、このフィールドは空になります。

これらの出力フィールドの詳細については、Amazon Comprehend API リファレンスの「[ClassifyDocument](https://docs.aws.amazon.com/comprehend/latest/APIReference/API_ClassifyDocument.html)」を参照してください。

次の例は、1 ページのネイティブ PDF 入力文書の出力例です。

```
{
  "Classes": [
      {
          "Name": "123",
          "Score": 0.39570000767707825,
          "Page": 1
      },
      {
          "Name": "abc",
          "Score": 0.2757999897003174,
          "Page": 1
      },
      {
          "Name": "xyz",
          "Score": 0.2721000015735626,
          "Page": 1
      }
  ],
  "DocumentMetadata": {
      "Pages": 1,
      "ExtractedCharacters": [
          {
              "Page": 1,
              "Count": 2013
          }
      ]
  },
  "DocumentType": [
      {
          "Page": 1,
          "Type": "NATIVE_PDF"
      }
  ]
}
```

# 非同期ジョブの実行
<a name="running-classifiers"></a>

カスタム分類子を調教したなら、非同期ジョブを使用して大きな文書や複数の文書を 1 つのバッチで分析できます。

カスタム分類では、さまざまな入力文書タイプを受け入れます。詳細については、「[非同期カスタム分析の入力　](idp-inputs-async.md)」を参照してください。

画像ファイルまたはスキャンした PDF ドキュメントを分析する予定がある場合は、IAM ポリシーで 2 つの Amazon Textract API メソッド (DetectDocumentText と AnalyzeDocument) を使用するアクセス権限を付与する必要があります。Amazon Comprehend は、テキスト抽出中にこれらのメソッドを呼び出します。ポリシーの例については「[ドキュメント分析アクションを実行するために必要なアクセス許可](security_iam_id-based-policy-examples.md#security-iam-based-policy-perform-cmp-actions)」を参照してください。

プレーンテキストモデルを使用して半構造化文書 (画像、PDF、または Docx ファイル) を分類する場合は、`one document per file` 入力形式を使用します。また、`DocumentReaderConfig` パラメーターを [StartDocumentClassificationJob](https://docs.aws.amazon.com/comprehend/latest/APIReference/API_StartDocumentClassificationJob.html) リクエストに含めてください。

**Topics**
+ [非同期分析用のファイル形式](class-inputs-async.md)
+ [カスタム分類の分析ジョブ (コンソール)](analysis-jobs-custom-classifier.md)
+ [カスタム分類の分析ジョブ (API)](analysis-jobs-custom-class-api.md)
+ [非同期分析ジョブの出力](outputs-class-async.md)

# 非同期分析用のファイル形式
<a name="class-inputs-async"></a>

モデルを使用して非同期解析を実行する場合、入力文書の形式には `One document per line` か `one document per file` を選択できます。次の表に示すように、使用する形式は分析する文書のタイプによって異なります。


| 説明 | 形式 | 
| --- | --- | 
| 入力には複数のファイルが含まれます。各ファイルには 1 つの入力ドキュメントが含まれます。この形式は、新聞記事や科学論文など、サイズの大きい文書の集団に最適です。 また、ネイティブ文書分類子を使用する半構造化文書（画像、PDF、または Docx ファイル）にもこの形式を使用してください。 | ファイルごとに 1 文書 | 
|  入力は 1 つまたは複数のファイルです。ファイル内の各行は個別の入力文書です。この形式は、テキストメッセージやソーシャルメディアへの投稿など、短い文書に最適です。  | 1 行に 1 文書 | 

**ファイルごとに 1 文書**

`one document per file` 形式では、各ファイルが 1 つの入力文書を表します。

**1 行に 1 文書**

`One document per line` 形式では、各文書は別々の行に配置され、ヘッダーは使いません。ラベルは各行に含まれません (文書のラベルがまだわからないため)。ファイルの各行 (個々の文書の末尾) は、改行 (LF、\$1n) キャリッジリターン (CR、\$1r) またはその両方 (CRLF、\$1r\$1n) でなければなりません。UTF-8 の行区切り文字 (u\$12028) を使用して行を終了してはなりません。

以下の例は、 入力ファイルの形式を示しています。

```
Text of document 1 \n
Text of document 2 \n
Text of document 3 \n
Text of document 4 \n
```

どちらの形式でも、テキストファイルには UTF-8 エンコードを使用します。ファイルを作成したなら、入力データに使用している S3 バケットにファイルを配置します。

分類ジョブを開始するときに、この Amazon S3 ロケーションを入力データとして指定します。URI は、呼び出す API エンドポイントと同じリージョンである必要があります。URI は 1 つのファイル (「1 行に 1 つの文書」を使用する場合など) を指すことも、データファイルのコレクションのプレフィックスにすることもできます。

たとえば、URI `S3://bucketName/prefix` を使用する場合、プレフィックスが単一ファイルの場合、Amazon Comprehend はそのファイルを入力として使用します。複数のファイルがプレフィックスで始まる場合、Amazon Comprehend はそれらすべてを入力として使用します。

Amazon Comprehend に文書コレクションおよび出力ファイルが含まれる S3 バケットへのアクセス許可を付与します。詳細については、「[バッチ操作に必要なロールベースのアクセス許可](security_iam_id-based-policy-examples.md#auth-role-permissions)」を参照してください。

# カスタム分類の分析ジョブ (コンソール)
<a name="analysis-jobs-custom-classifier"></a>

[カスタム文書分類子]()を作成して調教したなら、コンソールを使用してモデルでカスタム分類ジョブを実行できます。

**カスタム分類ジョブを作成するには (コンソール)**

1. にサインイン AWS マネジメントコンソール し、[https://console.aws.amazon.com/comprehend/](https://console.aws.amazon.com/comprehend/) で Amazon Comprehend コンソールを開きます。

1. 左側のメニューから、[**分析ジョブ**] を選択し、[**ジョブの作成**] を選択します。

1. 分類ジョブに名前を付けます。この名前は、自分のアカウントと現在のリージョンで一意でなければなりません。

1. [**分析タイプ**] で [**カスタム分類**] を選択します。

1. 「**分類子の選択**」から、使用するカスタム分類子を選択します。

1. (オプション) Amazon Comprehend がジョブの処理中に使用するデータの暗号化を選択する場合は、[**ジョブの暗号化**] を選択します。次に、現在のアカウントに関連付けられた KMS キーを使用するか、別のアカウントの KMS キーを使用するかを選択します。
   + 現在のアカウントに関連付けられているキーを使用している場合は、**KMS** キー ID のキー ID を選択します。
   + 別のアカウントに関連付けられているキーを使用している場合は、**KMS** キー ARN の下にキー ID の ARN を入力します。
**注記**  
KMS キーの作成と使用や関連する暗号化の詳細については、「[キー管理サービス (KMS)](https://docs.aws.amazon.com/kms/latest/developerguide/overview.html)」を参照してください。

1. [**入力データ**] で、入力文書を含む Amazon S3 バケットの場所を入力するか、[**S3 を参照**] を選択してその場所に移動します。このバケットは、呼び出している API と同じリージョン内になければなりません。分類ジョブのアクセス許可に使用する IAM ロールには、S3 バケットに対する読み取り許可が必要です。

   モデルの調教を最高レベルの精度で行うには、入力のタイプを分類子のモデルタイプと一致させる必要があります。ネイティブ文書をプレーンテキストモデルに送信したり、プレーンテキスト文書をネイティブ文書モデルに送信したりすると、分類器ジョブは警告を返します。詳細については、「[調教分類モデル](training-classifier-model.md)」を参照してください。

1. (オプション) **入力形式**では、入力ドキュメントの形式を選択できます。形式は、ファイルごとに 1 文書にすることも、1 つのファイルの 1 行に 1 文書にすることもできます。1 行に 1 つの文書が適用されるのはテキスト文書だけです。

1. (オプション) **文書読み取りモードでは**、デフォルトのテキスト抽出アクションをオーバーライドできます。詳細については、「[テキスト抽出オプションの設定](idp-set-textract-options.md)」を参照してください。

1. [**出力データ**] で、Amazon Comprehend がジョブの出力データを書き込む Amazon S3 バケットの場所を入力するか、[S3 **を参照**] を選択してその場所に移動します。このバケットは、呼び出している API と同じリージョン内になければなりません。分類ジョブのアクセス許可に使用する IAM ロールには、S3 バケットに対する書き込み許可が必要です。

1. (オプション) ジョブの出力結果を暗号化する場合は、[**暗号化**] を選択します。次に、現在のアカウントに関連付けられた KMS キーを使用するか、別のアカウントの KMS キーを使用するかを選択します。
   + 現在のアカウントに関連付けられているキーを使用している場合は、**KMS キー ID** のキーエイリアスまたは ID を選択します。
   + 別のアカウントに関連付けられているキーを使用している場合は、**KMS キー ID** の下にキーエイリアス の ARN または ID を入力します。

1. (オプション) **VPC** から Amazon Comprehend にリソースを起動するには、VPC の下に VPC ID を入力するか、ドロップダウンリストから ID を選択します。

   1. [**サブネット**] でサブネットを選択します。最初のサブネットを選択すると、追加のサブネットを選択できます。

   1. セキュリティグループを指定した場合は、[**セキュリティグループ**] で、使用するセキュリティグループを選択します。最初のセキュリティグループを選択すると、追加のセキュリティグループを選択できます。
**注記**  
分類ジョブで VPC を使用する場合、[作成] と [開始] 操作に使用する `DataAccessRole` には、出力バケットへの VPC アクセス権限を与える必要があります。

1. [**ジョブの作成**] を選択して文書分類ジョブを作成します。

# カスタム分類の分析ジョブ (API)
<a name="analysis-jobs-custom-class-api"></a>

カスタム文書分類子を[作成して調教](train-custom-classifier-api.md)したなら、その分類子を使用して分析ジョブを実行できます。

[StartDocumentClassificationJob](https://docs.aws.amazon.com/comprehend/latest/APIReference/API_StartDocumentClassificationJob.html) 演算機能を使用して、ラベルのない文書の分類を開始します。入力文書が入った S3 バケット、出力文書の S3 バケット、使用する分類子を指定します。

モデルの調教を最高レベルの精度で行うには、入力のタイプを分類子のモデルタイプと一致させる必要があります。ネイティブ文書をプレーンテキストモデルに送信したり、プレーンテキスト文書をネイティブ文書モデルに送信したりすると、分類器ジョブは警告を返します。詳細については、「[調教分類モデル](training-classifier-model.md)」を参照してください。

 [StartDocumentClassificationJob](https://docs.aws.amazon.com/comprehend/latest/APIReference/API_StartDocumentClassificationJob.html) は非同期です。ジョブを開始すると、[DescribeDocumentClassificationJob](https://docs.aws.amazon.com/comprehend/latest/APIReference/API_DescribeDocumentClassificationJob.html) 演算機能を使用してジョブの進行状況を監視します。応答の `Status` フィールドに `COMPLETED` が表示されたなら、指定した場所にある出力にアクセスできます。

**Topics**
+ [の使用 AWS Command Line Interface](#get-started-api-customclass-cli)
+ [AWS SDK for Java または SDK for Python の使用](#get-started-api-customclass-java)

## の使用 AWS Command Line Interface
<a name="get-started-api-customclass-cli"></a>

以下の例は、演算機能 `StartDocumentClassificationJob`、その他のカスタム分類子 API を AWS CLIで使用する方法を示しています。

次の例は、Unix、Linux、macOS 用のコマンド形式を使用しています。Windows の場合は、各行末のバックスラッシュ (\$1) Unix 連結文字をキャレット (^) に置き換えてください。

演算機能 `StartDocumentClassificationJob` を使用してカスタム分類子を実行します。

```
aws comprehend start-document-classification-job \
     --region region \
     --document-classifier-arn arn:aws:comprehend:region:account number:document-classifier/testDelete \
     --input-data-config S3Uri=s3://S3Bucket/docclass/file name,InputFormat=ONE_DOC_PER_LINE \
     --output-data-config S3Uri=s3://S3Bucket/output \
     --data-access-role-arn arn:aws:iam::account number:role/resource name
```

演算機能 `DescribeDocumentClassificationJob` を使用して、ジョブ ID を含んだカスタム分類子に関する情報を取得します。

```
aws comprehend describe-document-classification-job \
     --region region \
     --job-id job id
```

演算機能 `ListDocumentClassificationJobs` を使用して、アカウント内のすべてのカスタム分類ジョブを一覧表示します。

```
aws comprehend list-document-classification-jobs
     --region region
```

## AWS SDK for Java または SDK for Python の使用
<a name="get-started-api-customclass-java"></a>

カスタム分類子を開始する方法の SDK の例については、「[AWS SDK または CLI `StartDocumentClassificationJob`で を使用する](example_comprehend_StartDocumentClassificationJob_section.md)」を参照してください。

# 非同期分析ジョブの出力
<a name="outputs-class-async"></a>

分析ジョブが完了すると、リクエストに指定した S3 バケットに結果が保存されます。

## テキスト入力の出力
<a name="outputs-class-async-text"></a>

どちらの形式のテキスト入力文書 (マルチクラスまたはマルチラベル) でも、ジョブの出力は `output.tar.gz` という名前の 1 ファイルで構成されます。これは圧縮されたアーカイブファイルで、出力を含むテキストファイルが含まれています。

**マルチクラス出力**

マルチクラスモードで調教した分類子を使用すると、結果に `classes` が表示されます。`classes` のそれぞれは、分類子を調教する際に一連のカテゴリを作成するために使用するクラスです。

これらの出力フィールドの詳細については、Amazon Comprehend API リファレンスの「[ClassifyDocument](https://docs.aws.amazon.com/comprehend/latest/APIReference/API_ClassifyDocument.html)」を参照してください。

以下の例では、相互に排他的なクラスを使用しています。

```
DOCUMENTARY
SCIENCE_FICTION
ROMANTIC_COMEDY
SERIOUS_DRAMA
OTHER
```

入力データ形式が 1 行に 1 文書の場合、出力ファイルには入力の 1 行につき 1 行が含まれます。各行には、ファイル名、入力行の 0 から始まる行番号、文書内の 1 つまたは複数のクラスが含まれます。最後は、Amazon Comprehend が個々のインスタンスを正しく分類したという確信で終わります。

例えば、次のようになります。

```
{"File": "file1.txt", "Line": "0", "Classes": [{"Name": "Documentary", "Score": 0.8642}, {"Name": "Other", "Score": 0.0381}, {"Name": "Serious_Drama", "Score": 0.0372}]}
{"File": "file1.txt", "Line": "1", "Classes": [{"Name": "Science_Fiction", "Score": 0.5}, {"Name": "Science_Fiction", "Score": 0.0381}, {"Name": "Science_Fiction", "Score": 0.0372}]}
{"File": "file2.txt", "Line": "2", "Classes": [{"Name": "Documentary", "Score": 0.1}, {"Name": "Documentary", "Score": 0.0381}, {"Name": "Documentary", "Score": 0.0372}]}
{"File": "file2.txt", "Line": "3", "Classes": [{"Name": "Serious_Drama", "Score": 0.3141}, {"Name": "Other", "Score": 0.0381}, {"Name": "Other", "Score": 0.0372}]}
```

入力データ形式が 1 ファイルにつき 1 文書の場合、出力ファイルには文書ごとに 1 行ずつ含まれます。各行には、ファイルの名前と文書内のクラス (1 つまたは複数) があります。最後は、Amazon Comprehend が個々のインスタンスを正しく分類したという確信で終わります。

例えば、次のようになります。

```
{"File": "file0.txt", "Classes": [{"Name": "Documentary", "Score": 0.8642}, {"Name": "Other", "Score": 0.0381}, {"Name": "Serious_Drama", "Score": 0.0372}]}
{"File": "file1.txt", "Classes": [{"Name": "Science_Fiction", "Score": 0.5}, {"Name": "Science_Fiction", "Score": 0.0381}, {"Name": "Science_Fiction", "Score": 0.0372}]}
{"File": "file2.txt", "Classes": [{"Name": "Documentary", "Score": 0.1}, {"Name": "Documentary", "Score": 0.0381}, {"Name": "Domentary", "Score": 0.0372}]}
{"File": "file3.txt", "Classes": [{"Name": "Serious_Drama", "Score": 0.3141}, {"Name": "Other", "Score": 0.0381}, {"Name": "Other", "Score": 0.0372}]}
```

**マルチラベル出力**

マルチラベルモードで調教した分類子を使用すると、結果に `labels` が表示されます。`labels` のそれぞれは、分類子を調教する際に一連のカテゴリを作成するために使用するラベルです。

以下の例では、これらの固有のラベルを使用しています。

```
SCIENCE_FICTION
ACTION
DRAMA
COMEDY
ROMANCE
```

入力データ形式が 1 行に 1 文書の場合、出力ファイルには入力の 1 行につき 1 行が含まれます。各行には、ファイル名、入力行の 0 から始まる行番号、文書内の 1 つまたは複数のクラスが含まれます。最後は、Amazon Comprehend が個々のインスタンスを正しく分類したという確信で終わります。

例えば、次のようになります。

```
{"File": "file1.txt", "Line": "0", "Labels": [{"Name": "Action", "Score": 0.8642}, {"Name": "Drama", "Score": 0.650}, {"Name": "Science Fiction", "Score": 0.0372}]}
{"File": "file1.txt", "Line": "1", "Labels": [{"Name": "Comedy", "Score": 0.5}, {"Name": "Action", "Score": 0.0381}, {"Name": "Drama", "Score": 0.0372}]}
{"File": "file1.txt", "Line": "2", "Labels": [{"Name": "Action", "Score": 0.9934}, {"Name": "Drama", "Score": 0.0381}, {"Name": "Action", "Score": 0.0372}]}
{"File": "file1.txt", "Line": "3", "Labels": [{"Name": "Romance", "Score": 0.9845}, {"Name": "Comedy", "Score": 0.8756}, {"Name": "Drama", "Score": 0.7723}, {"Name": "Science_Fiction", "Score": 0.6157}]}
```

入力データ形式が 1 ファイルにつき 1 文書の場合、出力ファイルには文書ごとに 1 行ずつ含まれます。各行には、ファイルの名前と文書内のクラス (1 つまたは複数) があります。最後は、Amazon Comprehend が個々のインスタンスを正しく分類したという確信で終わります。

例えば、次のようになります。

```
{"File": "file0.txt", "Labels": [{"Name": "Action", "Score": 0.8642}, {"Name": "Drama", "Score": 0.650}, {"Name": "Science Fiction", "Score": 0.0372}]}
{"File": "file1.txt", "Labels": [{"Name": "Comedy", "Score": 0.5}, {"Name": "Action", "Score": 0.0381}, {"Name": "Drama", "Score": 0.0372}]}
{"File": "file2.txt", "Labels": [{"Name": "Action", "Score": 0.9934}, {"Name": "Drama", "Score": 0.0381}, {"Name": "Action", "Score": 0.0372}]}
{"File": "file3.txt”, "Labels": [{"Name": "Romance", "Score": 0.9845}, {"Name": "Comedy", "Score": 0.8756}, {"Name": "Drama", "Score": 0.7723}, {"Name": "Science_Fiction", "Score": 0.6157}]}
```

## 半構造化された入力文書の出力
<a name="outputs-class-async-other"></a>

半構造化入力ドキュメントの場合、出力には以下の追加フィールドが含まれる場合があります。
+ DocumentMetadata – ドキュメントに関する抽出情報。メタデータには、ドキュメント内のページのリストと、各ページから抽出された文字数が含まれます。リクエストに `Byte` パラメータがあると、このフィールドが応答に含まれます。
+ DocumentType — 入力ドキュメントの各ページのドキュメントタイプ。リクエストに `Byte` パラメータがあると、このフィールドが応答に含まれます。
+ エラー — 入力文書の処理中にシステムが検出したページレベルのエラー。エラーが検出されなかった場合、このフィールドは空です。

これらの出力フィールドの詳細については、Amazon Comprehend API リファレンスの「[ClassifyDocument](https://docs.aws.amazon.com/comprehend/latest/APIReference/API_ClassifyDocument.html)」を参照してください。

次の例は、スキャンした 2 ページのPDF ファイルの出力を示しています。

```
[{ #First page output
    "Classes": [
        {
            "Name": "__label__2 ",
            "Score": 0.9993996620178223
        },
        {
            "Name": "__label__3 ",
            "Score": 0.0004330444789957255
        }
    ],
    "DocumentMetadata": {
        "PageNumber": 1,
        "Pages": 2
    },
    "DocumentType": "ScannedPDF",
    "File": "file.pdf",
    "Version": "VERSION_NUMBER"
},
#Second page output
{
    "Classes": [
        {
            "Name": "__label__2 ",
            "Score": 0.9993996620178223
        },
        {
            "Name": "__label__3 ",
            "Score": 0.0004330444789957255
        }
    ],
    "DocumentMetadata": {
        "PageNumber": 2,
        "Pages": 2
    },
    "DocumentType": "ScannedPDF",
    "File": "file.pdf",
    "Version": "VERSION_NUMBER" 
}]
```