BLOG

Amazon Translate를 사용하여 온디맨드 번역 리뷰를 통해 웹 사이트 작동시키기
작성일: 2018년 12월 31일

전자상거래 플랫폼의 성공은 수천 명의 사용자 리뷰와 고객들의 소셜 공유를 통해 확립된 명성에 크게 의존합니다. 정보를 리뷰하고 공유함으로써 기존 고객들은 물리적으로 접촉할 수 없는 어떤 것과의 신뢰 관계를 구축합니다. 이 콘텐츠가 전 세계 시청자들이 접근할 수 있도록 하려면, 고객이 구매 결정을 내리도록 돕기 위해 현지 언어로 번역하는 것이 중요합니다.

 

오래된 자동차, 보트, 오토바이를 판매하는 회사가 다음과 같은 문제를 안고 있다고 상상해 보십시오. 그들은 전자상거래 사업을 여러 나라로 확장하고 있으며, 그들은 고객들이 다른 쇼핑객들이 쓴 모든 상품의 리뷰를 쉽게 읽을 수 있기를 원합니다.

이 문제를 해결하기 위해, 이 회사가 Amazon Translate를 활용하여 실시간으로 온디맨드 번역 리뷰를 얻을 수 있는 방법을 보여줄 것입니다. 저희는 또한 그들이 얼마나 쉽게 서비스를 현대 전자상거래 아키텍처에 통합하는지 보여줄 것입니다.

 

Amazon Translate는 지원되는 쌍 중에서 선택한 소스 언어에서 타겟 언어로 콘텐츠를 빠르게 번역하기 위해 고급 딥 러닝 기술을 사용하는 고품질 신경 기계 번역 서비스입니다. 개발자들이 번역할 텍스트를 제공하는 API를 쉽게 호출할 수 있게 해주며, 실시간으로 번역된 버전을 얻을 수 있게 해주며, 신경 기계 번역 모델을 구축하는 복잡성을 감출 수 있습니다.

 

전자상거래 구조

저희의 예제 웹 사이트는 정적 웹 사이트 호스팅이 활성화된 공개 Amazon S3 버킷에서 호스팅되는 JavaScript 단일 페이지 응용프로그램입니다.

 

예를 들어, 이 회사는 전 세계에 그들의 입지를 넓히기를 원하기 때문에, 그들은 전 세계에 그들의 정적 웹 콘텐츠의 배포 속도를 높이기 위해 Amazon CloudFront를 이용하기로 결정했습니다. CloudFront를 사용하면 대기 시간을 줄이고 데이터 전송 속도를 높일 수 있는 에지 위치의 글로벌 네트워크를 사용하여 엔드유저에게 파일이 전송됩니다.

 

사용자 인증 및 허가를 위해 Amazon 및 Amazon Cognito User Pools에 로그인하여 웹사이트를 통합하고, Amazon API 게이트웨이를 통해 배포된 API에 REST API 호출을 수행합니다.

 

API 리소스가 요청되면 API Gateway는 제품 목록 작성, 제품 상세 정보 가져오기, 사용자 리뷰 추가, 사용자 리뷰 번역 등 비즈니스 로직 작업을 구현하는 AWS Lambda 함수를 호출합니다.

 

보다 구체적으로 Lambda 함수 코드는 다음과 상호 작용합니다.

  • Amazon Translate, 번역된 리뷰 보기
  • Amazon DynamoDB, 빠르고 유연한 NoSQL 데이터베이스에 변환된 리뷰를 캐시하고 이미 변환된 리뷰에 대한 Translate API 호출 방지
  • Amazon Comprehend, 리뷰의 감정 분석
  • Amazon Kinesis Data Firehose, 추가 분석을 위해 번역 및 감정 분석 데이터를 Amazon S3로 캡처
  • Aurora용 Amazon RDS, 제품 저장 및 데이터 검토

 

리뷰 번역, 언어 및 감정 탐지하기

