テキストがポジティブかネガティブか、どの程度の感情の強さがあるかを判定したいケースがあります。
Google Cloud Platform(GCP)の機械学習機能を利用して感情を判定する方法を解説します。

Natural Language API の使い方
GCPのNatural Language APIとGoogle Apps Script(GAS)を使い、Googleスプレッドシート上のテキストを感情分析する手順を解説します。
画面の案内に沿って操作し、GCPのプロジェクトを作成します。
アカウント設定の途中でクレジットカードの登録が必要です。

※利用量が無料枠を超えると課金が発生します。
Google Cloudの料金ページでは、Natural Language APIは月5,000ユニットまで無料と記載されています(2026年9月19日に確認)。
GCPコンソールのナビゲーションメニュー>お支払い>料金から利用状況や金額を確認できます。

GCPのプロジェクト作成後、「APIとサービス」の「認証情報」を開いて「認証情報を作成」をクリックし、>「APIキー」を選択して発行します。

APIキーが発行されたら値をコピーして控えておきます。
後のスクリプト設定で使用します。

Googleスプレッドシートを新規作成し、メニューの「拡張機能」(または「ツール」)から>「Apps Script」(スクリプトエディタ)を開きます。
エディタが開いたら、後述のコードを貼り付けます。
コード内のAPIキー、スプレッドシートID、シート名、処理対象の行数などを環境に合わせて設定します。
//シートIDとシート名を記載
var mySheet = SpreadsheetApp.openById("スプレッドシートID").getSheetByName(
"シート名"
);
//Natural Language APIキー
var apiKey = "APIキー";
//8個までしか処理できないので、開始行と終了行を記載する
function main() {
getSentiment(2, 9);
getSentiment(10, 15);
}
function getSentiment(start, end) {
for (i = start; i <= end; i++) {
var tweet = mySheet.getRange(i, 1).getValue();
var response = retrieveSentiment(tweet);
var json = JSON.parse(response);
var score = json["documentSentiment"]["score"];
var magnitude = json["documentSentiment"]["magnitude"];
mySheet.getRange(i, 2).setValue(score);
mySheet.getRange(i, 3).setValue(magnitude);
}
}
function retrieveSentiment(textData) {
var apiEndpoint =
"https://language.googleapis.com/v1/documents:analyzeSentiment?key=" +
apiKey;
var docDetails = {
language: "ja-jp",
type: "PLAIN_TEXT",
content: textData,
};
var nlData = {
document: docDetails,
encodingType: "UTF8",
};
var nlOptions = {
method: "post",
contentType: "application/json",
payload: JSON.stringify(nlData),
};
var response = UrlFetchApp.fetch(apiEndpoint, nlOptions);
Logger.log("json is :" + response);
return response;
}
function onOpen() {
var entries = [{ name: "センチメント分析", functionName: "main" }];
mySheet.addMenu("カスタムメニュー", entries);
}
onOpen();スプレッドシートの画面に戻り、F5キーなどでブラウザを再読み込みします。
スプレッドシートのメニューバーに独自のカスタムメニューが追加されます。
分析対象の文章をA列に入力します。
追加されたメニューからスクリプトを実行すると、分析結果が出力されます。

- Score:数値が負ならネガティブ、正ならポジティブな感情を示します。
- Magnitude:感情の絶対的な強度(強さ)を示します。
数値だけでは傾向を把握しにくいため、条件付き書式を設定してセルに色を付けます。
- Score列の例:0は白色、0.5以上は赤色、0未満は青色に設定します。
- Magnitude列(カスタム書式)の例:Scoreが0以上かつMagnitudeが0.5以上なら赤色、Scoreが0以下かつMagnitudeが0.5以上なら青色に設定します。
=AND($B2 >=0 , ($C2 >= 0.5))
=AND($B2 < 0 , ($C2 >= 0.5))

以上の設定で、スプレッドシート上での感情分析が完了します。

Googleスプレッドシートの関連Tipsは、まとめセクションのリンク先でも確認できます。

この記事で紹介しているコードは、GitHubのMOTOKI-LLC/cg-method-codeにもまとめています。
外部のサービスと連携する記事は、ほかにもあります。




まとめ
GCPのNatural Language APIとGoogle Apps Scriptを連携させ、文章の感情分析を行う方法を解説しました。
APIキーの準備と簡単なスクリプト連携だけで高度な自然言語処理を手軽に活用できます。
感情スコアを可視化しておくことで、アンケートやレビュー文章の傾向把握を効率化できます。
無料利用枠が用意されているため、まずは少量のデータから試してみることをおすすめします。
