BigQueryでフィードバックを翻訳ML.TRANSLATE関数の利用
本記事では、Google Cloud上でBigQueryとCloud Translation APIを接続し、USリージョンでの製品フィードバックデータを日本語に翻訳し、結果を新しいテーブルに保存する方法を紹介します。特に、適切な権限設定、接続設定、そしてML.TRANSLATE関数を用いた翻訳とデータ保存までの流れを説明します。
目次
はじめに
本記事では、Google Cloud上でBigQueryとCloud Translation APIを接続し、USリージョンでの製品フィードバックデータを日本語に翻訳し、結果を新しいテーブルに保存する方法を紹介します。特に、適切な権限設定、接続設定、そしてML.TRANSLATE関数を用いた翻訳とデータ保存までの流れを説明します。
2. 必要なAPIと権限の設定
翻訳とデータ保存のために、以下のAPIを有効化し、必要な権限を設定します。
必要なAPIの有効化
- BigQuery API
- BigQuery Connection API
- Cloud Translation API
Google Cloudコンソールから、各APIを有効化してください。
必要な権限の設定
サービスアカウントには、以下の権限を付与します。
- BigQuery Connection管理者 (
roles/bigquery.connectionAdmin
) - BigQuery モデルの作成・実行権限:
bigquery.models.create
bigquery.jobs.create
bigquery.models.getData
- Cloud Translation APIユーザー (
roles/cloudtranslate.user
) - Service Usage Consumer (
roles/serviceusage.serviceUsageConsumer
)
設定手順: IAMページにて、サービスアカウントに上記のロールを付与します。Google CloudコンソールでプロジェクトのIAMページを開き、適切なサービスアカウントにこれらのロールを追加します。
3. 接続の作成 (USリージョン)
次に、BigQueryとCloud Translation APIの接続を作成します。今回はUSリージョンでの接続を作成します。
- Google Cloudコンソールにアクセスし、[BigQuery]ページに移動します。
- 左側のメニューから「データセット」→「外部データソースへの接続」を選択し、
add
ボタンをクリック。 - 接続タイプとして「リモートモデル」を選択し、接続IDに
ML_TRA
を設定。 - リージョンは
us
に設定し、接続を作成します。
接続が作成されると、接続IDが projects/project-dev/locations/us/connections/ML_TRA
となります。
4. アンケートデータの作成
翻訳対象の製品フィードバックに関するアンケートデータをBigQueryに作成します。
CREATE OR REPLACE TABLE `since-dev.dataset.product_feedback` AS
SELECT "How easy is it to use the product?" AS ease_of_use, "Very easy" AS feedback, "en" AS language
UNION ALL
SELECT "¿Qué tan fácil es usar el producto?", "Muy fácil", "es" AS language
UNION ALL
SELECT "Quelle est la facilité d'utilisation du produit?", "Très facile", "fr" AS language
UNION ALL
SELECT "Wie einfach ist es, das Produkt zu verwenden?", "Sehr einfach", "de" AS language
UNION ALL
SELECT "製品の使いやすさはいかがですか?", "非常に簡単", "ja" AS language
UNION ALL
SELECT "How easy is it to use the product?", "Not easy at all", "en" AS language
UNION ALL
SELECT "¿Qué tan fácil es usar el producto?", "No es fácil", "es" AS language
UNION ALL
SELECT "Quelle est la facilité d'utilisation du produit?", "Pas facile", "fr" AS language
UNION ALL
SELECT "Wie einfach ist es, das Produkt zu verwenden?", "Nicht einfach", "de" AS language;
これで、project-dev.dataset.product_feedback テーブルが作成され、異なる言語で記述された製品フィードバックが保存されます。
5. リモートモデルの作成
次に、ML.TRANSLATE関数を使用するためのリモートモデルを作成します。
CREATE OR REPLACE MODEL
`project-dev.dataset.translation_model`
REMOTE WITH CONNECTION `projects/project-dev/locations/us/connections/ML_TRA`
OPTIONS (REMOTE_SERVICE_TYPE = 'CLOUD_AI_TRANSLATE_V3');
リモートモデル作成のポイント:
REMOTE WITH CONNECTION
で、接続IDprojects/since-dev/locations/us/connections/ML_TRA
を指定。REMOTE_SERVICE_TYPE
にCLOUD_AI_TRANSLATE_V3
を設定し、Cloud Translation APIを使用します。
6. 翻訳結果を新しいテーブルに保存
翻訳されたデータを新しいテーブルに保存するためのSQLは以下の通りです。
CREATE OR REPLACE TABLE `project-dev.dataset.translated_feedback` AS
SELECT *
FROM ML.TRANSLATE(
MODEL `project-dev.dataset.translation_model`,
TABLE `project-dev.dataset.product_feedback`,
STRUCT('translate_text' AS translate_mode, 'ja' AS target_language_code)
);
説明:
- CREATE OR REPLACE TABLE: 翻訳されたデータを保存する新しいテーブル
prodect-dev.dataset.translated_feedback
を作成します。既に同名のテーブルが存在する場合は上書きされます。 - ML.TRANSLATE: この部分で、翻訳処理を行い、その結果を新しいテーブルに保存します。
7. 翻訳結果の確認
保存されたテーブル project-dev.dataset.translated_feedback を確認し、翻訳が正しく行われたことを確認します。
SELECT * FROM `project-dev.dataset.translated_feedback`;
翻訳結果は以下のようになります。
翻訳結果:
まとめ
本記事では、BigQueryとCloud Translation APIを接続して、製品フィードバックデータを日本語に翻訳し、その結果を新しいテーブルに保存する方法を解説しました。翻訳の結果を永続化することで、後続の分析やレポート作成に役立てることができます。権限の設定やAPIの有効化など、事前準備をしっかり行うことが重要です。