形態素解析(Yahoo API)

2020/04/18

今更ながら Twitter bot を作ってみようかなっと思ったことと、前に後輩が出向に行っていた形態素解析って使ってみたいなっと思ったので、まずは気軽に使えそうな Yahoo API の形態素解析を使ってみた。 ちなみに Yahoo ID 必須。

1. 下記のアドレスから「アプリケーションIDの登録(無料)」を選ぶ

□日本語形態素解析

2. 実際に試してみる

<?php
$format='http://jlp.yahooapis.jp/MAService/V1/parse?appid=%s&sentence=%s';
$apikey = YahooAPIのキー;
$msg = '今日は晴れになるといいな';
$url = sprintf($format, $apikey, $msg);
$rss = file_get_contents($url);
$xml = simplexml_load_string($rss);

3. 結果を var_dump する

<?php
object(SimpleXMLElement)#202 (1) {
  ["ma_result"]=>
  object(SimpleXMLElement)#201 (3) {
    ["total_count"]=>
    string(1) "8"
    ["filtered_count"]=>
    string(1) "8"
    ["word_list"]=>
    object(SimpleXMLElement)#200 (1) {
      ["word"]=>
      array(8) {
        [0]=>
        object(SimpleXMLElement)#199 (3) {
          ["surface"]=>
          string(6) "今日"
          ["reading"]=>
          string(9) "きょう"
          ["pos"]=>
          string(6) "名詞"
        }
        [1]=>
        object(SimpleXMLElement)#198 (3) {
          ["surface"]=>
          string(3) "は"
          ["reading"]=>
          string(3) "は"
          ["pos"]=>
          string(6) "助詞"
        }
        [2]=>
        object(SimpleXMLElement)#197 (3) {
          ["surface"]=>
          string(6) "晴れ"
          ["reading"]=>
          string(6) "はれ"
          ["pos"]=>
          string(6) "名詞"
        }
        [3]=>
        object(SimpleXMLElement)#196 (3) {
          ["surface"]=>
          string(3) "に"
          ["reading"]=>
          string(3) "に"
          ["pos"]=>
          string(6) "助詞"
        }
        [4]=>
        object(SimpleXMLElement)#195 (3) {
          ["surface"]=>
          string(6) "なる"
          ["reading"]=>
          string(6) "なる"
          ["pos"]=>
          string(6) "動詞"
        }
        [5]=>
        object(SimpleXMLElement)#194 (3) {
          ["surface"]=>
          string(3) "と"
          ["reading"]=>
          string(3) "と"
          ["pos"]=>
          string(6) "助詞"
        }
        [6]=>
        object(SimpleXMLElement)#193 (3) {
          ["surface"]=>
          string(6) "いい"
          ["reading"]=>
          string(6) "いい"
          ["pos"]=>
          string(9) "形容詞"
        }
        [7]=>
        object(SimpleXMLElement)#192 (3) {
          ["surface"]=>
          string(3) "な"
          ["reading"]=>
          string(3) "な"
          ["pos"]=>
          string(6) "助詞"
        }
      }
    }
  }
}

簡単に試せるのでいいね。