AWS Textract Service: Fotoğraftan Veri Anlamlandırma
Bu yazıda AWS servislerinden Textract service inceleyeceğiz. Eğer kendi sayfasını incelerseniz güzel özellikleri barındırdığını göreceksiniz.
Biz de önceki yazımızda Amazon S3’e nasıl dosya yükleyeceğimizden bahsetmiştik, o kodu da kullanarak döküman üzerinden analiz etmeye çalışacağız.
Siz de uygulamak isterseniz iki yazıdaki kodları da eklemeyi unutmayın.
Önceki yazıda oluşturduğumuz kullanıcıya aşağıdaki gibi AmazonTextractFullAccess iznini vermeyi unutmayın.
Amazon Textract için SDK ekliyoruz.
1 2 3 4 5 |
implementation 'software.amazon.awssdk:textract:2.20.109' |
Service
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 |
@RequiredArgsConstructor @Service public class DocumentService { private final AWSService awsService; public void textract(MultipartFile file) { String s3DocumentKey = awsService.upload(file); awsService.textractDocumentByS3DocumentKey(s3DocumentKey); } } |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 |
@RequiredArgsConstructor @Service public class AWSService { private final Logger logger = Logger.getLogger(AWSService.class.getName()); private final AmazonS3 amazonS3; private final AWSClientConfig awsClientConfig; private final TextractClient textractClient; public void textractDocumentByS3DocumentKey(String s3DocumentKey) { DetectDocumentTextRequest detectDocumentTextRequest = getDetectDocumentTextRequest(s3DocumentKey); DetectDocumentTextResponse textResponse = textractClient.detectDocumentText(detectDocumentTextRequest); logger.log(Level.INFO,"Textract file: {0} .",s3DocumentKey); for (Block block : textResponse.blocks()) { System.out.println(block.text()); } } private DetectDocumentTextRequest getDetectDocumentTextRequest(String s3DocumentKey) { return DetectDocumentTextRequest.builder() .document(getDocument(getS3Object(s3DocumentKey))) .build(); } private S3Object getS3Object(String s3DocumentKey) { return S3Object.builder() .bucket(awsClientConfig.getBucketName()) .name(s3DocumentKey) .build(); } private Document getDocument(S3Object s3Object) { return Document.builder() .s3Object(s3Object) .build(); } } |
Config
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 |
@Configuration @Getter public class AWSClientConfig { @Value("${aws.accessKey}") private String accessKey; @Value("${aws.secretAccessKey}") private String secretAccessKey; @Value("${aws.bucketName}") private String bucketName; private final Region region = Region.EU_CENTRAL_1; @Bean public TextractClient textractClient(){ return TextractClient.builder() .credentialsProvider(StaticCredentialsProvider.create(AwsBasicCredentials.create(accessKey, secretAccessKey))) .region(region) .build(); } } |
Dosya yüklediğimizde sonuçları görebiliriz.
Siz de deneyip düşüncelerinizi yazabilirsiniz. Sizce Textract başarılı mı?
Kaynak
- https://docs.aws.amazon.com/textract/latest/dg/what-is.html
- https://www.workfall.com/learning/blog/how-to-use-aws-textract-to-extract-data-from-any-image-pdf/
Faydalı olması dileğiyle.