Yahooデベロッパーネットワークのかな漢字変換APIを利用して、PHPプログラムを作成してみました。Yahooデベロッパーネットワークのかな漢字変換APIは、ローマ字、ひらがなの文を文節に区切り、変換候補を提示します。また、短い文字列から変換候補を推測するモードも提供します。VJEと同じ方式のかな漢字変換です。
| パラメータ | 値 | 説明 |
|---|---|---|
| appid(必須) | string | アプリケーションID。 |
| sentence(必須) | string | かな漢字変換対象のテキストです。文節の区切りを指定したい場合は、テキストを半角スペースで区切ってください。 |
| format | string: roman | “sentence”のテキストフォーマットを指定します。”roman”を指定すると、リクエストされたテキスト情報中のひらがなと半角英小文字が変換対象となります。 |
| mode | string: normal, roman | “normal”: 通常の変換候補を返す通常変換を行います。 “roman”: ローマ字からひらがなに変換した結果のみを返すローマ字変換を行います。 |
| response | string: katakana, hiragana, alphanumeric, half_katakana, half_alphanumeric | 通常のかな漢字変換のほかに、指定の変換候補を返します。 “alphanumeric”: 全角英数字変換の内容をAlphanumericに返します。 “half_alphanumeric”: 半角英数字変換の内容をHalfAlphanumericに返します。 |
| results | integer: 999(デフォルトかつ最大) | 文節単位の変換候補の数を指定します。 |
| フィールド | 説明 |
|---|---|
| ResultSet | かな漢字変換結果のすべてを含みます。 |
| Result | 文節ごとの変換結果で各個別レスポンスを含みます。 |
| SegmentList | かな漢字変換によって区切られたテキスト情報の文節のリストです。各文節の情報を含みます。 |
| Segment | 文節の変換候補を含みます。 |
| SegmentText | 文節ごとの読みにあたる文字列です。 |
| HalfAlphanumeric | 半角英数字の変換結果です。 |
| CandidateList | 変換候補をすべて含みます。 |
| Candidate | 変換候補です。 |
かな漢字変換APIの仕様:
http://developer.yahoo.co.jp/webapi/jlp/jim/v1/conversion.html
ひらがな入力から仮名漢字への変換
ひらがなで入力して、漢字に変換します。かな漢字変換には、Yahooデベロッパーネットワークのかな漢字変換APIを使用します。かな漢字変換APIを利用したPHPプログラムを次に示します。変換候補数は「3」にします。
$appid = アプリケーションID; $api = 'http://jlp.yahooapis.jp/JIMService/V1/conversion'; $sentence = 'きょうはよいてんきです。'; $args = array ( 'appid'=>$appid, 'sentence'=>$sentence, 'results'=>3, ); $url = $api . '?' . http_build_query($args); $ch = curl_init ($url); curl_setopt ($ch, CURLOPT_RETURNTRANSFER, 1); curl_setopt ($ch, CURLOPT_TIMEOUT, 900); curl_setopt ($ch, CURLOPT_CONNECTIONTIMEOUT, 20); $data = curl_exec ($ch); curl_close ($ch);
変換結果はXML形式で次のように出力されます。
<?xml version="1.0" encoding="UTF-8"?>
<ResultSet xmlns="urn:yahoo:jp:jlp:JIMService" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="urn:yahoo:jp:jlp:JIMService http://jlp.yahooapis.jp/JIMService/V1/conversion.xsd">
<Result>
<SegmentList>
<Segment>
<SegmentText>きょうは</SegmentText>
<CandidateList>
<Candidate>今日は</Candidate>
<Candidate>きょうは</Candidate>
<Candidate>教派</Candidate>
</CandidateList>
</Segment>
<Segment>
<SegmentText>よい</SegmentText>
<CandidateList>
<Candidate>よい</Candidate>
<Candidate>良い</Candidate>
<Candidate>宵</Candidate>
</CandidateList>
</Segment>
<Segment>
<SegmentText>てんきです。</SegmentText>
<CandidateList>
<Candidate>天気です。</Candidate>
<Candidate>転機です。</Candidate>
<Candidate>転記です。</Candidate>
</CandidateList>
</Segment>
</SegmentList>
</Result>
</ResultSet>
ひらがな入力からローマ字への変換
ひらがなで入力して、ローマ字に変換します。ひらがなローマ字変換には、Yahooデベロッパーネットワークのひらがなローマ字変換APIを使用しますひらがなローマ字変換APIを利用したPHPプログラムを次に示します。変更したPHPプログラム部分のみを次に示します。
$sentence = 'きょうはよいてんきです。'; $args = array ( 'appid'=>$appid, 'sentence'=>$sentence, 'response'=>"half_alphanumeric", 'results'=>3, );
変換結果は、XML形式で次のように出力されます。
<?xml version="1.0" encoding="UTF-8"?>
<ResultSet xmlns="urn:yahoo:jp:jlp:JIMService" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="urn:yahoo:jp:jlp:JIMService http://jlp.yahooapis.jp/JIMService/V1/conversion.xsd">
<Result>
<SegmentList>
<Segment>
<SegmentText>きょうは</SegmentText>
<HalfAlphanumeric>kyouha</HalfAlphanumeric>
<CandidateList>
<Candidate>今日は</Candidate>
<Candidate>きょうは</Candidate>
<Candidate>教派</Candidate>
</CandidateList>
</Segment>
<Segment>
<SegmentText>よい</SegmentText>
<HalfAlphanumeric>yoi</HalfAlphanumeric>
<CandidateList>
<Candidate>よい</Candidate>
<Candidate>良い</Candidate>
<Candidate>宵</Candidate>
</CandidateList>
</Segment>
<Segment>
<SegmentText>てんきです。</SegmentText>
<HalfAlphanumeric>tennkidesu.</HalfAlphanumeric>
<CandidateList>
<Candidate>天気です。</Candidate>
<Candidate>転機です。</Candidate>
<Candidate>転記です。</Candidate>
</CandidateList>
</Segment>
</SegmentList>
</Result>
</ResultSet>
レスポンスフィールド「HalfAlphanumeric」に、日本語形態素解析された結果ごとにローマ字で出力されます。
ローマ字入力からひらがなへの変換
ローマ字で入力して、ひらがなに変換します。ローマ字ひらがな変換には、Yahooデベロッパーネットワークのローマ字ひらがなAPIを使用します。ローマ字ひらがなAPIを利用したPHPプログラムを次に示します。変更したPHPプログラム部分のみを次に示します。
$sentence = 'kyouhayoitennkidesu'; $args = array ( 'appid'=>$appid, 'sentence'=>$sentence, 'format'=>"roman", 'mode'=>"roman", 'results'=>3, );
変換結果はXML形式で次のように出力されます。
<?xml version="1.0" encoding="UTF-8"?>
<ResultSet xmlns="urn:yahoo:jp:jlp:JIMService" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="urn:yahoo:jp:jlp:JIMService http://jlp.yahooapis.jp/JIMService/V1/conversion.xsd">
<Result>
<SegmentList>
<Segment>
<SegmentText>きょうはいいてんきです</SegmentText>
</Segment>
</SegmentList>
</Result>
</ResultSet>