ほとんどの Natural Language メソッドは、指定されたテキストの内容を分析しますが、analyzeSyntax メソッドは、言語自体の構造を検査します。構文解析では、指定されたテキストを一連の文とトークン(通常は単語)に分解して、それらのトークンに関する言語情報を提供します。言語分析の詳細については、形態論と依存関係ツリーをご覧ください。Natural Language API で構文を分析できる言語のリストについては、言語のサポートをご覧ください。
このセクションでは、ドキュメント内の構文を検出するいくつかの方法を説明します。リクエストは、ドキュメントごとに送信する必要があります。
文字列の構文解析
Natural Language API に直接送信されたテキスト文字列に対して構文解析を行う例を次に示します。
プロトコル
ドキュメント内の構文を分析するには、documents:analyzeSyntax REST メソッドに対して POST リクエストを行います。リクエストには、次の例に示す適切なリクエスト本文を指定します。
この例では、Google Cloud Platform の gcloud CLI を使用してプロジェクト用に設定されたサービス アカウントのアクセス トークンを取得するために、gcloud auth application-default print-access-token コマンドを使用しています。gcloud CLI のインストールと、サービス アカウントを使用したプロジェクトの設定については、クイックスタートをご覧ください。
curl -X POST \ -H "Authorization: Bearer "$(gcloud auth application-default print-access-token) \ -H "Content-Type: application/json; charset=utf-8" \ --data "{ 'encodingType': 'UTF8', '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.' } }" "https://language.googleapis.com/v1/documents:analyzeSyntax"
document.language を指定しない場合は、言語が自動的に検出されます。Natural Language API でサポートされる言語については、言語のサポートをご覧ください。リクエスト本文の構成の詳細については、Document のリファレンス ドキュメントをご覧ください。
リクエストが成功すると、サーバーは 200 OK HTTP ステータス コードと JSON 形式のレスポンスを返します。
{
"sentences": [
{
"text": {
"content": "Google, headquartered in Mountain View, unveiled the new Android phone at the Consumer Electronic Show.",
"beginOffset": 0
}
},
{
"text": {
"content": "Sundar Pichai said in his keynote that users love their new Android phones.",
"beginOffset": 105
}
}
],
"tokens": [
{
"text": {
"content": "Google",
"beginOffset": 0
},
"partOfSpeech": {
"tag": "NOUN",
"aspect": "ASPECT_UNKNOWN",
"case": "CASE_UNKNOWN",
"form": "FORM_UNKNOWN",
"gender": "GENDER_UNKNOWN",
"mood": "MOOD_UNKNOWN",
"number": "SINGULAR",
"person": "PERSON_UNKNOWN",
"proper": "PROPER",
"reciprocity": "RECIPROCITY_UNKNOWN",
"tense": "TENSE_UNKNOWN",
"voice": "VOICE_UNKNOWN"
},
"dependencyEdge": {
"headTokenIndex": 7,
"label": "NSUBJ"
},
"lemma": "Google"
},
...
{
"text": {
"content": ".",
"beginOffset": 179
},
"partOfSpeech": {
"tag": "PUNCT",
"aspect": "ASPECT_UNKNOWN",
"case": "CASE_UNKNOWN",
"form": "FORM_UNKNOWN",
"gender": "GENDER_UNKNOWN",
"mood": "MOOD_UNKNOWN",
"number": "NUMBER_UNKNOWN",
"person": "PERSON_UNKNOWN",
"proper": "PROPER_UNKNOWN",
"reciprocity": "RECIPROCITY_UNKNOWN",
"tense": "TENSE_UNKNOWN",
"voice": "VOICE_UNKNOWN"
},
"dependencyEdge": {
"headTokenIndex": 20,
"label": "P"
},
"lemma": "."
}
],
"language": "en"
}
tokens 配列には、検出された文トークンを表す Token オブジェクトが格納されます。このオブジェクトには、トークンの品詞や文内での位置などの情報が含まれています。
gcloud
詳しくは、analyze-syntax コマンドをご覧ください。
構文解析を実行するには、gcloud CLI を使用し、--content フラグで分析するコンテンツを指定します。
gcloud ml language analyze-syntax --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."
リクエストが成功すると、サーバーは JSON 形式のレスポンスを返します。
{
"sentences": [
{
"text": {
"content": "Google, headquartered in Mountain View, unveiled the new Android phone at the Consumer Electronic Show.",
"beginOffset": 0
}
},
{
"text": {
"content": "Sundar Pichai said in his keynote that users love their new Android phones.",
"beginOffset": 105
}
}
],
"tokens": [
{
"text": {
"content": "Google",
"beginOffset": 0
},
"partOfSpeech": {
"tag": "NOUN",
"aspect": "ASPECT_UNKNOWN",
"case": "CASE_UNKNOWN",
"form": "FORM_UNKNOWN",
"gender": "GENDER_UNKNOWN",
"mood": "MOOD_UNKNOWN",
"number": "SINGULAR",
"person": "PERSON_UNKNOWN",
"proper": "PROPER",
"reciprocity": "RECIPROCITY_UNKNOWN",
"tense": "TENSE_UNKNOWN",
"voice": "VOICE_UNKNOWN"
},
"dependencyEdge": {
"headTokenIndex": 7,
"label": "NSUBJ"
},
"lemma": "Google"
},
...
{
"text": {
"content": ".",
"beginOffset": 179
},
"partOfSpeech": {
"tag": "PUNCT",
"aspect": "ASPECT_UNKNOWN",
"case": "CASE_UNKNOWN",
"form": "FORM_UNKNOWN",
"gender": "GENDER_UNKNOWN",
"mood": "MOOD_UNKNOWN",
"number": "NUMBER_UNKNOWN",
"person": "PERSON_UNKNOWN",
"proper": "PROPER_UNKNOWN",
"reciprocity": "RECIPROCITY_UNKNOWN",
"tense": "TENSE_UNKNOWN",
"voice": "VOICE_UNKNOWN"
},
"dependencyEdge": {
"headTokenIndex": 20,
"label": "P"
},
"lemma": "."
}
],
"language": "en"
}
tokens 配列には、検出された文トークンを表す Token オブジェクトが格納されます。このオブジェクトには、トークンの品詞や文内での位置などの情報が含まれています。
Go
Natural Language のクライアント ライブラリをインストールして使用する方法については、Natural Language のクライアント ライブラリをご覧ください。 詳細については、Natural Language Go API のリファレンス ドキュメントをご覧ください。
Natural Language で認証を行うには、アプリケーションのデフォルト認証情報を設定します。詳細については、ローカル開発環境の認証の設定をご覧ください。
Java
Natural Language のクライアント ライブラリをインストールして使用する方法については、Natural Language のクライアント ライブラリをご覧ください。 詳細については、Natural Language Java API のリファレンス ドキュメントをご覧ください。
Natural Language で認証を行うには、アプリケーションのデフォルト認証情報を設定します。詳細については、ローカル開発環境の認証の設定をご覧ください。
Node.js
Natural Language のクライアント ライブラリをインストールして使用する方法については、Natural Language のクライアント ライブラリをご覧ください。 詳細については、Natural Language Node.js API のリファレンス ドキュメントをご覧ください。
Natural Language で認証を行うには、アプリケーションのデフォルト認証情報を設定します。詳細については、ローカル開発環境の認証の設定をご覧ください。
Python
Natural Language のクライアント ライブラリをインストールして使用する方法については、Natural Language のクライアント ライブラリをご覧ください。 詳細については、Natural Language Python API のリファレンス ドキュメントをご覧ください。
Natural Language で認証を行うには、アプリケーションのデフォルト認証情報を設定します。詳細については、ローカル開発環境の認証の設定をご覧ください。
その他の言語
C#: クライアント ライブラリ ページの C# の設定手順を行ってから、.NET 用の Natural Language リファレンス ドキュメントをご覧ください。
PHP: クライアント ライブラリ ページの PHP の設定手順を行ってから、PHP 用の Natural Language リファレンス ドキュメントをご覧ください。
Ruby: クライアント ライブラリ ページの Ruby の設定手順を行ってから、Ruby 用の Natural Language リファレンス ドキュメントをご覧ください。
Cloud Storage 上の構文の分析
ユーザーが使いやすいように、Natural Language API は、Cloud Storage に保存されたファイルに直接構文解析を実行できるようになっています。リクエストの本文にファイルの内容を含めて送信する必要はありません。
Cloud Storage に保存されたファイルに対して構文解析を実行する例を次に示します。
プロトコル
Cloud Storage に保存されたドキュメントに含まれる構文を分析するには、documents:analyzeSyntax REST メソッドに対して POST リクエストを行います。リクエスト本文には、次の例に示す適切なドキュメントへのパスを指定します。
curl -X POST \ -H "Authorization: Bearer "$(gcloud auth application-default print-access-token) \ -H "Content-Type: application/json; charset=utf-8" \ --data "{ 'encodingType': 'UTF8', 'document': { 'type': 'PLAIN_TEXT', 'gcsContentUri': 'gs://<bucket-name>/<object-name>' } }" "https://language.googleapis.com/v1/documents:analyzeSyntax"
document.language を指定しない場合は、言語が自動的に検出されます。Natural Language API でサポートされる言語については、言語のサポートをご覧ください。リクエスト本文の構成の詳細については、Document のリファレンス ドキュメントをご覧ください。
リクエストが成功すると、サーバーは 200 OK HTTP ステータス コードと JSON 形式のレスポンスを返します。
{
"sentences": [
{
"text": {
"content": "Hello, world!",
"beginOffset": 0
}
}
],
"tokens": [
{
"text": {
"content": "Hello",
"beginOffset": 0
},
"partOfSpeech": {
"tag": "X",
// ...
},
"dependencyEdge": {
"headTokenIndex": 2,
"label": "DISCOURSE"
},
"lemma": "Hello"
},
{
"text": {
"content": ",",
"beginOffset": 5
},
"partOfSpeech": {
"tag": "PUNCT",
// ...
},
"dependencyEdge": {
"headTokenIndex": 2,
"label": "P"
},
"lemma": ","
},
// ...
],
"language": "en"
}tokens 配列には、検出された文トークンを表す Token オブジェクトが格納されます。このオブジェクトには、トークンの品詞や文内での位置などの情報が含まれています。
gcloud
詳しくは、analyze-syntax コマンドをご覧ください。
Cloud Storage 内のファイルの構文分析を実行するには、gcloud コマンドライン ツールを使用して、--content-file フラグで分析するコンテンツを含むファイルパスを指定します。
gcloud ml language analyze-syntax --content-file=gs://YOUR_BUCKET_NAME/YOUR_FILE_NAME
リクエストが成功すると、サーバーは JSON 形式のレスポンスを返します。
{
"sentences": [
{
"text": {
"content": "Hello, world!",
"beginOffset": 0
}
}
],
"tokens": [
{
"text": {
"content": "Hello",
"beginOffset": 0
},
"partOfSpeech": {
"tag": "X",
// ...
},
"dependencyEdge": {
"headTokenIndex": 2,
"label": "DISCOURSE"
},
"lemma": "Hello"
},
{
"text": {
"content": ",",
"beginOffset": 5
},
"partOfSpeech": {
"tag": "PUNCT",
// ...
},
"dependencyEdge": {
"headTokenIndex": 2,
"label": "P"
},
"lemma": ","
},
// ...
],
"language": "en"
}tokens 配列には、検出された文トークンを表す Token オブジェクトが格納されます。このオブジェクトには、トークンの品詞や文内での位置などの情報が含まれています。
Go
Natural Language のクライアント ライブラリをインストールして使用する方法については、Natural Language のクライアント ライブラリをご覧ください。 詳細については、Natural Language Go API のリファレンス ドキュメントをご覧ください。
Natural Language で認証を行うには、アプリケーションのデフォルト認証情報を設定します。詳細については、ローカル開発環境の認証の設定をご覧ください。
Java
Natural Language のクライアント ライブラリをインストールして使用する方法については、Natural Language のクライアント ライブラリをご覧ください。 詳細については、Natural Language Java API のリファレンス ドキュメントをご覧ください。
Natural Language で認証を行うには、アプリケーションのデフォルト認証情報を設定します。詳細については、ローカル開発環境の認証の設定をご覧ください。
Node.js
Natural Language のクライアント ライブラリをインストールして使用する方法については、Natural Language のクライアント ライブラリをご覧ください。 詳細については、Natural Language Node.js API のリファレンス ドキュメントをご覧ください。
Natural Language で認証を行うには、アプリケーションのデフォルト認証情報を設定します。詳細については、ローカル開発環境の認証の設定をご覧ください。
Python
Natural Language のクライアント ライブラリをインストールして使用する方法については、Natural Language のクライアント ライブラリをご覧ください。 詳細については、Natural Language Python API のリファレンス ドキュメントをご覧ください。
Natural Language で認証を行うには、アプリケーションのデフォルト認証情報を設定します。詳細については、ローカル開発環境の認証の設定をご覧ください。
その他の言語
C#: クライアント ライブラリ ページの C# の設定手順を行ってから、.NET 用の Natural Language リファレンス ドキュメントをご覧ください。
PHP: クライアント ライブラリ ページの PHP の設定手順を行ってから、PHP 用の Natural Language リファレンス ドキュメントをご覧ください。
Ruby: クライアント ライブラリ ページの Ruby の設定手順を行ってから、Ruby 用の Natural Language リファレンス ドキュメントをご覧ください。