サンプル・プログラムの実行例
サンプル・プログラム
pseudodigest.php | サンプル・プログラム本体。 |
日本語係り受け解析
URL |
---|
https://jlp.yahooapis.jp/DAService/V2/parse |
フィールド名 | 要否 | 内 容 | |
---|---|---|---|
id | 必須 | JSON-RPC 2.0のid。値は任意で、指定した値がレスポンスのidに返る。 | |
jsonrpc | 必須 | "2.0" 固定。 | |
method | 必須 | "jlp.daservice.parse" 固定。 | |
params | q | 必須 | 解析対象のテキスト。解析可能な単位は1文のみ。 |
準備:アプリケーションIDなど
14: // 初期化処理 ================================================================
15: define('INTERNAL_ENCODING', 'UTF-8');
16: mb_internal_encoding(INTERNAL_ENCODING);
17: mb_regex_encoding(INTERNAL_ENCODING);
18: define('MYSELF', basename($_SERVER['SCRIPT_NAME']));
19: define('REFERENCE', 'https://www.pahoo.org/e-soul/webtech/php06/php06-47-01.shtm');
20: define('TITLE', '日本文の要約もどき');
21: define('REQUEST_KAKARIUKE_URL', 'https://jlp.yahooapis.jp/DAService/V2/parse');
22:
23: //リファラチェック+リリースフラグの設定
24: if (isset($_SERVER['HTTP_HOST']) && ($_SERVER['HTTP_HOST'] == 'localhost')) {
25: define('FLAG_RELEASE', FALSE);
26: define('REFER_ON', '');
27: ini_set('display_errors', 1);
28: ini_set('error_reporting', E_ALL);
29: } else {
30: //リリース・フラグ(公開時にはTRUEにすること)
31: define('FLAG_RELEASE', TRUE);
32: //リファラ・チェック(直リン防止用;空文字ならチェックしない)
33: define('REFER_ON', 'www.pahoo.org');
34: }
35:
36: //表示幅(ピクセル)
37: define('WIDTH', 600);
38:
39: //Yahoo! JAPAN Webサービス アプリケーションID
40: //取得方法 https://www.pahoo.org/e-soul/webtech/php06/php06-01-02.shtm#Yahoo
41: define('APPLICATION_ID', '**************************************');
42:
43: //入力テキスト(初期値)
44: define('SAMPLE_TEXT', '犬吠埼灯台は、1874年に英国人リチャード・ヘンリー・ブラントンの設計により建築された、れんが造りの灯台で、日本で24番目に点灯された。高さは31.57メートルあり、99段のらせん階段を昇った眺望は、太平洋の孤島に身をおいた錯覚を覚えるほど雄大である。');
取得したIDは定数 APPLICATION_ID に格納する。
その他、変更不可と記載のない定数は任意に変更して構わない。
解説:テキストの分解
250: /**
251: * 複数文要約インターフェース
252: * @param string $sentence 要約するテキスト
253: * @return string 要約もどき
254: */
255: function pseudodigest($sentence) {
256: $arr = mb_split("[。.]", $sentence);
257: $pseudodigest = '';
258: foreach ($arr as $str) {
259: if ($str == '') continue;
260: if (($res = pseudodigest_sub($str . '。')) == FALSE) return FALSE;
261: $pseudodigest .= $res;
262: }
263:
264: return $pseudodigest;
265: }
解説:要約もどき
前半で日本語係り受け解析を呼び出し、文節番号をキーに、修飾番号と表記を配列 $items に格納する。
後半が要約もどきの処理である。
修飾番号が無い(-1 が格納されている)文節がベースとなる述語である。これを探しだし、それを修飾している文節を並べる。
参考サイト
- 日本語係り受け解析:Yahoo!JAPAN デベロッパーネットワーク
- PHPでキーフレーズを取り出す:ぱふぅ家のホームページ
今回は、Yahoo!JAPANの「日本語係り受け解析」を利用し、ベースとなる述語と、それを修飾する文節を取り出すことで、“要約もどき”を行ってみることにする。
(2022年1月29日)日本語係り受け解析V2対応,PHP8対応,リファラ・チェック改良