实验设置说明和要求
保护您的账号和进度。请务必在无痕浏览器窗口中,使用实验凭证运行此实验。

使用 Natural Language API 分析情緒:挑戰實驗室

实验 45 分钟 universal_currency_alt 1 积分 show_chart 入门级
info 此实验可能会提供 AI 工具来支持您学习。
此内容尚未针对移动设备进行优化。
为获得最佳体验,请在桌面设备上访问通过电子邮件发送的链接。

ARC130

Google Cloud 自學實驗室標誌

總覽

在挑戰研究室中,您會在特定情境下完成一系列任務。挑戰研究室不會提供逐步說明,您將運用從課程研究室學到的技巧,自行找出方法完成任務!自動評分系統 (如本頁所示) 將根據您是否正確完成任務來提供意見回饋。

在您完成任務的期間,挑戰研究室不會介紹新的 Google Cloud 概念。您須靈活運用所學技巧,例如變更預設值或詳讀並研究錯誤訊息,解決遇到的問題。

若想滿分達標,就必須在時限內成功完成所有任務!

設定和需求

瞭解以下事項後,再點選「Start Lab」按鈕

請詳閱以下操作說明。實驗室活動會計時,且中途無法暫停。點選「Start Lab」後就會開始計時,顯示可使用 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 分析語法和詞性。
  • 執行多語言自然語言處理。

在本挑戰實驗室中,系統已設定好虛擬機器 (VM) 執行個體「」,供您用來完成工作 3 至 4。

請遵守以下規則:

  • 確認已成功啟用所有必要 API,例如 Cloud Natural Language API。

各項工作的詳細說明如下,祝您好運!

工作 1:建立 API 金鑰

  1. 您需要在這項工作中建立 API 金鑰,以便在傳送要求至 Natural Language API 時使用。

  2. 請儲存 API 金鑰,方便在其他工作中使用。

點選「Check my progress」,確認目標已達成。 建立 API 金鑰

工作 2:設定 Google 文件並呼叫 Natural Language API

在這項工作中,您需要設定 Google 文件,以利使用 Natural Language API 辨識 Google 文件中所選文字的情緒,並根據情緒醒目標示部分文字。

負面情緒的文字應標上紅色,正面情緒的文字標上綠色,中性情緒的文字則標上黃色。

  1. 建立新的 Google 文件

  2. Apps Script 中使用下列程式碼,並將 retrieveSentiment 函式中的「your key here」替換成 Google Cloud 控制台中的實際 API 金鑰。

