このページではソースコードの一部分を簡単な解説をしています。
作成した漢字読みクイズはコチラから
ソースコードは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から読みがなを取得し答えとしたクイズを作ってみたのですが、返ってくる読みがなが間違っているものも多少ありましたので、クイズの答えとして扱うのはやめたほうがいいと思いました。
最後までお読みいただきありがとうございました。
