ルビ振りAPIで「ふりがな」を付けよう!
2008-10-11-2
[Programming][NLP]
Yahoo!デベロッパーネットワークで、ちょっと前に「ルビ振りAPI」が公開されました。
Yahoo!デベロッパーネットワーク - テキスト解析 - ルビ振り
http://developer.yahoo.co.jp/jlp/FuriganaService/V1/furigana.html
この記事では、その特徴と簡単なサンプルプログラムを紹介します。
ふりがなを付けるだけなら形態素解析API[2008-04-05-5]
を使ってもよいのですが、このルビ振りAPIは
対象とする漢字グループを選択できるところがポイントです。
例えば、小学N年生向けを選択すると(N-1)年生までに習う
漢字にはふりがなが付かなくなります。
対象グループは、パラメータ grade で指定します。
例えば、「拉致被害者を救済する」という文を
小学1年生向け(grade=1)で処理すると
全てにふりがなが付きますが、
一般向け(grade=8)で処理すると
「拉致」のみにふりがなが付きます。
Perl で簡単なサンプル CGI を作りました。
フォームを仮設置したので、
適当な日本語文を入れてお試しください。
- ルビ振りデモ
http://yapi.ta2o.net/demos/yyomi.cgi
以下、CGI のソースコードです。
■コード:
(http://e.developer.yahoo.co.jp/webservices/register_application)
なお、入力文に半角スペースが入っていると、
表示が変になりますがサンプルなので気にせずにー!
今回は、
Yahoo!デベロッパーネットワーク (YDN) から出ている
自然言語処理系(テキスト解析系)APIの一つである
ルビ振りAPIを紹介しました。
テキスト解析シリーズの他のAPIの解説記事は下記になります:
- 日本語形態素解析
-- [を] Yahoo!デベロッパーネットワークにテキスト解析APIが登場!
[2007-06-18-1]
-- [を] Yahoo!日本語形態素解析APIをコマンドラインから使う
サンプルプログラム[2008-04-05-5]
- 日本語係り受け解析
-- [を] ヤフーの日本語係り受け解析APIとサンプルプログラム
「なんちゃって文章要約」[2008-08-21-1]
- かな漢字変換、構成支援
-- [を] Yahoo! API の「校正支援」と「かな漢字変換」の
サンプルプログラムを作ったよ[2008-07-11-1]
Yahoo!デベロッパーネットワーク - テキスト解析 - ルビ振り
http://developer.yahoo.co.jp/jlp/FuriganaService/V1/furigana.html
ルビ振りWebサービス
漢字かな交じり文に、ひらがなとローマ字のふりがな(ルビ)を付けます。
この記事では、その特徴と簡単なサンプルプログラムを紹介します。
特徴
ふりがなを付けるだけなら形態素解析API[2008-04-05-5]
を使ってもよいのですが、このルビ振りAPIは
対象とする漢字グループを選択できるところがポイントです。
例えば、小学N年生向けを選択すると(N-1)年生までに習う
漢字にはふりがなが付かなくなります。
対象グループは、パラメータ grade で指定します。
grade=1 | 小学1年生向け。全漢字にふりがな。 |
grade=2 | 小学2年生向け。 |
grade=3 | 小学3年生向け。 |
grade=4 | 小学4年生向け。 |
grade=5 | 小学5年生向け。 |
grade=6 | 小学6年生向け。 |
grade=7 | 中学生以上向け。 |
grade=8 | 一般向け。常用漢字はふりがな無し。 |
例えば、「拉致被害者を救済する」という文を
小学1年生向け(grade=1)で処理すると
全てにふりがなが付きますが、
一般向け(grade=8)で処理すると
「拉致」のみにふりがなが付きます。
サンプル
Perl で簡単なサンプル CGI を作りました。
フォームを仮設置したので、
適当な日本語文を入れてお試しください。
- ルビ振りデモ
http://yapi.ta2o.net/demos/yyomi.cgi
以下、CGI のソースコードです。
■コード:
$appid は自分で取得したものを使ってくださいね。#!/usr/bin/perl -T use strict; use warnings; use CGI; use LWP::Simple; use XML::Simple; use HTML::Template; use URI::Escape; use Encode; use utf8; binmode STDOUT, ":utf8"; my $appid = "YahooDemo"; my $q = new CGI; my $sentence = $q->param('sentence') || ""; my $grade = $q->param('grade') || 1; my $r_ref = yapi({sentence => $sentence, grade => $grade}); my $template = join("", <DATA>); my $t = HTML::Template->new(scalarref => \$template, global_vars => 1, die_on_bad_params => 0); $t->param(sentence => decode('utf-8', $sentence)); $t->param(grade => $grade); $t->param(results => $r_ref); print $q->header(-charset => 'UTF-8'), $t->output(); sub yapi { my ($args_ref) = @_; my $s = URI::Escape::uri_escape($args_ref->{sentence}) || ""; my $g = $args_ref->{grade} || 1; return [] unless $s; my $url = "http://jlp.yahooapis.jp/FuriganaService/V1/furigana?" ."appid=$appid&grade=$g&sentence=$s"; my $response = get($url); return [] unless $response; my $xmlsimple = XML::Simple->new(ForceArray => [ 'Word' ]); my $xml = $xmlsimple->XMLin($response); return [] unless $xml->{Result}; return $xml->{Result}->{WordList}->{Word}; } __DATA__ <html lang="ja"> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <title>ルビ振りデモ</title> </head> <body> <h1>ルビ振りデモ</h1> <form> <input type="input" name="sentence" size="60" value="<TMPL_VAR name=sentence>"> <input type="input" name="grade" size="1" value="<TMPL_VAR name=grade>"> <input type="submit"> </form> <TMPL_LOOP name=results><TMPL_VAR name=Surface><TMPL_IF name=Furigana>(<TMPL_VAR name=Furigana>, <TMPL_VAR name=Roman>)</TMPL_IF></TMPL_LOOP> <hr> <a href="http://developer.yahoo.co.jp/about">Webサービス by Yahoo! JAPAN</a> </body> </html>
(http://e.developer.yahoo.co.jp/webservices/register_application)
なお、入力文に半角スペースが入っていると、
表示が変になりますがサンプルなので気にせずにー!
おわりに
今回は、
Yahoo!デベロッパーネットワーク (YDN) から出ている
自然言語処理系(テキスト解析系)APIの一つである
ルビ振りAPIを紹介しました。
テキスト解析シリーズの他のAPIの解説記事は下記になります:
- 日本語形態素解析
-- [を] Yahoo!デベロッパーネットワークにテキスト解析APIが登場!
[2007-06-18-1]
-- [を] Yahoo!日本語形態素解析APIをコマンドラインから使う
サンプルプログラム[2008-04-05-5]
- 日本語係り受け解析
-- [を] ヤフーの日本語係り受け解析APIとサンプルプログラム
「なんちゃって文章要約」[2008-08-21-1]
- かな漢字変換、構成支援
-- [を] Yahoo! API の「校正支援」と「かな漢字変換」の
サンプルプログラムを作ったよ[2008-07-11-1]
この記事に言及しているこのブログ内の記事