parseStructured

バージョン1.1.0 以前の説明は parseStructured(バージョン1.1.0以前) へ。

説明

他のタグ付け器等で構造化されているテキスト、または一連のテキストのジオパース処理を行う。

文法

object geonlp.parseStructured (string[] sentences [, object options])

リクエストパラメータ

sentences
  • 変換したいテキストの配列
  • 要素の長さ、要素数の上限なし
  • それぞれの要素は連続したテキストの部分として解析され、 相互の地名解決に影響する
options
  • 利用する辞書の指定など、処理のオプションを設定する
  • オプションの詳細は parse オプション を参照

リクエストの例

{
  "method": "geonlp.parseStructured",
  "params":
    [
      [
        { "organization": {
            "surface" : "NII",
            "name" : "国立情報学研究所",
            "tel" : "03-4212-2000(代表)"
          }
        },
        "は千代田区一ツ橋1-2-1にあります。神保町から徒歩3分。"
      ],
    ],
  "id": "2"
}

レスポンス

処理結果の構造化テキストを返す( parse と同じ)。

レスポンスの例

{
  "error":null,
  "id":2,
  "result":[
    {
      "organization":{
        "name":"国立情報学研究所",
        "surface":"NII",
        "tel":"03-4212-2000(代表)"
      }
    },
    [
      {
        "surface":"は"
      },
      {
        "geo":{
          "geometry":{
            "coordinates":[
              139.757004,
              35.691963
            ],
            "type":"Point"
          },
          "properties":{
            "address":[
              {
                "geonlp_id":"ALRYpP",
                "latitude":35.689499,
                "level":1,
                "longitude":139.691635,
                "name":"東京都"
              },
              {
                "geonlp_id":"51sMnl",
                "latitude":35.693932,
                "level":3,
                "longitude":139.753540,
                "name":"千代田区"
              },
              {
                "latitude":35.691635,
                "level":5,
                "longitude":139.756683,
                "name":"一ツ橋"
              },
              {
                "latitude":35.691635,
                "level":6,
                "longitude":139.756683,
                "name":"一丁目"
              },
              {
                "latitude":35.691963,
                "level":7,
                "longitude":139.757004,
                "name":"2番"
              }
            ],
            "code":{
              "jisx0402":"13101",
              "lasdec":"131016"
            },
            "name":"東京都千代田区一ツ橋一丁目2番",
            "standard_form":"東京都千代田区一ツ橋一丁目2番"
          },
          "type":"Feature"
        },
        "surface":"千代田区一ツ橋1-2-"
      },
      {
        "surface":"1にあります。"
      },
      {
        "geo":{
          "geometry":{
            "coordinates":[
              139.758428,
              35.694893
            ],
            "type":"Point"
          },
          "properties":{
            "body":"神保町",
            "body_kana":"ジンボウチョウ",
            "dictionary_id":31,
            "entry_id":"eb03_6358",
            "geonlp_id":"rQ1HpF",
            "hypernym":[
              "東京都",
              "三田線"
            ],
            "kana":"ジンボウチョウエキ",
            "latitude":"35.6948933333333",
            "longitude":"139.758428333333",
            "name":"神保町駅",
            "ne_class":"鉄道施設/地下鉄駅",
            "railway_type":"12",
            "service_provider_type":"3",
            "suffix":[
              "駅",
              ""
            ],
            "suffix_kana":[
              "エキ",
              ""
            ]
          },
          "type":"Feature"
        },
        "surface":"神保町"
      },
      {
        "surface":"から徒歩3分。"
      }
    ]
  ]
}

PHP サンプルコード

jsonrpc_client.php

ダウンロード

<?php

$apikey = ""; // <-- input your API key

function jsonrpc_exec($json_request) {
  global $apikey;
  if ($apikey == '') throw new Exception("Please submit the API key from the GeoNLP site (https://geonlp.ex.nii.ac.jp)");

  $endpoint = "https://dias.ex.nii.ac.jp/geonlp/api/1/geo-tagging";
  $header  = array("Content-Type: application/json",
                   "X-GeoNLP-Authorization: {$apikey}",
                   "Content-Length: ".strlen($json_request));
  $options = array('http' => array('method' => 'POST', 'header' => implode("\r\n", $header), 'content' => $json_request));
  $content = file_get_contents($endpoint, false, stream_context_create($options));
  $result = var_export(json_decode($content, true), true);
  return $result;
}

