C# での Translation API の使用

1. 概要

Google Cloud Translation API のシンプルなプログラマティック インターフェースでは、最先端のニューラル機械翻訳を使用して任意の文字列をサポート対象の言語に動的に翻訳できます。ソース言語が不明な場合に言語を検出することもできます。

この Codelab では、C# での Translation API の使用に焦点を当てます。利用可能な言語を一覧表示する方法、テキストを翻訳する方法、指定されたテキストの言語を検出する方法を学びます。

学習内容

  • Cloud Shell を使用する方法
  • Translation API を有効にする方法
  • API リクエストを認証する方法
  • C# 用 Google Cloud クライアント ライブラリをインストールする方法
  • 利用可能な言語を一覧表示する方法
  • テキストの翻訳方法
  • 言語の検出方法

必要なもの

  • Google Cloud Platform プロジェクト
  • ChromeFirefox などのブラウザ
  • C# の使用経験

アンケート

このチュートリアルをどのように使用されますか?

通読するのみ 通読し、演習を行う

C# の使用感をどのように評価されますか。

初心者 中級者 上級者

Google Cloud Platform サービスのご利用経験についてどのように評価されますか?

<ph type="x-smartling-placeholder"></ph> 初心者 中級 上達 をご覧ください。

2. 設定と要件

セルフペース型の環境設定

  1. Google Cloud Console にログインして、プロジェクトを新規作成するか、既存のプロジェクトを再利用します。Gmail アカウントも Google Workspace アカウントもまだお持ちでない場合は、アカウントを作成してください。

295004821bab6a87.png

37d264871000675d.png

96d86d3d5655cdbe.png

  • プロジェクト名は、このプロジェクトの参加者に表示される名称です。Google API では使用されない文字列です。いつでも更新できます。
  • プロジェクト ID は、すべての Google Cloud プロジェクトにおいて一意でなければならず、不変です(設定後は変更できません)。Cloud コンソールでは一意の文字列が自動生成されます。通常は、この内容を意識する必要はありません。ほとんどの Codelab では、プロジェクト ID(通常は PROJECT_ID と識別されます)を参照する必要があります。生成された ID が好みではない場合は、ランダムに別の ID を生成できます。または、ご自身で試して、利用可能かどうかを確認することもできます。このステップ以降は変更できず、プロジェクトを通して同じ ID になります。
  • なお、3 つ目の値として、一部の API が使用するプロジェクト番号があります。これら 3 つの値について詳しくは、こちらのドキュメントをご覧ください。
  1. 次に、Cloud のリソースや API を使用するために、Cloud コンソールで課金を有効にする必要があります。この Codelab の操作をすべて行って、費用が生じたとしても、少額です。このチュートリアルの終了後に請求が発生しないようにリソースをシャットダウンするには、作成したリソースを削除するか、プロジェクトを削除します。Google Cloud の新規ユーザーは、300 米ドル分の無料トライアル プログラムをご利用いただけます。

Cloud Shell を起動する

Google Cloud はノートパソコンからリモートで操作できますが、この Codelab では、Google Cloud Shell(Cloud 上で動作するコマンドライン環境)を使用します。

Google Cloud Console で、右上のツールバーにある Cloud Shell アイコンをクリックします。

84688aa223b1c3a2.png

プロビジョニングと環境への接続にはそれほど時間はかかりません。完了すると、次のように表示されます。

320e18fedb7fbe0.png

この仮想マシンには、必要な開発ツールがすべて用意されています。永続的なホーム ディレクトリが 5 GB 用意されており、Google Cloud で稼働します。そのため、ネットワークのパフォーマンスと認証機能が大幅に向上しています。この Codelab での作業はすべて、ブラウザ内から実行できます。インストールは不要です。

3. Translation API を有効にする

Translation API を使用する前に、API を有効にする必要があります。この API を有効にするには、Cloud Shell で次のコマンドを使用します。

gcloud services enable translate.googleapis.com

4. C# 用 Google Cloud Translation API クライアント ライブラリをインストールする

まず、Translation API サンプルの実行に使用するシンプルな C# コンソール アプリケーションを作成します。

dotnet new console -n TranslationApiDemo

The template "Console Application" was created successfully.
Processing post-creation actions...
...
Restore succeeded.

次に、TranslationApiDemo フォルダに移動し、Google.Cloud.Translation.V2 NuGet パッケージをプロジェクトに追加します。

cd TranslationApiDemo/
dotnet add package Google.Cloud.Translation.V2