사용자가 리뷰를 번역하고 싶은 곳이라면, 웹사이트는 Amazon API Gateway로 API 호출을 해서 Amazon Translate로 API 호출을 하는 Lambda 함수를 실행할 것입니다. 다음 코드 조각에서 볼 수 있듯이 AWS SDK를 사용하여 Python에서 이 호출을 얼마나 쉽게 할 수 있는지 알 수 있습니다.

 

try:

# Translate text

result = translate_client.translate_text(Text=review, SourceLanguageCode=source_language, TargetLanguageCode=target_language)

logger.info(“Translation result: ” +str(result))

except Exception as e:

logger.error(str(e))

raise e

 

API 호출 translate_text()에는 텍스트(이 경우 리뷰), 소스 언어(리뷰의 원래 언어), 타겟_언어(리뷰를 번역하려는 언어)의 세 가지 파라미터만 필요합니다.

 

분명히 사용자가 리뷰를 작성할 때 저희는 리뷰가 어떤 언어로 작성되는지 모릅니다. 새로운 리뷰를 게시하기 위한 API 호출은 Lambda 함수를 PostReview로 호출합니다. PostReview는 Aurora용 Amazon RDS를 저장하기 전에 Amazon Comprehend를 사용하여 리뷰가 작성된 언어를 이해합니다. Amazon Comprehend는 기계 학습을 사용하여 언어를 이해하는 NLP(자연어 처리) 서비스 입니다. Amazon Comprehend는 또한 실행하기에 매우 간단합니다. 코드 조각은 다음과 같습니다.

 

try:

# Amazon Comprehend

language = comprehend.detect_dominant_language(Text = review)

logger.info(“Language return: ” + str(language))

except Exception as e:

logger.error(str(e))

raise e

 

리뷰가 게시되면, Lambda 함수는 예제 웹사이트에서 이모티콘으로 번역되는 감정도 감지할 것입니다. 리뷰의 감정을 이해하는 것 또한 하나의 코드 라인입니다.

 

try:

# Amazon Comprehend

sentiment = comprehend.detect_sentiment(Text=review, LanguageCode=language)

logger.info(“Sentiment ->: ” + str(sentiment))

except Exception as e:

logger.error(str(e))

raise e

 

보시다시피, Amazon Comprehend detect_dominant_language() 와 detect_sentiment() API 호출은 모두 파라미터로 텍스트를 필요로 할 것입니다.

 

요약

여러분이 어떻게 Amazon Translate와 Amazon Comprehend를 사용하여 여러분의 웹사이트에 작동시킬수 있는지에 대한 예를 보셨으니, 저희는 여러분이 여러분만의 솔루션을 만들도록 영감을 얻기를 바랍니다.

 

Amazon Translate는 몇 밀리초 이내에 전체 문장의 번역을 얻을 수 있으며, 먼저 저장한 후 전달하기 위해 다수의 번역을 실행하기 위한 동기식 온디맨드 번역과 비동기식 업무 모두에서 사용할 수 있습니다.

 

Amazon Translate, Amazon Comprehend, Amazon Kinesis Data Firehose, Amazon S3, Amazon RDS, Amazon DynamoDB, Amazon Route 53, Amazon S3, Amazon CloudFront, Amazon API Gateway, Amazon Cognito는 비즈니스 요구사항에 맞게 완전히 관리되고 서버리스 솔루션을 구현할 수 있는 강력한 서비스입니다. 가능한 사용 사례는 여러분의 상상력에 의해서만 제한됩니다.

 

원문 URL : https://aws.amazon.com/ko/blogs/machine-learning/power-your-website-with-on-demand-translated-reviews-using-amazon-translate/

** 메가존클라우드 TechBlog는 AWS BLOG 영문 게재글중에서 한국 사용자들에게 유용한 정보 및 콘텐츠를 우선적으로 번역하여 내부 엔지니어 검수를 받아서, 정기적으로 게재하고 있습니다. 추가로 번역및 게재를 희망하는 글에 대해서 관리자에게 메일 또는 SNS페이지에 댓글을 남겨주시면, 우선적으로 번역해서 전달해드리도록 하겠습니다.