Comprehend / Client / classify_document

classify_document#

Comprehend.Client.classify_document(**kwargs)#

Creates a classification request to analyze a single document in real-time. ClassifyDocument supports the following model types:

  • Custom classifier - a custom model that you have created and trained. For input, you can provide plain text, a single-page document (PDF, Word, or image), or Textract API output. For more information, see Custom classification in the Amazon Comprehend Developer Guide.

  • Prompt classifier - Amazon Comprehend provides a model for classifying prompts. For input, you provide English plain text input. For prompt classification, the response includes only the Classes field. For more information about prompt classifiers, see Prompt classifiers in the Amazon Comprehend Developer Guide.

If the system detects errors while processing a page in the input document, the API response includes an entry in Errors that describes the errors.

If the system detects a document-level error in your input document, the API returns an InvalidRequestException error response. For details about this exception, see Errors in semi-structured documents in the Comprehend Developer Guide.

See also: AWS API Documentation

Request Syntax

response = client.classify_document(
    Text='string',
    EndpointArn='string',
    Bytes=b'bytes',
    DocumentReaderConfig={
        'DocumentReadAction': 'TEXTRACT_DETECT_DOCUMENT_TEXT'|'TEXTRACT_ANALYZE_DOCUMENT',
        'DocumentReadMode': 'SERVICE_DEFAULT'|'FORCE_DOCUMENT_READ_ACTION',
        'FeatureTypes': [
            'TABLES'|'FORMS',
        ]
    }
)
Parameters:
  • Text (string) – The document text to be analyzed. If you enter text using this parameter, do not use the Bytes parameter.

  • EndpointArn (string) –

    [REQUIRED]

    The Amazon Resource Number (ARN) of the endpoint.

    For prompt classification, Amazon Comprehend provides the endpoint ARN: zzz.

    For custom classification, you create an endpoint for your custom model. For more information, see Using Amazon Comprehend endpoints.

  • Bytes (bytes) –

    Use the Bytes parameter to input a text, PDF, Word or image file.

    When you classify a document using a custom model, you can also use the Bytes parameter to input an Amazon Textract DetectDocumentText or AnalyzeDocument output file.

    To classify a document using the prompt classifier, use the Text parameter for input.

    Provide the input document as a sequence of base64-encoded bytes. If your code uses an Amazon Web Services SDK to classify documents, the SDK may encode the document file bytes for you.

    The maximum length of this field depends on the input document type. For details, see Inputs for real-time custom analysis in the Comprehend Developer Guide.

    If you use the Bytes parameter, do not use the Text parameter.

  • DocumentReaderConfig (dict) –

    Provides configuration parameters to override the default actions for extracting text from PDF documents and image files.

    • DocumentReadAction (string) – [REQUIRED]

      This field defines the Amazon Textract API operation that Amazon Comprehend uses to extract text from PDF files and image files. Enter one of the following values:

      • TEXTRACT_DETECT_DOCUMENT_TEXT - The Amazon Comprehend service uses the DetectDocumentText API operation.

      • TEXTRACT_ANALYZE_DOCUMENT - The Amazon Comprehend service uses the AnalyzeDocument API operation.

    • DocumentReadMode (string) –

      Determines the text extraction actions for PDF files. Enter one of the following values:

      • SERVICE_DEFAULT - use the Amazon Comprehend service defaults for PDF files.

      • FORCE_DOCUMENT_READ_ACTION - Amazon Comprehend uses the Textract API specified by DocumentReadAction for all PDF files, including digital PDF files.

    • FeatureTypes (list) –

      Specifies the type of Amazon Textract features to apply. If you chose TEXTRACT_ANALYZE_DOCUMENT as the read action, you must specify one or both of the following values:

      • TABLES - Returns information about any tables that are detected in the input document.

      • FORMS - Returns information and the data from any forms that are detected in the input document.

      • (string) –

        Specifies the type of Amazon Textract features to apply. If you chose TEXTRACT_ANALYZE_DOCUMENT as the read action, you must specify one or both of the following values:

        • TABLES - Returns additional information about any tables that are detected in the input document.

        • FORMS - Returns additional information about any forms that are detected in the input document.

Return type:

dict

Returns:

Response Syntax

