ClalisConnectSampleForJavascript の変更点
Top/ClalisConnectSampleForJavascript
- 追加された行はこの色です。
- 削除された行はこの色です。
- ClalisConnectSampleForJavascript へ行く。
#author("2022-03-06T09:38:04+09:00","","") #author("2022-03-06T09:38:14+09:00","","") #setlinebreak(on) #contents *Clalis HTML5 + Javascript サンプル [#b8960b48] **ダウンロード [#b02876df] 下記ボタンよりダウンロードできます。 &ref(ClalisSample4.1.zip); ~ GitHubでもソースを公開しています。 https://github.com/LipliStyle/ClalisSampleForJavaScript **デモ [#p169ef83] 以下のURLにデモとして公開しています。 https://liplis.mine.nu/Sister/ClalisSampleJavaScript/ **Clalis HTML5 + Javascript サンプルについて [#j4bc3548] ClalisをHTML5 + JavascriptのWebアプリから使用するための簡単なサンプルです。 ソースを読んで頂けると、APIの叩き方が分かるかと思います。 ClalisAPIの実行結果をテキストエリアに表示するサンプルとなっています。 ClalisAPIはSOAP、JSON、XMLのインターフェースを用意していますが、 HTML5 + JavascriptのサンプルはJsonのみです。 ※IEでは動きません!!! **ライセンス [#v9f9b1c5] Copyright : 2013 LipliStyle. All Rights Reserved. ライセンス : MIT License ・本ソフトウェアは無保証です。作者は責任を追いません。 ・上記の著作権表示を記載して下さい。 ・上記の2項に同意頂ければ自由に使用して頂けます。 **ご注意 [#ifb758c1] ソースコードの使用はライセンスに基づく通りですが、 Clalisサーバーに不用意に負荷をかける用途には使用しないで下さい。 *サンプルの紹介と解説 [#i62261fe] **形態素解析 ClalisMecab [#w90673c7] ***概要 [#bdec150a] 対象の日本語の文章を形態素解析して、単語に分解します。 サンプルでは、テキストボックスに入力された文章を 形態素解析し、テキストエリアに出力する処理となっています。 このメソッドは、日本語の分解結果と品詞のみを返します。 単純に文章を形態素に分解するだけであれば、本メソッドが有効です。 情報が足りない場合は、ClalisMecabPlusメソッドの使用を検討してください。 サーバーサイドで形態素解析器「Mecab」を使用しています。 Mecabについては下記アドレスを参照下さい。 https://code.google.com/p/mecab/ ***サンプル [#g230d313] #code(js){{ 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 [#a9949a1a] ***概要 [#f9adc7cf] このメソッドはMecabが返してくる全ての情報を取得します。 サンプルでは、テキストボックスに入力された文章を 形態素解析し、テキストエリアに出力する処理となっています。 ***サンプル [#v956247b] #code(js){{ 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 [#sd452f7f] ***概要 [#obd9ee35] 対象の文章にメタ感情を付与して結果を返します。 サンプルでは、テキストボックスに入力された文章に 感情付与処理を行い、テキストエリアに出力する処理となっています。 ***サンプル [#gd2883b3] #code(js){{ 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 [#pa48d1d1] ***概要 [#xfb5036a] 対象の文章を口調変換ルールファイルに従って変換します。 サンプルでは、1つ目のテキストボックスに入力された文章をを 2つ目のテキストボックスに指定されたURLの口調変換ルールに従って 口調変換を行い、結果をテキストエリアに出力する処理となっています。 ***サンプル [#o5541c82] #code(js){{ 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 [#m05e1a28] ***概要 [#l9e43433] 対象の文章を口調変換ルールファイルに従って変換します。 さらに、感情付与を行います。 サンプルでは、「今日はお天気がいいですね。お洗濯にはもってこい!」という文章を 「https://liplis.mine.nu/xml/Tone/LiplisLili.xml」の口調変換ルールに従って 口調変換を行い、結果をコンソール出力する処理となっています。 ***サンプル [#m2281158] #code(js){{ 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 [#c7087cec] ***概要 [#afc2b1a1] 対象のURLのサイトから日本語を抽出して返します。 サンプルでは、テキストボックスに入力されたURLのサイトから日本語を抽出し、 結果をテキストエリアに出力する処理となっています。 ***サンプル [#z39de948] #code(js){{ 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 [#ief7b117] ***概要 [#n9986486] 対象のURLのサイトから日本語を文章ごとに抽出して返します。 サンプルでは、テキストボックスに入力されたURLのサイトから日本語文章を抽出し、 結果をテキストエリアに出力する処理となっています。 ***サンプル [#z7d2fca2] #code(js){{ 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 [#b8398b25] ***概要 [#y43ce69c] 対象のURLのサイトから日本語を文章ごとに抽出し、 重要な文章の順番にソートして返します。 サンプルでは、「http://www.yahoo.co.jp/」のサイトから日本語文章を抽出し、 結果をコンソール出力する処理となっています。 ***サンプル [#oa0f827d] #code(js){{ 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; } } }}