/** * @OnlyCurrentDoc * * The above comment directs Apps Script to limit the scope of file * access for this add-on. It specifies that this add-on will only * attempt to read or modify the files in which the add-on is used, * and not all of the user's files. The authorization request message * presented to users will reflect this limited scope. */ /** * Creates a menu entry in the Google Docs UI when the document is * opened. * */ function onOpen() { var ui = DocumentApp.getUi(); ui.createMenu('Natural Language Tools') .addItem('Mark Sentiment', 'markSentiment') .addToUi(); } /** * Gets the user-selected text and highlights it based on sentiment * with green for positive sentiment, red for negative, and yellow * for neutral. * */ function markSentiment() { var POSITIVE_COLOR = '#00ff00'; // Colors for sentiments var NEGATIVE_COLOR = '#ff0000'; var NEUTRAL_COLOR = '#ffff00'; var NEGATIVE_CUTOFF = -0.2; // Thresholds for sentiments var POSITIVE_CUTOFF = 0.2; var selection = DocumentApp.getActiveDocument().getSelection(); if (selection) { var string = getSelectedText(); var sentiment = retrieveSentiment(string); // Select the appropriate color var color = NEUTRAL_COLOR; if (sentiment <= NEGATIVE_CUTOFF) { color = NEGATIVE_COLOR; } if (sentiment >= POSITIVE_CUTOFF) { color = POSITIVE_COLOR; } // Highlight the text 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); } } } } /** * Returns a string with the contents of the selected text. * If no text is selected, returns an empty string. */ 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(); // Only translate elements that can be edited as text; skip // images and other non-text elements. if (element.editAsText) { string = string + element.asText().getText(); } } } } return string; } /** Given a string, will call the Natural Language API and retrieve * the sentiment of the string. The sentiment will be a real * number in the range -1 to 1, where -1 is highly negative * sentiment and 1 is highly positive. */ function retrieveSentiment(line) { var apiKey = "your key here"; // Replace with your actual API key var apiEndpoint = "https://language.googleapis.com/v1/documents:analyzeSentiment?key=" + apiKey; // Create a structure with the text, its language, its type, // and its encoding var docDetails = { language: 'en-us', type: 'PLAIN_TEXT', content: line }; var nlData = { document: docDetails, encodingType: 'UTF8' }; // Package all of the options and the data together for the call var nlOptions = { method : 'post', contentType: 'application/json', payload : JSON.stringify(nlData) }; // And make the call var response = UrlFetchApp.fetch(apiEndpoint, nlOptions); var data = JSON.parse(response); var sentiment = 0.0; // Ensure all pieces were in the returned value if (data && data.documentSentiment && data.documentSentiment.score){ sentiment = data.documentSentiment.score; } return sentiment; }
  1. 在文件中新增文字,例如從狄更斯的小說《雙城記》中節錄一段內容

點選「Check my progress」,確認目標已達成。 設定 Google 文件並呼叫 Natural Language API

工作 3:使用 Natural Language API 分析語法和詞性

透過 SSH 連線至系統為您佈建的 VM 執行個體「」,以完成這項工作。

  1. 使用下方程式碼建立名為 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" }
  1. 使用 curl 指令將要求 (以及在工作 1 儲存的 API 金鑰環境變數) 傳遞至 Natural Language API,或使用 gcloud ML 指令分析語法。

  2. 將回應儲存至名為 analyze-response.txt 的檔案。

點選「Check my progress」,確認目標已達成。 使用 Natural Language API 分析語法和詞性

工作 4:執行多語言自然語言處理

透過 SSH 連線至系統為您佈建的 VM 執行個體「」,以完成這項工作。

  1. 使用下方程式碼建立名為 multi-nl-request.json 的 JSON 檔案,這段程式碼包含法文句子。
{ "document":{ "type":"PLAIN_TEXT", "content":"Le bureau japonais de Google est situé à Roppongi Hills, Tokyo." } }
  1. 使用 curl 指令將要求 (以及在工作 1 儲存的 API 金鑰環境變數) 傳遞至 Natural Language API,或使用 gcloud ML 指令分析語法。

  2. 將輸出內容儲存至名為 multi-response.txt 的檔案。

點選「Check my progress」,確認目標已達成。 執行多語言自然語言處理

恭喜!

恭喜!您已成功呼叫 Natural Language API,並對 Google 文件中的文字執行情緒分析,以及分析語法和詞性。

「使用 Natural Language API 分析情緒」徽章

Google Cloud 教育訓練與認證

協助您瞭解如何充分運用 Google Cloud 的技術。我們的課程會介紹專業技能和最佳做法,讓您可以快速掌握要領並持續進修。我們提供從基本到進階等級的訓練課程,並有隨選、線上和虛擬課程等選項,方便您抽空參加。認證可協助您驗證及證明自己在 Google Cloud 技術方面的技能和專業知識。

使用手冊上次更新日期:2024 年 7 月 17 日

實驗室上次測試日期:2024 年 7 月 17 日

Copyright 2026 Google LLC 保留所有權利。Google 和 Google 標誌是 Google LLC 的商標,其他公司和產品名稱則有可能是其關聯公司的商標。

准备工作

  1. 实验会创建一个 Google Cloud 项目和一些资源,供您使用限定的一段时间
  2. 实验有时间限制,并且没有暂停功能。如果您中途结束实验,则必须重新开始。
  3. 在屏幕左上角,点击开始实验即可开始

使用无痕浏览模式

  1. 复制系统为实验提供的用户名密码
  2. 在无痕浏览模式下,点击打开控制台

登录控制台

  1. 使用您的实验凭证登录。使用其他凭证可能会导致错误或产生费用。
  2. 接受条款,并跳过恢复资源页面
  3. 除非您已完成此实验或想要重新开始,否则请勿点击结束实验,因为点击后系统会清除您的工作并移除该项目

此内容目前不可用

一旦可用,我们会通过电子邮件告知您

太好了!

一旦可用,我们会通过电子邮件告知您

一次一个实验

确认结束所有现有实验并开始此实验

使用无痕浏览模式运行实验

请使用无痕模式或无痕式浏览器窗口运行此实验。这可以避免您的个人账号与学生账号之间发生冲突,这种冲突可能导致您的个人账号产生额外费用。