ClalisConnectSampleForJavascript
Last-modified:
Clalis HTML5 + Javascript サンプル
ダウンロード
下記ボタンよりダウンロードできます。
Clalis Sample For HTML5 + Javascript ダウンロード
|
GitHubでもソースを公開しています。
Clalis Sample For HTML5 + Javascript GitHub
|
デモ
以下のURLにデモとして公開しています。
https://liplis.mine.nu/Sister/ClalisSampleJavaScript/
Clalis HTML5 + Javascript サンプルについて
ClalisをHTML5 + JavascriptのWebアプリから使用するための簡単なサンプルです。
ソースを読んで頂けると、APIの叩き方が分かるかと思います。
ClalisAPIの実行結果をテキストエリアに表示するサンプルとなっています。
ClalisAPIはSOAP、JSON、XMLのインターフェースを用意していますが、
HTML5 + JavascriptのサンプルはJsonのみです。
※IEでは動きません!!!
ライセンス
Copyright : 2013 LipliStyle. All Rights Reserved.
ライセンス : MIT License
・本ソフトウェアは無保証です。作者は責任を追いません。
・上記の著作権表示を記載して下さい。
・上記の2項に同意頂ければ自由に使用して頂けます。
ご注意
ソースコードの使用はライセンスに基づく通りですが、
Clalisサーバーに不用意に負荷をかける用途には使用しないで下さい。
サンプルの紹介と解説
形態素解析 ClalisMecab
概要
対象の日本語の文章を形態素解析して、単語に分解します。
サンプルでは、テキストボックスに入力された文章を
形態素解析し、テキストエリアに出力する処理となっています。
このメソッドは、日本語の分解結果と品詞のみを返します。
単純に文章を形態素に分解するだけであれば、本メソッドが有効です。
情報が足りない場合は、ClalisMecabPlusメソッドの使用を検討してください。
サーバーサイドで形態素解析器「Mecab」を使用しています。
Mecabについては下記アドレスを参照下さい。
https://code.google.com/p/mecab/
サンプル
function clalisMecab(sentence) { //ClalisApiUrl var url = 'https://liplis.mine.nu/Clalis/v30/Post/Json/clalisMecab.aspx'; //ユーザーエージェントによって処理を切り替え if (getUserAgent() == 'ie') { clalisMecabIe(sentence); } else { clalisMecabFx(sentence); } //FireFox、その他用 function clalisMecabFx(sentence) { var xmlhttp = new XMLHttpRequest(); xmlhttp.open('POST', url, true); xmlhttp.onreadystatechange = function () { if (xmlhttp.readyState == 4 && xmlhttp.status == 200) { clalisMecabSetResult( eval( '(' + xmlhttp.responseText + ')' )); } } xmlhttp.setRequestHeader("content-type", "application/x-www-form-urlencoded;charset=UTF-8"); xmlhttp.send("sentence=" + sentence); } //IE用 function clalisMecabIe(pSentence) { var xdr = new XDomainRequest(); xdr.onerror = function () { alert("error"); } xdr.onload = function () { clalisMecabSetResult(eval( '(' + xdr.responseText + ')' )); } xdr.open('POST', url); xdr.send("sentence=" + encodeURI(sentence)); } //結果セットメソッド function clalisMecabSetResult(jsonDoc) { var i = 0; var result = ""; for(i = 0; i < jsonDoc.resWordList.length; i++) { result = result + "単語:" + jsonDoc.resWordList[i].name + " ,品詞:" + jsonDoc.resWordList[i].pos + " ,品詞細分類1:" + jsonDoc.resWordList[i].pos1 + "\n"; } document.getElementById("resultClalisMecab").value = result; } }
形態素解析 ClalisMecabPlus
概要
このメソッドはMecabが返してくる全ての情報を取得します。
サンプルでは、テキストボックスに入力された文章を
形態素解析し、テキストエリアに出力する処理となっています。
サンプル
function clalisMecabFull(sentence) { //ClalisApiUrl var url = 'https://liplis.mine.nu/Clalis/v30/Post/Json/clalisMecabFull.aspx'; //ユーザーエージェントによって処理を切り替え if (getUserAgent() == 'ie') { clalisMecabFullIe(sentence); } else { clalisMecabFullFx(sentence); } //FireFox、その他用 function clalisMecabFullFx(sentence) { var xmlhttp = new XMLHttpRequest(); xmlhttp.open('POST', url, true); xmlhttp.onreadystatechange = function () { if (xmlhttp.readyState == 4 && xmlhttp.status == 200) { clalisMecabFullSetResult( eval( '(' + xmlhttp.responseText + ')' )); } } xmlhttp.setRequestHeader("content-type", "application/x-www-form-urlencoded;charset=UTF-8"); xmlhttp.send("sentence=" + sentence); } //IE用 function clalisMecabFullIe(sentence) { var xdr = new XDomainRequest(); xdr.onerror = function () { alert("error"); } xdr.onload = function () { clalisMecabFullSetResult(eval( '(' + xdr.responseText + ')' )); } xdr.open('POST', url); xdr.send("sentence=" + encodeURI(sentence)); } //結果セットメソッド function clalisMecabFullSetResult(jsonDoc) { var i = 0; var result = ""; for(i = 0; i < jsonDoc.resWordList.length; i++) { result = result + "単語:" + jsonDoc.resWordList[i].name + " , 品詞:" + jsonDoc.resWordList[i].pos + " , 品詞細分類1:" + jsonDoc.resWordList[i].pos1 + " , 品詞細分類2:" + jsonDoc.resWordList[i].pos2 + " , 品詞細分類3:" + jsonDoc.resWordList[i].pos3 + " , 活用形:" + jsonDoc.resWordList[i].infetted1 + " , 活用形:" + jsonDoc.resWordList[i].infetted2 + " , 原形:" + jsonDoc.resWordList[i].prototype + " , 読み:" + jsonDoc.resWordList[i].read + " , 発音:" + jsonDoc.resWordList[i].pronunciation + "\n"; } document.getElementById("resultClalisMecabPlus").value = result; } }
感情付与 ClalisEmotional
概要
対象の文章にメタ感情を付与して結果を返します。
サンプルでは、テキストボックスに入力された文章に
感情付与処理を行い、テキストエリアに出力する処理となっています。
サンプル
function clalisEmotional(sentence) { //ClalisApiUrl var url = 'https://liplis.mine.nu/Clalis/v30/Post/Json/clalisEmotional.aspx'; //ユーザーエージェントによって処理を切り替え if (getUserAgent() == 'ie') { clalisEmotionalIe(sentence); } else { clalisEmotionalFx(sentence); } //FireFox、その他用 function clalisEmotionalFx(sentence) { var xmlhttp = new XMLHttpRequest(); xmlhttp.open('POST', url, true); xmlhttp.onreadystatechange = function () { if (xmlhttp.readyState == 4 && xmlhttp.status == 200) { clalisEmotionalSetResult( eval( '(' + xmlhttp.responseText + ')' )); } } xmlhttp.setRequestHeader("content-type", "application/x-www-form-urlencoded;charset=UTF-8"); xmlhttp.send("sentence=" + sentence); } //IE用 function clalisEmotionalIe(sentence) { var xdr = new XDomainRequest(); xdr.onerror = function () { alert("error"); } xdr.onload = function () { clalisEmotionalSetResult(eval( '(' + xdr.responseText + ')' )); } xdr.open('POST', url); xdr.send("sentence=" + encodeURI(sentence)); } //結果セットメソッド function clalisEmotionalSetResult(jsonDoc) { var i = 0; var result = ""; for(i = 0; i < jsonDoc.resWordList.length; i++) { result = result + "単語:" + jsonDoc.resWordList[i].name + " , 感情:" + jsonDoc.resWordList[i].emotion + " , 感情値:" + jsonDoc.resWordList[i].point + "\n"; } document.getElementById("resultClalisEmotional").value = result; } }
口調変換 ClalisTone
概要
対象の文章を口調変換ルールファイルに従って変換します。
サンプルでは、1つ目のテキストボックスに入力された文章をを
2つ目のテキストボックスに指定されたURLの口調変換ルールに従って
口調変換を行い、結果をテキストエリアに出力する処理となっています。
サンプル
function clalisTone(sentence, rureUrl) { //ClalisApiUrl var url = 'https://liplis.mine.nu/Clalis/v30/Post/Json/ClalisTone.aspx'; //ユーザーエージェントによって処理を切り替え if (getUserAgent() == 'ie') { clalisToneIe(sentence, rureUrl); } else { clalisToneFx(sentence, rureUrl); } //FireFox、その他用 function clalisToneFx(sentence, rureUrl) { var xmlhttp = new XMLHttpRequest(); xmlhttp.open('POST', url, true); xmlhttp.onreadystatechange = function () { if (xmlhttp.readyState == 4 && xmlhttp.status == 200) { var jsonDoc = eval( '(' + xmlhttp.responseText + ')' ); document.getElementById("resultClalisTone").value = jsonDoc.result; } } xmlhttp.setRequestHeader("content-type", "application/x-www-form-urlencoded;charset=UTF-8"); xmlhttp.send("sentence=" + sentence + "&toneFileUrl=" + rureUrl); } //IE用 function clalisToneIe(sentence, rureUrl) { var xdr = new XDomainRequest(); xdr.onerror = function () { alert("error"); } xdr.onload = function () { var jsonDoc = eval( '(' + xdr.responseText + ')' ); document.getElementById("resultClalisTone").value = jsonDoc.result; } xdr.open('POST', url); xdr.send("sentence=" + encodeURI(sentence) + "&toneFileUrl=" + rureUrl); } }
口調変換+感情付与 ClalisToneEmotion
概要
対象の文章を口調変換ルールファイルに従って変換します。
さらに、感情付与を行います。
サンプルでは、「今日はお天気がいいですね。お洗濯にはもってこい!」という文章を
「https://liplis.mine.nu/xml/Tone/LiplisLili.xml」の口調変換ルールに従って
口調変換を行い、結果をコンソール出力する処理となっています。
サンプル
function clalisToneEmotional(sentence, rureUrl) { //ClalisApiUrl var url = 'https://liplis.mine.nu/Clalis/v30/Post/Json/ClalisToneEmotional.aspx'; //ユーザーエージェントによって処理を切り替え if (getUserAgent() == 'ie') { clalisToneEmotionalIe(sentence, rureUrl); } else { clalisToneEmotionalFx(sentence, rureUrl); } //FireFox、その他用 function clalisToneEmotionalFx(sentence, rureUrl) { var xmlhttp = new XMLHttpRequest(); xmlhttp.open('POST', url, true); xmlhttp.onreadystatechange = function () { if (xmlhttp.readyState == 4 && xmlhttp.status == 200) { clalisToneEmotionalSetResult( eval( '(' + xmlhttp.responseText + ')' )); } } xmlhttp.setRequestHeader("content-type", "application/x-www-form-urlencoded;charset=UTF-8"); xmlhttp.send("sentence=" + sentence + "&toneFileUrl=" + rureUrl); } //IE用 function clalisToneEmotionalIe(sentence, rureUrl) { var xdr = new XDomainRequest(); xdr.onerror = function () { alert("error"); } xdr.onload = function () { clalisToneEmotionalSetResult(eval( '(' + xdr.responseText + ')' )); } xdr.open('POST', url); xdr.send("sentence=" + encodeURI(sentence) + "&toneFileUrl=" + rureUrl); } //結果セットメソッド function clalisToneEmotionalSetResult(jsonDoc) { var i = 0; var result = ""; for(i = 0; i < jsonDoc.resWordList.length; i++) { result = result + "単語:" + jsonDoc.resWordList[i].name + " , 感情:" + jsonDoc.resWordList[i].emotion + " , 感情値:" + jsonDoc.resWordList[i].point + "\n"; } document.getElementById("resultClalisToneEmotional").value = result; } }
Web日本語抽出 ClalisWebExtractJp
概要
対象のURLのサイトから日本語を抽出して返します。
サンプルでは、テキストボックスに入力されたURLのサイトから日本語を抽出し、
結果をテキストエリアに出力する処理となっています。
サンプル
function clalisWebExtractJp(targetUrl) { //ClalisApiUrl var url = 'https://liplis.mine.nu/Clalis/v30/Post/Json/clalisWebExtractJp.aspx'; //ユーザーエージェントによって処理を切り替え if (getUserAgent() == 'ie') { clalisWebExtractJpIe(targetUrl); } else { clalisWebExtractJpFx(targetUrl); } //FireFox、その他用 function clalisWebExtractJpFx(targetUrl) { var xmlhttp = new XMLHttpRequest(); xmlhttp.open('POST', url, true); xmlhttp.onreadystatechange = function () { if (xmlhttp.readyState == 4 && xmlhttp.status == 200) { var jsonDoc = eval( '(' + xmlhttp.responseText + ')' ); document.getElementById("resultClalisWebExtractJp").value = jsonDoc.result; } } xmlhttp.setRequestHeader("content-type", "application/x-www-form-urlencoded;charset=UTF-8"); xmlhttp.send("url=" + targetUrl); } //IE用 function clalisWebExtractJpIe(targetUrl) { var xdr = new XDomainRequest(); xdr.onerror = function () { alert("error"); } xdr.onload = function () { var jsonDoc = eval( '(' + xdr.responseText + ')' ); document.getElementById("resultClalisWebExtractJp").value = jsonDoc.result; } xdr.open('POST', url); xdr.send("url=" + targetUrl); } }
Web日本語文章抽出 ClalisWebExtractJpSentenceList
概要
対象のURLのサイトから日本語を文章ごとに抽出して返します。
サンプルでは、テキストボックスに入力されたURLのサイトから日本語文章を抽出し、
結果をテキストエリアに出力する処理となっています。
サンプル
function clalisWebExtractJpSentenceList(targetUrl) { //ClalisApiUrl var url = 'https://liplis.mine.nu/Clalis/v30/Post/Json/clalisWebExtractJpSentenceList.aspx'; //ユーザーエージェントによって処理を切り替え if (getUserAgent() == 'ie') { clalisWebExtractJpSentenceListIe(targetUrl); } else { clalisWebExtractJpSentenceListFx(targetUrl); } //FireFox、その他用 function clalisWebExtractJpSentenceListFx(targetUrl) { var xmlhttp = new XMLHttpRequest(); xmlhttp.open('POST', url, true); xmlhttp.onreadystatechange = function () { if (xmlhttp.readyState == 4 && xmlhttp.status == 200) { clalisWebExtractJpSentenceListSetResul( eval( '(' + xmlhttp.responseText + ')' )); } } xmlhttp.setRequestHeader("content-type", "application/x-www-form-urlencoded;charset=UTF-8"); xmlhttp.send("url=" + targetUrl); } //IE用 function clalisWebExtractJpSentenceListIe(targetUrl) { var xdr = new XDomainRequest(); xdr.onerror = function () { alert("error"); } xdr.onload = function () { clalisWebExtractJpSentenceListSetResul( eval( '(' + xdr.responseText + ')' )); } xdr.open('POST', url); xdr.send("url=" + targetUrl); } //結果セットメソッド function clalisWebExtractJpSentenceListSetResul(jsonDoc) { var i = 0; var result = ""; for(i = 0; i < jsonDoc.resWordList.length; i++) { result = result + jsonDoc.resWordList[i] + "\n"; } document.getElementById("resultClalisWebExtractJpSentenceList").value = result; } }
Web日本語重要文章抽出 ClalisWebExtractJpSentenceRelevanceList
概要
対象のURLのサイトから日本語を文章ごとに抽出し、
重要な文章の順番にソートして返します。
サンプルでは、「http://www.yahoo.co.jp/」のサイトから日本語文章を抽出し、
結果をコンソール出力する処理となっています。
サンプル
function clalisWebExtractJpSentenceRelevanceList(targetUrl) { //ClalisApiUrl var url = 'https://liplis.mine.nu/Clalis/v30/Post/Json/clalisWebExtractJpSentenceRelevanceList.aspx'; //ユーザーエージェントによって処理を切り替え if (getUserAgent() == 'ie') { clalisWebExtractJpSentenceRelevanceListIe(targetUrl); } else { clalisWebExtractJpSentenceRelevanceListFx(targetUrl); } //FireFox、その他用 function clalisWebExtractJpSentenceRelevanceListFx(targetUrl) { var xmlhttp = new XMLHttpRequest(); xmlhttp.open('POST', url, true); xmlhttp.onreadystatechange = function () { if (xmlhttp.readyState == 4 && xmlhttp.status == 200) { clalisWebExtractJpSentenceRelevanceListSetResul( eval( '(' + xmlhttp.responseText + ')' )); } } xmlhttp.setRequestHeader("content-type", "application/x-www-form-urlencoded;charset=UTF-8"); xmlhttp.send("url=" + targetUrl); } //IE用 function clalisWebExtractJpSentenceRelevanceListIe(targetUrl) { var xdr = new XDomainRequest(); xdr.onerror = function () { alert("error"); } xdr.onload = function () { clalisWebExtractJpSentenceRelevanceListSetResul( eval( '(' + xdr.responseText + ')' )); } xdr.open('POST', url); xdr.send("url=" + targetUrl); } //結果セットメソッド function clalisWebExtractJpSentenceRelevanceListSetResul(jsonDoc) { var i = 0; var result = ""; for(i = 0; i < jsonDoc.resWordList.length; i++) { result = result + jsonDoc.resWordList[i] + "\n"; } document.getElementById("resultClalisWebExtractJpSentenceRelevanceList").value = result; } }