自然言語理解

日本語文を解析し、意図の解釈や情報の抽出を行います。Yahoo!音声アシストでも使われているこの自然言語理解を利用して、あなた自身のアプリケーションを作成できます。

リクエストURL

JSON
https://jlp.yahooapis.jp/NLUService/V2/analyze
※GETリクエストには対応していません。
※Client ID(アプリケーションID)をリクエストに付与する必要があります。詳細はサンプルコードをご覧ください。

リクエストパラメータ(POST)

JSON-RPC 2.0の仕様 に準拠しています。

仕様

パラメータ 説明
id(必須) string,integer JSON-RPC 2.0のid。値は任意で、指定した値がレスポンスのidにも返ります
jsonrpc(必須) string 値は「2.0」としてください。
method(必須) string 値は「jlp.nluservice.analyze」としてください。
params(必須) object
params/q(必須) string 解析対象のテキストです。
params/context(任意) object
params/context/sample<n>(任意) string カスタムルール。詳細はカスタムルールの追加 仕様をご覧ください。
params/context/dict<n>(任意) string カスタム辞書。詳細はカスタム辞書の追加 仕様をご覧ください。

過去のリクエスト履歴を引き継ぐ場合

レスポンスフィールドに含まれるパラメータの末尾に_PREV<n>をつけ、リクエストパラメータの'params/context'以下にすべて含めてください。リクエスト履歴は過去3回分まで引き継がれます。 詳細はサンプルコードを参考にしてください。

パラメータ
PARAM_PLACE_PREV1 string 新宿
...

サンプルリクエスト

{
  "id": "1234-1",
  "jsonrpc": "2.0",
  "method": "jlp.nluservice.analyze",
  "params": {
    "q": "新宿の天気"
  }
}

サンプルコード

自然言語理解を使用したサンプルコードです。

レスポンスフィールド

詳細は出力仕様をご覧ください。

共通フィールド

フィールド 説明
id string,integer リクエストのidの値が返ります。
jsonrpc string 固定で「"2.0"」が返ります。
result object 解析結果のすべてを含みます。
result/METHOD string 応答ドメインの種類。TRANSIT(乗り換え)、WEATHER(天気)、SAY(雑談)など。
result/STATUS string 応答ステータスの種類。
  • 200 - 正常。言語理解できて応答が返せる場合。
  • 201 - 正常。言語理解できず応答が返せない場合。
  • 400 - 異常、エラー。
  • 特定のレスポンスのみに存在するフィールド(抜粋)

    フィールド 入力テキスト例 説明
    result/PARAM_METHOD_SUBCAT FROMTO 東京から京都まで 応答ドメインのサブカテゴリ
    result/PARAM_FROM 東京 東京から京都まで TRANSITやMAPなどで起点となる場所
    result/PARAM_TO 京都 東京から京都まで TRANSITやMAPなどで終点となる場所
    result/PARAM_PLACE 新宿 新宿の天気 WEATHERやMAPなどで対象となる場所
    result/PARAM_TEXT 眠いときが寝どきです。 眠い SAYなどでの応答文
    result/PARAM_QUERY トゲアリトゲナシトゲトゲ トゲアリトゲナシトゲトゲを検索 SEARCHなどでの検索クエリ

    サンプルレスポンス

    以下は、q=新宿の天気 のリクエストに対するレスポンスです。

    {
      "id": "1",
      "jsonrpc": "2.0",
      "result": {
        "METHOD": "WEATHER",
        "NVM_THAT": "新宿",
        "PARAM_METHOD_SUBCAT": "GENERAL",
        "PARAM_PLACE": "新宿",
        "STATUS": "200",
        "VAR_CV1": "0.95",
        "VAR_INTEXT": "新宿の天気",
        "VAR_INTEXT_NORMALIZED": "新宿の天気",
        "VAR_INTEXT_TIMESTAMP": "1656472947",
        "VAR_TEST_BTSC": "27"
      }
    }

    エラー

    自然言語理解はYahoo! JAPAN Web APIに共通のエラーメッセージおよびコードを返します。

    また、リクエストパラメータが本ドキュメント記載の仕様と異なる場合、ステータスコード200でJSON-RPC 2.0の仕様に準拠したレスポンスが返ることがあります。

    フィールド 説明
    id string,integer リクエストのidの値が返ります。
    jsonrpc string 固定で「"2.0"」が返ります。
    error object
    error/code integer JSON-RPC 2.0の仕様に準拠したエラーコードです。
    error/message string JSON-RPC 2.0の仕様に準拠したエラーメッセージです。

    例1:不正なJSONの場合

    リクエスト

    {
      "id": "1234-1",
      "jsonrpc": "2.0",
      "method": "jlp.nluservice.parse",
      "params": {
        "q": "新宿の天気"
      }

    レスポンス

    {
      "id": null,
      "jsonrpc": "2.0",
      "error": {
        "code": -32700,
        "message": "Parse error"
      }
    }

    例2:必須のパラメータがない場合

    リクエスト

    {
      "id": "1234-1",
      "jsonrpc": "2.0",
      "params": {
        "q": "新宿の天気"
      }
    }

    レスポンス

    {
      "id": "1234-1",
      "jsonrpc": "2.0",
      "error": {
        "code": -32600,
        "message": "Invalid request"
      }
    }

    例3:存在しないmethodを指定した場合

    リクエスト

    {
      "id": "1234-1",
      "method": "invalid.method.name",
      "jsonrpc": "2.0",
      "params": {
        "q": "新宿の天気"
      }
    }

    レスポンス

    {
      "id": "1234-1",
      "jsonrpc": "2.0",
      "error": {
        "code": -32601,
        "message": "Method not found"
      }
    }

    利用制限

    自然言語理解では、1リクエストの最大サイズを 100KB に制限しています。また、利用回数の制限については利用回数の制限についてをご参照ください。

    アプリケーションの管理

    目次

    利用のルール

    開発のヒント