ホーム   Liplis   トップ   一覧 検索 最終更新   ヘルプ   最終更新のRSS
 

ClalisConnectSampleForJavascript のバックアップ差分(No.1)


  • 追加された行はこの色です。
  • 削除された行はこの色です。
#setlinebreak(on)
#contents
*Clalis HTML5 + Javascript サンプル [#b8960b48]

**ダウンロード [#b02876df]
下記ボタンよりダウンロードできます。
#html{{
<div style="text-align:center;">
<table style="margin-left:auto;margin-right:auto;">
<tr>
  <td>
    <div class="liplisWikiBtn" onClick="location.href='/file/ClalisSample4.1.zip'" style="width:360px;">
    <img src="/lipliswiki/webroot/image/common/Icon/ico_next.png" alt=" Clalis Sample For HTML5 + Javascript" style="width:16px;"> Clalis Sample For HTML5 + Javascript ダウンロード
    </div >
  </td>
</tr>
</table>
</div>
}}
GitHubでもソースを公開しています。
#html{{
<div style="text-align:center;">
<table style="margin-left:auto;margin-right:auto;">
<tr>
  <td>
    <div class="liplisWikiBtn" onClick="location.href='https://github.com/LipliStyle/ClalisSampleForJavaScript'" style="width:360px;">
    <img src="/lipliswiki/webroot/image/common/Icon/ico_next.png" alt=" Clalis Sample For HTML5 + Javascript" style="width:16px;"> Clalis Sample For HTML5 + Javascript GitHub
    </div >
  </td>
</tr>
</table>
</div>
}}
 
 
**デモ [#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]
#sh(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]
#sh(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]
#sh(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]
#sh(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]
#sh(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]
#sh(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]
#sh(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]
#sh(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;
	}
}
}}