ARC130

概要
チャレンジラボでは、シナリオと一連のタスクが提供されます。手順ガイドに沿って進める形式ではなく、コース内のラボで習得したスキルを駆使して、ご自身でタスクを完了していただきます。タスクが適切に完了したかどうかは、このページに表示される自動スコアリング システムで確認できます。
チャレンジラボは、Google Cloud の新しいコンセプトについて学習するためのものではありません。デフォルト値を変更する、エラー メッセージを読み調査を行ってミスを修正するなど、習得したスキルを応用する能力が求められます。
100% のスコアを達成するには、制限時間内に全タスクを完了する必要があります。
設定と要件
[ラボを開始] ボタンをクリックする前に
こちらの説明をお読みください。ラボには時間制限があり、一時停止することはできません。タイマーは、Google Cloud のリソースを利用できる時間を示しており、[ラボを開始] をクリックするとスタートします。
このハンズオンラボでは、シミュレーションやデモ環境ではなく実際のクラウド環境を使って、ラボのアクティビティを行います。そのため、ラボの受講中に Google Cloud にログインおよびアクセスするための、新しい一時的な認証情報が提供されます。
このラボを完了するためには、下記が必要です。
- 標準的なインターネット ブラウザ(Chrome を推奨)
注: このラボの実行には、シークレット モード(推奨)またはシークレット ブラウジング ウィンドウを使用してください。これにより、個人アカウントと受講者アカウント間の競合を防ぎ、個人アカウントに追加料金が発生しないようにすることができます。
- ラボを完了するための時間(開始後は一時停止できません)
注: このラボでは、受講者アカウントのみを使用してください。別の Google Cloud アカウントを使用すると、そのアカウントに料金が発生する可能性があります。
チャレンジ シナリオ
あなたは最近、ある組織に加わり、チームの一員としてジュニア クラウド エンジニアとして働いています。ML プロジェクトを担当することになったあなたは、あるプロジェクトを完了するために、Google Cloud の Cloud Natural Language API サービスを使用してタスクを実行するというのがクライアントの要件のひとつです。
あなたには以下のタスクを行うためのスキルや知識があると想定されています。
チャレンジ
このチャレンジでは、Google ドキュメントを設定し、お客様から提供されたレビューの感情分析を実行し、Natural Language API を使用して構文と品詞を分析し、また英語以外の言語で Natural Language API リクエストを作成する必要があります。
次の操作を行ってください。
- API キーを作成する。
- Google ドキュメントを設定し、Natural Language API を呼び出す。
- Natural Language API で構文と品詞を分析する。
- 多言語自然言語処理を実行する。
このチャレンジラボでは、タスク 3 と 4 を完了するために、 という名前の仮想マシン(VM)インスタンスがあらかじめ構成されています。
以下のような基準に従う必要があります。
- 必要な API(Cloud Natural Language API など)が正常に有効になっていること。
それぞれのタスクについて以下に詳しく説明します。それでは始めましょう。
タスク 1. API キーを作成する
-
このタスクでは、Natural Language API にリクエストを送信する際に、このタスクや他のタスクで使用する API キーを作成する必要があります。
-
他のタスクでも使用できるよう、作成した API キーを保存します。
[進行状況を確認] をクリックして、目標に沿って進んでいることを確認します。
API キーを作成する
タスク 2. Google ドキュメントを設定して Natural Language API を呼び出す
このタスクでは、Google ドキュメントで Natural Language API を使用するように設定し、Google ドキュメント内の選択したテキストの感情を認識して、感情に基づいてテキストの各部をハイライト表示してください。
否定的な感情のテキストは赤、肯定的な感情のテキストは緑、中立的な感情のテキストは黄色でハイライト表示します。
-
新しい Google ドキュメントを作成します。
-
Apps Script で次のコードを使用します。retrieveSentiment 関数で、「your key here」を Google Cloud コンソールの実際の API キーで置き換えます。
/**
* @OnlyCurrentDoc
*
* 上記のコメントにより、このアドオンのファイル アクセスの範囲が
* 制限される。このアドオンによる読み取りまたは変更の対象になるのは
* ユーザーのすべてのファイルではなく、このアドオンが
* 使用されているファイルに制限される。ユーザーに表示される承認リクエスト メッセージには
* この制限範囲が反映される。
*/
/**
* ドキュメントを開いたときに、Google ドキュメント UI に
* メニュー エントリが作成される。
*
*/
function onOpen() {
var ui = DocumentApp.getUi();
ui.createMenu('Natural Language Tools')
.addItem('Mark Sentiment', 'markSentiment')
.addToUi();
}
/**
* ユーザーが選択したテキストを取得し、感情に基づいてハイライト表示する
* (肯定的な感情は緑、否定的な感情は赤、
* 中立的な感情は黄色)。
*
*/
function markSentiment() {
var POSITIVE_COLOR = '#00ff00'; // 感情を表す色
var NEGATIVE_COLOR = '#ff0000';
var NEUTRAL_COLOR = '#ffff00';
var NEGATIVE_CUTOFF = -0.2; // 感情のしきい値
var POSITIVE_CUTOFF = 0.2;
var selection = DocumentApp.getActiveDocument().getSelection();
if (selection) {
var string = getSelectedText();
var sentiment = retrieveSentiment(string);
// 適切な色を選択する
var color = NEUTRAL_COLOR;
if (sentiment <= NEGATIVE_CUTOFF) {
color = NEGATIVE_COLOR;
}
if (sentiment >= POSITIVE_CUTOFF) {
color = POSITIVE_COLOR;
}
// テキストをハイライト表示する
var elements = selection.getSelectedElements();
for (var i = 0; i < elements.length; i++) {
if (elements[i].isPartial()) {
var element = elements[i].getElement().editAsText();
var startIndex = elements[i].getStartOffset();
var endIndex = elements[i].getEndOffsetInclusive();
element.setBackgroundColor(startIndex, endIndex, color);
} else {
var element = elements[i].getElement().editAsText();
foundText = elements[i].getElement().editAsText();
foundText.setBackgroundColor(color);
}
}
}
}
/**
* 選択されたテキストの内容を含む文字列を返す。
* テキストが選択されていない場合、空の文字列が返される。
*/
function getSelectedText() {
var selection = DocumentApp.getActiveDocument().getSelection();
var string = "";
if (selection) {
var elements = selection.getSelectedElements();
for (var i = 0; i < elements.length; i++) {
if (elements[i].isPartial()) {
var element = elements[i].getElement().asText();
var startIndex = elements[i].getStartOffset();
var endIndex = elements[i].getEndOffsetInclusive() + 1;
var text = element.getText().substring(startIndex, endIndex);
string = string + text;
} else {
var element = elements[i].getElement();
// テキストとして編集できる要素のみを変換し、
// テキスト以外の要素(画像など)はスキップする。
if (element.editAsText) {
string = string + element.asText().getText();
}
}
}
}
return string;
}
/** 文字列が返されたら、Natural Language API が呼び出され、
* その文字列の感情が抽出される。感情は -1 から 1 の範囲の実数で示される。
* -1 は非常に否定的な感情を、1 は非常に肯定的な感情を
* それぞれ表す。
function retrieveSentiment (line) {
var apiKey = "your key here"; // 実際の API キーに置き換える
var apiEndpoint = "https://language.googleapis.com/v1/documents:analyzeSentiment?key=" + apiKey;
// テキスト、言語、種類、エンコードを含む
// 構造体を作成する
var docDetails = {
language: 'en-us',
type: 'PLAIN_TEXT',
content: line
};
var nlData = {
document: docDetails,
encodingType: 'UTF8'
};
// 呼び出しのオプションとデータをすべてまとめる
var nlOptions = {
method : 'post',
contentType: 'application/json',
payload : JSON.stringify(nlData)
};
// 呼び出しを実行する
var response = UrlFetchApp.fetch(apiEndpoint, nlOptions);
var data = JSON.parse(response);
var sentiment = 0.0;
// すべてのデータが戻り値に含まれることを確認する
if (data && data.documentSentiment
&& data.documentSentiment.score){
sentiment = data.documentSentiment.score;
}
return sentiment;
}
- テキストを追加します。チャールズ ディケンズの小説『二都物語』のサンプルを使用できます。
[進行状況を確認] をクリックして、目標に沿って進んでいることを確認します。
Google ドキュメントを設定して Natural Language API を呼び出す
タスク 3. Natural Language API で構文と品詞を分析する
このタスクを完了するには、プロビジョニングされた VM インスタンス に SSH で接続します。
- 次のコードを使用して、
analyze-request.json という名前の JSON ファイルを作成します。
{
"document":{
"type":"PLAIN_TEXT",
"content": "Google, headquartered in Mountain View, unveiled the new Android phone at the Consumer Electronic Show. Sundar Pichai said in his keynote that users love their new Android phones.},
"encodingType": "UTF8"
}
-
curl コマンドを使用してリクエスト(タスク 1 で保存した API キー環境変数を含む)を Natural Language API に渡すか、gcloud ML コマンドを使用して構文を分析します。
-
レスポンスを analyze-response.txt という名前のファイルに保存します。
[進行状況を確認] をクリックして、目標に沿って進んでいることを確認します。
Natural Language API を使用して構文と品詞を分析する
タスク 4. 多言語自然言語処理を実行する
このタスクを完了するには、プロビジョニングされた VM インスタンス に SSH で接続します。
- フランス語の文章を含む次のコードを使用して、
multi-nl-request.json という JSON ファイルを作成します。
{
"document":{
"type":"PLAIN_TEXT",
"content":"Le bureau japonais de Google est situé à Roppongi Hills, Tokyo."
}
}
-
curl コマンドを使用してリクエスト(タスク 1 で保存した API キー環境変数を含む)を Natural Language API に渡すか、gcloud ML コマンドを使用して構文を分析します。
-
出力を multi-response.txt というファイルに保存します。
[進行状況を確認] をクリックして、目標に沿って進んでいることを確認します。
多言語自然言語処理を実行する
お疲れさまでした
これで完了です。Natural Language API を呼び出して、Google ドキュメントのテキストの感情分析、構文と品詞の分析を正常に実行できました。

Google Cloud トレーニングと認定資格
Google Cloud トレーニングと認定資格を通して、Google Cloud 技術を最大限に活用できるようになります。必要な技術スキルとベスト プラクティスについて取り扱うクラスでは、学習を継続的に進めることができます。トレーニングは基礎レベルから上級レベルまであり、オンデマンド、ライブ、バーチャル参加など、多忙なスケジュールにも対応できるオプションが用意されています。認定資格を取得することで、Google Cloud テクノロジーに関するスキルと知識を証明できます。
マニュアルの最終更新日: 2024 年 7 月 17 日
ラボの最終テスト日: 2024 年 7 月 17 日
Copyright 2026 Google LLC. All rights reserved. Google および Google のロゴは Google LLC の商標です。その他すべての企業名および商品名はそれぞれ各社の商標または登録商標です。