![](https://cdn.qwiklabs.com/assets/labs/start_lab-f45aca49782d4033c3ff688160387ac98c66941d.png)
Before you begin
- Labs create a Google Cloud project and resources for a fixed time
- Labs have a time limit and no pause feature. If you restart it, you'll have to start from the beginning.
- On the top left of your screen, click Start lab to begin
Create an API Key
/ 40
Make an Entity Analysis Request
/ 30
Check the Entity Analysis response
/ 30
Cloud Natural Language API を使用すると、テキストからエンティティを抽出して感情分析や構文解析を行い、テキストをカテゴリに分類できます。
このラボでは、Natural Language API を使ってエンティティ、感情、構文を分析する方法について学びます。
このラボでは、次の方法について学びます。
こちらの手順をお読みください。ラボの時間は記録されており、一時停止することはできません。[ラボを開始] をクリックするとスタートするタイマーは、Google Cloud のリソースを利用できる時間を示しています。
このハンズオンラボでは、シミュレーションやデモ環境ではなく、実際のクラウド環境を使ってご自身でラボのアクティビティを行うことができます。そのため、ラボの受講中に Google Cloud にログインおよびアクセスするための、新しい一時的な認証情報が提供されます。
このラボを完了するためには、下記が必要です。
[ラボを開始] ボタンをクリックします。ラボの料金をお支払いいただく必要がある場合は、表示されるポップアップでお支払い方法を選択してください。 左側の [ラボの詳細] パネルには、以下が表示されます。
[Google Cloud コンソールを開く] をクリックします(Chrome ブラウザを使用している場合は、右クリックして [シークレット ウィンドウでリンクを開く] を選択します)。
ラボでリソースが起動し、別のタブで [ログイン] ページが表示されます。
ヒント: タブをそれぞれ別のウィンドウで開き、並べて表示しておきましょう。
必要に応じて、下のユーザー名をコピーして、[ログイン] ダイアログに貼り付けます。
[ラボの詳細] パネルでも [ユーザー名] を確認できます。
[次へ] をクリックします。
以下のパスワードをコピーして、[ようこそ] ダイアログに貼り付けます。
[ラボの詳細] パネルでも [パスワード] を確認できます。
[次へ] をクリックします。
その後次のように進みます。
その後、このタブで Google Cloud コンソールが開きます。
curl
を使用して Natural Language API にリクエストを送信するため、リクエスト URL に渡す API キーを生成する必要があります。
API キーを作成するには、Google Cloud コンソールのナビゲーション メニューで [API とサービス] > [認証情報] を選択します。
[認証情報を作成] をクリックし、[API キー] を選択します。
生成された API キーをコピーし、[閉じる] をクリックします。
[進行状況を確認] をクリックして、目標に沿って進んでいることを確認します。
次のステップを実行するために、プロビジョニングされているインスタンスに SSH で接続してください。
ナビゲーション メニューの [Compute Engine] をクリックします。[VM インスタンス] の一覧に、プロビジョニングされた Linux インスタンス、linux-instance
が表示されます。
[SSH] ボタンをクリックします。インタラクティブ シェルが表示されます。
コマンドラインで以下のコマンドを入力します。<YOUR_API_KEY>
の部分は、先ほどコピーしたキーに置き換えてください。
最初に使用する Natural Language API メソッドは、analyzeEntities
です。このメソッドを使用すると、API によってテキストからエンティティ(人、場所、イベントなど)が抽出されます。ここでは、次の文を使って Natural Language API のエンティティ分析を試してみます。
Joanne Rowling, who writes under the pen names J. K. Rowling and Robert Galbraith, is a British novelist and screenwriter who wrote the Harry Potter fantasy series.
Natural Language API へのリクエストは、ファイル request.json
で構築します。
request.json
を作成します。request.json
に次のコードを入力するか、コピーして貼り付けます。このリクエストでは、送信するテキストについての情報を Natural Language API に知らせます。サポートされている型の値は PLAIN_TEXT
または HTML
です。content には、分析のために Natural Language API に送信するテキストを指定します。
Natural Language API では、Cloud Storage に保存されているファイルをテキスト処理用に送信することもできます。Cloud Storage からファイルを送信する場合は、content
を gcsContentUri
に置き換えて、Cloud Storage に保存されているテキスト ファイルの URI の値を指定します。
encodingType
は、テキストを処理するときに使用するテキスト エンコードの種類を API に指示します。API はこの情報を使って、特定のエンティティがテキストのどこに出現するかを調べます。
[進行状況を確認] をクリックして、目標に沿って進んでいることを確認します。
curl
コマンドを実行して、リクエストの本文を、先ほど保存した API キー環境変数とともに Natural Language API に渡します(コマンドは 1 行で入力してください)。レスポンスの最初の部分は次のようになります。
このレスポンスには、各エンティティの type
、ウィキペディアの関連ページの URL(存在する場合)、salience
、テキスト内の場所を示すインデックスが含まれています。salience(顕著性)は、[0,1] の範囲の数値です。これは、そのエンティティがテキスト全体でどの程度重要かを表します。
Natural Language API では、同じエンティティの別の表現も認識されます。レスポンスの mentions
のリストをご覧ください。「Joanne Rowling」、「Rowling」、「novelist」、「Robert Galbraith」がすべて同じものを指していることが API で認識されています。
[進行状況を確認] をクリックして、目標に沿って進んでいることを確認します。
Natural Language API では、エンティティの抽出に加えて、テキスト ブロックの感情分析を行うこともできます。次の JSON リクエストに含まれているパラメータは先ほどのリクエストと同じですが、今回は分析するテキストをより強い感情を含むものに変更します。
request.json
のコードを次のように置き換えます。content
の部分は独自のテキストに置き換えてもかまいません。Ctrl+X キーで nano を終了したら、Y キーでファイルを保存し、Enter キーを押して確定します。
次に、このリクエストを API の analyzeSentiment
エンドポイントに送信します。
レスポンスは次のようになります。
sentiment の値が 2 種類あることに注目してください。これは、ドキュメント全体の値と文単位の値です。sentiment メソッドは次の 2 つの値を返します。
score
- -1.0~1.0 の数値です。その主張がどのくらいポジティブまたはネガティブかを示します。magnitude
- 0~無限大の数値です。その主張の中で表現されている感情の重みを表します。感情がポジティブがネガティブかは問いません。重みの大きい主張を含むテキスト ブロックが長くなるほど magnitude の値が大きくなります。この例では、1 つ目の文の score はポジティブ(0.7)ですが、2 つ目の文の score はニュートラル(0.1)です。
Natural Language API では、テキスト ドキュメント全体の感情だけでなく、テキスト内のエンティティごとの感情を調べることもできます。今度は次の文を例として使用します。
I liked the sushi but the service was terrible.
この場合、先ほどのように文全体の感情スコアを取得してもあまり役に立ちません。これがレストランのレビューで、同じレストランのレビューが何百件もあった場合、求められる情報は、それらのレビューで何が気に入られていて、何が気に入られていないかです。Natural Language API にはこのような場合のために、テキスト内の各エンティティに対する感情を調べられる analyzeEntitySentiment
というメソッドが用意されています。さっそく試してみましょう。
request.json
を以下のように更新します。Ctrl+X キーで nano を終了したら、Y キーでファイルを保存し、Enter キーを押して確定します。
次に、以下の curl コマンドを使用して analyzeEntitySentiment
エンドポイントを呼び出します。
レスポンスには 2 つのエンティティ オブジェクトが含まれています。1 つは「sushi」、もう 1 つは「service」です。この JSON レスポンス全体は以下のとおりです。
「sushi」の score はニュートラルの 0 で、「service」の score は -0.7 になっています。分析がうまくいったようです。また、sentiment オブジェクトがエンティティごとに 2 つ返されていますが、これは特定の出現箇所の値と、エンティティ全体の集計値を表しています。これらの言葉が複数回出てきた場合は、それぞれに別の score と magnitude の値が返されます。
Natural Language API のもう 1 つのメソッドである構文解析では、言語学的な観点からテキストをさらに詳しく調べることができます。analyzeSyntax
は言語情報を抽出し、指定されたテキストを一連の文とトークン(通常は単語の境界)に分解して、それらのトークンをさらに分析できるようにします。テキスト内の各単語について、その単語の品詞(名詞、動詞、形容詞など)と、文中の他の単語との関係(主動詞か修飾語かなど)を調べることができます。
簡単な文で試してみましょう。次の JSON リクエストは、先ほどのものとよく似ていますが、features キーが追加されています。これにより、構文アノテーションを行うことが API に伝えられます。
request.json
を次の内容に置き換えます。Ctrl+X キーで nano を終了したら、Y キーでファイルを保存し、Enter キーを押して確定します。
次に、API の analyzeSyntax
メソッドを呼び出します。
レスポンスでは、次のようなオブジェクトが文中のトークンごとに返されます。
レスポンスを細かく見てみましょう。
partOfSpeech
は、「Joanne」が名詞であることを示しています。dependencyEdge
には、このテキストの係り受け解析ツリーを作成するためのデータが含まれています。係り受け解析ツリーとは、文中の単語が互いにどのように関連しているかを示す図です。たとえば、上の文の係り受け解析ツリーは次のようになります。headTokenIndex
は、「Joanne」に向かう曲線を持つトークンのインデックスです。文中の各トークンは、配列内の単語と考えることができます。headTokenIndex
の値 1 は「Rowling」を指しており、「Joanne」は係り受け解析ツリーでこの単語に結び付けられます。label の値 NM
(Noun Compound Modifier(複合名詞の修飾子)の略)は「Joanne」の文中の役割を表しており、「Joanne」はこの文の主語である「Rowling」を修飾しています。lemma
はその単語の正規形です。たとえば、run、runs、ran、running の lemma はすべて run です。lemma の値は、大きなテキスト ブロックで単語の出現回数の推移を追跡するのに便利です。Natural Language API は英語以外の言語もサポートしています(サポート対象言語の一覧については、言語サポートをご覧ください)。
request.json
のコードを次のように変更して、日本語の文で試してみましょう。テキストの言語を指定していないことに注目してください。言語は API によって自動的に検出されます。
analyzeEntities
エンドポイントに送信します。次のようなレスポンスが返されます。
ウィキペディアの URL も日本語版のページになっています。
ここでは、Cloud Natural Language API によるテキスト分析の方法を学ぶために、エンティティ抽出、感情分析、構文アノテーションを行いました。このラボでは、Natural Language API リクエストを作成し、curl
で API を呼び出しました。また、Natural Language API を使用してテキストのエンティティ抽出と感情分析を行いました。さらに、テキストの言語分析を行い、別の言語で Natural Language API リクエストを作成しました。
Google Cloud トレーニングと認定資格を通して、Google Cloud 技術を最大限に活用できるようになります。必要な技術スキルとベスト プラクティスについて取り扱うクラスでは、学習を継続的に進めることができます。トレーニングは基礎レベルから上級レベルまであり、オンデマンド、ライブ、バーチャル参加など、多忙なスケジュールにも対応できるオプションが用意されています。認定資格を取得することで、Google Cloud テクノロジーに関するスキルと知識を証明できます。
マニュアルの最終更新日: 2024 年 2 月 14 日
ラボの最終テスト日: 2023 年 10 月 13 日
Copyright 2025 Google LLC All rights reserved. Google および Google のロゴは Google LLC の商標です。その他すべての企業名および商品名はそれぞれ各社の商標または登録商標です。