キーフレーズ抽出API

日本語の文章から、特徴的な表現を取得できるAPIです。

リクエスト

リクエストURL:https://jlp.yahooapis.jp/KeyphraseService/V1/extract

GETではクエリの最大長を超える恐れがあるため、対象のテキストが長くなるならばPOSTでリクエストします。Yahoo!デベロッパーネットワーク:WebAPIの使い方(POSTリクエスト) - Yahoo!デベロッパーネットワーク

パラメータ

パラメータ 説明
appid(必須) アプリケーションID
sentence(必須) 解析対象のテキスト
output レスポンス形式
  • xml … XML形式
  • json … JSON形式
  • php … PHP Serialize形式
callback JSONPとして出力する際のコールバック関数名

レスポンス

フィールド 説明
ResultSet すべての抽出結果
Result 個々の抽出結果
Keyphrase キーフレーズ
Score キーフレーズの重要度

取得例

以下は「sentence=東京ミッドタウンから国立新美術館まで歩いて5分で着きます。」へのレスポンスです。

XML形式

<?xml version="1.0" encoding="UTF-8"?>
<ResultSet xmlns="urn:yahoo:jp:jlp:KeyphraseService" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="urn:yahoo:jp:jlp:KeyphraseService http://jlp.yahooapis.jp/KeyphraseService/V1/extract.xsd">
  <Result>
    <Keyphrase>国立新美術館</Keyphrase>
    <Score>100</Score>
  </Result>
  <Result>
    <Keyphrase>東京ミッドタウン</Keyphrase>
    <Score>72</Score>
  </Result>
  <Result>
    <Keyphrase>5分

PHP Serialize形式

a:3:{s:18:"国立新美術館";i:100;s:24:"東京ミッドタウン";i:72;s:4:"5分";i:10;}

JSON形式

{"\u56fd\u7acb\u65b0\u7f8e\u8853\u9928":100,"\u6771\u4eac\u30df\u30c3\u30c9\u30bf\u30a6\u30f3":72,"5\u5206":10}

サンプルコード

レスポンス形式に「PHPserialize」を指定して、PHPで処理します。

$sentence = '東京ミッドタウンから国立新美術館まで歩いて5分で着きます。';

$url = 'https://jlp.yahooapis.jp/KeyphraseService/V1/extract'
    .'?appid='.APPLICATION_ID
    .'&sentence='.urlencode( $sentence )
    .'&output=php';

// リクエストを送り、レスポンスを取得する
$response = file_get_contents( $url );

// レスポンスを逆シリアル化する
$phrases = unserialize( $response );
print_r( $phrases );

逆シリアル化された結果は、

Array
(
    [国立新美術館] => 100
    [東京ミッドタウン] => 72
    [5分] => 10
)

のように、キーフレーズとその重要度からなる配列に格納されます。

利用制限

  • 1回のリクエストは、100KBまで
  • 24時間でのリクエストは、1つのアプリケーションIDにつき50,000回まで
利用制限 - テキスト解析:キーフレーズ抽出 - Yahoo!デベロッパーネットワーク

リクエスト時にはパラメータはエンコードして渡すため、UTF-8の「あ」の1文字でも「%E3%81%82」の9バイト必要です。