Yahoo! JAPANが提供している日本語形態素解析APIを利用して漢字読みクイズを作ってみる

スポンサーリンク

このページではソースコードの一部分を簡単な解説をしています。

作成した漢字読みクイズはコチラから
ソースコードはgithubにあります

スポンサーリンク

概要

Yahoo! JAPANが提供している日本語形態素解析APIは日本語文を形態素に分割し、品詞、読みがなの付与、統計情報を取得できる機能を提供するAPIです。今回は読みがなの付与を正解判定に使い、漢字読みクイズを作ってみました。

読みがなを取得する

$questions = ['紫陽花', '百合', '薔薇];

$appid = ''; // <-- ここにあなたのアプリケーションIDを設定してください。
$url = 'http://jlp.yahooapis.jp/MAService/V1/parse?appid='.$appid.'&results=ma';
$r = array_rand($questions);
$url .= '&sentence='.urlencode($questions[$r]);
$xml  = simplexml_load_file($url);
$result = $xml->ma_result->word_list->word->reading;

日本語形態素解析APIのリクエストURLは、https://jlp.yahooapis.jp/MAService/V1/parseになります。このURLにGET方式でリクエストパラメーターを送り、必須のリクエストパラメーターとなるアプリケーションIDと解析対象のテキストを渡すとxmlで結果が返ってきます。アプリケーションIDはコチラから登録できます。 解析対象のテキストはクイズに出題する漢字を変数$questionsからarray_rand関数を使いランダムに抽出して渡しています。最後に返ってきたxmlの中から読みがなのレスポンスを変数$resultに格納しています。

答え合わせをする

function send() {
        const answer = "<?php echo $result;?>"; // 正解のひらがな
        const textbox = document.getElementById("message").value; // テキストボックスに入力された文字
        // 正解か判定
        if (textbox === answer) {
            h1.textContent = "正解です!";
        } else {
            h1.textContent = "不正解です...";
        }
        h2.innerHTML = question + "(<span>" + answer + "</span>)"
    }

先ほど取得した読みがなとユーザーがテキストボックスに入力したひらがなが同じかif文で判定しています。

まとめ

本語形態素解析APIから読みがなを取得し答えとしたクイズを作ってみたのですが、返ってくる読みがなが間違っているものも多少ありましたので、クイズの答えとして扱うのはやめたほうがいいと思いました。

最後までお読みいただきありがとうございました。

タイトルとURLをコピーしました