parseStructured.php

ダウンロード

<?php
require_once('jsonrpc_client.php');

$request = array(
  'method'=>'geonlp.parseStructured',
  'params'=>array(
    array(
      array('organization'=>array('surface'=>'NII',
				  'name'=>'国立情報学研究所',
				  'tel'=>'03-4212-2000(代表)')),
      'は千代田区一ツ橋1-2-1にあります。神保町から徒歩3分。'
    ),
    array('geocoding'=>true, 'threshold'=>0)
  ),
  'id'=>2
);

$response = jsonrpc_exec(json_encode($request));
echo $response, "\n";

実行結果

$ php parseStructured.php
array (
  'error' => NULL,
  'id' => 2,
  'result' => 
  array (
    0 => 
    array (
      'organization' => 
      array (
        'name' => '国立情報学研究所',
        'surface' => 'NII',
        'tel' => '03-4212-2000(代表)',
      ),
    ),
    1 => 
    array (
      0 => 
      array (
        'surface' => 'は',
      ),
      1 => 
      array (
        'geo' => 
        array (
          'geometry' => 
          array (
            'coordinates' => 
            array (
              0 => 139.757004,
              1 => 35.691963,
            ),
            'type' => 'Point',
          ),
          'properties' => 
          array (
            'address' => 
            array (
              0 => 
              array (
                'geonlp_id' => 'ALRYpP',
                'latitude' => 35.689499,
                'level' => 1,
                'longitude' => 139.691635,
                'name' => '東京都',
              ),
              1 => 
              array (
                'geonlp_id' => '51sMnl',
                'latitude' => 35.693932,
                'level' => 3,
                'longitude' => 139.75354,
                'name' => '千代田区',
              ),
              2 => 
              array (
                'latitude' => 35.691635,
                'level' => 5,
                'longitude' => 139.756683,
                'name' => '一ツ橋',
              ),
              3 => 
              array (
                'latitude' => 35.691635,
                'level' => 6,
                'longitude' => 139.756683,
                'name' => '一丁目',
              ),
              4 => 
              array (
                'latitude' => 35.691963,
                'level' => 7,
                'longitude' => 139.757004,
                'name' => '2番',
              ),
            ),
            'code' => 
            array (
              'jisx0402' => '13101',
              'lasdec' => '131016',
            ),
            'name' => '東京都千代田区一ツ橋一丁目2番',
            'standard_form' => '東京都千代田区一ツ橋一丁目2番',
          ),
          'type' => 'Feature',
        ),
        'surface' => '千代田区一ツ橋1-2-',
      ),
      2 => 
      array (
        'surface' => '1にあります。',
      ),
      3 => 
      array (
        'geo' => 
        array (
          'geometry' => 
          array (
            'coordinates' => 
            array (
              0 => 139.758428,
              1 => 35.694893,
            ),
            'type' => 'Point',
          ),
          'properties' => 
          array (
            'body' => '神保町',
            'body_kana' => 'ジンボウチョウ',
            'dictionary_id' => 31,
            'entry_id' => 'eb03_6358',
            'geonlp_id' => 'rQ1HpF',
            'hypernym' => 
            array (
              0 => '東京都',
              1 => '三田線',
            ),
            'kana' => 'ジンボウチョウエキ',
            'latitude' => '35.6948933333333',
            'longitude' => '139.758428333333',
            'name' => '神保町駅',
            'ne_class' => '鉄道施設/地下鉄駅',
            'railway_type' => '12',
            'service_provider_type' => '3',
            'suffix' => 
            array (
              0 => '駅',
              1 => '',
            ),
            'suffix_kana' => 
            array (
              0 => 'エキ',
              1 => '',
            ),
          ),
          'type' => 'Feature',
        ),
        'surface' => '神保町',
      ),
      4 => 
      array (
        'surface' => 'から徒歩3分。',
      ),
    ),
  ),
)