AWS Comprehend支持增量式训练,可以使用StartDocumentClassificationJob、StartTopicsDetectionJob和StartEntitiesDetectionJob等API。以下是一个使用StartDocumentClassificationJob API进行增量式文本分类的示例代码:
import boto3
client = boto3.client('comprehend')
job_name = 'incremental-job'
input_s3_uri = 's3://bucket-name/input-data'
output_s3_uri = 's3://bucket-name/output-data'
data_access_role_arn = 'arn:aws:iam::123456789012:role/DataAccessRole'
document_classifier_arn = 'arn:aws:comprehend:us-west-2:123456789012:document-classifier/my-classifier'
input_format = 'ONE_DOC_PER_LINE'
response = client.start_document_classification_job(
JobName=job_name,
InputDataConfig={
'S3Uri': input_s3_uri,
'InputFormat': input_format
},
OutputDataConfig={
'S3Uri': output_s3_uri
},
DataAccessRoleArn=data_access_role_arn,
DocumentClassifierArn=document_classifier_arn,
OutputS3BucketName=output_s3_uri.split('/')[2], # 这里是为了检查桶是否存在而提取bucket name,可以根据需求改写
InputS3BucketName=input_s3_uri.split('/')[2]
)
print(response)
在增量式训练中,你可以使用之前的模型并增量更新它,或者直接为新的数据训练一个新模型。为了利用之前的模型,你可以指定DocumentClassifierArn。如果在增量训练过程中发现错误或需要停止训练,可以使用StopTrainingDocumentClassifier API停止训练。