{
    'Classes': [
        {
            'Name': 'string',
            'Score': ...,
            'Page': 123
        },
    ],
    'Labels': [
        {
            'Name': 'string',
            'Score': ...,
            'Page': 123
        },
    ],
    'DocumentMetadata': {
        'Pages': 123,
        'ExtractedCharacters': [
            {
                'Page': 123,
                'Count': 123
            },
        ]
    },
    'DocumentType': [
        {
            'Page': 123,
            'Type': 'NATIVE_PDF'|'SCANNED_PDF'|'MS_WORD'|'IMAGE'|'PLAIN_TEXT'|'TEXTRACT_DETECT_DOCUMENT_TEXT_JSON'|'TEXTRACT_ANALYZE_DOCUMENT_JSON'
        },
    ],
    'Errors': [
        {
            'Page': 123,
            'ErrorCode': 'TEXTRACT_BAD_PAGE'|'TEXTRACT_PROVISIONED_THROUGHPUT_EXCEEDED'|'PAGE_CHARACTERS_EXCEEDED'|'PAGE_SIZE_EXCEEDED'|'INTERNAL_SERVER_ERROR',
            'ErrorMessage': 'string'
        },
    ],
    'Warnings': [
        {
            'Page': 123,
            'WarnCode': 'INFERENCING_PLAINTEXT_WITH_NATIVE_TRAINED_MODEL'|'INFERENCING_NATIVE_DOCUMENT_WITH_PLAINTEXT_TRAINED_MODEL',
            'WarnMessage': 'string'
        },
    ]
}

Response Structure

  • (dict) –

    • Classes (list) –

      The classes used by the document being analyzed. These are used for multi-class trained models. Individual classes are mutually exclusive and each document is expected to have only a single class assigned to it. For example, an animal can be a dog or a cat, but not both at the same time.

      For prompt classification, the response includes a single class ( UNDESIRED_PROMPT), along with a confidence score. A higher confidence score indicates that the input prompt is undesired in nature.

      • (dict) –

        Specifies the class that categorizes the document being analyzed

        • Name (string) –

          The name of the class.

        • Score (float) –

          The confidence score that Amazon Comprehend has this class correctly attributed.

        • Page (integer) –

          Page number in the input document. This field is present in the response only if your request includes the Byte parameter.

    • Labels (list) –

      The labels used the document being analyzed. These are used for multi-label trained models. Individual labels represent different categories that are related in some manner and are not mutually exclusive. For example, a movie can be just an action movie, or it can be an action movie, a science fiction movie, and a comedy, all at the same time.

      • (dict) –

        Specifies one of the label or labels that categorize the document being analyzed.

        • Name (string) –

          The name of the label.

        • Score (float) –

          The confidence score that Amazon Comprehend has this label correctly attributed.

        • Page (integer) –

          Page number where the label occurs. This field is present in the response only if your request includes the Byte parameter.

    • DocumentMetadata (dict) –

      Extraction information about the document. This field is present in the response only if your request includes the Byte parameter.

      • Pages (integer) –

        Number of pages in the document.

      • ExtractedCharacters (list) –

        List of pages in the document, with the number of characters extracted from each page.

        • (dict) –

          Array of the number of characters extracted from each page.

          • Page (integer) –

            Page number.

          • Count (integer) –

            Number of characters extracted from each page.

    • DocumentType (list) –

      The document type for each page in the input document. This field is present in the response only if your request includes the Byte parameter.

      • (dict) –

        Document type for each page in the document.

        • Page (integer) –

          Page number.

        • Type (string) –

          Document type.

    • Errors (list) –

      Page-level errors that the system detected while processing the input document. The field is empty if the system encountered no errors.

      • (dict) –

        Text extraction encountered one or more page-level errors in the input document.

        The ErrorCode contains one of the following values:

        • TEXTRACT_BAD_PAGE - Amazon Textract cannot read the page. For more information about page limits in Amazon Textract, see Page Quotas in Amazon Textract.

        • TEXTRACT_PROVISIONED_THROUGHPUT_EXCEEDED - The number of requests exceeded your throughput limit. For more information about throughput quotas in Amazon Textract, see Default quotas in Amazon Textract.

        • PAGE_CHARACTERS_EXCEEDED - Too many text characters on the page (10,000 characters maximum).

        • PAGE_SIZE_EXCEEDED - The maximum page size is 10 MB.

        • INTERNAL_SERVER_ERROR - The request encountered a service issue. Try the API request again.

        • Page (integer) –

          Page number where the error occurred.

        • ErrorCode (string) –

          Error code for the cause of the error.

        • ErrorMessage (string) –

          Text message explaining the reason for the error.

    • Warnings (list) –

      Warnings detected while processing the input document. The response includes a warning if there is a mismatch between the input document type and the model type associated with the endpoint that you specified. The response can also include warnings for individual pages that have a mismatch.

      The field is empty if the system generated no warnings.

      • (dict) –

        The system identified one of the following warnings while processing the input document:

        • The document to classify is plain text, but the classifier is a native document model.

        • The document to classify is semi-structured, but the classifier is a plain-text model.

        • Page (integer) –

          Page number in the input document.

        • WarnCode (string) –

          The type of warning.

        • WarnMessage (string) –

          Text message associated with the warning.

Exceptions

  • Comprehend.Client.exceptions.InvalidRequestException

  • Comprehend.Client.exceptions.ResourceUnavailableException

  • Comprehend.Client.exceptions.TextSizeLimitExceededException

  • Comprehend.Client.exceptions.InternalServerException