page1.html
<ons-page id="page1">
<ons-toolbar>
<div class="center">日本語形態素解析</div>
</ons-toolbar>
<br>
<div>
<textarea class="textarea" id="sentence" style="width: 100%; height: 300px">
</textarea>
</div>
<div>
<ons-button modifier="large--cta" id="parse-button">解析</ons-button>
</div>
</ons-page>
次に,page2.htmlですが,タイトルを修正し,形態素解析の結果を出力するdivタグにword-listというidを割り当て,divタグ内のons-itemタグは削除します。形態素解析の結果は1行に複数の項目(形態素,読み仮名,品詞,基本形)を表示するのでons-rowとons-colを組み合わせてグリッドレイアウトにするからです。
page2.html
<ons-page id="page2">
<ons-toolbar>
<div class="left"><ons-back-button>Back</ons-back-button></div>
<div class="center">日本語形態素解析</div>
</ons-toolbar>
<div id="word-list">
</div>
</ons-page>
最後は。app.jsです。これも基本的なプログラム構造はキーフレーズ抽出の時と同じです。
app.js
var gAPPID = '[APPID]';
$(document).on('pageinit', '#page1', function(){
$('#sentence').val('基本的な症状は「痛み」です。 内膜症のある場所、大きさ、癒着の程度などによって症状はさまざまですが、主に生理痛や下腹部痛、腰痛、性交痛、排便痛、慢性骨盤痛などが現れます。 痛み以外では、不正出血が見られたり、経血量が多かったり、レバー状の塊が出ることもあります。');
});
$(document).on('click', '#parse-button', function(){
var options = {
sentence: $('#sentence').val()
};
myNavigator.pushPage('page2.html', options);
});
$(document).on('pageinit', '#page2', function(){
var page = myNavigator.getCurrentPage();
var sentence = page.options.sentence;
var url = 'http://jlp.yahooapis.jp/MAService/V1/parse';
$.ajax({
url: url,
type: 'POST',
data: {
appid: gAPPID,
sentence: sentence,
response: 'surface,reading,pos,baseform'
}
})
.done(function(xml) {
listWords(xml);
})
.fail(function(XMLHttpRequest, textStatus, errorThrown) {
//alert("error:" + textStatus);
var html = '';
html += '<ons-row>' + 'XMLHttpRequest:' + XMLHttpRequest.status + '</ons-row>';
html += '<ons-row>' + 'textStatus:' + textStatus + '</ons-row>';
html += '<ons-row>' + 'errorThrown:' + errorThrown + '</ons-row>';
$("#word-list").html(html);
var content = $("#word-list").get(0);
ons.compile(content);
});
});
function listWords(xml) {
var html = '';
$(xml).find('word').each(function(){
var surface = $(this).find('surface').text();
var reading = $(this).find('reading').text();
var pos = $(this).find('pos').text();
var baseform = $(this).find('baseform').text();
html += '<ons-row>';
html += '<ons-col>' + surface + '</ons-col>';
html += '<ons-col>' + reading + '</ons-col>';
html += '<ons-col>' + pos + '</ons-col>';
html += '<ons-col>' + baseform + '</ons-col>';
html += '</ons-row>';
});
$("#word-list").html(html);
var content = $("#word-list").get(0);
ons.compile(content);
}
25行目のresponseには結果にどのような形態素情報を含めるかを設定します。注意すべきことはカンマで区切る際,間に空白を入れないようにすることです。空白を入れるとエラーになります。
今回,Ajaxのエラーハンドラでエラー詳細を画面に出力するようにしました。
0 件のコメント:
コメントを投稿