info : Adding PackageReference for package 'Google.Cloud.Translation.V2' into project '/home/atameldev/TranslationDemo/TranslationDemo.csproj'.
log  : Restoring packages for /home/atameldev/TranslationDemo/TranslationDemo.csproj...
...
info : PackageReference for package 'Google.Cloud.Translation.V2' version '1.0.0' added to file '/home/atameldev/TranslationDemo/TranslationDemo.csproj'.

これで Translation API を使用する準備が整いました。

5. 使用可能な言語を一覧表示する

このセクションでは、まず Translation API で利用可能なすべての言語の一覧を表示します。

まず、Cloud Shell の右上からコードエディタを開きます。

fd3fc1303e63572.png

TranslationApiDemo フォルダ内の Program.cs ファイルに移動し、コードを次のように置き換えます。

using System;
using Google.Cloud.Translation.V2;

namespace TranslationApiDemo
{
    class Program
    {
        static void Main(string[] args)
        {
            var client = TranslationClient.Create();
            foreach (var language in client.ListLanguages(LanguageCodes.English))
            {
                Console.WriteLine($"{language.Code}\t{language.Name}");
            }
        }
    }
}

1 ~ 2 分ほどかけてコードを学習**。ここでは、英語で記載していますが、どの言語で記載してもかまいません。

Cloud Shell に戻り、アプリを実行します。次のような出力が表示されます。

dotnet run

af        Afrikaans
sq        Albanian
am        Amharic
ar        Arabic
hy        Armenian
az        Azerbaijani
eu        Basque
be        Belarusian
...
yi        Yiddish
yo        Yoruba
zu        Zulu

概要

このステップでは、Translation API で利用可能なすべての言語を一覧表示することができました。サポートされている言語の全一覧については、言語サポートのページをご覧ください。

6. テキストを翻訳する

Translate API を使用すると、ある言語のテキストを別の言語に翻訳できます。テキストはニューラル機械翻訳(NMT)モデルを使用して翻訳されます。NMT モデルがリクエストされた言語の翻訳ペアでサポートされていない場合は、フレーズベース機械翻訳(PBMT)モデルが使用されます。

テキストを翻訳するには、TranslationApiDemo フォルダ内の Program.cs ファイルに移動し、コードを次のように置き換えます。

using System;
using Google.Cloud.Translation.V2;

namespace TranslationApiDemo
{
    class Program
    {
        static void Main(string[] args)
        {
            var client = TranslationClient.Create();
            var text = "Hello World!";
            var response = client.TranslateText(text, LanguageCodes.Turkish, LanguageCodes.English);
            Console.WriteLine(response.TranslatedText);
        }
    }
}

1 ~ 2 分ほどかけてコードを学習します。「Hello World」というテキストが翻訳されます。英語からトルコ語**

Cloud Shell に戻り、アプリを実行します。次のような出力が表示されます。

dotnet run

Selam Dünya!

概要

このステップでは、Translation API を使用して、英語からトルコ語にテキストを翻訳できました。詳しくは、テキストの翻訳をご覧ください。

7. 言語の検出

Translate API を使用してテキスト文字列の言語を検出することもできます。

言語を検出するには、TranslationApiDemo フォルダ内の Program.cs ファイルに移動し、コードを次のように置き換えます。

using System;
using Google.Cloud.Translation.V2;

namespace TranslationApiDemo
{
    class Program
    {
        static void Main(string[] args)
        {
            var client = TranslationClient.Create();
            var text = "Selam Dünya!";
            var detection = client.DetectLanguage(text);
            Console.WriteLine($"Language: {detection.Language}\tConfidence: {detection.Confidence}");
        }
    }
}

1 ~ 2 分ほどかけてコードを学習します。「Selam Dünya!」というテキストの言語を検出します。これはトルコ語のフレーズになります**。

Cloud Shell に戻り、アプリを実行します。次のような出力が表示されます。

dotnet run

Language: tr        Confidence: 1

概要

このステップでは、Translation API を使用してテキストの言語を検出できました。詳しくは、言語の検出をご覧ください。

8. 完了

C# を使用して Translation API を使用する方法を学びました。

クリーンアップ

このクイックスタートで使用するリソースに対して Google Cloud Platform アカウントに課金されないようにするには:

  • Cloud Platform コンソールに移動します。
  • シャットダウンするプロジェクトを選択し、[削除] をクリックしますプロジェクトの削除がスケジュールされます。

詳細

ライセンス

この作業はクリエイティブ・コモンズの表示 2.0 汎用ライセンスにより使用許諾されています。