Amazon Web Services ブログ

Amazon Translate を使用してオンデマンドで翻訳されたレビューを用いたウェブサイトの強化

e コマースプラットフォームの成功は、顧客による何千ものユーザーレビューとソーシャルシェアリングによって確立された評判に大きく依存しています。既存の顧客は、レビューすること、そして情報を共有することによって、実際に触れることができないものとの信頼関係を築きます。世界中の閲覧者がこの内容を利用できるようにするためにも、それらを現地語に翻訳して顧客の購買決定を助けることが極めて重要です。

古い車、ボート、およびオートバイを販売する会社を想像してみましょう。この会社はその e コマースビジネスを数か国に拡大し、会社の製品について他の買い物客が書いたレビューを顧客が簡単に読めるようにしたいと考えています。

この問題を解決するために、この会社がどのように Amazon Translate を活用して、オンデマンドの翻訳済みレビューをリアルタイムで取得できるかをご紹介します。また、いかに簡単にそのサービスを最新の e コマースアーキテクチャに統合できるかについても説明していきます。

Amazon Translate は、高度な深層学習技術を使用してソース言語からターゲット言語 (サポートされる言語ペアの中から選択されたもの) へのコンテンツの迅速な言語翻訳を提供する、高品質のニューラル機械翻訳サービスです。このサービスは、開発者がニューラル機械翻訳モデルを構築する複雑さを考慮することなく、翻訳されるテキストを提供する API を簡単に呼び出し、翻訳されたテキストをリアルタイムで取得することを可能にします。

e コマースアーキテクチャ

今回のサンプルウェブサイトは、静的ウェブサイトホスティングが有効化された Amazon S3 のパブリックバケットでホストされる JavaScript シングルページアプリケーションです。

このサンプル会社はそのグローバルプレゼンスを拡大したいと考えおり、Amazon CloudFront を使って世界各国への静的ウェブコンテンツの配信を迅速化することにしました。CloudFront を使用すると、レイテンシーを低減し、データ転送率を向上させるエッジロケーションのグローバルネットワークを使用してファイルがエンドユーザーに配信されます。

ウェブサイトはユーザー認証と承認のために Login with Amazon および Amazon Cognito ユーザープールと統合し、Amazon API Gateway を通じてデプロイされた API に REST API コールを実行します。

API リソースがリクエストされると、API Gateway が、製品のリストアップ、製品詳細の取得、ユーザーレビューの追加、およびユーザーレビューの翻訳などのビジネスロジック操作を実装する AWS Lambda 関数を呼び出します。

具体的には、Lambda 関数コードが以下のサービスとやり取りします。

  • Amazon Translate: 翻訳されたレビューを取得する
  • Amazon DynamoDB: 翻訳されたレビューを高速かつ柔軟な NoSQL データベースにキャッシュし、すでに翻訳されたレビューに対して Translate API を呼び出さないようにする
  • Amazon Comprehend: レビューのセンチメントを分析する
  • Amazon Kinesis Data Firehose: さらなる分析のため、Amazon S3 に翻訳とセンチメント分析のデータをキャプチャする
  • Amazon RDS for Aurora: 製品とレビューのデータを保存する

レビューの翻訳、および言語とセンチメントの検知

ユーザーがレビューを翻訳したい場合、ウェブサイトが Amazon API Gateway に API コールを実行し、この Amazon API Gateway が 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

translate_text() という API コールには、text (この場合はレビュー)、source language (レビューの元の言語)、そして target_language (レビューを翻訳したい言語) の 3 つのパラメータしか必要ありません。

言うまでもなく、ユーザーがレビューを書くとき、私たちにはそれがどの言語で書かれるのかがわかりません。新しいレビューを投稿する API コールは、Lambda 関数「PostReview」を呼び出します。PostReview は、レビューを Amazon RDS for Aurora に保存する前に、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 コールの両方が、パラメータとして text のみを必要とします。

まとめ

ウェブサイトを強化するために 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 は、ビジネスニーズに合わせた完全マネージド型でサーバーレスなソリューションの実装を可能にする強力なサービスで、想像できる限りのあらゆるユースケースが考えられます。

 


著者について

Giuseppe Angelo Porcelli は、イタリアのアマゾン ウェブ サービスに勤務するシニアソリューションアーキテクトです。数年間にわたるエンジニアリング経験を持つ Giuseppe は、AWS のサービスを利用して柔軟性と回復性を備えたアーキテクチャを設計するために企業のお客様を援助しており、人口知能と機械学習を専門分野としています。余暇の楽しみは、サッカーをすることです。

 

 

 

 

Diego Natali は、イタリアのアマゾン ウェブ サービスに勤務するソリューションアーキテクトです。 数年間にわたるエンジニアリング経験を持つ Diego は、AWS のサービスを利用して柔軟性と回復性を備えたアーキテクチャを設計するために ISV とスタートアップ企業のお客様を援助しています。余暇の楽しみは、映画鑑賞とオフロードバイクに乗ることです。