自然言語理解

Yahoo!音声アシストでも使われている自然言語理解Web APIを利用して、アプリケーションを作成できます。

日本語文を解析し、情報の抽出を行う機能を提供します。

リクエスト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/INTEXT string リクエストの入力テキスト。
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"
        }
      }

    利用制限

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

    アプリケーションの管理

    目次

    利用のルール

    開発のヒント