固有表現抽出

日本語文を解析し、固有表現を抽出します。
現在、以下の8つのエンティティ(※)を固有表現として抽出しています。

  • 固有名詞的表現
    • ORGANIZATION(組織名):会社、団体、政府機関の名前を指します。例:国連、東京大学
    • PERSON(人名):人物の名前を指します。例:田中、山田太郎
    • LOCATION(地名):地理的な場所や地域を指します。例:東京、サンフランシスコ
    • ARTIFACT(固有物名):人間の活動によって作られた具体物、抽象物の名前を指します。例:憲法、ノーベル賞
  • 時間表現
    • DATE(日付表現):特定の日付を指します。例:2023年12月7日
    • TIME(時間表現):特定の時刻を指します。例:23時
  • 数値表現
    • MONEY(金額表現):特定の金額を指します。例:100円、100ドル
    • PERCENT(割合表現):特定の割合を指します。例:25%、0.5%

(※)IREX(Information Retrieval and Extraction Exercise)固有表現抽出課題の定義を参考にしています。

リクエストURL

JSON
https://jlp.yahooapis.jp/NERService/V1/extract
※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.nerservice.extract」としてください。
params(必須) object
params/q(必須) string 解析対象のテキストを指定します。

サンプルリクエスト

{
  "id": "1234-1",
  "jsonrpc" : "2.0",
  "method" : "jlp.nerservice.extract",
  "params" : {
    "q" : "Xデータ株式会社の加藤さんは、10時に東京駅に到着しました。"
  }
}

レスポンスフィールド

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

フィールド 説明
id string,integer リクエストのidの値が返ります。
jsonrpc string 固定で「"2.0"」が返ります。
result object 固有表現の抽出結果です。
result/entityList array(object) 固有表現の抽出結果を含む配列です。
抽出結果が存在しない場合は空となります。
result/entityList/text string 固有表現のテキストです。
result/entityList/type string 固有表現の種類です。以下8つのいずれかを返します。
  • ORGANIZATION:組織名
  • PERSON:人名
  • LOCATION:地名
  • ARTIFACT:固有物名
  • DATE:日付表現
  • TIME:時間表現
  • MONEY:金額表現
  • PERCENT:割合表現
result/entityList/offset integer 固有表現の文字オフセットです。
result/entityList/length integer 固有表現の文字長です。

サンプルレスポンス

以下は、q="Xデータ株式会社の加藤さんは、10時に東京駅に到着しました。" のリクエストに対するレスポンスです。

{
  "id": "1234-1",
  "jsonrpc": "2.0",
  "result": {
    "entityList": [
      {
        "length": 8,
        "offset": 0,
        "text": "Xデータ株式会社",
        "type": "ORGANIZATION"
      },
      {
        "length": 2,
        "offset": 9,
        "text": "加藤",
        "type": "PERSON"
      },
      {
        "length": 3,
        "offset": 15,
        "text": "10時",
        "type": "TIME"
      },
      {
        "length": 3,
        "offset": 19,
        "text": "東京駅",
        "type": "LOCATION"
      }
    ]
  }
}

エラー

固有表現抽出は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.nerservice.extract",
  "params": {
    "q": "Xデータ株式会社の加藤さんは、10時に東京駅に到着しました。"
  }

レスポンス

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

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

リクエスト

{
  "id": "1234-1",
  "jsonrpc" : "2.0",
  "params" : {
    "q" : "Xデータ株式会社の加藤さんは、10時に東京駅に到着しました。"
  }
}

レスポンス

{
  "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" : "Xデータ株式会社の加藤さんは、10時に東京駅に到着しました。"
  }
}

レスポンス

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

利用制限

固有表現抽出では、1リクエストの最大サイズを 4KB に制限しています。また、利用回数の制限については利用回数の制限についてをご参照ください。

アプリケーションの管理

目次

利用のルール

開発のヒント