このページではソースコードの一部分を簡単な解説をしています。
作成した漢字読みクイズはコチラから
ソースコードはgithubにあります
概要
Yahoo! JAPANが提供している日本語形態素解析APIは日本語文を形態素に分割し、品詞、読みがなの付与、統計情報を取得できる機能を提供するAPIです。今回は読みがなの付与を正解判定に使い、漢字読みクイズを作ってみました。
読みがなを取得する
1 2 3 4 5 6 7 8 |
$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
に格納しています。
答え合わせをする
1 2 3 4 5 6 7 8 9 10 11 |
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から読みがなを取得し答えとしたクイズを作ってみたのですが、返ってくる読みがなが間違っているものも多少ありましたので、クイズの答えとして扱うのはやめたほうがいいと思いました。
最後までお読みいただきありがとうございました。