名寄せ

固有名詞リストを受け取り、同じ対象を示している可能性が高い表記同士をまとめ上げる名寄せ機能を提供します。

リクエストURL

JSON
https://jlp.yahooapis.jp/jsonrpc
※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.entity_clusterer.cluster」としてください。
params(必須) object
params/q(必須) string 改行(LF)区切りの固有名詞リストを、UTF-8とBASE64でエンコードした文字列を指定します。
最大1万行の固有名詞を含めることができ、一固有名詞あたり1,024byteが上限です。
それぞれ上限をオーバーした場合はエラーが返ります。ファイルの中身を分割するなどしてリクエストし直してください。
params/similarity_threshold(任意) number 同クラスタと判定する固有名詞同士のコサイン類似度の下限です。
指定しない場合のデフォルト値は0.6です。
クラスタの粒度をより細かくしたい場合にこの数値を上げてください。
0.0より大きく、1.0より小さな値のみを受け取ります(それ以外の場合はエラーが返ります)。
データの性質や目的に応じて最適なsimilarity_thresholdは変わりうるので、
固定値としては扱わず、クラスタリング結果に応じて調整することを推奨します。
params/ngram(任意) integer 固有名詞同士の類似度を測る単位として用いる文字n-gramのnの値を変更できます。
デフォルト値は2です。
カタカナ語やアルファベット語が主なデータをクエリとして投げる場合にはnの値を大きくすると望ましい結果が得られる場合があります。

サンプルリクエスト

{
  "id": "1234-1",
  "jsonrpc" : "2.0",
  "method" : "jlp.entity_clusterer.cluster",
  "params" : {
    "q" : "5p2x5Lqs44K/44Ov44O8CuadseS6rOOCueOCq+OCpOODhOODquODvArpgJrlpKnplqMK44K544Kr44Kk44OE44Oq44O8CuaXpeacrOmbu+azouWhlO+8iOadseS6rOOCv+ODr+ODvO+8iQ=="
  }
}

サンプルコード

解析対象の固有名詞リストをエンコードし、名寄せを使用したサンプルコードです。

レスポンスフィールド

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

フィールド 値 説明
id string,integer リクエストのidの値が返ります。
jsonrpc string 固定で「"2.0"」が返ります。
result object 名寄せの結果です。
result/blocked_result array(object) 各クラスタごとの情報の配列です。
result/blocked_result/index array(integer) クラスタとしてまとめ上げられた固有名詞の行番号(先頭行は1)の配列です。
いずれのクラスタにも含まれなかった固有名詞の行番号は出力されません。

サンプルレスポンス

以下は、上で例示したリクエストに対するレスポンスです。

{
  "id": "1234-1",
  "jsonrpc": "2.0",
  "result": {
    "blocked_result": [
      {
        "index": [
          1,
          3
        ]
      },
      {
        "index": [
          6,
          7
        ]
      }
    ]
  }
}

エラー

名寄せは、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.entity_clusterer.cluster",
  "params" : {
    "q" : "5p2x5Lqs44K/44Ov44O8CuadseS6rOOCueOCq+OCpOODhOODquODvArpgJrlpKnplqMK44K544Kr44Kk44OE44Oq44O8CuaXpeacrOmbu+azouWhlO+8iOadseS6rOOCv+ODr+ODvO+8iQ=="
  }

レスポンス

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

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

リクエスト

{
  "id": "1234-1",
  "jsonrpc": "2.0",
  "params": {
    "q": "5p2x5Lqs44K/44Ov44O8CuadseS6rOOCueOCq+OCpOODhOODquODvArpgJrlpKnplqMK44K544Kr44Kk44OE44Oq44O8CuaXpeacrOmbu+azouWhlO+8iOadseS6rOOCv+ODr+ODvO+8iQ=="
  }
}

レスポンス

{
  "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" : "5p2x5Lqs44K/44Ov44O8CuadseS6rOOCueOCq+OCpOODhOODquODvArpgJrlpKnplqMK44K544Kr44Kk44OE44Oq44O8CuaXpeacrOmbu+azouWhlO+8iOadseS6rOOCv+ODr+ODvO+8iQ=="
  }
}

レスポンス

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

利用制限

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

補足情報

技術詳細については以下をご参照ください。

Renga Block: Q-grams Blocking を用いた 高速名寄せ・高速テキストクラスタリングの実装

アプリケーションの管理

目次

利用のルール

開発のヒント

サービス一覧