サーバーサイドとの連携にチャレンジ
1、まずHTMLでテキスト送信するフォームを作成
2、Ajaxでリクエストを行う
google.load('jquery', '1.5'); google.setOnLoadCallback(function () { var form = jQuery('#ask_webai'), text = form.find('input[type=text]'); form.submit(function (event) { event.preventDefault(); jQuery.getJSON( // XMLをJSONに変換するPHPファイルを用意する 'http://wiz-code.digick.jp/php/yahoo-xml-request.php', { 'appid': 'my-developper-ID', 'sentence': text.val() }, //返ってきたデータを処理する function (data) { if (data) { var chunk = data.Result.ChunkList.Chunk; jQuery.each(chunk, function (index, object) { // 文節ごとのデータを表示 console.dir( object.MorphemList.Morphem ); }); } } ); }); });
3、そして最後にサーバー側のファイル(yahoo-xml-request.php)を用意します。自分はPHPしか分からないのでPHPで書いています。
<?php $param = array(); $param['appid'] = $_GET['appid']; $param['sentence'] = $_GET['sentence']; // Yahoo!テキスト解析APIのリクエストURL $url = "http://jlp.yahooapis.jp/DAService/V1/parse?"; $url .= http_build_query($param); $xml = simplexml_load_file($url) or die("XMLパースエラー"); $json = json_encode($xml); header("Content-Type: text/javascript; charset=utf-8"); echo $json; ?>このサンプルでは日本語係り受け解析APIというのを利用しています。ようは日本語を品詞レベルに分解して、文節同士の関係を解析するものです。ふとこれでAIみたいのが作れるのではないかと思い、本来の流れからそれてちょっとした試作を作ることにしました。ただ、このAPIは複雑にツリー化したJSONを返してくるので、分析するのが非常に煩雑です。とりあえず、ユーザーが投げた言葉(平叙文)を疑問形に変換して投げ返すものを作りました。 ⇒ウェブAIに挑戦 芸能人?にラブコールを送れ! ちなみにAIに疑問文を投げかけても正しい返答は来ませんのであしからず……。