Как вы фильтруете документы по размеру перед отправкой в ​​AWS Comprehend через boto3? - PullRequest
0 голосов
/ 11 октября 2019

В настоящее время я пытаюсь использовать библиотеку boto3 для выполнения пакетного анализа настроений в коллекции документов с помощью службы AWS Comprehend. Сервис имеет некоторые ограничения по размеру документа (документы не могут превышать 5000 байт);поэтому я пытаюсь предварительно фильтровать документы перед использованием boto3 API. См. Фрагмент кода ниже:

...
batch = []
for doc in docs:
    if isinstance(doc, str) and len(doc) > 0 and sys.getsizeof(doc) < 5000:
        batch.append(doc)

data = self.client.batch_detect_sentiment(TextList=batch, LanguageCode=language)
...

Я предполагал, что попытка отфильтровать документы с помощью sys.getsizeof приведет к фильтрации любых строк, которые превысят ограничение в 5000 байт службы. Тем не менее, я все еще получаю следующее исключение с моей фильтрацией:

botocore.errorfactory.TextSizeLimitExceededException: An error occurred (TextSizeLimitExceededException) when calling the BatchDetectSentiment operation: Input text size exceeds limit. Max length of request text allowed is 5000 bytes while in this request the text size is 5523 bytes

Существует ли более эффективный способ расчета размера документа, отправляемого в Comprehend, чтобы избежать превышения максимального размера документа

...