GAS

/**

テーブル内容から シートにデータの書き出し

@function testWrittoTOSheet

@params データベース名

@params テーブル名

@params シート名

*/


function escape (val) {

if (typeof(val)!="string") return val;

return val

.replace(/[\\]/g, '\\\\')

.replace(/[\/]/g, '\\/')

.replace(/[\b]/g, '\\b')

.replace(/[\f]/g, '\\f')

.replace(/[\n]/g, '\\n')

.replace(/[\r]/g, '\\r')

.replace(/[\t]/g, '\\t')

.replace(/[\"]/g, '\\"')

.replace(/\\'/g, "\\'");

}


JSDOCサンプル

/**

* Yahoo テキスト解析APIインターフェイスを作成します。<br>

* <p>

* Yahoo テキスト解析API(http://developer.yahoo.co.jp/webapi/jlp)を呼び出すためのインスタンスを作成します。

* </p>

* <h3>呼び出し例</h3>

* <pre>

* var yahooJaTextApi = YahooJaTextApi.create(apiKey);

* //このあと補完も一応効きます。

* </pre>

* @param {string} apiKey APIキー

* @return {YahooJaTextApi} YahooJaTextApiのインスタンス

*/

function create(apiKey) {

return new YahooJaTextApi(apiKey);

}


/**

* キーフレーズ抽出APIを呼び出します。<br>

* <p>

* キーフレーズ抽出API(http://developer.yahoo.co.jp/webapi/jlp/keyphrase/v1/extract.html)を呼び出します。

* </p>

* <h3>呼び出し例</h3>

* <pre>

* var yahooJaTextApi = YahooJaTextApi.create(apiKey);

* var keyphrases = yahooJaTextApi.keyphrase("東京ミッドタウンから国立新美術館まで歩いて5分で着きます。");

* Logger.log(keyphrases);

* </pre>

* @param {string} sentence 抽出を行う文字列

* @return {object} {"キーフレーズ" : "重要度"}

*

*/

function keyphrase(sentence) {

throw new Error("このメソッドは直接呼び出せません。createメソッドをコールし取得したインスタンスより呼び出してください。");

}


/**

* 形態素解析APIを呼び出します。<br>

* <p>

* 文字列を形態素解析します。

* </p>

* <h3>呼び出し例</h3>

* <pre>

* var yahooJaTextApi = YahooJaTextApi.create(apiKey);

* //デフォルト設定で呼び出し

* var result = yahooJaTextApi.parse('すもももももももものうち');

* Logger.log(result);

*

* //解析情報の指定と、出力する品詞を指定して呼び出し

* var filteredResult = yahooJaTextApi.parse('すもももももももものうち' , {results:["ma" , "uniq"] , filter:["9"] }); //名詞のみを抽出

* Logger.log(result);

* </pre>

* <p>

* <code>optValue</code>はAPIに対するオプションで以下のようになります。

* </p>

* <h3>optValue</h3>

* <table>

* <thead>

* <tr>

* <td>Name</td>

* <td>Type</td>

* <td>Description</td>

* </tr>

* </thead>

* <tbody>

* <tr>

* <td>results</td>

* <td>Array.string</td>

* <td>

*

* 返却する情報を設定します。maとuniqが利用できます。<br>

* 詳しくはYahoo Japan 形態素解析APIのドキュメント(http://developer.yahoo.co.jp/webapi/jlp/ma/v1/parse.html)を御覧ください。<br>

* 例: ["ma" , "uniq"]

* デフォルトは["ma"]となります。

* </td>

* </tr>

* <tr>

* <td>filter</td>

* <td>Array.string</td>

* <td>

* 解析結果として出力する品詞番号を配列で指定します。<br>

* 品詞番号はYahoo Japan 形態素解析APIのドキュメント(http://developer.yahoo.co.jp/webapi/jlp/ma/v1/parse.html)を御覧ください。<br>

* 例: ["1" , "2"]

* </td>

* </tr>

* </tbody>

* </table>

* <h3>返却値</h3>

* <pre>

* {

* __origin__ : {APIの返却結果XMLオブジェクト},

* __originalText__ : {APIの返却結果文字列},

* maResult : { //形態素解析の結果

* totalCount : {トータルの件数},

* filteredCount : {フィルター後の件数},

* wordList : [ //形態素リスト

* { // 形態素

* surface : {形態素の表記},

* reading : {形態素の読みがな},

* pos : {形態素の品詞},

* baseform : {形態素の基本形表記を返します。活用のない形態素の場合は省略},

* }

* ]

* },

* uniqResult : { //形態素解析の結果から同一形態素の出現数を求めたもの

* totalCount : {トータルの件数},

* filteredCount : {フィルター後の件数},

* wordList : [ //形態素リスト

* { // 形態素

* surface : {形態素の表記},

* reading : {形態素の読みがな},

* pos : {形態素の品詞},

* baseform : {形態素の基本形表記を返します。活用のない形態素の場合は省略},

* count : {形態素の出現数}

* }

* ]

* }

* }

*

* @param {string} sentence 形態素解析を行う文字列

* @param {object} optValue オプション

* @return {object} 解析結果

*

*

*/

function parse(sentence , optValue){

throw new Error("このメソッドは直接呼び出せません。createメソッドをコールし取得したインスタンスより呼び出してください。");

}



(function(global) {

var YahooJaTextApi;

YahooJaTextApi = (function() {


YahooJaTextApi.name = 'YahooJaTextApi';


function YahooJaTextApi(appid) {

this.appid = appid;

if (!(this.appid != null)) throw new Error("the appid is required");

}


YahooJaTextApi.prototype.keyphrase = function(sentence) {

var res;

res = this.sendRequest("http://jlp.yahooapis.jp/KeyphraseService/V1/extract", {

"sentence": sentence,

"output": "json"

});

return JSON.parse(res.getContentText());

};


YahooJaTextApi.prototype.parse = function(sentence, optValue) {

var maResultXml, parameter, res, result, uniqResultXml, word, xml, _ref, _ref1, _ref2, _ref3;

optValue = optValue != null ? optValue : {};

parameter = {

sentence: sentence,

results: optValue.results != null ? optValue.results.join(",") : "ma",

filter: optValue.filter != null ? optValue.filter.join("|") : null

};

res = this.sendRequest("http://jlp.yahooapis.jp/MAService/V1/parse", parameter);

xml = Xml.parse(res.getContentText());

result = {

__origin__: xml,

__originalText__: res.getContentText()

};

maResultXml = xml.ResultSet["ma_result"];

if ((maResultXml != null) && (((_ref = maResultXml["word_list"]) != null ? (_ref1 = _ref.word) != null ? _ref1.length : void 0 : void 0) != null) > 0) {

result.maResult = {

totalCount: maResultXml["total_count"].getText(),

filteredCount: maResultXml["filtered_count"].getText(),

wordList: (function() {

var _i, _len, _ref2, _ref3, _ref4, _ref5, _ref6, _results;

_ref2 = maResultXml["word_list"].word;

_results = [];

for (_i = 0, _len = _ref2.length; _i < _len; _i++) {

word = _ref2[_i];

_results.push({

surface: (_ref3 = word.surface) != null ? _ref3.getText() : void 0,

reading: (_ref4 = word.reading) != null ? _ref4.getText() : void 0,

pos: (_ref5 = word.pos) != null ? _ref5.getText() : void 0,

baseform: (_ref6 = word.baseform) != null ? _ref6.getText() : void 0

});

}

return _results;

})()

};

}

uniqResultXml = xml.ResultSet["uniq_result"];

if ((uniqResultXml != null) && (((_ref2 = uniqResultXml["word_list"]) != null ? (_ref3 = _ref2.word) != null ? _ref3.length : void 0 : void 0) != null) > 0) {

result.uniqResult = {

totalCount: uniqResultXml["total_count"].getText(),

filteredCount: uniqResultXml["filtered_count"].getText(),

wordList: (function() {

var _i, _len, _ref4, _ref5, _ref6, _ref7, _ref8, _ref9, _results;

_ref4 = uniqResultXml["word_list"].word;

_results = [];

for (_i = 0, _len = _ref4.length; _i < _len; _i++) {

word = _ref4[_i];

_results.push({

surface: (_ref5 = word.surface) != null ? _ref5.getText() : void 0,

reading: (_ref6 = word.reading) != null ? _ref6.getText() : void 0,

pos: (_ref7 = word.pos) != null ? _ref7.getText() : void 0,

baseform: (_ref8 = word.baseform) != null ? _ref8.getText() : void 0,

count: (_ref9 = word.count) != null ? _ref9.getText() : void 0

});

}

return _results;

})()

};

}

return result;

};


YahooJaTextApi.prototype.sendRequest = function(url, parameter) {

var option;

option = {

method: "post",

payload: this.buildParameter(parameter)

};

return UrlFetchApp.fetch(url, option);

};


YahooJaTextApi.prototype.buildParameter = function(parameter) {

var key, result, val;

return result = ("appid=" + this.appid) + "&" + ((function() {

var _results;

_results = [];

for (key in parameter) {

val = parameter[key];

_results.push(val != null ? "" + key + "=" + (encodeURI(val)) : "");

}

return _results;

})()).join("&");

};


return YahooJaTextApi;


})();

return global.YahooJaTextApi = YahooJaTextApi;

})(this);