名寄せ
固有名詞リストを受け取り、同じ対象を示している可能性が高い表記同士をまとめ上げる名寄せ機能を提供します。
リクエストURL
JSON
https://jlp.yahooapis.jp/jsonrpc
※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 を用いた 高速名寄せ・高速テキストクラスタリングの実装