サーバーサイドとの連携にチャレンジ
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に疑問文を投げかけても正しい返答は来ませんのであしからず……。
