日本語の文章から、特徴的な表現を取得できるAPIです。
リクエストURL:https://jlp.yahooapis.jp/KeyphraseService/V1/extract
GETではクエリの最大長を超える恐れがあるため、対象のテキストが長くなるならばPOSTでリクエストします。Yahoo!デベロッパーネットワーク:WebAPIの使い方(POSTリクエスト) - Yahoo!デベロッパーネットワーク
| パラメータ | 説明 |
|---|---|
| appid(必須) | アプリケーションID |
| sentence(必須) | 解析対象のテキスト |
| output | レスポンス形式
|
| callback | JSONPとして出力する際のコールバック関数名 |
| フィールド | 説明 |
|---|---|
| ResultSet | すべての抽出結果 |
| Result | 個々の抽出結果 |
| Keyphrase | キーフレーズ |
| Score | キーフレーズの重要度 |
以下は「sentence=東京ミッドタウンから国立新美術館まで歩いて5分で着きます。」へのレスポンスです。
<?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分
a:3:{s:18:"国立新美術館";i:100;s:24:"東京ミッドタウン";i:72;s:4:"5分";i:10;}
{"\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
)
のように、キーフレーズとその重要度からなる配列に格納されます。
リクエスト時にはパラメータはエンコードして渡すため、UTF-8の「あ」の1文字でも「%E3%81%82」の9バイト必要です。