自然言語理解
日本語文を解析し、意図の解釈や情報の抽出を行います。Yahoo!音声アシストでも使われているこの自然言語理解を利用して、あなた自身のアプリケーションを作成できます。
リクエストURL
JSON
https://jlp.yahooapis.jp/NLUService/V2/analyze
※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 |
応答ステータスの種類。
|
特定のレスポンスのみに存在するフィールド(抜粋)
フィールド | 例 | 入力テキスト例 | 説明 |
---|---|---|---|
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 に制限しています。また、利用回数の制限については利用回数の制限についてをご参照ください。