ルビ振り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 のソースコードです。
■コード:
#!/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>
$appid は自分で取得したものを使ってくださいね。(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]
この記事に言及しているこのブログ内の記事
